diff --git a/.gitignore b/.gitignore index 35e3dd14b..e94c6a25c 100644 --- a/.gitignore +++ b/.gitignore @@ -47,6 +47,9 @@ sound/**/*.bin sound/songs/midi/*.s src/data/items.h src/data/wild_encounters.h +src/data/region_map/region_map_entries.h +src/data/region_map/region_map_entry_strings.h +src/data/region_map/porymap_config.json tags tools/agbcc tools/binutils @@ -54,7 +57,8 @@ types_*.taghl !.github/calcrom/calcrom.pl !sound/programmable_wave_samples/*.pcm _Deparsed_XSubs.pm -porymap.project.cfg +porymap.*.cfg +prefabs.json .vscode/*.* *.js *.sym diff --git a/Makefile b/Makefile index 785d95df7..adb08dfb7 100644 --- a/Makefile +++ b/Makefile @@ -81,6 +81,8 @@ ASM_SUBDIR = asm DATA_ASM_SUBDIR = data SONG_SUBDIR = sound/songs MID_SUBDIR = sound/songs/midi +SAMPLE_SUBDIR = sound/direct_sound_samples +CRY_SUBDIR = sound/direct_sound_samples/cries C_BUILDDIR = $(OBJ_DIR)/$(C_SUBDIR) ASM_BUILDDIR = $(OBJ_DIR)/$(ASM_SUBDIR) @@ -193,7 +195,8 @@ compare: @$(MAKE) COMPARE=1 mostlyclean: tidy - $(RM) sound/direct_sound_samples/*.bin + rm -f $(SAMPLE_SUBDIR)/*.bin + rm -f $(CRY_SUBDIR)/*.bin $(RM) $(SONG_OBJS) $(MID_SUBDIR)/*.s find . \( -iname '*.1bpp' -o -iname '*.4bpp' -o -iname '*.8bpp' -o -iname '*.gbapal' -o -iname '*.lz' -o -iname '*.latfont' -o -iname '*.hwjpnfont' -o -iname '*.fwjpnfont' \) -exec rm {} + $(RM) $(DATA_ASM_SUBDIR)/layouts/layouts.inc $(DATA_ASM_SUBDIR)/layouts/layouts_table.inc @@ -229,7 +232,7 @@ include songs.mk %.gbapal: %.png ; $(GFX) $< $@ %.lz: % ; $(GFX) $< $@ %.rl: % ; $(GFX) $< $@ -sound/direct_sound_samples/cry_%.bin: sound/direct_sound_samples/cry_%.aif ; $(AIF) $< $@ --compress +$(CRY_SUBDIR)/%.bin: $(CRY_SUBDIR)/%.aif ; $(AIF) $< $@ --compress sound/%.bin: sound/%.aif ; $(AIF) $< $@ sound/songs/%.s: sound/songs/%.mid $(MID) $< $@ @@ -245,7 +248,7 @@ $(C_BUILDDIR)/isagbprn.o: CC1 := tools/agbcc/bin/old_agbcc$(EXE) $(C_BUILDDIR)/isagbprn.o: CFLAGS := -mthumb-interwork $(C_BUILDDIR)/trainer_tower.o: CFLAGS += -ffreestanding -$(C_BUILDDIR)/flying.o: CFLAGS += -ffreestanding +$(C_BUILDDIR)/battle_anim_flying.o: CFLAGS += -ffreestanding $(C_BUILDDIR)/librfu_intr.o: CC1 := tools/agbcc/bin/agbcc_arm$(EXE) $(C_BUILDDIR)/librfu_intr.o: CFLAGS := -O2 -mthumb-interwork -quiet diff --git a/asm/macros/battle_anim_script.inc b/asm/macros/battle_anim_script.inc index 5426cdfba..15c48c39f 100644 --- a/asm/macros/battle_anim_script.inc +++ b/asm/macros/battle_anim_script.inc @@ -14,7 +14,7 @@ .byte 0x02 .4byte \template .if \anim_battler == ANIM_TARGET - .byte 0x80 | (\subpriority_offset & 0x7F) + .byte ANIMSPRITE_IS_TARGET | (\subpriority_offset & 0x7F) .else .byte (\subpriority_offset & 0x7F) .endif @@ -34,20 +34,20 @@ .Lcreatetask_\@_2: .endm - .macro delay param0:req + .macro delay frames:req .byte 0x4 - .byte \param0 + .byte \frames .endm .macro waitforvisualfinish .byte 0x5 .endm - .macro hang1 + .macro nop .byte 0x6 .endm - .macro hang2 + .macro nop2 .byte 0x7 .endm @@ -79,30 +79,30 @@ .byte 0xd .endm - .macro call param0:req + .macro call ptr:req .byte 0xe - .4byte \param0 + .4byte \ptr .endm .macro return .byte 0xf .endm - .macro setarg param0:req, param1:req + .macro setarg argId:req, value:req .byte 0x10 - .byte \param0 - .2byte \param1 + .byte \argId + .2byte \value .endm - .macro choosetwoturnanim param0:req, param1:req + .macro choosetwoturnanim ptr1:req, ptr2:req .byte 0x11 - .4byte \param0 - .4byte \param1 + .4byte \ptr1 + .4byte \ptr2 .endm - .macro jumpifmoveturn param0:req, ptr:req + .macro jumpifmoveturn value:req, ptr:req .byte 0x12 - .byte \param0 + .byte \value .4byte \ptr .endm @@ -144,13 +144,13 @@ .byte \pan .endm - .macro panse_1B se:req, param1:req, param2:req, param3:req, param4:req + .macro panse se:req, currentPan:req, targetPan:req, incrementPan:req, delay:req .byte 0x1b .2byte \se - .byte \param1 - .byte \param2 - .byte \param3 - .byte \param4 + .byte \currentPan + .byte \targetPan + .byte \incrementPan + .byte \delay .endm .macro loopsewithpan se:req, pan:req, wait:req, times:req @@ -168,9 +168,9 @@ .byte \wait .endm - .macro setbldcnt param0:req + .macro setbldcnt bldcnt:req .byte 0x1e - .2byte \param0 + .2byte \bldcnt .endm .macro createsoundtask addr:req, argv:vararg @@ -186,19 +186,19 @@ .byte 0x20 .endm - .macro jumpargeq param0:req, param1:req, ptr:req + .macro jumpargeq argId:req, value:req, ptr:req .byte 0x21 - .byte \param0 - .2byte \param1 + .byte \argId + .2byte \value .4byte \ptr .endm - .macro monbg_22 battler:req + .macro monbg_static battler:req .byte 0x22 .byte \battler .endm - .macro clearmonbg_23 battler:req + .macro clearmonbg_static battler:req .byte 0x23 .byte \battler .endm @@ -208,41 +208,41 @@ .4byte \ptr .endm - .macro fadetobgfromset param0:req, param1:req, param2:req + .macro fadetobgfromset bgOpponent:req, bgPlayer:req, bgContest:req .byte 0x25 - .byte \param0 - .byte \param1 - .byte \param2 + .byte \bgOpponent + .byte \bgPlayer + .byte \bgContest .endm - .macro panse_26 se:req, param1:req, param2:req, param3:req, param4:req + .macro panse_adjustnone se:req, currentPan:req, targetPan:req, incrementPan:req, delay:req .byte 0x26 .2byte \se - .byte \param1 - .byte \param2 - .byte \param3 - .byte \param4 + .byte \currentPan + .byte \targetPan + .byte \incrementPan + .byte \delay .endm - .macro panse_27 se:req, param1:req, param2:req, param3:req, param4:req + .macro panse_adjustall se:req, currentPan:req, targetPan:req, incrementPan:req, delay:req .byte 0x27 .2byte \se - .byte \param1 - .byte \param2 - .byte \param3 - .byte \param4 + .byte \currentPan + .byte \targetPan + .byte \incrementPan + .byte \delay .endm - .macro monbgprio_28 battler:req + .macro splitbgprio battler:req .byte 0x28 .byte \battler .endm - .macro monbgprio_29 + .macro splitbgprio_all .byte 0x29 .endm - .macro monbgprio_2A battler:req + .macro splitbgprio_foes battler:req .byte 0x2a .byte \battler .endm @@ -257,12 +257,12 @@ .byte \battler .endm - .macro doublebattle_2D battler:req + .macro teamattack_moveback battler:req .byte 0x2d .byte \battler .endm - .macro doublebattle_2E battler:req + .macro teamattack_movefwd battler:req .byte 0x2e .byte \battler .endm diff --git a/asm/macros/battle_script.inc b/asm/macros/battle_script.inc index d9a55bbcd..392a387e9 100644 --- a/asm/macros/battle_script.inc +++ b/asm/macros/battle_script.inc @@ -1282,16 +1282,16 @@ various BS_ATTACKER, VARIOUS_RESET_PLAYER_FAINTED .endm - .macro various8 battler:req - various \battler, 8 + .macro getbattlersforrecall + various BS_ATTACKER, VARIOUS_GET_BATTLERS_FOR_RECALL .endm - .macro returnopponentmon1toball battler:req - various \battler, VARIOUS_RETURN_OPPONENT_MON1 + .macro returnopponentmon1toball + various BS_ATTACKER, VARIOUS_RETURN_OPPONENT_MON1 .endm - .macro returnopponentmon2toball battler:req - various \battler, VARIOUS_RETURN_OPPONENT_MON2 + .macro returnopponentmon2toball + various BS_ATTACKER, VARIOUS_RETURN_OPPONENT_MON2 .endm .macro checkpokeflute battler:req diff --git a/asm/macros/event.inc b/asm/macros/event.inc index 55c6469a8..612d45efa 100644 --- a/asm/macros/event.inc +++ b/asm/macros/event.inc @@ -285,7 +285,7 @@ .endm @ Blocks script execution until a command or C code manually unblocks it. Generally used with specific - @ commands and specials. Calling EnableBothScriptContexts for instance will allow execution to continue. + @ commands and specials. Calling ScriptContext_Enable for instance will allow execution to continue. .macro waitstate .byte 0x27 .endm @@ -476,7 +476,7 @@ formatwarp \map, \a, \b, \c .endm - @ Sets the dynamic warp destination. Warps with a destination map of MAP_NONE will target this destination. + @ Sets the dynamic warp destination. Warps with a destination map of MAP_DYNAMIC will target this destination. @ Warp commands can be given either the id of which warp location to go to on the destination map @ or a pair of x/y coordinates to go to directly on the destination map. .macro setdynamicwarp map:req, a, b, c diff --git a/asm/macros/map.inc b/asm/macros/map.inc index 881ffdbb4..ceaa383b4 100644 --- a/asm/macros/map.inc +++ b/asm/macros/map.inc @@ -1,71 +1,123 @@ - .macro map map_id +@ Most of the macros in this file are for arranging map event data, and are output by mapjson using data from each map's JSON file. + + @ Takes a MAP constant and outputs the map group and map number as separate bytes + .macro map map_id:req .byte \map_id >> 8 @ map group .byte \map_id & 0xFF @ map num .endm - .macro map_script type, address + @ Defines a map script. 'type' is any MAP_SCRIPT_* constant (see include/constants/map_scripts.h) + .macro map_script type:req, script:req .byte \type - .4byte \address + .4byte \script .endm - .macro map_script_2 word1, word2, address - .2byte \word1 - .2byte \word2 - .4byte \address + @ Defines an entry in a map script table (for either ON_WARP_INTO_MAP_TABLE or ON_FRAME_TABLE) + .macro map_script_2 var:req, compare:req, script:req + .2byte \var + .2byte \compare + .4byte \script .endm - .macro object_event index:req, gfx:req, in_connection:req x:req, y:req, elevation:req, movement_type:req, x_radius:req, y_radius:req, trainer_type:req, sight_radius_tree_etc:req, script:req, event_flag:req + @ Defines an object event template for map data, to be used by a normal object. Mirrors the struct layout of ObjectEventTemplate in include/global.fieldmap.h + .macro object_event index:req, gfx:req, x:req, y:req, elevation:req, movement_type:req, x_radius:req, y_radius:req, trainer_type:req, sight_radius_tree_etc:req, script:req, event_flag:req .byte \index .byte \gfx - .byte \in_connection - .byte 0 + .byte OBJ_KIND_NORMAL + .space 1 @ Padding .2byte \x, \y - .byte \elevation, \movement_type, ((\y_radius << 4) | \x_radius), 0 - .2byte \trainer_type, \sight_radius_tree_etc + .byte \elevation + .byte \movement_type + .byte ((\y_radius << 4) | \x_radius) + .space 1 @ Padding + .2byte \trainer_type + .2byte \sight_radius_tree_etc .4byte \script - .2byte \event_flag, 0 + .2byte \event_flag + .space 2 @ Padding inc _num_npcs .endm - .macro warp_def x, y, byte, warp, map_id + @ Defines an object event template for map data, to be used by a clone object. Mirrors the struct layout of ObjectEventTemplate in include/global.fieldmap.h + .macro clone_event index:req, gfx:req, x:req, y:req, target_local_id:req, target_map_id:req + .byte \index + .byte \gfx + .byte OBJ_KIND_CLONE + .space 1 @ Padding .2byte \x, \y - .byte \byte, \warp + .byte \target_local_id + .space 3 @ Padding + .2byte \target_map_id & 0xFF @ map num + .2byte \target_map_id >> 8 @ map group + .space 8 @ Padding + inc _num_npcs + .endm + + @ Defines a warp event for map data. Mirrors the struct layout of WarpEvent in include/global.fieldmap.h + .macro warp_def x:req, y:req, elevation:req, warpId:req, map_id:req + .2byte \x, \y + .byte \elevation + .byte \warpId .byte \map_id & 0xFF @ map num .byte \map_id >> 8 @ map group inc _num_warps .endm - .macro coord_event x, y, byte1, byte2, word1, word2, word3, script + @ Defines a coord event for map data. Mirrors the struct layout of CoordEvent in include/global.fieldmap.h + .macro coord_event x:req, y:req, elevation:req, var:req, varValue:req, script:req .2byte \x, \y - .byte \byte1, \byte2 - .2byte \word1, \word2, \word3 + .byte \elevation + .space 1 @ Padding + .2byte \var + .2byte \varValue + .space 2 @ Padding .4byte \script inc _num_traps .endm - .macro bg_event x, y, byte, kind, word, arg6, arg7, arg8 + @ Defines a generic background event for map data. Mirrors the struct layout of BgEvent in include/global.fieldmap.h + @ 'kind' is any BG_EVENT_* constant (see include/constants/event_bg.h). + @ 'arg6' is used differently depending on the bg event type. 'arg7' and 'arg8' are only used by bg_hidden_item_event. + @ See macros below. + .macro bg_event x:req, y, elevation:req, kind:req, arg6:req, arg7, arg8 .2byte \x, \y - .byte \byte, \kind - .2byte \word - .if \kind < 5 - .4byte \arg6 + .byte \elevation + .byte \kind + .space 2 @ Padding + .if \kind != BG_EVENT_HIDDEN_ITEM + .4byte \arg6 .else - .2byte \arg6 - .byte \arg7, \arg8 + .2byte \arg6 + .byte \arg7 + .byte \arg8 .endif inc _num_signs .endm - .macro bg_hidden_item_event x, y, height, item, flag, quantity, underfoot - bg_event \x, \y, \height, 7, 0, \item, \flag, \quantity | (\underfoot << 7) + @ Defines a background sign event for map data. 'facing_dir' is any of the BG_EVENT_PLAYER_FACING_* constants (see include/constants/event_bg.h) + .macro bg_sign_event x:req, y:req, elevation:req, facing_dir:req, script:req + bg_event \x, \y, \elevation, \facing_dir, \script .endm - .macro map_events npcs, warps, traps, signs + @ Defines a background hidden item event for map data + .macro bg_hidden_item_event x:req, y:req, elevation:req, item:req, flag:req, quantity:req, underfoot:req + bg_event \x, \y, \elevation, BG_EVENT_HIDDEN_ITEM, \item, ((\flag) - FLAG_HIDDEN_ITEMS_START), \quantity | (\underfoot << 7) + .endm + + @ Defines a background secret base event for map data. + @ Unused by FRLG + .macro bg_secret_base_event x:req, y:req, elevation:req, secret_base_id:req + bg_event \x, \y, \elevation, BG_EVENT_SECRET_BASE, \secret_base_id + .endm + + @ Defines the table of event data for a map. Mirrors the struct layout of MapEvents in include/global.fieldmap.h + .macro map_events npcs:req, warps:req, traps:req, signs:req .byte _num_npcs, _num_warps, _num_traps, _num_signs .4byte \npcs, \warps, \traps, \signs reset_map_events .endm + @ Resets the event counters used to track how many events a map has. Run when the events table is created by map_events .macro reset_map_events .set _num_npcs, 0 .set _num_warps, 0 @@ -73,23 +125,28 @@ .set _num_signs, 0 .endm + @ Initialize the event counters for the first map reset_map_events + @ Directions for connecting maps + @ The map.json files will only have e.g. "down" as direction data, and this will be appended to "connection_" by the connection macro + .equiv connection_down, CONNECTION_SOUTH + .equiv connection_up, CONNECTION_NORTH + .equiv connection_left, CONNECTION_WEST + .equiv connection_right, CONNECTION_EAST + .equiv connection_dive, CONNECTION_DIVE + .equiv connection_emerge, CONNECTION_EMERGE - .equiv connection_down, 1 - .equiv connection_up, 2 - .equiv connection_left, 3 - .equiv connection_right, 4 - .equiv connection_dive, 5 - .equiv connection_emerge, 6 - - .macro connection direction, offset, map, filler - .4byte connection_\direction + @ Defines a map connection. Mirrors the struct layout of MapConnection in include/global.fieldmap.h + .macro connection direction:req, offset:req, map:req + .byte connection_\direction + .space 3 @ Padding .4byte \offset map \map - .space 2 + .space 2 @ Padding .endm + @ Defines the flags for a map header. Mirrors the layout of the bitfield in struct MapHeader in include/global.fieldmap.h .macro map_header_flags allow_cycling:req, allow_escaping:req, allow_running:req, show_map_name:req .byte \allow_cycling .byte ((\show_map_name & 1) << 2) | ((\allow_running & 1) << 1) | ((\allow_escaping & 1) << 0) diff --git a/charmap.txt b/charmap.txt index 150b4a156..8aba3a327 100644 --- a/charmap.txt +++ b/charmap.txt @@ -406,13 +406,9 @@ B_ATK_PREFIX2 = FD 2A B_DEF_PREFIX2 = FD 2B B_ATK_PREFIX3 = FD 2C B_DEF_PREFIX3 = FD 2D -B_TRAINER2_CLASS = FD 2E -B_TRAINER2_NAME = FD 2F -B_TRAINER2_LOSE_TEXT = FD 30 -B_TRAINER2_WIN_TEXT = FD 31 -B_PARTNER_CLASS = FD 32 -B_PARTNER_NAME = FD 33 -B_BUFF3 = FD 34 +B_TRAINER2_LOSE_TEXT = FD 2E +B_TRAINER2_WIN_TEXT = FD 2F +B_BUFF3 = FD 30 @ indicates the end of a town/city name (before " TOWN" or " CITY") NAME_END = FC 00 diff --git a/common_syms/berry_fix_program.txt b/common_syms/berry_fix_program.txt index 63b3de271..f04247492 100644 --- a/common_syms/berry_fix_program.txt +++ b/common_syms/berry_fix_program.txt @@ -1,4 +1,4 @@ -gUnknown_3005EF0 -gUnknown_3005EF4 -gUnknown_3005EF8 -gUnknown_3005F00 +gMultibootStart +gMultibootStatus +gMultibootSize +gMultibootParam diff --git a/constants/gba_constants.inc b/constants/gba_constants.inc index 9d59c8fcd..3ff857ee8 100644 --- a/constants/gba_constants.inc +++ b/constants/gba_constants.inc @@ -488,3 +488,26 @@ .set OAM_SIZE_8x32, OAM_SIZE_1 | OAM_V_RECTANGLE .set OAM_SIZE_16x32, OAM_SIZE_2 | OAM_V_RECTANGLE .set OAM_SIZE_32x64, OAM_SIZE_3 | OAM_V_RECTANGLE + +@ BLDCNT + + .set BLDCNT_TGT1_BG0, 1 << 0 + .set BLDCNT_TGT1_BG1, 1 << 1 + .set BLDCNT_TGT1_BG2, 1 << 2 + .set BLDCNT_TGT1_BG3, 1 << 3 + .set BLDCNT_TGT1_OBJ, 1 << 4 + .set BLDCNT_TGT1_BD, 1 << 5 + .set BLDCNT_TGT1_ALL, BLDCNT_TGT1_BG0 | BLDCNT_TGT1_BG1 | BLDCNT_TGT1_BG2 | BLDCNT_TGT1_BG3 | BLDCNT_TGT1_OBJ | BLDCNT_TGT1_BD + + .set BLDCNT_EFFECT_NONE, 0 << 6 + .set BLDCNT_EFFECT_BLEND, 1 << 6 + .set BLDCNT_EFFECT_LIGHTEN, 2 << 6 + .set BLDCNT_EFFECT_DARKEN, 3 << 6 + + .set BLDCNT_TGT2_BG0, 1 << 8 + .set BLDCNT_TGT2_BG1, 1 << 9 + .set BLDCNT_TGT2_BG2, 1 << 10 + .set BLDCNT_TGT2_BG3, 1 << 11 + .set BLDCNT_TGT2_OBJ, 1 << 12 + .set BLDCNT_TGT2_BD, 1 << 13 + .set BLDCNT_TGT2_ALL, BLDCNT_TGT2_BG0 | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_BG2 | BLDCNT_TGT2_BG3 | BLDCNT_TGT2_OBJ | BLDCNT_TGT2_BD diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s index 936e58a35..3304833c7 100644 --- a/data/battle_anim_scripts.s +++ b/data/battle_anim_scripts.s @@ -1,40 +1,13 @@ #include "constants/battle.h" #include "constants/battle_anim.h" +#include "constants/battle_string_ids.h" +#include "constants/rgb.h" #include "constants/songs.h" #include "constants/sound.h" #include "constants/moves.h" .include "asm/macros.inc" .include "asm/macros/battle_anim_script.inc" - -#define FALSE 0 -#define TRUE 1 - -#define RGB(r, g, b) ((r) | ((g) << 5) | ((b) << 10)) -#define RGB_BLACK 0x0000 -#define RGB_WHITE 0x7FFF -#define RGB_WHITEALPHA 0xFFFF - -// BLDCNT -// Bits 0-5 select layers for the 1st target -#define BLDCNT_TGT1_BG0 (1 << 0) -#define BLDCNT_TGT1_BG1 (1 << 1) -#define BLDCNT_TGT1_BG2 (1 << 2) -#define BLDCNT_TGT1_BG3 (1 << 3) -#define BLDCNT_TGT1_OBJ (1 << 4) -#define BLDCNT_TGT1_BD (1 << 5) -// Bits 6-7 select the special effect -#define BLDCNT_EFFECT_NONE (0 << 6) // no special effect -#define BLDCNT_EFFECT_BLEND (1 << 6) // 1st+2nd targets mixed (controlled by BLDALPHA) -#define BLDCNT_EFFECT_LIGHTEN (2 << 6) // 1st target becomes whiter (controlled by BLDY) -#define BLDCNT_EFFECT_DARKEN (3 << 6) // 1st target becomes blacker (controlled by BLDY) -// Bits 8-13 select layers for the 2nd target -#define BLDCNT_TGT2_BG0 (1 << 8) -#define BLDCNT_TGT2_BG1 (1 << 9) -#define BLDCNT_TGT2_BG2 (1 << 10) -#define BLDCNT_TGT2_BG3 (1 << 11) -#define BLDCNT_TGT2_OBJ (1 << 12) -#define BLDCNT_TGT2_BD (1 << 13) -#define BLDCNT_TGT2_ALL (BLDCNT_TGT2_BG0 | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_BG2 | BLDCNT_TGT2_BG3 | BLDCNT_TGT2_OBJ | BLDCNT_TGT2_BD) + .include "constants/constants.inc" .section script_data, "aw", %progbits @@ -314,7 +287,7 @@ gBattleAnims_Moves:: .4byte Move_FOCUS_PUNCH .4byte Move_SMELLING_SALT .4byte Move_FOLLOW_ME - .4byte Move_ANCIENT_POWER + .4byte Move_NATURE_POWER .4byte Move_CHARGE .4byte Move_TAUNT .4byte Move_HELPING_HAND @@ -402,97 +375,101 @@ gBattleAnims_Moves:: .4byte Move_WATER_PULSE .4byte Move_DOOM_DESIRE .4byte Move_PSYCHO_BOOST - .4byte Move_COUNT + .4byte Move_COUNT @ cannot be reached, because last move is Psycho Boost + .align 2 gBattleAnims_StatusConditions:: - .4byte Status_Poison - .4byte Status_Confusion - .4byte Status_Burn - .4byte Status_Infatuation - .4byte Status_Sleep - .4byte Status_Paralysis - .4byte Status_Freeze - .4byte Status_Curse - .4byte Status_Nightmare + .4byte Status_Poison @ B_ANIM_STATUS_PSN + .4byte Status_Confusion @ B_ANIM_STATUS_CONFUSION + .4byte Status_Burn @ B_ANIM_STATUS_BRN + .4byte Status_Infatuation @ B_ANIM_STATUS_INFATUATION + .4byte Status_Sleep @ B_ANIM_STATUS_SLP + .4byte Status_Paralysis @ B_ANIM_STATUS_PRZ + .4byte Status_Freeze @ B_ANIM_STATUS_FRZ + .4byte Status_Curse @ B_ANIM_STATUS_CURSED + .4byte Status_Nightmare @ B_ANIM_STATUS_NIGHTMARE + .align 2 gBattleAnims_General:: - .4byte General_CastformChange - .4byte General_StatsChange - .4byte General_SubstituteFade - .4byte General_SubstituteAppear - .4byte General_BaitThrow - .4byte General_ItemKnockoff - .4byte General_TurnTrap - .4byte General_ItemEffect - .4byte General_SmokeballEscape - .4byte General_HangedOn - .4byte General_Rain - .4byte General_Sun - .4byte General_Sandstorm - .4byte General_Hail - .4byte General_LeechSeedDrain - .4byte General_MonHit - .4byte General_ItemSteal - .4byte General_SnatchMove - .4byte General_FutureSightHit - .4byte General_DoomDesireHit - .4byte General_FocusPunchSetUp - .4byte General_IngrainHeal - .4byte General_WishHeal - .4byte General_MonScared - .4byte General_GhostGetOut - .4byte General_SilphScoped - .4byte General_SafariRockThrow - .4byte General_SafariReaction + .4byte General_CastformChange @ B_ANIM_CASTFORM_CHANGE + .4byte General_StatsChange @ B_ANIM_STATS_CHANGE + .4byte General_SubstituteFade @ B_ANIM_SUBSTITUTE_FADE + .4byte General_SubstituteAppear @ B_ANIM_SUBSTITUTE_APPEAR + .4byte General_BaitThrow @ B_ANIM_BAIT_THROW + .4byte General_ItemKnockoff @ B_ANIM_ITEM_KNOCKOFF + .4byte General_TurnTrap @ B_ANIM_TURN_TRAP + .4byte General_HeldItemEffect @ B_ANIM_HELD_ITEM_EFFECT + .4byte General_SmokeballEscape @ B_ANIM_SMOKEBALL_ESCAPE + .4byte General_FocusBand @ B_ANIM_FOCUS_BAND + .4byte General_Rain @ B_ANIM_RAIN_CONTINUES + .4byte General_Sun @ B_ANIM_SUN_CONTINUES + .4byte General_Sandstorm @ B_ANIM_SANDSTORM_CONTINUES + .4byte General_Hail @ B_ANIM_HAIL_CONTINUES + .4byte General_LeechSeedDrain @ B_ANIM_LEECH_SEED_DRAIN + .4byte General_MonHit @ B_ANIM_MON_HIT + .4byte General_ItemSteal @ B_ANIM_ITEM_STEAL + .4byte General_SnatchMove @ B_ANIM_SNATCH_MOVE + .4byte General_FutureSightHit @ B_ANIM_FUTURE_SIGHT_HIT + .4byte General_DoomDesireHit @ B_ANIM_DOOM_DESIRE_HIT + .4byte General_FocusPunchSetUp @ B_ANIM_FOCUS_PUNCH_SETUP + .4byte General_IngrainHeal @ B_ANIM_INGRAIN_HEAL + .4byte General_WishHeal @ B_ANIM_WISH_HEAL + .4byte General_MonScared @ B_ANIM_MON_SCARED + .4byte General_GhostGetOut @ B_ANIM_GHOST_GET_OUT + .4byte General_SilphScoped @ B_ANIM_SILPH_SCOPED + .4byte General_SafariRockThrow @ B_ANIM_ROCK_THROW + .4byte General_SafariReaction @ B_ANIM_SAFARI_REACTION + .align 2 gBattleAnims_Special:: - .4byte Special_LevelUp - .4byte Special_SwitchOutPlayerMon - .4byte Special_SwitchOutOpponentMon - .4byte Special_BallThrow - .4byte Special_SafariBallThrow - .4byte Special_SubstituteToMon - .4byte Special_MonToSubstitute + .4byte Special_LevelUp @ B_ANIM_LVL_UP + .4byte Special_SwitchOutPlayerMon @ B_ANIM_SWITCH_OUT_PLAYER_MON + .4byte Special_SwitchOutOpponentMon @ B_ANIM_SWITCH_OUT_OPPONENT_MON + .4byte Special_BallThrow @ B_ANIM_BALL_THROW + .4byte Special_BallThrowWithTrainer @ B_ANIM_BALL_THROW_WITH_TRAINER + .4byte Special_SubstituteToMon @ B_ANIM_SUBSTITUTE_TO_MON + .4byte Special_MonToSubstitute @ B_ANIM_MON_TO_SUBSTITUTE -Move_NONE:: -Move_POUND:: -Move_MIRROR_MOVE:: +Move_NONE: +Move_MIRROR_MOVE: +Move_POUND: loadspritegfx ANIM_TAG_IMPACT - monbg 1 + monbg ANIM_TARGET setalpha 12, 8 - playsewithpan SE_M_DOUBLE_SLAP, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 2 - createvisualtask AnimTask_ShakeMon, 2, 1, 3, 0, 6, 1 + playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 2 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1 waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff end -Move_DOUBLE_SLAP:: +Move_DOUBLE_SLAP: loadspritegfx ANIM_TAG_IMPACT - monbg 1 + monbg ANIM_TARGET setalpha 12, 8 choosetwoturnanim DoubleSlapLeft, DoubleSlapRight -DoubleSlapContinue:: - createvisualtask AnimTask_ShakeMon, 2, 1, 3, 0, 6, 1 - playsewithpan SE_M_DOUBLE_SLAP, 63 + +DoubleSlapContinue: + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1 + playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff end -DoubleSlapLeft:: - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -8, 0, 1, 2 +DoubleSlapLeft: + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -8, 0, ANIM_TARGET, 2 goto DoubleSlapContinue -DoubleSlapRight:: - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 8, 0, 1, 2 +DoubleSlapRight: + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 8, 0, ANIM_TARGET, 2 goto DoubleSlapContinue -Move_POISON_POWDER:: +Move_POISON_POWDER: loadspritegfx ANIM_TAG_POISON_POWDER loadspritegfx ANIM_TAG_POISON_BUBBLE - loopsewithpan SE_M_POISON_POWDER, 63, 10, 6 + loopsewithpan SE_M_POISON_POWDER, SOUND_PAN_TARGET, 10, 6 createsprite gPoisonPowderParticleSpriteTemplate, ANIM_TARGET, 2, -30, -22, 117, 80, 5, 1 createsprite gPoisonPowderParticleSpriteTemplate, ANIM_TARGET, 2, 10, -22, 117, 80, -5, 1 createsprite gPoisonPowderParticleSpriteTemplate, ANIM_TARGET, 2, -25, -22, 117, 112, 5, 3 @@ -514,9 +491,9 @@ Move_POISON_POWDER:: waitforvisualfinish end -Move_STUN_SPORE:: +Move_STUN_SPORE: loadspritegfx ANIM_TAG_STUN_SPORE - loopsewithpan SE_M_POISON_POWDER, 63, 10, 6 + loopsewithpan SE_M_POISON_POWDER, SOUND_PAN_TARGET, 10, 6 createsprite gStunSporeParticleSpriteTemplate, ANIM_TARGET, 2, -30, -22, 117, 80, 5, 1 createsprite gStunSporeParticleSpriteTemplate, ANIM_TARGET, 2, 10, -22, 117, 80, -5, 1 createsprite gStunSporeParticleSpriteTemplate, ANIM_TARGET, 2, -25, -22, 117, 112, 5, 3 @@ -538,9 +515,9 @@ Move_STUN_SPORE:: waitforvisualfinish end -Move_SLEEP_POWDER:: +Move_SLEEP_POWDER: loadspritegfx ANIM_TAG_SLEEP_POWDER - loopsewithpan SE_M_POISON_POWDER, 63, 10, 6 + loopsewithpan SE_M_POISON_POWDER, SOUND_PAN_TARGET, 10, 6 createsprite gSleepPowderParticleSpriteTemplate, ANIM_TARGET, 2, -30, -22, 117, 80, 5, 1 createsprite gSleepPowderParticleSpriteTemplate, ANIM_TARGET, 2, 10, -22, 117, 80, -5, 1 createsprite gSleepPowderParticleSpriteTemplate, ANIM_TARGET, 2, -25, -22, 117, 112, 5, 3 @@ -562,26 +539,26 @@ Move_SLEEP_POWDER:: waitforvisualfinish end -Move_SWIFT:: +Move_SWIFT: loadspritegfx ANIM_TAG_YELLOW_STAR loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER setalpha 12, 8 - playsewithpan SE_M_SWIFT, 192 + playsewithpan SE_M_SWIFT, SOUND_PAN_ATTACKER createsprite gSwiftStarSpriteTemplate, ANIM_TARGET, 3, 20, -10, 20, 0, 22, 20, 1 delay 5 - playsewithpan SE_M_SWIFT, 192 + playsewithpan SE_M_SWIFT, SOUND_PAN_ATTACKER createsprite gSwiftStarSpriteTemplate, ANIM_TARGET, 3, 20, -10, 20, 5, 22, -18, 1 delay 5 - playsewithpan SE_M_SWIFT, 192 + playsewithpan SE_M_SWIFT, SOUND_PAN_ATTACKER createsprite gSwiftStarSpriteTemplate, ANIM_TARGET, 3, 20, -10, 20, -10, 22, 15, 1 - createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 18, 1 - createvisualtask AnimTask_ShakeMon2, 2, 3, 2, 0, 18, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 18, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_DEF_PARTNER, 2, 0, 18, 1 delay 5 - playsewithpan SE_M_SWIFT, 192 + playsewithpan SE_M_SWIFT, SOUND_PAN_ATTACKER createsprite gSwiftStarSpriteTemplate, ANIM_TARGET, 3, 20, -10, 20, 0, 22, -20, 1 delay 5 - playsewithpan SE_M_SWIFT, 192 + playsewithpan SE_M_SWIFT, SOUND_PAN_ATTACKER createsprite gSwiftStarSpriteTemplate, ANIM_TARGET, 3, 20, -10, 20, 0, 22, 12, 1 delay 5 waitforvisualfinish @@ -589,62 +566,62 @@ Move_SWIFT:: blendoff end -Move_STRENGTH:: +Move_STRENGTH: loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER setalpha 12, 8 - playsewithpan SE_M_TAKE_DOWN, 192 - createvisualtask AnimTask_ShakeAndSinkMon, 5, 0, 2, 0, 96, 30 + playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER + createvisualtask AnimTask_ShakeAndSinkMon, 5, ANIM_ATTACKER, 2, 0, 96, 30 waitforvisualfinish delay 10 createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 4 - createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, 1, 18, 6, 2, 4 + createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_TARGET, 18, 6, 2, 4 delay 4 - playsewithpan SE_M_MEGA_KICK2, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 16, 12, 1, 1 + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 16, 12, ANIM_TARGET, 1 delay 4 - playsewithpan SE_M_MEGA_KICK2, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, -16, -12, 1, 1 + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, -16, -12, ANIM_TARGET, 1 delay 4 - playsewithpan SE_M_MEGA_KICK2, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 3, 4, 1, 1 + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 3, 4, ANIM_TARGET, 1 waitforvisualfinish - createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 8, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 8, 1 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff end -Move_TACKLE:: +Move_TACKLE: loadspritegfx ANIM_TAG_IMPACT - monbg 1 + monbg ANIM_TARGET setalpha 12, 8 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 4, 4 delay 6 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 2 - createvisualtask AnimTask_ShakeMon, 2, 1, 3, 0, 6, 1 - playsewithpan SE_M_COMET_PUNCH, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 2 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1 + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff end -Move_BODY_SLAM:: +Move_BODY_SLAM: loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER setalpha 12, 8 - playsewithpan SE_M_TAKE_DOWN, 192 - createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 6, 1, 0 + playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER + createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 6, 1, ANIM_ATTACKER waitforvisualfinish delay 11 createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 0, 26, 0, 0, 5 delay 6 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 4, -10, 0, 1, 0 - loopsewithpan SE_M_MEGA_KICK2, 63, 10, 2 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 4, -10, 0, ANIM_TARGET, 0 + loopsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET, 10, 2 delay 1 createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 1, -28, 0, 0, 3 waitforvisualfinish - createvisualtask AnimTask_ShakeMonInPlace, 2, 1, 4, 0, 12, 1 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_TARGET, 4, 0, 12, 1 waitforvisualfinish delay 10 createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 6 @@ -655,12 +632,12 @@ Move_BODY_SLAM:: blendoff end -Move_SUPERSONIC:: +Move_SUPERSONIC: loadspritegfx ANIM_TAG_GOLD_RING monbg ANIM_ATK_PARTNER - monbgprio_2A 0 + splitbgprio_foes ANIM_ATTACKER setalpha 12, 8 - createvisualtask AnimTask_ShakeMon2, 2, 0, 2, 0, 8, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_ATTACKER, 2, 0, 8, 1 call SupersonicRing call SupersonicRing call SupersonicRing @@ -672,140 +649,142 @@ Move_SUPERSONIC:: blendoff end -SupersonicRing:: - playsewithpan SE_M_SUPERSONIC, 192 - createsprite gSupersonicWaveSpriteTemplate, ANIM_TARGET, 2, 16, 0, 0, 0, 30, 0 +SupersonicRing: + playsewithpan SE_M_SUPERSONIC, SOUND_PAN_ATTACKER + createsprite gSupersonicRingSpriteTemplate, ANIM_TARGET, 2, 16, 0, 0, 0, 30, 0 delay 2 return -Move_SCREECH:: +Move_SCREECH: loadspritegfx ANIM_TAG_PURPLE_RING - createvisualtask AnimTask_ShakeMon2, 2, 0, 3, 0, 2, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_ATTACKER, 3, 0, 2, 1 call ScreechRing call ScreechRing delay 16 - createvisualtask AnimTask_SwayMon, 5, 0, 6, 2048, 2, 1 + createvisualtask AnimTask_SwayMon, 5, 0, 6, 2048, 2, ANIM_TARGET waitforvisualfinish end -ScreechRing:: - playsewithpan SE_M_SCREECH, 192 - createsprite gScreechWaveSpriteTemplate, ANIM_TARGET, 2, 16, 0, 0, 0, 30, 0 +ScreechRing: + playsewithpan SE_M_SCREECH, SOUND_PAN_ATTACKER + createsprite gScreechRingSpriteTemplate, ANIM_TARGET, 2, 16, 0, 0, 0, 30, 0 delay 2 return -Move_FLAME_WHEEL:: +Move_FLAME_WHEEL: loadspritegfx ANIM_TAG_SMALL_EMBER monbg ANIM_DEF_PARTNER - monbgprio_2A 1 + splitbgprio_foes ANIM_TARGET createsprite gFireSpiralOutwardSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 56, 0 - playsewithpan SE_M_FLAME_WHEEL, 192 + playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER delay 2 createsprite gFireSpiralOutwardSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 56, 4 - playsewithpan SE_M_FLAME_WHEEL, 192 + playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER delay 2 createsprite gFireSpiralOutwardSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 56, 8 - playsewithpan SE_M_FLAME_WHEEL, 192 + playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER delay 2 createsprite gFireSpiralOutwardSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 56, 12 - playsewithpan SE_M_FLAME_WHEEL, 192 + playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER delay 2 createsprite gFireSpiralOutwardSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 56, 16 - playsewithpan SE_M_FLAME_WHEEL, 192 + playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER delay 2 createsprite gFireSpiralOutwardSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 56, 20 - playsewithpan SE_M_FLAME_WHEEL, 192 + playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER delay 2 createsprite gFireSpiralOutwardSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 56, 24 - playsewithpan SE_M_FLAME_WHEEL, 192 + playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER waitforvisualfinish createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 0, 24, 0, 0, 6 delay 4 - createvisualtask AnimTask_ShakeMon, 2, 1, 5, 0, 8, 1 - createvisualtask AnimTask_BlendMonInAndOut, 3, 1, 31, 12, 1, 1 - playsewithpan SE_M_FLAME_WHEEL2, 63 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 5, 0, 8, 1 + createvisualtask AnimTask_BlendMonInAndOut, 3, ANIM_TARGET, RGB_RED, 12, 1, 1 + playsewithpan SE_M_FLAME_WHEEL2, SOUND_PAN_TARGET call FireSpreadEffect delay 7 createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 9 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER end + +FlameWheel1: @ Unused createsprite gFireSpiralOutwardSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 50 delay 4 return -Move_PIN_MISSILE:: +Move_PIN_MISSILE: loadspritegfx ANIM_TAG_NEEDLE loadspritegfx ANIM_TAG_IMPACT - monbg 1 - monbgprio_28 1 + monbg ANIM_TARGET + splitbgprio ANIM_TARGET setalpha 12, 8 - playsewithpan SE_M_JUMP_KICK, 192 + playsewithpan SE_M_JUMP_KICK, SOUND_PAN_ATTACKER createsprite gPinMissileSpriteTemplate, ANIM_ATTACKER, 2, 20, -8, -8, -8, 20, -32 delay 15 createsprite gPinMissileSpriteTemplate, ANIM_ATTACKER, 2, 20, -8, 8, 8, 20, -40 delay 4 - playsewithpan SE_M_HORN_ATTACK, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, -8, -8, 1, 2 - createvisualtask AnimTask_ShakeMon2, 2, 1, 3, 0, 2, 1 + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, -8, -8, ANIM_TARGET, 2 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 3, 0, 2, 1 delay 9 createsprite gPinMissileSpriteTemplate, ANIM_ATTACKER, 2, 20, -8, 0, 0, 20, -32 delay 4 - playsewithpan SE_M_HORN_ATTACK, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 8, 8, 1, 2 - createvisualtask AnimTask_ShakeMon2, 2, 1, 3, 0, 2, 1 + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 8, 8, ANIM_TARGET, 2 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 3, 0, 2, 1 delay 14 - playsewithpan SE_M_HORN_ATTACK, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1, 2 - createvisualtask AnimTask_ShakeMon2, 2, 1, 3, 0, 2, 1 + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, ANIM_TARGET, 2 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 3, 0, 2, 1 waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff end -Move_ICICLE_SPEAR:: +Move_ICICLE_SPEAR: loadspritegfx ANIM_TAG_ICICLE_SPEAR loadspritegfx ANIM_TAG_IMPACT - monbg 1 - monbgprio_28 1 + monbg ANIM_TARGET + splitbgprio ANIM_TARGET setalpha 12, 8 - playsewithpan SE_M_ICY_WIND, 192 + playsewithpan SE_M_ICY_WIND, SOUND_PAN_ATTACKER createsprite gIcicleSpearSpriteTemplate, ANIM_ATTACKER, 2, 20, -8, -8, -8, 20, -32 delay 15 createsprite gIcicleSpearSpriteTemplate, ANIM_ATTACKER, 2, 20, -8, 8, 8, 20, -40 delay 4 - playsewithpan SE_M_HORN_ATTACK, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, -8, -8, 1, 2 - createvisualtask AnimTask_ShakeMon2, 2, 1, 3, 0, 2, 1 + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, -8, -8, ANIM_TARGET, 2 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 3, 0, 2, 1 delay 9 createsprite gIcicleSpearSpriteTemplate, ANIM_ATTACKER, 2, 20, -8, 0, 0, 20, -32 delay 4 - playsewithpan SE_M_HORN_ATTACK, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 8, 8, 1, 2 - createvisualtask AnimTask_ShakeMon2, 2, 1, 3, 0, 2, 1 + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 8, 8, ANIM_TARGET, 2 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 3, 0, 2, 1 delay 14 - playsewithpan SE_M_HORN_ATTACK, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1, 2 - createvisualtask AnimTask_ShakeMon2, 2, 1, 3, 0, 2, 1 + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, ANIM_TARGET, 2 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 3, 0, 2, 1 waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff end -Move_TAKE_DOWN:: +Move_TAKE_DOWN: loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER setalpha 12, 8 - playsewithpan SE_M_TAKE_DOWN, 192 - createvisualtask AnimTask_WindUpLunge, 5, 0, -24, 8, 23, 10, 40, 10 + playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER + createvisualtask AnimTask_WindUpLunge, 5, ANIM_ATTACKER, -24, 8, 23, 10, 40, 10 delay 35 - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 1, 0, 10, 0, 0 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 4, -10, 0, 1, 0 - playsewithpan SE_M_MEGA_KICK2, 63 + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG | F_PAL_BATTLERS, 3, 1, RGB_BLACK, 10, RGB_BLACK, 0 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 4, -10, 0, ANIM_TARGET, 0 + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET delay 1 createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 1, -16, 0, 0, 4 waitforvisualfinish - createvisualtask AnimTask_ShakeMonInPlace, 2, 1, 4, 0, 12, 1 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_TARGET, 4, 0, 12, 1 waitforvisualfinish delay 2 createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 5 @@ -816,32 +795,32 @@ Move_TAKE_DOWN:: blendoff end -Move_DOUBLE_EDGE:: +Move_DOUBLE_EDGE: loadspritegfx ANIM_TAG_IMPACT - playsewithpan SE_M_SWIFT, 192 - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 2, 4, 2, RGB_WHITE, 10, 0, 0 + playsewithpan SE_M_SWIFT, SOUND_PAN_ATTACKER + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_ATTACKER, 4, 2, RGB_WHITE, 10, RGB_BLACK, 0 waitforvisualfinish delay 10 - playsewithpan SE_M_SWAGGER, 192 - waitplaysewithpan SE_M_SWAGGER, 192, 8 - createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, 0, 18, 6, 2, 4 + playsewithpan SE_M_SWAGGER, SOUND_PAN_ATTACKER + waitplaysewithpan SE_M_SWAGGER, SOUND_PAN_ATTACKER, 8 + createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_ATTACKER, 18, 6, 2, 4 waitforvisualfinish - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 0, 16, 16, RGB_WHITE + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 0, 16, 16, RGB_WHITE createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 0, 20, 0, 0, 4 delay 3 waitforvisualfinish - playsewithpan SE_M_MEGA_KICK2, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 4, -10, 0, 1, 0 + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 4, -10, 0, ANIM_TARGET, 0 createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 1, -32, 0, 0, 3 waitforvisualfinish - createvisualtask AnimTask_RotateMonSpriteToSide, 2, 8, -256, 0, 0 - createvisualtask AnimTask_RotateMonSpriteToSide, 2, 8, -256, 1, 0 - createvisualtask AnimTask_ShakeMonInPlace, 2, 0, 4, 0, 12, 1 - createvisualtask AnimTask_ShakeMonInPlace, 2, 1, 4, 0, 12, 1 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 16, 0, RGB_WHITE + createvisualtask AnimTask_RotateMonSpriteToSide, 2, 8, -256, ANIM_ATTACKER, 0 + createvisualtask AnimTask_RotateMonSpriteToSide, 2, 8, -256, ANIM_TARGET, 0 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_ATTACKER, 4, 0, 12, 1 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_TARGET, 4, 0, 12, 1 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 2, 16, 0, RGB_WHITE waitforvisualfinish - createvisualtask AnimTask_RotateMonSpriteToSide, 2, 8, -256, 0, 1 - createvisualtask AnimTask_RotateMonSpriteToSide, 2, 8, -256, 1, 1 + createvisualtask AnimTask_RotateMonSpriteToSide, 2, 8, -256, ANIM_ATTACKER, 1 + createvisualtask AnimTask_RotateMonSpriteToSide, 2, 8, -256, ANIM_TARGET, 1 waitforvisualfinish createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 5 delay 3 @@ -849,57 +828,57 @@ Move_DOUBLE_EDGE:: waitforvisualfinish end -Move_POISON_STING:: +Move_POISON_STING: loadspritegfx ANIM_TAG_NEEDLE loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_POISON_BUBBLE - monbg 1 - monbgprio_28 1 + monbg ANIM_TARGET + splitbgprio ANIM_TARGET setalpha 12, 8 - playsewithpan SE_M_RAZOR_WIND2, 192 + playsewithpan SE_M_RAZOR_WIND2, SOUND_PAN_ATTACKER createsprite gLinearStingerSpriteTemplate, ANIM_TARGET, 2, 20, 0, -8, 0, 20 waitforvisualfinish - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1, 2 - createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 5, 1 - playsewithpan SE_M_HORN_ATTACK, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, ANIM_TARGET, 2 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 5, 1 + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET waitforvisualfinish call PoisonBubblesEffect waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff end -Move_TWINEEDLE:: +Move_TWINEEDLE: loadspritegfx ANIM_TAG_NEEDLE loadspritegfx ANIM_TAG_IMPACT - monbg 1 - monbgprio_28 1 + monbg ANIM_TARGET + splitbgprio ANIM_TARGET setalpha 12, 8 - loopsewithpan SE_M_RAZOR_WIND2, 192, 6, 2 + loopsewithpan SE_M_RAZOR_WIND2, SOUND_PAN_ATTACKER, 6, 2 createsprite gLinearStingerSpriteTemplate, ANIM_TARGET, 2, 10, -4, 0, -4, 20 createsprite gLinearStingerSpriteTemplate, ANIM_TARGET, 2, 20, 12, 10, 12, 20 delay 20 - createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 5, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 5, 1 createsprite gHandleInvertHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, -4, 1, 3 - loopsewithpan SE_M_HORN_ATTACK, 63, 5, 2 + loopsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET, 5, 2 delay 1 createsprite gHandleInvertHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 10, 12, 1, 3 waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff end -Move_FIRE_BLAST:: +Move_FIRE_BLAST: loadspritegfx ANIM_TAG_SMALL_EMBER - createsoundtask sub_80DCE10, SE_M_FLAME_WHEEL, SE_M_FLAME_WHEEL2 + createsoundtask SoundTask_FireBlast, SE_M_FLAME_WHEEL, SE_M_FLAME_WHEEL2 call FireBlastRing call FireBlastRing call FireBlastRing delay 24 - createvisualtask AnimTask_BlendSelected, 10, 1, 3, 0, 8, RGB_BLACK + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_BG, 3, 0, 8, RGB_BLACK waitforvisualfinish delay 19 - createvisualtask AnimTask_ShakeMon, 2, 1, 5, 0, 20, 1 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 5, 0, 20, 1 call FireBlastCross delay 3 call FireBlastCross @@ -918,11 +897,11 @@ Move_FIRE_BLAST:: delay 3 call FireBlastCross waitforvisualfinish - createvisualtask AnimTask_BlendSelected, 10, 1, 2, 8, 0, RGB_BLACK + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_BG, 2, 8, 0, RGB_BLACK waitforvisualfinish end -FireBlastRing:: +FireBlastRing: createsprite gFireBlastRingSpriteTemplate, ANIM_TARGET, 2, 0, 0, 0 createsprite gFireBlastRingSpriteTemplate, ANIM_TARGET, 2, 0, 0, 51 createsprite gFireBlastRingSpriteTemplate, ANIM_TARGET, 2, 0, 0, 102 @@ -931,7 +910,7 @@ FireBlastRing:: delay 5 return -FireBlastCross:: +FireBlastCross: createsprite gFireBlastCrossSpriteTemplate, ANIM_TARGET, 2, 0, 0, 10, 0, -2 createsprite gFireBlastCrossSpriteTemplate, ANIM_TARGET, 2, 0, 0, 13, -2, 0 createsprite gFireBlastCrossSpriteTemplate, ANIM_TARGET, 2, 0, 0, 13, 2, 0 @@ -939,205 +918,205 @@ FireBlastCross:: createsprite gFireBlastCrossSpriteTemplate, ANIM_TARGET, 2, 0, 0, 15, 2, 2 return -Move_LEECH_SEED:: +Move_LEECH_SEED: loadspritegfx ANIM_TAG_SEED - playsewithpan SE_M_POISON_POWDER, 192 + playsewithpan SE_M_POISON_POWDER, SOUND_PAN_ATTACKER createsprite gLeechSeedSpriteTemplate, ANIM_TARGET, 2, 15, 0, 0, 24, 35, -32 delay 8 - playsewithpan SE_M_POISON_POWDER, 192 + playsewithpan SE_M_POISON_POWDER, SOUND_PAN_ATTACKER createsprite gLeechSeedSpriteTemplate, ANIM_TARGET, 2, 15, 0, -16, 24, 35, -40 delay 8 - playsewithpan SE_M_POISON_POWDER, 192 + playsewithpan SE_M_POISON_POWDER, SOUND_PAN_ATTACKER createsprite gLeechSeedSpriteTemplate, ANIM_TARGET, 2, 15, 0, 16, 24, 35, -37 delay 12 - loopsewithpan SE_M_TAIL_WHIP, 63, 10, 8 + loopsewithpan SE_M_TAIL_WHIP, SOUND_PAN_TARGET, 10, 8 waitforvisualfinish end -Move_EMBER:: +Move_EMBER: loadspritegfx ANIM_TAG_SMALL_EMBER - loopsewithpan SE_M_EMBER, 192, 5, 2 + loopsewithpan SE_M_EMBER, SOUND_PAN_ATTACKER, 5, 2 createsprite gEmberSpriteTemplate, ANIM_TARGET, 2, 20, 0, -16, 24, 20, 1 delay 4 createsprite gEmberSpriteTemplate, ANIM_TARGET, 2, 20, 0, 0, 24, 20, 1 delay 4 createsprite gEmberSpriteTemplate, ANIM_TARGET, 2, 20, 0, 16, 24, 20, 1 delay 16 - playsewithpan SE_M_FLAME_WHEEL, 63 + playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_TARGET call EmberFireHit call EmberFireHit call EmberFireHit end -EmberFireHit:: - createsprite gEmberFlareSpriteTemplate, ANIM_TARGET, 2, -24, 24, 24, 24, 20, 1, 1 +EmberFireHit: + createsprite gEmberFlareSpriteTemplate, ANIM_TARGET, 2, -24, 24, 24, 24, 20, ANIM_TARGET, 1 delay 4 return -Move_MEGA_PUNCH:: +Move_MEGA_PUNCH: loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_HANDS_AND_FEET - monbg 1 + monbg ANIM_TARGET delay 2 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 0, 0, 16, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 0, 0, 16, RGB_BLACK setalpha 12, 8 - playsewithpan SE_M_MEGA_KICK, 63 + playsewithpan SE_M_MEGA_KICK, SOUND_PAN_TARGET createsprite gMegaPunchKickSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 0, 50 - createvisualtask AnimTask_BlendSelected, 10, 4, 2, 0, 7, RGB_WHITE + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_TARGET, 2, 0, 7, RGB_WHITE delay 50 call SetImpactBackground - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 0 - createvisualtask AnimTask_ShakeMon2, 2, 1, 4, 0, 22, 1 - createvisualtask AnimTask_BlendSelected, 10, 4, 2, 0, 0, RGB_WHITE - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 1, 0, 8, 0, 0 - playsewithpan SE_M_VITAL_THROW2, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 0 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 22, 1 + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_TARGET, 2, 0, 0, RGB_WHITE + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG | F_PAL_BATTLERS, 3, 1, RGB_BLACK, 8, RGB_BLACK, 0 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff delay 2 restorebg waitbgfadein end -SetImpactBackground:: +SetImpactBackground: delay 2 - createvisualtask AnimTask_IsContest, 2, - jumpargeq 7, 1, SetImpactContestsBG - createvisualtask AnimTask_IsTargetPlayerSide, 2, - jumpargeq 7, 0, SetImpactOpponentBG - jumpargeq 7, 1, SetImpactPlayerBG -SetImpactBackgroundRet:: + createvisualtask AnimTask_IsContest, 2 + jumprettrue SetImpactContestsBG + createvisualtask AnimTask_IsTargetPlayerSide, 2 + jumpretfalse SetImpactOpponentBG + jumprettrue SetImpactPlayerBG +SetImpactBackgroundRet: return -SetImpactOpponentBG:: - changebg 4 +SetImpactOpponentBG: + changebg BG_IMPACT_OPPONENT goto SetImpactBackgroundRet -SetImpactPlayerBG:: - changebg 5 +SetImpactPlayerBG: + changebg BG_IMPACT_PLAYER goto SetImpactBackgroundRet -SetImpactContestsBG:: - changebg 6 +SetImpactContestsBG: + changebg BG_IMPACT_CONTESTS goto SetImpactBackgroundRet -Move_MEGA_KICK:: +Move_MEGA_KICK: loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_HANDS_AND_FEET - monbg 1 + monbg ANIM_TARGET delay 2 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 0, 0, 16, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 0, 0, 16, RGB_BLACK setalpha 12, 8 - playsewithpan SE_M_MEGA_KICK, 63 + playsewithpan SE_M_MEGA_KICK, SOUND_PAN_TARGET createsprite gMegaPunchKickSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1, 50 - createvisualtask AnimTask_BlendSelected, 10, 4, 2, 0, 7, RGB_WHITE + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_TARGET, 2, 0, 7, RGB_WHITE delay 50 - playsewithpan SE_M_MEGA_KICK2, 63 + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET call SetImpactBackground - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 0 - createvisualtask AnimTask_ShakeMon2, 2, 1, 4, 0, 22, 1 - createvisualtask AnimTask_BlendSelected, 10, 4, 2, 0, 0, RGB_WHITE - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 1, 0, 8, 0, 0 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 0 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 22, 1 + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_TARGET, 2, 0, 0, RGB_WHITE + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG | F_PAL_BATTLERS, 3, 1, RGB_BLACK, 8, RGB_BLACK, 0 waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff delay 2 restorebg waitbgfadein end -Move_COMET_PUNCH:: +Move_COMET_PUNCH: loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_HANDS_AND_FEET - monbg 1 + monbg ANIM_TARGET setalpha 12, 8 choosetwoturnanim CometPunchLeft, CometPunchRight -CometPunchContinue:: - createvisualtask AnimTask_ShakeMon, 2, 1, 3, 0, 6, 1 - playsewithpan SE_M_COMET_PUNCH, 63 +CometPunchContinue: + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1 + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff end -CometPunchLeft:: - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -8, -8, 1, 2 +CometPunchLeft: + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -8, -8, ANIM_TARGET, 2 createsprite gFistFootSpriteTemplate, ANIM_ATTACKER, 3, -8, 0, 8, 1, 0 goto CometPunchContinue -CometPunchRight:: - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 8, -8, 1, 2 +CometPunchRight: + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 8, -8, ANIM_TARGET, 2 createsprite gFistFootSpriteTemplate, ANIM_ATTACKER, 3, 8, 0, 8, 1, 0 goto CometPunchContinue -Move_SONIC_BOOM:: +Move_SONIC_BOOM: loadspritegfx ANIM_TAG_AIR_WAVE loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER - monbgprio_28 1 + splitbgprio ANIM_TARGET setalpha 12, 8 call SonicBoomProjectile call SonicBoomProjectile call SonicBoomProjectile - createvisualtask AnimTask_ShakeMon, 2, 1, 3, 0, 10, 1 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 10, 1 call SonicBoomHit waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff end -SonicBoomProjectile:: - playsewithpan SE_M_RAZOR_WIND2, 192 +SonicBoomProjectile: + playsewithpan SE_M_RAZOR_WIND2, SOUND_PAN_ATTACKER createsprite gSonicBoomSpriteTemplate, ANIM_TARGET, 2, 16, 0, 0, 0, 15 delay 4 return -SonicBoomHit:: - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, 1, 2 +SonicBoomHit: + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, ANIM_TARGET, 2 delay 4 return -Move_THUNDER_SHOCK:: +Move_THUNDER_SHOCK: loadspritegfx ANIM_TAG_SPARK loadspritegfx ANIM_TAG_SPARK_2 - createvisualtask AnimTask_BlendSelected, 10, 1, 0, 0, 6, RGB_BLACK + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_BG, 0, 0, 6, RGB_BLACK waitforvisualfinish delay 10 createvisualtask AnimTask_ElectricBolt, 5, 0, -44, 0 - playsewithpan SE_M_THUNDERBOLT, 63 + playsewithpan SE_M_THUNDERBOLT, SOUND_PAN_TARGET delay 9 - createvisualtask AnimTask_BlendSelected, 10, 4, 0, 0, 13, RGB_BLACK + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_TARGET, 0, 0, 13, RGB_BLACK waitforvisualfinish - createvisualtask AnimTask_BlendSelected, 10, 4, 0, 13, 0, RGB_BLACK + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_TARGET, 0, 13, 0, RGB_BLACK waitforvisualfinish delay 20 call ElectricityEffect waitforvisualfinish delay 20 - createvisualtask AnimTask_BlendSelected, 10, 1, 0, 6, 0, RGB_BLACK + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_BG, 0, 6, 0, RGB_BLACK waitforvisualfinish end -Move_THUNDERBOLT:: +Move_THUNDERBOLT: loadspritegfx ANIM_TAG_SPARK loadspritegfx ANIM_TAG_SHOCK_3 loadspritegfx ANIM_TAG_SPARK_2 - createvisualtask AnimTask_BlendSelected, 10, 1, 0, 0, 6, RGB_BLACK + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_BG, 0, 0, 6, RGB_BLACK waitforvisualfinish delay 10 createvisualtask AnimTask_ElectricBolt, 5, 24, -52, 0 - playsewithpan SE_M_THUNDERBOLT, 63 + playsewithpan SE_M_THUNDERBOLT, SOUND_PAN_TARGET delay 7 createvisualtask AnimTask_ElectricBolt, 5, -24, -52, 0 - playsewithpan SE_M_THUNDERBOLT, 63 + playsewithpan SE_M_THUNDERBOLT, SOUND_PAN_TARGET delay 7 createvisualtask AnimTask_ElectricBolt, 5, 0, -60, 1 - playsewithpan SE_M_THUNDERBOLT, 63 + playsewithpan SE_M_THUNDERBOLT, SOUND_PAN_TARGET delay 9 - createvisualtask AnimTask_BlendSelected, 10, 4, 0, 0, 13, RGB_BLACK + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_TARGET, 0, 0, 13, RGB_BLACK waitforvisualfinish - createvisualtask AnimTask_BlendSelected, 10, 4, 0, 13, 0, RGB_BLACK + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_TARGET, 0, 13, 0, RGB_BLACK waitforvisualfinish delay 20 createsprite gThunderboltOrbSpriteTemplate, ANIM_TARGET, 3, 44, 0, 0, 3 @@ -1149,128 +1128,129 @@ Move_THUNDERBOLT:: createsprite gSparkElectricityFlashingSpriteTemplate, ANIM_TARGET, 4, 0, 0, 16, 44, 96, 40, 1, -32765 createsprite gSparkElectricityFlashingSpriteTemplate, ANIM_TARGET, 4, 0, 0, 16, 44, 160, 40, 0, -32765 createsprite gSparkElectricityFlashingSpriteTemplate, ANIM_TARGET, 4, 0, 0, 16, 44, 224, 40, 2, -32765 - playsewithpan SE_M_HYPER_BEAM, 63 + playsewithpan SE_M_HYPER_BEAM, SOUND_PAN_TARGET delay 0 - createvisualtask AnimTask_BlendSelected, 10, 1, 0, 2, 2, RGB_BLACK + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_BG, 0, 2, 2, RGB_BLACK delay 6 - createvisualtask AnimTask_BlendSelected, 10, 1, 0, 6, 6, RGB_BLACK + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_BG, 0, 6, 6, RGB_BLACK delay 6 - createvisualtask AnimTask_BlendSelected, 10, 1, 0, 2, 2, RGB_BLACK + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_BG, 0, 2, 2, RGB_BLACK delay 6 - createvisualtask AnimTask_BlendSelected, 10, 1, 0, 6, 6, RGB_BLACK + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_BG, 0, 6, 6, RGB_BLACK waitforvisualfinish delay 20 - waitplaysewithpan SE_M_THUNDERBOLT2, 63, 19 + waitplaysewithpan SE_M_THUNDERBOLT2, SOUND_PAN_TARGET, 19 call ElectricityEffect waitforvisualfinish delay 20 - createvisualtask AnimTask_BlendSelected, 10, 1, 0, 6, 0, RGB_BLACK + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_BG, 0, 6, 0, RGB_BLACK waitforvisualfinish end -Move_THUNDER_WAVE:: +Move_THUNDER_WAVE: loadspritegfx ANIM_TAG_SPARK loadspritegfx ANIM_TAG_SPARK_2 loadspritegfx ANIM_TAG_SPARK_H - createvisualtask AnimTask_BlendSelected, 10, 1, 0, 0, 6, RGB_BLACK + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_BG, 0, 0, 6, RGB_BLACK waitforvisualfinish delay 10 createvisualtask AnimTask_ElectricBolt, 5, 0, -48, 0 - playsewithpan SE_M_THUNDER_WAVE, 63 + playsewithpan SE_M_THUNDER_WAVE, SOUND_PAN_TARGET delay 20 - loopsewithpan SE_M_THUNDERBOLT2, 63, 10, 4 + loopsewithpan SE_M_THUNDERBOLT2, SOUND_PAN_TARGET, 10, 4 createsprite gThunderWaveSpriteTemplate, ANIM_TARGET, 2, -16, -16 delay 4 createsprite gThunderWaveSpriteTemplate, ANIM_TARGET, 2, -16, 0 delay 4 createsprite gThunderWaveSpriteTemplate, ANIM_TARGET, 2, -16, 16 waitforvisualfinish - createvisualtask AnimTask_BlendSelected, 10, 1, 0, 6, 0, RGB_BLACK + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_BG, 0, 6, 0, RGB_BLACK waitforvisualfinish end -Move_BEAT_UP:: +Move_BEAT_UP: loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_HANDS_AND_FEET - monbg 1 + monbg ANIM_TARGET setalpha 12, 8 choosetwoturnanim BeatUpLeft, BeatUpRight -BeatUpContinue:: + +BeatUpContinue: waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff end -BeatUpLeft:: - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, -20, -20, 1, 2 +BeatUpLeft: + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, -20, -20, ANIM_TARGET, 2 createsprite gFistFootSpriteTemplate, ANIM_TARGET, 3, -20, -12, 8, 1, 0 - createvisualtask AnimTask_ShakeMon, 2, 1, 3, 0, 6, 1 - playsewithpan SE_M_VITAL_THROW2, 63 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET delay 8 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 8, 0, 1, 2 + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 8, 0, ANIM_TARGET, 2 createsprite gFistFootSpriteTemplate, ANIM_TARGET, 3, 8, 8, 8, 1, 0 - createvisualtask AnimTask_ShakeMon, 2, 1, 3, 0, 6, 1 - playsewithpan SE_M_VITAL_THROW2, 63 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET goto BeatUpContinue -BeatUpRight:: - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 12, -20, 1, 2 +BeatUpRight: + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 12, -20, ANIM_TARGET, 2 createsprite gFistFootSpriteTemplate, ANIM_TARGET, 3, 12, -12, 8, 1, 0 - createvisualtask AnimTask_ShakeMon, 2, 1, 3, 0, 6, 1 - playsewithpan SE_M_VITAL_THROW2, 63 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET delay 8 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, -12, 0, 1, 2 + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, -12, 0, ANIM_TARGET, 2 createsprite gFistFootSpriteTemplate, ANIM_TARGET, 3, -12, 8, 8, 1, 0 - createvisualtask AnimTask_ShakeMon, 2, 1, 3, 0, 6, 1 - playsewithpan SE_M_VITAL_THROW2, 63 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET goto BeatUpContinue -Move_STOMP:: +Move_STOMP: loadspritegfx ANIM_TAG_HANDS_AND_FEET loadspritegfx ANIM_TAG_IMPACT - monbg 1 + monbg ANIM_TARGET setalpha 12, 8 - playsewithpan SE_M_DOUBLE_TEAM, 63 + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_TARGET createsprite gStompFootSpriteTemplate, ANIM_ATTACKER, 3, 0, -32, 15 delay 19 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, -8, 1, 1 - createvisualtask AnimTask_ShakeMon, 2, 1, 0, 4, 9, 1 - playsewithpan SE_M_MEGA_KICK2, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, -8, ANIM_TARGET, 1 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 4, 9, 1 + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff end -Move_TAIL_WHIP:: - loopsewithpan SE_M_TAIL_WHIP, 192, 24, 3 - createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, 0, 12, 4, 2, 3 +Move_TAIL_WHIP: + loopsewithpan SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER, 24, 3 + createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_ATTACKER, 12, 4, 2, 3 waitforvisualfinish end -Move_CUT:: +Move_CUT: loadspritegfx ANIM_TAG_CUT - monbg 1 + monbg ANIM_TARGET setalpha 12, 8 - playsewithpan SE_M_CUT, 63 + playsewithpan SE_M_CUT, SOUND_PAN_TARGET createsprite gCuttingSliceSpriteTemplate, ANIM_ATTACKER, 2, 40, -32, 0 delay 5 - createvisualtask AnimTask_ShakeMon, 2, 1, 0, 3, 10, 1 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 3, 10, 1 waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff waitforvisualfinish end -Move_HIDDEN_POWER:: +Move_HIDDEN_POWER: loadspritegfx ANIM_TAG_RED_ORB - playsewithpan SE_M_TAKE_DOWN, 192 - createvisualtask AnimTask_ScaleMonAndRestore, 5, -7, -7, 11, 0, 0 + playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER + createvisualtask AnimTask_ScaleMonAndRestore, 5, -7, -7, 11, ANIM_ATTACKER, 0 waitforvisualfinish delay 30 - createvisualtask AnimTask_BlendMonInAndOut, 5, 0, 20479, 12, 5, 1 + createvisualtask AnimTask_BlendMonInAndOut, 5, ANIM_ATTACKER, RGB(31, 31, 19), 12, 5, 1 delay 4 - createvisualtask AnimTask_ScaleMonAndRestore, 5, -7, -7, 11, 0, 0 - playsewithpan SE_M_REVERSAL, 192 + createvisualtask AnimTask_ScaleMonAndRestore, 5, -7, -7, 11, ANIM_ATTACKER, 0 + playsewithpan SE_M_REVERSAL, SOUND_PAN_ATTACKER createsprite gHiddenPowerOrbSpriteTemplate, ANIM_ATTACKER, 2, 26, 0 createsprite gHiddenPowerOrbSpriteTemplate, ANIM_ATTACKER, 2, 26, 42 createsprite gHiddenPowerOrbSpriteTemplate, ANIM_ATTACKER, 2, 26, 84 @@ -1278,9 +1258,9 @@ Move_HIDDEN_POWER:: createsprite gHiddenPowerOrbSpriteTemplate, ANIM_ATTACKER, 2, 26, 168 createsprite gHiddenPowerOrbSpriteTemplate, ANIM_ATTACKER, 2, 26, 210 delay 52 - setarg 7, 65535 - playsewithpan SE_M_REFLECT, 192 - createvisualtask AnimTask_ScaleMonAndRestore, 5, -7, -7, 11, 0, 0 + setarg 7, 0xFFFF + playsewithpan SE_M_REFLECT, SOUND_PAN_ATTACKER + createvisualtask AnimTask_ScaleMonAndRestore, 5, -7, -7, 11, ANIM_ATTACKER, 0 createsprite gHiddenPowerOrbScatterSpriteTemplate, ANIM_TARGET, 2, 0 createsprite gHiddenPowerOrbScatterSpriteTemplate, ANIM_TARGET, 2, 32 createsprite gHiddenPowerOrbScatterSpriteTemplate, ANIM_TARGET, 2, 64 @@ -1291,17 +1271,17 @@ Move_HIDDEN_POWER:: createsprite gHiddenPowerOrbScatterSpriteTemplate, ANIM_TARGET, 2, 224 end -Move_REVERSAL:: +Move_REVERSAL: loadspritegfx ANIM_TAG_BLUE_ORB loadspritegfx ANIM_TAG_HANDS_AND_FEET loadspritegfx ANIM_TAG_IMPACT - playsewithpan SE_M_DETECT, 192 - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 3, RGB_WHITE, 8, 0, 0 + playsewithpan SE_M_DETECT, SOUND_PAN_ATTACKER + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG | F_PAL_BATTLERS, 3, 3, RGB_WHITE, 8, RGB_BLACK, 0 waitforvisualfinish delay 30 - createvisualtask AnimTask_CurseBlendEffect, 2, 31, 3, 2, 0, 10, RGB_WHITE + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_BG | F_PAL_BATTLERS, 3, 2, 0, 10, RGB_WHITE delay 10 - playsewithpan SE_M_REVERSAL, 192 + playsewithpan SE_M_REVERSAL, SOUND_PAN_ATTACKER createsprite gReversalOrbSpriteTemplate, ANIM_ATTACKER, 2, 26, 0 createsprite gReversalOrbSpriteTemplate, ANIM_ATTACKER, 2, 26, 42 createsprite gReversalOrbSpriteTemplate, ANIM_ATTACKER, 2, 26, 84 @@ -1312,14 +1292,14 @@ Move_REVERSAL:: delay 20 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 6, 4 delay 8 - playsewithpan SE_M_VITAL_THROW2, 63 - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 1, RGB_WHITE, 8, 0, 0 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG | F_PAL_BATTLERS, 3, 1, RGB_WHITE, 8, RGB_BLACK, 0 createsprite gFistFootSpriteTemplate, ANIM_TARGET, 4, 0, 0, 10, 1, 0 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, 1, 1 - createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 5, 0, 1, 8, 1, 0 + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, ANIM_TARGET, 1 + createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 5, FALSE, 1, 8, 1, 0 end -Move_PURSUIT:: +Move_PURSUIT: loadspritegfx ANIM_TAG_IMPACT monbg ANIM_TARGET fadetobg BG_DARK @@ -1327,7 +1307,8 @@ Move_PURSUIT:: delay 0 setalpha 12, 8 choosetwoturnanim PursuitNormal, PursuitOnSwitchout -PursuitContinue:: + +PursuitContinue: waitforvisualfinish clearmonbg ANIM_TARGET blendoff @@ -1336,27 +1317,27 @@ PursuitContinue:: waitbgfadein end -PursuitNormal:: - playsewithpan SE_M_COMET_PUNCH, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1, 2 - createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 5, 0, 1, 6, 1, 0 +PursuitNormal: + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, ANIM_TARGET, 2 + createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 5, FALSE, 1, 6, 1, 0 goto PursuitContinue -PursuitOnSwitchout:: - playsewithpan SE_M_COMET_PUNCH, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1, 1 - createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 5, 0, 1, 6, 1, 0 +PursuitOnSwitchout: + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, ANIM_TARGET, 1 + createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 5, FALSE, 1, 6, 1, 0 goto PursuitContinue -Move_SPIKE_CANNON:: +Move_SPIKE_CANNON: loadspritegfx ANIM_TAG_NEEDLE loadspritegfx ANIM_TAG_IMPACT - monbg 1 - monbgprio_28 1 + monbg ANIM_TARGET + splitbgprio ANIM_TARGET setalpha 12, 8 - createvisualtask AnimTask_WindUpLunge, 5, 0, -4, 0, 4, 6, 8, 4 + createvisualtask AnimTask_WindUpLunge, 5, ANIM_ATTACKER, -4, 0, 4, 6, 8, 4 waitforvisualfinish - loopsewithpan SE_M_RAZOR_WIND2, 192, 5, 3 + loopsewithpan SE_M_RAZOR_WIND2, SOUND_PAN_ATTACKER, 5, 3 createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 5 createsprite gLinearStingerSpriteTemplate, ANIM_ATTACKER, 2, 10, -8, -8, -8, 20 createsprite gLinearStingerSpriteTemplate, ANIM_ATTACKER, 2, 18, 0, 0, 0, 20 @@ -1365,57 +1346,57 @@ Move_SPIKE_CANNON:: createsprite gHandleInvertHitSplatSpriteTemplate, ANIM_ATTACKER, 3, -8, -8, 1, 2 createsprite gHandleInvertHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1, 2 createsprite gHandleInvertHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 8, 8, 1, 2 - createvisualtask AnimTask_ShakeMon2, 2, 1, 3, 0, 7, 1 - loopsewithpan SE_M_HORN_ATTACK, 63, 5, 3 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 3, 0, 7, 1 + loopsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET, 5, 3 waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff end -Move_SWORDS_DANCE:: +Move_SWORDS_DANCE: loadspritegfx ANIM_TAG_SWORD monbg ANIM_ATTACKER setalpha 12, 8 - playsewithpan SE_M_SWORDS_DANCE, 192 - createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, 0, 16, 6, 1, 4 + playsewithpan SE_M_SWORDS_DANCE, SOUND_PAN_ATTACKER + createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_ATTACKER, 16, 6, 1, 4 createsprite gSwordsDanceBladeSpriteTemplate, ANIM_ATTACKER, 2, 0, 0 delay 22 - createvisualtask AnimTask_FlashAnimTagWithColor, 2, 10005, 2, 2, 32754, 16, 0, 0 + createvisualtask AnimTask_FlashAnimTagWithColor, 2, ANIM_TAG_SWORD, 2, 2, RGB(18, 31, 31), 16, 0, 0 waitforvisualfinish clearmonbg ANIM_ATTACKER blendoff delay 1 end -Move_PSYCH_UP:: +Move_PSYCH_UP: loadspritegfx ANIM_TAG_SPIRAL monbg ANIM_ATK_PARTNER - createvisualtask AnimTask_BlendColorCycleExclude, 2, 1, 2, 6, 1, 11, 0 + createvisualtask AnimTask_BlendColorCycleExclude, 2, 1, 2, 6, 1, 11, RGB_BLACK setalpha 12, 8 - loopsewithpan SE_M_PSYBEAM2, 192, 5, 10 + loopsewithpan SE_M_PSYBEAM2, SOUND_PAN_ATTACKER, 5, 10 createsprite gPsychUpSpiralSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 0, 0 - createvisualtask AnimTask_SwayMon, 5, 0, 5, 2560, 8, 0 + createvisualtask AnimTask_SwayMon, 5, 0, 5, 2560, 8, ANIM_ATTACKER delay 127 delay 4 - playsewithpan SE_M_PSYBEAM, 192 - createvisualtask AnimTask_ScaleMonAndRestore, 5, -5, -5, 10, 0, 1 - createvisualtask AnimTask_BlendSelected, 9, 2, 2, 10, 0, RGB(31, 31, 0) + playsewithpan SE_M_PSYBEAM, SOUND_PAN_ATTACKER + createvisualtask AnimTask_ScaleMonAndRestore, 5, -5, -5, 10, ANIM_ATTACKER, 1 + createvisualtask AnimTask_BlendBattleAnimPal, 9, F_PAL_ATTACKER, 2, 10, 0, RGB_YELLOW delay 30 clearmonbg ANIM_ATK_PARTNER blendoff waitforvisualfinish end -Move_DIZZY_PUNCH:: +Move_DIZZY_PUNCH: loadspritegfx ANIM_TAG_DUCK loadspritegfx ANIM_TAG_HANDS_AND_FEET loadspritegfx ANIM_TAG_IMPACT - monbg 1 + monbg ANIM_TARGET setalpha 12, 8 call DizzyPunchLunge createsprite gFistFootSpriteTemplate, ANIM_TARGET, 5, 16, 8, 20, 1, 0 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 4, 16, 0, 1, 1 - playsewithpan SE_M_COMET_PUNCH, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 4, 16, 0, ANIM_TARGET, 1 + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET createsprite gDizzyPunchDuckSpriteTemplate, ANIM_TARGET, 3, 16, 8, 160, -32 createsprite gDizzyPunchDuckSpriteTemplate, ANIM_TARGET, 3, 16, 8, -256, -40 createsprite gDizzyPunchDuckSpriteTemplate, ANIM_TARGET, 3, 16, 8, 128, -16 @@ -1425,8 +1406,8 @@ Move_DIZZY_PUNCH:: delay 10 call DizzyPunchLunge createsprite gFistFootSpriteTemplate, ANIM_TARGET, 5, -16, -8, 20, 1, 0 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 4, -16, -16, 1, 1 - playsewithpan SE_M_VITAL_THROW2, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 4, -16, -16, ANIM_TARGET, 1 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET createsprite gDizzyPunchDuckSpriteTemplate, ANIM_TARGET, 3, -16, -8, 160, -32 createsprite gDizzyPunchDuckSpriteTemplate, ANIM_TARGET, 3, -16, -8, -256, -40 createsprite gDizzyPunchDuckSpriteTemplate, ANIM_TARGET, 3, -16, -8, 128, -16 @@ -1434,89 +1415,89 @@ Move_DIZZY_PUNCH:: createsprite gDizzyPunchDuckSpriteTemplate, ANIM_TARGET, 3, -16, -8, -128, -22 createsprite gDizzyPunchDuckSpriteTemplate, ANIM_TARGET, 3, -16, -8, -384, -31 waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff end -DizzyPunchLunge:: +DizzyPunchLunge: createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 6, 4 delay 6 - createvisualtask AnimTask_ShakeMon2, 2, 1, 3, 0, 7, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 3, 0, 7, 1 return -Move_FIRE_SPIN:: +Move_FIRE_SPIN: loadspritegfx ANIM_TAG_SMALL_EMBER - playsewithpan SE_M_SACRED_FIRE2, 63 - createvisualtask AnimTask_ShakeMon, 5, 1, 0, 2, 47, 1 + playsewithpan SE_M_SACRED_FIRE2, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 2, 47, 1 call FireSpinEffect call FireSpinEffect call FireSpinEffect waitforvisualfinish end -FireSpinEffect:: - createsprite gFireSpinSpriteTemplate, ANIM_TARGET, 2, 0, 28, 528, 30, 13, 50, 1 +FireSpinEffect: + createsprite gFireSpinSpriteTemplate, ANIM_TARGET, 2, 0, 28, 528, 30, 13, 50, ANIM_TARGET delay 2 - createsprite gFireSpinSpriteTemplate, ANIM_TARGET, 2, 0, 32, 480, 20, 16, -46, 1 + createsprite gFireSpinSpriteTemplate, ANIM_TARGET, 2, 0, 32, 480, 20, 16, -46, ANIM_TARGET delay 2 - createsprite gFireSpinSpriteTemplate, ANIM_TARGET, 2, 0, 33, 576, 20, 8, 42, 1 + createsprite gFireSpinSpriteTemplate, ANIM_TARGET, 2, 0, 33, 576, 20, 8, 42, ANIM_TARGET delay 2 - createsprite gFireSpinSpriteTemplate, ANIM_TARGET, 2, 0, 31, 400, 25, 11, -42, 1 + createsprite gFireSpinSpriteTemplate, ANIM_TARGET, 2, 0, 31, 400, 25, 11, -42, ANIM_TARGET delay 2 - createsprite gFireSpinSpriteTemplate, ANIM_TARGET, 2, 0, 28, 512, 25, 16, 46, 1 + createsprite gFireSpinSpriteTemplate, ANIM_TARGET, 2, 0, 28, 512, 25, 16, 46, ANIM_TARGET delay 2 - createsprite gFireSpinSpriteTemplate, ANIM_TARGET, 2, 0, 33, 464, 30, 15, -50, 1 + createsprite gFireSpinSpriteTemplate, ANIM_TARGET, 2, 0, 33, 464, 30, 15, -50, ANIM_TARGET delay 2 return -Move_FURY_CUTTER:: +Move_FURY_CUTTER: loadspritegfx ANIM_TAG_CUT - monbg 1 + monbg ANIM_TARGET setalpha 12, 8 - playsewithpan SE_M_RAZOR_WIND, 63 - createvisualtask AnimTask_IsFuryCutterHitRight, 2, - jumpargeq 7, 0, FuryCutterLeft + playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET + createvisualtask AnimTask_IsFuryCutterHitRight, 2 + jumpretfalse FuryCutterLeft goto FuryCutterRight -FuryCutterContinue:: - createvisualtask AnimTask_GetFuryCutterHitCount, 2, - jumpargeq 7, 1, FuryCutterContinue2 - jumpargeq 7, 2, FuryCutterMedium - jumpargeq 7, 3, FuryCutterStrong +FuryCutterContinue: + createvisualtask AnimTask_GetFuryCutterHitCount, 2 + jumpreteq 1, FuryCutterContinue2 + jumpreteq 2, FuryCutterMedium + jumpreteq 3, FuryCutterStrong goto FuryCutterStrongest -FuryCutterContinue2:: +FuryCutterContinue2: delay 5 - createvisualtask AnimTask_ShakeMon, 2, 1, 0, 3, 10, 1 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 3, 10, 1 waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff waitforvisualfinish end -FuryCutterLeft:: +FuryCutterLeft: createsprite gCuttingSliceSpriteTemplate, ANIM_ATTACKER, 2, 40, -32, 0 goto FuryCutterContinue -FuryCutterRight:: +FuryCutterRight: createsprite gCuttingSliceSpriteTemplate, ANIM_ATTACKER, 2, 40, -32, 1 goto FuryCutterContinue -FuryCutterMedium:: - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 1, 10505, 4, 0, 0 +FuryCutterMedium: + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG | F_PAL_BATTLERS, 3, 1, RGB(9, 8, 10), 4, RGB_BLACK, 0 goto FuryCutterContinue2 -FuryCutterStrong:: - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 3, 10505, 4, 0, 0 +FuryCutterStrong: + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG | F_PAL_BATTLERS, 3, 3, RGB(9, 8, 10), 4, RGB_BLACK, 0 goto FuryCutterContinue2 -FuryCutterStrongest:: - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 3, 10505, 4, 0, 0 +FuryCutterStrongest: + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG | F_PAL_BATTLERS, 3, 3, RGB(9, 8, 10), 4, RGB_BLACK, 0 goto FuryCutterContinue2 -Move_SELF_DESTRUCT:: +Move_SELF_DESTRUCT: loadspritegfx ANIM_TAG_EXPLOSION - createvisualtask AnimTask_BlendSelected, 10, 2, 1, 0, 9, RGB(31, 0, 0) + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_ATTACKER, 1, 0, 9, RGB_RED createvisualtask AnimTask_ShakeMon2, 5, 4, 6, 0, 38, 1 createvisualtask AnimTask_ShakeMon2, 5, 5, 6, 0, 38, 1 createvisualtask AnimTask_ShakeMon2, 5, 6, 6, 0, 38, 1 @@ -1525,74 +1506,74 @@ Move_SELF_DESTRUCT:: call SelfDestructExplode call SelfDestructExplode waitforvisualfinish - createvisualtask AnimTask_BlendSelected, 10, 2, 1, 9, 0, RGB(31, 0, 0) + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_ATTACKER, 1, 9, 0, RGB_RED end -SelfDestructExplode:: - playsewithpan SE_M_SELF_DESTRUCT, 192 +SelfDestructExplode: + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_ATTACKER createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 0, 1 delay 6 - playsewithpan SE_M_SELF_DESTRUCT, 192 + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_ATTACKER createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, 24, -24, 0, 1 delay 6 - playsewithpan SE_M_SELF_DESTRUCT, 192 + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_ATTACKER createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, -16, 16, 0, 1 delay 6 - playsewithpan SE_M_SELF_DESTRUCT, 192 + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_ATTACKER createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, -24, -12, 0, 1 delay 6 - playsewithpan SE_M_SELF_DESTRUCT, 192 + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_ATTACKER createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, 16, 16, 0, 1 delay 6 return -Move_SLAM:: +Move_SLAM: loadspritegfx ANIM_TAG_SLAM_HIT loadspritegfx ANIM_TAG_IMPACT - monbg 1 + monbg ANIM_TARGET setalpha 12, 8 - playsewithpan SE_M_COMET_PUNCH, 192 + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_ATTACKER createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 0, 20, 3, 0, 4 delay 1 createsprite gSlamHitSpriteTemplate, ANIM_ATTACKER, 2, 0, 0 delay 3 - playsewithpan SE_M_MEGA_KICK2, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1, 1 + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, ANIM_TARGET, 1 createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 1, -12, 10, 0, 3 createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 5 delay 3 - createvisualtask AnimTask_ShakeMonInPlace, 2, 1, 0, 3, 6, 1 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_TARGET, 0, 3, 6, 1 waitforvisualfinish delay 5 createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 1, 0, 6 waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff end -Move_VINE_WHIP:: +Move_VINE_WHIP: loadspritegfx ANIM_TAG_WHIP_HIT - playsewithpan SE_M_JUMP_KICK, 192 + playsewithpan SE_M_JUMP_KICK, SOUND_PAN_ATTACKER createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 4, 6 delay 6 - playsewithpan SE_M_SCRATCH, 63 + playsewithpan SE_M_SCRATCH, SOUND_PAN_TARGET createsprite gVineWhipSpriteTemplate, ANIM_TARGET, 2, 0, 0 delay 6 - createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 6, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 6, 1 end -Move_DRILL_PECK:: +Move_DRILL_PECK: loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_WHIRLWIND_LINES createsprite gBowMonSpriteTemplate, ANIM_ATTACKER, 2, 0 - playsewithpan SE_M_HEADBUTT, 192 + playsewithpan SE_M_HEADBUTT, SOUND_PAN_ATTACKER waitforvisualfinish delay 2 createsprite gBowMonSpriteTemplate, ANIM_ATTACKER, 2, 1 delay 2 - loopsewithpan SE_M_HORN_ATTACK, 63, 4, 8 + loopsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET, 4, 8 createvisualtask AnimTask_DrillPeckHitSplats, 5 - createvisualtask AnimTask_ShakeMon2, 2, 1, 4, 0, 18, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 18, 1 waitforvisualfinish createsprite gBowMonSpriteTemplate, ANIM_ATTACKER, 2, 2 waitforvisualfinish @@ -1600,37 +1581,37 @@ Move_DRILL_PECK:: waitforvisualfinish end -Move_WATERFALL:: +Move_WATERFALL: loadspritegfx ANIM_TAG_WATER_IMPACT loadspritegfx ANIM_TAG_SMALL_BUBBLES loadspritegfx ANIM_TAG_ICE_CRYSTALS monbg ANIM_DEF_PARTNER setalpha 12, 8 - createvisualtask AnimTask_ShakeMon, 5, 0, 0, 2, 23, 1 + createvisualtask AnimTask_ShakeMon, 5, ANIM_ATTACKER, 0, 2, 23, 1 delay 5 - playsewithpan SE_M_CRABHAMMER, 192 - createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, 10, 10, 25, 0 + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_ATTACKER + createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, 10, 10, 25, ANIM_ATTACKER delay 4 - playsewithpan SE_M_CRABHAMMER, 192 - createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, -15, 0, 25, 0 + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_ATTACKER + createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, -15, 0, 25, ANIM_ATTACKER delay 4 - playsewithpan SE_M_CRABHAMMER, 192 - createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, 20, 10, 25, 0 + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_ATTACKER + createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, 20, 10, 25, ANIM_ATTACKER delay 4 - playsewithpan SE_M_CRABHAMMER, 192 - createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, 0, -10, 25, 0 + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_ATTACKER + createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, 0, -10, 25, ANIM_ATTACKER delay 4 - playsewithpan SE_M_CRABHAMMER, 192 - createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, -10, 15, 25, 0 + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_ATTACKER + createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, -10, 15, 25, ANIM_ATTACKER delay 4 - playsewithpan SE_M_CRABHAMMER, 192 - createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, 25, 20, 25, 0 + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_ATTACKER + createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, 25, 20, 25, ANIM_ATTACKER delay 4 - playsewithpan SE_M_CRABHAMMER, 192 - createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, -20, 20, 25, 0 + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_ATTACKER + createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, -20, 20, 25, ANIM_ATTACKER delay 4 - playsewithpan SE_M_CRABHAMMER, 192 - createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, 12, 0, 25, 0 + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_ATTACKER + createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, 12, 0, 25, ANIM_ATTACKER waitforvisualfinish delay 10 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 6, 5 @@ -1641,49 +1622,49 @@ Move_WATERFALL:: blendoff end -RisingWaterHitEffect:: - playsewithpan SE_M_WATERFALL, 63 - createvisualtask AnimTask_ShakeMon2, 5, 1, 4, 0, 17, 1 - createsprite gWaterHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 20, 1, 1 +RisingWaterHitEffect: + playsewithpan SE_M_WATERFALL, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMon2, 5, ANIM_TARGET, 4, 0, 17, 1 + createsprite gWaterHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 20, ANIM_TARGET, 1 createsprite gSmallDriftingBubblesSpriteTemplate, ANIM_ATTACKER, 4, 0, 20 createsprite gSmallDriftingBubblesSpriteTemplate, ANIM_ATTACKER, 4, 0, 20 delay 2 - createsprite gWaterHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 15, 1, 1 + createsprite gWaterHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 15, ANIM_TARGET, 1 createsprite gSmallDriftingBubblesSpriteTemplate, ANIM_ATTACKER, 4, 0, 15 createsprite gSmallDriftingBubblesSpriteTemplate, ANIM_ATTACKER, 4, 0, 15 delay 2 - createsprite gWaterHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 10, 1, 1 + createsprite gWaterHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 10, ANIM_TARGET, 1 createsprite gSmallDriftingBubblesSpriteTemplate, ANIM_ATTACKER, 4, 0, 10 createsprite gSmallDriftingBubblesSpriteTemplate, ANIM_ATTACKER, 4, 0, 10 delay 2 - createsprite gWaterHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 1, 1 + createsprite gWaterHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, ANIM_TARGET, 1 createsprite gSmallDriftingBubblesSpriteTemplate, ANIM_ATTACKER, 4, 0, 5 createsprite gSmallDriftingBubblesSpriteTemplate, ANIM_ATTACKER, 4, 0, 5 delay 2 - createsprite gWaterHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1, 1 + createsprite gWaterHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, ANIM_TARGET, 1 createsprite gSmallDriftingBubblesSpriteTemplate, ANIM_ATTACKER, 4, 0, 0 createsprite gSmallDriftingBubblesSpriteTemplate, ANIM_ATTACKER, 4, 0, 0 delay 2 - createsprite gWaterHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, -5, 1, 1 + createsprite gWaterHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, -5, ANIM_TARGET, 1 createsprite gSmallDriftingBubblesSpriteTemplate, ANIM_ATTACKER, 4, 0, -5 createsprite gSmallDriftingBubblesSpriteTemplate, ANIM_ATTACKER, 4, 0, -5 delay 2 - createsprite gWaterHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, -10, 1, 1 + createsprite gWaterHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, -10, ANIM_TARGET, 1 createsprite gSmallDriftingBubblesSpriteTemplate, ANIM_ATTACKER, 4, 0, -10 createsprite gSmallDriftingBubblesSpriteTemplate, ANIM_ATTACKER, 4, 0, -10 delay 2 - createsprite gWaterHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, -15, 1, 1 + createsprite gWaterHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, -15, ANIM_TARGET, 1 createsprite gSmallDriftingBubblesSpriteTemplate, ANIM_ATTACKER, 4, 0, -15 createsprite gSmallDriftingBubblesSpriteTemplate, ANIM_ATTACKER, 4, 0, -15 delay 2 - createsprite gWaterHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, -20, 1, 1 + createsprite gWaterHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, -20, ANIM_TARGET, 1 createsprite gSmallDriftingBubblesSpriteTemplate, ANIM_ATTACKER, 4, 0, -20 createsprite gSmallDriftingBubblesSpriteTemplate, ANIM_ATTACKER, 4, 0, -20 return -Move_EXPLOSION:: +Move_EXPLOSION: loadspritegfx ANIM_TAG_EXPLOSION - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 8, 9, 8474, 8, 0, 8 + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 8, 9, RGB(26, 8, 8), 8, RGB_BLACK, 8 createvisualtask AnimTask_ShakeMon2, 5, 4, 8, 0, 40, 1 createvisualtask AnimTask_ShakeMon2, 5, 5, 8, 0, 40, 1 createvisualtask AnimTask_ShakeMon2, 5, 6, 8, 0, 40, 1 @@ -1692,251 +1673,252 @@ Move_EXPLOSION:: call Explosion1 call Explosion1 waitforvisualfinish - createvisualtask AnimTask_BlendSelected, 10, 1, 1, 16, 16, RGB_WHITE + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_BG, 1, 16, 16, RGB_WHITE delay 50 - createvisualtask AnimTask_BlendSelected, 10, 1, 3, 16, 0, RGB_WHITE + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_BG, 3, 16, 0, RGB_WHITE end -Explosion1:: - playsewithpan SE_M_EXPLOSION, 192 +Explosion1: + playsewithpan SE_M_EXPLOSION, SOUND_PAN_ATTACKER createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 0, 1 delay 6 - playsewithpan SE_M_EXPLOSION, 192 + playsewithpan SE_M_EXPLOSION, SOUND_PAN_ATTACKER createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, 24, -24, 0, 1 delay 6 - playsewithpan SE_M_EXPLOSION, 192 + playsewithpan SE_M_EXPLOSION, SOUND_PAN_ATTACKER createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, -16, 16, 0, 1 delay 6 - playsewithpan SE_M_EXPLOSION, 192 + playsewithpan SE_M_EXPLOSION, SOUND_PAN_ATTACKER createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, -24, -12, 0, 1 delay 6 - playsewithpan SE_M_EXPLOSION, 192 + playsewithpan SE_M_EXPLOSION, SOUND_PAN_ATTACKER createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, 16, 16, 0, 1 delay 6 return -Move_DEFENSE_CURL:: +Move_DEFENSE_CURL: loadspritegfx ANIM_TAG_ECLIPSING_ORB - loopsewithpan SE_M_TRI_ATTACK, 192, 18, 3 - createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, 0, 0 - createvisualtask AnimTask_DefenseCurlDeformMon, 5, + loopsewithpan SE_M_TRI_ATTACK, SOUND_PAN_ATTACKER, 18, 3 + createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, ANIM_ATTACKER, 0 + createvisualtask AnimTask_DefenseCurlDeformMon, 5 waitforvisualfinish createsprite gEclipsingOrbSpriteTemplate, ANIM_ATTACKER, 2, 0, 6, 0, 1 waitforvisualfinish - createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, 0, 1 + createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, ANIM_ATTACKER, 1 waitforvisualfinish end -Move_PROTECT:: +Move_PROTECT: loadspritegfx ANIM_TAG_PROTECT monbg ANIM_ATK_PARTNER - monbgprio_28 0 - waitplaysewithpan SE_M_REFLECT, 192, 16 - createsprite gProtectWallSpriteTemplate, ANIM_ATTACKER, 2, 24, 0, 90 + splitbgprio ANIM_ATTACKER + waitplaysewithpan SE_M_REFLECT, SOUND_PAN_ATTACKER, 16 + createsprite gProtectSpriteTemplate, ANIM_ATTACKER, 2, 24, 0, 90 waitforvisualfinish clearmonbg ANIM_ATK_PARTNER end -Move_DETECT:: +Move_DETECT: loadspritegfx ANIM_TAG_SPARKLE_4 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 0, 9, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 2, 0, 9, RGB_BLACK waitforvisualfinish - createvisualtask AnimTask_BlendSelected, 10, 2, 1, 0, 9, RGB_WHITE + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_ATTACKER, 1, 0, 9, RGB_WHITE delay 18 - playsewithpan SE_M_DETECT, 192 - createsprite gSpriteTemplate_83BF480, ANIM_ATTACKER, 13, 20, -20 + playsewithpan SE_M_DETECT, SOUND_PAN_ATTACKER + createsprite gSpinningSparkleSpriteTemplate, ANIM_ATTACKER, 13, 20, -20 waitforvisualfinish delay 10 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 9, 0, 0 - createvisualtask AnimTask_BlendSelected, 10, 2, 2, 9, 0, RGB_WHITE + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 2, 9, 0, RGB_BLACK + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_ATTACKER, 2, 9, 0, RGB_WHITE waitforvisualfinish end -Move_FRUSTRATION:: +Move_FRUSTRATION: loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_ANGER monbg ANIM_DEF_PARTNER setalpha 12, 8 - createvisualtask AnimTask_GetFrustrationPowerLevel, 1, - jumpargeq 7, 0, Frustration_Strongest - jumpargeq 7, 1, Frustration_Strong - jumpargeq 7, 2, Frustration_Medium + createvisualtask AnimTask_GetFrustrationPowerLevel, 1 + jumpreteq 0, Frustration_Strongest + jumpreteq 1, Frustration_Strong + jumpreteq 2, Frustration_Medium goto Frustration_Weak -Frustration_Continue:: + +Frustration_Continue: waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff end -Frustration_Strongest:: - playsewithpan SE_M_DRAGON_RAGE, 192 - createvisualtask AnimTask_ShakeMon2, 5, 0, 1, 0, 15, 1 - createvisualtask AnimTask_BlendSelected, 10, 2, 3, 0, 9, RGB(31, 0, 0) +Frustration_Strongest: + playsewithpan SE_M_DRAGON_RAGE, SOUND_PAN_ATTACKER + createvisualtask AnimTask_ShakeMon2, 5, ANIM_ATTACKER, 1, 0, 15, 1 + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_ATTACKER, 3, 0, 9, RGB_RED waitforvisualfinish delay 20 - playsewithpan SE_M_SWAGGER2, 192 + playsewithpan SE_M_SWAGGER2, SOUND_PAN_ATTACKER createsprite gAngerMarkSpriteTemplate, ANIM_ATTACKER, 2, 0, 20, -28 waitforvisualfinish - playsewithpan SE_M_SWAGGER2, 192 + playsewithpan SE_M_SWAGGER2, SOUND_PAN_ATTACKER createsprite gAngerMarkSpriteTemplate, ANIM_ATTACKER, 2, 0, 20, -28 waitforvisualfinish delay 10 - createvisualtask AnimTask_SwayMon, 5, 0, 16, 6144, 8, 0 + createvisualtask AnimTask_SwayMon, 5, 0, 16, 6144, 8, ANIM_ATTACKER delay 5 - createvisualtask AnimTask_ShakeMon2, 5, 1, 4, 0, 30, 1 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1, 0 - playsewithpan SE_M_COMET_PUNCH, 63 + createvisualtask AnimTask_ShakeMon2, 5, ANIM_TARGET, 4, 0, 30, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, ANIM_TARGET, 0 + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET delay 5 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 24, 8, 1, 0 - playsewithpan SE_M_COMET_PUNCH, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 24, 8, ANIM_TARGET, 0 + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET delay 5 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, -24, -16, 1, 0 - playsewithpan SE_M_COMET_PUNCH, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, -24, -16, ANIM_TARGET, 0 + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET delay 5 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 8, 4, 1, 0 - playsewithpan SE_M_COMET_PUNCH, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 8, 4, ANIM_TARGET, 0 + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET delay 5 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, -16, 19, 1, 0 - playsewithpan SE_M_COMET_PUNCH, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, -16, 19, ANIM_TARGET, 0 + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET delay 5 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 18, -18, 1, 0 - playsewithpan SE_M_COMET_PUNCH, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 18, -18, ANIM_TARGET, 0 + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET waitforvisualfinish - createvisualtask AnimTask_BlendSelected, 10, 2, 3, 9, 0, RGB(31, 0, 0) + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_ATTACKER, 3, 9, 0, RGB_RED goto Frustration_Continue -Frustration_Strong:: - playsewithpan SE_M_DRAGON_RAGE, 192 - createvisualtask AnimTask_ShakeMon2, 5, 0, 1, 0, 15, 1 - createvisualtask AnimTask_BlendSelected, 10, 2, 3, 0, 9, RGB(31, 0, 0) +Frustration_Strong: + playsewithpan SE_M_DRAGON_RAGE, SOUND_PAN_ATTACKER + createvisualtask AnimTask_ShakeMon2, 5, ANIM_ATTACKER, 1, 0, 15, 1 + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_ATTACKER, 3, 0, 9, RGB_RED waitforvisualfinish delay 20 - playsewithpan SE_M_SWAGGER2, 192 + playsewithpan SE_M_SWAGGER2, SOUND_PAN_ATTACKER createsprite gAngerMarkSpriteTemplate, ANIM_ATTACKER, 2, 0, 20, -28 waitforvisualfinish delay 5 - createvisualtask AnimTask_StrongFrustrationGrowAndShrink, 5, + createvisualtask AnimTask_StrongFrustrationGrowAndShrink, 5 delay 7 - playsewithpan SE_M_COMET_PUNCH, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 8, 1, 1 - createvisualtask AnimTask_ShakeMon2, 5, 1, 4, 0, 6, 1 + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 8, ANIM_TARGET, 1 + createvisualtask AnimTask_ShakeMon2, 5, ANIM_TARGET, 4, 0, 6, 1 delay 14 - playsewithpan SE_M_COMET_PUNCH, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 12, -6, 1, 1 - createvisualtask AnimTask_ShakeMon2, 5, 1, 4, 0, 6, 1 + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 12, -6, ANIM_TARGET, 1 + createvisualtask AnimTask_ShakeMon2, 5, ANIM_TARGET, 4, 0, 6, 1 delay 14 - playsewithpan SE_M_COMET_PUNCH, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, -12, -6, 1, 1 - createvisualtask AnimTask_ShakeMon2, 5, 1, 4, 0, 6, 1 + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, -12, -6, ANIM_TARGET, 1 + createvisualtask AnimTask_ShakeMon2, 5, ANIM_TARGET, 4, 0, 6, 1 waitforvisualfinish - createvisualtask AnimTask_BlendSelected, 10, 2, 3, 9, 0, RGB(31, 0, 0) + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_ATTACKER, 3, 9, 0, RGB_RED goto Frustration_Continue -Frustration_Medium:: - playsewithpan SE_M_SWAGGER2, 192 +Frustration_Medium: + playsewithpan SE_M_SWAGGER2, SOUND_PAN_ATTACKER createsprite gAngerMarkSpriteTemplate, ANIM_ATTACKER, 2, 0, 20, -28 waitforvisualfinish delay 5 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 4, 4 delay 6 - playsewithpan SE_M_COMET_PUNCH, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 10, 4, 1, 1 - createvisualtask AnimTask_ShakeMon2, 2, 1, 3, 0, 6, 1 + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 10, 4, ANIM_TARGET, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 3, 0, 6, 1 waitforvisualfinish createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 4, 4 delay 6 - playsewithpan SE_M_COMET_PUNCH, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -10, -4, 1, 2 - createvisualtask AnimTask_ShakeMon2, 2, 1, 3, 0, 6, 1 + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -10, -4, ANIM_TARGET, 2 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 3, 0, 6, 1 goto Frustration_Continue -Frustration_Weak:: +Frustration_Weak: createsprite gWeakFrustrationAngerMarkSpriteTemplate, ANIM_ATTACKER, 2, 20, -28 waitforvisualfinish delay 10 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 10, 2 delay 12 - playsewithpan SE_M_COMET_PUNCH, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 2 - createvisualtask AnimTask_ShakeMon2, 2, 1, 1, 0, 6, 1 + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 2 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 1, 0, 6, 1 goto Frustration_Continue -Move_SAFEGUARD:: +Move_SAFEGUARD: loadspritegfx ANIM_TAG_GUARD_RING monbg ANIM_ATK_PARTNER setalpha 8, 8 - playsewithpan SE_M_MILK_DRINK, 192 - createsprite gGuardRingSpriteTemplate, ANIM_ATTACKER, 2, + playsewithpan SE_M_MILK_DRINK, SOUND_PAN_ATTACKER + createsprite gGuardRingSpriteTemplate, ANIM_ATTACKER, 2 delay 4 - createsprite gGuardRingSpriteTemplate, ANIM_ATTACKER, 2, + createsprite gGuardRingSpriteTemplate, ANIM_ATTACKER, 2 delay 4 - createsprite gGuardRingSpriteTemplate, ANIM_ATTACKER, 2, + createsprite gGuardRingSpriteTemplate, ANIM_ATTACKER, 2 waitforvisualfinish - playsewithpan SE_SHINY, 192 - createvisualtask AnimTask_CurseBlendEffect, 2, 10, 0, 2, 0, 10, RGB_WHITE + playsewithpan SE_SHINY, SOUND_PAN_ATTACKER + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_ATK_SIDE, 0, 2, 0, 10, RGB_WHITE waitforvisualfinish clearmonbg ANIM_ATK_PARTNER blendoff end -Move_PAIN_SPLIT:: +Move_PAIN_SPLIT: loadspritegfx ANIM_TAG_PAIN_SPLIT - createsprite gPainSplitProjectileSpriteTemplate, ANIM_ATTACKER, 2, -8, -42, 0 - createsprite gPainSplitProjectileSpriteTemplate, ANIM_TARGET, 2, -8, -42, 1 + createsprite gPainSplitProjectileSpriteTemplate, ANIM_ATTACKER, 2, -8, -42, ANIM_ATTACKER + createsprite gPainSplitProjectileSpriteTemplate, ANIM_TARGET, 2, -8, -42, ANIM_TARGET delay 10 playsewithpan SE_M_SWAGGER2, 0 - createvisualtask AnimTask_PainSplitMovement, 2, 0, 0 - createvisualtask AnimTask_PainSplitMovement, 2, 1, 0 + createvisualtask AnimTask_PainSplitMovement, 2, ANIM_ATTACKER, 0 + createvisualtask AnimTask_PainSplitMovement, 2, ANIM_TARGET, 0 waitforvisualfinish - createsprite gPainSplitProjectileSpriteTemplate, ANIM_ATTACKER, 2, -24, -42, 0 - createsprite gPainSplitProjectileSpriteTemplate, ANIM_TARGET, 2, -24, -42, 1 + createsprite gPainSplitProjectileSpriteTemplate, ANIM_ATTACKER, 2, -24, -42, ANIM_ATTACKER + createsprite gPainSplitProjectileSpriteTemplate, ANIM_TARGET, 2, -24, -42, ANIM_TARGET delay 10 playsewithpan SE_M_SWAGGER2, 0 - createvisualtask AnimTask_PainSplitMovement, 2, 0, 1 - createvisualtask AnimTask_PainSplitMovement, 2, 1, 1 + createvisualtask AnimTask_PainSplitMovement, 2, ANIM_ATTACKER, 1 + createvisualtask AnimTask_PainSplitMovement, 2, ANIM_TARGET, 1 waitforvisualfinish - createsprite gPainSplitProjectileSpriteTemplate, ANIM_ATTACKER, 2, 8, -42, 0 - createsprite gPainSplitProjectileSpriteTemplate, ANIM_TARGET, 2, 8, -42, 1 + createsprite gPainSplitProjectileSpriteTemplate, ANIM_ATTACKER, 2, 8, -42, ANIM_ATTACKER + createsprite gPainSplitProjectileSpriteTemplate, ANIM_TARGET, 2, 8, -42, ANIM_TARGET delay 10 playsewithpan SE_M_SWAGGER2, 0 - createvisualtask AnimTask_PainSplitMovement, 2, 0, 2 - createvisualtask AnimTask_PainSplitMovement, 2, 1, 2 + createvisualtask AnimTask_PainSplitMovement, 2, ANIM_ATTACKER, 2 + createvisualtask AnimTask_PainSplitMovement, 2, ANIM_TARGET, 2 end -Move_VICE_GRIP:: +Move_VICE_GRIP: loadspritegfx ANIM_TAG_CUT loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER setalpha 12, 8 - playsewithpan SE_M_VICEGRIP, 63 + playsewithpan SE_M_VICEGRIP, SOUND_PAN_TARGET createsprite gViceGripSpriteTemplate, ANIM_ATTACKER, 2, 0 createsprite gViceGripSpriteTemplate, ANIM_ATTACKER, 2, 1 delay 9 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 1, 0, 0, 1, 2 - createvisualtask AnimTask_ShakeMon2, 5, 1, 2, 0, 5, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 1, 0, 0, ANIM_TARGET, 2 + createvisualtask AnimTask_ShakeMon2, 5, ANIM_TARGET, 2, 0, 5, 1 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff end -Move_GUILLOTINE:: +Move_GUILLOTINE: loadspritegfx ANIM_TAG_CUT loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER setalpha 12, 8 - fadetobgfromset 12, 13, 14 + fadetobgfromset BG_GUILLOTINE_OPPONENT, BG_GUILLOTINE_PLAYER, BG_GUILLOTINE_CONTESTS waitbgfadein - playsewithpan SE_M_VICEGRIP, 63 + playsewithpan SE_M_VICEGRIP, SOUND_PAN_TARGET createsprite gGuillotineSpriteTemplate, ANIM_ATTACKER, 2, 0 createsprite gGuillotineSpriteTemplate, ANIM_ATTACKER, 2, 1 - createvisualtask AnimTask_BlendSelected, 10, 4, 2, 0, 16, RGB_BLACK + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_TARGET, 2, 0, 16, RGB_BLACK delay 9 - createvisualtask AnimTask_ShakeMon2, 5, 1, 2, 0, 23, 1 + createvisualtask AnimTask_ShakeMon2, 5, ANIM_TARGET, 2, 0, 23, 1 delay 46 - createvisualtask AnimTask_ShakeMon2, 5, 1, 4, 0, 8, 1 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1, 0 - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 1, 0, 8, 0, 0 - playsewithpan SE_M_RAZOR_WIND, 63 + createvisualtask AnimTask_ShakeMon2, 5, ANIM_TARGET, 4, 0, 8, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, ANIM_TARGET, 0 + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG | F_PAL_BATTLERS, 3, 1, RGB_BLACK, 8, RGB_BLACK, 0 + playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff @@ -1944,29 +1926,29 @@ Move_GUILLOTINE:: waitbgfadein end -Move_PAY_DAY:: +Move_PAY_DAY: loadspritegfx ANIM_TAG_COIN loadspritegfx ANIM_TAG_IMPACT - monbg 1 - monbgprio_28 1 + monbg ANIM_TARGET + splitbgprio ANIM_TARGET setalpha 12, 8 - playsewithpan SE_M_RAZOR_WIND2, 192 + playsewithpan SE_M_RAZOR_WIND2, SOUND_PAN_ATTACKER createsprite gCoinThrowSpriteTemplate, ANIM_ATTACKER, 2, 20, 0, 0, 0, 1152 waitforvisualfinish - playsewithpan SE_M_PAY_DAY, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 1, 0, 0, 1, 2 - createsprite gFallingCoinSpriteTemplate, ANIM_ATTACKER, 2, - createvisualtask AnimTask_ShakeMon2, 2, 1, 1, 0, 6, 1 + playsewithpan SE_M_PAY_DAY, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 1, 0, 0, ANIM_TARGET, 2 + createsprite gFallingCoinSpriteTemplate, ANIM_ATTACKER, 2 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 1, 0, 6, 1 waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff end -Move_OUTRAGE:: +Move_OUTRAGE: loadspritegfx ANIM_TAG_SMALL_EMBER - loopsewithpan SE_M_DRAGON_RAGE, 192, 8, 3 - createvisualtask AnimTask_CurseBlendEffect, 2, 7, 2, 5, 3, 8, 430 - createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, 0, 12, 6, 5, 4 + loopsewithpan SE_M_DRAGON_RAGE, SOUND_PAN_ATTACKER, 8, 3 + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_BG | F_PAL_ATTACKER | F_PAL_TARGET, 2, 5, 3, 8, RGB(14, 13, 0) + createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_ATTACKER, 12, 6, 5, 4 delay 0 createsprite gOutrageFlameSpriteTemplate, ANIM_TARGET, 2, 0, 0, 30, 1280, 0, 3 delay 0 @@ -1976,7 +1958,7 @@ Move_OUTRAGE:: delay 0 createsprite gOutrageFlameSpriteTemplate, ANIM_TARGET, 2, 0, 0, 30, 0, -1280, 3 delay 0 - createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 40, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 40, 1 createsprite gOutrageFlameSpriteTemplate, ANIM_TARGET, 2, 0, 0, 30, 1280, 768, 3 delay 0 createsprite gOutrageFlameSpriteTemplate, ANIM_TARGET, 2, 0, 0, 30, -1280, 768, 3 @@ -1991,7 +1973,7 @@ Move_OUTRAGE:: waitforvisualfinish end -OutrageFlames:: +OutrageFlames: delay 3 createsprite gOutrageFlameSpriteTemplate, ANIM_TARGET, 2, 0, 0, 30, -1280, 0, 3 delay 0 @@ -2008,30 +1990,30 @@ OutrageFlames:: createsprite gOutrageFlameSpriteTemplate, ANIM_TARGET, 2, 0, 0, 30, -1280, -768, 3 return -Move_SPARK:: +Move_SPARK: loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_SPARK_2 delay 0 - createvisualtask AnimTask_CurseBlendEffect, 2, 3, -31, 1, 5, 5, 23551 - playsewithpan SE_M_THUNDERBOLT2, 192 - createsprite gSparkElectricitySpriteTemplate, ANIM_ATTACKER, 0, 32, 24, 190, 12, 0, 1, 0 + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_BG | F_PAL_ATTACKER, -31, 1, 5, 5, RGB(31, 31, 22) + playsewithpan SE_M_THUNDERBOLT2, SOUND_PAN_ATTACKER + createsprite gSparkElectricitySpriteTemplate, ANIM_ATTACKER, 0, 32, 24, 190, 12, ANIM_ATTACKER, 1, 0 delay 0 - createsprite gSparkElectricitySpriteTemplate, ANIM_ATTACKER, 0, 80, 24, 22, 12, 0, 1, 0 - createsprite gSparkElectricitySpriteTemplate, ANIM_ATTACKER, 0, 156, 24, 121, 13, 0, 1, 1 + createsprite gSparkElectricitySpriteTemplate, ANIM_ATTACKER, 0, 80, 24, 22, 12, ANIM_ATTACKER, 1, 0 + createsprite gSparkElectricitySpriteTemplate, ANIM_ATTACKER, 0, 156, 24, 121, 13, ANIM_ATTACKER, 1, 1 delay 0 - createvisualtask AnimTask_CurseBlendEffect, 2, 3, -31, 1, 0, 0, 23551 + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_BG | F_PAL_ATTACKER, -31, 1, 0, 0, RGB(31, 31, 22) delay 10 - createvisualtask AnimTask_CurseBlendEffect, 2, 3, -31, 1, 5, 5, 23551 - playsewithpan SE_M_THUNDERBOLT2, 192 - createsprite gSparkElectricitySpriteTemplate, ANIM_ATTACKER, 0, 100, 24, 60, 10, 0, 1, 0 - createsprite gSparkElectricitySpriteTemplate, ANIM_ATTACKER, 0, 170, 24, 42, 11, 0, 1, 1 + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_BG | F_PAL_ATTACKER, -31, 1, 5, 5, RGB(31, 31, 22) + playsewithpan SE_M_THUNDERBOLT2, SOUND_PAN_ATTACKER + createsprite gSparkElectricitySpriteTemplate, ANIM_ATTACKER, 0, 100, 24, 60, 10, ANIM_ATTACKER, 1, 0 + createsprite gSparkElectricitySpriteTemplate, ANIM_ATTACKER, 0, 170, 24, 42, 11, ANIM_ATTACKER, 1, 1 delay 0 - createsprite gSparkElectricitySpriteTemplate, ANIM_ATTACKER, 0, 238, 24, 165, 10, 0, 1, 1 + createsprite gSparkElectricitySpriteTemplate, ANIM_ATTACKER, 0, 238, 24, 165, 10, ANIM_ATTACKER, 1, 1 delay 0 - createvisualtask AnimTask_CurseBlendEffect, 2, 3, -31, 1, 0, 0, 23551 + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_BG | F_PAL_ATTACKER, -31, 1, 0, 0, RGB(31, 31, 22) delay 20 - createvisualtask AnimTask_CurseBlendEffect, 2, 3, -31, 1, 7, 7, 23551 - playsewithpan SE_M_THUNDERBOLT2, 192 + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_BG | F_PAL_ATTACKER, -31, 1, 7, 7, RGB(31, 31, 22) + playsewithpan SE_M_THUNDERBOLT2, SOUND_PAN_ATTACKER createsprite gSparkElectricityFlashingSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, 32, 12, 0, 20, 0, 0 createsprite gSparkElectricityFlashingSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, 32, 12, 64, 20, 1, 0 createsprite gSparkElectricityFlashingSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, 32, 12, 128, 20, 0, 0 @@ -2042,26 +2024,26 @@ Move_SPARK:: createsprite gSparkElectricityFlashingSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, 16, 12, 224, 20, 2, 0 delay 4 waitforvisualfinish - createvisualtask AnimTask_CurseBlendEffect, 2, 3, -31, 1, 0, 0, 23551 + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_BG | F_PAL_ATTACKER, -31, 1, 0, 0, RGB(31, 31, 22) createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 4, 4 delay 4 - playsewithpan SE_M_HYPER_BEAM, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, 1, 2 - createvisualtask AnimTask_ShakeMon, 2, 1, 3, 0, 6, 1 + playsewithpan SE_M_HYPER_BEAM, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, ANIM_TARGET, 2 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1 waitforvisualfinish - createvisualtask AnimTask_CurseBlendEffect, 2, 4, -31, 2, 0, 6, 23551 + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_TARGET, -31, 2, 0, 6, RGB(31, 31, 22) call ElectricityEffect waitforvisualfinish end -Move_ATTRACT:: +Move_ATTRACT: loadspritegfx ANIM_TAG_RED_HEART - loopsewithpan SE_M_CHARM, 192, 12, 3 - createvisualtask AnimTask_SwayMon, 5, 0, 12, 4096, 4, 0 + loopsewithpan SE_M_CHARM, SOUND_PAN_ATTACKER, 12, 3 + createvisualtask AnimTask_SwayMon, 5, 0, 12, 4096, 4, ANIM_ATTACKER delay 15 createsprite gRedHeartProjectileSpriteTemplate, ANIM_TARGET, 3, 20, -8 waitforvisualfinish - playsewithpan SE_M_ATTRACT, 63 + playsewithpan SE_M_ATTRACT, SOUND_PAN_TARGET createsprite gRedHeartBurstSpriteTemplate, ANIM_TARGET, 3, 160, -32 createsprite gRedHeartBurstSpriteTemplate, ANIM_TARGET, 3, -256, -40 createsprite gRedHeartBurstSpriteTemplate, ANIM_TARGET, 3, 128, -16 @@ -2070,7 +2052,7 @@ Move_ATTRACT:: createsprite gRedHeartBurstSpriteTemplate, ANIM_TARGET, 3, -384, -31 waitforvisualfinish waitplaysewithpan SE_M_ATTRACT2, 0, 15 - createvisualtask AnimTask_HeartsBackground, 5, + createvisualtask AnimTask_HeartsBackground, 5 createsprite gRedHeartRisingSpriteTemplate, ANIM_ATTACKER, 40, 16, 256, 0 createsprite gRedHeartRisingSpriteTemplate, ANIM_ATTACKER, 40, 224, 240, 15 createsprite gRedHeartRisingSpriteTemplate, ANIM_ATTACKER, 40, 126, 272, 30 @@ -2080,52 +2062,52 @@ Move_ATTRACT:: createsprite gRedHeartRisingSpriteTemplate, ANIM_ATTACKER, 40, 112, 256, 90 createsprite gRedHeartRisingSpriteTemplate, ANIM_ATTACKER, 40, 200, 272, 90 delay 75 - createvisualtask AnimTask_CurseBlendEffect, 2, 4, 4, 4, 0, 10, 28479 + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_TARGET, 4, 4, 0, 10, RGB(31, 25, 27) end -Move_GROWTH:: +Move_GROWTH: call GrowthEffect waitforvisualfinish call GrowthEffect waitforvisualfinish end -GrowthEffect:: - createvisualtask AnimTask_CurseBlendEffect, 2, 2, 0, 2, 0, 8, RGB_WHITE - playsewithpan SE_M_TAKE_DOWN, 192 - createvisualtask AnimTask_ScaleMonAndRestore, 5, -3, -3, 16, 0, 0 +GrowthEffect: + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_ATTACKER, 0, 2, 0, 8, RGB_WHITE + playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER + createvisualtask AnimTask_ScaleMonAndRestore, 5, -3, -3, 16, ANIM_ATTACKER, 0 return -Move_WHIRLWIND:: +Move_WHIRLWIND: loadspritegfx ANIM_TAG_WHIRLWIND_LINES - createsprite gWhirlwindLineSpriteTemplate, ANIM_ATTACKER, 2, 0, -8, 1, 60, 0 - createsprite gWhirlwindLineSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 60, 1 - createsprite gWhirlwindLineSpriteTemplate, ANIM_ATTACKER, 2, 0, 8, 1, 60, 2 - createsprite gWhirlwindLineSpriteTemplate, ANIM_ATTACKER, 2, 0, 16, 1, 60, 3 - createsprite gWhirlwindLineSpriteTemplate, ANIM_ATTACKER, 2, 0, 24, 1, 60, 4 - createsprite gWhirlwindLineSpriteTemplate, ANIM_ATTACKER, 2, 0, 32, 1, 60, 0 + createsprite gWhirlwindLineSpriteTemplate, ANIM_ATTACKER, 2, 0, -8, ANIM_TARGET, 60, 0 + createsprite gWhirlwindLineSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 60, 1 + createsprite gWhirlwindLineSpriteTemplate, ANIM_ATTACKER, 2, 0, 8, ANIM_TARGET, 60, 2 + createsprite gWhirlwindLineSpriteTemplate, ANIM_ATTACKER, 2, 0, 16, ANIM_TARGET, 60, 3 + createsprite gWhirlwindLineSpriteTemplate, ANIM_ATTACKER, 2, 0, 24, ANIM_TARGET, 60, 4 + createsprite gWhirlwindLineSpriteTemplate, ANIM_ATTACKER, 2, 0, 32, ANIM_TARGET, 60, 0 delay 5 - loopsewithpan SE_M_DOUBLE_TEAM, 63, 10, 4 - createvisualtask AnimTask_ShakeMon2, 2, 1, 4, 0, 15, 1 + loopsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_TARGET, 10, 4 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 15, 1 delay 29 - createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, 1, 12, 6, 1, 5 + createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_TARGET, 12, 6, 1, 5 delay 7 - playsewithpan SE_M_STRING_SHOT, 63 - createvisualtask AnimTask_SlideOffScreen, 5, 1, 8 + playsewithpan SE_M_STRING_SHOT, SOUND_PAN_TARGET + createvisualtask AnimTask_SlideOffScreen, 5, ANIM_TARGET, 8 waitforvisualfinish end -Move_CONFUSE_RAY:: +Move_CONFUSE_RAY: loadspritegfx ANIM_TAG_YELLOW_BALL monbg ANIM_DEF_PARTNER - fadetobg 2 + fadetobg BG_GHOST waitbgfadein - createvisualtask SoundTask_AdjustPanningVar, 2, -64, 63, 2, 0 - createvisualtask AnimTask_BlendColorCycleByTag, 2, ANIM_TAG_YELLOW_BALL, 0, 6, 0, 14, 351 + createvisualtask SoundTask_AdjustPanningVar, 2, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 2, 0 + createvisualtask AnimTask_BlendColorCycleByTag, 2, ANIM_TAG_YELLOW_BALL, 0, 6, 0, 14, RGB(31, 10, 0) createsprite gConfuseRayBallBounceSpriteTemplate, ANIM_TARGET, 2, 28, 0, 288 waitforvisualfinish setalpha 8, 8 - playsewithpan SE_M_STRING_SHOT2, 63 + playsewithpan SE_M_STRING_SHOT2, SOUND_PAN_TARGET createsprite gConfuseRayBallSpiralSpriteTemplate, ANIM_TARGET, 2, 0, -16 waitforvisualfinish delay 0 @@ -2135,71 +2117,71 @@ Move_CONFUSE_RAY:: waitbgfadein end -Move_LOCK_ON:: +Move_LOCK_ON: loadspritegfx ANIM_TAG_LOCK_ON - createsprite gLockOnTargetSpriteTemplate, ANIM_ATTACKER, 40, + createsprite gLockOnTargetSpriteTemplate, ANIM_ATTACKER, 40 createsprite gLockOnMoveTargetSpriteTemplate, ANIM_ATTACKER, 40, 1 createsprite gLockOnMoveTargetSpriteTemplate, ANIM_ATTACKER, 40, 2 createsprite gLockOnMoveTargetSpriteTemplate, ANIM_ATTACKER, 40, 3 - createsprite gLockOnMoveTargetSpriteTemplate, ANIM_ATTACKER, 40, 4 + createsprite gLockOnMoveTargetSpriteTemplate, ANIM_ATTACKER, 40, 4 @ Also transitions to red target delay 120 - setarg 7, 65535 + setarg 7, 0xFFFF @ Signal target to flash/disappear waitforvisualfinish end -Move_MEAN_LOOK:: +Move_MEAN_LOOK: loadspritegfx ANIM_TAG_EYE monbg ANIM_DEF_PARTNER - playsewithpan SE_M_PSYBEAM, 192 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 0, 16, 0 - loopsewithpan SE_M_CONFUSE_RAY, 63, 15, 4 - waitplaysewithpan SE_M_LEER, 63, 85 - createsprite gMeanLookEyeSpriteTemplate, ANIM_ATTACKER, 2, + playsewithpan SE_M_PSYBEAM, SOUND_PAN_ATTACKER + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 1, 0, 16, RGB_BLACK + loopsewithpan SE_M_CONFUSE_RAY, SOUND_PAN_TARGET, 15, 4 + waitplaysewithpan SE_M_LEER, SOUND_PAN_TARGET, 85 + createsprite gMeanLookEyeSpriteTemplate, ANIM_ATTACKER, 2 delay 120 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 16, 0, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 2, 16, 0, RGB_BLACK delay 30 clearmonbg ANIM_DEF_PARTNER waitforvisualfinish end -Move_ROCK_THROW:: +Move_ROCK_THROW: loadspritegfx ANIM_TAG_ROCKS createsprite gShakeMonOrTerrainSpriteTemplate, ANIM_TARGET, 2, 6, 1, 15, 1 createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, 0, 1, 0, 0 - playsewithpan SE_M_ROCK_THROW, 63 + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET delay 6 createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, 19, 1, 10, 0 - playsewithpan SE_M_ROCK_THROW, 63 + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET delay 6 createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, -23, 2, -10, 0 - playsewithpan SE_M_ROCK_THROW, 63 - createvisualtask AnimTask_ShakeMon, 2, 1, 0, 5, 20, 1 + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 5, 20, 1 delay 6 createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, -15, 1, -10, 0 - playsewithpan SE_M_ROCK_THROW, 63 + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET delay 6 createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, 23, 2, 10, 0 - playsewithpan SE_M_ROCK_THROW, 63 + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET waitforvisualfinish end -Move_ROCK_SLIDE:: +Move_ROCK_SLIDE: loadspritegfx ANIM_TAG_ROCKS monbg ANIM_DEF_PARTNER createsprite gShakeMonOrTerrainSpriteTemplate, ANIM_ATTACKER, 2, 7, 1, 11, 1 createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, -5, 1, -5, 1 - playsewithpan SE_M_ROCK_THROW, 63 + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET delay 2 createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, 5, 0, 6, 1 - playsewithpan SE_M_ROCK_THROW, 63 + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET delay 2 createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, 19, 1, 10, 1 - playsewithpan SE_M_ROCK_THROW, 63 + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET delay 2 createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, -23, 2, -10, 1 - playsewithpan SE_M_ROCK_THROW, 63 - createvisualtask AnimTask_ShakeMon, 2, 1, 0, 5, 50, 1 - createvisualtask AnimTask_ShakeMon, 2, 3, 0, 5, 50, 1 + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 5, 50, 1 + createvisualtask AnimTask_ShakeMon, 2, ANIM_DEF_PARTNER, 0, 5, 50, 1 delay 2 call RockSlideRocks call RockSlideRocks @@ -2207,118 +2189,118 @@ Move_ROCK_SLIDE:: clearmonbg ANIM_DEF_PARTNER end -RockSlideRocks:: +RockSlideRocks: createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, -20, 0, -10, 1 - playsewithpan SE_M_ROCK_THROW, 63 + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET delay 2 createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, 28, 1, 10, 1 - playsewithpan SE_M_ROCK_THROW, 63 + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET delay 2 createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, -10, 1, -5, 1 - playsewithpan SE_M_ROCK_THROW, 63 + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET delay 2 createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, 10, 0, 6, 1 - playsewithpan SE_M_ROCK_THROW, 63 + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET delay 2 createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, 24, 1, 10, 1 - playsewithpan SE_M_ROCK_THROW, 63 + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET delay 2 createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, -32, 2, -10, 1 - playsewithpan SE_M_ROCK_THROW, 63 + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET delay 2 createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, -20, 0, -10, 1 - playsewithpan SE_M_ROCK_THROW, 63 + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET delay 2 createsprite gFallingRockSpriteTemplate, ANIM_TARGET, 2, 30, 2, 10, 1 - playsewithpan SE_M_ROCK_THROW, 63 + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET delay 2 return -Move_THIEF:: +Move_THIEF: loadspritegfx ANIM_TAG_IMPACT - monbg 1 + monbg ANIM_TARGET delay 1 - fadetobg 1 + fadetobg BG_DARK waitbgfadein setalpha 12, 8 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 6, 4 delay 6 - playsewithpan SE_M_VITAL_THROW, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 2 - createvisualtask AnimTask_ShakeMon2, 2, 1, 1, 0, 8, 1 + playsewithpan SE_M_VITAL_THROW, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 2 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 1, 0, 8, 1 waitforvisualfinish delay 20 - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff restorebg waitbgfadein end -Move_BUBBLE_BEAM:: +Move_BUBBLE_BEAM: loadspritegfx ANIM_TAG_BUBBLE loadspritegfx ANIM_TAG_SMALL_BUBBLES - monbg 1 - monbgprio_28 1 + monbg ANIM_TARGET + splitbgprio ANIM_TARGET setalpha 12, 8 delay 1 call BulbblebeamCreateBubbles - createvisualtask AnimTask_SwayMon, 5, 0, 3, 3072, 8, 1 + createvisualtask AnimTask_SwayMon, 5, 0, 3, 3072, 8, ANIM_TARGET call BulbblebeamCreateBubbles call BulbblebeamCreateBubbles waitforvisualfinish call WaterBubblesEffectShort waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff end -BulbblebeamCreateBubbles:: +BulbblebeamCreateBubbles: createsprite gWaterBubbleProjectileSpriteTemplate, ANIM_ATTACKER, 2, 18, 0, 35, 70, 0, 256, 50 - playsewithpan SE_M_BUBBLE, 192 + playsewithpan SE_M_BUBBLE, SOUND_PAN_ATTACKER delay 3 createsprite gWaterBubbleProjectileSpriteTemplate, ANIM_ATTACKER, 2, 18, 0, 20, 40, -10, 256, 50 - playsewithpan SE_M_BUBBLE, 192 + playsewithpan SE_M_BUBBLE, SOUND_PAN_ATTACKER delay 3 createsprite gWaterBubbleProjectileSpriteTemplate, ANIM_ATTACKER, 2, 18, 0, 10, -60, 0, 256, 50 - playsewithpan SE_M_BUBBLE, 192 + playsewithpan SE_M_BUBBLE, SOUND_PAN_ATTACKER delay 3 createsprite gWaterBubbleProjectileSpriteTemplate, ANIM_ATTACKER, 2, 18, 0, 15, -15, 10, 256, 50 - playsewithpan SE_M_BUBBLE, 192 + playsewithpan SE_M_BUBBLE, SOUND_PAN_ATTACKER delay 3 createsprite gWaterBubbleProjectileSpriteTemplate, ANIM_ATTACKER, 2, 18, 0, 30, 10, -10, 256, 50 - playsewithpan SE_M_BUBBLE, 192 + playsewithpan SE_M_BUBBLE, SOUND_PAN_ATTACKER delay 3 createsprite gWaterBubbleProjectileSpriteTemplate, ANIM_ATTACKER, 2, 18, 0, 25, -30, 10, 256, 50 - playsewithpan SE_M_BUBBLE, 192 + playsewithpan SE_M_BUBBLE, SOUND_PAN_ATTACKER delay 3 return -Move_ICY_WIND:: +Move_ICY_WIND: loadspritegfx ANIM_TAG_ICE_CRYSTALS loadspritegfx ANIM_TAG_ICE_SPIKES monbg ANIM_DEF_PARTNER - createvisualtask AnimTask_BlendSelected, 10, 11, 4, 0, 4, RGB_BLACK - fadetobg 15 + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_BG | F_PAL_ATK_SIDE, 4, 0, 4, RGB_BLACK + fadetobg BG_ICE waitbgfadeout playsewithpan SE_M_ICY_WIND, 0 waitbgfadein waitforvisualfinish - panse_1B SE_M_GUST, 192, 63, 2, 0 + panse SE_M_GUST, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 call IcyWindSwirlingSnowballs delay 5 call IcyWindSwirlingSnowballs - playsewithpan SE_M_GUST2, 63 + playsewithpan SE_M_GUST2, SOUND_PAN_TARGET delay 55 call IceSpikesEffectLong waitforvisualfinish clearmonbg ANIM_DEF_PARTNER restorebg waitbgfadeout - createvisualtask AnimTask_BlendSelected, 10, 11, 4, 4, 0, RGB_BLACK + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_BG | F_PAL_ATK_SIDE, 4, 4, 0, RGB_BLACK waitbgfadein end -IcyWindSwirlingSnowballs:: +IcyWindSwirlingSnowballs: createsprite gSwirlingSnowballSpriteTemplate, ANIM_TARGET, 40, 0, 0, 0, 0, 72, 1 delay 5 createsprite gSwirlingSnowballSpriteTemplate, ANIM_TARGET, 40, 0, 10, 0, 10, 72, 1 @@ -2330,15 +2312,15 @@ IcyWindSwirlingSnowballs:: createsprite gSwirlingSnowballSpriteTemplate, ANIM_TARGET, 40, 0, -5, 0, -5, 72, 1 return -Move_SMOKESCREEN:: +Move_SMOKESCREEN: loadspritegfx ANIM_TAG_BLACK_SMOKE loadspritegfx ANIM_TAG_BLACK_BALL - playsewithpan SE_M_DOUBLE_TEAM, 192 + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER createsprite gBlackBallSpriteTemplate, ANIM_TARGET, 2, 20, 0, 0, 0, 35, -25 waitforvisualfinish - createvisualtask AnimTask_SmokescreenImpact, 2, + createvisualtask AnimTask_SmokescreenImpact, 2 delay 2 - playsewithpan SE_M_SAND_ATTACK, 63 + playsewithpan SE_M_SAND_ATTACK, SOUND_PAN_TARGET createsprite gBlackSmokeSpriteTemplate, ANIM_TARGET, 4, 0, -12, 104, 0, 75 createsprite gBlackSmokeSpriteTemplate, ANIM_TARGET, 4, 0, -12, 72, 1, 75 createsprite gBlackSmokeSpriteTemplate, ANIM_TARGET, 4, 0, -6, 56, 1, 75 @@ -2354,13 +2336,13 @@ Move_SMOKESCREEN:: waitforvisualfinish end -Move_CONVERSION:: +Move_CONVERSION: loadspritegfx ANIM_TAG_CONVERSION monbg ANIM_ATK_PARTNER - monbgprio_28 0 + splitbgprio ANIM_ATTACKER setalpha 16, 0 delay 0 - playsewithpan SE_M_SWIFT, 192 + playsewithpan SE_M_SWIFT, SOUND_PAN_ATTACKER createsprite gConversionSpriteTemplate, ANIM_ATTACKER, 2, -24, -24 delay 3 createsprite gConversionSpriteTemplate, ANIM_ATTACKER, 2, -8, -24 @@ -2369,7 +2351,7 @@ Move_CONVERSION:: delay 3 createsprite gConversionSpriteTemplate, ANIM_ATTACKER, 2, 24, -24 delay 3 - playsewithpan SE_M_SWIFT, 192 + playsewithpan SE_M_SWIFT, SOUND_PAN_ATTACKER createsprite gConversionSpriteTemplate, ANIM_ATTACKER, 2, -24, -8 delay 3 createsprite gConversionSpriteTemplate, ANIM_ATTACKER, 2, -8, -8 @@ -2378,7 +2360,7 @@ Move_CONVERSION:: delay 3 createsprite gConversionSpriteTemplate, ANIM_ATTACKER, 2, 24, -8 delay 3 - playsewithpan SE_M_SWIFT, 192 + playsewithpan SE_M_SWIFT, SOUND_PAN_ATTACKER createsprite gConversionSpriteTemplate, ANIM_ATTACKER, 2, -24, 8 delay 3 createsprite gConversionSpriteTemplate, ANIM_ATTACKER, 2, -8, 8 @@ -2387,7 +2369,7 @@ Move_CONVERSION:: delay 3 createsprite gConversionSpriteTemplate, ANIM_ATTACKER, 2, 24, 8 delay 3 - playsewithpan SE_M_SWIFT, 192 + playsewithpan SE_M_SWIFT, SOUND_PAN_ATTACKER createsprite gConversionSpriteTemplate, ANIM_ATTACKER, 2, -24, 24 delay 3 createsprite gConversionSpriteTemplate, ANIM_ATTACKER, 2, -8, 24 @@ -2396,23 +2378,23 @@ Move_CONVERSION:: delay 3 createsprite gConversionSpriteTemplate, ANIM_ATTACKER, 2, 24, 24 delay 20 - playsewithpan SE_M_BARRIER, 192 - createvisualtask AnimTask_FlashAnimTagWithColor, 2, 10018, 1, 1, 14335, 12, 0, 0 + playsewithpan SE_M_BARRIER, SOUND_PAN_ATTACKER + createvisualtask AnimTask_FlashAnimTagWithColor, 2, ANIM_TAG_CONVERSION, 1, 1, RGB(31, 31, 13), 12, 0, 0 delay 6 - createvisualtask AnimTask_ConversionAlphaBlend, 5, + createvisualtask AnimTask_ConversionAlphaBlend, 5 waitforvisualfinish delay 1 clearmonbg ANIM_ATK_PARTNER blendoff end -Move_CONVERSION_2:: +Move_CONVERSION_2: loadspritegfx ANIM_TAG_CONVERSION monbg ANIM_DEF_PARTNER - monbgprio_2A 1 + splitbgprio_foes ANIM_TARGET setalpha 0, 16 delay 0 - playsewithpan SE_M_BARRIER, 63 + playsewithpan SE_M_BARRIER, SOUND_PAN_TARGET createsprite gConversion2SpriteTemplate, ANIM_ATTACKER, 2, -24, -24, 60 createsprite gConversion2SpriteTemplate, ANIM_ATTACKER, 2, -8, -24, 65 createsprite gConversion2SpriteTemplate, ANIM_ATTACKER, 2, 8, -24, 70 @@ -2429,199 +2411,200 @@ Move_CONVERSION_2:: createsprite gConversion2SpriteTemplate, ANIM_ATTACKER, 2, -8, 24, 125 createsprite gConversion2SpriteTemplate, ANIM_ATTACKER, 2, 8, 24, 130 createsprite gConversion2SpriteTemplate, ANIM_ATTACKER, 2, 24, 24, 135 - createvisualtask AnimTask_Conversion2AlphaBlend, 5, + createvisualtask AnimTask_Conversion2AlphaBlend, 5 delay 60 - playsewithpan SE_M_SWIFT, 63 + playsewithpan SE_M_SWIFT, SOUND_PAN_TARGET delay 10 - playsewithpan SE_M_SWIFT, 63 + playsewithpan SE_M_SWIFT, SOUND_PAN_TARGET delay 10 - playsewithpan SE_M_SWIFT, 63 + playsewithpan SE_M_SWIFT, SOUND_PAN_TARGET delay 10 - playsewithpan SE_M_SWIFT, 63 + playsewithpan SE_M_SWIFT, SOUND_PAN_TARGET delay 10 - playsewithpan SE_M_SWIFT, 63 + playsewithpan SE_M_SWIFT, SOUND_PAN_TARGET delay 10 - playsewithpan SE_M_SWIFT, 63 + playsewithpan SE_M_SWIFT, SOUND_PAN_TARGET delay 10 - playsewithpan SE_M_SWIFT, 63 + playsewithpan SE_M_SWIFT, SOUND_PAN_TARGET delay 10 - playsewithpan SE_M_SWIFT, 63 + playsewithpan SE_M_SWIFT, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff end -Move_ROLLING_KICK:: +Move_ROLLING_KICK: loadspritegfx ANIM_TAG_HANDS_AND_FEET loadspritegfx ANIM_TAG_IMPACT - monbg 1 + monbg ANIM_TARGET setalpha 12, 8 - createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, 0, 18, 6, 1, 4 - playsewithpan SE_M_DOUBLE_TEAM, 192 + createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_ATTACKER, 18, 6, 1, 4 + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER delay 6 - playsewithpan SE_M_DOUBLE_TEAM, 192 + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER waitforvisualfinish createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 0, 20, 0, 0, 4 createsprite gSlidingKickSpriteTemplate, ANIM_ATTACKER, 2, -24, 0, 48, 10, 160, 0 delay 5 - playsewithpan SE_M_VITAL_THROW2, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -8, 0, 1, 2 - createvisualtask AnimTask_ShakeMon, 2, 1, 5, 0, 6, 1 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -8, 0, ANIM_TARGET, 2 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 5, 0, 6, 1 waitforvisualfinish createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 1, 8 - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff end -Move_HEADBUTT:: +Move_HEADBUTT: loadspritegfx ANIM_TAG_IMPACT createsprite gBowMonSpriteTemplate, ANIM_ATTACKER, 2, 0 - playsewithpan SE_M_HEADBUTT, 192 + playsewithpan SE_M_HEADBUTT, SOUND_PAN_ATTACKER waitforvisualfinish delay 2 createsprite gBowMonSpriteTemplate, ANIM_ATTACKER, 2, 1 waitforvisualfinish - createvisualtask AnimTask_ShakeMonInPlace, 2, 0, 2, 0, 4, 1 - createvisualtask AnimTask_ShakeMon, 2, 1, 5, 0, 6, 1 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_ATTACKER, 2, 0, 4, 1 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 5, 0, 6, 1 createsprite gBowMonSpriteTemplate, ANIM_ATTACKER, 2, 2 - createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, 1, 1 - playsewithpan SE_M_VITAL_THROW2, 63 + createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, ANIM_TARGET, 1 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET waitforvisualfinish end -Move_HORN_ATTACK:: +Move_HORN_ATTACK: loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_HORN_HIT createsprite gBowMonSpriteTemplate, ANIM_ATTACKER, 2, 0 - playsewithpan SE_M_HEADBUTT, 192 + playsewithpan SE_M_HEADBUTT, SOUND_PAN_ATTACKER waitforvisualfinish delay 2 createsprite gBowMonSpriteTemplate, ANIM_ATTACKER, 2, 1 createsprite gHornHitSpriteTemplate, ANIM_TARGET, 4, 0, 0, 10 waitforvisualfinish - createvisualtask AnimTask_ShakeMonInPlace, 2, 0, 2, 0, 4, 1 - createvisualtask AnimTask_ShakeMon, 2, 1, 5, 0, 6, 1 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_ATTACKER, 2, 0, 4, 1 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 5, 0, 6, 1 createsprite gBowMonSpriteTemplate, ANIM_ATTACKER, 2, 2 - createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, 1, 1 - playsewithpan SE_M_HORN_ATTACK, 63 + createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, ANIM_TARGET, 1 + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET waitforvisualfinish end -Move_FURY_ATTACK:: +Move_FURY_ATTACK: loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_HORN_HIT - createvisualtask AnimTask_RotateMonSpriteToSide, 2, 4, 256, 0, 2 + createvisualtask AnimTask_RotateMonSpriteToSide, 2, 4, 256, ANIM_ATTACKER, 2 choosetwoturnanim FuryAttackRight, FuryAttackLeft -FuryAttackContinue:: - createvisualtask AnimTask_ShakeMon, 2, 1, 5, 0, 6, 1 + +FuryAttackContinue: + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 5, 0, 6, 1 waitforvisualfinish end -FuryAttackRight:: +FuryAttackRight: createsprite gHornHitSpriteTemplate, ANIM_TARGET, 4, 8, 8, 10 waitforvisualfinish - createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, 1, 1 - playsewithpan SE_M_HORN_ATTACK, 63 + createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, ANIM_TARGET, 1 + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET goto FuryAttackContinue -FuryAttackLeft:: +FuryAttackLeft: createsprite gHornHitSpriteTemplate, ANIM_TARGET, 4, -8, -8, 10 waitforvisualfinish - createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, 1, 1 - playsewithpan SE_M_HORN_ATTACK, 63 + createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, ANIM_TARGET, 1 + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET goto FuryAttackContinue -Move_HORN_DRILL:: +Move_HORN_DRILL: loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_HORN_HIT jumpifcontest HornDrillInContest - fadetobg 7 + fadetobg BG_DRILL waitbgfadeout createvisualtask AnimTask_StartSlidingBg, 5, -2304, 768, 1, -1 -HornDrillContinue:: +HornDrillContinue: waitbgfadein setalpha 12, 8 createsprite gBowMonSpriteTemplate, ANIM_ATTACKER, 2, 0 - playsewithpan SE_M_HEADBUTT, 192 + playsewithpan SE_M_HEADBUTT, SOUND_PAN_ATTACKER waitforvisualfinish delay 2 createsprite gBowMonSpriteTemplate, ANIM_ATTACKER, 2, 1 createsprite gHornHitSpriteTemplate, ANIM_TARGET, 4, 0, 0, 12 waitforvisualfinish playse SE_BANG - createvisualtask AnimTask_ShakeMonInPlace, 2, 0, 2, 0, 40, 1 - createvisualtask AnimTask_ShakeMonInPlace, 2, 1, 10, 0, 40, 1 - createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, 1, 3 - playsewithpan SE_M_HORN_ATTACK, 63 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_ATTACKER, 2, 0, 40, 1 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_TARGET, 10, 0, 40, 1 + createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, ANIM_TARGET, 3 + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET delay 4 - createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 2, 1, 3 - playsewithpan SE_M_HORN_ATTACK, 63 + createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 2, ANIM_TARGET, 3 + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET delay 4 - createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, -4, 3, 1, 3 - playsewithpan SE_M_HORN_ATTACK, 63 + createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, -4, 3, ANIM_TARGET, 3 + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET delay 4 - createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, -8, -5, 1, 3 - playsewithpan SE_M_HORN_ATTACK, 63 + createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, -8, -5, ANIM_TARGET, 3 + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET delay 4 - createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 4, -12, 1, 3 - playsewithpan SE_M_HORN_ATTACK, 63 + createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 4, -12, ANIM_TARGET, 3 + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET delay 4 - createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 16, 0, 1, 3 - playsewithpan SE_M_HORN_ATTACK, 63 + createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 16, 0, ANIM_TARGET, 3 + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET delay 4 - createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 5, 18, 1, 3 - playsewithpan SE_M_HORN_ATTACK, 63 + createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 5, 18, ANIM_TARGET, 3 + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET delay 4 - createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, -17, 12, 1, 2 - playsewithpan SE_M_HORN_ATTACK, 63 + createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, -17, 12, ANIM_TARGET, 2 + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET delay 4 - createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, -21, -15, 1, 2 - playsewithpan SE_M_HORN_ATTACK, 63 + createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, -21, -15, ANIM_TARGET, 2 + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET delay 4 - createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 8, -27, 1, 2 - playsewithpan SE_M_HORN_ATTACK, 63 + createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 8, -27, ANIM_TARGET, 2 + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET delay 4 - createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 32, 0, 1, 2 - playsewithpan SE_M_HORN_ATTACK, 63 + createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 32, 0, ANIM_TARGET, 2 + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET delay 4 createsprite gBowMonSpriteTemplate, ANIM_ATTACKER, 2, 2 waitforvisualfinish restorebg waitbgfadeout - setarg 7, 65535 + setarg 7, 0xFFFF waitbgfadein end -HornDrillInContest:: - fadetobg 8 +HornDrillInContest: + fadetobg BG_DRILL_CONTESTS waitbgfadeout createvisualtask AnimTask_StartSlidingBg, 5, 2304, 768, 0, -1 goto HornDrillContinue -Move_THRASH:: +Move_THRASH: loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_HANDS_AND_FEET - createvisualtask AnimTask_ThrashMoveMonHorizontal, 2, - createvisualtask AnimTask_ThrashMoveMonVertical, 2, + createvisualtask AnimTask_ThrashMoveMonHorizontal, 2 + createvisualtask AnimTask_ThrashMoveMonVertical, 2 createsprite gFistFootRandomPosSpriteTemplate, ANIM_TARGET, 3, 1, 10, 0 - createvisualtask AnimTask_ShakeMonInPlace, 2, 1, 4, 0, 7, 1 - playsewithpan SE_M_COMET_PUNCH, 63 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_TARGET, 4, 0, 7, 1 + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET delay 28 createsprite gFistFootRandomPosSpriteTemplate, ANIM_TARGET, 3, 1, 10, 1 - createvisualtask AnimTask_ShakeMonInPlace, 2, 1, 4, 0, 7, 1 - playsewithpan SE_M_VITAL_THROW2, 63 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_TARGET, 4, 0, 7, 1 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET delay 28 createsprite gFistFootRandomPosSpriteTemplate, ANIM_TARGET, 3, 1, 10, 3 - createvisualtask AnimTask_ShakeMonInPlace, 2, 1, 8, 0, 16, 1 - playsewithpan SE_M_MEGA_KICK2, 63 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_TARGET, 8, 0, 16, 1 + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET end -Move_SING:: +Move_SING: loadspritegfx ANIM_TAG_MUSIC_NOTES monbg ANIM_DEF_PARTNER - createvisualtask AnimTask_MusicNotesRainbowBlend, 2, + createvisualtask AnimTask_MusicNotesRainbowBlend, 2 waitforvisualfinish - panse_1B SE_M_SING, 192, 63, 2, 0 + panse SE_M_SING, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 createsprite gWavyMusicNotesSpriteTemplate, ANIM_TARGET, 2, 7, 0, 12 delay 5 createsprite gWavyMusicNotesSpriteTemplate, ANIM_TARGET, 2, 6, 1, 12 @@ -2648,89 +2631,89 @@ Move_SING:: delay 4 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER - createvisualtask AnimTask_MusicNotesClearRainbowBlend, 2, + createvisualtask AnimTask_MusicNotesClearRainbowBlend, 2 waitforvisualfinish end -Move_LOW_KICK:: +Move_LOW_KICK: loadspritegfx ANIM_TAG_HANDS_AND_FEET loadspritegfx ANIM_TAG_IMPACT createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 0, 20, 0, 0, 4 createsprite gSlidingKickSpriteTemplate, ANIM_TARGET, 2, -24, 28, 40, 8, 160, 0 delay 4 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, -8, 8, 1, 2 - createvisualtask AnimTask_RotateMonSpriteToSide, 2, 6, 384, 1, 2 - playsewithpan SE_M_VITAL_THROW2, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, -8, 8, ANIM_TARGET, 2 + createvisualtask AnimTask_RotateMonSpriteToSide, 2, 6, 384, ANIM_TARGET, 2 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET waitforvisualfinish createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 1, 4 end -Move_EARTHQUAKE:: - createvisualtask AnimTask_HorizontalShake, 5, 5, 10, 50 - createvisualtask AnimTask_HorizontalShake, 5, 4, 10, 50 +Move_EARTHQUAKE: + createvisualtask AnimTask_HorizontalShake, 5, (MAX_BATTLERS_COUNT + 1), 10, 50 + createvisualtask AnimTask_HorizontalShake, 5, MAX_BATTLERS_COUNT, 10, 50 playsewithpan SE_M_EARTHQUAKE, 0 delay 10 - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 1, 0, 14, RGB_WHITE, 14 + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 3, 1, RGB_BLACK, 14, RGB_WHITE, 14 delay 16 - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 1, 0, 14, RGB_WHITE, 14 + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 3, 1, RGB_BLACK, 14, RGB_WHITE, 14 end -Move_FISSURE:: +Move_FISSURE: loadspritegfx ANIM_TAG_MUD_SAND - createvisualtask AnimTask_HorizontalShake, 3, 5, 10, 50 - createvisualtask AnimTask_HorizontalShake, 3, 1, 10, 50 - playsewithpan SE_M_EARTHQUAKE, 63 + createvisualtask AnimTask_HorizontalShake, 3, (MAX_BATTLERS_COUNT + 1), 10, 50 + createvisualtask AnimTask_HorizontalShake, 3, ANIM_TARGET, 10, 50 + playsewithpan SE_M_EARTHQUAKE, SOUND_PAN_TARGET delay 8 call FissureDirtPlumeFar delay 15 - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 1, 0, 14, RGB_WHITE, 14 + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 3, 1, RGB_BLACK, 14, RGB_WHITE, 14 delay 15 call FissureDirtPlumeClose delay 15 - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 1, 0, 14, RGB_WHITE, 14 + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 3, 1, RGB_BLACK, 14, RGB_WHITE, 14 delay 15 call FissureDirtPlumeFar delay 50 fadetobg BG_FISSURE waitbgfadeout - createvisualtask AnimTask_PositionFissureBgOnBattler, 5, 1, 5, -1 + createvisualtask AnimTask_PositionFissureBgOnBattler, 5, ANIM_TARGET, 5, -1 waitbgfadein delay 40 restorebg waitbgfadeout - setarg 7, 65535 + setarg 7, -1 waitbgfadein end -FissureDirtPlumeFar:: +FissureDirtPlumeFar: createsprite gDirtPlumeSpriteTemplate, ANIM_TARGET, 2, 1, 0, 12, -48, -16, 24 createsprite gDirtPlumeSpriteTemplate, ANIM_TARGET, 2, 1, 0, 16, -16, -10, 24 createsprite gDirtPlumeSpriteTemplate, ANIM_TARGET, 2, 1, 1, 14, -52, -18, 24 createsprite gDirtPlumeSpriteTemplate, ANIM_TARGET, 2, 1, 1, 12, -32, -16, 24 - playsewithpan SE_M_DIG, 63 + playsewithpan SE_M_DIG, SOUND_PAN_TARGET return -FissureDirtPlumeClose:: +FissureDirtPlumeClose: createsprite gDirtPlumeSpriteTemplate, ANIM_TARGET, 2, 1, 0, 12, -24, -16, 24 createsprite gDirtPlumeSpriteTemplate, ANIM_TARGET, 2, 1, 0, 16, -38, -10, 24 createsprite gDirtPlumeSpriteTemplate, ANIM_TARGET, 2, 1, 1, 14, -20, -18, 24 createsprite gDirtPlumeSpriteTemplate, ANIM_TARGET, 2, 1, 1, 12, -36, -16, 24 - playsewithpan SE_M_DIG, 63 + playsewithpan SE_M_DIG, SOUND_PAN_TARGET return -Move_DIG:: +Move_DIG: choosetwoturnanim DigSetUp, DigUnleash -DigEnd:: +DigEnd: end -DigSetUp:: +DigSetUp: loadspritegfx ANIM_TAG_MUD_SAND loadspritegfx ANIM_TAG_DIRT_MOUND createsprite gDirtMoundSpriteTemplate, ANIM_ATTACKER, 1, 0, 0, 180 createsprite gDirtMoundSpriteTemplate, ANIM_ATTACKER, 1, 0, 1, 180 - monbg_22 0 + monbg_static ANIM_ATTACKER delay 1 - createvisualtask AnimTask_DigDownMovement, 2, 0 + createvisualtask AnimTask_DigDownMovement, 2, FALSE delay 6 call DigThrowDirt call DigThrowDirt @@ -2738,61 +2721,61 @@ DigSetUp:: call DigThrowDirt call DigThrowDirt waitforvisualfinish - clearmonbg_23 0 + clearmonbg_static ANIM_ATTACKER delay 1 - createvisualtask AnimTask_DigDownMovement, 2, 1 + createvisualtask AnimTask_DigDownMovement, 2, TRUE goto DigEnd -DigUnleash:: +DigUnleash: loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_DIRT_MOUND - createvisualtask AnimTask_DigUpMovement, 2, 0 + createvisualtask AnimTask_DigUpMovement, 2, FALSE waitforvisualfinish monbg ANIM_ATTACKER createsprite gDirtMoundSpriteTemplate, ANIM_ATTACKER, 1, 0, 0, 48 createsprite gDirtMoundSpriteTemplate, ANIM_ATTACKER, 1, 0, 1, 48 delay 1 - createvisualtask AnimTask_DigUpMovement, 2, 1 + createvisualtask AnimTask_DigUpMovement, 2, TRUE delay 16 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -8, 0, 1, 2 - createvisualtask AnimTask_ShakeMon, 2, 1, 5, 0, 6, 1 - playsewithpan SE_M_MEGA_KICK2, 192 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -8, 0, ANIM_TARGET, 2 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 5, 0, 6, 1 + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_ATTACKER clearmonbg ANIM_ATTACKER goto DigEnd -DigThrowDirt:: +DigThrowDirt: createsprite gDirtPlumeSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 12, 4, -16, 18 createsprite gDirtPlumeSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 16, 4, -10, 18 createsprite gDirtPlumeSpriteTemplate, ANIM_ATTACKER, 2, 0, 1, 14, 4, -18, 18 createsprite gDirtPlumeSpriteTemplate, ANIM_ATTACKER, 2, 0, 1, 12, 4, -16, 18 - playsewithpan SE_M_DIG, 192 + playsewithpan SE_M_DIG, SOUND_PAN_ATTACKER delay 32 return -Move_MEDITATE:: +Move_MEDITATE: call SetPsychicBackground createvisualtask AnimTask_MeditateStretchAttacker, 2 - playsewithpan SE_M_HEADBUTT, 192 + playsewithpan SE_M_HEADBUTT, SOUND_PAN_ATTACKER delay 16 - playsewithpan SE_M_TAKE_DOWN, 192 + playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER waitforvisualfinish - call UnsetPsychicBg + call UnsetPsychicBackground end -Move_AGILITY:: +Move_AGILITY: monbg ANIM_ATK_PARTNER setalpha 12, 8 - createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, 0, 24, 6, 4, 4 - createvisualtask AnimTask_CloneBattlerSpriteWithBlend, 2, 0, 4, 7, 10 - playsewithpan SE_M_DOUBLE_TEAM, 192 + createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_ATTACKER, 24, 6, 4, 4 + createvisualtask AnimTask_TraceMonBlended, 2, 0, 4, 7, 10 + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER delay 12 - playsewithpan SE_M_DOUBLE_TEAM, 192 + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER delay 12 - playsewithpan SE_M_DOUBLE_TEAM, 192 + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER delay 12 - playsewithpan SE_M_DOUBLE_TEAM, 192 + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER delay 12 - playsewithpan SE_M_DOUBLE_TEAM, 192 + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER delay 12 waitforvisualfinish clearmonbg ANIM_ATK_PARTNER @@ -2800,474 +2783,473 @@ Move_AGILITY:: delay 1 end -Move_QUICK_ATTACK:: +Move_QUICK_ATTACK: loadspritegfx ANIM_TAG_IMPACT monbg ANIM_ATK_PARTNER setalpha 12, 8 - createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, 0, 24, 6, 1, 5 - createvisualtask AnimTask_CloneBattlerSpriteWithBlend, 2, 0, 4, 7, 3 - playsewithpan SE_M_JUMP_KICK, 192 + createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_ATTACKER, 24, 6, 1, 5 + createvisualtask AnimTask_TraceMonBlended, 2, 0, 4, 7, 3 + playsewithpan SE_M_JUMP_KICK, SOUND_PAN_ATTACKER delay 4 - createvisualtask AnimTask_ShakeMon, 2, 1, 5, 0, 6, 1 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 4, 0, 0, 1, 1 - playsewithpan SE_M_VITAL_THROW2, 63 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 5, 0, 6, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 4, 0, 0, ANIM_TARGET, 1 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_ATK_PARTNER blendoff waitforvisualfinish end -Move_RAGE:: +Move_RAGE: loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_ANGER - monbg 1 + monbg ANIM_TARGET setalpha 12, 8 - createvisualtask AnimTask_BlendMonInAndOut, 3, 0, 31, 10, 0, 2 + createvisualtask AnimTask_BlendMonInAndOut, 3, ANIM_ATTACKER, RGB_RED, 10, 0, 2 createsprite gAngerMarkSpriteTemplate, ANIM_ATTACKER, 2, 0, -20, -28 - playsewithpan SE_M_SWAGGER2, 192 + playsewithpan SE_M_SWAGGER2, SOUND_PAN_ATTACKER delay 20 createsprite gAngerMarkSpriteTemplate, ANIM_ATTACKER, 2, 0, 20, -28 - playsewithpan SE_M_SWAGGER2, 192 + playsewithpan SE_M_SWAGGER2, SOUND_PAN_ATTACKER waitforvisualfinish createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 4, 6 delay 4 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 2 - createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 2, 1, 1, 10, 1, 0 - playsewithpan SE_M_VITAL_THROW2, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 2 + createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 2, TRUE, 1, 10, 1, 0 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET end -Move_TELEPORT:: +Move_TELEPORT: call SetPsychicBackground createvisualtask AnimTask_Teleport, 2 - playsewithpan SE_M_TELEPORT, 192 + playsewithpan SE_M_TELEPORT, SOUND_PAN_ATTACKER delay 15 - call UnsetPsychicBg + call UnsetPsychicBackground waitforvisualfinish end -Move_DOUBLE_TEAM:: +Move_DOUBLE_TEAM: monbg ANIM_ATK_PARTNER setalpha 12, 8 - createvisualtask AnimTask_DoubleTeam, 2, - playsewithpan SE_M_DOUBLE_TEAM, 192 + createvisualtask AnimTask_DoubleTeam, 2 + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER delay 32 - playsewithpan SE_M_DOUBLE_TEAM, 192 + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER delay 24 - playsewithpan SE_M_DOUBLE_TEAM, 192 + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER delay 16 - playsewithpan SE_M_DOUBLE_TEAM, 192 + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER delay 8 - playsewithpan SE_M_DOUBLE_TEAM, 192 + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER delay 8 - playsewithpan SE_M_DOUBLE_TEAM, 192 + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER delay 8 - playsewithpan SE_M_DOUBLE_TEAM, 192 + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER delay 8 - playsewithpan SE_M_DOUBLE_TEAM, 192 + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER delay 8 - playsewithpan SE_M_DOUBLE_TEAM, 192 + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER waitforvisualfinish clearmonbg ANIM_ATK_PARTNER blendoff delay 1 end -Move_MINIMIZE:: +Move_MINIMIZE: setalpha 10, 8 - createvisualtask AnimTask_Minimize, 2, - loopsewithpan SE_M_MINIMIZE, 192, 34, 3 + createvisualtask AnimTask_Minimize, 2 + loopsewithpan SE_M_MINIMIZE, SOUND_PAN_ATTACKER, 34, 3 waitforvisualfinish blendoff end -Move_METRONOME:: +Move_METRONOME: loadspritegfx ANIM_TAG_FINGER loadspritegfx ANIM_TAG_THOUGHT_BUBBLE createsprite gThoughtBubbleSpriteTemplate, ANIM_ATTACKER, 11, 0, 100 - playsewithpan SE_M_METRONOME, 192 + playsewithpan SE_M_METRONOME, SOUND_PAN_ATTACKER delay 6 createsprite gMetronomeFingerSpriteTemplate, ANIM_ATTACKER, 12, 0 delay 24 - loopsewithpan SE_M_TAIL_WHIP, 192, 22, 3 + loopsewithpan SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER, 22, 3 waitforvisualfinish end -Move_SKULL_BASH:: +Move_SKULL_BASH: choosetwoturnanim SkullBashSetUp, SkullBashAttack -SkullBashEnd:: +SkullBashEnd: end -SkullBashSetUp:: +SkullBashSetUp: call SkullBashSetUpHeadDown call SkullBashSetUpHeadDown waitforvisualfinish goto SkullBashEnd -SkullBashSetUpHeadDown:: - createsprite gSlideMonToOffsetAndBackSpriteTemplate, ANIM_ATTACKER, 2, 0, -24, 0, 0, 10, 0 - playsewithpan SE_M_TAKE_DOWN, 192 +SkullBashSetUpHeadDown: + createsprite gSlideMonToOffsetAndBackSpriteTemplate, ANIM_ATTACKER, 2, ANIM_ATTACKER, -24, 0, 0, 10, 0 + playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER waitforvisualfinish - createvisualtask AnimTask_RotateMonSpriteToSide, 2, 16, 96, 0, 2 + createvisualtask AnimTask_RotateMonSpriteToSide, 2, 16, 96, ANIM_ATTACKER, 2 waitforvisualfinish - createsprite gSlideMonToOffsetAndBackSpriteTemplate, ANIM_ATTACKER, 2, 0, 24, 0, 0, 10, 1 + createsprite gSlideMonToOffsetAndBackSpriteTemplate, ANIM_ATTACKER, 2, ANIM_ATTACKER, 24, 0, 0, 10, 1 waitforvisualfinish return -SkullBashAttack:: +SkullBashAttack: loadspritegfx ANIM_TAG_IMPACT createvisualtask AnimTask_SkullBashPosition, 2, 0 - playsewithpan SE_M_TAKE_DOWN, 192 + playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER waitforvisualfinish playse SE_BANG - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 1, 0, 14, RGB_WHITE, 14 - createvisualtask AnimTask_ShakeMonInPlace, 2, 0, 2, 0, 40, 1 - createvisualtask AnimTask_ShakeMonInPlace, 2, 1, 10, 0, 40, 1 - createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 4, 0, 0, 1, 0 - loopsewithpan SE_M_MEGA_KICK2, 63, 8, 3 + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 3, 1, RGB_BLACK, 14, RGB_WHITE, 14 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_ATTACKER, 2, 0, 40, 1 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_TARGET, 10, 0, 40, 1 + createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 4, 0, 0, ANIM_TARGET, 0 + loopsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET, 8, 3 waitforvisualfinish createvisualtask AnimTask_SkullBashPosition, 2, 1 goto SkullBashEnd -Move_AMNESIA:: +Move_AMNESIA: loadspritegfx ANIM_TAG_AMNESIA call SetPsychicBackground delay 8 createsprite gQuestionMarkSpriteTemplate, ANIM_ATTACKER, 20 - playsewithpan SE_M_METRONOME, 192 + playsewithpan SE_M_METRONOME, SOUND_PAN_ATTACKER delay 54 - loopsewithpan SE_M_METRONOME, 192, 16, 3 + loopsewithpan SE_M_METRONOME, SOUND_PAN_ATTACKER, 16, 3 waitforvisualfinish - call UnsetPsychicBg + call UnsetPsychicBackground end -Move_KINESIS:: +Move_KINESIS: loadspritegfx ANIM_TAG_ALERT loadspritegfx ANIM_TAG_BENT_SPOON - playsewithpan SE_M_PSYBEAM, 192 + playsewithpan SE_M_PSYBEAM, SOUND_PAN_ATTACKER call SetPsychicBackground createsprite gBentSpoonSpriteTemplate, ANIM_ATTACKER, 20 createsprite gKinesisZapEnergySpriteTemplate, ANIM_ATTACKER, 19, 32, -8, 0 createsprite gKinesisZapEnergySpriteTemplate, ANIM_ATTACKER, 19, 32, 16, 1 - loopsewithpan SE_M_CONFUSE_RAY, 192, 21, 2 + loopsewithpan SE_M_CONFUSE_RAY, SOUND_PAN_ATTACKER, 21, 2 delay 60 - playsewithpan SE_M_DIZZY_PUNCH, 192 + playsewithpan SE_M_DIZZY_PUNCH, SOUND_PAN_ATTACKER delay 30 - loopsewithpan SE_M_DIZZY_PUNCH, 192, 20, 2 + loopsewithpan SE_M_DIZZY_PUNCH, SOUND_PAN_ATTACKER, 20, 2 delay 70 - playsewithpan SE_M_SWAGGER2, 192 + playsewithpan SE_M_SWAGGER2, SOUND_PAN_ATTACKER waitforvisualfinish - call UnsetPsychicBg + call UnsetPsychicBackground end -Move_GLARE:: +Move_GLARE: loadspritegfx ANIM_TAG_SMALL_RED_EYE loadspritegfx ANIM_TAG_EYE_SPARKLE createvisualtask AnimTask_GlareEyeDots, 5, 0 - playsewithpan SE_M_PSYBEAM2, 192 + playsewithpan SE_M_PSYBEAM2, SOUND_PAN_ATTACKER waitforvisualfinish - createvisualtask AnimTask_BlendSelected, 5, 1, 0, 0, 16, RGB_BLACK + createvisualtask AnimTask_BlendBattleAnimPal, 5, F_PAL_BG, 0, 0, 16, RGB_BLACK waitforvisualfinish createsprite gEyeSparkleSpriteTemplate, ANIM_ATTACKER, 0, -16, -8 createsprite gEyeSparkleSpriteTemplate, ANIM_ATTACKER, 0, 16, -8 - createvisualtask AnimTask_ScaryFace, 5, - playsewithpan SE_M_LEER, 192 + createvisualtask AnimTask_ScaryFace, 5 + playsewithpan SE_M_LEER, SOUND_PAN_ATTACKER delay 2 - createvisualtask AnimTask_ShakeTargetInPattern, 3, 20, 1, 0 + createvisualtask AnimTask_ShakeTargetInPattern, 3, 20, 1, FALSE waitforvisualfinish - createvisualtask AnimTask_BlendSelected, 5, 1, 0, 16, 0, RGB_BLACK + createvisualtask AnimTask_BlendBattleAnimPal, 5, F_PAL_BG, 0, 16, 0, RGB_BLACK end -Move_BARRAGE:: +Move_BARRAGE: loadspritegfx ANIM_TAG_RED_BALL - createvisualtask AnimTask_BarrageBall, 3, - playsewithpan SE_M_SWAGGER, 192 + createvisualtask AnimTask_BarrageBall, 3 + playsewithpan SE_M_SWAGGER, SOUND_PAN_ATTACKER delay 24 createsprite gShakeMonOrTerrainSpriteTemplate, ANIM_ATTACKER, 2, 8, 1, 40, 1 - createvisualtask AnimTask_ShakeMon, 3, 1, 0, 4, 20, 1 - createvisualtask AnimTask_ShakeMon, 3, 3, 0, 4, 20, 1 - loopsewithpan SE_M_STRENGTH, 63, 8, 2 + createvisualtask AnimTask_ShakeMon, 3, ANIM_TARGET, 0, 4, 20, 1 + createvisualtask AnimTask_ShakeMon, 3, ANIM_DEF_PARTNER, 0, 4, 20, 1 + loopsewithpan SE_M_STRENGTH, SOUND_PAN_TARGET, 8, 2 end -Move_SKY_ATTACK:: +Move_SKY_ATTACK: choosetwoturnanim SkyAttackSetUp, SkyAttackUnleash -SkyAttackEnd:: +SkyAttackEnd: end -SkyAttackSetUp:: +SkyAttackSetUp: monbg ANIM_DEF_PARTNER setalpha 12, 11 - createvisualtask AnimTask_GetTargetIsAttackerPartner, 5, 7 - jumpargeq 7, 0, SkyAttackSetUpAgainstOpponent + createvisualtask AnimTask_GetTargetIsAttackerPartner, 5, ARG_RET_ID + jumpretfalse SkyAttackSetUpAgainstOpponent goto SkyAttackSetUpAgainstPartner -SkyAttackSetUpAgainstOpponent:: - createvisualtask AnimTask_BlendSelected, 10, 27, 1, 0, 12, RGB_BLACK +SkyAttackSetUpAgainstOpponent: + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_BG | F_PAL_ATK_SIDE | F_PAL_DEF_PARTNER, 1, 0, 12, RGB_BLACK waitforvisualfinish delay 12 - createvisualtask AnimTask_BlendSelected, 10, 2, 1, 8, 0, RGB_BLACK - createvisualtask AnimTask_HorizontalShake, 5, 0, 2, 16 - loopsewithpan SE_M_STAT_INCREASE, 192, 4, 8 - createvisualtask AnimTask_BlendSelected, 10, 2, 1, 0, 15, RGB_WHITE + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_ATTACKER, 1, 8, 0, RGB_BLACK + createvisualtask AnimTask_HorizontalShake, 5, ANIM_ATTACKER, 2, 16 + loopsewithpan SE_M_STAT_INCREASE, SOUND_PAN_ATTACKER, 4, 8 + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_ATTACKER, 1, 0, 15, RGB_WHITE delay 20 - createvisualtask AnimTask_BlendSelected, 10, 2, 1, 15, 0, RGB_WHITE + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_ATTACKER, 1, 15, 0, RGB_WHITE waitforvisualfinish - createvisualtask AnimTask_BlendSelected, 10, 25, 1, 8, 0, RGB_BLACK + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_BG | F_PAL_ATK_PARTNER | F_PAL_DEF_PARTNER, 1, 8, 0, RGB_BLACK waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff goto SkyAttackEnd -SkyAttackSetUpAgainstPartner:: - createvisualtask AnimTask_BlendExcept, 10, 1, 1, 0, 12, 0 +SkyAttackSetUpAgainstPartner: + createvisualtask AnimTask_BlendBattleAnimPalExclude, 10, ANIM_TARGET, 1, 0, 12, RGB_BLACK waitforvisualfinish delay 12 - createvisualtask AnimTask_BlendSelected, 10, 2, 1, 8, 0, RGB_BLACK - createvisualtask AnimTask_HorizontalShake, 5, 0, 2, 16 - playsewithpan SE_M_STAT_INCREASE, 192 + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_ATTACKER, 1, 8, 0, RGB_BLACK + createvisualtask AnimTask_HorizontalShake, 5, ANIM_ATTACKER, 2, 16 + playsewithpan SE_M_STAT_INCREASE, SOUND_PAN_ATTACKER delay 8 - createvisualtask AnimTask_BlendSelected, 10, 2, 1, 0, 15, RGB_WHITE + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_ATTACKER, 1, 0, 15, RGB_WHITE delay 20 - createvisualtask AnimTask_BlendSelected, 10, 2, 1, 15, 0, RGB_WHITE + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_ATTACKER, 1, 15, 0, RGB_WHITE waitforvisualfinish - createvisualtask AnimTask_BlendExcept, 10, 4, 1, 8, 0, 0 + createvisualtask AnimTask_BlendBattleAnimPalExclude, 10, 4, 1, 8, 0, RGB_BLACK waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff goto SkyAttackEnd -SkyAttackUnleash:: +SkyAttackUnleash: loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_BIRD call SetSkyBg monbg ANIM_ATTACKER - createvisualtask AnimTask_BlendSelected, 10, 2, 0, 0, 16, RGB_WHITE + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_ATTACKER, 0, 0, 16, RGB_WHITE delay 4 createvisualtask AnimTask_AttackerFadeToInvisible, 5, 0 waitforvisualfinish - createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_SKY_UPPERCUT, -64 + createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_SKY_UPPERCUT, SOUND_PAN_ATTACKER createsprite gSkyAttackBirdSpriteTemplate, ANIM_TARGET, 2 delay 14 - createvisualtask AnimTask_ShakeMon2, 2, 1, 10, 0, 18, 1 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_MEGA_KICK2, 63 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 10, 0, 18, 1 + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_MEGA_KICK2, SOUND_PAN_TARGET delay 20 createvisualtask AnimTask_AttackerFadeFromInvisible, 5, 1 delay 2 - createvisualtask AnimTask_BlendSelected, 10, 2, 0, 15, 0, RGB_WHITE + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_ATTACKER, 0, 15, 0, RGB_WHITE waitforvisualfinish clearmonbg ANIM_ATTACKER call UnsetSkyBg goto SkyAttackEnd -Move_FLASH:: - playsewithpan SE_M_LEER, 192 +Move_FLASH: + playsewithpan SE_M_LEER, SOUND_PAN_ATTACKER createvisualtask AnimTask_Flash, 2 waitforvisualfinish end -Move_SPLASH:: +Move_SPLASH: createvisualtask AnimTask_Splash, 2, 0, 3 delay 8 - loopsewithpan SE_M_TAIL_WHIP, 192, 38, 3 + loopsewithpan SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER, 38, 3 waitforvisualfinish end -Move_ACID_ARMOR:: +Move_ACID_ARMOR: monbg ANIM_ATTACKER setalpha 15, 0 - createvisualtask AnimTask_AcidArmor, 2, 0 - playsewithpan SE_M_ACID_ARMOR, 192 + createvisualtask AnimTask_AcidArmor, 2, ANIM_ATTACKER + playsewithpan SE_M_ACID_ARMOR, SOUND_PAN_ATTACKER waitforvisualfinish blendoff clearmonbg ANIM_ATTACKER delay 1 end -Move_SHARPEN:: +Move_SHARPEN: loadspritegfx ANIM_TAG_SPHERE_TO_CUBE - createsprite gSharpenSphereSpriteTemplate, ANIM_ATTACKER, 2, + createsprite gSharpenSphereSpriteTemplate, ANIM_ATTACKER, 2 waitforvisualfinish end -Move_SUPER_FANG:: +Move_SUPER_FANG: loadspritegfx ANIM_TAG_FANG_ATTACK - createvisualtask AnimTask_ShakeMonInPlace, 2, 0, 1, 0, 20, 1 - playsewithpan SE_M_DRAGON_RAGE, 192 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_ATTACKER, 1, 0, 20, 1 + playsewithpan SE_M_DRAGON_RAGE, SOUND_PAN_ATTACKER waitforvisualfinish - createvisualtask AnimTask_ShakeMonInPlace, 2, 0, 3, 0, 48, 1 - createvisualtask AnimTask_BlendMonInAndOut, 2, 0, 1247, 12, 4, 1 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_ATTACKER, 3, 0, 48, 1 + createvisualtask AnimTask_BlendMonInAndOut, 2, ANIM_ATTACKER, RGB(31, 6, 1), 12, 4, 1 waitforvisualfinish delay 20 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 4, 4 delay 4 - createsprite gSuperFangSpriteTemplate, ANIM_TARGET, 2, - playsewithpan SE_M_BITE, 63 + createsprite gSuperFangSpriteTemplate, ANIM_TARGET, 2 + playsewithpan SE_M_BITE, SOUND_PAN_TARGET delay 8 - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 1, 2143, 14, RGB_WHITE, 14 - createvisualtask AnimTask_ShakeMon, 2, 1, 0, 7, 12, 1 + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 3, 1, RGB(31, 2, 2), 14, RGB_WHITE, 14 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 7, 12, 1 waitforvisualfinish blendoff end -Move_SLASH:: +Move_SLASH: loadspritegfx ANIM_TAG_SLASH createsprite gSlashSliceSpriteTemplate, ANIM_TARGET, 2, 1, -8, 0 - playsewithpan SE_M_RAZOR_WIND, 63 + playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET delay 4 createsprite gSlashSliceSpriteTemplate, ANIM_TARGET, 2, 1, 8, 0 - createvisualtask AnimTask_ShakeMon2, 2, 1, 4, 0, 18, 1 - playsewithpan SE_M_RAZOR_WIND, 63 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 18, 1 + playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET waitforvisualfinish end -Move_STRUGGLE:: +Move_STRUGGLE: loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_MOVEMENT_WAVES - monbg 1 + monbg ANIM_TARGET setalpha 12, 8 - createvisualtask AnimTask_ShakeMonInPlace, 2, 0, 3, 0, 12, 4 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_ATTACKER, 3, 0, 12, 4 createsprite gMovementWavesSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 2 createsprite gMovementWavesSpriteTemplate, ANIM_ATTACKER, 2, 0, 1, 2 - loopsewithpan SE_M_HEADBUTT, 192, 12, 4 + loopsewithpan SE_M_HEADBUTT, SOUND_PAN_ATTACKER, 12, 4 waitforvisualfinish - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1, 2 - createvisualtask AnimTask_ShakeMonInPlace, 2, 1, 3, 0, 6, 1 - playsewithpan SE_M_MEGA_KICK2, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, ANIM_TARGET, 2 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_TARGET, 3, 0, 6, 1 + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff end -Move_SKETCH:: +Move_SKETCH: loadspritegfx ANIM_TAG_PENCIL - monbg 1 + monbg ANIM_TARGET createvisualtask AnimTask_SketchDrawMon, 2 - createsprite gPencilSpriteTemplate, ANIM_TARGET, 2, + createsprite gPencilSpriteTemplate, ANIM_TARGET, 2 waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET createvisualtask AnimTask_Splash, 2, 0, 2 - loopsewithpan SE_M_TAIL_WHIP, 192, 38, 2 + loopsewithpan SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER, 38, 2 end -Move_NIGHTMARE:: - fadetobg 2 +Move_NIGHTMARE: + fadetobg BG_GHOST waitbgfadein jumpifcontest NightmareInContest monbg ANIM_DEF_PARTNER createvisualtask AnimTask_NightmareClone, 2 - createvisualtask AnimTask_ShakeMon, 2, 1, 3, 0, 40, 1 - playsewithpan SE_M_NIGHTMARE, 63 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 40, 1 + playsewithpan SE_M_NIGHTMARE, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_DEF_PARTNER restorebg waitbgfadein end -NightmareInContest:: - createvisualtask AnimTask_BlendMonInAndOut, 2, 0, RGB_WHITE, 10, 2, 1 - createvisualtask AnimTask_ShakeMon, 2, 0, 3, 0, 32, 1 - playsewithpan SE_M_NIGHTMARE, 63 +NightmareInContest: + createvisualtask AnimTask_BlendMonInAndOut, 2, ANIM_ATTACKER, RGB_WHITE, 10, 2, 1 + createvisualtask AnimTask_ShakeMon, 2, ANIM_ATTACKER, 3, 0, 32, 1 + playsewithpan SE_M_NIGHTMARE, SOUND_PAN_TARGET waitforvisualfinish restorebg waitbgfadein end -Move_FLAIL:: +Move_FLAIL: loadspritegfx ANIM_TAG_IMPACT - monbg 1 + monbg ANIM_TARGET setalpha 12, 8 - createvisualtask AnimTask_FlailMovement, 2, 0 - loopsewithpan SE_M_HEADBUTT, 192, 8, 2 + createvisualtask AnimTask_FlailMovement, 2, ANIM_ATTACKER + loopsewithpan SE_M_HEADBUTT, SOUND_PAN_ATTACKER, 8, 2 waitforvisualfinish - createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, 1, 3 - createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 2, 0, 1, 30, 1, 0 - playsewithpan SE_M_MEGA_KICK2, 63 + createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, ANIM_TARGET, 3 + createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 2, FALSE, 1, 30, 1, 0 + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff end -Move_SPITE:: - fadetobg 2 - playsewithpan SE_M_PSYBEAM, 192 +Move_SPITE: + fadetobg BG_GHOST + playsewithpan SE_M_PSYBEAM, SOUND_PAN_ATTACKER waitbgfadein monbg ANIM_DEF_PARTNER - createvisualtask AnimTask_CurseBlendEffect, 2, 2, 2, 6, 0, 8, RGB_WHITE + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_ATTACKER, 2, 6, 0, 8, RGB_WHITE createvisualtask AnimTask_SpiteTargetShadow, 2 - loopsewithpan SE_M_PSYBEAM, 63, 20, 3 + loopsewithpan SE_M_PSYBEAM, SOUND_PAN_TARGET, 20, 3 waitforvisualfinish restorebg waitbgfadein - clearmonbg 1 + clearmonbg ANIM_TARGET end -Move_MACH_PUNCH:: +Move_MACH_PUNCH: loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_HANDS_AND_FEET monbg ANIM_ATK_PARTNER - createvisualtask AnimTask_GetAttackerSide, 2, - jumpargeq 7, 1, MachPunchOnPlayer + createvisualtask AnimTask_GetAttackerSide, 2 + jumprettrue MachPunchAgainstPlayer fadetobg BG_HIGHSPEED_OPPONENT - -MachPunchContinue:: +MachPunchContinue: waitbgfadeout createvisualtask AnimTask_StartSlidingBg, 5, -2304, 0, 1, -1 waitbgfadein delay 0 setalpha 9, 8 - createvisualtask AnimTask_AttackerPunchWithTrace, 2, 28968, 10 - playsewithpan SE_M_JUMP_KICK, 192 + createvisualtask AnimTask_AttackerPunchWithTrace, 2, RGB(8, 9, 28), 10 + playsewithpan SE_M_JUMP_KICK, SOUND_PAN_ATTACKER delay 6 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, 1, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, ANIM_TARGET, 1 createsprite gFistFootSpriteTemplate, ANIM_TARGET, 4, 0, 0, 8, 1, 0 - playsewithpan SE_M_COMET_PUNCH, 63 - createvisualtask AnimTask_ShakeMon, 2, 1, 3, 0, 6, 1 + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1 waitforvisualfinish clearmonbg ANIM_ATK_PARTNER blendoff restorebg waitbgfadeout - setarg 7, 65535 + setarg 7, 0xFFFF waitbgfadein end -MachPunchOnPlayer:: +MachPunchAgainstPlayer: fadetobg BG_HIGHSPEED_PLAYER goto MachPunchContinue -Move_FORESIGHT:: +Move_FORESIGHT: loadspritegfx ANIM_TAG_MAGNIFYING_GLASS monbg ANIM_DEF_PARTNER - monbgprio_28 1 + splitbgprio ANIM_TARGET setalpha 16, 0 - createsprite gForesightMagnifyingGlassSpriteTemplate, ANIM_TARGET, 2, 1 + createsprite gForesightMagnifyingGlassSpriteTemplate, ANIM_TARGET, 2, ANIM_TARGET delay 17 - loopsewithpan SE_M_SKETCH, 63, 16, 4 + loopsewithpan SE_M_SKETCH, SOUND_PAN_TARGET, 16, 4 delay 48 delay 24 - playsewithpan SE_M_SKETCH, 63 + playsewithpan SE_M_SKETCH, SOUND_PAN_TARGET delay 10 - createvisualtask AnimTask_BlendMonInAndOut, 5, 1, RGB_WHITE, 12, 2, 1 - playsewithpan SE_M_DETECT, 63 + createvisualtask AnimTask_BlendMonInAndOut, 5, ANIM_TARGET, RGB_WHITE, 12, 2, 1 + playsewithpan SE_M_DETECT, SOUND_PAN_TARGET waitforvisualfinish blendoff clearmonbg ANIM_DEF_PARTNER end -Move_DESTINY_BOND:: +Move_DESTINY_BOND: loadspritegfx ANIM_TAG_WHITE_SHADOW - fadetobg 2 - playsewithpan SE_M_PSYBEAM, 192 + fadetobg BG_GHOST + playsewithpan SE_M_PSYBEAM, SOUND_PAN_ATTACKER waitbgfadein createvisualtask AnimTask_DestinyBondWhiteShadow, 5, 0, 48 - playsewithpan SE_M_CONFUSE_RAY, 192 + playsewithpan SE_M_CONFUSE_RAY, SOUND_PAN_ATTACKER delay 48 - createvisualtask AnimTask_ShakeMonInPlace, 2, 0, 2, 0, 24, 1 - createvisualtask AnimTask_BlendExcept, 2, 6, 1, 0, 12, 30653 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_ATTACKER, 2, 0, 24, 1 + createvisualtask AnimTask_BlendBattleAnimPalExclude, 2, 6, 1, 0, 12, RGB(29, 29, 29) delay 24 - createvisualtask AnimTask_BlendExcept, 2, 6, 1, 12, 0, 30653 - playsewithpan SE_M_NIGHTMARE, 63 + createvisualtask AnimTask_BlendBattleAnimPalExclude, 2, 6, 1, 12, 0, RGB(29, 29, 29) + playsewithpan SE_M_NIGHTMARE, SOUND_PAN_TARGET waitforvisualfinish restorebg waitbgfadein @@ -3275,20 +3257,20 @@ Move_DESTINY_BOND:: clearmonbg 5 end -Move_ENDURE:: +Move_ENDURE: loadspritegfx ANIM_TAG_FOCUS_ENERGY - playsewithpan SE_M_DRAGON_RAGE, 192 + playsewithpan SE_M_DRAGON_RAGE, SOUND_PAN_ATTACKER call EndureEffect delay 8 - createvisualtask AnimTask_CurseBlendEffect, 2, 2, 2, 2, 0, 11, 31 - createvisualtask AnimTask_ShakeMon2, 2, 0, 1, 0, 32, 1 + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_ATTACKER, 2, 2, 0, 11, RGB_RED + createvisualtask AnimTask_ShakeMon2, 2, ANIM_ATTACKER, 1, 0, 32, 1 call EndureEffect delay 8 call EndureEffect waitforvisualfinish end -EndureEffect:: +EndureEffect: createsprite gEndureEnergySpriteTemplate, ANIM_ATTACKER, 2, 0, -24, 26, 2 delay 4 createsprite gEndureEnergySpriteTemplate, ANIM_ATTACKER, 2, 0, 14, 28, 1 @@ -3300,152 +3282,152 @@ EndureEffect:: createsprite gEndureEnergySpriteTemplate, ANIM_ATTACKER, 2, 0, -12, 0, 1 return -Move_CHARM:: +Move_CHARM: loadspritegfx ANIM_TAG_MAGENTA_HEART - createvisualtask AnimTask_RockMonBackAndForth, 5, 0, 2, 0 + createvisualtask AnimTask_RockMonBackAndForth, 5, ANIM_ATTACKER, 2, 0 createsprite gMagentaHeartSpriteTemplate, ANIM_ATTACKER, 3, 0, 20 - playsewithpan SE_M_CHARM, 192 + playsewithpan SE_M_CHARM, SOUND_PAN_ATTACKER delay 15 createsprite gMagentaHeartSpriteTemplate, ANIM_ATTACKER, 3, -20, 20 - playsewithpan SE_M_CHARM, 192 + playsewithpan SE_M_CHARM, SOUND_PAN_ATTACKER delay 15 createsprite gMagentaHeartSpriteTemplate, ANIM_ATTACKER, 3, 20, 20 - playsewithpan SE_M_CHARM, 192 + playsewithpan SE_M_CHARM, SOUND_PAN_ATTACKER waitforvisualfinish end -Move_ROLLOUT:: +Move_ROLLOUT: loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_MUD_SAND loadspritegfx ANIM_TAG_ROCKS monbg ANIM_DEF_PARTNER - monbgprio_28 1 + splitbgprio ANIM_TARGET setalpha 12, 8 createvisualtask AnimTask_Rollout, 2 waitforvisualfinish - createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 2, 0, 1, 30, 1, 0 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, 1, 2 - playsewithpan SE_M_MEGA_KICK2, 63 + createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 2, FALSE, 1, 30, 1, 0 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, ANIM_TARGET, 2 + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff end -Move_FALSE_SWIPE:: +Move_FALSE_SWIPE: loadspritegfx ANIM_TAG_SLASH_2 loadspritegfx ANIM_TAG_IMPACT - createsprite gFalseSwipeSliceSpriteTemplate, ANIM_TARGET, 2, - playsewithpan SE_M_VITAL_THROW, 63 + createsprite gFalseSwipeSliceSpriteTemplate, ANIM_TARGET, 2 + playsewithpan SE_M_VITAL_THROW, SOUND_PAN_TARGET delay 16 createsprite gFalseSwipePositionedSliceSpriteTemplate, ANIM_TARGET, 2, 0 - playsewithpan SE_M_DOUBLE_TEAM, 63 + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_TARGET delay 2 createsprite gFalseSwipePositionedSliceSpriteTemplate, ANIM_TARGET, 2, 16 delay 2 createsprite gFalseSwipePositionedSliceSpriteTemplate, ANIM_TARGET, 2, 32 - playsewithpan SE_M_DOUBLE_TEAM, 63 + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_TARGET delay 2 createsprite gFalseSwipePositionedSliceSpriteTemplate, ANIM_TARGET, 2, 48 delay 2 createsprite gFalseSwipePositionedSliceSpriteTemplate, ANIM_TARGET, 2, 64 - playsewithpan SE_M_DOUBLE_TEAM, 63 + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_TARGET delay 2 createsprite gFalseSwipePositionedSliceSpriteTemplate, ANIM_TARGET, 2, 80 delay 2 waitforvisualfinish - createvisualtask AnimTask_ShakeMon, 2, 1, 5, 0, 6, 1 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 4, 0, 0, 1, 3 - playsewithpan SE_M_COMET_PUNCH, 63 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 5, 0, 6, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 4, 0, 0, ANIM_TARGET, 3 + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET end -Move_SWAGGER:: +Move_SWAGGER: loadspritegfx ANIM_TAG_BREATH loadspritegfx ANIM_TAG_ANGER - createvisualtask AnimTask_GrowAndShrink, 2, - playsewithpan SE_M_SWAGGER, 192 + createvisualtask AnimTask_GrowAndShrink, 2 + playsewithpan SE_M_SWAGGER, SOUND_PAN_ATTACKER waitforvisualfinish - createsprite gBreathPuffSpriteTemplate, ANIM_ATTACKER, 2, - loopsewithpan SE_M_SWAGGER, 192, 4, 2 + createsprite gBreathPuffSpriteTemplate, ANIM_ATTACKER, 2 + loopsewithpan SE_M_SWAGGER, SOUND_PAN_ATTACKER, 4, 2 waitforvisualfinish delay 24 createsprite gAngerMarkSpriteTemplate, ANIM_TARGET, 2, 1, -20, -28 - playsewithpan SE_M_SWAGGER2, 63 + playsewithpan SE_M_SWAGGER2, SOUND_PAN_TARGET delay 12 createsprite gAngerMarkSpriteTemplate, ANIM_TARGET, 2, 1, 20, -28 - playsewithpan SE_M_SWAGGER2, 63 + playsewithpan SE_M_SWAGGER2, SOUND_PAN_TARGET waitforvisualfinish end -Move_MILK_DRINK:: +Move_MILK_DRINK: loadspritegfx ANIM_TAG_MILK_BOTTLE loadspritegfx ANIM_TAG_THIN_RING loadspritegfx ANIM_TAG_BLUE_STAR - monbg 1 - createsprite gMilkBottleSpriteTemplate, ANIM_ATTACKER, 2, + monbg ANIM_TARGET + createsprite gMilkBottleSpriteTemplate, ANIM_ATTACKER, 2 delay 40 - playsewithpan SE_M_CRABHAMMER, 192 + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_ATTACKER delay 12 - playsewithpan SE_M_CRABHAMMER, 192 + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_ATTACKER delay 20 - playsewithpan SE_M_CRABHAMMER, 192 + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_ATTACKER waitforvisualfinish createsprite gThinRingExpandingSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1, 0 - playsewithpan SE_M_MILK_DRINK, 192 + playsewithpan SE_M_MILK_DRINK, SOUND_PAN_ATTACKER waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET call HealingEffect2 waitforvisualfinish end -Move_MAGNITUDE:: - createvisualtask AnimTask_IsPowerOver99, 2, +Move_MAGNITUDE: + createvisualtask AnimTask_IsPowerOver99, 2 waitforvisualfinish - jumpargeq 15, 0, MagnitudeRegular - jumpargeq 15, 1, MagnitudeIntense -MagnitudeEnd:: + jumpargeq 15, FALSE, MagnitudeRegular + jumpargeq 15, TRUE, MagnitudeIntense +MagnitudeEnd: end -MagnitudeRegular:: - createvisualtask AnimTask_HorizontalShake, 5, 5, 0, 50 - createvisualtask AnimTask_HorizontalShake, 5, 4, 0, 50 - loopsewithpan SE_M_STRENGTH, 63, 8, 10 +MagnitudeRegular: + createvisualtask AnimTask_HorizontalShake, 5, (MAX_BATTLERS_COUNT + 1), 0, 50 + createvisualtask AnimTask_HorizontalShake, 5, MAX_BATTLERS_COUNT, 0, 50 + loopsewithpan SE_M_STRENGTH, SOUND_PAN_TARGET, 8, 10 goto MagnitudeEnd -MagnitudeIntense:: - createvisualtask AnimTask_HorizontalShake, 5, 5, 0, 50 - createvisualtask AnimTask_HorizontalShake, 5, 4, 0, 50 - loopsewithpan SE_M_STRENGTH, 63, 8, 10 +MagnitudeIntense: + createvisualtask AnimTask_HorizontalShake, 5, (MAX_BATTLERS_COUNT + 1), 0, 50 + createvisualtask AnimTask_HorizontalShake, 5, MAX_BATTLERS_COUNT, 0, 50 + loopsewithpan SE_M_STRENGTH, SOUND_PAN_TARGET, 8, 10 delay 10 - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 1, 0, 14, RGB_WHITE, 14 + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 3, 1, RGB_BLACK, 14, RGB_WHITE, 14 delay 16 - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 1, 0, 14, RGB_WHITE, 14 + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 3, 1, RGB_BLACK, 14, RGB_WHITE, 14 goto MagnitudeEnd -Move_RAPID_SPIN:: +Move_RAPID_SPIN: loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_RAPID_SPIN monbg ANIM_ATTACKER createsprite gRapidSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 32, -32, 40, -2 createvisualtask AnimTask_RapinSpinMonElevation, 2, 0, 2, 0 - loopsewithpan SE_M_RAZOR_WIND2, 192, 8, 4 + loopsewithpan SE_M_RAZOR_WIND2, SOUND_PAN_ATTACKER, 8, 4 waitforvisualfinish - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, 1, 2 - createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 2, 0, 1, 10, 1, 0 - playsewithpan SE_M_DOUBLE_SLAP, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, ANIM_TARGET, 2 + createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 2, FALSE, 1, 10, 1, 0 + playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET waitforvisualfinish delay 8 createvisualtask AnimTask_RapinSpinMonElevation, 2, 0, 2, 1 - loopsewithpan SE_M_RAZOR_WIND2, 192, 8, 4 + loopsewithpan SE_M_RAZOR_WIND2, SOUND_PAN_ATTACKER, 8, 4 waitforvisualfinish clearmonbg ANIM_ATTACKER end -Move_MOONLIGHT:: +Move_MOONLIGHT: loadspritegfx ANIM_TAG_MOON loadspritegfx ANIM_TAG_GREEN_SPARKLE loadspritegfx ANIM_TAG_BLUE_STAR setalpha 0, 16 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 0, 16, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 1, 0, 16, RGB_BLACK waitforvisualfinish createsprite gMoonSpriteTemplate, ANIM_ATTACKER, 2, 120, 56 createvisualtask AnimTask_AlphaFadeIn, 3, 0, 16, 16, 0, 1 @@ -3461,93 +3443,92 @@ Move_MOONLIGHT:: delay 30 createsprite gMoonlightSparkleSpriteTemplate, ANIM_ATTACKER, 40, 10, 0 delay 20 - createvisualtask AnimTask_FadeScreenBlue, 2, + createvisualtask AnimTask_MoonlightEndFade, 2 waitforvisualfinish call HealingEffect waitforvisualfinish end -Move_EXTREME_SPEED:: +Move_EXTREME_SPEED: loadspritegfx ANIM_TAG_SPEED_DUST loadspritegfx ANIM_TAG_IMPACT - createvisualtask AnimTask_GetAttackerSide, 2, - jumpargeq 7, 1, ExtremeSpeedOnPlayer + createvisualtask AnimTask_GetAttackerSide, 2 + jumprettrue ExtremeSpeedAgainstPlayer fadetobg BG_HIGHSPEED_OPPONENT - -ExtremeSpeedContinue:: +ExtremeSpeedContinue: waitbgfadeout createvisualtask AnimTask_StartSlidingBg, 5, -2304, 0, 1, -1 waitbgfadein - createvisualtask AnimTask_StretchAttacker, 2 - loopsewithpan SE_M_RAZOR_WIND2, 192, 8, 3 + createvisualtask AnimTask_AttackerStretchAndDisappear, 2 + loopsewithpan SE_M_RAZOR_WIND2, SOUND_PAN_ATTACKER, 8, 3 waitforvisualfinish delay 1 createvisualtask AnimTask_SetAttackerInvisibleWaitForSignal, 2 monbg ANIM_TARGET setalpha 12, 8 delay 18 - createvisualtask AnimTask_ExtremeSpeedImpact, 2, + createvisualtask AnimTask_ExtremeSpeedImpact, 2 delay 2 - playsewithpan SE_M_COMET_PUNCH, 63 - createsprite gMonEdgeHitSplatSpriteTemplate, ANIM_TARGET, 2, 1, 0, -12, 3 + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET + createsprite gMonEdgeHitSplatSpriteTemplate, ANIM_TARGET, 2, ANIM_TARGET, 0, -12, 3 delay 10 - playsewithpan SE_M_COMET_PUNCH, 63 - createsprite gMonEdgeHitSplatSpriteTemplate, ANIM_TARGET, 2, 1, 0, 12, 3 + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET + createsprite gMonEdgeHitSplatSpriteTemplate, ANIM_TARGET, 2, ANIM_TARGET, 0, 12, 3 delay 10 - playsewithpan SE_M_VITAL_THROW2, 63 - createsprite gMonEdgeHitSplatSpriteTemplate, ANIM_TARGET, 2, 1, 0, 0, 3 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET + createsprite gMonEdgeHitSplatSpriteTemplate, ANIM_TARGET, 2, ANIM_TARGET, 0, 0, 3 waitforvisualfinish - createvisualtask AnimTask_SpeedDust, 2, + createvisualtask AnimTask_SpeedDust, 2 delay 10 - createvisualtask AnimTask_ExtremeSpeedMonReappear, 2, - loopsewithpan SE_M_DOUBLE_TEAM, 192, 8, 4 + createvisualtask AnimTask_ExtremeSpeedMonReappear, 2 + loopsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER, 8, 4 waitforvisualfinish restorebg waitbgfadeout - setarg 7, 65535 + setarg 7, 0xFFFF waitbgfadein - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff delay 1 - setarg 7, 4096 + setarg 7, 0x1000 delay 1 end -ExtremeSpeedOnPlayer:: +ExtremeSpeedAgainstPlayer: fadetobg BG_HIGHSPEED_PLAYER goto ExtremeSpeedContinue -Move_UPROAR:: +Move_UPROAR: loadspritegfx ANIM_TAG_JAGGED_MUSIC_NOTE loadspritegfx ANIM_TAG_THIN_RING monbg ANIM_DEF_PARTNER createvisualtask AnimTask_UproarDistortion, 2, 0 createsprite gUproarRingSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 0, 0, 31, 8 - playsewithpan SE_M_UPROAR, 192 + playsewithpan SE_M_UPROAR, SOUND_PAN_ATTACKER createsprite gJaggedMusicNoteSpriteTemplate, ANIM_ATTACKER, 2, 0, 29, -12, 0 createsprite gJaggedMusicNoteSpriteTemplate, ANIM_ATTACKER, 2, 0, -12, -29, 1 delay 16 createvisualtask AnimTask_UproarDistortion, 2, 0 createsprite gUproarRingSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 0, 0, 31, 8 - playsewithpan SE_M_UPROAR, 192 + playsewithpan SE_M_UPROAR, SOUND_PAN_ATTACKER createsprite gJaggedMusicNoteSpriteTemplate, ANIM_ATTACKER, 2, 0, 12, -29, 1 createsprite gJaggedMusicNoteSpriteTemplate, ANIM_ATTACKER, 2, 0, -29, -12, 0 delay 16 createvisualtask AnimTask_UproarDistortion, 2, 0 createsprite gUproarRingSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 0, 0, 31, 8 - playsewithpan SE_M_UPROAR, 192 + playsewithpan SE_M_UPROAR, SOUND_PAN_ATTACKER createsprite gJaggedMusicNoteSpriteTemplate, ANIM_ATTACKER, 2, 0, 24, -24, 1 createsprite gJaggedMusicNoteSpriteTemplate, ANIM_ATTACKER, 2, 0, -24, -24, 0 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER end -Move_HEAT_WAVE:: +Move_HEAT_WAVE: loadspritegfx ANIM_TAG_FLYING_DIRT - createvisualtask AnimTask_BlendParticle, 5, 10261, 0, 6, 6, 31 - createvisualtask AnimTask_LoadSandstormBackground, 5, 1 - createvisualtask AnimTask_BlendBackground, 6, 6, 31 - panse_1B SE_M_HEAT_WAVE, 192, 63, 2, 0 + createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_FLYING_DIRT, 0, 6, 6, RGB_RED + createvisualtask AnimTask_LoadSandstormBackground, 5, TRUE + createvisualtask AnimTask_BlendBackground, 6, 6, RGB_RED + panse SE_M_HEAT_WAVE, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 delay 4 createvisualtask AnimTask_MoveHeatWaveTargets, 5 delay 12 @@ -3566,159 +3547,160 @@ Move_HEAT_WAVE:: createsprite gFlyingSandCrescentSpriteTemplate, ANIM_ATTACKER, 40, 60, 2560, 96, 1 end -Move_HAIL:: +@ Also used by Hail weather +Move_HAIL: loadspritegfx ANIM_TAG_HAIL loadspritegfx ANIM_TAG_ICE_CRYSTALS - createvisualtask AnimTask_BlendSelected, 10, 1, 3, 0, 6, RGB_BLACK + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_BG, 3, 0, 6, RGB_BLACK waitforvisualfinish - createvisualtask AnimTask_Hail1, 5, + createvisualtask AnimTask_Hail, 5 loopsewithpan SE_M_HAIL, 0, 8, 10 waitforvisualfinish - createvisualtask AnimTask_BlendSelected, 10, 1, 3, 6, 0, RGB_BLACK + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_BG, 3, 6, 0, RGB_BLACK end -Move_TORMENT:: +Move_TORMENT: loadspritegfx ANIM_TAG_ANGER loadspritegfx ANIM_TAG_THOUGHT_BUBBLE - createvisualtask AnimTask_TormentAttacker, 2, + createvisualtask AnimTask_TormentAttacker, 2 waitforvisualfinish - createvisualtask AnimTask_BlendMonInAndOut, 2, 1, 31, 10, 1, 1 + createvisualtask AnimTask_BlendMonInAndOut, 2, ANIM_TARGET, RGB_RED, 10, 1, 1 createsprite gAngerMarkSpriteTemplate, ANIM_TARGET, 2, 1, -20, -28 - playsewithpan SE_M_SWAGGER2, 63 + playsewithpan SE_M_SWAGGER2, SOUND_PAN_TARGET delay 20 createsprite gAngerMarkSpriteTemplate, ANIM_TARGET, 2, 1, 20, -28 - playsewithpan SE_M_SWAGGER2, 63 + playsewithpan SE_M_SWAGGER2, SOUND_PAN_TARGET end -Move_MEMENTO:: +Move_MEMENTO: setalpha 0, 16 delay 1 createvisualtask AnimTask_InitMementoShadow, 2 delay 1 createvisualtask AnimTask_MoveAttackerMementoShadow, 5 - playsewithpan SE_M_PSYBEAM, 192 + playsewithpan SE_M_PSYBEAM, SOUND_PAN_ATTACKER delay 48 - playsewithpan SE_M_PSYBEAM2, 192 + playsewithpan SE_M_PSYBEAM2, SOUND_PAN_ATTACKER waitforvisualfinish - createvisualtask sub_80B8664, 2, + createvisualtask AnimTask_MementoHandleBg, 2 delay 12 setalpha 0, 16 delay 1 - monbg_22 1 + monbg_static ANIM_TARGET createvisualtask AnimTask_MoveTargetMementoShadow, 5 - playsewithpan SE_M_PSYBEAM, 63 + playsewithpan SE_M_PSYBEAM, SOUND_PAN_TARGET waitforvisualfinish - clearmonbg_23 1 + clearmonbg_static ANIM_TARGET delay 1 blendoff delay 1 end -Move_FACADE:: +Move_FACADE: loadspritegfx ANIM_TAG_SWEAT_DROP - createvisualtask AnimTask_SquishAndSweatDroplets, 2, 0, 3 - createvisualtask AnimTask_FacadeColorBlend, 2, 0, 72 - loopsewithpan SE_M_SWAGGER, 192, 24, 3 + createvisualtask AnimTask_SquishAndSweatDroplets, 2, ANIM_ATTACKER, 3 + createvisualtask AnimTask_FacadeColorBlend, 2, ANIM_ATTACKER, 72 + loopsewithpan SE_M_SWAGGER, SOUND_PAN_ATTACKER, 24, 3 end -Move_SMELLING_SALT:: +Move_SMELLING_SALT: loadspritegfx ANIM_TAG_TAG_HAND loadspritegfx ANIM_TAG_SMELLINGSALT_EFFECT - createsprite gSmellingSaltsHandSpriteTemplate, ANIM_TARGET, 2, 1, 0, 2 - createsprite gSmellingSaltsHandSpriteTemplate, ANIM_TARGET, 2, 1, 1, 2 + createsprite gSmellingSaltsHandSpriteTemplate, ANIM_TARGET, 2, ANIM_TARGET, 0, 2 + createsprite gSmellingSaltsHandSpriteTemplate, ANIM_TARGET, 2, ANIM_TARGET, 1, 2 delay 32 - createvisualtask AnimTask_SmellingSaltsSquish, 3, 1, 2 - loopsewithpan SE_M_DOUBLE_SLAP, 63, 12, 2 + createvisualtask AnimTask_SmellingSaltsSquish, 3, ANIM_TARGET, 2 + loopsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET, 12, 2 waitforvisualfinish delay 4 - createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 6, 2 - createsprite gSmellingSaltExclamationSpriteTemplate, ANIM_TARGET, 2, 1, 8, 3 - loopsewithpan SE_M_SWAGGER2, 63, 16, 3 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 6, 2 + createsprite gSmellingSaltExclamationSpriteTemplate, ANIM_TARGET, 2, ANIM_TARGET, 8, 3 + loopsewithpan SE_M_SWAGGER2, SOUND_PAN_TARGET, 16, 3 end -Move_FOLLOW_ME:: +Move_FOLLOW_ME: loadspritegfx ANIM_TAG_FINGER createsprite gFollowMeFingerSpriteTemplate, ANIM_ATTACKER, 2, 0 - playsewithpan SE_M_TAIL_WHIP, 192 + playsewithpan SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER delay 18 - playsewithpan SE_M_ATTRACT, 192 + playsewithpan SE_M_ATTRACT, SOUND_PAN_ATTACKER delay 71 - loopsewithpan SE_M_TAIL_WHIP, 192, 22, 3 + loopsewithpan SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER, 22, 3 end -Move_CHARGE:: +Move_CHARGE: loadspritegfx ANIM_TAG_ELECTRIC_ORBS loadspritegfx ANIM_TAG_CIRCLE_OF_LIGHT loadspritegfx ANIM_TAG_ELECTRICITY monbg ANIM_ATTACKER setalpha 12, 8 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 0, 4, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 2, 0, 4, RGB_BLACK waitforvisualfinish - createvisualtask AnimTask_ElectricChargingParticles, 2, 0, 60, 2, 12 - playsewithpan SE_M_CHARGE, 192 + createvisualtask AnimTask_ElectricChargingParticles, 2, ANIM_ATTACKER, 60, 2, 12 + playsewithpan SE_M_CHARGE, SOUND_PAN_ATTACKER delay 30 - playsewithpan SE_M_CHARGE, 192 + playsewithpan SE_M_CHARGE, SOUND_PAN_ATTACKER delay 30 - playsewithpan SE_M_CHARGE, 192 + playsewithpan SE_M_CHARGE, SOUND_PAN_ATTACKER createsprite gGrowingChargeOrbSpriteTemplate, ANIM_ATTACKER, 2, 0 delay 25 - playsewithpan SE_M_CHARGE, 192 + playsewithpan SE_M_CHARGE, SOUND_PAN_ATTACKER delay 20 - playsewithpan SE_M_CHARGE, 192 + playsewithpan SE_M_CHARGE, SOUND_PAN_ATTACKER delay 15 - playsewithpan SE_M_CHARGE, 192 + playsewithpan SE_M_CHARGE, SOUND_PAN_ATTACKER delay 10 delay 6 - loopsewithpan SE_M_CHARGE, 192, 6, 5 + loopsewithpan SE_M_CHARGE, SOUND_PAN_ATTACKER, 6, 5 waitforvisualfinish createsprite gElectricPuffSpriteTemplate, ANIM_ATTACKER, 2, 0, 16, 16 delay 2 createsprite gElectricPuffSpriteTemplate, ANIM_ATTACKER, 2, 0, -16, -16 - playsewithpan SE_M_THUNDERBOLT2, 192 + playsewithpan SE_M_THUNDERBOLT2, SOUND_PAN_ATTACKER waitforvisualfinish - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 4, 4, 0, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 4, 4, 0, RGB_BLACK clearmonbg ANIM_ATTACKER blendoff end -Move_TAUNT:: +Move_TAUNT: loadspritegfx ANIM_TAG_FINGER_2 loadspritegfx ANIM_TAG_THOUGHT_BUBBLE loadspritegfx ANIM_TAG_ANGER createsprite gThoughtBubbleSpriteTemplate, ANIM_ATTACKER, 11, 0, 45 - playsewithpan SE_M_METRONOME, 192 + playsewithpan SE_M_METRONOME, SOUND_PAN_ATTACKER delay 6 createsprite gTauntFingerSpriteTemplate, ANIM_ATTACKER, 12, 0 delay 4 - loopsewithpan SE_M_TAIL_WHIP, 192, 16, 2 + loopsewithpan SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER, 16, 2 waitforvisualfinish delay 8 createsprite gAngerMarkSpriteTemplate, ANIM_TARGET, 2, 1, -20, -28 - playsewithpan SE_M_SWAGGER2, 63 + playsewithpan SE_M_SWAGGER2, SOUND_PAN_TARGET waitforvisualfinish delay 12 createsprite gAngerMarkSpriteTemplate, ANIM_TARGET, 2, 1, 20, -28 - playsewithpan SE_M_SWAGGER2, 63 + playsewithpan SE_M_SWAGGER2, SOUND_PAN_TARGET end -Move_HELPING_HAND:: +Move_HELPING_HAND: loadspritegfx ANIM_TAG_TAG_HAND - createvisualtask AnimTask_HelpingHandAttackerMovement, 5, + createvisualtask AnimTask_HelpingHandAttackerMovement, 5 createsprite gHelpingHandClapSpriteTemplate, ANIM_ATTACKER, 40, 0 createsprite gHelpingHandClapSpriteTemplate, ANIM_ATTACKER, 40, 1 delay 19 playsewithpan SE_M_ENCORE, 0 - createvisualtask AnimTask_ShakeMon2, 2, 2, 2, 0, 5, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_ATK_PARTNER, 2, 0, 5, 1 delay 14 playsewithpan SE_M_ENCORE, 0 - createvisualtask AnimTask_ShakeMon2, 2, 2, 2, 0, 5, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_ATK_PARTNER, 2, 0, 5, 1 delay 20 playsewithpan SE_M_ENCORE, 0 - createvisualtask AnimTask_ShakeMon2, 2, 2, 3, 0, 10, 1 - createvisualtask AnimTask_BlendMonInAndOut, 2, 2, 1023, 12, 1, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_ATK_PARTNER, 3, 0, 10, 1 + createvisualtask AnimTask_BlendMonInAndOut, 2, ANIM_ATK_PARTNER, RGB_YELLOW, 12, 1, 1 end -Move_ASSIST:: +Move_ASSIST: loadspritegfx ANIM_TAG_PAW_PRINT createsprite gAssistPawprintSpriteTemplate, ANIM_ATTACKER, 50, 112, -16, 140, 128, 36 delay 2 @@ -3735,15 +3717,15 @@ Move_ASSIST:: playsewithpan SE_M_SCRATCH, 0 end -Move_SUPERPOWER:: +Move_SUPERPOWER: loadspritegfx ANIM_TAG_CIRCLE_OF_LIGHT loadspritegfx ANIM_TAG_METEOR loadspritegfx ANIM_TAG_FLAT_ROCK monbg ANIM_ATK_PARTNER - monbgprio_28 0 + splitbgprio ANIM_ATTACKER setalpha 12, 8 - createsprite gSuperpowerOrbSpriteTemplate, ANIM_TARGET, 2, 0 - playsewithpan SE_M_MEGA_KICK, 192 + createsprite gSuperpowerOrbSpriteTemplate, ANIM_TARGET, 2, ANIM_ATTACKER + playsewithpan SE_M_MEGA_KICK, SOUND_PAN_ATTACKER delay 20 createsprite gShakeMonOrTerrainSpriteTemplate, ANIM_ATTACKER, 2, 4, 1, 180, 1 createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_EARTHQUAKE, 0 @@ -3758,144 +3740,144 @@ Move_SUPERPOWER:: delay 8 createsprite gSuperpowerRockSpriteTemplate, ANIM_ATTACKER, 41, 60, 288, 3, 88 delay 74 - createsprite gSuperpowerFireballSpriteTemplate, ANIM_TARGET, 3, 0 - playsewithpan SE_M_SWAGGER, 192 + createsprite gSuperpowerFireballSpriteTemplate, ANIM_TARGET, 3, ANIM_ATTACKER + playsewithpan SE_M_SWAGGER, SOUND_PAN_ATTACKER delay 16 - createvisualtask AnimTask_ShakeMon2, 2, 1, 8, 0, 16, 1 - playsewithpan SE_M_MEGA_KICK2, 63 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 8, 0, 16, 1 + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_ATK_PARTNER blendoff delay 1 end -Move_RECYCLE:: +Move_RECYCLE: loadspritegfx ANIM_TAG_RECYCLE monbg ANIM_ATTACKER setalpha 0, 16 delay 1 - createsprite gRecycleSpriteTemplate, ANIM_ATTACKER, 2, - loopsewithpan SE_M_TAKE_DOWN, 192, 24, 3 + createsprite gRecycleSpriteTemplate, ANIM_ATTACKER, 2 + loopsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER, 24, 3 waitforvisualfinish - createvisualtask AnimTask_BlendMonInAndOut, 5, 0, RGB_WHITE, 12, 2, 1 - playsewithpan SE_M_TAKE_DOWN, 192 + createvisualtask AnimTask_BlendMonInAndOut, 5, ANIM_ATTACKER, RGB_WHITE, 12, 2, 1 + playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER waitforvisualfinish blendoff clearmonbg ANIM_ATTACKER delay 1 end -Move_BRICK_BREAK:: +Move_BRICK_BREAK: loadspritegfx ANIM_TAG_BLUE_LIGHT_WALL loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_HANDS_AND_FEET loadspritegfx ANIM_TAG_TORN_METAL choosetwoturnanim BrickBreakNormal, BrickBreakShatteredWall -BrickBreakNormal:: - monbg 1 +BrickBreakNormal: + monbg ANIM_TARGET setalpha 12, 8 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 3, 8 delay 4 delay 1 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, -18, -18, 1, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, -18, -18, ANIM_TARGET, 1 createsprite gFistFootSpriteTemplate, ANIM_ATTACKER, 2, -18, -18, 10, 1, 0 - playsewithpan SE_M_VITAL_THROW, 63 + playsewithpan SE_M_VITAL_THROW, SOUND_PAN_TARGET delay 20 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 3, 8 delay 5 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 18, 18, 1, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 18, 18, ANIM_TARGET, 1 createsprite gFistFootSpriteTemplate, ANIM_ATTACKER, 2, 18, 18, 10, 1, 0 - playsewithpan SE_M_VITAL_THROW, 63 + playsewithpan SE_M_VITAL_THROW, SOUND_PAN_TARGET delay 20 - createvisualtask AnimTask_WindUpLunge, 2, 0, -24, 0, 24, 10, 24, 3 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 0, 6, 0 + createvisualtask AnimTask_WindUpLunge, 2, ANIM_ATTACKER, -24, 0, 24, 10, 24, 3 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 2, 0, 6, RGB_BLACK delay 37 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, ANIM_TARGET, 1 createsprite gFistFootSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 10, 1, 0 - playsewithpan SE_M_VITAL_THROW2, 63 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET waitforvisualfinish - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 6, 0, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 2, 6, 0, RGB_BLACK waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET end -BrickBreakShatteredWall:: - monbg 1 +BrickBreakShatteredWall: + monbg ANIM_TARGET setalpha 12, 8 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 3, 8 delay 4 - createsprite gBrickBreakWallSpriteTemplate, ANIM_ATTACKER, 3, 1, 0, 0, 90, 10 + createsprite gBrickBreakWallSpriteTemplate, ANIM_ATTACKER, 3, ANIM_TARGET, 0, 0, 90, 10 delay 1 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, -18, -18, 1, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, -18, -18, ANIM_TARGET, 1 createsprite gFistFootSpriteTemplate, ANIM_ATTACKER, 2, -18, -18, 10, 1, 0 - playsewithpan SE_M_VITAL_THROW, 63 + playsewithpan SE_M_VITAL_THROW, SOUND_PAN_TARGET delay 20 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 3, 8 delay 5 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 18, 18, 1, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 18, 18, ANIM_TARGET, 1 createsprite gFistFootSpriteTemplate, ANIM_ATTACKER, 2, 18, 18, 10, 1, 0 - playsewithpan SE_M_VITAL_THROW, 63 + playsewithpan SE_M_VITAL_THROW, SOUND_PAN_TARGET delay 20 - createvisualtask AnimTask_WindUpLunge, 2, 0, -24, 0, 24, 10, 24, 3 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 0, 6, 0 + createvisualtask AnimTask_WindUpLunge, 2, ANIM_ATTACKER, -24, 0, 24, 10, 24, 3 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 2, 0, 6, RGB_BLACK delay 37 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, ANIM_TARGET, 1 createsprite gFistFootSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 10, 1, 0 - playsewithpan SE_M_VITAL_THROW2, 63 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET waitforvisualfinish - createsprite gBrickBreakWallShardSpriteTemplate, ANIM_ATTACKER, 2, 1, 0, -8, -12 - createsprite gBrickBreakWallShardSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 8, -12 - createsprite gBrickBreakWallShardSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, -8, 12 - createsprite gBrickBreakWallShardSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 8, 12 - playsewithpan SE_M_BRICK_BREAK, 63 + createsprite gBrickBreakWallShardSpriteTemplate, ANIM_ATTACKER, 2, ANIM_TARGET, 0, -8, -12 + createsprite gBrickBreakWallShardSpriteTemplate, ANIM_ATTACKER, 2, ANIM_TARGET, 1, 8, -12 + createsprite gBrickBreakWallShardSpriteTemplate, ANIM_ATTACKER, 2, ANIM_TARGET, 2, -8, 12 + createsprite gBrickBreakWallShardSpriteTemplate, ANIM_ATTACKER, 2, ANIM_TARGET, 3, 8, 12 + playsewithpan SE_M_BRICK_BREAK, SOUND_PAN_TARGET waitforvisualfinish - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 6, 0, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 2, 6, 0, RGB_BLACK waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET end -Move_YAWN:: +Move_YAWN: loadspritegfx ANIM_TAG_PINK_CLOUD - createvisualtask AnimTask_DeepInhale, 2, 0 - playsewithpan SE_M_YAWN, 192 + createvisualtask AnimTask_DeepInhale, 2, ANIM_ATTACKER + playsewithpan SE_M_YAWN, SOUND_PAN_ATTACKER waitforvisualfinish createsprite gYawnCloudSpriteTemplate, ANIM_TARGET, 5, 2 - playsewithpan SE_M_SPIT_UP, 192 + playsewithpan SE_M_SPIT_UP, SOUND_PAN_ATTACKER delay 4 createsprite gYawnCloudSpriteTemplate, ANIM_TARGET, 5, 1 delay 4 createsprite gYawnCloudSpriteTemplate, ANIM_TARGET, 5, 0 waitforvisualfinish - createvisualtask AnimTask_DeepInhale, 2, 1 - playsewithpan SE_M_YAWN, 63 + createvisualtask AnimTask_DeepInhale, 2, ANIM_TARGET + playsewithpan SE_M_YAWN, SOUND_PAN_TARGET end -Move_ENDEAVOR:: +Move_ENDEAVOR: loadspritegfx ANIM_TAG_SWEAT_DROP loadspritegfx ANIM_TAG_IMPACT - createvisualtask AnimTask_SquishAndSweatDroplets, 2, 0, 2 - loopsewithpan SE_M_TAIL_WHIP, 192, 24, 2 - createvisualtask AnimTask_BlendMonInAndOut, 5, 0, 703, 12, 1, 2 + createvisualtask AnimTask_SquishAndSweatDroplets, 2, ANIM_ATTACKER, 2 + loopsewithpan SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER, 24, 2 + createvisualtask AnimTask_BlendMonInAndOut, 5, ANIM_ATTACKER, RGB(31, 21, 0), 12, 1, 2 delay 6 - createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 5, 0, 1, 8, 1, 0 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 12, -12, 1, 2 - playsewithpan SE_M_DOUBLE_SLAP, 63 + createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 5, FALSE, 1, 8, 1, 0 + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 12, -12, ANIM_TARGET, 2 + playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET delay 24 - createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 5, 0, 1, 8, 1, 0 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, -12, 12, 1, 2 - playsewithpan SE_M_COMET_PUNCH, 63 + createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 5, FALSE, 1, 8, 1, 0 + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, -12, 12, ANIM_TARGET, 2 + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET end -Move_ERUPTION:: +Move_ERUPTION: loadspritegfx ANIM_TAG_WARM_ROCK - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 2, 0, 4, 31 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG | F_PAL_BATTLERS, 2, 0, 4, RGB_RED waitforvisualfinish createvisualtask AnimTask_EruptionLaunchRocks, 2 - waitplaysewithpan SE_M_EXPLOSION, 192, 60 + waitplaysewithpan SE_M_EXPLOSION, SOUND_PAN_ATTACKER, 60 waitforvisualfinish createvisualtask AnimTask_EruptionLaunchRocks, 2 - waitplaysewithpan SE_M_EXPLOSION, 192, 60 + waitplaysewithpan SE_M_EXPLOSION, SOUND_PAN_ATTACKER, 60 waitforvisualfinish delay 30 createsprite gEruptionFallingRockSpriteTemplate, ANIM_ATTACKER, 40, 200, -32, 0, 100, 0 @@ -3905,72 +3887,72 @@ Move_ERUPTION:: createsprite gEruptionFallingRockSpriteTemplate, ANIM_ATTACKER, 40, 110, -32, 64, 50, 0 createsprite gEruptionFallingRockSpriteTemplate, ANIM_ATTACKER, 40, 60, -32, 80, 70, 1 delay 22 - createvisualtask AnimTask_HorizontalShake, 5, 5, 8, 60 - createvisualtask AnimTask_HorizontalShake, 5, 4, 8, 60 - loopsewithpan SE_M_ROCK_THROW, 63, 16, 12 + createvisualtask AnimTask_HorizontalShake, 5, (MAX_BATTLERS_COUNT + 1), 8, 60 + createvisualtask AnimTask_HorizontalShake, 5, MAX_BATTLERS_COUNT, 8, 60 + loopsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET, 16, 12 delay 80 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 40, 31, 4, 4, 0, 31 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 40, F_PAL_BG | F_PAL_BATTLERS, 4, 4, 0, RGB_RED end -Move_SKILL_SWAP:: +Move_SKILL_SWAP: loadspritegfx ANIM_TAG_BLUEGREEN_ORB call SetPsychicBackground - createvisualtask AnimTask_SkillSwap, 3, 1 - createvisualtask AnimTask_BlendMonInAndOut, 5, 1, RGB_WHITE, 12, 3, 1 - loopsewithpan SE_M_REVERSAL, 192, 24, 3 + createvisualtask AnimTask_SkillSwap, 3, ANIM_TARGET + createvisualtask AnimTask_BlendMonInAndOut, 5, ANIM_TARGET, RGB_WHITE, 12, 3, 1 + loopsewithpan SE_M_REVERSAL, SOUND_PAN_ATTACKER, 24, 3 delay 16 - createvisualtask AnimTask_SkillSwap, 3, 0 - createvisualtask AnimTask_BlendMonInAndOut, 5, 0, RGB_WHITE, 12, 3, 1 + createvisualtask AnimTask_SkillSwap, 3, ANIM_ATTACKER + createvisualtask AnimTask_BlendMonInAndOut, 5, ANIM_ATTACKER, RGB_WHITE, 12, 3, 1 waitforvisualfinish - call UnsetPsychicBg + call UnsetPsychicBackground end -Move_IMPRISON:: +Move_IMPRISON: loadspritegfx ANIM_TAG_HOLLOW_ORB loadspritegfx ANIM_TAG_X_SIGN call SetPsychicBackground monbg ANIM_DEF_PARTNER createvisualtask AnimTask_ImprisonOrbs, 5 delay 8 - loopsewithpan SE_M_HORN_ATTACK, 192, 8, 5 + loopsewithpan SE_M_HORN_ATTACK, SOUND_PAN_ATTACKER, 8, 5 waitforvisualfinish delay 4 - createsprite gRedXSpriteTemplate, ANIM_ATTACKER, 5, 0, 40 - createvisualtask AnimTask_HorizontalShake, 5, 4, 1, 10 - playsewithpan SE_M_HYPER_BEAM, 192 + createsprite gRedXSpriteTemplate, ANIM_ATTACKER, 5, ANIM_ATTACKER, 40 + createvisualtask AnimTask_HorizontalShake, 5, MAX_BATTLERS_COUNT, 1, 10 + playsewithpan SE_M_HYPER_BEAM, SOUND_PAN_ATTACKER clearmonbg ANIM_DEF_PARTNER - call UnsetPsychicBg + call UnsetPsychicBackground end -Move_GRUDGE:: +Move_GRUDGE: loadspritegfx ANIM_TAG_PURPLE_FLAME monbg ANIM_ATTACKER - monbgprio_29 - fadetobg 2 - playsewithpan SE_M_PSYBEAM, 192 + splitbgprio_all + fadetobg BG_GHOST + playsewithpan SE_M_PSYBEAM, SOUND_PAN_ATTACKER waitbgfadein createvisualtask AnimTask_GrudgeFlames, 3 - loopsewithpan SE_M_EMBER, 192, 16, 4 + loopsewithpan SE_M_EMBER, SOUND_PAN_ATTACKER, 16, 4 delay 10 delay 80 - playsewithpan SE_M_NIGHTMARE, 63 + playsewithpan SE_M_NIGHTMARE, SOUND_PAN_TARGET waitforvisualfinish restorebg waitbgfadein clearmonbg ANIM_ATTACKER end -Move_CAMOUFLAGE:: +Move_CAMOUFLAGE: monbg ANIM_ATK_PARTNER - monbgprio_28 0 + splitbgprio ANIM_ATTACKER setalpha 16, 0 - createvisualtask AnimTask_SetCamouflageBlend, 5, 2, 3, 0, 14 + createvisualtask AnimTask_SetCamouflageBlend, 5, F_PAL_ATTACKER, 3, 0, 14 delay 16 createvisualtask AnimTask_AttackerFadeToInvisible, 2, 4 - playsewithpan SE_M_FAINT_ATTACK, 192 + playsewithpan SE_M_FAINT_ATTACK, SOUND_PAN_ATTACKER waitforvisualfinish delay 8 - createvisualtask AnimTask_SetCamouflageBlend, 5, 2, 0, 0, 0 + createvisualtask AnimTask_SetCamouflageBlend, 5, F_PAL_ATTACKER, 0, 0, 0 waitforvisualfinish createvisualtask AnimTask_AttackerFadeFromInvisible, 2, 1 waitforvisualfinish @@ -3978,90 +3960,90 @@ Move_CAMOUFLAGE:: clearmonbg ANIM_ATK_PARTNER end -Move_TAIL_GLOW:: +Move_TAIL_GLOW: loadspritegfx ANIM_TAG_CIRCLE_OF_LIGHT monbg ANIM_ATTACKER setalpha 12, 8 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 0, 4, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 2, 0, 4, RGB_BLACK waitforvisualfinish - createsprite gTailGlowOrbSpriteTemplate, ANIM_ATTACKER, 66, 0 + createsprite gTailGlowOrbSpriteTemplate, ANIM_ATTACKER, 66, ANIM_ATTACKER delay 18 - loopsewithpan SE_M_MORNING_SUN, 192, 16, 6 + loopsewithpan SE_M_MORNING_SUN, SOUND_PAN_ATTACKER, 16, 6 waitforvisualfinish - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 4, 4, 0, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 4, 4, 0, RGB_BLACK clearmonbg ANIM_ATTACKER blendoff delay 1 end -Move_LUSTER_PURGE:: +Move_LUSTER_PURGE: loadspritegfx ANIM_TAG_WHITE_CIRCLE_OF_LIGHT loadspritegfx ANIM_TAG_IMPACT - fadetobg 3 + fadetobg BG_PSYCHIC waitbgfadeout - createvisualtask AnimTask_FadeScreenToWhite, 5, + createvisualtask AnimTask_FadeScreenToWhite, 5 waitbgfadein monbg ANIM_ATTACKER setalpha 12, 8 - playsewithpan SE_M_SOLAR_BEAM, 192 + playsewithpan SE_M_SOLAR_BEAM, SOUND_PAN_ATTACKER createsprite gLusterPurgeCircleSpriteTemplate, ANIM_ATTACKER, 41, 0, 0, 0, 0 delay 20 - createvisualtask AnimTask_BlendExcept, 5, 5, 2, 0, 16, -1 - createvisualtask AnimTask_BlendParticle, 5, 10267, 2, 0, 16, -1 + createvisualtask AnimTask_BlendBattleAnimPalExclude, 5, 5, 2, 0, 16, RGB_WHITEALPHA + createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_WHITE_CIRCLE_OF_LIGHT, 2, 0, 16, RGB_WHITEALPHA waitforvisualfinish - createvisualtask AnimTask_BlendParticle, 5, 10135, 0, 12, 12, 23552 + createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_IMPACT, 0, 12, 12, RGB(0, 0, 23) waitforvisualfinish createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, 1, 2 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_HYPER_BEAM, 63 + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_HYPER_BEAM, SOUND_PAN_TARGET delay 3 createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, 1, 2 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_HYPER_BEAM, 63 + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_HYPER_BEAM, SOUND_PAN_TARGET delay 3 createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, 1, 2 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_HYPER_BEAM, 63 + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_HYPER_BEAM, SOUND_PAN_TARGET delay 3 createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, 1, 2 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_HYPER_BEAM, 63 + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_HYPER_BEAM, SOUND_PAN_TARGET delay 3 createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, 1, 2 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_HYPER_BEAM, 63 + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_HYPER_BEAM, SOUND_PAN_TARGET delay 3 createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, 1, 2 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_HYPER_BEAM, 63 + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_HYPER_BEAM, SOUND_PAN_TARGET waitforvisualfinish - createvisualtask AnimTask_BlendExcept, 5, 5, 2, 16, 0, -1 - createvisualtask AnimTask_HorizontalShake, 5, 1, 5, 14 + createvisualtask AnimTask_BlendBattleAnimPalExclude, 5, 5, 2, 16, 0, RGB_WHITEALPHA + createvisualtask AnimTask_HorizontalShake, 5, ANIM_TARGET, 5, 14 waitforvisualfinish clearmonbg ANIM_ATTACKER blendoff - call UnsetPsychicBg + call UnsetPsychicBackground end -Move_MIST_BALL:: +Move_MIST_BALL: loadspritegfx ANIM_TAG_SMALL_BUBBLES loadspritegfx ANIM_TAG_WHITE_FEATHER delay 0 - playsewithpan SE_M_STRING_SHOT, 192 + playsewithpan SE_M_STRING_SHOT, SOUND_PAN_ATTACKER createsprite gMistBallSpriteTemplate, ANIM_TARGET, 0, 0, 0, 0, 0, 30, 0 waitforvisualfinish - playsewithpan SE_M_SAND_ATTACK, 63 - createvisualtask AnimTask_ShakeMon, 2, 1, 5, 0, 10, 0 - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 1, 1, 1, 32279, 16, RGB_WHITE, 16 + playsewithpan SE_M_SAND_ATTACK, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 5, 0, 10, 0 + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, F_PAL_BG, 1, 1, RGB(23, 16, 31), 16, RGB_WHITE, 16 delay 0 playsewithpan SE_M_HAZE, 0 - createvisualtask AnimTask_LoadMistTiles, 5, - createvisualtask AnimTask_BlendSelected, 10, 4, 3, 0, 16, RGB_WHITE + createvisualtask AnimTask_MistBallFog, 5 + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_TARGET, 3, 0, 16, RGB_WHITE delay 8 - createvisualtask AnimTask_ShakeMon, 2, 1, 4, 0, 70, 0 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 4, 0, 70, 0 delay 70 - createvisualtask AnimTask_BlendSelected, 10, 4, 2, 16, 0, RGB_WHITE + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_TARGET, 2, 16, 0, RGB_WHITE end -Move_FEATHER_DANCE:: +Move_FEATHER_DANCE: loadspritegfx ANIM_TAG_WHITE_FEATHER monbg ANIM_DEF_PARTNER - monbgprio_29 - playsewithpan SE_M_PETAL_DANCE, 63 + splitbgprio_all + playsewithpan SE_M_PETAL_DANCE, SOUND_PAN_TARGET delay 0 createsprite gFallingFeatherSpriteTemplate, ANIM_TARGET, 0, 0, -16, 64, 2, 104, 11304, 32, 1 delay 6 @@ -4079,41 +4061,41 @@ Move_FEATHER_DANCE:: clearmonbg ANIM_DEF_PARTNER end -Move_TEETER_DANCE:: +Move_TEETER_DANCE: loadspritegfx ANIM_TAG_MUSIC_NOTES loadspritegfx ANIM_TAG_DUCK - createvisualtask AnimTask_TeeterDanceMovement, 5, + createvisualtask AnimTask_TeeterDanceMovement, 5 createsprite gFastFlyingMusicNotesSpriteTemplate, ANIM_ATTACKER, 2, 0, 16, -2 - playsewithpan SE_M_TEETER_DANCE, 192 + playsewithpan SE_M_TEETER_DANCE, SOUND_PAN_ATTACKER delay 24 createsprite gFastFlyingMusicNotesSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, -2 - playsewithpan SE_M_TEETER_DANCE, 192 + playsewithpan SE_M_TEETER_DANCE, SOUND_PAN_ATTACKER delay 24 createsprite gFastFlyingMusicNotesSpriteTemplate, ANIM_ATTACKER, 2, 0, -16, -2 - playsewithpan SE_M_TEETER_DANCE, 192 + playsewithpan SE_M_TEETER_DANCE, SOUND_PAN_ATTACKER delay 24 createsprite gFastFlyingMusicNotesSpriteTemplate, ANIM_ATTACKER, 2, 1, -8, -2 - playsewithpan SE_M_TEETER_DANCE, 192 + playsewithpan SE_M_TEETER_DANCE, SOUND_PAN_ATTACKER delay 24 createsprite gFastFlyingMusicNotesSpriteTemplate, ANIM_ATTACKER, 2, 2, 8, -2 - playsewithpan SE_M_TEETER_DANCE, 192 + playsewithpan SE_M_TEETER_DANCE, SOUND_PAN_ATTACKER end -Move_MUD_SPORT:: +Move_MUD_SPORT: loadspritegfx ANIM_TAG_MUD_SAND createvisualtask AnimTask_Splash, 2, 0, 6 delay 24 createsprite gMudsportMudSpriteTemplate, ANIM_TARGET, 2, 0, -4, -16 createsprite gMudsportMudSpriteTemplate, ANIM_TARGET, 2, 0, 4, -12 - playsewithpan SE_M_DIG, 192 + playsewithpan SE_M_DIG, SOUND_PAN_ATTACKER delay 32 createsprite gMudsportMudSpriteTemplate, ANIM_TARGET, 2, 0, -3, -12 createsprite gMudsportMudSpriteTemplate, ANIM_TARGET, 2, 0, 5, -14 - playsewithpan SE_M_DIG, 192 + playsewithpan SE_M_DIG, SOUND_PAN_ATTACKER delay 32 createsprite gMudsportMudSpriteTemplate, ANIM_TARGET, 2, 0, -5, -18 createsprite gMudsportMudSpriteTemplate, ANIM_TARGET, 2, 0, 3, -14 - playsewithpan SE_M_DIG, 192 + playsewithpan SE_M_DIG, SOUND_PAN_ATTACKER delay 16 createsprite gMudsportMudSpriteTemplate, ANIM_TARGET, 2, 1, 220, 60 waitplaysewithpan SE_M_BUBBLE2, 0, 15 @@ -4146,11 +4128,11 @@ Move_MUD_SPORT:: waitplaysewithpan SE_M_BUBBLE2, 0, 10 end -Move_NEEDLE_ARM:: +Move_NEEDLE_ARM: loadspritegfx ANIM_TAG_GREEN_SPIKE loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_HANDS_AND_FEET - loopsewithpan SE_M_HORN_ATTACK, 63, 2, 16 + loopsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET, 2, 16 createsprite gNeedleArmSpikeSpriteTemplate, ANIM_TARGET, 2, 1, 0, 0, -32, 16 delay 2 createsprite gNeedleArmSpikeSpriteTemplate, ANIM_TARGET, 2, 1, 0, 22, -22, 16 @@ -4175,10 +4157,10 @@ Move_NEEDLE_ARM:: delay 2 createsprite gNeedleArmSpikeSpriteTemplate, ANIM_TARGET, 2, 1, 0, 16, 16, 16 waitforvisualfinish - createvisualtask AnimTask_ShakeMon2, 2, 1, 4, 0, 18, 1 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, 1, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 18, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, ANIM_TARGET, 1 createsprite gFistFootSpriteTemplate, ANIM_TARGET, 4, 0, 0, 8, 1, 0 - playsewithpan SE_M_VITAL_THROW2, 63 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET createsprite gNeedleArmSpikeSpriteTemplate, ANIM_TARGET, 2, 1, 1, 0, -24, 10 createsprite gNeedleArmSpikeSpriteTemplate, ANIM_TARGET, 2, 1, 1, 17, -17, 10 createsprite gNeedleArmSpikeSpriteTemplate, ANIM_TARGET, 2, 1, 1, 24, 0, 10 @@ -4189,43 +4171,43 @@ Move_NEEDLE_ARM:: createsprite gNeedleArmSpikeSpriteTemplate, ANIM_TARGET, 2, 1, 1, -17, -17, 10 end -Move_SLACK_OFF:: +Move_SLACK_OFF: loadspritegfx ANIM_TAG_BLUE_STAR - createvisualtask AnimTask_SlackOffSquish, 2, 0 - playsewithpan SE_M_YAWN, 192 + createvisualtask AnimTask_SlackOffSquish, 2, ANIM_ATTACKER + playsewithpan SE_M_YAWN, SOUND_PAN_ATTACKER waitforvisualfinish call HealingEffect waitforvisualfinish end -Move_CRUSH_CLAW:: +Move_CRUSH_CLAW: loadspritegfx ANIM_TAG_BLUE_LIGHT_WALL loadspritegfx ANIM_TAG_CLAW_SLASH loadspritegfx ANIM_TAG_TORN_METAL - monbg 1 + monbg ANIM_TARGET setalpha 12, 8 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 6, 4 delay 4 - createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 18, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 18, 1 createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, -10, -10, 0 createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, -10, 10, 0 - playsewithpan SE_M_RAZOR_WIND, 63 + playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET delay 12 createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, 10, -10, 1 createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, 10, 10, 1 - playsewithpan SE_M_RAZOR_WIND, 63 - waitforvisualfinish + playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET waitforvisualfinish + waitforvisualfinish @ Redundant blendoff - clearmonbg 1 + clearmonbg ANIM_TARGET end -Move_AROMATHERAPY:: +Move_AROMATHERAPY: playsewithpan SE_M_PETAL_DANCE, 0 loadspritegfx ANIM_TAG_FLOWER loadspritegfx ANIM_TAG_THIN_RING loadspritegfx ANIM_TAG_SPARKLE_2 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 1, 0, 0, 7, 13293 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, F_PAL_BG, 0, 0, 7, RGB(13, 31, 12) delay 1 monbg ANIM_ATTACKER delay 1 @@ -4243,30 +4225,30 @@ Move_AROMATHERAPY:: waitforvisualfinish clearmonbg ANIM_ATTACKER delay 1 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 1, 0, 7, 0, 13293 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, F_PAL_BG, 0, 7, 0, RGB(13, 31, 12) delay 1 - playsewithpan SE_M_STAT_INCREASE, 192 + playsewithpan SE_M_STAT_INCREASE, SOUND_PAN_ATTACKER createvisualtask AnimTask_StatusClearedEffect, 2, 1 waitforvisualfinish - playsewithpan SE_M_MORNING_SUN, 192 + playsewithpan SE_M_MORNING_SUN, SOUND_PAN_ATTACKER createsprite gSparklingStarsSpriteTemplate, ANIM_ATTACKER, 16, -15, 0, 0, 0, 32, 60, 1 delay 8 createsprite gSparklingStarsSpriteTemplate, ANIM_ATTACKER, 16, 12, -5, 0, 0, 32, 60, 1 waitforvisualfinish - playsewithpan SE_SHINY, 192 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 43, 3, 10, 0, 13293 + playsewithpan SE_SHINY, SOUND_PAN_ATTACKER + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, F_PAL_BG | F_PAL_ATK_SIDE | F_PAL_ANIM_1, 3, 10, 0, RGB(13, 31, 12) createsprite gBlendThinRingExpandingSpriteTemplate, ANIM_ATTACKER, 16, 0, 0, 0, 1 waitforvisualfinish end -Move_FAKE_TEARS:: +Move_FAKE_TEARS: loadspritegfx ANIM_TAG_SMALL_BUBBLES loadspritegfx ANIM_TAG_THOUGHT_BUBBLE loadspritegfx ANIM_TAG_MUSIC_NOTES - createvisualtask AnimTask_BlendParticle, 5, 10155, 0, 4, 4, 32108 + createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_SMALL_BUBBLES, 0, 4, 4, RGB(12, 11, 31) waitforvisualfinish - createvisualtask AnimTask_RockMonBackAndForth, 5, 0, 2, 1 - loopsewithpan SE_M_TAIL_WHIP, 192, 12, 4 + createvisualtask AnimTask_RockMonBackAndForth, 5, ANIM_ATTACKER, 2, 1 + loopsewithpan SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER, 12, 4 delay 8 createsprite gTearDropSpriteTemplate, ANIM_ATTACKER, 2, 0, 0 createsprite gTearDropSpriteTemplate, ANIM_ATTACKER, 2, 0, 1 @@ -4282,7 +4264,7 @@ Move_FAKE_TEARS:: waitforvisualfinish end -Move_AIR_CUTTER:: +Move_AIR_CUTTER: loadspritegfx ANIM_TAG_AIR_WAVE loadspritegfx ANIM_TAG_CUT loadspritegfx ANIM_TAG_IMPACT @@ -4290,42 +4272,42 @@ Move_AIR_CUTTER:: monbg ANIM_DEF_PARTNER setalpha 12, 8 delay 0 - createvisualtask AnimTask_AirCutterProjectile, 2, 32, -24, 1536, 2, 128 + createvisualtask AnimTask_AirCutterProjectile, 2, 32, -24, 6 * 256, 2, 128 @ 6 * 256 == Q_8_8(6) waitforvisualfinish - playsewithpan SE_M_CUT, 63 + playsewithpan SE_M_CUT, SOUND_PAN_TARGET createsprite gAirCutterSliceSpriteTemplate, ANIM_ATTACKER, 2, 40, -32, 0, 2 delay 5 - createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 8, 1 - createvisualtask AnimTask_ShakeMon2, 2, 3, 2, 0, 8, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 8, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_DEF_PARTNER, 2, 0, 8, 1 waitforvisualfinish blendoff clearmonbg ANIM_DEF_PARTNER delay 0 end -Move_ODOR_SLEUTH:: - monbg 1 - createvisualtask AnimTask_OdorSleuthMovement, 5, +Move_ODOR_SLEUTH: + monbg ANIM_TARGET + createvisualtask AnimTask_OdorSleuthMovement, 5 delay 24 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 3, 4 - playsewithpan SE_M_SWAGGER, 192 + playsewithpan SE_M_SWAGGER, SOUND_PAN_ATTACKER delay 6 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 3, 4 - playsewithpan SE_M_SWAGGER, 192 + playsewithpan SE_M_SWAGGER, SOUND_PAN_ATTACKER waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET delay 1 - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 1, -1, 16, -1, 0 - playsewithpan SE_M_LEER, 192 + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 3, 1, RGB_WHITEALPHA, 16, RGB_WHITEALPHA, 0 + playsewithpan SE_M_LEER, SOUND_PAN_ATTACKER end -Move_GRASS_WHISTLE:: +Move_GRASS_WHISTLE: loadspritegfx ANIM_TAG_MUSIC_NOTES - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 0, 4, 13298 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 2, 0, 4, RGB(18, 31, 12) waitforvisualfinish - createvisualtask AnimTask_MusicNotesRainbowBlend, 2, + createvisualtask AnimTask_MusicNotesRainbowBlend, 2 waitforvisualfinish - panse_1B SE_M_GRASSWHISTLE, 192, 63, 2, 0 + panse SE_M_GRASSWHISTLE, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 createsprite gWavyMusicNotesSpriteTemplate, ANIM_TARGET, 2, 7, 1, 0 delay 5 createsprite gWavyMusicNotesSpriteTemplate, ANIM_TARGET, 2, 6, 1, 0 @@ -4351,60 +4333,60 @@ Move_GRASS_WHISTLE:: createsprite gWavyMusicNotesSpriteTemplate, ANIM_TARGET, 2, 5, 1, 0 delay 4 waitforvisualfinish - createvisualtask AnimTask_MusicNotesClearRainbowBlend, 2, - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 4, 4, 0, 13298 + createvisualtask AnimTask_MusicNotesClearRainbowBlend, 2 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 4, 4, 0, RGB(18, 31, 12) waitforvisualfinish end -Move_TICKLE:: +Move_TICKLE: loadspritegfx ANIM_TAG_EYE_SPARKLE - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 2, 0, 0, 16, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_ATTACKER, 0, 0, 16, RGB_BLACK waitforvisualfinish createsprite gEyeSparkleSpriteTemplate, ANIM_ATTACKER, 0, -16, -8 createsprite gEyeSparkleSpriteTemplate, ANIM_ATTACKER, 0, 16, -8 - playsewithpan SE_M_DETECT, 192 + playsewithpan SE_M_DETECT, SOUND_PAN_ATTACKER waitforvisualfinish - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 2, 0, 16, 0, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_ATTACKER, 0, 16, 0, RGB_BLACK waitforvisualfinish delay 20 - createvisualtask AnimTask_SwayMon, 3, 0, 6, 1280, 3, 0 + createvisualtask AnimTask_SwayMon, 3, 0, 6, 1280, 3, ANIM_ATTACKER delay 12 - createvisualtask AnimTask_RockMonBackAndForth, 3, 1, 6, 2 - loopsewithpan SE_M_TAIL_WHIP, 63, 8, 8 + createvisualtask AnimTask_RockMonBackAndForth, 3, ANIM_TARGET, 6, 2 + loopsewithpan SE_M_TAIL_WHIP, SOUND_PAN_TARGET, 8, 8 waitforvisualfinish end -Move_WATER_SPOUT:: +Move_WATER_SPOUT: loadspritegfx ANIM_TAG_GLOWY_BLUE_ORB loadspritegfx ANIM_TAG_WATER_IMPACT monbg ANIM_DEF_PARTNER setalpha 12, 8 - createvisualtask AnimTask_WaterSpoutLaunch, 5, - playsewithpan SE_M_HEADBUTT, 192 + createvisualtask AnimTask_WaterSpoutLaunch, 5 + playsewithpan SE_M_HEADBUTT, SOUND_PAN_ATTACKER delay 44 - playsewithpan SE_M_DIVE, 192 + playsewithpan SE_M_DIVE, SOUND_PAN_ATTACKER waitforvisualfinish delay 16 - createvisualtask AnimTask_WaterSpoutRain, 5, - playsewithpan SE_M_SURF, 63 + createvisualtask AnimTask_WaterSpoutRain, 5 + playsewithpan SE_M_SURF, SOUND_PAN_TARGET clearmonbg ANIM_DEF_PARTNER blendoff end -Move_SHADOW_PUNCH:: +Move_SHADOW_PUNCH: loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_HANDS_AND_FEET - fadetobg 2 + fadetobg BG_GHOST waitbgfadein monbg ANIM_ATK_PARTNER setalpha 9, 8 - createvisualtask AnimTask_AttackerPunchWithTrace, 2, 0, 13 - playsewithpan SE_M_JUMP_KICK, 192 + createvisualtask AnimTask_AttackerPunchWithTrace, 2, RGB_BLACK, 13 + playsewithpan SE_M_JUMP_KICK, SOUND_PAN_ATTACKER delay 6 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, 1, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, ANIM_TARGET, 1 createsprite gFistFootSpriteTemplate, ANIM_TARGET, 4, 0, 0, 8, 1, 0 - playsewithpan SE_M_COMET_PUNCH, 63 - createvisualtask AnimTask_ShakeMon, 2, 1, 3, 0, 6, 1 + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1 waitforvisualfinish clearmonbg ANIM_ATK_PARTNER blendoff @@ -4412,212 +4394,212 @@ Move_SHADOW_PUNCH:: waitbgfadein end -Move_EXTRASENSORY:: +Move_EXTRASENSORY: call SetPsychicBackground monbg ANIM_DEF_PARTNER setalpha 12, 8 - createvisualtask AnimTask_BlendMonInAndOut, 5, 0, 891, 12, 1, 1 + createvisualtask AnimTask_BlendMonInAndOut, 5, ANIM_ATTACKER, RGB(27, 27, 0), 12, 1, 1 createvisualtask AnimTask_ExtrasensoryDistortion, 5, 0 - playsewithpan SE_M_BIND, 63 + playsewithpan SE_M_BIND, SOUND_PAN_TARGET waitforvisualfinish - createvisualtask AnimTask_BlendMonInAndOut, 5, 0, 891, 12, 1, 1 + createvisualtask AnimTask_BlendMonInAndOut, 5, ANIM_ATTACKER, RGB(27, 27, 0), 12, 1, 1 createvisualtask AnimTask_ExtrasensoryDistortion, 5, 1 - playsewithpan SE_M_BIND, 63 + playsewithpan SE_M_BIND, SOUND_PAN_TARGET waitforvisualfinish createvisualtask AnimTask_TransparentCloneGrowAndShrink, 5, ANIM_ATTACKER createvisualtask AnimTask_ExtrasensoryDistortion, 5, 2 - playsewithpan SE_M_LEER, 192 + playsewithpan SE_M_LEER, SOUND_PAN_ATTACKER waitforvisualfinish blendoff clearmonbg ANIM_DEF_PARTNER - call UnsetPsychicBg + call UnsetPsychicBackground end -Move_AERIAL_ACE:: +Move_AERIAL_ACE: loadspritegfx ANIM_TAG_CUT - monbg 1 + monbg ANIM_TARGET setalpha 12, 8 - createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, 0, 24, 6, 1, 5 - createvisualtask AnimTask_CloneBattlerSpriteWithBlend, 2, 0, 4, 7, 3 + createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_ATTACKER, 24, 6, 1, 5 + createvisualtask AnimTask_TraceMonBlended, 2, 0, 4, 7, 3 createsprite gCuttingSliceSpriteTemplate, ANIM_ATTACKER, 2, 40, -32, 0 - playsewithpan SE_M_RAZOR_WIND2, 192 + playsewithpan SE_M_RAZOR_WIND2, SOUND_PAN_ATTACKER delay 5 - createvisualtask AnimTask_ShakeMon, 2, 1, 0, 3, 10, 1 - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 1, 0, 10, 0, 0 - playsewithpan SE_M_RAZOR_WIND, 63 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 3, 10, 1 + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG | F_PAL_BATTLERS, 3, 1, RGB_BLACK, 10, RGB_BLACK, 0 + playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff end -Move_IRON_DEFENSE:: - loopsewithpan SE_SHINY, 192, 28, 2 +Move_IRON_DEFENSE: + loopsewithpan SE_SHINY, SOUND_PAN_ATTACKER, 28, 2 createvisualtask AnimTask_MetallicShine, 5, 0, 0, 0 - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 8, 2, -1, 14, -1, 0 + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 8, 2, RGB_WHITEALPHA, 14, RGB_WHITEALPHA, 0 waitforvisualfinish end -Move_BLOCK:: +Move_BLOCK: loadspritegfx ANIM_TAG_X_SIGN - createsprite gBlockXSpriteTemplate, ANIM_TARGET, 66, - playsewithpan SE_M_SWAGGER, 63 + createsprite gBlockXSpriteTemplate, ANIM_TARGET, 66 + playsewithpan SE_M_SWAGGER, SOUND_PAN_TARGET end -Move_HOWL:: +Move_HOWL: loadspritegfx ANIM_TAG_NOISE_LINE createvisualtask AnimTask_DeepInhale, 2, 0 delay 12 call RoarEffect - createvisualtask SoundTask_PlayCryHighPitch, 2, 0, 3 + createvisualtask SoundTask_PlayCryHighPitch, 2, ANIM_ATTACKER, 3 waitforvisualfinish delay 30 end -Move_BULK_UP:: +Move_BULK_UP: loadspritegfx ANIM_TAG_BREATH - createvisualtask AnimTask_GrowAndShrink, 2, - playsewithpan SE_M_SWAGGER, 192 + createvisualtask AnimTask_GrowAndShrink, 2 + playsewithpan SE_M_SWAGGER, SOUND_PAN_ATTACKER waitforvisualfinish - createsprite gBreathPuffSpriteTemplate, ANIM_ATTACKER, 2, - loopsewithpan SE_M_SWAGGER, 192, 4, 2 + createsprite gBreathPuffSpriteTemplate, ANIM_ATTACKER, 2 + loopsewithpan SE_M_SWAGGER, SOUND_PAN_ATTACKER, 4, 2 waitforvisualfinish end -Move_COVET:: +Move_COVET: loadspritegfx ANIM_TAG_MAGENTA_HEART loadspritegfx ANIM_TAG_ITEM_BAG - createvisualtask AnimTask_RockMonBackAndForth, 5, 0, 2, 0 + createvisualtask AnimTask_RockMonBackAndForth, 5, ANIM_ATTACKER, 2, 0 createsprite gMagentaHeartSpriteTemplate, ANIM_ATTACKER, 3, 0, 20 - playsewithpan SE_M_CHARM, 192 + playsewithpan SE_M_CHARM, SOUND_PAN_ATTACKER delay 15 createsprite gMagentaHeartSpriteTemplate, ANIM_ATTACKER, 3, -20, 20 - playsewithpan SE_M_CHARM, 192 + playsewithpan SE_M_CHARM, SOUND_PAN_ATTACKER delay 15 createsprite gMagentaHeartSpriteTemplate, ANIM_ATTACKER, 3, 20, 20 - playsewithpan SE_M_CHARM, 192 + playsewithpan SE_M_CHARM, SOUND_PAN_ATTACKER waitforvisualfinish - createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 8, 1 - loopsewithpan SE_M_DIZZY_PUNCH, 63, 4, 3 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 8, 1 + loopsewithpan SE_M_DIZZY_PUNCH, SOUND_PAN_TARGET, 4, 3 end -Move_VOLT_TACKLE:: +Move_VOLT_TACKLE: loadspritegfx ANIM_TAG_SPARK loadspritegfx ANIM_TAG_CIRCLE_OF_LIGHT loadspritegfx ANIM_TAG_ELECTRICITY monbg ANIM_ATTACKER setalpha 12, 8 - createvisualtask AnimTask_BlendSelected, 10, 1, 0, 0, 8, RGB_BLACK + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_BG, 0, 0, 8, RGB_BLACK waitforvisualfinish createsprite gVoltTackleOrbSlideSpriteTemplate, ANIM_ATTACKER, 1 - playsewithpan SE_M_CHARGE, 192 + playsewithpan SE_M_CHARGE, SOUND_PAN_ATTACKER waitforvisualfinish clearmonbg ANIM_ATTACKER blendoff delay 8 createvisualtask AnimTask_VoltTackleBolt, 5, 0 - playsewithpan SE_M_THUNDERBOLT, 192 + playsewithpan SE_M_THUNDERBOLT, SOUND_PAN_ATTACKER waitforvisualfinish createvisualtask AnimTask_VoltTackleBolt, 5, 1 - playsewithpan SE_M_THUNDERBOLT, 63 + playsewithpan SE_M_THUNDERBOLT, SOUND_PAN_TARGET waitforvisualfinish createvisualtask AnimTask_VoltTackleBolt, 5, 2 - playsewithpan SE_M_THUNDERBOLT, 192 + playsewithpan SE_M_THUNDERBOLT, SOUND_PAN_ATTACKER waitforvisualfinish createvisualtask AnimTask_VoltTackleBolt, 5, 3 - playsewithpan SE_M_THUNDERBOLT, 63 + playsewithpan SE_M_THUNDERBOLT, SOUND_PAN_TARGET waitforvisualfinish createvisualtask AnimTask_VoltTackleBolt, 5, 4 - playsewithpan SE_M_THUNDERBOLT, 192 + playsewithpan SE_M_THUNDERBOLT, SOUND_PAN_ATTACKER delay 8 - createvisualtask AnimTask_ShakeMon2, 2, 1, 10, 0, 18, 1 - playsewithpan SE_M_SELF_DESTRUCT, 63 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 10, 0, 18, 1 + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET createsprite gElectricPuffSpriteTemplate, ANIM_ATTACKER, 2, 1, 16, 16 delay 2 createsprite gElectricPuffSpriteTemplate, ANIM_ATTACKER, 2, 1, -16, -16 delay 8 createvisualtask AnimTask_VoltTackleAttackerReappear, 5 waitforvisualfinish - createvisualtask AnimTask_ShakeMon2, 2, 0, 3, 0, 9, 1 - playsewithpan SE_M_THUNDERBOLT2, 192 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_ATTACKER, 3, 0, 9, 1 + playsewithpan SE_M_THUNDERBOLT2, SOUND_PAN_ATTACKER createsprite gElectricPuffSpriteTemplate, ANIM_ATTACKER, 2, 0, 16, 16 delay 2 createsprite gElectricPuffSpriteTemplate, ANIM_ATTACKER, 2, 0, -16, -16 waitforvisualfinish - createvisualtask AnimTask_BlendSelected, 10, 1, 0, 8, 0, RGB_BLACK + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_BG, 0, 8, 0, RGB_BLACK waitforvisualfinish end -Move_WATER_SPORT:: +Move_WATER_SPORT: loadspritegfx ANIM_TAG_GLOWY_BLUE_ORB - createvisualtask AnimTask_WaterSport, 5, + createvisualtask AnimTask_WaterSport, 5 delay 8 - playsewithpan SE_M_SURF, 192 + playsewithpan SE_M_SURF, SOUND_PAN_ATTACKER delay 44 - playsewithpan SE_M_SURF, 192 + playsewithpan SE_M_SURF, SOUND_PAN_ATTACKER delay 44 - playsewithpan SE_M_SURF, 192 + playsewithpan SE_M_SURF, SOUND_PAN_ATTACKER delay 44 - panse_1B SE_M_SURF, 192, 63, 2, 0 + panse SE_M_SURF, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 end -Move_CALM_MIND:: +Move_CALM_MIND: loadspritegfx ANIM_TAG_THIN_RING monbg ANIM_ATK_PARTNER - createvisualtask AnimTask_BlendExcept, 5, 0, 0, 0, 16, 0 + createvisualtask AnimTask_BlendBattleAnimPalExclude, 5, ANIM_ATTACKER, 0, 0, 16, RGB_BLACK waitforvisualfinish - createvisualtask AnimTask_SetAllNonAttackersInvisiblity, 5, 1 + createvisualtask AnimTask_SetAllNonAttackersInvisiblity, 5, TRUE waitforvisualfinish createsprite gThinRingShrinkingSpriteTemplate, ANIM_ATTACKER, 40, 0, 0, 0, 0 - playsewithpan SE_M_SUPERSONIC, 192 + playsewithpan SE_M_SUPERSONIC, SOUND_PAN_ATTACKER delay 14 createsprite gThinRingShrinkingSpriteTemplate, ANIM_ATTACKER, 40, 0, 0, 0, 0 - playsewithpan SE_M_SUPERSONIC, 192 + playsewithpan SE_M_SUPERSONIC, SOUND_PAN_ATTACKER delay 14 createsprite gThinRingShrinkingSpriteTemplate, ANIM_ATTACKER, 40, 0, 0, 0, 0 - playsewithpan SE_M_SUPERSONIC, 192 + playsewithpan SE_M_SUPERSONIC, SOUND_PAN_ATTACKER waitforvisualfinish - createvisualtask AnimTask_SetAllNonAttackersInvisiblity, 5, 0 - visible 0 + createvisualtask AnimTask_SetAllNonAttackersInvisiblity, 5, FALSE + visible ANIM_ATTACKER @ Redundant waitforvisualfinish - createvisualtask AnimTask_BlendExcept, 5, 0, 0, 16, 0, 0 + createvisualtask AnimTask_BlendBattleAnimPalExclude, 5, ANIM_ATTACKER, 0, 16, 0, RGB_BLACK waitforvisualfinish clearmonbg ANIM_ATK_PARTNER end -Move_LEAF_BLADE:: +Move_LEAF_BLADE: loadspritegfx ANIM_TAG_LEAF loadspritegfx ANIM_TAG_CROSS_IMPACT - createvisualtask AnimTask_LeafBlade, 5, + createvisualtask AnimTask_LeafBlade, 5 delay 2 - createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 8, 1 - playsewithpan SE_M_CUT, 63 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 8, 1 + playsewithpan SE_M_CUT, SOUND_PAN_TARGET delay 50 - createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 8, 1 - playsewithpan SE_M_CUT, 63 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 8, 1 + playsewithpan SE_M_CUT, SOUND_PAN_TARGET delay 50 - createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 8, 1 - playsewithpan SE_M_CUT, 63 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 8, 1 + playsewithpan SE_M_CUT, SOUND_PAN_TARGET waitforvisualfinish - monbg 1 + monbg ANIM_TARGET setalpha 12, 8 delay 12 - createvisualtask AnimTask_ShakeMon2, 2, 1, 8, 0, 18, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 8, 0, 18, 1 createsprite gCrossImpactSpriteTemplate, ANIM_TARGET, 2, 0, 0, 1, 36 - playsewithpan SE_M_LEER, 63 + playsewithpan SE_M_LEER, SOUND_PAN_TARGET waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff end -Move_DRAGON_DANCE:: +Move_DRAGON_DANCE: loadspritegfx ANIM_TAG_HOLLOW_ORB monbg ANIM_ATTACKER - monbgprio_28 0 + splitbgprio ANIM_ATTACKER delay 1 createvisualtask AnimTask_DragonDanceWaver, 5 - playsewithpan SE_M_TELEPORT, 192 + playsewithpan SE_M_TELEPORT, SOUND_PAN_ATTACKER delay 8 - createvisualtask AnimTask_BlendPalInAndOutByTag, 5, 10249, 19456, 14, 0, 3 + createvisualtask AnimTask_BlendPalInAndOutByTag, 5, ANIM_TAG_HOLLOW_ORB, RGB(0, 0, 19), 14, 0, 3 createsprite gDragonDanceOrbSpriteTemplate, ANIM_ATTACKER, 2, 0 createsprite gDragonDanceOrbSpriteTemplate, ANIM_ATTACKER, 2, 43 createsprite gDragonDanceOrbSpriteTemplate, ANIM_ATTACKER, 2, 85 @@ -4625,110 +4607,110 @@ Move_DRAGON_DANCE:: createsprite gDragonDanceOrbSpriteTemplate, ANIM_ATTACKER, 2, 170 createsprite gDragonDanceOrbSpriteTemplate, ANIM_ATTACKER, 2, 213 delay 30 - playsewithpan SE_M_TELEPORT, 192 + playsewithpan SE_M_TELEPORT, SOUND_PAN_ATTACKER delay 30 - playsewithpan SE_M_TELEPORT, 192 + playsewithpan SE_M_TELEPORT, SOUND_PAN_ATTACKER waitforvisualfinish clearmonbg ANIM_ATTACKER delay 1 end -Move_SHOCK_WAVE:: +Move_SHOCK_WAVE: loadspritegfx ANIM_TAG_ELECTRIC_ORBS loadspritegfx ANIM_TAG_CIRCLE_OF_LIGHT loadspritegfx ANIM_TAG_SPARK loadspritegfx ANIM_TAG_LIGHTNING monbg ANIM_ATTACKER setalpha 12, 8 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 0, 4, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 2, 0, 4, RGB_BLACK waitforvisualfinish - createvisualtask AnimTask_ElectricChargingParticles, 2, 0, 20, 0, 2 - playsewithpan SE_M_CHARGE, 192 + createvisualtask AnimTask_ElectricChargingParticles, 2, ANIM_ATTACKER, 20, 0, 2 + playsewithpan SE_M_CHARGE, SOUND_PAN_ATTACKER delay 12 createsprite gGrowingShockWaveOrbSpriteTemplate, ANIM_ATTACKER, 2 delay 30 - createvisualtask AnimTask_ShockWaveProgressingBolt, 5, + createvisualtask AnimTask_ShockWaveProgressingBolt, 5 delay 12 waitforvisualfinish - createvisualtask AnimTask_ShockWaveLightning, 5, - playsewithpan SE_M_TRI_ATTACK2, 63 + createvisualtask AnimTask_ShockWaveLightning, 5 + playsewithpan SE_M_TRI_ATTACK2, SOUND_PAN_TARGET waitforvisualfinish - createvisualtask AnimTask_ShakeMon, 2, 1, 0, 6, 18, 1 - createvisualtask AnimTask_BlendSelected, 5, 1, 3, 16, 0, RGB_WHITE - createvisualtask AnimTask_BlendSelected, 5, 4, 0, 16, 16, RGB_BLACK + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 6, 18, 1 + createvisualtask AnimTask_BlendBattleAnimPal, 5, F_PAL_BG, 3, 16, 0, RGB_WHITE + createvisualtask AnimTask_BlendBattleAnimPal, 5, F_PAL_TARGET, 0, 16, 16, RGB_BLACK delay 4 - createvisualtask AnimTask_BlendSelected, 5, 4, 0, 0, 0, RGB_BLACK + createvisualtask AnimTask_BlendBattleAnimPal, 5, F_PAL_TARGET, 0, 0, 0, RGB_BLACK waitforvisualfinish clearmonbg ANIM_ATTACKER blendoff end -Move_HARDEN:: - loopsewithpan SE_M_HARDEN, 192, 28, 2 +Move_HARDEN: + loopsewithpan SE_M_HARDEN, SOUND_PAN_ATTACKER, 28, 2 createvisualtask AnimTask_MetallicShine, 5, 0, 0, 0 waitforvisualfinish end -Move_BELLY_DRUM:: +Move_BELLY_DRUM: loadspritegfx ANIM_TAG_MUSIC_NOTES loadspritegfx ANIM_TAG_PURPLE_HAND_OUTLINE - createvisualtask AnimTask_MusicNotesRainbowBlend, 2, + createvisualtask AnimTask_MusicNotesRainbowBlend, 2 waitforvisualfinish call BellyDrumRight createsprite gSlowFlyingMusicNotesSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 0, 0 - playsewithpan SE_M_BELLY_DRUM, 192 + playsewithpan SE_M_BELLY_DRUM, SOUND_PAN_ATTACKER delay 15 call BellyDrumLeft createsprite gSlowFlyingMusicNotesSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 1, 0 - playsewithpan SE_M_BELLY_DRUM, 192 + playsewithpan SE_M_BELLY_DRUM, SOUND_PAN_ATTACKER delay 15 call BellyDrumRight createsprite gSlowFlyingMusicNotesSpriteTemplate, ANIM_ATTACKER, 2, 0, 3, 3, 128 - playsewithpan SE_M_BELLY_DRUM, 192 + playsewithpan SE_M_BELLY_DRUM, SOUND_PAN_ATTACKER delay 7 call BellyDrumLeft createsprite gSlowFlyingMusicNotesSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 0, 128 - playsewithpan SE_M_BELLY_DRUM, 192 + playsewithpan SE_M_BELLY_DRUM, SOUND_PAN_ATTACKER delay 7 call BellyDrumRight createsprite gSlowFlyingMusicNotesSpriteTemplate, ANIM_ATTACKER, 2, 0, 1, 1, 0 - playsewithpan SE_M_BELLY_DRUM, 192 + playsewithpan SE_M_BELLY_DRUM, SOUND_PAN_ATTACKER delay 7 call BellyDrumLeft createsprite gSlowFlyingMusicNotesSpriteTemplate, ANIM_ATTACKER, 2, 1, 0, 3, 0 - playsewithpan SE_M_BELLY_DRUM, 192 + playsewithpan SE_M_BELLY_DRUM, SOUND_PAN_ATTACKER waitforvisualfinish - createvisualtask AnimTask_MusicNotesClearRainbowBlend, 2, + createvisualtask AnimTask_MusicNotesClearRainbowBlend, 2 waitforvisualfinish end -BellyDrumLeft:: +BellyDrumLeft: createsprite gBellyDrumHandSpriteTemplate, ANIM_ATTACKER, 3, 0 - createvisualtask AnimTask_ShakeMon, 2, 0, 0, 8, 2, 1 + createvisualtask AnimTask_ShakeMon, 2, ANIM_ATTACKER, 0, 8, 2, 1 return -BellyDrumRight:: +BellyDrumRight: createsprite gBellyDrumHandSpriteTemplate, ANIM_ATTACKER, 3, 1 - createvisualtask AnimTask_ShakeMon, 2, 0, 0, 8, 2, 1 + createvisualtask AnimTask_ShakeMon, 2, ANIM_ATTACKER, 0, 8, 2, 1 return -Move_MIND_READER:: +Move_MIND_READER: loadspritegfx ANIM_TAG_TEAL_ALERT loadspritegfx ANIM_TAG_OPENING_EYE loadspritegfx ANIM_TAG_ROUND_WHITE_HALO monbg 4 - playsewithpan SE_M_CONFUSE_RAY, 63 + playsewithpan SE_M_CONFUSE_RAY, SOUND_PAN_TARGET createsprite gOpeningEyeSpriteTemplate, ANIM_ATTACKER, 5, 0, 0, 1, 0 - createsprite gWhiteHaloSpriteTemplate, ANIM_ATTACKER, 5, + createsprite gWhiteHaloSpriteTemplate, ANIM_ATTACKER, 5 delay 40 - playsewithpan SE_M_LEER, 63 - createvisualtask AnimTask_CurseBlendEffect, 2, 1, 1, 2, 0, 10, 0 + playsewithpan SE_M_LEER, SOUND_PAN_TARGET + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_BG, 1, 2, 0, 10, RGB_BLACK call MindReaderEyeSpikeEffect waitforvisualfinish clearmonbg 4 end -MindReaderEyeSpikeEffect:: +MindReaderEyeSpikeEffect: createsprite gTealAlertSpriteTemplate, ANIM_ATTACKER, 4, 70, 0, 6 createsprite gTealAlertSpriteTemplate, ANIM_ATTACKER, 4, 40, 40, 6 createsprite gTealAlertSpriteTemplate, ANIM_ATTACKER, 4, 10, -60, 6 @@ -4752,16 +4734,16 @@ MindReaderEyeSpikeEffect:: delay 2 return -Move_ICE_PUNCH:: +Move_ICE_PUNCH: monbg ANIM_DEF_PARTNER setalpha 12, 8 loadspritegfx ANIM_TAG_ICE_CRYSTALS loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_HANDS_AND_FEET - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 0, 7, 0 - createvisualtask AnimTask_BlendSelected, 10, 4, 2, 0, 9, RGB(12, 26, 31) + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 1, 0, 7, RGB_BLACK + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_TARGET, 2, 0, 9, RGB(12, 26, 31) delay 20 - playsewithpan SE_M_STRING_SHOT, 63 + playsewithpan SE_M_STRING_SHOT, SOUND_PAN_TARGET createsprite gIceCrystalSpiralInwardSmall, ANIM_ATTACKER, 2, 0 createsprite gIceCrystalSpiralInwardSmall, ANIM_ATTACKER, 2, 64 createsprite gIceCrystalSpiralInwardSmall, ANIM_ATTACKER, 2, 128 @@ -4773,24 +4755,24 @@ Move_ICE_PUNCH:: createsprite gIceCrystalSpiralInwardLarge, ANIM_ATTACKER, 2, 224 delay 17 createsprite gFistFootSpriteTemplate, ANIM_ATTACKER, 4, 0, -10, 8, 1, 0 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, -10, 1, 1 - playsewithpan SE_M_COMET_PUNCH, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, -10, ANIM_TARGET, 1 + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET delay 2 - createvisualtask AnimTask_ShakeMon, 5, 1, 0, 5, 3, 1 + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 5, 3, 1 waitforvisualfinish delay 15 call IceCrystalEffectShort delay 5 - createvisualtask AnimTask_BlendSelected, 10, 4, 2, 9, 0, RGB(12, 26, 31) + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_TARGET, 2, 9, 0, RGB(12, 26, 31) waitforvisualfinish - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 0, 7, 0, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 0, 7, 0, RGB_BLACK waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff end -Move_REST:: - playsewithpan SE_M_SNORE, 192 +Move_REST: + playsewithpan SE_M_SNORE, SOUND_PAN_ATTACKER loadspritegfx ANIM_TAG_LETTER_Z createsprite gSleepLetterZSpriteTemplate, ANIM_ATTACKER, 2, 4, -10, 16, 0, 0 delay 20 @@ -4800,85 +4782,88 @@ Move_REST:: waitforvisualfinish end -Move_CONFUSION:: +Move_CONFUSION: monbg ANIM_DEF_PARTNER call SetPsychicBackground setalpha 8, 8 - createvisualtask AnimTask_ShakeMon2, 2, 0, 1, 0, 10, 1 - createvisualtask AnimTask_CurseBlendEffect, 2, 2, 0, 2, 0, 8, RGB_WHITE + createvisualtask AnimTask_ShakeMon2, 2, ANIM_ATTACKER, 1, 0, 10, 1 + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_ATTACKER, 0, 2, 0, 8, RGB_WHITE waitforvisualfinish - playsewithpan SE_M_SUPERSONIC, 63 - createvisualtask AnimTask_ShakeMon, 2, 1, 3, 0, 15, 1 - createvisualtask AnimTask_ScaleMonAndRestore, 5, -4, -4, 15, 1, 1 + playsewithpan SE_M_SUPERSONIC, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 15, 1 + createvisualtask AnimTask_ScaleMonAndRestore, 5, -4, -4, 15, ANIM_TARGET, 1 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff delay 1 - call UnsetPsychicBg + call UnsetPsychicBackground end -Move_PSYCHIC:: +Move_PSYCHIC: monbg ANIM_DEF_PARTNER call SetPsychicBackground setalpha 8, 8 - createvisualtask AnimTask_ShakeMon2, 2, 0, 1, 0, 10, 1 - createvisualtask AnimTask_CurseBlendEffect, 2, 2, 0, 2, 0, 8, 767 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_ATTACKER, 1, 0, 10, 1 + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_ATTACKER, 0, 2, 0, 8, RGB(31, 23, 0) waitforvisualfinish - loopsewithpan SE_M_SUPERSONIC, 63, 10, 3 - createvisualtask AnimTask_ShakeMon, 2, 1, 5, 0, 15, 1 - createvisualtask AnimTask_ScaleMonAndRestore, 5, -6, -6, 15, 1, 1 + loopsewithpan SE_M_SUPERSONIC, SOUND_PAN_TARGET, 10, 3 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 5, 0, 15, 1 + createvisualtask AnimTask_ScaleMonAndRestore, 5, -6, -6, 15, ANIM_TARGET, 1 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff delay 1 - call UnsetPsychicBg + call UnsetPsychicBackground end -Move_FUTURE_SIGHT:: +Move_FUTURE_SIGHT: goto FutureSight -FutureSightContinue:: + +FutureSightContinue: waitforvisualfinish delay 1 - call UnsetPsychicBg + call UnsetPsychicBackground end -FutureSight:: +FutureSight: monbg ANIM_ATK_PARTNER - playsewithpan SE_M_PSYBEAM, 192 + playsewithpan SE_M_PSYBEAM, SOUND_PAN_ATTACKER call SetPsychicBackground setalpha 8, 8 - playsewithpan SE_M_SUPERSONIC, 192 - createvisualtask AnimTask_CurseBlendEffect, 2, 2, 0, 2, 0, 8, RGB_WHITE - createvisualtask AnimTask_ScaleMonAndRestore, 5, -4, -4, 15, 0, 1 + playsewithpan SE_M_SUPERSONIC, SOUND_PAN_ATTACKER + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_ATTACKER, 0, 2, 0, 8, RGB_WHITE + createvisualtask AnimTask_ScaleMonAndRestore, 5, -4, -4, 15, ANIM_ATTACKER, 1 waitforvisualfinish clearmonbg ANIM_ATK_PARTNER blendoff goto FutureSightContinue + +UnusedFutureSightHit: monbg ANIM_DEF_PARTNER - playsewithpan SE_M_PSYBEAM, 192 + playsewithpan SE_M_PSYBEAM, SOUND_PAN_ATTACKER call SetPsychicBackground setalpha 8, 8 - playsewithpan SE_M_SUPERSONIC, 63 - waitplaysewithpan SE_M_SUPERSONIC, 63, 8 - createvisualtask AnimTask_ShakeMon, 2, 1, 4, 0, 15, 1 - createvisualtask AnimTask_ScaleMonAndRestore, 5, -5, -5, 15, 1, 1 + playsewithpan SE_M_SUPERSONIC, SOUND_PAN_TARGET + waitplaysewithpan SE_M_SUPERSONIC, SOUND_PAN_TARGET, 8 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 4, 0, 15, 1 + createvisualtask AnimTask_ScaleMonAndRestore, 5, -5, -5, 15, ANIM_TARGET, 1 waitforvisualfinish - createvisualtask AnimTask_ShakeMon, 2, 1, 4, 0, 24, 1 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 4, 0, 24, 1 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff goto FutureSightContinue -Move_THUNDER:: +Move_THUNDER: loadspritegfx ANIM_TAG_LIGHTNING - fadetobg 11 + fadetobg BG_THUNDER waitbgfadeout createvisualtask AnimTask_StartSlidingBg, 5, -256, 0, 1, -1 waitbgfadein - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 0, 16, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 2, 0, 16, RGB_BLACK delay 16 createvisualtask AnimTask_InvertScreenColor, 2, 257, 257, 257 - playsewithpan SE_M_THUNDER_WAVE, 63 + playsewithpan SE_M_THUNDER_WAVE, SOUND_PAN_TARGET delay 1 createsprite gLightningSpriteTemplate, ANIM_TARGET, 2, 16, -36 delay 1 @@ -4887,12 +4872,12 @@ Move_THUNDER:: createsprite gLightningSpriteTemplate, ANIM_TARGET, 2, 16, 12 delay 20 createsprite gLightningSpriteTemplate, ANIM_TARGET, 6, -16, -32 - playsewithpan SE_M_THUNDER_WAVE, 63 + playsewithpan SE_M_THUNDER_WAVE, SOUND_PAN_TARGET delay 1 createsprite gLightningSpriteTemplate, ANIM_TARGET, 6, -16, -16 delay 1 createsprite gLightningSpriteTemplate, ANIM_TARGET, 6, -16, 16 - playsewithpan SE_M_THUNDER_WAVE, 63 + playsewithpan SE_M_THUNDER_WAVE, SOUND_PAN_TARGET delay 5 createvisualtask AnimTask_InvertScreenColor, 2, 257, 257, 257 delay 1 @@ -4907,7 +4892,7 @@ Move_THUNDER:: createvisualtask AnimTask_InvertScreenColor, 2, 257, 257, 257 delay 1 createsprite gLightningSpriteTemplate, ANIM_TARGET, 2, 0, -32 - playsewithpan SE_M_TRI_ATTACK2, 63 + playsewithpan SE_M_TRI_ATTACK2, SOUND_PAN_TARGET delay 1 createsprite gLightningSpriteTemplate, ANIM_TARGET, 2, 0, -16 delay 1 @@ -4915,29 +4900,29 @@ Move_THUNDER:: delay 10 createvisualtask AnimTask_InvertScreenColor, 2, 257, 257, 257 delay 1 - createvisualtask AnimTask_ShakeTargetInPattern, 2, 30, 3, 1, 0 + createvisualtask AnimTask_ShakeTargetInPattern, 2, 30, 3, TRUE, 0 delay 2 createvisualtask AnimTask_InvertScreenColor, 2, 257, 257, 257 delay 1 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_TARGET, 2, 1, 2, 16, 0, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_TARGET, 2, F_PAL_BG, 2, 16, 0, RGB_BLACK waitforvisualfinish restorebg waitbgfadeout - setarg 7, 65535 + setarg 7, 0xFFFF waitbgfadein end -Move_THUNDER_PUNCH:: +Move_THUNDER_PUNCH: loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_HANDS_AND_FEET loadspritegfx ANIM_TAG_LIGHTNING - monbg 1 + monbg ANIM_TARGET setalpha 12, 8 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 0, 16, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 2, 0, 16, RGB_BLACK waitforvisualfinish - playsewithpan SE_M_COMET_PUNCH, 63 + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET createsprite gFistFootSpriteTemplate, ANIM_TARGET, 4, 0, 0, 8, 1, 0 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, 1, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, ANIM_TARGET, 1 delay 1 createvisualtask AnimTask_InvertScreenColor, 2, 257, 257, 257 delay 1 @@ -4947,23 +4932,23 @@ Move_THUNDER_PUNCH:: delay 1 createsprite gLightningSpriteTemplate, ANIM_ATTACKER, 2, 0, 16 delay 1 - playsewithpan SE_M_TRI_ATTACK2, 63 + playsewithpan SE_M_TRI_ATTACK2, SOUND_PAN_TARGET createvisualtask AnimTask_InvertScreenColor, 2, 257, 257, 257 delay 2 - createvisualtask AnimTask_ShakeMon, 2, 1, 0, 3, 15, 1 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1, 2 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 3, 15, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, ANIM_TARGET, 2 delay 1 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 16, 0, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 2, 16, 0, RGB_BLACK delay 20 waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff end -Move_SACRED_FIRE:: +Move_SACRED_FIRE: loadspritegfx ANIM_TAG_FIRE loadspritegfx ANIM_TAG_FIRE_PLUME - loopsewithpan SE_M_SACRED_FIRE, 192, 7, 5 + loopsewithpan SE_M_SACRED_FIRE, SOUND_PAN_ATTACKER, 7, 5 createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 2, -32, 0, 50, 5, -2, 0 delay 1 createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 66, -20, -10, 50, 5, -1, -1 @@ -4984,13 +4969,13 @@ Move_SACRED_FIRE:: createvisualtask AnimTask_InvertScreenColor, 2, 257, 257, 257 delay 1 waitforvisualfinish - playsewithpan SE_M_SACRED_FIRE2, 63 + playsewithpan SE_M_SACRED_FIRE2, SOUND_PAN_TARGET createsprite gLargeFlameSpriteTemplate, ANIM_TARGET, 2, -16, 0, 70, 16, 0, 1 delay 10 - playsewithpan SE_M_SACRED_FIRE2, 63 + playsewithpan SE_M_SACRED_FIRE2, SOUND_PAN_TARGET createsprite gLargeFlameSpriteTemplate, ANIM_TARGET, 2, 0, 0, 70, 16, 0, 1 delay 10 - playsewithpan SE_M_SACRED_FIRE2, 63 + playsewithpan SE_M_SACRED_FIRE2, SOUND_PAN_TARGET createsprite gLargeFlameSpriteTemplate, ANIM_TARGET, 2, 16, 0, 80, 16, 0, 1 delay 1 createvisualtask AnimTask_InvertScreenColor, 2, 257, 257, 257 @@ -4998,7 +4983,7 @@ Move_SACRED_FIRE:: waitforvisualfinish createvisualtask AnimTask_InvertScreenColor, 2, 257, 257, 257 delay 1 - playsewithpan SE_M_FLAME_WHEEL2, 63 + playsewithpan SE_M_FLAME_WHEEL2, SOUND_PAN_TARGET createsprite gLargeFlameScatterSpriteTemplate, ANIM_TARGET, 2, 0, 0, 30, 30, -1, 0 delay 1 createsprite gLargeFlameScatterSpriteTemplate, ANIM_TARGET, 2, 0, 0, 30, 30, 0, 1 @@ -5017,32 +5002,32 @@ Move_SACRED_FIRE:: waitforvisualfinish end -Move_SCRATCH:: +Move_SCRATCH: loadspritegfx ANIM_TAG_SCRATCH - monbg 1 + monbg ANIM_TARGET setalpha 12, 8 - playsewithpan SE_M_SCRATCH, 63 + playsewithpan SE_M_SCRATCH, SOUND_PAN_TARGET createsprite gScratchSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 0 - createvisualtask AnimTask_ShakeMon, 2, 1, 3, 0, 6, 1 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1 waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff waitforvisualfinish end -Move_DRAGON_BREATH:: +Move_DRAGON_BREATH: loadspritegfx ANIM_TAG_SMALL_EMBER monbg ANIM_DEF_PARTNER - monbgprio_28 1 - loopsewithpan SE_M_FLAME_WHEEL, 192, 7, 7 + splitbgprio ANIM_TARGET + loopsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_ATTACKER, 7, 7 createsprite gDragonBreathFireSpriteTemplate, ANIM_TARGET, 2, 0, 0, 0, 0, 20 delay 2 createsprite gDragonBreathFireSpriteTemplate, ANIM_TARGET, 2, 0, 0, 0, 0, 20 delay 2 - createvisualtask AnimTask_BlendSelected, 10, 4, 1, 0, 9, RGB(31, 0, 0) + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_TARGET, 1, 0, 9, RGB_RED createsprite gDragonBreathFireSpriteTemplate, ANIM_TARGET, 2, 0, 0, 0, 0, 20 delay 2 - createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 21, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 21, 1 createsprite gDragonBreathFireSpriteTemplate, ANIM_TARGET, 2, 0, 0, 0, 0, 20 delay 2 createsprite gDragonBreathFireSpriteTemplate, ANIM_TARGET, 2, 0, 0, 0, 0, 20 @@ -5059,30 +5044,30 @@ Move_DRAGON_BREATH:: delay 2 createsprite gDragonBreathFireSpriteTemplate, ANIM_TARGET, 2, 0, 0, 0, 0, 20 waitforvisualfinish - createvisualtask AnimTask_BlendSelected, 10, 4, 1, 9, 0, RGB(31, 0, 0) + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_TARGET, 1, 9, 0, RGB_RED waitforvisualfinish clearmonbg ANIM_DEF_PARTNER end -Move_ROAR:: +Move_ROAR: loadspritegfx ANIM_TAG_NOISE_LINE monbg ANIM_ATTACKER - monbgprio_28 0 + splitbgprio ANIM_ATTACKER setalpha 8, 8 - createvisualtask SoundTask_PlayDoubleCry, 2, 0, DOUBLE_CRY_ROAR - createvisualtask AnimTask_ScaleMonAndRestore, 5, -5, -5, 10, 0, 1 + createvisualtask SoundTask_PlayDoubleCry, 2, ANIM_ATTACKER, DOUBLE_CRY_ROAR + createvisualtask AnimTask_ScaleMonAndRestore, 5, -5, -5, 10, ANIM_ATTACKER, 1 call RoarEffect delay 20 - createvisualtask AnimTask_SlideOffScreen, 5, 1, 2 + createvisualtask AnimTask_SlideOffScreen, 5, ANIM_TARGET, 2 waitforvisualfinish clearmonbg ANIM_ATTACKER blendoff waitforvisualfinish - createvisualtask SoundTask_WaitForCry, 5, + createvisualtask SoundTask_WaitForCry, 5 waitforvisualfinish end -RoarEffect:: +RoarEffect: createsprite gRoarNoiseLineSpriteTemplate, ANIM_ATTACKER, 2, 24, -8, 0 createsprite gRoarNoiseLineSpriteTemplate, ANIM_ATTACKER, 2, 24, 0, 2 createsprite gRoarNoiseLineSpriteTemplate, ANIM_ATTACKER, 2, 24, 8, 1 @@ -5092,19 +5077,19 @@ RoarEffect:: createsprite gRoarNoiseLineSpriteTemplate, ANIM_ATTACKER, 2, 24, 8, 1 return -Move_GROWL:: +Move_GROWL: loadspritegfx ANIM_TAG_NOISE_LINE - createvisualtask SoundTask_PlayDoubleCry, 2, 0, DOUBLE_CRY_GROWL + createvisualtask SoundTask_PlayDoubleCry, 2, ANIM_ATTACKER, DOUBLE_CRY_GROWL call RoarEffect delay 10 - createvisualtask AnimTask_ShakeMon2, 2, 1, 1, 0, 9, 1 - createvisualtask AnimTask_ShakeMon2, 2, 3, 1, 0, 9, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 1, 0, 9, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_DEF_PARTNER, 1, 0, 9, 1 waitforvisualfinish - createvisualtask SoundTask_WaitForCry, 5, + createvisualtask SoundTask_WaitForCry, 5 waitforvisualfinish end -Move_SNORE:: +Move_SNORE: loadspritegfx ANIM_TAG_SNORE_Z monbg ANIM_ATK_PARTNER setalpha 8, 8 @@ -5116,22 +5101,22 @@ Move_SNORE:: blendoff end -SnoreEffect:: - playsewithpan SE_M_SNORE, 192 - createvisualtask AnimTask_ScaleMonAndRestore, 5, -7, -7, 7, 0, 1 - createvisualtask AnimTask_ShakeMon2, 2, 1, 4, 0, 7, 1 +SnoreEffect: + playsewithpan SE_M_SNORE, SOUND_PAN_ATTACKER + createvisualtask AnimTask_ScaleMonAndRestore, 5, -7, -7, 7, ANIM_ATTACKER, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 7, 1 createsprite gShakeMonOrTerrainSpriteTemplate, ANIM_ATTACKER, 2, 6, 1, 14, 0, 0 createsprite gSnoreZSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, -42, -38, 24, 0, 0 createsprite gSnoreZSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 0, -42, 24, 0, 0 createsprite gSnoreZSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 42, -38, 24, 0, 0 return -Move_LIGHT_SCREEN:: +Move_LIGHT_SCREEN: loadspritegfx ANIM_TAG_SPARKLE_3 loadspritegfx ANIM_TAG_GREEN_LIGHT_WALL setalpha 0, 16 - waitplaysewithpan SE_M_REFLECT, 192, 15 - createsprite gLightScreenWallSpriteTemplate, ANIM_ATTACKER, 1, 40, 0, 10166 + waitplaysewithpan SE_M_REFLECT, SOUND_PAN_ATTACKER, 15 + createsprite gLightScreenWallSpriteTemplate, ANIM_ATTACKER, 1, 40, 0, ANIM_TAG_GREEN_LIGHT_WALL delay 10 call SpecialScreenSparkle waitforvisualfinish @@ -5139,102 +5124,102 @@ Move_LIGHT_SCREEN:: blendoff end -SpecialScreenSparkle:: - createsprite gSpecialScreenSparkleSpriteTemplate, ANIM_ATTACKER, 2, 23, 0, 0, 1 +SpecialScreenSparkle: + createsprite gSpecialScreenSparkleSpriteTemplate, ANIM_ATTACKER, 2, 23, 0, ANIM_ATTACKER, TRUE delay 6 - createsprite gSpecialScreenSparkleSpriteTemplate, ANIM_ATTACKER, 2, 31, -8, 0, 1 + createsprite gSpecialScreenSparkleSpriteTemplate, ANIM_ATTACKER, 2, 31, -8, ANIM_ATTACKER, TRUE delay 5 - createsprite gSpecialScreenSparkleSpriteTemplate, ANIM_ATTACKER, 2, 30, 20, 0, 1 + createsprite gSpecialScreenSparkleSpriteTemplate, ANIM_ATTACKER, 2, 30, 20, ANIM_ATTACKER, TRUE delay 7 - createsprite gSpecialScreenSparkleSpriteTemplate, ANIM_ATTACKER, 2, 10, -15, 0, 1 + createsprite gSpecialScreenSparkleSpriteTemplate, ANIM_ATTACKER, 2, 10, -15, ANIM_ATTACKER, TRUE delay 6 - createsprite gSpecialScreenSparkleSpriteTemplate, ANIM_ATTACKER, 2, 20, 10, 0, 1 + createsprite gSpecialScreenSparkleSpriteTemplate, ANIM_ATTACKER, 2, 20, 10, ANIM_ATTACKER, TRUE delay 6 - createsprite gSpecialScreenSparkleSpriteTemplate, ANIM_ATTACKER, 2, 10, 18, 0, 1 + createsprite gSpecialScreenSparkleSpriteTemplate, ANIM_ATTACKER, 2, 10, 18, ANIM_ATTACKER, TRUE return -Move_MIRROR_COAT:: +Move_MIRROR_COAT: loadspritegfx ANIM_TAG_SPARKLE_3 loadspritegfx ANIM_TAG_RED_LIGHT_WALL setalpha 0, 16 - createsprite gMirrorCoatWallSpriteTemplate, ANIM_ATTACKER, 1, 40, 0, 10168 + createsprite gMirrorCoatWallSpriteTemplate, ANIM_ATTACKER, 1, 40, 0, ANIM_TAG_RED_LIGHT_WALL delay 10 - playsewithpan SE_M_REFLECT, 192 + playsewithpan SE_M_REFLECT, SOUND_PAN_ATTACKER call SpecialScreenSparkle waitforvisualfinish delay 1 blendoff end -Move_REFLECT:: +Move_REFLECT: loadspritegfx ANIM_TAG_SPARKLE_4 loadspritegfx ANIM_TAG_BLUE_LIGHT_WALL setalpha 0, 16 - waitplaysewithpan SE_M_REFLECT, 192, 15 - createsprite gReflectWallSpriteTemplate, ANIM_ATTACKER, 1, 40, 0, 10167 + waitplaysewithpan SE_M_REFLECT, SOUND_PAN_ATTACKER, 15 + createsprite gReflectWallSpriteTemplate, ANIM_ATTACKER, 1, 40, 0, ANIM_TAG_BLUE_LIGHT_WALL delay 20 - createsprite gReflectSparkleSpriteTemplate, ANIM_ATTACKER, 2, 30, 0, 0, 1 + createsprite gReflectSparkleSpriteTemplate, ANIM_ATTACKER, 2, 30, 0, ANIM_ATTACKER, TRUE delay 7 - createsprite gReflectSparkleSpriteTemplate, ANIM_ATTACKER, 2, 19, -12, 0, 1 + createsprite gReflectSparkleSpriteTemplate, ANIM_ATTACKER, 2, 19, -12, ANIM_ATTACKER, TRUE delay 7 - createsprite gReflectSparkleSpriteTemplate, ANIM_ATTACKER, 2, 10, 20, 0, 1 + createsprite gReflectSparkleSpriteTemplate, ANIM_ATTACKER, 2, 10, 20, ANIM_ATTACKER, TRUE waitforvisualfinish delay 1 blendoff end -Move_BARRIER:: +Move_BARRIER: loadspritegfx ANIM_TAG_GRAY_LIGHT_WALL setalpha 0, 16 - waitplaysewithpan SE_M_BARRIER, 192, 15 - createsprite gBarrierWallSpriteTemplate, ANIM_ATTACKER, 3, 40, 0, 10169 + waitplaysewithpan SE_M_BARRIER, SOUND_PAN_ATTACKER, 15 + createsprite gBarrierWallSpriteTemplate, ANIM_ATTACKER, 3, 40, 0, ANIM_TAG_GRAY_LIGHT_WALL waitforvisualfinish delay 1 blendoff end -Move_BUBBLE:: +Move_BUBBLE: loadspritegfx ANIM_TAG_BUBBLE loadspritegfx ANIM_TAG_SMALL_BUBBLES - monbg 1 + monbg ANIM_TARGET setalpha 12, 8 delay 1 createsprite gWaterBubbleProjectileSpriteTemplate, ANIM_ATTACKER, 2, 18, 0, 15, -15, 10, 128, 100 - playsewithpan SE_M_BUBBLE, 192 - waitplaysewithpan SE_M_BUBBLE2, 63, 100 + playsewithpan SE_M_BUBBLE, SOUND_PAN_ATTACKER + waitplaysewithpan SE_M_BUBBLE2, SOUND_PAN_TARGET, 100 delay 6 createsprite gWaterBubbleProjectileSpriteTemplate, ANIM_ATTACKER, 2, 18, 0, 35, 37, 40, 128, 100 - playsewithpan SE_M_BUBBLE, 192 - waitplaysewithpan SE_M_BUBBLE2, 63, 100 + playsewithpan SE_M_BUBBLE, SOUND_PAN_ATTACKER + waitplaysewithpan SE_M_BUBBLE2, SOUND_PAN_TARGET, 100 delay 6 createsprite gWaterBubbleProjectileSpriteTemplate, ANIM_ATTACKER, 2, 18, 0, 10, -37, 30, 128, 100 - playsewithpan SE_M_BUBBLE, 192 - waitplaysewithpan SE_M_BUBBLE2, 63, 100 + playsewithpan SE_M_BUBBLE, SOUND_PAN_ATTACKER + waitplaysewithpan SE_M_BUBBLE2, SOUND_PAN_TARGET, 100 delay 6 createsprite gWaterBubbleProjectileSpriteTemplate, ANIM_ATTACKER, 2, 18, 0, 30, 10, 15, 128, 100 - playsewithpan SE_M_BUBBLE, 192 - waitplaysewithpan SE_M_BUBBLE2, 63, 100 + playsewithpan SE_M_BUBBLE, SOUND_PAN_ATTACKER + waitplaysewithpan SE_M_BUBBLE2, SOUND_PAN_TARGET, 100 delay 6 createsprite gWaterBubbleProjectileSpriteTemplate, ANIM_ATTACKER, 2, 18, 0, 20, 33, 20, 128, 100 - playsewithpan SE_M_BUBBLE, 192 - waitplaysewithpan SE_M_BUBBLE2, 63, 100 + playsewithpan SE_M_BUBBLE, SOUND_PAN_ATTACKER + waitplaysewithpan SE_M_BUBBLE2, SOUND_PAN_TARGET, 100 delay 6 createsprite gWaterBubbleProjectileSpriteTemplate, ANIM_ATTACKER, 2, 18, 0, 25, -30, 10, 128, 100 - playsewithpan SE_M_BUBBLE, 192 - waitplaysewithpan SE_M_BUBBLE2, 63, 100 + playsewithpan SE_M_BUBBLE, SOUND_PAN_ATTACKER + waitplaysewithpan SE_M_BUBBLE2, SOUND_PAN_TARGET, 100 waitforvisualfinish call WaterBubblesEffectLong waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff end -Move_SMOG:: +Move_SMOG: loadspritegfx ANIM_TAG_PURPLE_GAS_CLOUD monbg ANIM_DEF_PARTNER - monbgprio_29 + splitbgprio_all setalpha 12, 8 - loopsewithpan SE_M_MIST, 63, 17, 10 + loopsewithpan SE_M_MIST, SOUND_PAN_TARGET, 17, 10 call SmogCloud call SmogCloud call SmogCloud @@ -5243,45 +5228,45 @@ Move_SMOG:: call SmogCloud call SmogCloud delay 120 - loopsewithpan SE_M_TOXIC, 63, 18, 2 - createvisualtask AnimTask_CurseBlendEffect, 2, 4, 2, 2, 0, 12, 26650 + loopsewithpan SE_M_TOXIC, SOUND_PAN_TARGET, 18, 2 + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_TARGET, 2, 2, 0, 12, RGB(26, 0, 26) delay 10 - createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 15, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 15, 1 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff end -SmogCloud:: +SmogCloud: createsprite gSmogCloudSpriteTemplate, ANIM_ATTACKER, 2, 0, -24, 48, 240, 1, 0 delay 7 return -Move_FAINT_ATTACK:: +Move_FAINT_ATTACK: loadspritegfx ANIM_TAG_IMPACT monbg ANIM_ATTACKER - fadetobg 1 + fadetobg BG_DARK waitbgfadein delay 0 - playsewithpan SE_M_FAINT_ATTACK, 192 - createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, 0, 18, 6, 1, 3 + playsewithpan SE_M_FAINT_ATTACK, SOUND_PAN_ATTACKER + createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_ATTACKER, 18, 6, 1, 3 createvisualtask AnimTask_AttackerFadeToInvisible, 2, 1 waitforvisualfinish clearmonbg ANIM_ATTACKER - invisible 0 + invisible ANIM_ATTACKER delay 1 - createvisualtask AnimTask_SetAttackerInvisibleWaitForSignal, 2, - monbg 1 + createvisualtask AnimTask_SetAttackerInvisibleWaitForSignal, 2 + monbg ANIM_TARGET setalpha 12, 8 delay 1 - playsewithpan SE_M_VITAL_THROW2, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 1 - createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 9, 1 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 9, 1 waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff delay 1 - setarg 7, 4096 + setarg 7, 0x1000 delay 32 createvisualtask AnimTask_InitAttackerFadeFromInvisible, 2 monbg ANIM_ATTACKER @@ -5293,12 +5278,12 @@ Move_FAINT_ATTACK:: waitbgfadein end -Move_SAND_ATTACK:: +Move_SAND_ATTACK: loadspritegfx ANIM_TAG_MUD_SAND monbg ANIM_ATK_PARTNER - monbgprio_28 0 + splitbgprio ANIM_ATTACKER setalpha 12, 8 - playsewithpan SE_M_SAND_ATTACK, 192 + playsewithpan SE_M_SAND_ATTACK, SOUND_PAN_ATTACKER createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 0, -10, 0, 0, 3 waitforvisualfinish createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 2 @@ -5313,7 +5298,7 @@ Move_SAND_ATTACK:: blendoff end -SandAttackDirt:: +SandAttackDirt: createsprite gSandAttackDirtSpriteTemplate, ANIM_TARGET, 2, 15, 15, 20, 0, 0 createsprite gSandAttackDirtSpriteTemplate, ANIM_TARGET, 2, 15, 15, 20, 10, 10 createsprite gSandAttackDirtSpriteTemplate, ANIM_TARGET, 2, 15, 15, 20, -10, -10 @@ -5322,9 +5307,9 @@ SandAttackDirt:: delay 2 return -Move_MUD_SLAP:: +Move_MUD_SLAP: loadspritegfx ANIM_TAG_MUD_SAND - playsewithpan SE_M_SAND_ATTACK, 192 + playsewithpan SE_M_SAND_ATTACK, SOUND_PAN_ATTACKER createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 0, -10, 0, 0, 3 waitforvisualfinish createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 2 @@ -5337,7 +5322,7 @@ Move_MUD_SLAP:: waitforvisualfinish end -MudSlapMud:: +MudSlapMud: createsprite gMudSlapMudSpriteTemplate, ANIM_TARGET, 2, 15, 15, 20, 0, 0 createsprite gMudSlapMudSpriteTemplate, ANIM_TARGET, 2, 15, 15, 20, 10, 5 createsprite gMudSlapMudSpriteTemplate, ANIM_TARGET, 2, 15, 15, 20, -10, -5 @@ -5346,18 +5331,18 @@ MudSlapMud:: delay 2 return -Move_DRAGON_RAGE:: +Move_DRAGON_RAGE: loadspritegfx ANIM_TAG_SMALL_EMBER loadspritegfx ANIM_TAG_FIRE_PLUME - playsewithpan SE_M_DRAGON_RAGE, 192 - createvisualtask AnimTask_ShakeMon, 5, 0, 0, 2, 40, 1 + playsewithpan SE_M_DRAGON_RAGE, SOUND_PAN_ATTACKER + createvisualtask AnimTask_ShakeMon, 5, ANIM_ATTACKER, 0, 2, 40, 1 waitforvisualfinish createsprite gSlideMonToOffsetSpriteTemplate, ANIM_TARGET, 2, 0, 15, 0, 0, 4 waitforvisualfinish createsprite gDragonRageFireSpitSpriteTemplate, ANIM_TARGET, 2, 30, 15, 0, 10, 10 waitforvisualfinish - loopsewithpan SE_M_FLAME_WHEEL2, 63, 11, 3 - createvisualtask AnimTask_ShakeMon, 5, 1, 0, 3, 25, 1 + loopsewithpan SE_M_FLAME_WHEEL2, SOUND_PAN_TARGET, 11, 3 + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 3, 25, 1 createsprite gDragonRageFirePlumeSpriteTemplate, ANIM_TARGET, 66, 1, 5, 0 delay 1 createsprite gDragonRageFirePlumeSpriteTemplate, ANIM_TARGET, 66, 1, -10, -15 @@ -5378,98 +5363,98 @@ Move_DRAGON_RAGE:: waitforvisualfinish end -Move_RAIN_DANCE:: +Move_RAIN_DANCE: loadspritegfx ANIM_TAG_RAIN_DROPS - playsewithpan SE_M_RAIN_DANCE, 192 - createvisualtask AnimTask_BlendSelected, 10, 1 | (0xF << 7), 2, 0, 4, RGB_BLACK + playsewithpan SE_M_RAIN_DANCE, SOUND_PAN_ATTACKER + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_BG | F_PAL_BATTLERS_2, 2, 0, 4, RGB_BLACK waitforvisualfinish createvisualtask AnimTask_CreateRaindrops, 2, 0, 3, 120 createvisualtask AnimTask_CreateRaindrops, 2, 0, 3, 120 delay 120 delay 30 waitforvisualfinish - createvisualtask AnimTask_BlendSelected, 10, 1 | (0xF << 7), 2, 4, 0, RGB_BLACK + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_BG | F_PAL_BATTLERS_2, 2, 4, 0, RGB_BLACK waitforvisualfinish end -Move_BITE:: +Move_BITE: loadspritegfx ANIM_TAG_SHARP_TEETH loadspritegfx ANIM_TAG_IMPACT - monbg 1 + monbg ANIM_TARGET setalpha 12, 8 - playsewithpan SE_M_BITE, 63 + playsewithpan SE_M_BITE, SOUND_PAN_TARGET createsprite gSharpTeethSpriteTemplate, ANIM_ATTACKER, 2, 0, -32, 0, 0, 819, 10 createsprite gSharpTeethSpriteTemplate, ANIM_ATTACKER, 2, 0, 32, 4, 0, -819, 10 delay 10 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 2 - createvisualtask AnimTask_ShakeMon, 5, 1, 0, 4, 7, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 2 + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 4, 7, 1 waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff delay 1 end -Move_CRUNCH:: +Move_CRUNCH: loadspritegfx ANIM_TAG_SHARP_TEETH loadspritegfx ANIM_TAG_IMPACT - monbg 1 - fadetobg 1 + monbg ANIM_TARGET + fadetobg BG_DARK waitbgfadein setalpha 12, 8 - playsewithpan SE_M_BITE, 63 + playsewithpan SE_M_BITE, SOUND_PAN_TARGET createsprite gSharpTeethSpriteTemplate, ANIM_ATTACKER, 2, -32, -32, 1, 819, 819, 10 createsprite gSharpTeethSpriteTemplate, ANIM_ATTACKER, 2, 32, 32, 5, -819, -819, 10 delay 10 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -8, 0, 1, 1 - createvisualtask AnimTask_ShakeMon, 5, 1, 0, 7, 5, 2 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -8, 0, ANIM_TARGET, 1 + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 7, 5, 2 waitforvisualfinish - playsewithpan SE_M_BITE, 63 + playsewithpan SE_M_BITE, SOUND_PAN_TARGET createsprite gSharpTeethSpriteTemplate, ANIM_ATTACKER, 2, 32, -32, 7, -819, 819, 10 createsprite gSharpTeethSpriteTemplate, ANIM_ATTACKER, 2, -32, 32, 3, 819, -819, 10 delay 10 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 8, 0, 1, 1 - createvisualtask AnimTask_ShakeMon, 5, 1, 0, 8, 4, 2 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 8, 0, ANIM_TARGET, 1 + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 8, 4, 2 waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff delay 1 restorebg waitbgfadein end -Move_CLAMP:: +Move_CLAMP: loadspritegfx ANIM_TAG_CLAMP loadspritegfx ANIM_TAG_IMPACT - monbg 1 + monbg ANIM_TARGET setalpha 12, 8 - playsewithpan SE_M_VICEGRIP, 63 + playsewithpan SE_M_VICEGRIP, SOUND_PAN_TARGET createsprite gClampJawSpriteTemplate, ANIM_ATTACKER, 2, -32, 0, 2, 819, 0, 10 createsprite gClampJawSpriteTemplate, ANIM_ATTACKER, 2, 32, 0, 6, -819, 0, 10 delay 10 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 2 - createvisualtask AnimTask_ShakeMon, 5, 1, 3, 0, 5, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 2 + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 3, 0, 5, 1 waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff waitforvisualfinish end -Move_ICE_BEAM:: - monbg 1 - monbgprio_28 1 +Move_ICE_BEAM: + monbg ANIM_TARGET + splitbgprio ANIM_TARGET setalpha 12, 8 loadspritegfx ANIM_TAG_ICE_CRYSTALS - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 0, 7, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 1, 0, 7, RGB_BLACK waitforvisualfinish - createsoundtask SoundTask_LoopSEAdjustPanning, SE_M_BUBBLE_BEAM2, -64, 63, 4, 4, 0, 10 + createsoundtask SoundTask_LoopSEAdjustPanning, SE_M_BUBBLE_BEAM2, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 4, 4, 0, 10 createsprite gIceBeamOuterCrystalSpriteTemplate, ANIM_ATTACKER, 2, 20, 12, 0, 12, 20 createsprite gIceBeamOuterCrystalSpriteTemplate, ANIM_ATTACKER, 2, 20, -12, 0, -12, 20 delay 1 call IceBeamCreateCrystals call IceBeamCreateCrystals call IceBeamCreateCrystals - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 4, -31, 0, 7, 32384 - createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 25, 1 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_TARGET, -31, 0, 7, RGB(0, 20, 31) + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 25, 1 call IceBeamCreateCrystals call IceBeamCreateCrystals call IceBeamCreateCrystals @@ -5484,42 +5469,42 @@ Move_ICE_BEAM:: waitforvisualfinish delay 20 call IceCrystalEffectShort - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 4, 5, 7, 0, 32384 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_TARGET, 5, 7, 0, RGB(0, 20, 31) waitforvisualfinish - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 0, 7, 0, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 0, 7, 0, RGB_BLACK waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff end -IceBeamCreateCrystals:: +IceBeamCreateCrystals: createsprite gIceBeamOuterCrystalSpriteTemplate, ANIM_ATTACKER, 2, 20, 12, 0, 12, 20 createsprite gIceBeamOuterCrystalSpriteTemplate, ANIM_ATTACKER, 2, 20, -12, 0, -12, 20 createsprite gIceBeamInnerCrystalSpriteTemplate, ANIM_ATTACKER, 2, 20, 0, 0, 0, 11 delay 1 return -Move_WITHDRAW:: - playsewithpan SE_M_HEADBUTT, 192 - createvisualtask AnimTask_Withdraw, 5, +Move_WITHDRAW: + playsewithpan SE_M_HEADBUTT, SOUND_PAN_ATTACKER + createvisualtask AnimTask_Withdraw, 5 waitforvisualfinish end -Move_AURORA_BEAM:: +Move_AURORA_BEAM: loadspritegfx ANIM_TAG_RAINBOW_RINGS - fadetobg 20 + fadetobg BG_AURORA waitbgfadein - playsewithpan SE_M_BUBBLE_BEAM, 192 + playsewithpan SE_M_BUBBLE_BEAM, SOUND_PAN_ATTACKER setarg 7, 0 createvisualtask AnimTask_RotateAuroraRingColors, 10, 130 call AuroraBeamCreateRings - createvisualtask AnimTask_ShakeMon2, 5, 1, 1, 0, 17, 1 + createvisualtask AnimTask_ShakeMon2, 5, ANIM_TARGET, 1, 0, 17, 1 call AuroraBeamCreateRings call AuroraBeamCreateRings call AuroraBeamCreateRings - setarg 7, 65535 - createsoundtask SoundTask_LoopSEAdjustPanning, SE_M_BUBBLE_BEAM2, -64, 63, 3, 6, 0, 10 - createvisualtask AnimTask_ShakeMon2, 5, 1, 2, 0, 40, 1 + setarg 7, 0xFFFF + createsoundtask SoundTask_LoopSEAdjustPanning, SE_M_BUBBLE_BEAM2, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 3, 6, 0, 10 + createvisualtask AnimTask_ShakeMon2, 5, ANIM_TARGET, 2, 0, 40, 1 call AuroraBeamCreateRings call AuroraBeamCreateRings call AuroraBeamCreateRings @@ -5531,7 +5516,7 @@ Move_AURORA_BEAM:: waitbgfadein end -AuroraBeamCreateRings:: +AuroraBeamCreateRings: createsprite gAuroraBeamRingSpriteTemplate, ANIM_TARGET, 2, 20, 0, 0, 0, 17 delay 1 createsprite gAuroraBeamRingSpriteTemplate, ANIM_TARGET, 2, 20, 0, 0, 0, 17 @@ -5542,25 +5527,26 @@ AuroraBeamCreateRings:: delay 1 return -Move_SOLAR_BEAM:: +Move_SOLAR_BEAM: loadspritegfx ANIM_TAG_ORBS choosetwoturnanim SolarBeamSetUp, SolarBeamUnleash -SolarBeamEnd:: + +SolarBeamEnd: waitforvisualfinish end -SolarBeamSetUp:: +SolarBeamSetUp: monbg ANIM_ATK_PARTNER setalpha 12, 8 - createvisualtask AnimTask_CurseBlendEffect, 2, 2, 1, 4, 0, 11, 12287 - playsewithpan SE_M_MEGA_KICK, 192 + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_ATTACKER, 1, 4, 0, 11, RGB(31, 31, 11) + playsewithpan SE_M_MEGA_KICK, SOUND_PAN_ATTACKER call SolarBeamAbsorbEffect waitforvisualfinish clearmonbg ANIM_ATK_PARTNER blendoff goto SolarBeamEnd -SolarBeamAbsorbEffect:: +SolarBeamAbsorbEffect: createsprite gPowerAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 2, 40, 40, 16 delay 2 createsprite gPowerAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 2, -40, -40, 16 @@ -5591,18 +5577,18 @@ SolarBeamAbsorbEffect:: delay 2 return -SolarBeamUnleash:: +SolarBeamUnleash: call SetSolarBeamBg - panse_1B SE_M_SOLAR_BEAM, 192, 63, 2, 0 - createvisualtask AnimTask_CreateSmallSolarBeamOrbs, 5, + panse SE_M_SOLAR_BEAM, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 + createvisualtask AnimTask_CreateSmallSolarBeamOrbs, 5 createsprite gSolarBeamBigOrbSpriteTemplate, ANIM_TARGET, 3, 15, 0, 20, 0 delay 4 createsprite gSolarBeamBigOrbSpriteTemplate, ANIM_TARGET, 3, 15, 0, 20, 1 delay 4 - createvisualtask AnimTask_BlendSelected, 10, 4, 1, 0, 10, RGB(25, 31, 0) + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_TARGET, 1, 0, 10, RGB(25, 31, 0) createsprite gSolarBeamBigOrbSpriteTemplate, ANIM_TARGET, 3, 15, 0, 20, 2 delay 4 - createvisualtask AnimTask_ShakeMon2, 5, 1, 2, 0, 65, 1 + createvisualtask AnimTask_ShakeMon2, 5, ANIM_TARGET, 2, 0, 65, 1 createsprite gSolarBeamBigOrbSpriteTemplate, ANIM_TARGET, 3, 15, 0, 20, 3 delay 4 createsprite gSolarBeamBigOrbSpriteTemplate, ANIM_TARGET, 3, 15, 0, 20, 4 @@ -5614,11 +5600,11 @@ SolarBeamUnleash:: call SolarBeamUnleash1 call SolarBeamUnleash1 waitforvisualfinish - createvisualtask AnimTask_BlendSelected, 10, 4, 1, 10, 0, RGB(25, 31, 0) + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_TARGET, 1, 10, 0, RGB(25, 31, 0) call UnsetSolarBeamBg goto SolarBeamEnd -SolarBeamUnleash1:: +SolarBeamUnleash1: createsprite gSolarBeamBigOrbSpriteTemplate, ANIM_TARGET, 3, 15, 0, 20, 0 delay 4 createsprite gSolarBeamBigOrbSpriteTemplate, ANIM_TARGET, 3, 15, 0, 20, 1 @@ -5635,22 +5621,21 @@ SolarBeamUnleash1:: delay 4 return -Move_BLIZZARD:: +Move_BLIZZARD: loadspritegfx ANIM_TAG_ICE_CRYSTALS monbg ANIM_DEF_PARTNER - createvisualtask AnimTask_GetAttackerSide, 2, - jumpargeq 7, 1, BlizzardOnPlayer + createvisualtask AnimTask_GetAttackerSide, 2 + jumprettrue BlizzardAgainstPlayer fadetobg BG_HIGHSPEED_OPPONENT - -BlizzardContinue:: +BlizzardContinue: waitbgfadeout createvisualtask AnimTask_StartSlidingBg, 5, -2304, 0, 1, -1 waitbgfadein waitforvisualfinish - panse_1B SE_M_BLIZZARD, 192, 63, 2, 0 + panse SE_M_BLIZZARD, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 call BlizzardIceCrystals call BlizzardIceCrystals - playsewithpan SE_M_BLIZZARD2, 63 + playsewithpan SE_M_BLIZZARD2, SOUND_PAN_TARGET waitforvisualfinish call IceCrystalEffectLong waitforvisualfinish @@ -5658,11 +5643,11 @@ BlizzardContinue:: delay 20 restorebg waitbgfadeout - setarg 7, 65535 + setarg 7, 0xFFFF waitbgfadein end -BlizzardIceCrystals:: +BlizzardIceCrystals: createsprite gSwirlingSnowballSpriteTemplate, ANIM_ATTACKER, 40, 0, -10, 0, -10, 72, 1 createsprite gBlizzardIceCrystalSpriteTemplate, ANIM_ATTACKER, 40, 0, 0, 0, 0, 80, 0, 0, 1 delay 3 @@ -5686,29 +5671,29 @@ BlizzardIceCrystals:: delay 3 return -BlizzardOnPlayer:: +BlizzardAgainstPlayer: fadetobg BG_HIGHSPEED_PLAYER goto BlizzardContinue -Move_POWDER_SNOW:: +Move_POWDER_SNOW: loadspritegfx ANIM_TAG_ICE_CRYSTALS monbg ANIM_DEF_PARTNER - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 1, 0, 3, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG | F_PAL_BATTLERS, 1, 0, 3, RGB_BLACK waitforvisualfinish - panse_1B SE_M_GUST, 192, 63, 2, 0 + panse SE_M_GUST, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 call PowderSnowSnowballs call PowderSnowSnowballs - playsewithpan SE_M_GUST2, 63 + playsewithpan SE_M_GUST2, SOUND_PAN_TARGET waitforvisualfinish waitsound call IceCrystalEffectLong waitforvisualfinish clearmonbg ANIM_DEF_PARTNER delay 20 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 1, 3, 0, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG | F_PAL_BATTLERS, 1, 3, 0, RGB_BLACK end -PowderSnowSnowballs:: +PowderSnowSnowballs: createsprite gPowderSnowSnowballSpriteTemplate, ANIM_ATTACKER, 40, 0, 0, 0, 0, 56, 4, 4, 1 delay 3 createsprite gPowderSnowSnowballSpriteTemplate, ANIM_ATTACKER, 40, 0, -10, 0, -10, 56, 4, 4, 1 @@ -5725,20 +5710,20 @@ PowderSnowSnowballs:: delay 3 return -Move_HYDRO_PUMP:: +Move_HYDRO_PUMP: loadspritegfx ANIM_TAG_WATER_ORB loadspritegfx ANIM_TAG_WATER_IMPACT monbg ANIM_DEF_PARTNER - monbgprio_28 1 + splitbgprio ANIM_TARGET setalpha 12, 8 - createvisualtask AnimTask_ShakeMon, 5, 0, 0, 2, 40, 1 + createvisualtask AnimTask_ShakeMon, 5, ANIM_ATTACKER, 0, 2, 40, 1 delay 6 - panse_1B SE_M_HYDRO_PUMP, 192, 63, 2, 0 + panse SE_M_HYDRO_PUMP, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 createvisualtask AnimTask_StartSinAnimTimer, 5, 100 call HydroPumpBeams call HydroPumpBeams call HydroPumpBeams - createvisualtask AnimTask_ShakeMon, 5, 1, 3, 0, 37, 1 + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 3, 0, 37, 1 call HydroPumpHitSplats call HydroPumpBeams call HydroPumpBeams @@ -5760,7 +5745,7 @@ Move_HYDRO_PUMP:: blendoff end -HydroPumpBeams:: +HydroPumpBeams: createsprite gHydroPumpOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, 10, 0, 16 createsprite gHydroPumpOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, 10, 0, -16 delay 1 @@ -5769,18 +5754,18 @@ HydroPumpBeams:: delay 1 return -HydroPumpHitSplats:: - createsprite gWaterHitSplatSpriteTemplate, ANIM_ATTACKER, 4, 0, 15, 1, 1 - createsprite gWaterHitSplatSpriteTemplate, ANIM_ATTACKER, 4, 0, -15, 1, 1 +HydroPumpHitSplats : + createsprite gWaterHitSplatSpriteTemplate, ANIM_ATTACKER, 4, 0, 15, ANIM_TARGET, 1 + createsprite gWaterHitSplatSpriteTemplate, ANIM_ATTACKER, 4, 0, -15, ANIM_TARGET, 1 return -Move_SIGNAL_BEAM:: +Move_SIGNAL_BEAM: loadspritegfx ANIM_TAG_GLOWY_RED_ORB loadspritegfx ANIM_TAG_GLOWY_GREEN_ORB loadspritegfx ANIM_TAG_DUCK - createvisualtask AnimTask_ShakeMon, 5, 0, 0, 2, 25, 1 + createvisualtask AnimTask_ShakeMon, 5, ANIM_ATTACKER, 0, 2, 25, 1 delay 6 - panse_1B SE_M_BUBBLE_BEAM, 192, 63, 1, 0 + panse SE_M_BUBBLE_BEAM, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +1, 0 createvisualtask AnimTask_StartSinAnimTimer, 5, 100 call SignalBeamOrbs call SignalBeamOrbs @@ -5788,8 +5773,8 @@ Move_SIGNAL_BEAM:: call SignalBeamOrbs call SignalBeamOrbs call SignalBeamOrbs - createvisualtask AnimTask_ShakeMon, 5, 1, 3, 0, 25, 1 - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 4, 8, 5, 31, 8, 961, 8 + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 3, 0, 25, 1 + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_TARGET, 8, 5, RGB_RED, 8, RGB(1, 30, 0), 8 call SignalBeamOrbs call SignalBeamOrbs call SignalBeamOrbs @@ -5810,25 +5795,25 @@ Move_SIGNAL_BEAM:: waitforvisualfinish end -SignalBeamOrbs:: +SignalBeamOrbs: createsprite gSignalBeamRedOrbSpriteTemplate, ANIM_TARGET, 3, 10, 10, 0, 16 createsprite gSignalBeamGreenOrbSpriteTemplate, ANIM_TARGET, 3, 10, 10, 0, -16 delay 1 return -Move_ABSORB:: +Move_ABSORB: loadspritegfx ANIM_TAG_ORBS loadspritegfx ANIM_TAG_BLUE_STAR loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER - monbgprio_2A 1 + splitbgprio_foes ANIM_TARGET setalpha 12, 8 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 0, 4, 13293 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 1, 0, 4, RGB(13, 31, 12) waitforvisualfinish - playsewithpan SE_M_ABSORB, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 2 + playsewithpan SE_M_ABSORB, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 2 delay 2 - createvisualtask AnimTask_ShakeMon, 5, 1, 0, 5, 5, 1 + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 5, 5, 1 waitforvisualfinish delay 3 call AbsorbEffect @@ -5836,52 +5821,52 @@ Move_ABSORB:: delay 15 call HealingEffect waitforvisualfinish - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 4, 0, 13293 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 1, 4, 0, RGB(13, 31, 12) waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff end -AbsorbEffect:: - playsewithpan SE_M_CRABHAMMER, 63 +AbsorbEffect: + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 8, 26 delay 4 - playsewithpan SE_M_CRABHAMMER, 63 + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, -5, -8, 26 delay 4 - playsewithpan SE_M_CRABHAMMER, 63 + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, -5, 15, 16, 33 delay 4 - playsewithpan SE_M_CRABHAMMER, 63 + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, -15, -16, 36 delay 4 - playsewithpan SE_M_CRABHAMMER, 63 + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 8, 26 delay 4 - playsewithpan SE_M_CRABHAMMER, 63 + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, -5, -8, 26 delay 4 - playsewithpan SE_M_CRABHAMMER, 63 + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, -10, 20, 20, 39 delay 4 - playsewithpan SE_M_CRABHAMMER, 63 + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 5, -18, -20, 35 delay 4 return -Move_MEGA_DRAIN:: +Move_MEGA_DRAIN: loadspritegfx ANIM_TAG_ORBS loadspritegfx ANIM_TAG_BLUE_STAR loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER - monbgprio_2A 1 + splitbgprio_foes ANIM_TARGET setalpha 12, 8 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 0, 8, 13293 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 1, 0, 8, RGB(13, 31, 12) waitforvisualfinish - playsewithpan SE_M_ABSORB, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 1 + playsewithpan SE_M_ABSORB, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 1 delay 2 - createvisualtask AnimTask_ShakeMon, 5, 1, 0, 5, 5, 1 + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 5, 5, 1 waitforvisualfinish delay 3 call MegaDrainAbsorbEffect @@ -5889,60 +5874,60 @@ Move_MEGA_DRAIN:: delay 15 call HealingEffect waitforvisualfinish - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 8, 0, 13293 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 1, 8, 0, RGB(13, 31, 12) waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff end -MegaDrainAbsorbEffect:: - playsewithpan SE_M_BUBBLE3, 63 +MegaDrainAbsorbEffect: + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 5, -18, -20, 35 delay 4 - playsewithpan SE_M_BUBBLE3, 63 + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, -5, -8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, -10, 20, 20, 39 delay 4 - playsewithpan SE_M_BUBBLE3, 63 + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, -5, 15, 16, 33 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, -5, -8, 26 delay 4 - playsewithpan SE_M_BUBBLE3, 63 + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, -15, -16, 36 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 8, 26 delay 4 - playsewithpan SE_M_BUBBLE3, 63 + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, -15, -16, 36 delay 4 - playsewithpan SE_M_BUBBLE3, 63 + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, -5, -8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, -5, 15, 16, 33 delay 4 - playsewithpan SE_M_BUBBLE3, 63 + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, -10, 20, 20, 39 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, -5, -8, 26 delay 4 - playsewithpan SE_M_BUBBLE3, 63 + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 5, -18, -20, 35 delay 4 return -Move_GIGA_DRAIN:: +Move_GIGA_DRAIN: loadspritegfx ANIM_TAG_ORBS loadspritegfx ANIM_TAG_BLUE_STAR loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER - monbgprio_2A 1 + splitbgprio_foes ANIM_TARGET setalpha 12, 8 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 0, 12, 13293 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 1, 0, 12, RGB(13, 31, 12) waitforvisualfinish - playsewithpan SE_M_ABSORB, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 0 + playsewithpan SE_M_ABSORB, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 0 delay 2 - createvisualtask AnimTask_ShakeMon, 5, 1, 0, 5, 5, 1 + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 5, 5, 1 waitforvisualfinish delay 3 call GigaDrainAbsorbEffect @@ -5950,97 +5935,97 @@ Move_GIGA_DRAIN:: delay 15 call HealingEffect waitforvisualfinish - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 12, 0, 13293 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 1, 12, 0, RGB(13, 31, 12) waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff end -GigaDrainAbsorbEffect:: - playsewithpan SE_M_GIGA_DRAIN, 63 +GigaDrainAbsorbEffect: + playsewithpan SE_M_GIGA_DRAIN, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 5, -18, -40, 35 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, -10, 20, 20, 39 delay 4 - playsewithpan SE_M_GIGA_DRAIN, 63 + playsewithpan SE_M_GIGA_DRAIN, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 28, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, -5, -8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, -10, 20, 40, 39 delay 4 - playsewithpan SE_M_GIGA_DRAIN, 63 + playsewithpan SE_M_GIGA_DRAIN, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, -5, -8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, -5, 15, 16, 33 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, -5, -32, 26 delay 4 - playsewithpan SE_M_GIGA_DRAIN, 63 + playsewithpan SE_M_GIGA_DRAIN, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, -15, -16, 36 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, -5, -8, 26 delay 4 - playsewithpan SE_M_GIGA_DRAIN, 63 + playsewithpan SE_M_GIGA_DRAIN, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, -5, 15, 16, 33 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, -15, -16, 36 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 8, 26 delay 4 - playsewithpan SE_M_GIGA_DRAIN, 63 + playsewithpan SE_M_GIGA_DRAIN, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, -5, 15, 16, 33 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, -5, -40, 26 delay 4 - playsewithpan SE_M_GIGA_DRAIN, 63 + playsewithpan SE_M_GIGA_DRAIN, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, -5, 15, 36, 33 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, -5, -8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, -10, 20, 20, 39 delay 4 - playsewithpan SE_M_GIGA_DRAIN, 63 + playsewithpan SE_M_GIGA_DRAIN, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 5, -18, -20, 35 delay 4 return -Move_LEECH_LIFE:: +Move_LEECH_LIFE: loadspritegfx ANIM_TAG_NEEDLE loadspritegfx ANIM_TAG_ORBS delay 1 loadspritegfx ANIM_TAG_BLUE_STAR loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER - monbgprio_2A 1 + splitbgprio_foes ANIM_TARGET setalpha 12, 8 delay 1 createsprite gLeechLifeNeedleSpriteTemplate, ANIM_ATTACKER, 2, -20, 15, 12 waitforvisualfinish - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 2 - playsewithpan SE_M_ABSORB, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 2 + playsewithpan SE_M_ABSORB, SOUND_PAN_TARGET delay 2 - createvisualtask AnimTask_ShakeMon, 5, 1, 0, 5, 5, 1 + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 5, 5, 1 waitforvisualfinish - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 0, 7, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 1, 0, 7, RGB_BLACK waitforvisualfinish call AbsorbEffect waitforvisualfinish delay 15 call HealingEffect waitforvisualfinish - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 7, 0, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 1, 7, 0, RGB_BLACK waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff end -Move_SYNTHESIS:: +Move_SYNTHESIS: loadspritegfx ANIM_TAG_BLUE_STAR loadspritegfx ANIM_TAG_SPARKLE_2 - createvisualtask AnimTask_CurseBlendEffect, 2, 2, 2, 2, 0, 16, 19451 - playsewithpan SE_M_MEGA_KICK, 192 + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_ATTACKER, 2, 2, 0, 16, RGB(27, 31, 18) + playsewithpan SE_M_MEGA_KICK, SOUND_PAN_ATTACKER call GrantingStarsEffect waitforvisualfinish call HealingEffect waitforvisualfinish end -Move_TOXIC:: +Move_TOXIC: loadspritegfx ANIM_TAG_TOXIC_BUBBLE loadspritegfx ANIM_TAG_POISON_BUBBLE call ToxicBubbles @@ -6051,33 +6036,33 @@ Move_TOXIC:: waitforvisualfinish end -ToxicBubbles:: +ToxicBubbles: createsprite gToxicBubbleSpriteTemplate, ANIM_TARGET, 2, -24, 16, 1, 1 - playsewithpan SE_M_TOXIC, 63 + playsewithpan SE_M_TOXIC, SOUND_PAN_TARGET delay 15 createsprite gToxicBubbleSpriteTemplate, ANIM_TARGET, 2, 8, 16, 1, 1 - playsewithpan SE_M_TOXIC, 63 + playsewithpan SE_M_TOXIC, SOUND_PAN_TARGET delay 15 createsprite gToxicBubbleSpriteTemplate, ANIM_TARGET, 2, -8, 16, 1, 1 - playsewithpan SE_M_TOXIC, 63 + playsewithpan SE_M_TOXIC, SOUND_PAN_TARGET delay 15 createsprite gToxicBubbleSpriteTemplate, ANIM_TARGET, 2, 24, 16, 1, 1 - playsewithpan SE_M_TOXIC, 63 + playsewithpan SE_M_TOXIC, SOUND_PAN_TARGET delay 15 return -Move_SLUDGE:: +Move_SLUDGE: loadspritegfx ANIM_TAG_POISON_BUBBLE - playsewithpan SE_M_BUBBLE3, 192 + playsewithpan SE_M_BUBBLE3, SOUND_PAN_ATTACKER createsprite gSludgeProjectileSpriteTemplate, ANIM_TARGET, 2, 20, 0, 40, 0 waitforvisualfinish - createvisualtask AnimTask_ShakeMon, 5, 1, 3, 0, 5, 1 - createvisualtask AnimTask_CurseBlendEffect, 2, 4, 1, 2, 0, 12, 31774 + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 3, 0, 5, 1 + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_TARGET, 1, 2, 0, 12, RGB(30, 0, 31) call PoisonBubblesEffect waitforvisualfinish end -Move_SLUDGE_BOMB:: +Move_SLUDGE_BOMB: loadspritegfx ANIM_TAG_POISON_BUBBLE call SludgeBombProjectile call SludgeBombProjectile @@ -6089,25 +6074,25 @@ Move_SLUDGE_BOMB:: call SludgeBombProjectile call SludgeBombProjectile call SludgeBombProjectile - createvisualtask AnimTask_ShakeMon2, 5, 1, 3, 0, 15, 1 - createvisualtask AnimTask_CurseBlendEffect, 2, 4, 1, 2, 0, 12, 31774 + createvisualtask AnimTask_ShakeMon2, 5, ANIM_TARGET, 3, 0, 15, 1 + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_TARGET, 1, 2, 0, 12, RGB(30, 0, 31) createsprite gSludgeBombHitParticleSpriteTemplate, ANIM_TARGET, 2, 42, 27, 20 createsprite gSludgeBombHitParticleSpriteTemplate, ANIM_TARGET, 2, -27, 44, 20 createsprite gSludgeBombHitParticleSpriteTemplate, ANIM_TARGET, 2, 39, -28, 20 createsprite gSludgeBombHitParticleSpriteTemplate, ANIM_TARGET, 2, -42, -42, 20 - playsewithpan SE_M_DIG, 63 + playsewithpan SE_M_DIG, SOUND_PAN_TARGET delay 5 createsprite gSludgeBombHitParticleSpriteTemplate, ANIM_TARGET, 2, 0, 40, 20 createsprite gSludgeBombHitParticleSpriteTemplate, ANIM_TARGET, 2, -8, -44, 20 createsprite gSludgeBombHitParticleSpriteTemplate, ANIM_TARGET, 2, -46, -28, 20 createsprite gSludgeBombHitParticleSpriteTemplate, ANIM_TARGET, 2, 46, 9, 20 - playsewithpan SE_M_DIG, 63 + playsewithpan SE_M_DIG, SOUND_PAN_TARGET delay 5 createsprite gSludgeBombHitParticleSpriteTemplate, ANIM_TARGET, 2, 42, 0, 20 createsprite gSludgeBombHitParticleSpriteTemplate, ANIM_TARGET, 2, -43, -12, 20 createsprite gSludgeBombHitParticleSpriteTemplate, ANIM_TARGET, 2, 16, -46, 20 createsprite gSludgeBombHitParticleSpriteTemplate, ANIM_TARGET, 2, -16, 44, 20 - playsewithpan SE_M_DIG, 63 + playsewithpan SE_M_DIG, SOUND_PAN_TARGET delay 0 waitsound waitforvisualfinish @@ -6115,186 +6100,186 @@ Move_SLUDGE_BOMB:: waitforvisualfinish end -SludgeBombProjectile:: - playsewithpan SE_M_BUBBLE3, 192 +SludgeBombProjectile: + playsewithpan SE_M_BUBBLE3, SOUND_PAN_ATTACKER createsprite gSludgeProjectileSpriteTemplate, ANIM_TARGET, 2, 20, 0, 40, 0 delay 3 return -Move_ACID:: +Move_ACID: loadspritegfx ANIM_TAG_POISON_BUBBLE monbg ANIM_DEF_PARTNER createsprite gAcidPoisonBubbleSpriteTemplate, ANIM_TARGET, 2, 20, 0, 40, 1, 0, 0 - playsewithpan SE_M_BUBBLE3, 192 + playsewithpan SE_M_BUBBLE3, SOUND_PAN_ATTACKER delay 5 createsprite gAcidPoisonBubbleSpriteTemplate, ANIM_TARGET, 2, 20, 0, 40, 1, 24, 0 - playsewithpan SE_M_BUBBLE3, 192 + playsewithpan SE_M_BUBBLE3, SOUND_PAN_ATTACKER delay 5 createsprite gAcidPoisonBubbleSpriteTemplate, ANIM_TARGET, 2, 20, 0, 40, 1, -24, 0 - playsewithpan SE_M_BUBBLE3, 192 + playsewithpan SE_M_BUBBLE3, SOUND_PAN_ATTACKER delay 15 - createvisualtask AnimTask_ShakeMon2, 5, 1, 2, 0, 10, 1 - createvisualtask AnimTask_ShakeMon2, 5, 3, 2, 0, 10, 1 - createvisualtask AnimTask_CurseBlendEffect, 2, 20, 2, 2, 0, 12, 31774 + createvisualtask AnimTask_ShakeMon2, 5, ANIM_TARGET, 2, 0, 10, 1 + createvisualtask AnimTask_ShakeMon2, 5, ANIM_DEF_PARTNER, 2, 0, 10, 1 + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_DEF_SIDE, 2, 2, 0, 12, RGB(30, 0, 31) createsprite gAcidPoisonDropletSpriteTemplate, ANIM_TARGET, 2, 0, -22, 0, 15, 55 - playsewithpan SE_M_BUBBLE, 63 + playsewithpan SE_M_BUBBLE, SOUND_PAN_TARGET delay 10 createsprite gAcidPoisonDropletSpriteTemplate, ANIM_TARGET, 2, -26, -24, 0, 15, 55 - playsewithpan SE_M_BUBBLE, 63 + playsewithpan SE_M_BUBBLE, SOUND_PAN_TARGET delay 10 createsprite gAcidPoisonDropletSpriteTemplate, ANIM_TARGET, 2, 15, -27, 0, 15, 50 - playsewithpan SE_M_BUBBLE, 63 + playsewithpan SE_M_BUBBLE, SOUND_PAN_TARGET delay 10 createsprite gAcidPoisonDropletSpriteTemplate, ANIM_TARGET, 2, -15, -17, 0, 10, 45 - playsewithpan SE_M_BUBBLE, 63 + playsewithpan SE_M_BUBBLE, SOUND_PAN_TARGET delay 10 createsprite gAcidPoisonDropletSpriteTemplate, ANIM_TARGET, 2, 27, -22, 0, 15, 50 - playsewithpan SE_M_BUBBLE, 63 + playsewithpan SE_M_BUBBLE, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_DEF_PARTNER end -Move_BONEMERANG:: +Move_BONEMERANG: loadspritegfx ANIM_TAG_BONE loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER - monbgprio_28 1 + splitbgprio ANIM_TARGET setalpha 12, 8 - playsewithpan SE_M_BONEMERANG, 192 + playsewithpan SE_M_BONEMERANG, SOUND_PAN_ATTACKER createsprite gBonemerangSpriteTemplate, ANIM_ATTACKER, 2 delay 20 - playsewithpan SE_M_HORN_ATTACK, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 1 - createvisualtask AnimTask_ShakeMon, 5, 1, 5, 0, 5, 1 + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 1 + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 5, 0, 5, 1 delay 17 - playsewithpan SE_M_VITAL_THROW, 192 + playsewithpan SE_M_VITAL_THROW, SOUND_PAN_ATTACKER createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 6, -4 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff end -Move_BONE_CLUB:: +Move_BONE_CLUB: loadspritegfx ANIM_TAG_BONE loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER - monbgprio_28 1 + splitbgprio ANIM_TARGET setalpha 12, 8 - playsewithpan SE_M_BONEMERANG, 63 + playsewithpan SE_M_BONEMERANG, SOUND_PAN_TARGET createsprite gSpinningBoneSpriteTemplate, ANIM_ATTACKER, 2, -42, -25, 0, 0, 15 delay 12 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 1 - createvisualtask AnimTask_ShakeMon, 5, 1, 0, 5, 5, 1 - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 7, 5, 1, 0, 10, 0, 0 - playsewithpan SE_M_VITAL_THROW2, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 1 + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 5, 5, 1 + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG | F_PAL_ATTACKER | F_PAL_TARGET, 5, 1, RGB_BLACK, 10, RGB_BLACK, 0 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff end -Move_BONE_RUSH:: +Move_BONE_RUSH: loadspritegfx ANIM_TAG_BONE loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER setalpha 12, 8 - playsewithpan SE_M_BONEMERANG, 63 + playsewithpan SE_M_BONEMERANG, SOUND_PAN_TARGET createsprite gSpinningBoneSpriteTemplate, ANIM_ATTACKER, 2, -42, -25, 0, 0, 15 delay 12 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 2 - createvisualtask AnimTask_ShakeMon, 5, 1, 0, 3, 5, 1 - playsewithpan SE_M_HORN_ATTACK, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 2 + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 3, 5, 1 + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff end -Move_SPIKES:: +Move_SPIKES: loadspritegfx ANIM_TAG_SPIKES monbg ANIM_DEF_PARTNER - playsewithpan SE_M_JUMP_KICK, 192 - waitplaysewithpan SE_M_HORN_ATTACK, 63, 28 + playsewithpan SE_M_JUMP_KICK, SOUND_PAN_ATTACKER + waitplaysewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET, 28 createsprite gSpikesSpriteTemplate, ANIM_TARGET, 2, 20, 0, 0, 24, 30 delay 10 - playsewithpan SE_M_JUMP_KICK, 192 - waitplaysewithpan SE_M_HORN_ATTACK, 63, 28 + playsewithpan SE_M_JUMP_KICK, SOUND_PAN_ATTACKER + waitplaysewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET, 28 createsprite gSpikesSpriteTemplate, ANIM_TARGET, 2, 20, 0, -24, 24, 30 delay 10 - waitplaysewithpan SE_M_HORN_ATTACK, 63, 28 + waitplaysewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET, 28 createsprite gSpikesSpriteTemplate, ANIM_TARGET, 2, 20, 0, 24, 24, 30 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER end -Move_MEGAHORN:: +Move_MEGAHORN: loadspritegfx ANIM_TAG_HORN_HIT_2 loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER - playsewithpan SE_M_DRAGON_RAGE, 192 + playsewithpan SE_M_DRAGON_RAGE, SOUND_PAN_ATTACKER jumpifcontest MegahornInContest - fadetobg 7 + fadetobg BG_DRILL waitbgfadeout createvisualtask AnimTask_StartSlidingBg, 5, -2304, 768, 1, -1 -MegahornContinue:: +MegahornContinue: waitbgfadein setalpha 12, 8 - createvisualtask AnimTask_ShakeMon, 5, 0, 2, 0, 15, 1 + createvisualtask AnimTask_ShakeMon, 5, ANIM_ATTACKER, 2, 0, 15, 1 waitforvisualfinish delay 10 createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 0, 24, 0, 0, 6 delay 3 createsprite gMegahornHornSpriteTemplate, ANIM_ATTACKER, 3, -42, 25, 0, 0, 6 delay 4 - playsewithpan SE_M_VICEGRIP, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 0 + playsewithpan SE_M_VICEGRIP, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 0 createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 1, -16, 4, 1, 4 waitforvisualfinish - createvisualtask AnimTask_ShakeMonInPlace, 2, 1, -4, 1, 12, 1 - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 7, 5, 1, RGB_WHITE, 10, 0, 0 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_TARGET, -4, 1, 12, 1 + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG | F_PAL_ATTACKER | F_PAL_TARGET, 5, 1, RGB_WHITE, 10, RGB_BLACK, 0 delay 10 createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 11 delay 3 createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 1, 0, 7 waitforvisualfinish - waitforvisualfinish + waitforvisualfinish @ Redundant clearmonbg ANIM_DEF_PARTNER blendoff restorebg waitbgfadeout - setarg 7, 65535 + setarg 7, 0xFFFF waitbgfadein end -MegahornInContest:: - fadetobg 8 +MegahornInContest: + fadetobg BG_DRILL_CONTESTS waitbgfadeout createvisualtask AnimTask_StartSlidingBg, 5, 2304, 768, 0, -1 goto MegahornContinue -Move_GUST:: +Move_GUST: loadspritegfx ANIM_TAG_GUST loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER - monbgprio_28 1 + splitbgprio ANIM_TARGET setalpha 12, 8 - playsewithpan SE_M_GUST, 63 + playsewithpan SE_M_GUST, SOUND_PAN_TARGET createsprite gEllipticalGustSpriteTemplate, ANIM_ATTACKER, 2, 0, -16 createvisualtask AnimTask_AnimateGustTornadoPalette, 5, 1, 70 waitforvisualfinish - createvisualtask AnimTask_ShakeMon2, 5, 1, 1, 0, 7, 1 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 2 - playsewithpan SE_M_GUST2, 63 + createvisualtask AnimTask_ShakeMon2, 5, ANIM_TARGET, 1, 0, 7, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 2 + playsewithpan SE_M_GUST2, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff end -Move_WING_ATTACK:: +Move_WING_ATTACK: loadspritegfx ANIM_TAG_GUST loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER - monbgprio_28 1 + splitbgprio ANIM_TARGET setalpha 12, 8 - loopsewithpan SE_M_WING_ATTACK, 192, 20, 2 + loopsewithpan SE_M_WING_ATTACK, SOUND_PAN_ATTACKER, 20, 2 createvisualtask AnimTask_TranslateMonElliptical, 2, 0, 12, 4, 1, 4 createvisualtask AnimTask_AnimateGustTornadoPalette, 5, 1, 70 createsprite gGustToTargetSpriteTemplate, ANIM_ATTACKER, 2, -25, 0, 0, 0, 20 @@ -6302,9 +6287,9 @@ Move_WING_ATTACK:: delay 24 createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 0, 24, 0, 0, 9 delay 17 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 16, 0, 1, 1 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -16, 0, 1, 1 - loopsewithpan SE_M_DOUBLE_SLAP, 63, 5, 2 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 16, 0, ANIM_TARGET, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -16, 0, ANIM_TARGET, 1 + loopsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET, 5, 2 waitforvisualfinish createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 11 waitforvisualfinish @@ -6312,30 +6297,30 @@ Move_WING_ATTACK:: blendoff end -Move_PECK:: +Move_PECK: loadspritegfx ANIM_TAG_IMPACT - playsewithpan SE_M_HORN_ATTACK, 63 - createvisualtask AnimTask_RotateMonToSideAndRestore, 2, 3, -768, 1, 2 - createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, -12, 0, 1, 3 + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_TARGET + createvisualtask AnimTask_RotateMonToSideAndRestore, 2, 3, -768, ANIM_TARGET, 2 + createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, -12, 0, ANIM_TARGET, 3 waitforvisualfinish end -Move_AEROBLAST:: +Move_AEROBLAST: loadspritegfx ANIM_TAG_AIR_WAVE_2 loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER call SetSkyBg - monbgprio_28 1 + splitbgprio ANIM_TARGET setalpha 12, 8 call AeroblastBeam - createvisualtask AnimTask_ShakeMon, 5, 1, 5, 0, 50, 1 + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 5, 0, 50, 1 call AeroblastBeam call AeroblastBeam call AeroblastBeam call AeroblastBeam waitforvisualfinish - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 0 - playsewithpan SE_M_RAZOR_WIND, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 0 + playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff @@ -6343,106 +6328,106 @@ Move_AEROBLAST:: call UnsetSkyBg end -AeroblastBeam:: - playsewithpan SE_M_JUMP_KICK, 192 +AeroblastBeam: + playsewithpan SE_M_JUMP_KICK, SOUND_PAN_ATTACKER createsprite gAirWaveCrescentSpriteTemplate, ANIM_ATTACKER, 2, 14, -12, 0, -12, 15, 0, 0 createsprite gAirWaveCrescentSpriteTemplate, ANIM_ATTACKER, 2, 26, 8, 12, 8, 15, 0, 0 delay 3 - playsewithpan SE_M_JUMP_KICK, 192 + playsewithpan SE_M_JUMP_KICK, SOUND_PAN_ATTACKER createsprite gAirWaveCrescentSpriteTemplate, ANIM_ATTACKER, 2, 14, -12, 0, -12, 15, 1, 0 createsprite gAirWaveCrescentSpriteTemplate, ANIM_ATTACKER, 2, 26, 8, 12, 8, 15, 1, 0 delay 3 - playsewithpan SE_M_JUMP_KICK, 192 + playsewithpan SE_M_JUMP_KICK, SOUND_PAN_ATTACKER createsprite gAirWaveCrescentSpriteTemplate, ANIM_ATTACKER, 2, 14, -12, 0, -12, 15, 2, 0 createsprite gAirWaveCrescentSpriteTemplate, ANIM_ATTACKER, 2, 26, 8, 12, 8, 15, 2, 0 delay 3 - playsewithpan SE_M_JUMP_KICK, 192 + playsewithpan SE_M_JUMP_KICK, SOUND_PAN_ATTACKER createsprite gAirWaveCrescentSpriteTemplate, ANIM_ATTACKER, 2, 14, -12, 0, -12, 15, 3, 0 createsprite gAirWaveCrescentSpriteTemplate, ANIM_ATTACKER, 2, 26, 8, 12, 8, 15, 3, 0 delay 3 return -Move_WATER_GUN:: +Move_WATER_GUN: loadspritegfx ANIM_TAG_SMALL_BUBBLES loadspritegfx ANIM_TAG_WATER_IMPACT monbg ANIM_DEF_PARTNER - monbgprio_28 1 + splitbgprio ANIM_TARGET setalpha 12, 8 createsprite gWaterGunProjectileSpriteTemplate, ANIM_ATTACKER, 2, 20, 0, 0, 0, 40, -25 - playsewithpan SE_M_BUBBLE, 192 + playsewithpan SE_M_BUBBLE, SOUND_PAN_ATTACKER waitforvisualfinish - createvisualtask AnimTask_ShakeMon2, 5, 1, 1, 0, 8, 1 - createsprite gWaterHitSplatSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, 1, 2 + createvisualtask AnimTask_ShakeMon2, 5, ANIM_TARGET, 1, 0, 8, 1 + createsprite gWaterHitSplatSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, ANIM_TARGET, 2 createsprite gWaterGunDropletSpriteTemplate, ANIM_ATTACKER, 2, 0, -15, 0, 15, 55 - playsewithpan SE_M_CRABHAMMER, 63 + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_TARGET delay 10 createsprite gWaterGunDropletSpriteTemplate, ANIM_ATTACKER, 2, 15, -20, 0, 15, 50 - playsewithpan SE_M_CRABHAMMER, 63 + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_TARGET delay 10 createsprite gWaterGunDropletSpriteTemplate, ANIM_ATTACKER, 2, -15, -10, 0, 10, 45 - playsewithpan SE_M_CRABHAMMER, 63 + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff end -Move_CRABHAMMER:: +Move_CRABHAMMER: loadspritegfx ANIM_TAG_ICE_CRYSTALS loadspritegfx ANIM_TAG_WATER_IMPACT monbg ANIM_DEF_PARTNER setalpha 12, 8 - createsprite gWaterHitSplatSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, 1, 0 - playsewithpan SE_M_VITAL_THROW2, 63 + createsprite gWaterHitSplatSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, ANIM_TARGET, 0 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET delay 1 - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 1, 32429, 10, 0, 0 + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG | F_PAL_BATTLERS, 3, 1, RGB(13, 21, 31), 10, RGB_BLACK, 0 createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 1, -24, 0, 0, 4 waitforvisualfinish delay 8 waitforvisualfinish createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 1, 0, 4 waitforvisualfinish - loopsewithpan SE_M_CRABHAMMER, 63, 20, 3 - createvisualtask AnimTask_ShakeMon, 5, 1, 0, 4, 8, 1 - createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, 10, 10, 20, 1 + loopsewithpan SE_M_CRABHAMMER, SOUND_PAN_TARGET, 20, 3 + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 4, 8, 1 + createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, 10, 10, 20, ANIM_TARGET delay 4 - createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, 20, -20, 20, 1 + createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, 20, -20, 20, ANIM_TARGET delay 4 - createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, -15, 15, 20, 1 + createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, -15, 15, 20, ANIM_TARGET delay 4 - createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 20, 1 + createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 20, ANIM_TARGET delay 4 - createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, -10, -20, 20, 1 + createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, -10, -20, 20, ANIM_TARGET delay 4 - createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, 16, -8, 20, 1 + createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, 16, -8, 20, ANIM_TARGET delay 4 - createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, 5, 8, 20, 1 + createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, 5, 8, 20, ANIM_TARGET delay 4 - createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, -16, 0, 20, 1 + createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, -16, 0, 20, ANIM_TARGET waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff end -Move_SURF:: - createvisualtask AnimTask_CreateSurfWave, 2, 0 +Move_SURF: + createvisualtask AnimTask_CreateSurfWave, 2, FALSE delay 24 - panse_1B SE_M_SURF, 192, 63, 2, 0 + panse SE_M_SURF, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 waitforvisualfinish end -Move_FLAMETHROWER:: +Move_FLAMETHROWER: loadspritegfx ANIM_TAG_SMALL_EMBER monbg ANIM_DEF_PARTNER - monbgprio_28 1 + splitbgprio ANIM_TARGET setalpha 12, 8 - createvisualtask AnimTask_ShakeMon, 5, 0, 0, 2, 46, 1 + createvisualtask AnimTask_ShakeMon, 5, ANIM_ATTACKER, 0, 2, 46, 1 delay 6 createvisualtask AnimTask_StartSinAnimTimer, 5, 100 - panse_1B SE_M_FLAMETHROWER, 192, 63, 2, 0 + panse SE_M_FLAMETHROWER, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 call FlamethrowerCreateFlames call FlamethrowerCreateFlames call FlamethrowerCreateFlames - createvisualtask AnimTask_ShakeMon, 5, 1, 3, 0, 43, 1 + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 3, 0, 43, 1 call FlamethrowerCreateFlames call FlamethrowerCreateFlames call FlamethrowerCreateFlames @@ -6456,17 +6441,18 @@ Move_FLAMETHROWER:: blendoff end -FlamethrowerCreateFlames:: +FlamethrowerCreateFlames: createsprite gFlamethrowerFlameSpriteTemplate, ANIM_ATTACKER, 3, 10, 10, 0, 16 delay 2 createsprite gFlamethrowerFlameSpriteTemplate, ANIM_ATTACKER, 3, 10, 10, 0, 16 delay 2 return -Move_SANDSTORM:: +@ Also used by Sandstorm weather +Move_SANDSTORM: loadspritegfx ANIM_TAG_FLYING_DIRT playsewithpan SE_M_SANDSTORM, 0 - createvisualtask AnimTask_LoadSandstormBackground, 5, 0 + createvisualtask AnimTask_LoadSandstormBackground, 5, FALSE delay 16 createsprite gFlyingSandCrescentSpriteTemplate, ANIM_ATTACKER, 40, 10, 2304, 96, 0 delay 10 @@ -6483,146 +6469,147 @@ Move_SANDSTORM:: createsprite gFlyingSandCrescentSpriteTemplate, ANIM_ATTACKER, 40, 60, 2560, 96, 0 end -Move_WHIRLPOOL:: +Move_WHIRLPOOL: loadspritegfx ANIM_TAG_WATER_ORB monbg ANIM_DEF_PARTNER - monbgprio_28 1 + splitbgprio ANIM_TARGET setalpha 12, 8 delay 0 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 4, 2, 0, 7, 23968 - playsewithpan SE_M_WHIRLPOOL, 63 - createvisualtask AnimTask_ShakeMon, 5, 1, 0, 2, 50, 1 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, F_PAL_TARGET, 2, 0, 7, RGB(0, 13, 23) + playsewithpan SE_M_WHIRLPOOL, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 2, 50, 1 call WhirlpoolEffect call WhirlpoolEffect call WhirlpoolEffect delay 12 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 4, 2, 7, 0, 23968 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, F_PAL_TARGET, 2, 7, 0, RGB(0, 13, 23) waitforvisualfinish clearmonbg ANIM_DEF_PARTNER end -WhirlpoolEffect:: - createsprite gWhirlpoolSpriteTemplate, ANIM_TARGET, 2, 0, 28, 384, 50, 8, 50, 1 +WhirlpoolEffect: + createsprite gWhirlpoolSpriteTemplate, ANIM_TARGET, 2, 0, 28, 384, 50, 8, 50, ANIM_TARGET delay 2 - createsprite gWhirlpoolSpriteTemplate, ANIM_TARGET, 2, 0, 32, 240, 40, 11, -46, 1 + createsprite gWhirlpoolSpriteTemplate, ANIM_TARGET, 2, 0, 32, 240, 40, 11, -46, ANIM_TARGET delay 2 - createsprite gWhirlpoolSpriteTemplate, ANIM_TARGET, 2, 0, 33, 416, 40, 4, 42, 1 + createsprite gWhirlpoolSpriteTemplate, ANIM_TARGET, 2, 0, 33, 416, 40, 4, 42, ANIM_TARGET delay 2 - createsprite gWhirlpoolSpriteTemplate, ANIM_TARGET, 2, 0, 31, 288, 45, 6, -42, 1 + createsprite gWhirlpoolSpriteTemplate, ANIM_TARGET, 2, 0, 31, 288, 45, 6, -42, ANIM_TARGET delay 2 - createsprite gWhirlpoolSpriteTemplate, ANIM_TARGET, 2, 0, 28, 448, 45, 11, 46, 1 + createsprite gWhirlpoolSpriteTemplate, ANIM_TARGET, 2, 0, 28, 448, 45, 11, 46, ANIM_TARGET delay 2 - createsprite gWhirlpoolSpriteTemplate, ANIM_TARGET, 2, 0, 33, 464, 50, 10, -50, 1 + createsprite gWhirlpoolSpriteTemplate, ANIM_TARGET, 2, 0, 33, 464, 50, 10, -50, ANIM_TARGET delay 2 return -Move_FLY:: +Move_FLY: loadspritegfx ANIM_TAG_ROUND_SHADOW loadspritegfx ANIM_TAG_IMPACT choosetwoturnanim FlySetUp, FlyUnleash -FlyEnd:: + +FlyEnd: waitforvisualfinish end -FlySetUp:: - playsewithpan SE_M_FLY, 192 +FlySetUp: + playsewithpan SE_M_FLY, SOUND_PAN_ATTACKER createsprite gFlyBallUpSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 13, 336 goto FlyEnd -FlyUnleash:: +FlyUnleash: monbg ANIM_DEF_PARTNER setalpha 12, 8 - playsewithpan SE_M_DOUBLE_TEAM, 192 + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER createsprite gFlyBallAttackSpriteTemplate, ANIM_ATTACKER, 2, 20 delay 20 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 0 - createvisualtask AnimTask_ShakeMon, 5, 1, 6, 0, 8, 1 - playsewithpan SE_M_RAZOR_WIND, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 0 + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 6, 0, 8, 1 + playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff goto FlyEnd -Move_BOUNCE:: +Move_BOUNCE: loadspritegfx ANIM_TAG_ROUND_SHADOW loadspritegfx ANIM_TAG_IMPACT choosetwoturnanim BounceSetUp, BounceUnleash -BounceEnd:: +BounceEnd: end -BounceSetUp:: - playsewithpan SE_M_TELEPORT, 192 +BounceSetUp: + playsewithpan SE_M_TELEPORT, SOUND_PAN_ATTACKER createsprite gBounceBallShrinkSpriteTemplate, ANIM_ATTACKER, 2, 0, 0 goto BounceEnd -BounceUnleash:: +BounceUnleash: monbg ANIM_DEF_PARTNER setalpha 12, 8 - playsewithpan SE_M_SWAGGER, 63 + playsewithpan SE_M_SWAGGER, SOUND_PAN_TARGET createsprite gBounceBallLandSpriteTemplate, ANIM_TARGET, 3 delay 7 - playsewithpan SE_M_MEGA_KICK2, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, 1, 0 - createvisualtask AnimTask_ShakeMon, 5, 1, 0, 5, 11, 1 + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, ANIM_TARGET, 0 + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 5, 11, 1 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff goto BounceEnd -Move_KARATE_CHOP:: +Move_KARATE_CHOP: loadspritegfx ANIM_TAG_HANDS_AND_FEET loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER - monbgprio_28 1 + splitbgprio ANIM_TARGET setalpha 12, 8 - playsewithpan SE_M_DOUBLE_TEAM, 63 + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_TARGET createsprite gKarateChopSpriteTemplate, ANIM_ATTACKER, 2, -16, 0, 0, 0, 10, 1, 3, 0 waitforvisualfinish - playsewithpan SE_M_COMET_PUNCH, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1, 2 - createvisualtask AnimTask_ShakeMon, 5, 1, 4, 0, 6, 1 + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, ANIM_TARGET, 2 + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 4, 0, 6, 1 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff end -Move_CROSS_CHOP:: +Move_CROSS_CHOP: loadspritegfx ANIM_TAG_HANDS_AND_FEET loadspritegfx ANIM_TAG_CROSS_IMPACT monbg ANIM_DEF_PARTNER setalpha 12, 8 - playsewithpan SE_M_MEGA_KICK, 63 + playsewithpan SE_M_MEGA_KICK, SOUND_PAN_TARGET createsprite gCrossChopHandSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 0 createsprite gCrossChopHandSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1 delay 40 - playsewithpan SE_M_RAZOR_WIND, 63 - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 1, RGB_WHITE, 10, 0, 10 + playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG | F_PAL_BATTLERS, 3, 1, RGB_WHITE, 10, RGB_BLACK, 10 createsprite gCrossImpactSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1, 20 - createvisualtask AnimTask_ShakeMon, 5, 1, 7, 0, 9, 1 + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 7, 0, 9, 1 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff end -Move_JUMP_KICK:: +Move_JUMP_KICK: loadspritegfx ANIM_TAG_HANDS_AND_FEET loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER setalpha 12, 8 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 4, 4 delay 3 - createsprite gJumpKickSpriteTemplate, ANIM_ATTACKER, 2, -16, 8, 0, 0, 10, 1, 1, 1 - playsewithpan SE_M_JUMP_KICK, 63 + createsprite gJumpKickSpriteTemplate, ANIM_ATTACKER, 2, -16, 8, 0, 0, 10, ANIM_TARGET, 1, 1 + playsewithpan SE_M_JUMP_KICK, SOUND_PAN_TARGET waitforvisualfinish - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 1, 0, 0, 1, 1 - createvisualtask AnimTask_ShakeMon, 5, 1, 5, 0, 7, 1 - playsewithpan SE_M_COMET_PUNCH, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 1, 0, 0, ANIM_TARGET, 1 + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 5, 0, 7, 1 + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff end -Move_HI_JUMP_KICK:: +Move_HI_JUMP_KICK: loadspritegfx ANIM_TAG_HANDS_AND_FEET loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER @@ -6632,14 +6619,14 @@ Move_HI_JUMP_KICK:: delay 10 createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 3 delay 2 - createsprite gJumpKickSpriteTemplate, ANIM_ATTACKER, 2, -16, 8, 0, 0, 10, 1, 1, 1 - playsewithpan SE_M_JUMP_KICK, 63 + createsprite gJumpKickSpriteTemplate, ANIM_ATTACKER, 2, -16, 8, 0, 0, 10, ANIM_TARGET, 1, 1 + playsewithpan SE_M_JUMP_KICK, SOUND_PAN_TARGET waitforvisualfinish - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 1 - playsewithpan SE_M_VITAL_THROW2, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 1 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 1, -28, 0, 0, 3 delay 3 - createvisualtask AnimTask_ShakeMonInPlace, 2, 1, 3, 0, 11, 1 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_TARGET, 3, 0, 11, 1 waitforvisualfinish delay 5 createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 1, 0, 6 @@ -6648,54 +6635,55 @@ Move_HI_JUMP_KICK:: blendoff end -Move_DOUBLE_KICK:: +Move_DOUBLE_KICK: loadspritegfx ANIM_TAG_HANDS_AND_FEET loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER setalpha 12, 8 createsprite gFistFootRandomPosSpriteTemplate, ANIM_ATTACKER, 3, 1, 20, 1 - createvisualtask AnimTask_ShakeMon, 5, 1, 4, 0, 6, 1 - playsewithpan SE_M_VITAL_THROW2, 63 - waitforvisualfinish + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 4, 0, 6, 1 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET waitforvisualfinish + waitforvisualfinish @ Redundant clearmonbg ANIM_DEF_PARTNER blendoff end -Move_TRIPLE_KICK:: +Move_TRIPLE_KICK: loadspritegfx ANIM_TAG_HANDS_AND_FEET loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER setalpha 12, 8 - playsewithpan SE_M_VITAL_THROW2, 63 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET jumpifmoveturn 0, TripleKickLeft jumpifmoveturn 1, TripleKickRight goto TripleKickCenter -TripleKickContinue:: + +TripleKickContinue: waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff end -TripleKickLeft:: +TripleKickLeft: createsprite gFistFootSpriteTemplate, ANIM_TARGET, 4, -16, -8, 20, 1, 1 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, -16, -16, 1, 2 - createvisualtask AnimTask_ShakeMon, 5, 1, 4, 0, 6, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, -16, -16, ANIM_TARGET, 2 + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 4, 0, 6, 1 goto TripleKickContinue -TripleKickRight:: +TripleKickRight: createsprite gFistFootSpriteTemplate, ANIM_TARGET, 4, 8, 8, 20, 1, 1 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 8, 0, 1, 2 - createvisualtask AnimTask_ShakeMon, 5, 1, 4, 0, 6, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 8, 0, ANIM_TARGET, 2 + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 4, 0, 6, 1 goto TripleKickContinue -TripleKickCenter:: +TripleKickCenter: createsprite gFistFootSpriteTemplate, ANIM_TARGET, 4, 0, 0, 20, 1, 1 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, -8, 1, 1 - createvisualtask AnimTask_ShakeMon, 5, 1, 6, 0, 8, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, -8, ANIM_TARGET, 1 + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 6, 0, 8, 1 goto TripleKickContinue -Move_DYNAMIC_PUNCH:: +Move_DYNAMIC_PUNCH: loadspritegfx ANIM_TAG_HANDS_AND_FEET loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_EXPLOSION @@ -6703,55 +6691,55 @@ Move_DYNAMIC_PUNCH:: delay 1 monbg ANIM_DEF_PARTNER setalpha 12, 8 - playsewithpan SE_M_VITAL_THROW2, 63 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET createsprite gFistFootSpriteTemplate, ANIM_TARGET, 3, 0, 0, 20, 1, 0 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, 1, 0 - createvisualtask AnimTask_ShakeMon, 5, 1, 5, 0, 7, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, ANIM_TARGET, 0 + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 5, 0, 7, 1 delay 1 waitsound - playsewithpan SE_M_SELF_DESTRUCT, 63 - createvisualtask AnimTask_ShakeMon2, 5, 1, 5, 0, 28, 1 + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMon2, 5, ANIM_TARGET, 5, 0, 28, 1 createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1, 1 delay 6 - playsewithpan SE_M_SELF_DESTRUCT, 63 + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, 24, -24, 1, 1 delay 6 - playsewithpan SE_M_SELF_DESTRUCT, 63 + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, -16, 16, 1, 1 delay 6 - playsewithpan SE_M_SELF_DESTRUCT, 63 + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, -24, -12, 1, 1 delay 6 - playsewithpan SE_M_SELF_DESTRUCT, 63 + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, 16, 16, 1, 1 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff end -Move_COUNTER:: +Move_COUNTER: loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_HANDS_AND_FEET monbg ANIM_DEF_PARTNER setalpha 12, 8 - createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, 0, 18, 6, 1, 4 - playsewithpan SE_M_VITAL_THROW, 192 + createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_ATTACKER, 18, 6, 1, 4 + playsewithpan SE_M_VITAL_THROW, SOUND_PAN_ATTACKER waitforvisualfinish createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 0, 20, 0, 0, 4 delay 4 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -15, 18, 1, 0 - playsewithpan SE_M_VITAL_THROW2, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -15, 18, ANIM_TARGET, 0 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET delay 1 - createvisualtask AnimTask_ShakeMon, 2, 1, 5, 0, 25, 1 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 5, 0, 25, 1 createsprite gFistFootSpriteTemplate, ANIM_ATTACKER, 3, -15, 18, 8, 1, 0 delay 3 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, -4, 1, 0 - playsewithpan SE_M_VITAL_THROW2, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, -4, ANIM_TARGET, 0 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET delay 1 createsprite gFistFootSpriteTemplate, ANIM_ATTACKER, 3, 0, -4, 8, 1, 0 delay 3 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 15, 9, 1, 0 - playsewithpan SE_M_VITAL_THROW2, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 15, 9, ANIM_TARGET, 0 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET delay 1 createsprite gFistFootSpriteTemplate, ANIM_ATTACKER, 3, 15, 9, 8, 1, 0 delay 5 @@ -6761,17 +6749,17 @@ Move_COUNTER:: blendoff end -Move_VITAL_THROW:: +Move_VITAL_THROW: loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER setalpha 12, 8 - playsewithpan SE_M_VITAL_THROW, 192 - createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, 0, 12, 4, 1, 2 + playsewithpan SE_M_VITAL_THROW, SOUND_PAN_ATTACKER + createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_ATTACKER, 12, 4, 1, 2 waitforvisualfinish createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 0, 20, 0, 0, 4 delay 2 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1, 1 - playsewithpan SE_M_VITAL_THROW2, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, ANIM_TARGET, 1 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET delay 1 createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 1, -24, 0, 0, 4 waitforvisualfinish @@ -6784,19 +6772,19 @@ Move_VITAL_THROW:: blendoff end -Move_ROCK_SMASH:: +Move_ROCK_SMASH: loadspritegfx ANIM_TAG_ROCKS loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_HANDS_AND_FEET monbg ANIM_DEF_PARTNER setalpha 12, 8 delay 1 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, ANIM_TARGET, 1 createsprite gFistFootSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 8, 1, 0 - playsewithpan SE_M_VITAL_THROW2, 63 - createvisualtask AnimTask_ShakeMon, 2, 1, 3, 0, 5, 1 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 5, 1 waitforvisualfinish - playsewithpan SE_M_ROCK_THROW, 63 + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET createsprite gRockFragmentSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 20, 24, 14, 2 createsprite gRockFragmentSpriteTemplate, ANIM_ATTACKER, 2, 5, 0, -20, 24, 14, 1 createsprite gRockFragmentSpriteTemplate, ANIM_ATTACKER, 2, 0, 5, 20, -24, 14, 2 @@ -6805,26 +6793,26 @@ Move_ROCK_SMASH:: createsprite gRockFragmentSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 30, -18, 8, 2 createsprite gRockFragmentSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, -30, 18, 8, 2 createsprite gRockFragmentSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, -30, -18, 8, 2 - createvisualtask AnimTask_ShakeMon, 2, 1, 0, 3, 7, 1 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 3, 7, 1 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff end -Move_SUBMISSION:: +Move_SUBMISSION: loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER setalpha 12, 8 - playsewithpan SE_M_DOUBLE_TEAM, 192 - waitplaysewithpan SE_M_COMET_PUNCH, 63, 10 - waitplaysewithpan SE_M_DOUBLE_TEAM, 192, 20 - waitplaysewithpan SE_M_COMET_PUNCH, 63, 30 - waitplaysewithpan SE_M_DOUBLE_TEAM, 192, 40 - waitplaysewithpan SE_M_COMET_PUNCH, 63, 50 - waitplaysewithpan SE_M_DOUBLE_TEAM, 192, 60 - waitplaysewithpan SE_M_COMET_PUNCH, 63, 70 - waitplaysewithpan SE_M_DOUBLE_TEAM, 192, 80 - waitplaysewithpan SE_M_COMET_PUNCH, 63, 90 + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER + waitplaysewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET, 10 + waitplaysewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER, 20 + waitplaysewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET, 30 + waitplaysewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER, 40 + waitplaysewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET, 50 + waitplaysewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER, 60 + waitplaysewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET, 70 + waitplaysewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER, 80 + waitplaysewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET, 90 createvisualtask AnimTask_TranslateMonElliptical, 2, 0, -18, 6, 6, 4 createvisualtask AnimTask_TranslateMonElliptical, 2, 1, 18, 6, 6, 4 call SubmissionHit @@ -6835,43 +6823,44 @@ Move_SUBMISSION:: blendoff end -SubmissionHit:: - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, -12, 1, 1 +SubmissionHit: + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, -12, ANIM_TARGET, 1 delay 8 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, -12, 8, 1, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, -12, 8, ANIM_TARGET, 1 delay 8 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 12, 0, 1, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 12, 0, ANIM_TARGET, 1 delay 8 return -Move_SUNNY_DAY:: +@ Also used by Sunny weather +Move_SUNNY_DAY: loadspritegfx ANIM_TAG_SUNLIGHT monbg ANIM_ATK_PARTNER setalpha 13, 3 - createvisualtask AnimTask_BlendSelected, 10, 1 | (0xF << 7), 1, 0, 6, RGB_WHITE + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_BG | F_PAL_BATTLERS_2, 1, 0, 6, RGB_WHITE waitforvisualfinish - panse_26 SE_M_PETAL_DANCE, 192, 63, 1, 0 + panse_adjustnone SE_M_PETAL_DANCE, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +1, 0 call SunnyDayLightRay call SunnyDayLightRay call SunnyDayLightRay call SunnyDayLightRay waitforvisualfinish - createvisualtask AnimTask_BlendSelected, 10, 1 | (0xF << 7), 1, 6, 0, RGB_WHITE + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_BG | F_PAL_BATTLERS_2, 1, 6, 0, RGB_WHITE waitforvisualfinish clearmonbg ANIM_ATK_PARTNER blendoff end -SunnyDayLightRay:: +SunnyDayLightRay: createsprite gSunlightRaySpriteTemplate, ANIM_ATTACKER, 40 delay 6 return -Move_COTTON_SPORE:: +Move_COTTON_SPORE: loadspritegfx ANIM_TAG_SPORE monbg ANIM_DEF_PARTNER - monbgprio_28 1 - loopsewithpan SE_M_POISON_POWDER, 63, 18, 10 + splitbgprio ANIM_TARGET + loopsewithpan SE_M_POISON_POWDER, SOUND_PAN_TARGET, 18, 10 call CreateCottonSpores call CreateCottonSpores call CreateCottonSpores @@ -6879,7 +6868,7 @@ Move_COTTON_SPORE:: clearmonbg ANIM_DEF_PARTNER end -CreateCottonSpores:: +CreateCottonSpores: createsprite gSporeParticleSpriteTemplate, ANIM_ATTACKER, 2, 0, -20, 85, 80, 0 delay 12 createsprite gSporeParticleSpriteTemplate, ANIM_ATTACKER, 2, 0, -10, 170, 80, 0 @@ -6888,12 +6877,12 @@ CreateCottonSpores:: delay 12 return -Move_SPORE:: +Move_SPORE: loadspritegfx ANIM_TAG_SPORE monbg ANIM_DEF_PARTNER setalpha 12, 8 - createvisualtask AnimTask_SporeDoubleBattle, 2, - loopsewithpan SE_M_POISON_POWDER, 63, 16, 11 + createvisualtask AnimTask_SporeDoubleBattle, 2 + loopsewithpan SE_M_POISON_POWDER, SOUND_PAN_TARGET, 16, 11 call CreateSpore call CreateSpore call CreateSpore @@ -6903,7 +6892,7 @@ Move_SPORE:: blendoff end -CreateSpore:: +CreateSpore: createsprite gSporeParticleSpriteTemplate, ANIM_TARGET, 2, 0, -20, 85, 80, 1 delay 12 createsprite gSporeParticleSpriteTemplate, ANIM_TARGET, 2, 0, -10, 170, 80, 1 @@ -6912,13 +6901,13 @@ CreateSpore:: delay 12 return -Move_PETAL_DANCE:: +Move_PETAL_DANCE: loadspritegfx ANIM_TAG_FLOWER loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER setalpha 12, 8 - playsewithpan SE_M_PETAL_DANCE, 192 - createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, 0, 12, 6, 6, 3 + playsewithpan SE_M_PETAL_DANCE, SOUND_PAN_ATTACKER + createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_ATTACKER, 12, 6, 6, 3 createsprite gPetalDanceBigFlowerSpriteTemplate, ANIM_ATTACKER, 2, 0, -24, 8, 140 createsprite gPetalDanceSmallFlowerSpriteTemplate, ANIM_ATTACKER, 2, 16, -24, 8, 100 createsprite gPetalDanceSmallFlowerSpriteTemplate, ANIM_ATTACKER, 2, -16, -24, 8, 100 @@ -6939,9 +6928,9 @@ Move_PETAL_DANCE:: waitforvisualfinish createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 0, 24, 0, 0, 5 delay 3 - playsewithpan SE_M_MEGA_KICK2, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1, 0 - createvisualtask AnimTask_ShakeMon, 2, 1, 6, 0, 8, 1 + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, ANIM_TARGET, 0 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 6, 0, 8, 1 waitforvisualfinish delay 8 createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 7 @@ -6950,14 +6939,14 @@ Move_PETAL_DANCE:: blendoff end -Move_RAZOR_LEAF:: +Move_RAZOR_LEAF: loadspritegfx ANIM_TAG_LEAF loadspritegfx ANIM_TAG_RAZOR_LEAF loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER setalpha 12, 8 delay 1 - loopsewithpan SE_M_POISON_POWDER, 192, 10, 5 + loopsewithpan SE_M_POISON_POWDER, SOUND_PAN_ATTACKER, 10, 5 createsprite gRazorLeafParticleSpriteTemplate, ANIM_ATTACKER, 2, -3, -2, 10 delay 2 createsprite gRazorLeafParticleSpriteTemplate, ANIM_ATTACKER, 2, -1, -1, 15 @@ -6978,19 +6967,22 @@ Move_RAZOR_LEAF:: delay 2 createsprite gRazorLeafParticleSpriteTemplate, ANIM_ATTACKER, 2, -3, -5, 8 delay 60 - playsewithpan SE_M_RAZOR_WIND2, 192 + playsewithpan SE_M_RAZOR_WIND2, SOUND_PAN_ATTACKER createsprite gRazorLeafCutterSpriteTemplate, ANIM_TARGET, 3, 20, -10, 20, 0, 22, 20, 1 createsprite gRazorLeafCutterSpriteTemplate, ANIM_TARGET, 3, 20, -10, 20, 0, 22, -20, 1 delay 20 - playsewithpan SE_M_RAZOR_WIND, 63 - createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 8, 1 - createvisualtask AnimTask_ShakeMon2, 2, 3, 2, 0, 8, 1 + playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 8, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_DEF_PARTNER, 2, 0, 8, 1 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff end -Move_ANCIENT_POWER:: +Move_NATURE_POWER: + @ No actual animation, uses the animation of a move from sNaturePowerMoves instead + +Move_ANCIENT_POWER: loadspritegfx ANIM_TAG_ROCKS loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER @@ -7002,8 +6994,8 @@ Move_ANCIENT_POWER:: createsprite gAncientPowerRockSpriteTemplate, ANIM_ATTACKER, 2, -20, 32, -48, 50, 2 createsprite gAncientPowerRockSpriteTemplate, ANIM_ATTACKER, 2, 20, 32, -28, 60, 1 createsprite gAncientPowerRockSpriteTemplate, ANIM_ATTACKER, 2, 0, 32, -28, 30, 4 - createvisualtask AnimTask_ShakeMon2, 2, 0, 1, 0, 30, 1 - playsewithpan SE_M_DRAGON_RAGE, 192 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_ATTACKER, 1, 0, 30, 1 + playsewithpan SE_M_DRAGON_RAGE, SOUND_PAN_ATTACKER delay 10 createsprite gAncientPowerRockSpriteTemplate, ANIM_ATTACKER, 2, 15, 32, -48, 25, 5 createsprite gAncientPowerRockSpriteTemplate, ANIM_ATTACKER, 2, -10, 32, -42, 30, 4 @@ -7013,9 +7005,9 @@ Move_ANCIENT_POWER:: waitforvisualfinish createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 0, 16, 0, 0, 4 delay 3 - playsewithpan SE_M_SELF_DESTRUCT, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1, 1 - createvisualtask AnimTask_ShakeMon2, 2, 1, 3, 0, 6, 1 + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, ANIM_TARGET, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 3, 0, 6, 1 waitforvisualfinish createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 7 waitforvisualfinish @@ -7023,13 +7015,13 @@ Move_ANCIENT_POWER:: blendoff end -Move_OCTAZOOKA:: +Move_OCTAZOOKA: loadspritegfx ANIM_TAG_GRAY_SMOKE loadspritegfx ANIM_TAG_BLACK_BALL - playsewithpan SE_M_MEGA_KICK2, 192 + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_ATTACKER createsprite gOctazookaBallSpriteTemplate, ANIM_TARGET, 2, 20, 0, 0, 0, 20, 0 waitforvisualfinish - playsewithpan SE_M_SELF_DESTRUCT, 63 + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET createsprite gOctazookaSmokeSpriteTemplate, ANIM_TARGET, 2, 8, 8, 1, 0 delay 2 createsprite gOctazookaSmokeSpriteTemplate, ANIM_TARGET, 2, -8, -8, 1, 0 @@ -7040,11 +7032,11 @@ Move_OCTAZOOKA:: waitforvisualfinish end -Move_MIST:: +Move_MIST: loadspritegfx ANIM_TAG_MIST_CLOUD monbg ANIM_ATK_PARTNER setalpha 12, 8 - loopsewithpan SE_M_MIST, 192, 20, 15 + loopsewithpan SE_M_MIST, SOUND_PAN_ATTACKER, 20, 15 call MistCloud call MistCloud call MistCloud @@ -7053,54 +7045,54 @@ Move_MIST:: call MistCloud call MistCloud delay 32 - createvisualtask AnimTask_CurseBlendEffect, 2, 10, 8, 2, 0, 14, RGB_WHITE + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_ATK_SIDE, 8, 2, 0, 14, RGB_WHITE waitforvisualfinish clearmonbg ANIM_ATK_PARTNER blendoff end -MistCloud:: +MistCloud: createsprite gMistCloudSpriteTemplate, ANIM_ATTACKER, 2, 0, -24, 48, 240, 0, 1 delay 7 return -Move_HAZE:: +Move_HAZE: waitforvisualfinish playsewithpan SE_M_HAZE, 0 - createvisualtask AnimTask_Haze1, 5, + createvisualtask AnimTask_HazeScrollingFog, 5 delay 30 - createvisualtask AnimTask_BlendSelected, 10, 0 | (0xF << 7), 2, 0, 16, RGB_BLACK + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_BATTLERS_2, 2, 0, 16, RGB_BLACK delay 90 - createvisualtask AnimTask_BlendSelected, 10, 0 | (0xF << 7), 1, 16, 0, RGB_BLACK + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_BATTLERS_2, 1, 16, 0, RGB_BLACK end -Move_FIRE_PUNCH:: +Move_FIRE_PUNCH: loadspritegfx ANIM_TAG_HANDS_AND_FEET loadspritegfx ANIM_TAG_SMALL_EMBER loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER setalpha 12, 8 - createvisualtask AnimTask_BlendSelected, 10, 4, 2, 0, 9, RGB(31, 0, 0) + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_TARGET, 2, 0, 9, RGB_RED createsprite gFireSpiralInwardSpriteTemplate, ANIM_TARGET, 1, 0 createsprite gFireSpiralInwardSpriteTemplate, ANIM_TARGET, 1, 64 createsprite gFireSpiralInwardSpriteTemplate, ANIM_TARGET, 1, 128 createsprite gFireSpiralInwardSpriteTemplate, ANIM_TARGET, 1, 196 - playsewithpan SE_M_FLAME_WHEEL, 63 + playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_TARGET waitforvisualfinish createsprite gFistFootSpriteTemplate, ANIM_TARGET, 3, 0, 0, 8, 1, 0 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, 1, 1 - createvisualtask AnimTask_ShakeMon, 2, 1, 0, 3, 15, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, ANIM_TARGET, 1 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 3, 15, 1 call FireSpreadEffect delay 4 - playsewithpan SE_M_FIRE_PUNCH, 63 + playsewithpan SE_M_FIRE_PUNCH, SOUND_PAN_TARGET waitforvisualfinish - createvisualtask AnimTask_BlendSelected, 10, 4, 0, 9, 0, RGB(31, 0, 0) + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_TARGET, 0, 9, 0, RGB_RED waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff end -FireSpreadEffect:: +FireSpreadEffect: createsprite gFireSpreadSpriteTemplate, ANIM_TARGET, 1, 0, 10, 192, 176, 40 createsprite gFireSpreadSpriteTemplate, ANIM_TARGET, 1, 0, 10, -192, 240, 40 createsprite gFireSpreadSpriteTemplate, ANIM_TARGET, 1, 0, 10, 192, -160, 40 @@ -7110,18 +7102,18 @@ FireSpreadEffect:: createsprite gFireSpreadSpriteTemplate, ANIM_TARGET, 1, 0, 10, 112, -128, 40 return -Move_LEER:: +Move_LEER: loadspritegfx ANIM_TAG_LEER monbg ANIM_ATTACKER - monbgprio_28 0 + splitbgprio ANIM_ATTACKER setalpha 8, 8 - playsewithpan SE_M_LEER, 192 + playsewithpan SE_M_LEER, SOUND_PAN_ATTACKER createsprite gLeerSpriteTemplate, ANIM_ATTACKER, 2, 24, -12 - createvisualtask AnimTask_ScaleMonAndRestore, 5, -5, -5, 10, 0, 1 + createvisualtask AnimTask_ScaleMonAndRestore, 5, -5, -5, 10, ANIM_ATTACKER, 1 waitforvisualfinish delay 10 - createvisualtask AnimTask_ShakeMon2, 2, 1, 1, 0, 9, 1 - createvisualtask AnimTask_ShakeMon2, 2, 3, 1, 0, 9, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 1, 0, 9, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_DEF_PARTNER, 1, 0, 9, 1 waitforvisualfinish clearmonbg ANIM_ATTACKER blendoff @@ -7129,20 +7121,20 @@ Move_LEER:: waitforvisualfinish end -Move_DREAM_EATER:: +Move_DREAM_EATER: loadspritegfx ANIM_TAG_ORBS loadspritegfx ANIM_TAG_BLUE_STAR monbg ANIM_DEF_PARTNER - monbgprio_2A 1 - playsewithpan SE_M_PSYBEAM, 192 + splitbgprio_foes ANIM_TARGET + playsewithpan SE_M_PSYBEAM, SOUND_PAN_ATTACKER call SetPsychicBackground setalpha 8, 8 - playsewithpan SE_M_MINIMIZE, 63 - createvisualtask AnimTask_ShakeMon, 2, 1, 5, 0, 15, 1 - createvisualtask AnimTask_ScaleMonAndRestore, 5, -6, -6, 15, 1, 1 + playsewithpan SE_M_MINIMIZE, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 5, 0, 15, 1 + createvisualtask AnimTask_ScaleMonAndRestore, 5, -6, -6, 15, ANIM_TARGET, 1 waitforvisualfinish setalpha 12, 8 - createvisualtask AnimTask_ShakeMon, 2, 1, 0, 2, 25, 1 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 2, 25, 1 call DreamEaterAbsorb waitforvisualfinish delay 15 @@ -7151,115 +7143,115 @@ Move_DREAM_EATER:: clearmonbg ANIM_DEF_PARTNER blendoff delay 1 - call UnsetPsychicBg + call UnsetPsychicBackground end -DreamEaterAbsorb:: - playsewithpan SE_M_SWAGGER, 63 +DreamEaterAbsorb: + playsewithpan SE_M_SWAGGER, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 5, -18, -40, 35 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, -10, 20, 20, 39 delay 4 - playsewithpan SE_M_SWAGGER, 63 + playsewithpan SE_M_SWAGGER, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 28, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, -5, -8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, -10, 20, 40, 39 delay 4 - playsewithpan SE_M_SWAGGER, 63 + playsewithpan SE_M_SWAGGER, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, -5, -8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, -5, 15, 16, 33 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, -5, -32, 26 delay 4 - playsewithpan SE_M_SWAGGER, 63 + playsewithpan SE_M_SWAGGER, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, -15, -16, 36 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, -5, -8, 26 delay 4 - playsewithpan SE_M_SWAGGER, 63 + playsewithpan SE_M_SWAGGER, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, -5, 15, 16, 33 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, -15, -16, 36 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 8, 26 delay 4 - playsewithpan SE_M_SWAGGER, 63 + playsewithpan SE_M_SWAGGER, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, -5, 15, 16, 33 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, -5, -40, 26 delay 4 - playsewithpan SE_M_SWAGGER, 63 + playsewithpan SE_M_SWAGGER, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, -5, 15, 36, 33 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, -5, -8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, -10, 20, 20, 39 delay 4 - playsewithpan SE_M_SWAGGER, 63 + playsewithpan SE_M_SWAGGER, SOUND_PAN_TARGET createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 5, 8, 26 createsprite gAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 3, 5, -18, -20, 35 delay 4 return -Move_POISON_GAS:: +Move_POISON_GAS: loadspritegfx ANIM_TAG_PURPLE_GAS_CLOUD loadspritegfx ANIM_TAG_POISON_BUBBLE delay 0 monbg ANIM_DEF_PARTNER - monbgprio_29 + splitbgprio_all setalpha 12, 8 delay 0 - playsewithpan SE_M_MIST, 192 + playsewithpan SE_M_MIST, SOUND_PAN_ATTACKER createsprite gPoisonGasCloudSpriteTemplate, ANIM_TARGET, 0, 64, 0, 0, -32, -6, 4192, 1072, 0 delay 4 - playsewithpan SE_M_MIST, 192 + playsewithpan SE_M_MIST, SOUND_PAN_ATTACKER createsprite gPoisonGasCloudSpriteTemplate, ANIM_TARGET, 0, 64, 0, 0, -32, -6, 4192, 1072, 0 delay 4 - playsewithpan SE_M_MIST, 192 + playsewithpan SE_M_MIST, SOUND_PAN_ATTACKER createsprite gPoisonGasCloudSpriteTemplate, ANIM_TARGET, 0, 64, 0, 0, -32, -6, 4192, 1072, 0 delay 4 - playsewithpan SE_M_MIST, 192 + playsewithpan SE_M_MIST, SOUND_PAN_ATTACKER createsprite gPoisonGasCloudSpriteTemplate, ANIM_TARGET, 0, 64, 0, 0, -32, -6, 4192, 1072, 0 delay 4 - playsewithpan SE_M_MIST, 192 + playsewithpan SE_M_MIST, SOUND_PAN_ATTACKER createsprite gPoisonGasCloudSpriteTemplate, ANIM_TARGET, 0, 64, 0, 0, -32, -6, 4192, 1072, 0 delay 4 - playsewithpan SE_M_MIST, 192 + playsewithpan SE_M_MIST, SOUND_PAN_ATTACKER createsprite gPoisonGasCloudSpriteTemplate, ANIM_TARGET, 0, 64, 0, 0, -32, -6, 4192, 1072, 0 delay 40 - loopsewithpan SE_M_MIST, 63, 28, 6 - createvisualtask AnimTask_CurseBlendEffect, 2, 4, 6, 2, 0, 12, 26650 + loopsewithpan SE_M_MIST, SOUND_PAN_TARGET, 28, 6 + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_TARGET, 6, 2, 0, 12, RGB(26, 0, 26) waitforvisualfinish blendoff clearmonbg ANIM_DEF_PARTNER delay 0 end -Move_BIND:: - createvisualtask AnimTask_SwayMon, 5, 0, 6, 3328, 4, 0 +Move_BIND: + createvisualtask AnimTask_SwayMon, 5, 0, 6, 3328, 4, ANIM_ATTACKER goto BindWrap -BindWrap:: - playsewithpan SE_M_BIND, 63 +BindWrap: + playsewithpan SE_M_BIND, SOUND_PAN_TARGET call BindWrapSqueezeTarget call BindWrapSqueezeTarget waitforvisualfinish end -BindWrapSqueezeTarget:: - createvisualtask AnimTask_ScaleMonAndRestore, 5, 10, -5, 5, 1, 0 +BindWrapSqueezeTarget: + createvisualtask AnimTask_ScaleMonAndRestore, 5, 10, -5, 5, ANIM_TARGET, 0 delay 16 return -Move_WRAP:: - createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, 0, 6, 4, 2, 4 +Move_WRAP: + createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_ATTACKER, 6, 4, 2, 4 goto BindWrap -Move_PSYBEAM:: +Move_PSYBEAM: loadspritegfx ANIM_TAG_GOLD_RING - playsewithpan SE_M_PSYBEAM, 192 + playsewithpan SE_M_PSYBEAM, SOUND_PAN_ATTACKER call SetPsychicBackground - createsoundtask SoundTask_LoopSEAdjustPanning, SE_M_PSYBEAM2, -64, 63, 3, 4, 0, 15 + createsoundtask SoundTask_LoopSEAdjustPanning, SE_M_PSYBEAM2, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 3, 4, 0, 15 call PsybeamRings call PsybeamRings - createvisualtask AnimTask_SwayMon, 5, 0, 6, 2048, 4, 1 - createvisualtask AnimTask_CurseBlendEffect, 2, 4, 2, 2, 0, 12, 32351 + createvisualtask AnimTask_SwayMon, 5, 0, 6, 2048, 4, ANIM_TARGET + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_TARGET, 2, 2, 0, 12, RGB(31, 18, 31) call PsybeamRings call PsybeamRings call PsybeamRings @@ -7271,62 +7263,62 @@ Move_PSYBEAM:: call PsybeamRings waitforvisualfinish delay 1 - call UnsetPsychicBg + call UnsetPsychicBackground end -PsybeamRings:: +PsybeamRings: createsprite gGoldRingSpriteTemplate, ANIM_TARGET, 2, 16, 0, 0, 0, 13, 0 delay 4 return -Move_HYPNOSIS:: +Move_HYPNOSIS: loadspritegfx ANIM_TAG_GOLD_RING call SetPsychicBackground call HypnosisRings call HypnosisRings call HypnosisRings - createvisualtask AnimTask_CurseBlendEffect, 2, 4, 2, 2, 0, 12, 32351 + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_TARGET, 2, 2, 0, 12, RGB(31, 18, 31) waitforvisualfinish delay 1 - call UnsetPsychicBg + call UnsetPsychicBackground end -HypnosisRings:: - playsewithpan SE_M_SUPERSONIC, 192 +HypnosisRings: + playsewithpan SE_M_SUPERSONIC, SOUND_PAN_ATTACKER createsprite gGoldRingSpriteTemplate, ANIM_TARGET, 2, 0, 8, 0, 8, 27, 0 createsprite gGoldRingSpriteTemplate, ANIM_TARGET, 2, 16, -8, 0, -8, 27, 0 delay 6 return -Move_PSYWAVE:: +Move_PSYWAVE: loadspritegfx ANIM_TAG_BLUE_RING - playsewithpan SE_M_PSYBEAM, 192 + playsewithpan SE_M_PSYBEAM, SOUND_PAN_ATTACKER call SetPsychicBackground createvisualtask AnimTask_StartSinAnimTimer, 5, 100 - createsoundtask SoundTask_LoopSEAdjustPanning, SE_M_TELEPORT, -64, 63, 2, 9, 0, 10 + createsoundtask SoundTask_LoopSEAdjustPanning, SE_M_TELEPORT, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 2, 9, 0, 10 call PsywaveRings call PsywaveRings - createvisualtask AnimTask_CurseBlendEffect, 2, 4, 1, 4, 0, 12, 32351 + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_TARGET, 1, 4, 0, 12, RGB(31, 18, 31) call PsywaveRings call PsywaveRings call PsywaveRings call PsywaveRings waitforvisualfinish delay 1 - call UnsetPsychicBg + call UnsetPsychicBackground end -PsywaveRings:: +PsywaveRings: createsprite gPsywaveRingSpriteTemplate, ANIM_TARGET, 3, 10, 10, 0, 16 delay 4 createsprite gPsywaveRingSpriteTemplate, ANIM_TARGET, 3, 10, 10, 0, 16 delay 4 return -Move_ZAP_CANNON:: +Move_ZAP_CANNON: loadspritegfx ANIM_TAG_BLACK_BALL_2 loadspritegfx ANIM_TAG_SPARK_2 - playsewithpan SE_M_THUNDER_WAVE, 192 + playsewithpan SE_M_THUNDER_WAVE, SOUND_PAN_ATTACKER createsprite gZapCannonBallSpriteTemplate, ANIM_TARGET, 3, 10, 0, 0, 0, 30, 0 createsprite gZapCannonSparkSpriteTemplate, ANIM_TARGET, 4, 10, 0, 16, 30, 0, 40, 0 createsprite gZapCannonSparkSpriteTemplate, ANIM_TARGET, 4, 10, 0, 16, 30, 64, 40, 1 @@ -7337,23 +7329,23 @@ Move_ZAP_CANNON:: createsprite gZapCannonSparkSpriteTemplate, ANIM_TARGET, 4, 10, 0, 8, 30, 160, 40, 0 createsprite gZapCannonSparkSpriteTemplate, ANIM_TARGET, 4, 10, 0, 8, 30, 224, 40, 2 waitforvisualfinish - createvisualtask AnimTask_ShakeMon2, 2, 1, 4, 0, 5, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 5, 1 delay 15 - waitplaysewithpan SE_M_THUNDERBOLT2, 63, 19 + waitplaysewithpan SE_M_THUNDERBOLT2, SOUND_PAN_TARGET, 19 call ElectricityEffect waitforvisualfinish end -Move_STEEL_WING:: +Move_STEEL_WING: loadspritegfx ANIM_TAG_GUST loadspritegfx ANIM_TAG_IMPACT - loopsewithpan SE_M_HARDEN, 192, 28, 2 + loopsewithpan SE_M_HARDEN, SOUND_PAN_ATTACKER, 28, 2 createvisualtask AnimTask_MetallicShine, 5, 0, 0, 0 waitforvisualfinish monbg ANIM_DEF_PARTNER - monbgprio_28 1 + splitbgprio ANIM_TARGET setalpha 12, 8 - loopsewithpan SE_M_WING_ATTACK, 192, 20, 2 + loopsewithpan SE_M_WING_ATTACK, SOUND_PAN_ATTACKER, 20, 2 createvisualtask AnimTask_TranslateMonElliptical, 2, 0, 12, 4, 1, 4 createvisualtask AnimTask_AnimateGustTornadoPalette, 5, 1, 70 createsprite gGustToTargetSpriteTemplate, ANIM_ATTACKER, 2, -25, 0, 0, 0, 20 @@ -7361,9 +7353,9 @@ Move_STEEL_WING:: delay 24 createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 0, 24, 0, 0, 9 delay 17 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 16, 0, 1, 1 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -16, 0, 1, 1 - playsewithpan SE_M_RAZOR_WIND, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 16, 0, ANIM_TARGET, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -16, 0, ANIM_TARGET, 1 + playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET waitforvisualfinish createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 11 waitforvisualfinish @@ -7371,79 +7363,79 @@ Move_STEEL_WING:: blendoff end -Move_IRON_TAIL:: +Move_IRON_TAIL: loadspritegfx ANIM_TAG_IMPACT - loopsewithpan SE_M_HARDEN, 192, 28, 2 + loopsewithpan SE_M_HARDEN, SOUND_PAN_ATTACKER, 28, 2 createvisualtask AnimTask_MetallicShine, 5, 1, 0, 0 waitforvisualfinish - monbg 1 + monbg ANIM_TARGET setalpha 12, 8 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 4, 4 delay 6 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, 1, 2 - createvisualtask AnimTask_ShakeMon, 2, 1, 3, 0, 6, 1 - playsewithpan SE_M_VITAL_THROW2, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, ANIM_TARGET, 2 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET waitforvisualfinish - createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, 0, 1 - clearmonbg 1 + createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, ANIM_ATTACKER, 1 + clearmonbg ANIM_TARGET blendoff waitforvisualfinish end -Move_POISON_TAIL:: +Move_POISON_TAIL: loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_POISON_BUBBLE - loopsewithpan SE_M_HARDEN, 192, 28, 2 - createvisualtask AnimTask_MetallicShine, 5, 1, 1, 23768 + loopsewithpan SE_M_HARDEN, SOUND_PAN_ATTACKER, 28, 2 + createvisualtask AnimTask_MetallicShine, 5, 1, 1, RGB(24, 6, 23) waitforvisualfinish - monbg 1 + monbg ANIM_TARGET setalpha 12, 8 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 4, 4 delay 6 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, 1, 2 - createvisualtask AnimTask_ShakeMon, 2, 1, 3, 0, 6, 1 - playsewithpan SE_M_VITAL_THROW2, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, ANIM_TARGET, 2 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET waitforvisualfinish - createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, 0, 1 - clearmonbg 1 + createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, ANIM_ATTACKER, 1 + clearmonbg ANIM_TARGET blendoff call PoisonBubblesEffect waitforvisualfinish end -Move_METAL_CLAW:: +Move_METAL_CLAW: loadspritegfx ANIM_TAG_CLAW_SLASH - loopsewithpan SE_M_HARDEN, 192, 28, 2 + loopsewithpan SE_M_HARDEN, SOUND_PAN_ATTACKER, 28, 2 createvisualtask AnimTask_MetallicShine, 5, 0, 0, 0 waitforvisualfinish createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 6, 4 delay 2 - playsewithpan SE_M_RAZOR_WIND, 63 + playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, -10, -10, 0 createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, -10, 10, 0 createsprite gShakeMonOrTerrainSpriteTemplate, ANIM_ATTACKER, 2, -4, 1, 10, 3, 1 delay 8 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 6, 4 delay 2 - playsewithpan SE_M_RAZOR_WIND, 63 + playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, 10, -10, 1 createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, 10, 10, 1 createsprite gShakeMonOrTerrainSpriteTemplate, ANIM_ATTACKER, 2, -4, 1, 10, 3, 1 waitforvisualfinish end -Move_NIGHT_SHADE:: +Move_NIGHT_SHADE: monbg ANIM_ATTACKER - monbgprio_28 0 - playsewithpan SE_M_PSYBEAM, 192 - fadetobg 2 + splitbgprio ANIM_ATTACKER + playsewithpan SE_M_PSYBEAM, SOUND_PAN_ATTACKER + fadetobg BG_GHOST waitbgfadein delay 10 - playsewithpan SE_M_LEER, 192 + playsewithpan SE_M_LEER, SOUND_PAN_ATTACKER createvisualtask AnimTask_NightShadeClone, 5, 85 delay 70 - createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 12, 1 - createvisualtask AnimTask_CurseBlendEffect, 2, 4, 0, 2, 0, 13, 0 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 12, 1 + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_TARGET, 0, 2, 0, 13, RGB_BLACK waitforvisualfinish clearmonbg ANIM_ATTACKER delay 1 @@ -7451,117 +7443,117 @@ Move_NIGHT_SHADE:: waitbgfadein end -Move_EGG_BOMB:: +Move_EGG_BOMB: loadspritegfx ANIM_TAG_EXPLOSION loadspritegfx ANIM_TAG_LARGE_FRESH_EGG - playsewithpan SE_M_TAIL_WHIP, 192 + playsewithpan SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER createsprite gEggThrowSpriteTemplate, ANIM_TARGET, 2, 10, 0, 0, 0, 25, -32 waitforvisualfinish - createvisualtask AnimTask_ShakeMon2, 2, 1, 4, 0, 16, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 16, 1 createsprite gExplosionSpriteTemplate, ANIM_TARGET, 4, 6, 5, 1, 0 - playsewithpan SE_M_SELF_DESTRUCT, 63 + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET delay 3 createsprite gExplosionSpriteTemplate, ANIM_TARGET, 4, -16, -15, 1, 0 - playsewithpan SE_M_SELF_DESTRUCT, 63 + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET delay 3 createsprite gExplosionSpriteTemplate, ANIM_TARGET, 4, 16, -5, 1, 0 - playsewithpan SE_M_SELF_DESTRUCT, 63 + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET delay 3 createsprite gExplosionSpriteTemplate, ANIM_TARGET, 4, -12, 18, 1, 0 - playsewithpan SE_M_SELF_DESTRUCT, 63 + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET delay 3 createsprite gExplosionSpriteTemplate, ANIM_TARGET, 4, 0, 5, 1, 0 - playsewithpan SE_M_SELF_DESTRUCT, 63 + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET delay 3 waitforvisualfinish end -Move_SHADOW_BALL:: +Move_SHADOW_BALL: loadspritegfx ANIM_TAG_SHADOW_BALL - fadetobg 2 + fadetobg BG_GHOST waitbgfadein delay 15 - createsoundtask SoundTask_LoopSEAdjustPanning, SE_M_MIST, -64, 63, 5, 5, 0, 5 + createsoundtask SoundTask_LoopSEAdjustPanning, SE_M_MIST, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 5, 5, 0, 5 createsprite gShadowBallSpriteTemplate, ANIM_TARGET, 2, 16, 16, 8 waitforvisualfinish - playsewithpan SE_M_SAND_ATTACK, 63 - createvisualtask AnimTask_ShakeMon2, 2, 1, 4, 0, 8, 1 + playsewithpan SE_M_SAND_ATTACK, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 8, 1 waitforvisualfinish restorebg waitbgfadein end -Move_LICK:: +Move_LICK: loadspritegfx ANIM_TAG_LICK delay 15 - playsewithpan SE_M_LICK, 63 + playsewithpan SE_M_LICK, SOUND_PAN_TARGET createsprite gLickSpriteTemplate, ANIM_TARGET, 2, 0, 0 - createvisualtask AnimTask_ShakeMon2, 2, 1, 1, 0, 16, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 1, 0, 16, 1 waitforvisualfinish end -Move_FOCUS_ENERGY:: +Move_FOCUS_ENERGY: loadspritegfx ANIM_TAG_FOCUS_ENERGY - playsewithpan SE_M_DRAGON_RAGE, 192 + playsewithpan SE_M_DRAGON_RAGE, SOUND_PAN_ATTACKER call EndureEffect delay 8 - createvisualtask AnimTask_CurseBlendEffect, 2, 2, 2, 2, 0, 11, RGB_WHITE - createvisualtask AnimTask_ShakeMon2, 2, 0, 1, 0, 32, 1 + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_ATTACKER, 2, 2, 0, 11, RGB_WHITE + createvisualtask AnimTask_ShakeMon2, 2, ANIM_ATTACKER, 1, 0, 32, 1 call EndureEffect delay 8 call EndureEffect waitforvisualfinish end -Move_BIDE:: - choosetwoturnanim BattleAnimScript_Bide_Setup, BattleAnimScript_Bide_Release +Move_BIDE: + choosetwoturnanim BideSetUp, BideUnleash end -BattleAnimScript_Bide_Setup:: - loopsewithpan SE_M_TAKE_DOWN, 192, 9, 2 - createvisualtask AnimTask_CurseBlendEffect, 2, 2, 2, 2, 0, 11, 31 - createvisualtask AnimTask_ShakeMon2, 2, 0, 1, 0, 32, 1 +BideSetUp: + loopsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER, 9, 2 + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_ATTACKER, 2, 2, 0, 11, RGB_RED + createvisualtask AnimTask_ShakeMon2, 2, ANIM_ATTACKER, 1, 0, 32, 1 waitforvisualfinish end -BattleAnimScript_Bide_Release:: +BideUnleash: loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER setalpha 12, 8 - loopsewithpan SE_M_TAKE_DOWN, 192, 9, 2 - createvisualtask AnimTask_BlendSelected, 10, 2, 2, 0, 11, RGB(31, 0, 0) - createvisualtask AnimTask_ShakeMon2, 2, 0, 1, 0, 32, 1 + loopsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER, 9, 2 + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_ATTACKER, 2, 0, 11, RGB_RED + createvisualtask AnimTask_ShakeMon2, 2, ANIM_ATTACKER, 1, 0, 32, 1 waitforvisualfinish createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 0, 24, 0, 0, 4 waitforvisualfinish - createvisualtask AnimTask_ShakeMonInPlace, 2, 0, 2, 0, 12, 1 - createvisualtask AnimTask_ShakeMon2, 2, 1, 3, 0, 16, 1 - playsewithpan SE_M_COMET_PUNCH, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 1, 18, -8, 1, 1 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_ATTACKER, 2, 0, 12, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 3, 0, 16, 1 + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 1, 18, -8, ANIM_TARGET, 1 delay 5 - playsewithpan SE_M_COMET_PUNCH, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 1, -18, 8, 1, 1 + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 1, -18, 8, ANIM_TARGET, 1 delay 5 - playsewithpan SE_M_COMET_PUNCH, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 1, -8, -5, 1, 1 + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 1, -8, -5, ANIM_TARGET, 1 waitforvisualfinish delay 5 createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 7 waitforvisualfinish - createvisualtask AnimTask_BlendSelected, 10, 2, 2, 11, 0, RGB(31, 0, 0) + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_ATTACKER, 2, 11, 0, RGB_RED waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff end -Move_STRING_SHOT:: +Move_STRING_SHOT: loadspritegfx ANIM_TAG_STRING loadspritegfx ANIM_TAG_WEB_THREAD monbg ANIM_DEF_PARTNER delay 0 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 5, 1, 2, 0, 9, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 5, F_PAL_BG, 2, 0, 9, RGB_BLACK waitforvisualfinish - loopsewithpan SE_M_STRING_SHOT, 192, 9, 6 + loopsewithpan SE_M_STRING_SHOT, SOUND_PAN_ATTACKER, 9, 6 call StringShotThread call StringShotThread call StringShotThread @@ -7581,7 +7573,7 @@ Move_STRING_SHOT:: call StringShotThread call StringShotThread waitforvisualfinish - playsewithpan SE_M_STRING_SHOT2, 63 + playsewithpan SE_M_STRING_SHOT2, SOUND_PAN_TARGET createsprite gStringWrapSpriteTemplate, ANIM_TARGET, 2, 0, 10 delay 4 createsprite gStringWrapSpriteTemplate, ANIM_TARGET, 2, 0, -2 @@ -7591,23 +7583,23 @@ Move_STRING_SHOT:: clearmonbg ANIM_DEF_PARTNER delay 1 waitforvisualfinish - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 5, 1, 2, 9, 0, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 5, F_PAL_BG, 2, 9, 0, RGB_BLACK end -StringShotThread:: +StringShotThread: createsprite gWebThreadSpriteTemplate, ANIM_TARGET, 2, 20, 0, 512, 20, 1 delay 1 return -Move_SPIDER_WEB:: +Move_SPIDER_WEB: loadspritegfx ANIM_TAG_SPIDER_WEB loadspritegfx ANIM_TAG_WEB_THREAD monbg ANIM_DEF_PARTNER delay 0 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 5, 1, 2, 0, 9, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 5, F_PAL_BG, 2, 0, 9, RGB_BLACK waitforvisualfinish - monbgprio_28 1 - loopsewithpan SE_M_STRING_SHOT, 192, 9, 6 + splitbgprio ANIM_TARGET + loopsewithpan SE_M_STRING_SHOT, SOUND_PAN_ATTACKER, 9, 6 call SpiderWebThread call SpiderWebThread call SpiderWebThread @@ -7623,81 +7615,81 @@ Move_SPIDER_WEB:: call SpiderWebThread call SpiderWebThread waitforvisualfinish - playsewithpan SE_M_STRING_SHOT2, 63 - createsprite gSpiderWebSpriteTemplate, ANIM_ATTACKER, 2, + playsewithpan SE_M_STRING_SHOT2, SOUND_PAN_TARGET + createsprite gSpiderWebSpriteTemplate, ANIM_ATTACKER, 2 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER delay 1 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 5, 1, 2, 9, 0, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 5, F_PAL_BG, 2, 9, 0, RGB_BLACK end -SpiderWebThread:: +SpiderWebThread: createsprite gWebThreadSpriteTemplate, ANIM_TARGET, 2, 20, 0, 512, 20, 0 delay 1 return -Move_RAZOR_WIND:: +Move_RAZOR_WIND: choosetwoturnanim RazorWindSetUp, RazorWindUnleash -RazorWindEnd:: +RazorWindEnd: waitforvisualfinish end -RazorWindSetUp:: +RazorWindSetUp: loadspritegfx ANIM_TAG_GUST - playsewithpan SE_M_GUST, 192 + playsewithpan SE_M_GUST, SOUND_PAN_ATTACKER createsprite gRazorWindTornadoSpriteTemplate, ANIM_ATTACKER, 2, 32, 0, 16, 16, 0, 7, 40 createsprite gRazorWindTornadoSpriteTemplate, ANIM_ATTACKER, 2, 32, 0, 16, 16, 85, 7, 40 createsprite gRazorWindTornadoSpriteTemplate, ANIM_ATTACKER, 2, 32, 0, 16, 16, 170, 7, 40 waitforvisualfinish - playsewithpan SE_M_GUST2, 192 + playsewithpan SE_M_GUST2, SOUND_PAN_ATTACKER goto RazorWindEnd -RazorWindUnleash:: +RazorWindUnleash: loadspritegfx ANIM_TAG_AIR_WAVE_2 loadspritegfx ANIM_TAG_IMPACT - monbg 1 + monbg ANIM_TARGET setalpha 12, 8 - playsewithpan SE_M_RAZOR_WIND2, 192 + playsewithpan SE_M_RAZOR_WIND2, SOUND_PAN_ATTACKER createsprite gAirWaveCrescentSpriteTemplate, ANIM_ATTACKER, 2, 14, 8, 0, 0, 22, 2, 1 delay 2 - playsewithpan SE_M_RAZOR_WIND2, 192 + playsewithpan SE_M_RAZOR_WIND2, SOUND_PAN_ATTACKER createsprite gAirWaveCrescentSpriteTemplate, ANIM_ATTACKER, 2, 14, -8, 16, 14, 22, 1, 1 delay 2 - playsewithpan SE_M_RAZOR_WIND2, 192 + playsewithpan SE_M_RAZOR_WIND2, SOUND_PAN_ATTACKER createsprite gAirWaveCrescentSpriteTemplate, ANIM_ATTACKER, 2, 14, 12, -16, -14, 22, 0, 1 delay 17 - playsewithpan SE_M_RAZOR_WIND, 63 - createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 10, 1 - createvisualtask AnimTask_ShakeMon2, 2, 3, 2, 0, 10, 1 + playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 10, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_DEF_PARTNER, 2, 0, 10, 1 waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff goto RazorWindEnd -Move_DISABLE:: +Move_DISABLE: loadspritegfx ANIM_TAG_SPARKLE_4 - monbg 1 - monbgprio_28 1 + monbg ANIM_TARGET + splitbgprio ANIM_TARGET setalpha 8, 8 - playsewithpan SE_M_DETECT, 192 - createsprite gSpriteTemplate_83BF480, ANIM_ATTACKER, 13, 24, -16 + playsewithpan SE_M_DETECT, SOUND_PAN_ATTACKER + createsprite gSpinningSparkleSpriteTemplate, ANIM_ATTACKER, 13, 24, -16 waitforvisualfinish - createvisualtask AnimTask_GrowAndGreyscale, 5, - loopsewithpan SE_M_BIND, 63, 15, 4 + createvisualtask AnimTask_GrowAndGrayscale, 5 + loopsewithpan SE_M_BIND, SOUND_PAN_TARGET, 15, 4 waitforvisualfinish delay 1 - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff end -Move_RECOVER:: +Move_RECOVER: loadspritegfx ANIM_TAG_ORBS loadspritegfx ANIM_TAG_BLUE_STAR monbg ANIM_ATK_PARTNER setalpha 12, 8 - loopsewithpan SE_M_MEGA_KICK, 192, 13, 3 - createvisualtask AnimTask_CurseBlendEffect, 2, 2, 0, 6, 0, 11, 12287 + loopsewithpan SE_M_MEGA_KICK, SOUND_PAN_ATTACKER, 13, 3 + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_ATTACKER, 0, 6, 0, 11, RGB(31, 31, 11) call RecoverAbsorbEffect call RecoverAbsorbEffect call RecoverAbsorbEffect @@ -7709,7 +7701,7 @@ Move_RECOVER:: waitforvisualfinish end -RecoverAbsorbEffect:: +RecoverAbsorbEffect: createsprite gPowerAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 2, 40, -10, 13 delay 3 createsprite gPowerAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 2, -35, -10, 13 @@ -7726,27 +7718,27 @@ RecoverAbsorbEffect:: delay 3 return -Move_MIMIC:: +Move_MIMIC: loadspritegfx ANIM_TAG_ORBS - monbg_22 3 + monbg_static ANIM_DEF_PARTNER setalpha 11, 5 - panse_1B SE_M_MINIMIZE, 63, 192, 253, 0 + panse SE_M_MINIMIZE, SOUND_PAN_TARGET, SOUND_PAN_ATTACKER, -3, 0 createvisualtask AnimTask_ShrinkTargetCopy, 5, 128, 24 delay 15 createsprite gMimicOrbSpriteTemplate, ANIM_TARGET, 2, -12, 24 delay 10 - setarg 7, 65535 + setarg 7, 0xFFFF waitforvisualfinish - playsewithpan SE_M_TAKE_DOWN, 192 - createvisualtask AnimTask_CurseBlendEffect, 2, 2, 0, 2, 0, 11, RGB_WHITE + playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_ATTACKER, 0, 2, 0, 11, RGB_WHITE waitforvisualfinish - clearmonbg_23 3 + clearmonbg_static ANIM_DEF_PARTNER blendoff end -Move_CONSTRICT:: +Move_CONSTRICT: loadspritegfx ANIM_TAG_TENDRILS - loopsewithpan SE_M_SCRATCH, 63, 6, 4 + loopsewithpan SE_M_SCRATCH, SOUND_PAN_TARGET, 6, 4 createsprite gConstrictBindingSpriteTemplate, ANIM_TARGET, 4, 0, 16, 0, 2 delay 7 createsprite gConstrictBindingSpriteTemplate, ANIM_TARGET, 3, 0, 0, 0, 2 @@ -7754,17 +7746,17 @@ Move_CONSTRICT:: delay 7 createsprite gConstrictBindingSpriteTemplate, ANIM_TARGET, 3, 0, -8, 1, 2 delay 8 - createvisualtask AnimTask_ShakeMon2, 2, 1, 3, 0, 6, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 3, 0, 6, 1 delay 20 - playsewithpan SE_M_BIND, 63 - setarg 7, 65535 + playsewithpan SE_M_BIND, SOUND_PAN_TARGET + setarg 7, 0xFFFF waitforvisualfinish end -Move_CURSE:: +Move_CURSE: choosetwoturnanim CurseGhost, CurseStats -CurseGhost:: +CurseGhost: loadspritegfx ANIM_TAG_NAIL loadspritegfx ANIM_TAG_GHOSTLY_SPIRIT monbg ANIM_ATK_PARTNER @@ -7782,62 +7774,62 @@ CurseGhost:: clearmonbg ANIM_ATK_PARTNER delay 1 monbg ANIM_DEF_PARTNER - playsewithpan SE_M_NIGHTMARE, 63 + playsewithpan SE_M_NIGHTMARE, SOUND_PAN_TARGET createsprite gCurseGhostSpriteTemplate, ANIM_TARGET, 2 - createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 14, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 14, 1 waitforvisualfinish - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 16, 0, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 1, 16, 0, RGB_BLACK waitforvisualfinish clearmonbg ANIM_DEF_PARTNER end -CurseGhostShakeFromNail:: - createvisualtask AnimTask_ShakeMon2, 2, 0, 4, 0, 10, 0 - playsewithpan SE_M_BIND, 192 +CurseGhostShakeFromNail: + createvisualtask AnimTask_ShakeMon2, 2, ANIM_ATTACKER, 4, 0, 10, 0 + playsewithpan SE_M_BIND, SOUND_PAN_ATTACKER return -CurseStats:: - createvisualtask AnimTask_SwayMon, 5, 0, 10, 1536, 3, 0 +CurseStats: + createvisualtask AnimTask_SwayMon, 5, 0, 10, 1536, 3, ANIM_ATTACKER waitforvisualfinish delay 10 call CurseStats1 waitforvisualfinish end -CurseStats1:: - playsewithpan SE_M_DRAGON_RAGE, 192 - createvisualtask AnimTask_SetUpCurseBackground, 5, - createvisualtask AnimTask_CurseBlendEffect, 5, 2, 4, 2, 0, 10, 31 +CurseStats1: + playsewithpan SE_M_DRAGON_RAGE, SOUND_PAN_ATTACKER + createvisualtask AnimTask_DrawFallingWhiteLinesOnAttacker, 5 + createvisualtask AnimTask_BlendColorCycle, 5, F_PAL_ATTACKER, 4, 2, 0, 10, RGB_RED return -Move_SOFT_BOILED:: +Move_SOFT_BOILED: loadspritegfx ANIM_TAG_BREAKING_EGG loadspritegfx ANIM_TAG_THIN_RING loadspritegfx ANIM_TAG_BLUE_STAR monbg ANIM_ATK_PARTNER - playsewithpan SE_M_TAIL_WHIP, 192 - createvisualtask AnimTask_ShakeMon, 2, 0, 0, 2, 6, 1 + playsewithpan SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER + createvisualtask AnimTask_ShakeMon, 2, ANIM_ATTACKER, 0, 2, 6, 1 createsprite gSoftBoiledEggSpriteTemplate, ANIM_ATTACKER, 4, 0, 16, 0 createsprite gSoftBoiledEggSpriteTemplate, ANIM_ATTACKER, 4, 0, 16, 1 delay 120 delay 7 - playsewithpan SE_M_HORN_ATTACK, 192 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 10, 0, 31500 + playsewithpan SE_M_HORN_ATTACK, SOUND_PAN_ATTACKER + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG | F_PAL_BATTLERS, 3, 10, 0, RGB(12, 24, 30) createsprite gThinRingExpandingSpriteTemplate, ANIM_ATTACKER, 3, 31, 16, 0, 1 delay 8 createsprite gThinRingExpandingSpriteTemplate, ANIM_ATTACKER, 3, 31, 16, 0, 1 delay 60 - setarg 7, 65535 + setarg 7, 0xFFFF waitforvisualfinish clearmonbg ANIM_ATK_PARTNER call HealingEffect2 end -Move_HEAL_BELL:: +Move_HEAL_BELL: loadspritegfx ANIM_TAG_BELL loadspritegfx ANIM_TAG_MUSIC_NOTES_2 loadspritegfx ANIM_TAG_THIN_RING - createvisualtask AnimTask_BlendSelected, 10, 10, 0, 0, 10, RGB_WHITE + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_ATK_SIDE, 0, 0, 10, RGB_WHITE waitforvisualfinish createvisualtask AnimTask_LoadMusicNotesPals, 5 createsprite gBellSpriteTemplate, ANIM_ATTACKER, 2, 0, -24, 0, 1 @@ -7866,67 +7858,67 @@ Move_HEAL_BELL:: unloadspritegfx ANIM_TAG_MUSIC_NOTES_2 unloadspritegfx ANIM_TAG_THIN_RING loadspritegfx ANIM_TAG_SPARKLE_2 - playsewithpan SE_M_MORNING_SUN, 192 + playsewithpan SE_M_MORNING_SUN, SOUND_PAN_ATTACKER createsprite gSparklingStarsSpriteTemplate, ANIM_ATTACKER, 16, -15, 0, 0, 0, 32, 60, 1 delay 8 createsprite gSparklingStarsSpriteTemplate, ANIM_ATTACKER, 16, 12, -5, 0, 0, 32, 60, 1 waitforvisualfinish unloadspritegfx ANIM_TAG_SPARKLE_2 loadspritegfx ANIM_TAG_THIN_RING - playsewithpan SE_SHINY, 192 - createvisualtask AnimTask_BlendExcept, 10, 4, 3, 10, 0, 31500 - createvisualtask AnimTask_BlendSelected, 10, 10, 3, 10, 0, RGB_WHITE + playsewithpan SE_SHINY, SOUND_PAN_ATTACKER + createvisualtask AnimTask_BlendBattleAnimPalExclude, 10, 4, 3, 10, 0, RGB(12, 24, 30) + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_ATK_SIDE, 3, 10, 0, RGB_WHITE createsprite gBlendThinRingExpandingSpriteTemplate, ANIM_ATTACKER, 16, 0, 0, 0, 1 end -HealBellRing:: - createvisualtask AnimTask_BlendExcept, 10, 4, 3, 8, 0, 31500 - createvisualtask AnimTask_BlendSelected, 10, 10, 3, 2, 10, RGB_WHITE +HealBellRing: + createvisualtask AnimTask_BlendBattleAnimPalExclude, 10, 4, 3, 8, 0, RGB(12, 24, 30) + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_ATK_SIDE, 3, 2, 10, RGB_WHITE createsprite gThinRingExpandingSpriteTemplate, ANIM_ATTACKER, 40, 0, -24, 0, 1 - playsewithpan SE_M_HEAL_BELL, 192 + playsewithpan SE_M_HEAL_BELL, SOUND_PAN_ATTACKER return -Move_FAKE_OUT:: +Move_FAKE_OUT: playsewithpan SE_M_FLATTER, 0 - createvisualtask AnimTask_FakeOut, 5, + createvisualtask AnimTask_FakeOut, 5 waitforvisualfinish - playsewithpan SE_M_SKETCH, 63 - createvisualtask AnimTask_ShakeMon2, 2, 1, 4, 0, 5, 1 + playsewithpan SE_M_SKETCH, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 5, 1 createvisualtask AnimTask_StretchTargetUp, 3 waitforvisualfinish - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 16, 0, RGB_WHITE + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 3, 16, 0, RGB_WHITE end -Move_SCARY_FACE:: +Move_SCARY_FACE: loadspritegfx ANIM_TAG_EYE_SPARKLE - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 27, 3, 0, 16, 0 - playsewithpan SE_M_PSYBEAM, 192 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG | F_PAL_ATK_SIDE | F_PAL_DEF_PARTNER, 3, 0, 16, RGB_BLACK + playsewithpan SE_M_PSYBEAM, SOUND_PAN_ATTACKER waitforvisualfinish delay 10 - playsewithpan SE_M_LEER, 192 - createvisualtask AnimTask_ScaryFace, 5, + playsewithpan SE_M_LEER, SOUND_PAN_ATTACKER + createvisualtask AnimTask_ScaryFace, 5 delay 13 createsprite gEyeSparkleSpriteTemplate, ANIM_ATTACKER, 0, -16, -8 createsprite gEyeSparkleSpriteTemplate, ANIM_ATTACKER, 0, 16, -8 waitforvisualfinish - createvisualtask AnimTask_ShakeTargetInPattern, 3, 20, 1, 0 - playsewithpan SE_M_STRING_SHOT2, 63 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 27, 3, 16, 0, 0 + createvisualtask AnimTask_ShakeTargetInPattern, 3, 20, 1, FALSE + playsewithpan SE_M_STRING_SHOT2, SOUND_PAN_TARGET + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG | F_PAL_ATK_SIDE | F_PAL_DEF_PARTNER, 3, 16, 0, RGB_BLACK waitforvisualfinish end -Move_SWEET_KISS:: +Move_SWEET_KISS: loadspritegfx ANIM_TAG_RED_HEART loadspritegfx ANIM_TAG_ANGEL createsprite gAngelSpriteTemplate, ANIM_TARGET, 2, 16, -48 - playsewithpan SE_M_HEAL_BELL, 63 + playsewithpan SE_M_HEAL_BELL, SOUND_PAN_TARGET delay 23 - playsewithpan SE_M_HEAL_BELL, 63 + playsewithpan SE_M_HEAL_BELL, SOUND_PAN_TARGET delay 23 - playsewithpan SE_M_HEAL_BELL, 63 + playsewithpan SE_M_HEAL_BELL, SOUND_PAN_TARGET waitforvisualfinish createsprite gRedHeartBurstSpriteTemplate, ANIM_TARGET, 3, 160, -30 - playsewithpan SE_M_ATTRACT, 63 + playsewithpan SE_M_ATTRACT, SOUND_PAN_TARGET createsprite gRedHeartBurstSpriteTemplate, ANIM_TARGET, 3, -256, -42 createsprite gRedHeartBurstSpriteTemplate, ANIM_TARGET, 3, 128, -14 createsprite gRedHeartBurstSpriteTemplate, ANIM_TARGET, 3, 416, -38 @@ -7934,102 +7926,102 @@ Move_SWEET_KISS:: createsprite gRedHeartBurstSpriteTemplate, ANIM_TARGET, 3, -384, -31 end -Move_LOVELY_KISS:: +Move_LOVELY_KISS: loadspritegfx ANIM_TAG_PINK_HEART loadspritegfx ANIM_TAG_DEVIL createsprite gDevilSpriteTemplate, ANIM_TARGET, 2, 0, -24 - playsewithpan SE_M_PSYBEAM2, 63 + playsewithpan SE_M_PSYBEAM2, SOUND_PAN_TARGET waitforvisualfinish - playsewithpan SE_M_ATTRACT, 63 + playsewithpan SE_M_ATTRACT, SOUND_PAN_TARGET createsprite gPinkHeartSpriteTemplate, ANIM_TARGET, 3, -256, -42 createsprite gPinkHeartSpriteTemplate, ANIM_TARGET, 3, 128, -14 createsprite gPinkHeartSpriteTemplate, ANIM_TARGET, 3, 416, -38 createsprite gPinkHeartSpriteTemplate, ANIM_TARGET, 3, -128, -22 end -Move_FURY_SWIPES:: +Move_FURY_SWIPES: loadspritegfx ANIM_TAG_SWIPE createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 5, 5 delay 4 - playsewithpan SE_M_SCRATCH, 63 + playsewithpan SE_M_SCRATCH, SOUND_PAN_TARGET createsprite gFurySwipesSpriteTemplate, ANIM_TARGET, 2, 16, 0, 1 - createvisualtask AnimTask_ShakeMon2, 2, 1, 3, 0, 5, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 3, 0, 5, 1 delay 10 createsprite gHorizontalLungeSpriteTemplate, ANIM_TARGET, 2, 5, 5 delay 4 - playsewithpan SE_M_SCRATCH, 63 + playsewithpan SE_M_SCRATCH, SOUND_PAN_TARGET createsprite gFurySwipesSpriteTemplate, ANIM_TARGET, 2, -16, 0, 0 - createvisualtask AnimTask_ShakeMon2, 2, 1, 4, 0, 7, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 7, 1 end -Move_INGRAIN:: +Move_INGRAIN: loadspritegfx ANIM_TAG_ROOTS loadspritegfx ANIM_TAG_ORBS createsprite gIngrainRootSpriteTemplate, ANIM_ATTACKER, 2, 16, 26, -1, 2, 150 - playsewithpan SE_M_SCRATCH, 192 + playsewithpan SE_M_SCRATCH, SOUND_PAN_ATTACKER delay 10 createsprite gIngrainRootSpriteTemplate, ANIM_ATTACKER, 2, -32, 20, 1, 1, 140 - playsewithpan SE_M_SCRATCH, 192 + playsewithpan SE_M_SCRATCH, SOUND_PAN_ATTACKER delay 10 createsprite gIngrainRootSpriteTemplate, ANIM_ATTACKER, 2, 32, 22, 1, 0, 130 - playsewithpan SE_M_SCRATCH, 192 + playsewithpan SE_M_SCRATCH, SOUND_PAN_ATTACKER delay 10 createsprite gIngrainRootSpriteTemplate, ANIM_ATTACKER, 2, -16, 25, -1, 3, 120 - playsewithpan SE_M_SCRATCH, 192 + playsewithpan SE_M_SCRATCH, SOUND_PAN_ATTACKER delay 40 createsprite gIngrainOrbSpriteTemplate, ANIM_ATTACKER, 3, 32, 26, -1, 3, 30 delay 5 - playsewithpan SE_M_BUBBLE3, 192 + playsewithpan SE_M_BUBBLE3, SOUND_PAN_ATTACKER delay 5 createsprite gIngrainOrbSpriteTemplate, ANIM_ATTACKER, 3, -48, 20, 1, 2, 30 - playsewithpan SE_M_BUBBLE3, 192 + playsewithpan SE_M_BUBBLE3, SOUND_PAN_ATTACKER delay 5 - playsewithpan SE_M_BUBBLE3, 192 + playsewithpan SE_M_BUBBLE3, SOUND_PAN_ATTACKER delay 5 createsprite gIngrainOrbSpriteTemplate, ANIM_ATTACKER, 3, 48, 26, -2, 3, 18 - playsewithpan SE_M_BUBBLE3, 192 + playsewithpan SE_M_BUBBLE3, SOUND_PAN_ATTACKER delay 10 waitforvisualfinish end -Move_PRESENT:: +Move_PRESENT: loadspritegfx ANIM_TAG_ITEM_BAG - createvisualtask AnimTask_IsHealingMove, 2, + createvisualtask AnimTask_IsHealingMove, 2 createsprite gPresentSpriteTemplate, ANIM_TARGET, 2, 0, -5, 10, 2, -1 - playsewithpan SE_M_TAIL_WHIP, 192 + playsewithpan SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER delay 14 - playsewithpan SE_M_BUBBLE2, 192 + playsewithpan SE_M_BUBBLE2, SOUND_PAN_ATTACKER delay 14 playsewithpan SE_M_BUBBLE2, 0 delay 20 - playsewithpan SE_M_BUBBLE2, 63 + playsewithpan SE_M_BUBBLE2, SOUND_PAN_TARGET waitforvisualfinish - jumpargeq 7, 0, PresentDamage - jumpargeq 7, 1, PresentHeal + jumpretfalse PresentDamage + jumprettrue PresentHeal end -PresentDamage:: +PresentDamage: loadspritegfx ANIM_TAG_EXPLOSION - playsewithpan SE_M_SELF_DESTRUCT, 63 + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET createsprite gExplosionSpriteTemplate, ANIM_TARGET, 3, 0, 0, 1, 1 delay 6 - playsewithpan SE_M_SELF_DESTRUCT, 63 + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET createsprite gExplosionSpriteTemplate, ANIM_TARGET, 3, 24, -24, 1, 1 delay 6 - playsewithpan SE_M_SELF_DESTRUCT, 63 + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET createsprite gExplosionSpriteTemplate, ANIM_TARGET, 3, -16, 16, 1, 1 delay 6 - playsewithpan SE_M_SELF_DESTRUCT, 63 + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET createsprite gExplosionSpriteTemplate, ANIM_TARGET, 3, -24, -12, 1, 1 delay 6 - playsewithpan SE_M_SELF_DESTRUCT, 63 + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET createsprite gExplosionSpriteTemplate, ANIM_TARGET, 3, 16, 16, 1, 1 end -PresentHeal:: +PresentHeal: loadspritegfx ANIM_TAG_GREEN_SPARKLE loadspritegfx ANIM_TAG_BLUE_STAR - playsewithpan SE_M_MORNING_SUN, 63 + playsewithpan SE_M_MORNING_SUN, SOUND_PAN_TARGET createsprite gPresentHealParticleSpriteTemplate, ANIM_TARGET, 4, -16, 32, -3, 1 delay 3 createsprite gPresentHealParticleSpriteTemplate, ANIM_TARGET, 4, 16, 32, -3, -1 @@ -8052,14 +8044,14 @@ PresentHeal:: call HealingEffect2 end -Move_BATON_PASS:: +Move_BATON_PASS: loadspritegfx ANIM_TAG_POKEBALL - playsewithpan SE_M_BATON_PASS, 192 - createvisualtask AnimTask_CurseBlendEffect, 2, 31, 1, 2, 0, 11, 31455 - createsprite gBatonPassPokeballSpriteTemplate, ANIM_ATTACKER, 2, + playsewithpan SE_M_BATON_PASS, SOUND_PAN_ATTACKER + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_BG | F_PAL_BATTLERS, 1, 2, 0, 11, RGB(31, 22, 30) + createsprite gBatonPassPokeballSpriteTemplate, ANIM_ATTACKER, 2 end -Move_PERISH_SONG:: +Move_PERISH_SONG: loadspritegfx ANIM_TAG_MUSIC_NOTES_2 createsprite gPerishSongMusicNoteSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, 0 createsprite gPerishSongMusicNoteSpriteTemplate, ANIM_ATTACKER, 4, 1, 1, 16 @@ -8079,42 +8071,42 @@ Move_PERISH_SONG:: createsprite gPerishSongMusicNoteSpriteTemplate, ANIM_ATTACKER, 4, 15, 0, 240 createsprite gPerishSongMusicNote2SpriteTemplate, ANIM_ATTACKER, 4, 15, 0, 0 delay 20 - panse_1B SE_M_PERISH_SONG, 192, 63, 2, 0 + panse SE_M_PERISH_SONG, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 delay 80 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 0, 16, 0 - createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, 4, 0 - createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, 5, 0 - createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, 6, 0 - createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, 7, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 3, 0, 16, RGB_BLACK + createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, 4, 0 + createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, 5, 0 + createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, 6, 0 + createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, 7, 0 delay 100 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 16, 0, 0 - createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, 4, 1 - createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, 5, 1 - createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, 6, 1 - createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, 7, 1 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 3, 16, 0, RGB_BLACK + createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, 4, 1 + createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, 5, 1 + createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, 6, 1 + createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, 7, 1 waitforvisualfinish end -Move_SLEEP_TALK:: +Move_SLEEP_TALK: loadspritegfx ANIM_TAG_LETTER_Z - createvisualtask AnimTask_SwayMon, 5, 0, 4, 4096, 2, 0 + createvisualtask AnimTask_SwayMon, 5, 0, 4, 4096, 2, ANIM_ATTACKER delay 20 createsprite gLetterZSpriteTemplate, ANIM_TARGET, 2, 0, 20, 5, -1 - playsewithpan SE_M_SNORE, 192 + playsewithpan SE_M_SNORE, SOUND_PAN_ATTACKER delay 6 createsprite gLetterZSpriteTemplate, ANIM_TARGET, 2, 0, 20, 5, -1 delay 6 createsprite gLetterZSpriteTemplate, ANIM_TARGET, 2, 0, 20, 5, -1 delay 20 createsprite gLetterZSpriteTemplate, ANIM_TARGET, 2, 0, 20, 5, -5 - playsewithpan SE_M_SNORE, 192 + playsewithpan SE_M_SNORE, SOUND_PAN_ATTACKER delay 6 createsprite gLetterZSpriteTemplate, ANIM_TARGET, 2, 0, 20, 5, -5 delay 6 createsprite gLetterZSpriteTemplate, ANIM_TARGET, 2, 0, 20, 5, -5 delay 20 createsprite gLetterZSpriteTemplate, ANIM_TARGET, 2, 0, 20, 5, -3 - playsewithpan SE_M_SNORE, 192 + playsewithpan SE_M_SNORE, SOUND_PAN_ATTACKER delay 6 createsprite gLetterZSpriteTemplate, ANIM_TARGET, 2, 0, 20, 5, -3 delay 6 @@ -8122,54 +8114,55 @@ Move_SLEEP_TALK:: waitforvisualfinish end -Move_HYPER_FANG:: +Move_HYPER_FANG: loadspritegfx ANIM_TAG_FANG_ATTACK - playsewithpan SE_M_BITE, 63 + playsewithpan SE_M_BITE, SOUND_PAN_TARGET delay 1 delay 2 - createvisualtask AnimTask_IsContest, 2, - jumpargeq 7, 1, HyperFangInContest - createvisualtask AnimTask_IsTargetPlayerSide, 2, - jumpargeq 7, 0, HyperFangOnOpponent + createvisualtask AnimTask_IsContest, 2 + jumprettrue HyperFangInContest + createvisualtask AnimTask_IsTargetPlayerSide, 2 + jumpretfalse HyperFangOnOpponent goto HyperFangOnPlayer -HyperFangContinue:: + +HyperFangContinue: waitbgfadeout - createsprite gFangSpriteTemplate, ANIM_TARGET, 2, + createsprite gFangSpriteTemplate, ANIM_TARGET, 2 waitbgfadein - createvisualtask AnimTask_ShakeMon, 3, 1, 0, 10, 10, 1 - playsewithpan SE_M_LEER, 63 + createvisualtask AnimTask_ShakeMon, 3, ANIM_TARGET, 0, 10, 10, 1 + playsewithpan SE_M_LEER, SOUND_PAN_TARGET delay 20 restorebg waitbgfadein waitforvisualfinish end -HyperFangOnOpponent:: - fadetobg 4 +HyperFangOnOpponent: + fadetobg BG_IMPACT_OPPONENT goto HyperFangContinue -HyperFangOnPlayer:: - fadetobg 5 +HyperFangOnPlayer: + fadetobg BG_IMPACT_PLAYER goto HyperFangContinue -HyperFangInContest:: - fadetobg 6 +HyperFangInContest: + fadetobg BG_IMPACT_CONTESTS goto HyperFangContinue -Move_TRI_ATTACK:: - loadspritegfx ANIM_TAG_TRI_FORCE_TRIANGLE +Move_TRI_ATTACK: + loadspritegfx ANIM_TAG_TRI_ATTACK_TRIANGLE createsprite gTriAttackTriangleSpriteTemplate, ANIM_TARGET, 2, 16, 0 - playsewithpan SE_M_TRI_ATTACK, 192 + playsewithpan SE_M_TRI_ATTACK, SOUND_PAN_ATTACKER delay 20 - playsewithpan SE_M_TRI_ATTACK, 192 + playsewithpan SE_M_TRI_ATTACK, SOUND_PAN_ATTACKER delay 20 - createsoundtask SoundTask_LoopSEAdjustPanning, SE_M_TRI_ATTACK, -64, 63, 5, 6, 0, 7 + createsoundtask SoundTask_LoopSEAdjustPanning, SE_M_TRI_ATTACK, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 5, 6, 0, 7 waitforvisualfinish - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 0, 16, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 2, 0, 16, RGB_BLACK delay 16 loadspritegfx ANIM_TAG_FIRE createsprite gLargeFlameScatterSpriteTemplate, ANIM_TARGET, 2, 0, 0, 30, 30, -1, 0 - playsewithpan SE_M_FLAME_WHEEL2, 63 + playsewithpan SE_M_FLAME_WHEEL2, SOUND_PAN_TARGET createsprite gLargeFlameScatterSpriteTemplate, ANIM_TARGET, 2, 0, 0, 30, 30, 0, 1 delay 1 createsprite gLargeFlameScatterSpriteTemplate, ANIM_TARGET, 2, 0, 0, 30, 30, -1, -1 @@ -8184,35 +8177,35 @@ Move_TRI_ATTACK:: delay 1 createsprite gLargeFlameScatterSpriteTemplate, ANIM_TARGET, 2, 0, 0, 30, 30, 3, 1 delay 2 - createvisualtask AnimTask_ShakeTargetInPattern, 2, 20, 3, 1, 1 + createvisualtask AnimTask_ShakeTargetInPattern, 2, 20, 3, TRUE, 1 waitforvisualfinish loadspritegfx ANIM_TAG_LIGHTNING createvisualtask AnimTask_InvertScreenColor, 2, 257, 257, 257 - playsewithpan SE_M_TRI_ATTACK2, 63 + playsewithpan SE_M_TRI_ATTACK2, SOUND_PAN_TARGET createsprite gLightningSpriteTemplate, ANIM_TARGET, 2, 0, -48 delay 1 createsprite gLightningSpriteTemplate, ANIM_TARGET, 2, 0, -16 delay 1 createsprite gLightningSpriteTemplate, ANIM_TARGET, 2, 0, 16 delay 20 - createvisualtask AnimTask_ShakeTargetInPattern, 2, 20, 3, 1, 0 + createvisualtask AnimTask_ShakeTargetInPattern, 2, 20, 3, TRUE, 0 delay 2 createvisualtask AnimTask_InvertScreenColor, 2, 257, 257, 257 waitforvisualfinish loadspritegfx ANIM_TAG_ICE_CRYSTALS call IceCrystalEffectShort - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 16, 0, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 2, 16, 0, RGB_BLACK waitforvisualfinish end -Move_WILL_O_WISP:: +Move_WILL_O_WISP: loadspritegfx ANIM_TAG_WISP_FIRE loadspritegfx ANIM_TAG_WISP_ORB monbg ANIM_DEF_PARTNER - monbgprio_2A 1 - playsewithpan SE_M_EMBER, 192 - waitplaysewithpan SE_M_EMBER, 192, 10 - createvisualtask SoundTask_AdjustPanningVar, 2, -64, -64, 1, 0 + splitbgprio_foes ANIM_TARGET + playsewithpan SE_M_EMBER, SOUND_PAN_ATTACKER + waitplaysewithpan SE_M_EMBER, SOUND_PAN_ATTACKER, 10 + createvisualtask SoundTask_AdjustPanningVar, 2, SOUND_PAN_ATTACKER, SOUND_PAN_ATTACKER, 1, 0 createsprite gWillOWispOrbSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 0 delay 3 createsprite gWillOWispOrbSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1 @@ -8221,11 +8214,11 @@ Move_WILL_O_WISP:: delay 3 createsprite gWillOWispOrbSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, 3 delay 40 - createvisualtask SoundTask_AdjustPanningVar, 2, -64, 63, 2, 0 + createvisualtask SoundTask_AdjustPanningVar, 2, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 2, 0 waitforvisualfinish - monbgprio_29 - playsewithpan SE_M_FLAME_WHEEL2, 63 - createvisualtask AnimTask_ShakeMon2, 2, 1, 4, 0, 13, 1 + splitbgprio_all + playsewithpan SE_M_FLAME_WHEEL2, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 13, 1 createsprite gWillOWispFireSpriteTemplate, ANIM_ATTACKER, 2, 0 createsprite gWillOWispFireSpriteTemplate, ANIM_ATTACKER, 2, 42 createsprite gWillOWispFireSpriteTemplate, ANIM_ATTACKER, 2, 84 @@ -8236,11 +8229,11 @@ Move_WILL_O_WISP:: clearmonbg ANIM_DEF_PARTNER end -Move_ENCORE:: +Move_ENCORE: loadspritegfx ANIM_TAG_SPOTLIGHT loadspritegfx ANIM_TAG_TAG_HAND - createvisualtask AnimTask_CreateSpotlight, 2, - createvisualtask AnimTask_HardwarePaletteFade, 2, BLDCNT_TGT1_BG3 | BLDCNT_TGT1_OBJ | BLDCNT_TGT1_BD | BLDCNT_EFFECT_DARKEN, 3, 0, 10, FALSE + createvisualtask AnimTask_CreateSpotlight, 2 + createvisualtask AnimTask_HardwarePaletteFade, 2, 248, 3, 0, 10, 0 waitforvisualfinish createsprite gSpotlightSpriteTemplate, ANIM_TARGET, 2, 0, -8 createsprite gClappingHandSpriteTemplate, ANIM_ATTACKER, 2, -2, 0, 0, 0, 9 @@ -8248,22 +8241,22 @@ Move_ENCORE:: createsprite gClappingHand2SpriteTemplate, ANIM_ATTACKER, 3, -2, 0, 0, 0, 9 createsprite gClappingHand2SpriteTemplate, ANIM_ATTACKER, 3, 2, 0, 1, 0, 9 delay 16 - createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_ENCORE2, 63 - createvisualtask AnimTask_SwayMon, 5, 1, 8, 1536, 5, 1 + createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_ENCORE2, SOUND_PAN_TARGET + createvisualtask AnimTask_SwayMon, 5, 1, 8, 1536, 5, ANIM_TARGET waitforvisualfinish - createvisualtask AnimTask_HardwarePaletteFade, 2, BLDCNT_TGT1_BG3 | BLDCNT_TGT1_OBJ | BLDCNT_TGT1_BD | BLDCNT_EFFECT_DARKEN, 3, 10, 0, TRUE + createvisualtask AnimTask_HardwarePaletteFade, 2, 248, 3, 10, 0, 1 waitforvisualfinish - createvisualtask AnimTask_RemoveSpotlight, 2, + createvisualtask AnimTask_RemoveSpotlight, 2 end -Move_TRICK:: +Move_TRICK: loadspritegfx ANIM_TAG_ITEM_BAG loadspritegfx ANIM_TAG_SPEED_DUST createsprite gTrickBagSpriteTemplate, ANIM_ATTACKER, 2, -40, 80 createsprite gTrickBagSpriteTemplate, ANIM_ATTACKER, 2, -40, 208 delay 16 playsewithpan SE_M_SKETCH, 0 - createvisualtask AnimTask_StretchTargetUp, 3, + createvisualtask AnimTask_StretchTargetUp, 3 createvisualtask AnimTask_StretchAttackerUp, 3 delay 30 playsewithpan SE_M_DOUBLE_TEAM, 0 @@ -8279,39 +8272,39 @@ Move_TRICK:: playsewithpan SE_M_DOUBLE_TEAM, 0 delay 16 playsewithpan SE_M_ATTRACT, 0 - createvisualtask AnimTask_ShakeMon, 3, 0, 5, 0, 7, 2 - createvisualtask AnimTask_ShakeMon, 3, 1, 5, 0, 7, 2 + createvisualtask AnimTask_ShakeMon, 3, ANIM_ATTACKER, 5, 0, 7, 2 + createvisualtask AnimTask_ShakeMon, 3, ANIM_TARGET, 5, 0, 7, 2 waitforvisualfinish end -Move_WISH:: +Move_WISH: loadspritegfx ANIM_TAG_GOLD_STARS loadspritegfx ANIM_TAG_SPARKLE_2 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 0, 10, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 3, 0, 10, RGB_BLACK waitforvisualfinish - panse_27 SE_M_REFLECT, 63, 192, 253, 0 - createsprite gWishStarSpriteTemplate, ANIM_ATTACKER, 40, + panse_adjustall SE_M_REFLECT, SOUND_PAN_TARGET, SOUND_PAN_ATTACKER, -3, 0 + createsprite gWishStarSpriteTemplate, ANIM_ATTACKER, 40 waitforvisualfinish delay 60 - loopsewithpan SE_M_HEAL_BELL, 192, 16, 3 + loopsewithpan SE_M_HEAL_BELL, SOUND_PAN_ATTACKER, 16, 3 call GrantingStarsEffect waitforvisualfinish - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 10, 0, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 3, 10, 0, RGB_BLACK waitforvisualfinish end -Move_STOCKPILE:: +Move_STOCKPILE: loadspritegfx ANIM_TAG_GRAY_ORB - playsewithpan SE_M_MEGA_KICK, 192 - createvisualtask AnimTask_CurseBlendEffect, 2, 2, 8, 1, 0, 12, RGB_WHITE - createvisualtask AnimTask_StockpileDeformMon, 5, + playsewithpan SE_M_MEGA_KICK, SOUND_PAN_ATTACKER + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_ATTACKER, 8, 1, 0, 12, RGB_WHITE + createvisualtask AnimTask_StockpileDeformMon, 5 call StockpileAbsorb call StockpileAbsorb waitforvisualfinish - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 2, 0, 12, 0, RGB_WHITE + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_ATTACKER, 0, 12, 0, RGB_WHITE end -StockpileAbsorb:: +StockpileAbsorb: createsprite gStockpileAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 2, 55, 55, 13 delay 1 createsprite gStockpileAbsorptionOrbSpriteTemplate, ANIM_ATTACKER, 2, -55, -55, 13 @@ -8330,14 +8323,14 @@ StockpileAbsorb:: delay 1 return -Move_SPIT_UP:: +Move_SPIT_UP: loadspritegfx ANIM_TAG_RED_ORB_2 loadspritegfx ANIM_TAG_IMPACT - playsewithpan SE_M_TAKE_DOWN, 192 - createvisualtask AnimTask_SpitUpDeformMon, 5, - createvisualtask AnimTask_ShakeMon2, 2, 0, 1, 0, 8, 2 + playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER + createvisualtask AnimTask_SpitUpDeformMon, 5 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_ATTACKER, 1, 0, 8, 2 delay 45 - playsewithpan SE_M_SPIT_UP, 192 + playsewithpan SE_M_SPIT_UP, SOUND_PAN_ATTACKER delay 3 createsprite gSpitUpOrbSpriteTemplate, ANIM_ATTACKER, 2, 0, 12 createsprite gSpitUpOrbSpriteTemplate, ANIM_ATTACKER, 2, 32, 12 @@ -8350,25 +8343,25 @@ Move_SPIT_UP:: delay 5 jumpifmoveturn 2, SpitUpStrong jumpifmoveturn 3, SpitUpStrongest -SpitUpContinue:: +SpitUpContinue: delay 5 - createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 2, 0, 1, 8, 1, 0 - playsewithpan SE_M_DOUBLE_SLAP, 63 - createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, -12, 10, 1, 1 + createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 2, FALSE, 1, 8, 1, 0 + playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET + createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, -12, 10, ANIM_TARGET, 1 delay 5 - playsewithpan SE_M_DOUBLE_SLAP, 63 - createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 12, -10, 1, 1 + playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET + createsprite gFlashingHitSplatSpriteTemplate, ANIM_TARGET, 3, 12, -10, ANIM_TARGET, 1 waitforvisualfinish end -SpitUpStrong:: +SpitUpStrong: createsprite gSpitUpOrbSpriteTemplate, ANIM_ATTACKER, 2, 16 createsprite gSpitUpOrbSpriteTemplate, ANIM_ATTACKER, 2, 80 createsprite gSpitUpOrbSpriteTemplate, ANIM_ATTACKER, 2, 144 createsprite gSpitUpOrbSpriteTemplate, ANIM_ATTACKER, 2, 208 goto SpitUpContinue -SpitUpStrongest:: +SpitUpStrongest: createsprite gSpitUpOrbSpriteTemplate, ANIM_ATTACKER, 2, 16 createsprite gSpitUpOrbSpriteTemplate, ANIM_ATTACKER, 2, 48 createsprite gSpitUpOrbSpriteTemplate, ANIM_ATTACKER, 2, 80 @@ -8379,24 +8372,24 @@ SpitUpStrongest:: createsprite gSpitUpOrbSpriteTemplate, ANIM_ATTACKER, 2, 240 goto SpitUpContinue -Move_SWALLOW:: +Move_SWALLOW: loadspritegfx ANIM_TAG_BLUE_ORB loadspritegfx ANIM_TAG_BLUE_STAR - playsewithpan SE_M_TAKE_DOWN, 192 - createvisualtask AnimTask_SwallowDeformMon, 5, - createvisualtask AnimTask_ShakeMon2, 2, 0, 1, 0, 8, 2 + playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER + createvisualtask AnimTask_SwallowDeformMon, 5 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_ATTACKER, 1, 0, 8, 2 delay 38 - playsewithpan SE_M_SPIT_UP, 192 - createvisualtask AnimTask_ShakeMon2, 2, 0, 2, 0, 12, 1 + playsewithpan SE_M_SPIT_UP, SOUND_PAN_ATTACKER + createvisualtask AnimTask_ShakeMon2, 2, ANIM_ATTACKER, 2, 0, 12, 1 call SwallowEffect jumpifmoveturn 2, SwallowGood jumpifmoveturn 3, SwallowBest -SwallowContinue:: +SwallowContinue: waitforvisualfinish call HealingEffect end -SwallowEffect:: +SwallowEffect: createsprite gSwallowBlueOrbSpriteTemplate, ANIM_ATTACKER, 2, 0, -8 delay 1 createsprite gSwallowBlueOrbSpriteTemplate, ANIM_ATTACKER, 2, -24, -8 @@ -8409,30 +8402,30 @@ SwallowEffect:: delay 1 return -SwallowGood:: +SwallowGood: call SwallowEffect goto SwallowContinue -SwallowBest:: +SwallowBest: call SwallowEffect call SwallowEffect goto SwallowContinue -Move_TRANSFORM:: +Move_TRANSFORM: monbg ANIM_ATTACKER - playsewithpan SE_M_TELEPORT, 192 - waitplaysewithpan SE_M_MINIMIZE, 192, 48 + playsewithpan SE_M_TELEPORT, SOUND_PAN_ATTACKER + waitplaysewithpan SE_M_MINIMIZE, SOUND_PAN_ATTACKER, 48 createvisualtask AnimTask_TransformMon, 2, 0 waitforvisualfinish clearmonbg ANIM_ATTACKER end -Move_MORNING_SUN:: +Move_MORNING_SUN: loadspritegfx ANIM_TAG_GREEN_STAR loadspritegfx ANIM_TAG_BLUE_STAR - createvisualtask AnimTask_MorningSunLightBeam, 5, + createvisualtask AnimTask_MorningSunLightBeam, 5 delay 8 - createvisualtask AnimTask_BlendSelected, 10, 1 | (0xF << 7), 8, 0, 12, RGB_WHITE + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_BG | F_PAL_BATTLERS_2, 8, 0, 12, RGB_WHITE delay 14 call MorningSunStar call MorningSunStar @@ -8449,32 +8442,32 @@ Move_MORNING_SUN:: call MorningSunStar call MorningSunStar call MorningSunStar - createvisualtask AnimTask_BlendSelected, 10, 1 | (0xF << 7), 3, 12, 0, RGB_WHITE + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_BG | F_PAL_BATTLERS_2, 3, 12, 0, RGB_WHITE waitforvisualfinish waitsound call HealingEffect end -MorningSunStar:: +MorningSunStar: createsprite gGreenStarSpriteTemplate, ANIM_ATTACKER, 2, 30, 640 delay 5 return -Move_SWEET_SCENT:: +Move_SWEET_SCENT: loadspritegfx ANIM_TAG_PINK_PETAL - playsewithpan SE_M_SWEET_SCENT, 192 + playsewithpan SE_M_SWEET_SCENT, SOUND_PAN_ATTACKER createsprite gSweetScentPetalSpriteTemplate, ANIM_ATTACKER, 2, 100, 0, 100 delay 25 setpan 0 call SweetScentEffect createsprite gSweetScentPetalSpriteTemplate, ANIM_ATTACKER, 2, 55, 0 - setpan 63 - createvisualtask AnimTask_CurseBlendEffect, 2, 20, 1, 5, 5, 13, 22207 + setpan SOUND_PAN_TARGET + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_DEF_SIDE, 1, 5, 5, 13, RGB(31, 21, 21) call SweetScentEffect waitforvisualfinish end -SweetScentEffect:: +SweetScentEffect: createsprite gSweetScentPetalSpriteTemplate, ANIM_ATTACKER, 2, 70, 1, 64 delay 2 createsprite gSweetScentPetalSpriteTemplate, ANIM_ATTACKER, 2, 60, 0, 64 @@ -8499,25 +8492,25 @@ SweetScentEffect:: delay 2 return -Move_HYPER_BEAM:: +Move_HYPER_BEAM: loadspritegfx ANIM_TAG_ORBS - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 4, 0, 16, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 4, 0, 16, RGB_BLACK waitforvisualfinish delay 10 - playsewithpan SE_M_HYPER_BEAM, 192 - createvisualtask AnimTask_ShakeMon2, 2, 0, 1, 0, 4, 1 + playsewithpan SE_M_HYPER_BEAM, SOUND_PAN_ATTACKER + createvisualtask AnimTask_ShakeMon2, 2, ANIM_ATTACKER, 1, 0, 4, 1 waitforvisualfinish delay 30 - createsoundtask SoundTask_LoopSEAdjustPanning, SE_M_HYPER_BEAM2, -64, 63, 1, 15, 0, 5 - createvisualtask AnimTask_ShakeMon, 2, 0, 0, 4, 50, 1 - createvisualtask AnimTask_FlashAnimTagWithColor, 2, 10147, 1, 12, 31, 16, 0, 0 + createsoundtask SoundTask_LoopSEAdjustPanning, SE_M_HYPER_BEAM2, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 1, 15, 0, 5 + createvisualtask AnimTask_ShakeMon, 2, ANIM_ATTACKER, 0, 4, 50, 1 + createvisualtask AnimTask_FlashAnimTagWithColor, 2, ANIM_TAG_ORBS, 1, 12, RGB(31, 0, 0), 16, 0, 0 call HyperBeamOrbs call HyperBeamOrbs call HyperBeamOrbs call HyperBeamOrbs call HyperBeamOrbs - createvisualtask AnimTask_ShakeMon2, 2, 1, 4, 0, 50, 1 - createvisualtask AnimTask_BlendSelected, 10, 4, 2, 0, 11, RGB(25, 25, 25) + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 50, 1 + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_TARGET, 2, 0, 11, RGB(25, 25, 25) call HyperBeamOrbs call HyperBeamOrbs call HyperBeamOrbs @@ -8539,31 +8532,31 @@ Move_HYPER_BEAM:: call HyperBeamOrbs call HyperBeamOrbs call HyperBeamOrbs - createvisualtask AnimTask_BlendSelected, 10, 4, 2, 11, 0, RGB(25, 25, 25) + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_TARGET, 2, 11, 0, RGB(25, 25, 25) waitforvisualfinish - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 4, 16, 0, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 4, 16, 0, RGB_BLACK end -HyperBeamOrbs:: - createsprite gHyperBeamOrbSpriteTemplate, ANIM_TARGET, 2, - createsprite gHyperBeamOrbSpriteTemplate, ANIM_TARGET, 2, +HyperBeamOrbs: + createsprite gHyperBeamOrbSpriteTemplate, ANIM_TARGET, 2 + createsprite gHyperBeamOrbSpriteTemplate, ANIM_TARGET, 2 delay 1 return -Move_FLATTER:: +Move_FLATTER: loadspritegfx ANIM_TAG_SPOTLIGHT loadspritegfx ANIM_TAG_CONFETTI - createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_ENCORE2, 63 - createvisualtask AnimTask_CreateSpotlight, 2, - createvisualtask AnimTask_HardwarePaletteFade, 2, BLDCNT_TGT1_BG3 | BLDCNT_TGT1_OBJ | BLDCNT_TGT1_BD | BLDCNT_EFFECT_DARKEN, 3, 0, 10, FALSE + createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_ENCORE2, SOUND_PAN_TARGET + createvisualtask AnimTask_CreateSpotlight, 2 + createvisualtask AnimTask_HardwarePaletteFade, 2, 248, 3, 0, 10, 0 waitforvisualfinish createsprite gFlatterSpotlightSpriteTemplate, ANIM_TARGET, 2, 0, -8, 80 delay 0 - createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 5, 2, 1 + createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 5, 2, ANIM_TARGET delay 10 - createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 5, 2, 1 + createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 5, 2, ANIM_TARGET delay 0 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_FLATTER, -64 + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_FLATTER, SOUND_PAN_ATTACKER call CreateFlatterConfetti call CreateFlatterConfetti call CreateFlatterConfetti @@ -8584,69 +8577,69 @@ Move_FLATTER:: call CreateFlatterConfetti call CreateFlatterConfetti delay 5 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_FLATTER, 63 + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_FLATTER, SOUND_PAN_TARGET waitforvisualfinish - createvisualtask AnimTask_HardwarePaletteFade, 2, BLDCNT_TGT1_BG3 | BLDCNT_TGT1_OBJ | BLDCNT_TGT1_BD | BLDCNT_EFFECT_DARKEN, 3, 10, 0, TRUE + createvisualtask AnimTask_HardwarePaletteFade, 2, 248, 3, 10, 0, 1 waitforvisualfinish - createvisualtask AnimTask_RemoveSpotlight, 2, + createvisualtask AnimTask_RemoveSpotlight, 2 end -CreateFlatterConfetti:: - createsprite gFlatterConfettiSpriteTemplate, ANIM_ATTACKER, 40, 0 - createsprite gFlatterConfettiSpriteTemplate, ANIM_ATTACKER, 40, 1 +CreateFlatterConfetti: + createsprite gFlatterConfettiSpriteTemplate, ANIM_ATTACKER, 40, ANIM_ATTACKER + createsprite gFlatterConfettiSpriteTemplate, ANIM_ATTACKER, 40, ANIM_TARGET return -Move_ROLE_PLAY:: +Move_ROLE_PLAY: monbg ANIM_ATK_PARTNER - createvisualtask AnimTask_BlendSelected, 10, 4, 2, 0, 16, RGB_WHITE - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 0, 10, 0 + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_TARGET, 2, 0, 16, RGB_WHITE + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 2, 0, 10, RGB_BLACK waitforvisualfinish - playsewithpan SE_M_TRI_ATTACK, 192 - waitplaysewithpan SE_M_DETECT, 192, 30 - createvisualtask AnimTask_RolePlaySilhouette, 2, + playsewithpan SE_M_TRI_ATTACK, SOUND_PAN_ATTACKER + waitplaysewithpan SE_M_DETECT, SOUND_PAN_ATTACKER, 30 + createvisualtask AnimTask_RolePlaySilhouette, 2 waitforvisualfinish clearmonbg ANIM_ATK_PARTNER - createvisualtask AnimTask_BlendSelected, 10, 4, 2, 16, 0, RGB_WHITE + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_TARGET, 2, 16, 0, RGB_WHITE delay 8 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 2, 10, 0, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 2, 10, 0, RGB_BLACK end -Move_REFRESH:: +Move_REFRESH: loadspritegfx ANIM_TAG_THIN_RING loadspritegfx ANIM_TAG_SPARKLE_2 - playsewithpan SE_M_STAT_INCREASE, 192 + playsewithpan SE_M_STAT_INCREASE, SOUND_PAN_ATTACKER createvisualtask AnimTask_StatusClearedEffect, 2, 0 waitforvisualfinish - playsewithpan SE_M_MORNING_SUN, 192 + playsewithpan SE_M_MORNING_SUN, SOUND_PAN_ATTACKER call GrantingStarsEffect waitforvisualfinish - playsewithpan SE_SHINY, 192 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 10, 0, 31500 + playsewithpan SE_SHINY, SOUND_PAN_ATTACKER + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG | F_PAL_BATTLERS, 3, 10, 0, RGB(12, 24, 30) createsprite gThinRingExpandingSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 0, 0 end -Move_BLAZE_KICK:: +Move_BLAZE_KICK: loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_HANDS_AND_FEET loadspritegfx ANIM_TAG_SMALL_EMBER - monbg 1 + monbg ANIM_TARGET setalpha 12, 8 - playsewithpan SE_M_FLAME_WHEEL, 63 + playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_TARGET createsprite gSpinningHandOrFootSpriteTemplate, ANIM_TARGET, 3, 0, 0, 1, 30 - createvisualtask AnimTask_BlendSelected, 10, 4, 2, 0, 7, RGB_WHITE + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_TARGET, 2, 0, 7, RGB_WHITE delay 30 - playsewithpan SE_M_FIRE_PUNCH, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, 1, 0 - createvisualtask AnimTask_ShakeMon2, 2, 1, 3, 0, 14, 1 - createvisualtask AnimTask_BlendSelected, 10, 4, 2, 0, 0, RGB_WHITE - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 1, 0, 8, 0, 0 + playsewithpan SE_M_FIRE_PUNCH, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, ANIM_TARGET, 0 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 3, 0, 14, 1 + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_TARGET, 2, 0, 0, RGB_WHITE + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG | F_PAL_BATTLERS, 3, 1, RGB_BLACK, 8, RGB_BLACK, 0 call FireSpreadEffect waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff end -Move_HYPER_VOICE:: +Move_HYPER_VOICE: loadspritegfx ANIM_TAG_THIN_RING call HyperVoiceEffect waitforvisualfinish @@ -8655,56 +8648,56 @@ Move_HYPER_VOICE:: waitforvisualfinish end -HyperVoiceEffect:: - createvisualtask sub_80DD334, 5 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 8, 0, 1023 - createvisualtask AnimTask_ScaleMonAndRestore, 5, -5, -5, 5, 0, 0 +HyperVoiceEffect: + createvisualtask SoundTask_PlayCryWithEcho, 5 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG | F_PAL_BATTLERS, 3, 8, 0, RGB_YELLOW + createvisualtask AnimTask_ScaleMonAndRestore, 5, -5, -5, 5, ANIM_ATTACKER, 0 createsprite gHyperVoiceRingSpriteTemplate, ANIM_ATTACKER, 0, 45, 0, 0, 0, 0, 0, 1 - createvisualtask AnimTask_ShakeMon2, 2, 1, 1, 0, 6, 1 - createvisualtask AnimTask_ShakeMon2, 2, 3, 1, 0, 6, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 1, 0, 6, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_DEF_PARTNER, 1, 0, 6, 1 createvisualtask AnimTask_ShakeBattleTerrain, 2, 1, 0, 6, 1 - createvisualtask SoundTask_WaitForCry, 5, + createvisualtask SoundTask_WaitForCry, 5 return -Move_SAND_TOMB:: +Move_SAND_TOMB: loadspritegfx ANIM_TAG_MUD_SAND - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 4, 2, 0, 7, 563 - createvisualtask AnimTask_ShakeMon, 5, 1, 0, 2, 43, 1 - playsewithpan SE_M_SAND_TOMB, 63 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, F_PAL_TARGET, 2, 0, 7, RGB(19, 17, 0) + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 2, 43, 1 + playsewithpan SE_M_SAND_TOMB, SOUND_PAN_TARGET call SandTombSwirlingDirt call SandTombSwirlingDirt call SandTombSwirlingDirt delay 22 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 4, 2, 7, 0, 563 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, F_PAL_TARGET, 2, 7, 0, RGB(19, 17, 0) waitforvisualfinish end -SandTombSwirlingDirt:: - createsprite gSwirlingDirtSpriteTemplate, ANIM_TARGET, 2, 0, 32, 528, 30, 10, 50, 1 +SandTombSwirlingDirt: + createsprite gSwirlingDirtSpriteTemplate, ANIM_TARGET, 2, 0, 32, 528, 30, 10, 50, ANIM_TARGET delay 2 - createsprite gSwirlingDirtSpriteTemplate, ANIM_TARGET, 2, 0, 36, 480, 20, 13, -46, 1 + createsprite gSwirlingDirtSpriteTemplate, ANIM_TARGET, 2, 0, 36, 480, 20, 13, -46, ANIM_TARGET delay 2 - createsprite gSwirlingDirtSpriteTemplate, ANIM_TARGET, 2, 0, 37, 576, 20, 5, 42, 1 + createsprite gSwirlingDirtSpriteTemplate, ANIM_TARGET, 2, 0, 37, 576, 20, 5, 42, ANIM_TARGET delay 2 - createsprite gSwirlingDirtSpriteTemplate, ANIM_TARGET, 2, 0, 35, 400, 25, 8, -42, 1 + createsprite gSwirlingDirtSpriteTemplate, ANIM_TARGET, 2, 0, 35, 400, 25, 8, -42, ANIM_TARGET delay 2 - createsprite gSwirlingDirtSpriteTemplate, ANIM_TARGET, 2, 0, 32, 512, 25, 13, 46, 1 + createsprite gSwirlingDirtSpriteTemplate, ANIM_TARGET, 2, 0, 32, 512, 25, 13, 46, ANIM_TARGET delay 2 - createsprite gSwirlingDirtSpriteTemplate, ANIM_TARGET, 2, 0, 37, 464, 30, 12, -50, 1 + createsprite gSwirlingDirtSpriteTemplate, ANIM_TARGET, 2, 0, 37, 464, 30, 12, -50, ANIM_TARGET delay 2 return -Move_SHEER_COLD:: - fadetobg 15 +Move_SHEER_COLD: + fadetobg BG_ICE waitbgfadeout playsewithpan SE_M_ICY_WIND, 0 waitbgfadein loadspritegfx ANIM_TAG_ICE_CUBE monbg ANIM_DEF_PARTNER - monbgprio_28 1 + splitbgprio ANIM_TARGET setalpha 12, 8 createvisualtask AnimTask_FrozenIceCube, 2 - waitplaysewithpan SE_M_HAIL, 63, 17 + waitplaysewithpan SE_M_HAIL, SOUND_PAN_TARGET, 17 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff @@ -8712,42 +8705,43 @@ Move_SHEER_COLD:: waitbgfadein end -Move_ARM_THRUST:: +Move_ARM_THRUST: loadspritegfx ANIM_TAG_HANDS_AND_FEET loadspritegfx ANIM_TAG_IMPACT - monbgprio_28 1 + splitbgprio ANIM_TARGET setalpha 12, 8 - createvisualtask AnimTask_RotateMonSpriteToSide, 5, 8, 5, 0, 0 + createvisualtask AnimTask_RotateMonSpriteToSide, 5, 8, 5, ANIM_ATTACKER, 0 delay 6 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 4, 3 delay 4 - playsewithpan SE_M_SWAGGER, 63 + playsewithpan SE_M_SWAGGER, SOUND_PAN_TARGET createsprite gArmThrustHandSpriteTemplate, ANIM_TARGET, 2, 10, -8, 14, 3 waitforvisualfinish - createvisualtask AnimTask_RotateMonSpriteToSide, 5, 8, 5, 0, 1 - playsewithpan SE_M_DOUBLE_SLAP, 63 + createvisualtask AnimTask_RotateMonSpriteToSide, 5, 8, 5, ANIM_ATTACKER, 1 + playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET choosetwoturnanim ArmThrustRight, ArmThrustLeft -ArmThrustContinue:: - createvisualtask AnimTask_ShakeMon, 5, 1, 4, 0, 6, 1 + +ArmThrustContinue: + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 4, 0, 6, 1 waitforvisualfinish blendoff end -ArmThrustRight:: - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 8, 0, 1, 2 +ArmThrustRight: + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, 8, 0, ANIM_TARGET, 2 goto ArmThrustContinue -ArmThrustLeft:: - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, -8, 0, 1, 2 +ArmThrustLeft: + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, -8, 0, ANIM_TARGET, 2 goto ArmThrustContinue -Move_MUDDY_WATER:: - panse_1B SE_M_WHIRLPOOL, 192, 63, 2, 0 - createvisualtask AnimTask_CreateSurfWave, 2, 1 +Move_MUDDY_WATER: + panse SE_M_WHIRLPOOL, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 + createvisualtask AnimTask_CreateSurfWave, 2, TRUE waitforvisualfinish end -Move_BULLET_SEED:: +Move_BULLET_SEED: loadspritegfx ANIM_TAG_SEED createsprite gBulletSeedSpriteTemplate, ANIM_TARGET, 2, 20, 0 delay 5 @@ -8755,7 +8749,7 @@ Move_BULLET_SEED:: delay 5 createsprite gBulletSeedSpriteTemplate, ANIM_TARGET, 2, 20, 0 delay 5 - createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 30, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 30, 1 createsprite gBulletSeedSpriteTemplate, ANIM_TARGET, 2, 20, 0 delay 5 createsprite gBulletSeedSpriteTemplate, ANIM_TARGET, 2, 20, 0 @@ -8772,80 +8766,81 @@ Move_BULLET_SEED:: waitforvisualfinish end -Move_DRAGON_CLAW:: +Move_DRAGON_CLAW: loadspritegfx ANIM_TAG_SMALL_EMBER loadspritegfx ANIM_TAG_CLAW_SLASH - playsewithpan SE_M_SACRED_FIRE2, 192 - createvisualtask AnimTask_BlendSelected, 10, 2, 4, 0, 8, RGB(31, 19, 0) - createvisualtask AnimTask_ShakeMon, 5, 0, 0, 2, 15, 1 + playsewithpan SE_M_SACRED_FIRE2, SOUND_PAN_ATTACKER + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_ATTACKER, 4, 0, 8, RGB(31, 19, 0) + createvisualtask AnimTask_ShakeMon, 5, ANIM_ATTACKER, 0, 2, 15, 1 call DragonClawFireSpiral call DragonClawFireSpiral createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 6, 4 - createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 28, 528, 30, 13, 50, 0 + createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 28, 528, 30, 13, 50, ANIM_ATTACKER delay 2 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_RAZOR_WIND, 63 + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_RAZOR_WIND, SOUND_PAN_TARGET createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, -10, -10, 0 createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, -10, 10, 0 createsprite gShakeMonOrTerrainSpriteTemplate, ANIM_ATTACKER, 2, -4, 1, 10, 3, 1 - createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 32, 480, 20, 16, -46, 0 + createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 32, 480, 20, 16, -46, ANIM_ATTACKER delay 2 - createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 33, 576, 20, 8, 42, 0 + createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 33, 576, 20, 8, 42, ANIM_ATTACKER delay 2 - createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 31, 400, 25, 11, -42, 0 + createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 31, 400, 25, 11, -42, ANIM_ATTACKER delay 2 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 6, 4 - createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 28, 512, 25, 16, 46, 0 + createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 28, 512, 25, 16, 46, ANIM_ATTACKER delay 2 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_RAZOR_WIND, 63 + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_RAZOR_WIND, SOUND_PAN_TARGET createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, 10, -10, 1 createsprite gClawSlashSpriteTemplate, ANIM_TARGET, 2, 10, 10, 1 createsprite gShakeMonOrTerrainSpriteTemplate, ANIM_ATTACKER, 2, -4, 1, 10, 3, 1 - createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 33, 464, 30, 15, -50, 0 + createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 33, 464, 30, 15, -50, ANIM_ATTACKER delay 2 - createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 28, 528, 30, 13, 50, 0 + createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 28, 528, 30, 13, 50, ANIM_ATTACKER delay 2 - createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 32, 480, 20, 16, -46, 0 + createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 32, 480, 20, 16, -46, ANIM_ATTACKER delay 2 - createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 33, 576, 20, 8, 42, 0 + createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 33, 576, 20, 8, 42, ANIM_ATTACKER delay 2 - createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 31, 400, 25, 11, -42, 0 + createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 31, 400, 25, 11, -42, ANIM_ATTACKER delay 2 - createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 28, 512, 25, 16, 46, 0 + createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 28, 512, 25, 16, 46, ANIM_ATTACKER delay 2 - createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 33, 464, 30, 15, -50, 0 - createvisualtask AnimTask_BlendSelected, 10, 2, 4, 8, 0, RGB(31, 19, 0) + createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 33, 464, 30, 15, -50, ANIM_ATTACKER + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_ATTACKER, 4, 8, 0, RGB(31, 19, 0) waitforvisualfinish end -DragonClawFireSpiral:: - createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 28, 528, 30, 13, 50, 0 +DragonClawFireSpiral: + createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 28, 528, 30, 13, 50, ANIM_ATTACKER delay 2 - createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 32, 480, 20, 16, -46, 0 + createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 32, 480, 20, 16, -46, ANIM_ATTACKER delay 2 - createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 33, 576, 20, 8, 42, 0 + createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 33, 576, 20, 8, 42, ANIM_ATTACKER delay 2 - createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 31, 400, 25, 11, -42, 0 + createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 31, 400, 25, 11, -42, ANIM_ATTACKER delay 2 - createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 28, 512, 25, 16, 46, 0 + createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 28, 512, 25, 16, 46, ANIM_ATTACKER delay 2 - createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 33, 464, 30, 15, -50, 0 + createsprite gFireSpinSpriteTemplate, ANIM_ATTACKER, 2, 0, 33, 464, 30, 15, -50, ANIM_ATTACKER delay 2 return + end -Move_MUD_SHOT:: +Move_MUD_SHOT: loadspritegfx ANIM_TAG_BROWN_ORB monbg ANIM_DEF_PARTNER - monbgprio_28 1 + splitbgprio ANIM_TARGET setalpha 12, 8 - createvisualtask AnimTask_ShakeMon, 5, 0, 0, 2, 46, 1 + createvisualtask AnimTask_ShakeMon, 5, ANIM_ATTACKER, 0, 2, 46, 1 delay 6 createvisualtask AnimTask_StartSinAnimTimer, 5, 100 - panse_1B SE_M_WHIRLPOOL, 192, 63, 1, 0 + panse SE_M_WHIRLPOOL, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +1, 0 call MudShotOrbs call MudShotOrbs call MudShotOrbs - createvisualtask AnimTask_ShakeMon, 5, 1, 3, 0, 43, 1 + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 3, 0, 43, 1 call MudShotOrbs call MudShotOrbs call MudShotOrbs @@ -8859,19 +8854,19 @@ Move_MUD_SHOT:: blendoff end -MudShotOrbs:: +MudShotOrbs: createsprite gMudShotOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, 10, 0, 16 delay 2 createsprite gMudShotOrbSpriteTemplate, ANIM_ATTACKER, 3, 10, 10, 0, 16 delay 2 return -Move_METEOR_MASH:: +Move_METEOR_MASH: loadspritegfx ANIM_TAG_GOLD_STARS loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_HANDS_AND_FEET - panse_1B SE_M_BARRIER, 192, 63, 3, 0 - fadetobg 16 + panse SE_M_BARRIER, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +3, 0 + fadetobg BG_COSMIC waitbgfadein waitforvisualfinish createsprite gMeteorMashStarSpriteTemplate, ANIM_TARGET, 3, -48, -64, 72, 32, 30 @@ -8881,9 +8876,9 @@ Move_METEOR_MASH:: createsprite gSpinningHandOrFootSpriteTemplate, ANIM_TARGET, 3, 0, 0, 0, 30 createsprite gMeteorMashStarSpriteTemplate, ANIM_TARGET, 3, -80, -64, 40, 32, 30 delay 20 - playsewithpan SE_M_VITAL_THROW2, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, 1, 1 - createvisualtask AnimTask_ShakeMon2, 2, 1, 5, 0, 20, 1 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, ANIM_TARGET, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 5, 0, 20, 1 waitforvisualfinish delay 10 restorebg @@ -8891,118 +8886,118 @@ Move_METEOR_MASH:: waitforvisualfinish end -Move_REVENGE:: +Move_REVENGE: loadspritegfx ANIM_TAG_PURPLE_SCRATCH - monbg 1 + monbg ANIM_TARGET setalpha 12, 8 - playsewithpan SE_M_TAKE_DOWN, 192 + playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER createsprite gRevengeSmallScratchSpriteTemplate, ANIM_ATTACKER, 2, 10, -10 waitforvisualfinish - createvisualtask AnimTask_CurseBlendEffect, 2, 2, 0, 4, 2, 8, 31 + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_ATTACKER, 0, 4, 2, 8, RGB_RED waitforvisualfinish unloadspritegfx ANIM_TAG_PURPLE_SCRATCH loadspritegfx ANIM_TAG_PURPLE_SWIPE createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 6, 4 delay 4 - playsewithpan SE_M_SWAGGER, 63 + playsewithpan SE_M_SWAGGER, SOUND_PAN_TARGET createsprite gRevengeBigScratchSpriteTemplate, ANIM_TARGET, 2, 10, -10 waitforvisualfinish unloadspritegfx ANIM_TAG_PURPLE_SWIPE loadspritegfx ANIM_TAG_IMPACT - createvisualtask AnimTask_ShakeMon2, 2, 1, 3, 0, 10, 1 - createsprite gPersistHitSplatSpriteTemplate, ANIM_TARGET, 3, -10, -8, 1, 1, 8 - playsewithpan SE_M_VITAL_THROW2, 63 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 3, 0, 10, 1 + createsprite gPersistHitSplatSpriteTemplate, ANIM_TARGET, 3, -10, -8, ANIM_TARGET, 1, 8 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET delay 8 - createsprite gPersistHitSplatSpriteTemplate, ANIM_TARGET, 3, 10, 8, 1, 1, 8 - playsewithpan SE_M_MEGA_KICK2, 63 + createsprite gPersistHitSplatSpriteTemplate, ANIM_TARGET, 3, 10, 8, ANIM_TARGET, 1, 8 + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff end -Move_POISON_FANG:: +Move_POISON_FANG: loadspritegfx ANIM_TAG_FANG_ATTACK loadspritegfx ANIM_TAG_POISON_BUBBLE - playsewithpan SE_M_BITE, 63 - createsprite gFangSpriteTemplate, ANIM_TARGET, 2, + playsewithpan SE_M_BITE, SOUND_PAN_TARGET + createsprite gFangSpriteTemplate, ANIM_TARGET, 2 delay 10 - createvisualtask AnimTask_ShakeMon, 3, 1, 3, 0, 10, 1 + createvisualtask AnimTask_ShakeMon, 3, ANIM_TARGET, 3, 0, 10, 1 waitforvisualfinish - createvisualtask AnimTask_CurseBlendEffect, 2, 4, 0, 4, 0, 12, 26650 + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_TARGET, 0, 4, 0, 12, RGB(26, 0, 26) call PoisonBubblesEffect waitforvisualfinish end -Move_SUBSTITUTE:: - playsewithpan SE_M_ATTRACT, 192 - createvisualtask AnimTask_MonToSubstitute, 2, +Move_SUBSTITUTE: + playsewithpan SE_M_ATTRACT, SOUND_PAN_ATTACKER + createvisualtask AnimTask_MonToSubstitute, 2 end -Move_FRENZY_PLANT:: +Move_FRENZY_PLANT: loadspritegfx ANIM_TAG_ROOTS loadspritegfx ANIM_TAG_IMPACT - monbg 1 - monbgprio_28 1 + monbg ANIM_TARGET + splitbgprio ANIM_TARGET setalpha 12, 8 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 1, 2, 0, 5, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, F_PAL_BG, 2, 0, 5, RGB_BLACK waitforvisualfinish createsprite gFrenzyPlantRootSpriteTemplate, ANIM_ATTACKER, 2, 10, 8, 2, 0, 0, 100 - playsewithpan SE_M_SCRATCH, 192 + playsewithpan SE_M_SCRATCH, SOUND_PAN_ATTACKER delay 5 createsprite gFrenzyPlantRootSpriteTemplate, ANIM_ATTACKER, 2, 20, -8, -2, 0, 1, 95 - playsewithpan SE_M_SCRATCH, 213 + playsewithpan SE_M_SCRATCH, -43 delay 5 createsprite gFrenzyPlantRootSpriteTemplate, ANIM_ATTACKER, 2, 30, 8, -4, 0, 0, 90 - playsewithpan SE_M_SCRATCH, 234 + playsewithpan SE_M_SCRATCH, -22 delay 5 createsprite gFrenzyPlantRootSpriteTemplate, ANIM_ATTACKER, 2, 40, -8, 4, 0, 1, 85 playsewithpan SE_M_SCRATCH, 0 delay 5 createsprite gFrenzyPlantRootSpriteTemplate, ANIM_ATTACKER, 2, 50, 8, 0, 0, 0, 85 - playsewithpan SE_M_SCRATCH, 21 + playsewithpan SE_M_SCRATCH, +21 delay 5 createsprite gFrenzyPlantRootSpriteTemplate, ANIM_ATTACKER, 2, 60, -8, -2, 0, 1, 85 - playsewithpan SE_M_SCRATCH, 42 + playsewithpan SE_M_SCRATCH, +42 delay 5 createsprite gFrenzyPlantRootSpriteTemplate, ANIM_ATTACKER, 2, 75, 8, 0, 0, 0, 85 - playsewithpan SE_M_SCRATCH, 63 + playsewithpan SE_M_SCRATCH, SOUND_PAN_TARGET delay 5 createsprite gFrenzyPlantRootSpriteTemplate, ANIM_ATTACKER, 2, 85, 16, 6, 0, 3, 80 - playsewithpan SE_M_SCRATCH, 63 + playsewithpan SE_M_SCRATCH, SOUND_PAN_TARGET delay 5 createsprite gFrenzyPlantRootSpriteTemplate, ANIM_ATTACKER, 2, 85, -16, -6, 0, 2, 75 - playsewithpan SE_M_SCRATCH, 63 + playsewithpan SE_M_SCRATCH, SOUND_PAN_TARGET delay 5 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -10, -10, 1, 3 - playsewithpan SE_M_DOUBLE_SLAP, 63 - createvisualtask AnimTask_ShakeMon, 3, 1, 8, 0, 20, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -10, -10, ANIM_TARGET, 3 + playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMon, 3, ANIM_TARGET, 8, 0, 20, 1 delay 3 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 10, 8, 1, 3 - playsewithpan SE_M_DOUBLE_SLAP, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 10, 8, ANIM_TARGET, 3 + playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET delay 3 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 10, -3, 1, 2 - playsewithpan SE_M_DOUBLE_SLAP, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 10, -3, ANIM_TARGET, 2 + playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET delay 3 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -3, 1, 1, 2 - playsewithpan SE_M_DOUBLE_SLAP, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -3, 1, ANIM_TARGET, 2 + playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET delay 2 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -10, 1, 1, 1 - playsewithpan SE_M_DOUBLE_SLAP, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -10, 1, ANIM_TARGET, 1 + playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET delay 2 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 10, 1, 1 - playsewithpan SE_M_DOUBLE_SLAP, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 10, ANIM_TARGET, 1 + playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET waitforvisualfinish - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 1, 2, 5, 0, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, F_PAL_BG, 2, 5, 0, RGB_BLACK waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff end -Move_METAL_SOUND:: +Move_METAL_SOUND: loadspritegfx ANIM_TAG_METAL_SOUND_WAVES monbg ANIM_DEF_PARTNER - monbgprio_2A 1 - createvisualtask AnimTask_ShakeMon2, 2, 0, 2, 0, 8, 1 + splitbgprio_foes ANIM_TARGET + createvisualtask AnimTask_ShakeMon2, 2, ANIM_ATTACKER, 2, 0, 8, 1 call MetalSoundRings call MetalSoundRings call MetalSoundRings @@ -9013,45 +9008,46 @@ Move_METAL_SOUND:: waitforvisualfinish end -MetalSoundRings:: - panse_1B SE_M_SCREECH, 192, 63, 2, 0 +MetalSoundRings: + panse SE_M_SCREECH, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 createsprite gMetalSoundSpriteTemplate, ANIM_TARGET, 2, 16, 0, 0, 0, 30, 0 delay 2 return -Move_FOCUS_PUNCH:: +Move_FOCUS_PUNCH: goto FocusPunch -FocusPunchEnd:: + +FocusPunchEnd: waitforvisualfinish end -FocusPunch:: +FocusPunch: loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_HANDS_AND_FEET delay 1 - createvisualtask AnimTask_IsContest, 2, - jumpargeq 7, 1, FocusPunchInContest - createvisualtask AnimTask_IsTargetPlayerSide, 2, - jumpargeq 7, 0, FocusPunchOnOpponent - jumpargeq 7, 1, FocusPunchOnPlayer -FocusPunchContinue:: + createvisualtask AnimTask_IsContest, 2 + jumprettrue FocusPunchInContest + createvisualtask AnimTask_IsTargetPlayerSide, 2 + jumpretfalse FocusPunchOnOpponent + jumprettrue FocusPunchOnPlayer +FocusPunchContinue: waitbgfadein monbg ANIM_DEF_PARTNER setalpha 12, 8 - playsewithpan SE_M_SWAGGER, 63 + playsewithpan SE_M_SWAGGER, SOUND_PAN_TARGET createsprite gFocusPunchFistSpriteTemplate, ANIM_TARGET, 2 delay 10 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -10, -8, 1, 0 - createvisualtask AnimTask_ShakeMon, 5, 1, 8, 0, 24, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -10, -8, ANIM_TARGET, 0 + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 8, 0, 24, 1 delay 8 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 10, 2, 1, 0 - playsewithpan SE_M_VITAL_THROW2, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 10, 2, ANIM_TARGET, 0 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET delay 8 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 10, -6, 1, 0 - playsewithpan SE_M_VITAL_THROW2, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 10, -6, ANIM_TARGET, 0 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET delay 8 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 8, 1, 0 - playsewithpan SE_M_MEGA_KICK2, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 8, ANIM_TARGET, 0 + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET waitforvisualfinish restorebg waitbgfadein @@ -9059,191 +9055,191 @@ FocusPunchContinue:: blendoff goto FocusPunchEnd -FocusPunchOnOpponent:: - fadetobg 4 +FocusPunchOnOpponent: + fadetobg BG_IMPACT_OPPONENT goto FocusPunchContinue -FocusPunchOnPlayer:: - fadetobg 5 +FocusPunchOnPlayer: + fadetobg BG_IMPACT_PLAYER goto FocusPunchContinue -FocusPunchInContest:: - fadetobg 6 +FocusPunchInContest: + fadetobg BG_IMPACT_CONTESTS goto FocusPunchContinue -Move_RETURN:: +Move_RETURN: loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER setalpha 12, 8 - createvisualtask AnimTask_GetReturnPowerLevel, 2, + createvisualtask AnimTask_GetReturnPowerLevel, 2 delay 2 - jumpargeq 7, 0, ReturnWeak - jumpargeq 7, 1, ReturnMedium - jumpargeq 7, 2, ReturnStrong - jumpargeq 7, 3, ReturnStrongest -ReturnContinue:: + jumpreteq 0, ReturnWeak + jumpreteq 1, ReturnMedium + jumpreteq 2, ReturnStrong + jumpreteq 3, ReturnStrongest +ReturnContinue: waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff end -ReturnWeak:: - createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 16, 1, 0 - createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, -64 +ReturnWeak: + createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 16, 1, ANIM_ATTACKER + createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER waitforvisualfinish - createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 16, 1, 0 - createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, -64 + createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 16, 1, ANIM_ATTACKER + createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER delay 5 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -10, -8, 1, 2 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_COMET_PUNCH, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -10, -8, ANIM_TARGET, 2 + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_COMET_PUNCH, SOUND_PAN_TARGET goto ReturnContinue -ReturnMedium:: - createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 6, 1, 0 - createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, -64 +ReturnMedium: + createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 6, 1, ANIM_ATTACKER + createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER waitforvisualfinish - createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 6, 1, 0 - createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, -64 + createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 6, 1, ANIM_ATTACKER + createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER waitforvisualfinish delay 11 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 5, 4 delay 6 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1, 2 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_MEGA_KICK2, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, ANIM_TARGET, 2 + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_MEGA_KICK2, SOUND_PAN_TARGET goto ReturnContinue -ReturnStrong:: - createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 6, 1, 0 - createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, -64 +ReturnStrong: + createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 6, 1, ANIM_ATTACKER + createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER waitforvisualfinish - createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 6, 1, 0 - createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, -64 + createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 6, 1, ANIM_ATTACKER + createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER waitforvisualfinish - createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 6, 1, 0 - createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, -64 + createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 6, 1, ANIM_ATTACKER + createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER waitforvisualfinish - createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 6, 1, 0 - createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, -64 + createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 6, 1, ANIM_ATTACKER + createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER waitforvisualfinish - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -10, -8, 1, 2 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_VITAL_THROW2, 63 - createvisualtask AnimTask_ShakeMon, 5, 1, 6, 0, 8, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -10, -8, ANIM_TARGET, 2 + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_VITAL_THROW2, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 6, 0, 8, 1 delay 8 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 10, 10, 1, 2 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_VITAL_THROW2, 63 - createvisualtask AnimTask_ShakeMon, 5, 1, 6, 0, 8, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 10, 10, ANIM_TARGET, 2 + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_VITAL_THROW2, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 6, 0, 8, 1 delay 8 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 3, -5, 1, 2 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_VITAL_THROW2, 63 - createvisualtask AnimTask_ShakeMon, 5, 1, 6, 0, 8, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 3, -5, ANIM_TARGET, 2 + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_VITAL_THROW2, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 6, 0, 8, 1 delay 8 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -5, 3, 1, 2 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_VITAL_THROW2, 63 - createvisualtask AnimTask_ShakeMon, 5, 1, 6, 0, 8, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -5, 3, ANIM_TARGET, 2 + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_VITAL_THROW2, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 6, 0, 8, 1 goto ReturnContinue -ReturnStrongest:: - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 0, 0, 6, 0 +ReturnStrongest: + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 0, 0, 6, RGB_BLACK waitforvisualfinish - createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 16, 1, 0 - createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, -64 + createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 16, 1, ANIM_ATTACKER + createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER delay 8 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 3, -5, 1, 2 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_VITAL_THROW2, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 3, -5, ANIM_TARGET, 2 + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_VITAL_THROW2, SOUND_PAN_TARGET waitforvisualfinish - createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 12, 1, 0 - createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, -64 + createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 12, 1, ANIM_ATTACKER + createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER delay 5 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -10, -8, 1, 2 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_VITAL_THROW2, 63 - createvisualtask AnimTask_ShakeMon, 5, 1, 6, 0, 8, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -10, -8, ANIM_TARGET, 2 + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_VITAL_THROW2, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 6, 0, 8, 1 waitforvisualfinish delay 4 - createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 8, 1, 0 - createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, -64 + createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 8, 1, ANIM_ATTACKER + createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER delay 5 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -10, -8, 1, 2 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_VITAL_THROW2, 63 - createvisualtask AnimTask_ShakeMon, 5, 1, 6, 0, 8, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -10, -8, ANIM_TARGET, 2 + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_VITAL_THROW2, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 6, 0, 8, 1 waitforvisualfinish delay 2 - createvisualtask AnimTask_CloneBattlerSpriteWithBlend, 2, 0, 4, 5, 1 - createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 4, 1, 0 - createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, -64 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -10, -8, 1, 2 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_VITAL_THROW2, 63 - createvisualtask AnimTask_ShakeMon, 5, 1, 6, 0, 8, 1 - createvisualtask AnimTask_CloneBattlerSpriteWithBlend, 2, 0, 4, 5, 1 + createvisualtask AnimTask_TraceMonBlended, 2, 0, 4, 5, 1 + createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 4, 1, ANIM_ATTACKER + createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -10, -8, ANIM_TARGET, 2 + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_VITAL_THROW2, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 6, 0, 8, 1 + createvisualtask AnimTask_TraceMonBlended, 2, 0, 4, 5, 1 waitforvisualfinish - createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 4, 2, 0 - createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, -64 + createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 4, 2, ANIM_ATTACKER + createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER delay 5 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -10, -8, 1, 2 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_VITAL_THROW2, 63 - createvisualtask AnimTask_ShakeMon, 5, 1, 6, 0, 8, 1 - createvisualtask AnimTask_CloneBattlerSpriteWithBlend, 2, 0, 4, 5, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -10, -8, ANIM_TARGET, 2 + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_VITAL_THROW2, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 6, 0, 8, 1 + createvisualtask AnimTask_TraceMonBlended, 2, 0, 4, 5, 1 waitforvisualfinish call ReturnStrongestHit call ReturnStrongestHit call ReturnStrongestHit call ReturnStrongestHit - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -10, -8, 1, 0 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_MEGA_KICK2, 63 - createvisualtask AnimTask_ShakeMon, 5, 1, 8, 0, 24, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -10, -8, ANIM_TARGET, 0 + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_MEGA_KICK2, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 8, 0, 24, 1 delay 6 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 10, 10, 1, 0 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_MEGA_KICK2, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 10, 10, ANIM_TARGET, 0 + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_MEGA_KICK2, SOUND_PAN_TARGET delay 6 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 3, -5, 1, 0 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_MEGA_KICK2, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 3, -5, ANIM_TARGET, 0 + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_MEGA_KICK2, SOUND_PAN_TARGET delay 6 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -5, 3, 1, 0 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_MEGA_KICK2, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, -5, 3, ANIM_TARGET, 0 + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_MEGA_KICK2, SOUND_PAN_TARGET waitforvisualfinish - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 0, 6, 0, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 0, 6, 0, RGB_BLACK goto ReturnContinue -ReturnStrongestHit:: - createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 4, 3, 0 - createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, -64 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 2 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_VITAL_THROW2, 63 - createvisualtask AnimTask_ShakeMon, 5, 1, 6, 0, 8, 1 - createvisualtask AnimTask_CloneBattlerSpriteWithBlend, 2, 0, 4, 5, 1 +ReturnStrongestHit: + createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 4, 3, ANIM_ATTACKER + createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 2 + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_VITAL_THROW2, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 6, 0, 8, 1 + createvisualtask AnimTask_TraceMonBlended, 2, 0, 4, 5, 1 waitforvisualfinish return -Move_COSMIC_POWER:: +Move_COSMIC_POWER: loadspritegfx ANIM_TAG_SPARKLE_2 createvisualtask SoundTask_PlaySE2WithPanning, 5, SE_M_COSMIC_POWER, 0 playsewithpan SE_M_COSMIC_POWER, 0 - createvisualtask AnimTask_BlendNonAttackerPalettes, 2, 0, 0, 15, 0 + createvisualtask AnimTask_BlendNonAttackerPalettes, 2, 0, 0, 15, RGB_BLACK waitforvisualfinish - fadetobg 16 + fadetobg BG_COSMIC waitbgfadeout createvisualtask AnimTask_StartSlidingBg, 2, 0, 128, 0, -1 waitbgfadein delay 70 - createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_MORNING_SUN, -64 + createvisualtask SoundTask_PlaySE1WithPanning, 5, SE_M_MORNING_SUN, SOUND_PAN_ATTACKER createsprite gGrantingStarsSpriteTemplate, ANIM_ATTACKER, 2, -15, 0, 0, 0, 32, 60 delay 8 createsprite gGrantingStarsSpriteTemplate, ANIM_ATTACKER, 2, 12, -5, 0, 0, 32, 60 delay 40 - createvisualtask AnimTask_BlendNonAttackerPalettes, 2, 0, 15, 0, 0 + createvisualtask AnimTask_BlendNonAttackerPalettes, 2, 0, 15, 0, RGB_BLACK waitforvisualfinish restorebg waitbgfadeout - setarg 7, 65535 + setarg 7, 0xFFFF waitbgfadein waitforvisualfinish end -Move_BLAST_BURN:: +Move_BLAST_BURN: loadspritegfx ANIM_TAG_FIRE_PLUME loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER setalpha 12, 8 - playsewithpan SE_M_SACRED_FIRE, 192 + playsewithpan SE_M_SACRED_FIRE, SOUND_PAN_ATTACKER createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 2, -32, 0, 24, 0, 0, 0 createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 2, -20, -10, 24, 0, 0, 0 createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 66, 0, -16, 24, 0, 0, 0 @@ -9253,25 +9249,25 @@ Move_BLAST_BURN:: createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 2, 0, 16, 24, 0, 0, 0 createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 2, -20, 10, 24, 0, 0, 0 delay 25 - playsewithpan SE_M_FLAME_WHEEL2, 192 + playsewithpan SE_M_FLAME_WHEEL2, SOUND_PAN_ATTACKER createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 2, -64, 0, 24, 0, 0, 0 createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 6, -40, -20, 24, 0, 0, 0 createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 70, 0, -32, 24, 0, 0, 0 createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 70, 40, -20, 24, 0, 0, 0 - createvisualtask AnimTask_ShakeMon, 5, 1, 6, 0, 8, 1 + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 6, 0, 8, 1 createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 66, 64, 0, 24, 0, 0, 0 createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 66, 40, 20, 24, 0, 0, 0 createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 2, 0, 32, 24, 0, 0, 0 createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 2, -40, 20, 24, 0, 0, 0 createvisualtask AnimTask_InvertScreenColor, 2, 257, 257, 257 delay 25 - playsewithpan SE_M_FLAME_WHEEL2, 192 + playsewithpan SE_M_FLAME_WHEEL2, SOUND_PAN_ATTACKER createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 2, -96, 0, 24, 0, 0, 0 createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 6, -60, -30, 24, 0, 0, 0 createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 70, 0, -48, 24, 0, 0, 0 createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 70, 60, -30, 24, 0, 0, 0 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, -4, 3, 1, 0 - createvisualtask AnimTask_ShakeMon, 5, 1, 12, 0, 20, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, -4, 3, ANIM_TARGET, 0 + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 12, 0, 20, 1 createvisualtask AnimTask_ShakeBattleTerrain, 2, 2, 0, 10, 1 createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 66, 96, 0, 24, 0, 0, 0 createsprite gFirePlumeSpriteTemplate, ANIM_ATTACKER, 66, 60, 30, 24, 0, 0, 0 @@ -9283,7 +9279,7 @@ Move_BLAST_BURN:: blendoff end -Move_ROCK_TOMB:: +Move_ROCK_TOMB: loadspritegfx ANIM_TAG_X_SIGN loadspritegfx ANIM_TAG_ROCKS createvisualtask AnimTask_ShakeBattleTerrain, 2, 2, 0, 10, 1 @@ -9291,47 +9287,47 @@ Move_ROCK_TOMB:: createsprite gRockTombRockSpriteTemplate, ANIM_TARGET, 2, 20, 12, 64, 114, 0 delay 8 createvisualtask AnimTask_ShakeBattleTerrain, 2, 0, 2, 3, 1 - playsewithpan SE_M_STRENGTH, 63 + playsewithpan SE_M_STRENGTH, SOUND_PAN_TARGET delay 8 createsprite gRockTombRockSpriteTemplate, ANIM_TARGET, 2, -20, 12, 64, 98, 0 delay 8 createvisualtask AnimTask_ShakeBattleTerrain, 2, 0, 2, 3, 1 - playsewithpan SE_M_STRENGTH, 63 + playsewithpan SE_M_STRENGTH, SOUND_PAN_TARGET delay 8 createsprite gRockTombRockSpriteTemplate, ANIM_TARGET, 66, 3, 6, 64, 82, 0 delay 8 createvisualtask AnimTask_ShakeBattleTerrain, 2, 0, 2, 3, 1 - playsewithpan SE_M_STRENGTH, 63 + playsewithpan SE_M_STRENGTH, SOUND_PAN_TARGET delay 8 createsprite gRockTombRockSpriteTemplate, ANIM_TARGET, 2, -3, 13, 64, 66, 0 delay 8 createvisualtask AnimTask_ShakeBattleTerrain, 2, 0, 2, 3, 1 - playsewithpan SE_M_STRENGTH, 63 + playsewithpan SE_M_STRENGTH, SOUND_PAN_TARGET delay 24 - playsewithpan SE_M_HYPER_BEAM, 63 - createsprite gRedXSpriteTemplate, ANIM_TARGET, 5, 1, 50 - createvisualtask AnimTask_ShakeMon, 5, 1, 3, 0, 20, 1 + playsewithpan SE_M_HYPER_BEAM, SOUND_PAN_TARGET + createsprite gRedXSpriteTemplate, ANIM_TARGET, 5, ANIM_TARGET, 50 + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 3, 0, 20, 1 createvisualtask AnimTask_ShakeBattleTerrain, 2, 2, 0, 10, 1 waitforvisualfinish end -Move_SILVER_WIND:: +Move_SILVER_WIND: loadspritegfx ANIM_TAG_SPARKLE_6 - panse_1B SE_M_GUST, 192, 63, 2, 0 + panse SE_M_GUST, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 playsewithpan SE_M_MORNING_SUN, 0 delay 0 monbg ANIM_DEF_PARTNER - monbgprio_29 + splitbgprio_all delay 0 - createvisualtask AnimTask_BlendExcept, 10, 1, 0, 0, 4, 0 - createvisualtask AnimTask_GetTargetSide, 2, - jumpargeq 7, 1, SilverWindOnPlayer + createvisualtask AnimTask_BlendBattleAnimPalExclude, 10, ANIM_TARGET, 0, 0, 4, RGB_BLACK + createvisualtask AnimTask_GetTargetSide, 2 + jumprettrue SilverWindOnPlayer fadetobg BG_BUG_OPPONENT waitbgfadeout createvisualtask AnimTask_StartSlidingBg, 5, 1536, 0, 0, -1 -SilverWindContinue:: +SilverWindContinue: delay 0 - createvisualtask AnimTask_BlendSelected, 10, 1, 0, 4, 4, RGB_BLACK + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_BG, 0, 4, 4, RGB_BLACK waitbgfadein createsprite gSilverWindBigSparkSpriteTemplate, ANIM_TARGET, 66, -32, 16, 0, 6, 2, 3, 1 createsprite gSilverWindBigSparkSpriteTemplate, ANIM_TARGET, 66, -8, 18, 64, 3, 2, 2, 1 @@ -9357,38 +9353,38 @@ SilverWindContinue:: createsprite gSilverWindSmallSparkSpriteTemplate, ANIM_TARGET, 66, -4, 16, 0, 6, 1, 2, 1 createsprite gSilverWindSmallSparkSpriteTemplate, ANIM_TARGET, 66, -16, 12, 192, 5, 2, 3, 1 waitforvisualfinish - playsewithpan SE_M_GUST2, 63 + playsewithpan SE_M_GUST2, SOUND_PAN_TARGET clearmonbg ANIM_DEF_PARTNER delay 0 restorebg waitbgfadeout - createvisualtask AnimTask_BlendExcept, 10, 1, 0, 4, 0, 0 - setarg 7, 65535 + createvisualtask AnimTask_BlendBattleAnimPalExclude, 10, ANIM_TARGET, 0, 4, 0, RGB_BLACK + setarg 7, 0xFFFF waitbgfadein end -SilverWindOnPlayer:: +SilverWindOnPlayer: fadetobg BG_BUG_PLAYER waitbgfadeout createvisualtask AnimTask_StartSlidingBg, 5, -1536, 0, 0, -1 goto SilverWindContinue -Move_SNATCH:: - playsewithpan SE_M_TAKE_DOWN, 192 - createvisualtask AnimTask_WindUpLunge, 5, 0, -12, 4, 10, 10, 12, 6 +Move_SNATCH: + playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER + createvisualtask AnimTask_WindUpLunge, 5, ANIM_ATTACKER, -12, 4, 10, 10, 12, 6 end -Move_DIVE:: +Move_DIVE: loadspritegfx ANIM_TAG_SPLASH loadspritegfx ANIM_TAG_SWEAT_BEAD choosetwoturnanim DiveSetUp, DiveAttack -DiveSetUp:: +DiveSetUp: loadspritegfx ANIM_TAG_ROUND_SHADOW - playsewithpan SE_M_HEADBUTT, 192 + playsewithpan SE_M_HEADBUTT, SOUND_PAN_ATTACKER createsprite gDiveBallSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 13, 336 waitforvisualfinish - playsewithpan SE_M_DIVE, 192 + playsewithpan SE_M_DIVE, SOUND_PAN_ATTACKER createsprite gDiveWaterSplashSpriteTemplate, ANIM_ATTACKER, 3, 0 call DiveSetUpWaterDroplets call DiveSetUpWaterDroplets @@ -9397,17 +9393,17 @@ DiveSetUp:: call DiveSetUpWaterDroplets end -DiveSetUpWaterDroplets:: +DiveSetUpWaterDroplets: createsprite gSprayWaterDropletSpriteTemplate, ANIM_ATTACKER, 5, 0, 0 createsprite gSprayWaterDropletSpriteTemplate, ANIM_ATTACKER, 5, 1, 0 return -DiveAttack:: +DiveAttack: loadspritegfx ANIM_TAG_WATER_IMPACT loadspritegfx ANIM_TAG_SMALL_BUBBLES monbg ANIM_DEF_PARTNER setalpha 12, 8 - playsewithpan SE_M_EXPLOSION, 63 + playsewithpan SE_M_EXPLOSION, SOUND_PAN_TARGET createsprite gDiveWaterSplashSpriteTemplate, ANIM_TARGET, 3, 1 call DiveAttackWaterDroplets call DiveAttackWaterDroplets @@ -9417,40 +9413,40 @@ DiveAttack:: delay 12 call RisingWaterHitEffect waitforvisualfinish - visible 0 + visible ANIM_ATTACKER clearmonbg ANIM_DEF_PARTNER blendoff end -DiveAttackWaterDroplets:: +DiveAttackWaterDroplets: createsprite gSprayWaterDropletSpriteTemplate, ANIM_TARGET, 5, 0, 1 createsprite gSprayWaterDropletSpriteTemplate, ANIM_TARGET, 5, 1, 1 return -Move_ROCK_BLAST:: +Move_ROCK_BLAST: loadspritegfx ANIM_TAG_ROCKS loadspritegfx ANIM_TAG_IMPACT createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 4, 6 delay 3 - playsewithpan SE_M_SWAGGER, 192 + playsewithpan SE_M_SWAGGER, SOUND_PAN_ATTACKER createsprite gRockBlastRockSpriteTemplate, ANIM_TARGET, 2, 16, 0, 0, 0, 25, 257 waitforvisualfinish - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, 1, 1 - playsewithpan SE_M_ROCK_THROW, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, ANIM_TARGET, 1 + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET createsprite gRockFragmentSpriteTemplate, ANIM_TARGET, 2, 0, 0, 20, 24, 14, 2 - createvisualtask AnimTask_ShakeMon, 2, 1, 3, 0, 5, 1 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 5, 1 createsprite gRockFragmentSpriteTemplate, ANIM_TARGET, 2, 5, 0, -20, 24, 14, 1 createsprite gRockFragmentSpriteTemplate, ANIM_TARGET, 2, 0, 5, 20, -24, 14, 2 createsprite gRockFragmentSpriteTemplate, ANIM_TARGET, 2, -5, 0, -20, -24, 14, 2 waitforvisualfinish end -Move_OVERHEAT:: +Move_OVERHEAT: loadspritegfx ANIM_TAG_SMALL_EMBER loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER setalpha 12, 18 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 0, 5, 28 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 1, 0, 5, RGB(28, 0, 0) waitforvisualfinish createvisualtask AnimTask_AllocBackupPalBuffer, 5 waitforvisualfinish @@ -9458,13 +9454,13 @@ Move_OVERHEAT:: delay 1 createvisualtask AnimTask_CopyPalFadedToUnfaded, 5, 0 delay 1 - playsewithpan SE_M_DRAGON_RAGE, 192 + playsewithpan SE_M_DRAGON_RAGE, SOUND_PAN_ATTACKER createvisualtask AnimTask_CopyPalUnfadedToBackup, 5, 1, 0 delay 1 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 2, 1, 0, 13, 28 - createvisualtask AnimTask_ShakeMon, 5, 0, 2, 0, 15, 1 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_ATTACKER, 1, 0, 13, RGB(28, 0, 0) + createvisualtask AnimTask_ShakeMon, 5, ANIM_ATTACKER, 2, 0, 15, 1 waitforvisualfinish - playsewithpan SE_M_FLAME_WHEEL2, 192 + playsewithpan SE_M_FLAME_WHEEL2, SOUND_PAN_ATTACKER createsprite gOverheatFlameSpriteTemplate, ANIM_ATTACKER, 2, 1, 0, 30, 25, -20 createsprite gOverheatFlameSpriteTemplate, ANIM_ATTACKER, 2, 1, 32, 30, 25, -20 createsprite gOverheatFlameSpriteTemplate, ANIM_ATTACKER, 2, 1, 64, 30, 25, -20 @@ -9493,26 +9489,26 @@ Move_OVERHEAT:: createsprite gOverheatFlameSpriteTemplate, ANIM_ATTACKER, 66, 1, 224, 30, 25, 10 delay 5 waitforvisualfinish - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, -5, 3, 1, 0 - playsewithpan SE_M_FIRE_PUNCH, 63 - createvisualtask AnimTask_ShakeMon, 2, 1, 10, 0, 25, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, -5, 3, ANIM_TARGET, 0 + playsewithpan SE_M_FIRE_PUNCH, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 10, 0, 25, 1 delay 6 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 8, -5, 1, 0 - playsewithpan SE_M_FIRE_PUNCH, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 8, -5, ANIM_TARGET, 0 + playsewithpan SE_M_FIRE_PUNCH, SOUND_PAN_TARGET delay 8 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 10, 10, 1, 0 - playsewithpan SE_M_FIRE_PUNCH, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 10, 10, ANIM_TARGET, 0 + playsewithpan SE_M_FIRE_PUNCH, SOUND_PAN_TARGET delay 8 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, 1, 0 - playsewithpan SE_M_FIRE_PUNCH, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, ANIM_TARGET, 0 + playsewithpan SE_M_FIRE_PUNCH, SOUND_PAN_TARGET createvisualtask AnimTask_CopyPalFadedToUnfaded, 5, 1 delay 1 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 2, -1, 0, 13, 19026 - createvisualtask AnimTask_ShakeMon, 5, 0, 3, 0, 15, 1 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_ATTACKER, -1, 0, 13, RGB(18, 18, 18) + createvisualtask AnimTask_ShakeMon, 5, ANIM_ATTACKER, 3, 0, 15, 1 waitforvisualfinish createvisualtask AnimTask_CopyPalUnfadedFromBackup, 5, 0, 1 delay 1 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 5, 0, 28 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 1, 5, 0, RGB(28, 0, 0) waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff @@ -9520,36 +9516,36 @@ Move_OVERHEAT:: delay 15 createvisualtask AnimTask_CopyPalUnfadedFromBackup, 5, 1, 0 delay 1 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 2, 0, 13, 0, 19026 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_ATTACKER, 0, 13, 0, RGB(18, 18, 18) waitforvisualfinish createvisualtask AnimTask_FreeBackupPalBuffer, 5 waitforvisualfinish end -Move_HYDRO_CANNON:: +Move_HYDRO_CANNON: loadspritegfx ANIM_TAG_WATER_ORB loadspritegfx ANIM_TAG_WATER_IMPACT monbg ANIM_DEF_PARTNER setalpha 12, 8 - playsewithpan SE_M_SURF, 192 - createsprite gHydroCannonChargeSpriteTemplate, ANIM_TARGET, 2, + playsewithpan SE_M_SURF, SOUND_PAN_ATTACKER + createsprite gHydroCannonChargeSpriteTemplate, ANIM_TARGET, 2 delay 10 createvisualtask AnimTask_InvertScreenColor, 2, 257, 257, 257 delay 30 - panse_1B SE_M_HYDRO_PUMP, 192, 63, 2, 0 + panse SE_M_HYDRO_PUMP, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, +2, 0 call HydroCannonBeam - createvisualtask AnimTask_ShakeMon, 5, 1, 10, 0, 40, 1 - createsprite gWaterHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, 1, 0 + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 10, 0, 40, 1 + createsprite gWaterHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, ANIM_TARGET, 0 call HydroCannonBeam - createsprite gWaterHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, 1, 0 + createsprite gWaterHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, ANIM_TARGET, 0 call HydroCannonBeam - createsprite gWaterHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, 1, 0 + createsprite gWaterHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, ANIM_TARGET, 0 call HydroCannonBeam - createsprite gWaterHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, 1, 0 + createsprite gWaterHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, ANIM_TARGET, 0 call HydroCannonBeam - createsprite gWaterHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, 1, 0 + createsprite gWaterHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, ANIM_TARGET, 0 call HydroCannonBeam - createsprite gWaterHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, 1, 0 + createsprite gWaterHitSplatSpriteTemplate, ANIM_TARGET, 2, 0, 0, ANIM_TARGET, 0 waitforvisualfinish createvisualtask AnimTask_InvertScreenColor, 2, 257, 257, 257 waitforvisualfinish @@ -9557,7 +9553,7 @@ Move_HYDRO_CANNON:: blendoff end -HydroCannonBeam:: +HydroCannonBeam: createsprite gHydroCannonBeamSpriteTemplate, ANIM_TARGET, 2, 10, -10, 0, 0, 15, 257 delay 1 createsprite gHydroCannonBeamSpriteTemplate, ANIM_TARGET, 2, 10, -10, 0, 0, 15, 257 @@ -9569,54 +9565,54 @@ HydroCannonBeam:: createsprite gHydroCannonBeamSpriteTemplate, ANIM_TARGET, 2, 10, -10, 0, 0, 15, 257 return -Move_ASTONISH:: +Move_ASTONISH: loadspritegfx ANIM_TAG_SWEAT_BEAD - playsewithpan SE_M_ENCORE, 192 + playsewithpan SE_M_ENCORE, SOUND_PAN_ATTACKER createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 4, 6 delay 25 createsprite gSprayWaterDropletSpriteTemplate, ANIM_TARGET, 5, 0, 1 - playsewithpan SE_M_SKETCH, 63 + playsewithpan SE_M_SKETCH, SOUND_PAN_TARGET createsprite gSprayWaterDropletSpriteTemplate, ANIM_TARGET, 5, 1, 1 - createvisualtask AnimTask_ShakeMon2, 2, 1, 4, 0, 5, 1 - createvisualtask AnimTask_StretchTargetUp, 3, + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 5, 1 + createvisualtask AnimTask_StretchTargetUp, 3 waitforvisualfinish end -Move_SEISMIC_TOSS:: +Move_SEISMIC_TOSS: loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_ROCKS setarg 7, 0 monbg ANIM_DEF_PARTNER setalpha 12, 8 waitforvisualfinish - createvisualtask AnimTask_GetSeismicTossDamageLevel, 3, + createvisualtask AnimTask_GetSeismicTossDamageLevel, 3 delay 1 - fadetobg 17 + fadetobg BG_IN_AIR waitbgfadeout createvisualtask AnimTask_MoveSeismicTossBg, 3 playsewithpan SE_M_SKY_UPPERCUT, 0 waitbgfadein waitforvisualfinish createvisualtask AnimTask_SeismicTossBgAccelerateDownAtEnd, 3 - jumpargeq 7, 0, SeismicTossWeak - jumpargeq 7, 1, SeismicTossMedium - jumpargeq 7, 2, SeismicTossStrong -SeismicTossContinue:: + jumpreteq 0, SeismicTossWeak + jumpreteq 1, SeismicTossMedium + jumpreteq 2, SeismicTossStrong +SeismicTossContinue: restorebg waitbgfadeout - setarg 7, 4095 + setarg 7, 0xFFF waitbgfadein clearmonbg ANIM_DEF_PARTNER blendoff end -SeismicTossWeak:: +SeismicTossWeak: call SeismicTossRockScatter1 delay 16 call SeismicTossRockScatter2 goto SeismicTossContinue -SeismicTossMedium:: +SeismicTossMedium: call SeismicTossRockScatter1 delay 14 call SeismicTossRockScatter2 @@ -9624,7 +9620,7 @@ SeismicTossMedium:: call SeismicTossRockScatter1 goto SeismicTossContinue -SeismicTossStrong:: +SeismicTossStrong: call SeismicTossRockScatter2 delay 10 call SeismicTossRockScatter1 @@ -9634,197 +9630,199 @@ SeismicTossStrong:: call SeismicTossRockScatter1 goto SeismicTossContinue -SeismicTossRockScatter1:: - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, -10, -8, 1, 1 - playsewithpan SE_M_STRENGTH, 63 - createvisualtask AnimTask_ShakeMon, 2, 1, 0, 3, 5, 1 +SeismicTossRockScatter1: + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, -10, -8, ANIM_TARGET, 1 + playsewithpan SE_M_STRENGTH, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 3, 5, 1 createsprite gRockScatterSpriteTemplate, ANIM_TARGET, 2, -12, 27, 2, 3 createsprite gRockScatterSpriteTemplate, ANIM_TARGET, 2, 8, 28, 3, 4 createsprite gRockScatterSpriteTemplate, ANIM_TARGET, 2, -4, 30, 2, 3 createsprite gRockScatterSpriteTemplate, ANIM_TARGET, 2, 12, 25, 4, 4 return -SeismicTossRockScatter2:: - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 10, -8, 1, 1 - playsewithpan SE_M_ROCK_THROW, 63 - createvisualtask AnimTask_ShakeMon, 2, 1, 0, 3, 5, 1 +SeismicTossRockScatter2: + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 10, -8, ANIM_TARGET, 1 + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 3, 5, 1 createsprite gRockScatterSpriteTemplate, ANIM_TARGET, 2, -12, 32, 3, 4 createsprite gRockScatterSpriteTemplate, ANIM_TARGET, 2, 8, 31, 2, 2 createsprite gRockScatterSpriteTemplate, ANIM_TARGET, 2, -4, 28, 2, 3 createsprite gRockScatterSpriteTemplate, ANIM_TARGET, 2, 12, 30, 4, 3 return -Move_MAGIC_COAT:: +Move_MAGIC_COAT: loadspritegfx ANIM_TAG_ORANGE_LIGHT_WALL setalpha 0, 16 - waitplaysewithpan SE_M_BARRIER, 192, 15 - createsprite gMagicCoatWallSpriteTemplate, ANIM_ATTACKER, 3, 40, 0, 10170 + waitplaysewithpan SE_M_BARRIER, SOUND_PAN_ATTACKER, 15 + createsprite gMagicCoatWallSpriteTemplate, ANIM_ATTACKER, 3, 40, 0, ANIM_TAG_ORANGE_LIGHT_WALL waitforvisualfinish delay 1 blendoff end -Move_WATER_PULSE:: +Move_WATER_PULSE: loadspritegfx ANIM_TAG_SMALL_BUBBLES loadspritegfx ANIM_TAG_BLUE_RING_2 - monbg 1 - monbgprio_28 1 - playsewithpan SE_M_BUBBLE3, 192 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 0, 0, 7, 29472 + monbg ANIM_TARGET + splitbgprio ANIM_TARGET + playsewithpan SE_M_BUBBLE3, SOUND_PAN_ATTACKER + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 0, 0, 7, RGB(0, 25, 28) delay 10 createsprite gWaterPulseBubbleSpriteTemplate, ANIM_ATTACKER, 66, 100, 100, 8, 1, 20, 40, 0 createsprite gWaterPulseBubbleSpriteTemplate, ANIM_ATTACKER, 66, 20, 100, 16, 2, 10, 35, 1 createsprite gWaterPulseBubbleSpriteTemplate, ANIM_ATTACKER, 66, 200, 80, 8, 1, 40, 20, 0 createsprite gWaterPulseBubbleSpriteTemplate, ANIM_ATTACKER, 66, 80, 60, 10, 3, 20, 50, 0 createsprite gWaterPulseBubbleSpriteTemplate, ANIM_ATTACKER, 66, 140, 100, 16, 1, 20, 30, 1 - playsewithpan SE_M_BUBBLE3, 63 + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET waitforvisualfinish - playsewithpan SE_M_GIGA_DRAIN, 192 + playsewithpan SE_M_GIGA_DRAIN, SOUND_PAN_ATTACKER createsprite gWaterPulseRingSpriteTemplate, ANIM_TARGET, 2, 0, 0, 40, 15 delay 5 - playsewithpan SE_M_GIGA_DRAIN, 192 + playsewithpan SE_M_GIGA_DRAIN, SOUND_PAN_ATTACKER createsprite gWaterPulseRingSpriteTemplate, ANIM_TARGET, 2, 0, 0, 40, 15 delay 5 - playsewithpan SE_M_GIGA_DRAIN, 192 + playsewithpan SE_M_GIGA_DRAIN, SOUND_PAN_ATTACKER createsprite gWaterPulseRingSpriteTemplate, ANIM_TARGET, 2, 0, 0, 40, 15 delay 13 - createvisualtask AnimTask_ShakeMon, 2, 1, 0, 8, 18, 1 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 8, 18, 1 waitforvisualfinish - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 7, 0, 29472 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 1, 7, 0, RGB(0, 25, 28) waitforvisualfinish clearmonbg ANIM_DEF_PARTNER end -Move_PSYCHO_BOOST:: +Move_PSYCHO_BOOST: loadspritegfx ANIM_TAG_CIRCLE_OF_LIGHT monbg ANIM_ATK_PARTNER - fadetobg 3 + fadetobg BG_PSYCHIC waitbgfadeout - createvisualtask AnimTask_FadeScreenToWhite, 5, + createvisualtask AnimTask_FadeScreenToWhite, 5 waitbgfadein delay 6 - createvisualtask AnimTask_CurseBlendEffect, 2, 1, 2, 8, 0, 10, 0 + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_BG, 2, 8, 0, 10, RGB_BLACK delay 0 - monbgprio_28 0 + splitbgprio ANIM_ATTACKER setalpha 8, 8 delay 10 - createvisualtask AnimTask_ShakeMon, 2, 0, 3, 0, 240, 0 - loopsewithpan SE_M_PSYBEAM2, 192, 14, 10 + createvisualtask AnimTask_ShakeMon, 2, ANIM_ATTACKER, 3, 0, 240, 0 + loopsewithpan SE_M_PSYBEAM2, SOUND_PAN_ATTACKER, 14, 10 createsprite gPsychoBoostOrbSpriteTemplate, ANIM_ATTACKER, 2 delay 110 - loopsewithpan SE_M_PSYBEAM2, 192, 7, 10 + loopsewithpan SE_M_PSYBEAM2, SOUND_PAN_ATTACKER, 7, 10 waitforvisualfinish - createvisualtask AnimTask_ShakeMon2, 2, 1, -8, 1, 24, 1 - playsewithpan SE_M_LEER, 63 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, -8, 1, 24, 1 + playsewithpan SE_M_LEER, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_ATK_PARTNER blendoff - call UnsetPsychicBg + call UnsetPsychicBackground end -Move_KNOCK_OFF:: +Move_KNOCK_OFF: loadspritegfx ANIM_TAG_SLAM_HIT_2 loadspritegfx ANIM_TAG_IMPACT createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 4, 6 delay 4 - playsewithpan SE_M_VITAL_THROW, 63 + playsewithpan SE_M_VITAL_THROW, SOUND_PAN_TARGET createsprite gKnockOffStrikeSpriteTemplate, ANIM_TARGET, 2, -16, -16 delay 8 - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 5, 1, RGB_WHITE, 10, 0, 0 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, 1, 2 - playsewithpan SE_M_COMET_PUNCH, 63 + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG | F_PAL_BATTLERS, 5, 1, RGB_WHITE, 10, RGB_BLACK, 0 + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, 0, ANIM_TARGET, 2 + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 1, -12, 10, 0, 3 createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 5 delay 3 - createvisualtask AnimTask_ShakeMonInPlace, 2, 1, 0, 3, 6, 1 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_TARGET, 0, 3, 6, 1 delay 5 createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 1, 0, 6 delay 10 waitforvisualfinish end -Move_DOOM_DESIRE:: +Move_DOOM_DESIRE: createvisualtask GetIsDoomDesireHitTurn, 2 delay 1 monbg ANIM_ATK_PARTNER - createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, 1, 0 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 0, 4, 0 + createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, ANIM_TARGET, FALSE + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 1, 0, 4, RGB_BLACK waitforvisualfinish setalpha 8, 8 - playsewithpan SE_M_PSYBEAM, 192 - createvisualtask AnimTask_ScaleMonAndRestore, 5, -4, -4, 15, 0, 1 + playsewithpan SE_M_PSYBEAM, SOUND_PAN_ATTACKER + createvisualtask AnimTask_ScaleMonAndRestore, 5, -4, -4, 15, ANIM_ATTACKER, 1 waitforvisualfinish delay 20 - createvisualtask AnimTask_SetGreyscaleOrOriginalPal, 5, 1, 1 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 4, 0, 0 + createvisualtask AnimTask_SetGrayscaleOrOriginalPal, 5, ANIM_TARGET, TRUE + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 1, 4, 0, RGB_BLACK waitforvisualfinish clearmonbg ANIM_ATK_PARTNER blendoff end + +UnusedDoomDesireHit: loadspritegfx ANIM_TAG_EXPLOSION - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 0, 16, RGB_WHITE + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 3, 0, 16, RGB_WHITE waitforvisualfinish delay 10 - createvisualtask AnimTask_DoomDesireLightBeam, 5, + createvisualtask AnimTask_DoomDesireLightBeam, 5 delay 5 - playsewithpan SE_M_CONFUSE_RAY, 192 + playsewithpan SE_M_CONFUSE_RAY, SOUND_PAN_ATTACKER delay 10 playsewithpan SE_M_CONFUSE_RAY, 0 delay 10 - playsewithpan SE_M_CONFUSE_RAY, 63 + playsewithpan SE_M_CONFUSE_RAY, SOUND_PAN_TARGET delay 23 - createvisualtask AnimTask_ShakeMonInPlace, 2, 1, 10, 0, 20, 1 - playsewithpan SE_M_SELF_DESTRUCT, 63 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_TARGET, 10, 0, 20, 1 + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1, 1 delay 6 - playsewithpan SE_M_SELF_DESTRUCT, 63 + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, 24, -24, 1, 1 delay 6 - playsewithpan SE_M_SELF_DESTRUCT, 63 + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, -16, 16, 1, 1 delay 6 - playsewithpan SE_M_SELF_DESTRUCT, 63 + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, -24, -12, 1, 1 delay 6 - playsewithpan SE_M_SELF_DESTRUCT, 63 + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, 16, 16, 1, 1 waitforvisualfinish - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 16, 0, RGB_WHITE + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 3, 16, 0, RGB_WHITE waitforvisualfinish end -Move_SKY_UPPERCUT:: +Move_SKY_UPPERCUT: loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER - monbgprio_28 1 - fadetobg 17 + splitbgprio ANIM_TARGET + fadetobg BG_IN_AIR waitbgfadeout - playsewithpan SE_M_SKY_UPPERCUT, 192 + playsewithpan SE_M_SKY_UPPERCUT, SOUND_PAN_ATTACKER createvisualtask AnimTask_MoveSkyUppercutBg, 5, 55 waitbgfadein setalpha 12, 8 delay 38 createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 0, 28, 0, 0, 5 delay 4 - createvisualtask AnimTask_ShakeMon2, 2, 1, 4, 0, 6, 1 - playsewithpan SE_M_VITAL_THROW2, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, -28, 28, 1, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 6, 1 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, -28, 28, ANIM_TARGET, 1 delay 1 - playsewithpan SE_M_VITAL_THROW2, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, -15, 8, 1, 1 - playsewithpan SE_M_VITAL_THROW2, 63 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, -15, 8, ANIM_TARGET, 1 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET delay 1 - playsewithpan SE_M_VITAL_THROW2, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, -5, -12, 1, 1 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, -5, -12, ANIM_TARGET, 1 delay 1 - playsewithpan SE_M_VITAL_THROW2, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, -32, 1, 1 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 0, -32, ANIM_TARGET, 1 delay 1 - playsewithpan SE_M_VITAL_THROW2, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 5, -52, 1, 1 + playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 5, -52, ANIM_TARGET, 1 createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 1, -26, 16, 1, 4 delay 4 - createvisualtask AnimTask_ShakeMonInPlace, 2, 1, 0, 3, 6, 1 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_TARGET, 0, 3, 6, 1 delay 30 createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 6 delay 4 @@ -9833,77 +9831,77 @@ Move_SKY_UPPERCUT:: blendoff restorebg waitbgfadeout - setarg 7, 65535 + setarg 7, 0xFFFF waitbgfadein end -Move_SECRET_POWER:: - createvisualtask AnimTask_GetBattleTerrain, 5, - jumpargeq 0, 0, Move_NEEDLE_ARM - jumpargeq 0, 1, Move_MAGICAL_LEAF - jumpargeq 0, 2, Move_MUD_SHOT - jumpargeq 0, 3, Move_WATERFALL - jumpargeq 0, 4, Move_SURF - jumpargeq 0, 5, Move_BUBBLE_BEAM - jumpargeq 0, 6, Move_ROCK_THROW - jumpargeq 0, 7, Move_BITE - jumpargeq 0, 8, Move_STRENGTH +Move_SECRET_POWER: + createvisualtask AnimTask_GetBattleTerrain, 5 + jumpargeq 0, BATTLE_TERRAIN_GRASS, Move_NEEDLE_ARM + jumpargeq 0, BATTLE_TERRAIN_LONG_GRASS, Move_MAGICAL_LEAF + jumpargeq 0, BATTLE_TERRAIN_SAND, Move_MUD_SHOT + jumpargeq 0, BATTLE_TERRAIN_UNDERWATER, Move_WATERFALL + jumpargeq 0, BATTLE_TERRAIN_WATER, Move_SURF + jumpargeq 0, BATTLE_TERRAIN_POND, Move_BUBBLE_BEAM + jumpargeq 0, BATTLE_TERRAIN_MOUNTAIN, Move_ROCK_THROW + jumpargeq 0, BATTLE_TERRAIN_CAVE, Move_BITE + jumpargeq 0, BATTLE_TERRAIN_BUILDING, Move_STRENGTH goto Move_SLAM -Move_TWISTER:: +Move_TWISTER: loadspritegfx ANIM_TAG_LEAF loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_ROCKS monbg ANIM_DEF_PARTNER - monbgprio_28 1 - playsewithpan SE_M_TWISTER, 63 - createsprite gTwisterLeafParticleSpriteTemplate, ANIM_TARGET, 2, 120, 70, 5, 70, 30 + splitbgprio ANIM_TARGET + playsewithpan SE_M_TWISTER, SOUND_PAN_TARGET + createsprite gTwisterLeafSpriteTemplate, ANIM_TARGET, 2, 120, 70, 5, 70, 30 delay 1 - createsprite gTwisterLeafParticleSpriteTemplate, ANIM_TARGET, 2, 115, 55, 6, 60, 25 + createsprite gTwisterLeafSpriteTemplate, ANIM_TARGET, 2, 115, 55, 6, 60, 25 delay 1 - createsprite gTwisterLeafParticleSpriteTemplate, ANIM_TARGET, 2, 115, 60, 7, 60, 30 - createsprite gTwisterLeafParticleSpriteTemplate, ANIM_TARGET, 2, 115, 55, 10, 60, 30 + createsprite gTwisterLeafSpriteTemplate, ANIM_TARGET, 2, 115, 60, 7, 60, 30 + createsprite gTwisterLeafSpriteTemplate, ANIM_TARGET, 2, 115, 55, 10, 60, 30 delay 3 createsprite gTwisterRockSpriteTemplate, ANIM_TARGET, 2, 100, 50, 4, 50, 26 delay 1 - createsprite gTwisterLeafParticleSpriteTemplate, ANIM_TARGET, 2, 105, 25, 8, 60, 20 + createsprite gTwisterLeafSpriteTemplate, ANIM_TARGET, 2, 105, 25, 8, 60, 20 delay 1 - createsprite gTwisterLeafParticleSpriteTemplate, ANIM_TARGET, 2, 115, 40, 10, 48, 30 + createsprite gTwisterLeafSpriteTemplate, ANIM_TARGET, 2, 115, 40, 10, 48, 30 delay 3 createsprite gTwisterRockSpriteTemplate, ANIM_TARGET, 2, 120, 30, 6, 45, 25 - createsprite gTwisterLeafParticleSpriteTemplate, ANIM_TARGET, 2, 115, 35, 10, 60, 30 + createsprite gTwisterLeafSpriteTemplate, ANIM_TARGET, 2, 115, 35, 10, 60, 30 delay 3 createsprite gTwisterRockSpriteTemplate, ANIM_TARGET, 2, 105, 20, 8, 40, 0 delay 3 - createsprite gTwisterLeafParticleSpriteTemplate, ANIM_TARGET, 2, 20, 255, 15, 32, 0 - createsprite gTwisterLeafParticleSpriteTemplate, ANIM_TARGET, 2, 110, 10, 8, 32, 20 + createsprite gTwisterLeafSpriteTemplate, ANIM_TARGET, 2, 20, 255, 15, 32, 0 + createsprite gTwisterLeafSpriteTemplate, ANIM_TARGET, 2, 110, 10, 8, 32, 20 waitforvisualfinish - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, -32, -16, 1, 3 - playsewithpan SE_M_COMET_PUNCH, 63 - createvisualtask AnimTask_ShakeMonInPlace, 2, 1, 3, 0, 12, 1 - createvisualtask AnimTask_ShakeMonInPlace, 2, 3, 3, 0, 12, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, -32, -16, ANIM_TARGET, 3 + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_TARGET, 3, 0, 12, 1 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_DEF_PARTNER, 3, 0, 12, 1 delay 4 createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, 1, 3 - playsewithpan SE_M_COMET_PUNCH, 63 + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET delay 4 createsprite gRandomPosHitSplatSpriteTemplate, ANIM_TARGET, 3, 1, 3 - playsewithpan SE_M_COMET_PUNCH, 63 + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET delay 4 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 32, 20, 1, 3 - playsewithpan SE_M_COMET_PUNCH, 63 + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 3, 32, 20, ANIM_TARGET, 3 + playsewithpan SE_M_COMET_PUNCH, SOUND_PAN_TARGET waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff end -Move_MAGICAL_LEAF:: +Move_MAGICAL_LEAF: loadspritegfx ANIM_TAG_LEAF loadspritegfx ANIM_TAG_RAZOR_LEAF loadspritegfx ANIM_TAG_IMPACT monbg ANIM_DEF_PARTNER setalpha 12, 8 delay 1 - loopsewithpan SE_M_POISON_POWDER, 192, 10, 5 + loopsewithpan SE_M_POISON_POWDER, SOUND_PAN_ATTACKER, 10, 5 createvisualtask AnimTask_CycleMagicalLeafPal, 5 createsprite gRazorLeafParticleSpriteTemplate, ANIM_ATTACKER, 2, -3, -2, 10 delay 2 @@ -9925,56 +9923,56 @@ Move_MAGICAL_LEAF:: delay 2 createsprite gRazorLeafParticleSpriteTemplate, ANIM_ATTACKER, 2, -3, -5, 8 delay 60 - playsewithpan SE_M_RAZOR_WIND2, 192 + playsewithpan SE_M_RAZOR_WIND2, SOUND_PAN_ATTACKER createsprite gRazorLeafCutterSpriteTemplate, ANIM_TARGET, 3, 20, -10, 20, 0, 32, 20, 0 createsprite gRazorLeafCutterSpriteTemplate, ANIM_TARGET, 3, 20, -10, 20, 0, 32, -20, 0 delay 30 - playsewithpan SE_M_RAZOR_WIND, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 4, -10, -4, 1, 2 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 4, 10, 4, 1, 2 - createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 8, 1 + playsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 4, -10, -4, ANIM_TARGET, 2 + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 4, 10, 4, ANIM_TARGET, 2 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 8, 1 delay 20 - setarg 7, 65535 + setarg 7, 0xFFFF waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff end -Move_ICE_BALL:: +Move_ICE_BALL: loadspritegfx ANIM_TAG_ICE_CHUNK loadspritegfx ANIM_TAG_ICE_CRYSTALS createvisualtask AnimTask_GetRolloutCounter, 5, 0 jumpargeq 0, 4, IceBallSetIceBg -IceBallContinue:: - playsewithpan SE_M_ICY_WIND, 192 +IceBallContinue: + playsewithpan SE_M_ICY_WIND, SOUND_PAN_ATTACKER createsprite gIceBallChunkSpriteTemplate, ANIM_TARGET, 2, 15, 0, -12, -16, 30, -40 delay 28 - playsewithpan SE_M_BRICK_BREAK, 63 + playsewithpan SE_M_BRICK_BREAK, SOUND_PAN_TARGET createvisualtask AnimTask_GetRolloutCounter, 5, 0 jumpargeq 0, 0, IceBallWeakest jumpargeq 0, 1, IceBallWeak jumpargeq 0, 2, IceBallMediun jumpargeq 0, 3, IceBallStrong jumpargeq 0, 4, IceBallStrongest -IceBallContinue2:: +IceBallContinue2: createvisualtask AnimTask_GetRolloutCounter, 5, 0 jumpargeq 0, 4, IceBallUnsetIceBg -IceBallEnd:: +IceBallEnd: end -IceBallSetIceBg:: - fadetobg 15 +IceBallSetIceBg: + fadetobg BG_ICE goto IceBallContinue -IceBallUnsetIceBg:: +IceBallUnsetIceBg: waitbgfadein delay 45 restorebg waitbgfadein goto IceBallEnd -IceBallWeakest:: - createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 2, 0, 1, 8, 1, 0 +IceBallWeakest: + createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 2, FALSE, 1, 8, 1, 0 call IceBallImpactShard call IceBallImpactShard call IceBallImpactShard @@ -9982,8 +9980,8 @@ IceBallWeakest:: call IceBallImpactShard goto IceBallContinue2 -IceBallWeak:: - createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 2, 0, 1, 10, 1, 0 +IceBallWeak: + createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 2, FALSE, 1, 10, 1, 0 call IceBallImpactShard call IceBallImpactShard call IceBallImpactShard @@ -9993,8 +9991,8 @@ IceBallWeak:: call IceBallImpactShard goto IceBallContinue2 -IceBallMediun:: - createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 2, 0, 1, 14, 1, 0 +IceBallMediun: + createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 2, FALSE, 1, 14, 1, 0 call IceBallImpactShard call IceBallImpactShard call IceBallImpactShard @@ -10006,8 +10004,8 @@ IceBallMediun:: call IceBallImpactShard goto IceBallContinue2 -IceBallStrong:: - createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 2, 0, 1, 18, 1, 0 +IceBallStrong: + createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 2, FALSE, 1, 18, 1, 0 call IceBallImpactShard call IceBallImpactShard call IceBallImpactShard @@ -10020,8 +10018,8 @@ IceBallStrong:: call IceBallImpactShard goto IceBallContinue2 -IceBallStrongest:: - createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 2, 0, 1, 30, 1, 0 +IceBallStrongest: + createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 2, FALSE, 1, 30, 1, 0 call IceBallImpactShard call IceBallImpactShard call IceBallImpactShard @@ -10034,181 +10032,180 @@ IceBallStrongest:: call IceBallImpactShard goto IceBallContinue2 -IceBallImpactShard:: +IceBallImpactShard: createsprite gIceBallImpactShardSpriteTemplate, ANIM_TARGET, 4, -12, -16 return -Move_WEATHER_BALL:: +Move_WEATHER_BALL: loadspritegfx ANIM_TAG_WEATHER_BALL - createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 8, 1, 0 + createsprite gVerticalDipSpriteTemplate, ANIM_ATTACKER, 2, 8, 1, ANIM_ATTACKER delay 8 - playsewithpan SE_M_SWAGGER, 192 + playsewithpan SE_M_SWAGGER, SOUND_PAN_ATTACKER createsprite gWeatherBallUpSpriteTemplate, ANIM_ATTACKER, 2 waitforvisualfinish delay 15 playsewithpan SE_M_DETECT, 0 - createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 5, 1, RGB_WHITE, 10, 0, 0 + createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG | F_PAL_BATTLERS, 5, 1, RGB_WHITE, 10, RGB_BLACK, 0 waitforvisualfinish - createvisualtask AnimTask_GetWeather, 2, + createvisualtask AnimTask_GetWeather, 2 delay 1 - jumpargeq 7, 0, WeatherBallNormal - jumpargeq 7, 1, WeatherBallFire - jumpargeq 7, 2, WeatherBallWater - jumpargeq 7, 3, WeatherBallSandstorm - jumpargeq 7, 4, WeatherBallIce - -WeatherBallNormal:: + jumpreteq ANIM_WEATHER_NONE, WeatherBallNormal + jumpreteq ANIM_WEATHER_SUN, WeatherBallFire + jumpreteq ANIM_WEATHER_RAIN, WeatherBallWater + jumpreteq ANIM_WEATHER_SANDSTORM, WeatherBallSandstorm + jumpreteq ANIM_WEATHER_HAIL, WeatherBallIce +WeatherBallNormal: loadspritegfx ANIM_TAG_IMPACT createsprite gWeatherBallNormalDownSpriteTemplate, ANIM_TARGET, 2, -30, -100, 25, 1, 0, 0 waitforvisualfinish - playsewithpan SE_M_MEGA_KICK2, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 4, -10, 0, 1, 2 - createvisualtask AnimTask_ShakeMon, 2, 1, 0, 3, 8, 1 + playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 4, -10, 0, ANIM_TARGET, 2 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 3, 8, 1 waitforvisualfinish end -WeatherBallFire:: +WeatherBallFire: loadspritegfx ANIM_TAG_SMALL_EMBER createsprite gWeatherBallFireDownSpriteTemplate, ANIM_TARGET, 2, -30, -100, 25, 1, 40, 10 - playsewithpan SE_M_FLAME_WHEEL, 63 + playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_TARGET delay 10 createsprite gWeatherBallFireDownSpriteTemplate, ANIM_TARGET, 2, -30, -100, 25, 1, -40, 20 - playsewithpan SE_M_FLAME_WHEEL, 63 + playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_TARGET delay 10 createsprite gWeatherBallFireDownSpriteTemplate, ANIM_TARGET, 2, -30, -100, 25, 1, 0, 0 - playsewithpan SE_M_FLAME_WHEEL, 63 + playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_TARGET waitforvisualfinish - playsewithpan SE_M_FLAME_WHEEL2, 63 - createvisualtask AnimTask_ShakeMon, 2, 1, 0, 3, 8, 1 + playsewithpan SE_M_FLAME_WHEEL2, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 3, 8, 1 waitforvisualfinish end -WeatherBallWater:: +WeatherBallWater: loadspritegfx ANIM_TAG_SMALL_BUBBLES createsprite gWeatherBallWaterDownSpriteTemplate, ANIM_TARGET, 2, -30, -100, 25, 1, 50, 10 - playsewithpan SE_M_CRABHAMMER, 63 + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_TARGET delay 8 createsprite gWeatherBallWaterDownSpriteTemplate, ANIM_TARGET, 2, -30, -100, 25, 1, -20, 20 - playsewithpan SE_M_CRABHAMMER, 63 + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_TARGET delay 13 createsprite gWeatherBallWaterDownSpriteTemplate, ANIM_TARGET, 2, -30, -100, 25, 1, 0, 0 - playsewithpan SE_M_CRABHAMMER, 63 + playsewithpan SE_M_CRABHAMMER, SOUND_PAN_TARGET waitforvisualfinish - createvisualtask AnimTask_ShakeMon, 2, 1, 0, 3, 8, 1 - playsewithpan SE_M_GIGA_DRAIN, 63 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 0, 3, 8, 1 + playsewithpan SE_M_GIGA_DRAIN, SOUND_PAN_TARGET waitforvisualfinish end -WeatherBallSandstorm:: +WeatherBallSandstorm: loadspritegfx ANIM_TAG_ROCKS createsprite gWeatherBallRockDownSpriteTemplate, ANIM_TARGET, 2, -30, -100, 25, 1, 30, 0 - playsewithpan SE_M_ROCK_THROW, 63 + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET delay 5 createsprite gWeatherBallRockDownSpriteTemplate, ANIM_TARGET, 2, -30, -100, 25, 1, -40, 20 - playsewithpan SE_M_ROCK_THROW, 63 + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET delay 14 createsprite gWeatherBallRockDownSpriteTemplate, ANIM_TARGET, 2, -30, -100, 25, 1, 0, 0 - playsewithpan SE_M_ROCK_THROW, 63 + playsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET waitforvisualfinish - playsewithpan SE_M_STRENGTH, 63 + playsewithpan SE_M_STRENGTH, SOUND_PAN_TARGET createsprite gRockScatterSpriteTemplate, ANIM_TARGET, 2, -12, 27, 2, 3 createsprite gRockScatterSpriteTemplate, ANIM_TARGET, 2, 8, 28, 3, 4 createsprite gRockScatterSpriteTemplate, ANIM_TARGET, 2, -4, 30, 2, 3 createsprite gRockScatterSpriteTemplate, ANIM_TARGET, 2, 12, 25, 4, 4 - createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 8, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 8, 1 waitforvisualfinish end -WeatherBallIce:: +WeatherBallIce: loadspritegfx ANIM_TAG_HAIL loadspritegfx ANIM_TAG_ICE_CRYSTALS createsprite gWeatherBallIceDownSpriteTemplate, ANIM_TARGET, 2, -30, -100, 25, 25, -40, 20 - playsewithpan SE_M_HAIL, 63 + playsewithpan SE_M_HAIL, SOUND_PAN_TARGET delay 10 createsprite gWeatherBallIceDownSpriteTemplate, ANIM_TARGET, 2, -30, -100, 25, 25, 40, 0 - playsewithpan SE_M_HAIL, 63 + playsewithpan SE_M_HAIL, SOUND_PAN_TARGET delay 10 createsprite gWeatherBallIceDownSpriteTemplate, ANIM_TARGET, 2, -30, -100, 25, 25, 0, 0 - playsewithpan SE_M_HAIL, 63 + playsewithpan SE_M_HAIL, SOUND_PAN_TARGET waitforvisualfinish - createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 8, 1 - playsewithpan SE_M_ICY_WIND, 63 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 8, 1 + playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET call IceCrystalEffectShort waitforvisualfinish end -Move_COUNT:: +Move_COUNT: loadspritegfx ANIM_TAG_IMPACT - monbg 1 + monbg ANIM_TARGET setalpha 12, 8 - playsewithpan SE_M_DOUBLE_SLAP, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 2 - createvisualtask AnimTask_ShakeMon, 2, 1, 3, 0, 6, 1 + playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 2 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1 waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff end -IceCrystalEffectShort:: +IceCrystalEffectShort: createsprite gIceCrystalHitLargeSpriteTemplate, ANIM_TARGET, 2, -10, -10, 0 - playsewithpan SE_M_ICY_WIND, 63 + playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET delay 4 createsprite gIceCrystalHitSmallSpriteTemplate, ANIM_TARGET, 2, 10, 20, 0 - playsewithpan SE_M_ICY_WIND, 63 + playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET delay 4 createsprite gIceCrystalHitLargeSpriteTemplate, ANIM_TARGET, 2, -5, 10, 0 - playsewithpan SE_M_ICY_WIND, 63 + playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET delay 4 createsprite gIceCrystalHitSmallSpriteTemplate, ANIM_TARGET, 2, 17, -12, 0 - playsewithpan SE_M_ICY_WIND, 63 + playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET delay 4 createsprite gIceCrystalHitSmallSpriteTemplate, ANIM_TARGET, 2, -15, 15, 0 - playsewithpan SE_M_ICY_WIND, 63 + playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET delay 4 createsprite gIceCrystalHitSmallSpriteTemplate, ANIM_TARGET, 2, 0, 0, 0 - playsewithpan SE_M_ICY_WIND, 63 + playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET delay 4 createsprite gIceCrystalHitLargeSpriteTemplate, ANIM_TARGET, 2, 20, 2, 0 - playsewithpan SE_M_ICY_WIND, 63 + playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET return -IceCrystalEffectLong:: +IceCrystalEffectLong: createsprite gIceCrystalHitLargeSpriteTemplate, ANIM_TARGET, 2, -10, -10, 1 - playsewithpan SE_M_ICY_WIND, 63 + playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET delay 4 createsprite gIceCrystalHitSmallSpriteTemplate, ANIM_TARGET, 2, 10, 20, 1 - playsewithpan SE_M_ICY_WIND, 63 + playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET delay 4 createsprite gIceCrystalHitLargeSpriteTemplate, ANIM_TARGET, 2, -29, 0, 1 - playsewithpan SE_M_ICY_WIND, 63 + playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET delay 4 createsprite gIceCrystalHitSmallSpriteTemplate, ANIM_TARGET, 2, 29, -20, 1 - playsewithpan SE_M_ICY_WIND, 63 + playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET delay 4 createsprite gIceCrystalHitLargeSpriteTemplate, ANIM_TARGET, 2, -5, 10, 1 - playsewithpan SE_M_ICY_WIND, 63 + playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET delay 4 createsprite gIceCrystalHitSmallSpriteTemplate, ANIM_TARGET, 2, 17, -12, 1 - playsewithpan SE_M_ICY_WIND, 63 + playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET delay 4 createsprite gIceCrystalHitLargeSpriteTemplate, ANIM_TARGET, 2, -20, 0, 1 - playsewithpan SE_M_ICY_WIND, 63 + playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET delay 4 createsprite gIceCrystalHitSmallSpriteTemplate, ANIM_TARGET, 2, -15, 15, 1 - playsewithpan SE_M_ICY_WIND, 63 + playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET delay 4 createsprite gIceCrystalHitSmallSpriteTemplate, ANIM_TARGET, 2, 26, -5, 1 - playsewithpan SE_M_ICY_WIND, 63 + playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET delay 4 createsprite gIceCrystalHitSmallSpriteTemplate, ANIM_TARGET, 2, 0, 0, 1 - playsewithpan SE_M_ICY_WIND, 63 + playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET delay 4 createsprite gIceCrystalHitLargeSpriteTemplate, ANIM_TARGET, 2, 20, 2, 1 - playsewithpan SE_M_ICY_WIND, 63 + playsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET return - + IceSpikesEffectShort: @ Unused - loopsewithpan SE_M_ICY_WIND, 63, 6, 4 + loopsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET, 6, 4 createsprite gIceGroundSpikeSpriteTemplate, ANIM_TARGET, 2, 0, 24, 0 delay 4 createsprite gIceGroundSpikeSpriteTemplate, ANIM_TARGET, 2, 8, 24, 0 @@ -10224,8 +10221,8 @@ IceSpikesEffectShort: @ Unused createsprite gIceGroundSpikeSpriteTemplate, ANIM_TARGET, 2, -32, 24, 0 return -IceSpikesEffectLong:: - loopsewithpan SE_M_ICY_WIND, 63, 6, 4 +IceSpikesEffectLong: + loopsewithpan SE_M_ICY_WIND, SOUND_PAN_TARGET, 6, 4 createsprite gIceGroundSpikeSpriteTemplate, ANIM_TARGET, 2, 0, 24, 1 delay 4 createsprite gIceGroundSpikeSpriteTemplate, ANIM_TARGET, 2, 8, 24, 1 @@ -10247,15 +10244,15 @@ IceSpikesEffectLong:: createsprite gIceGroundSpikeSpriteTemplate, ANIM_TARGET, 2, -48, 24, 1 return -GrantingStarsEffect:: +GrantingStarsEffect: createsprite gGrantingStarsSpriteTemplate, ANIM_ATTACKER, 2, -15, 0, 0, 0, 32, 60 delay 8 createsprite gGrantingStarsSpriteTemplate, ANIM_ATTACKER, 2, 12, -5, 0, 0, 32, 60 delay 8 return -HealingEffect:: - playsewithpan SE_M_ABSORB_2, 192 +HealingEffect: + playsewithpan SE_M_ABSORB_2, SOUND_PAN_ATTACKER createsprite gHealingBlueStarSpriteTemplate, ANIM_ATTACKER, 2, 0, -5, 0, 0 delay 7 createsprite gHealingBlueStarSpriteTemplate, ANIM_ATTACKER, 2, -15, 10, 0, 0 @@ -10266,8 +10263,8 @@ HealingEffect:: delay 7 return -HealingEffect2:: - playsewithpan SE_M_ABSORB_2, 63 +HealingEffect2: + playsewithpan SE_M_ABSORB_2, SOUND_PAN_TARGET createsprite gHealingBlueStarSpriteTemplate, ANIM_TARGET, 2, 0, -5, 1, 0 delay 7 createsprite gHealingBlueStarSpriteTemplate, ANIM_TARGET, 2, -15, 10, 1, 0 @@ -10278,74 +10275,74 @@ HealingEffect2:: delay 7 return -PoisonBubblesEffect:: +PoisonBubblesEffect: createsprite gPoisonBubbleSpriteTemplate, ANIM_TARGET, 2, 10, 10, 0 - playsewithpan SE_M_TOXIC, 63 + playsewithpan SE_M_TOXIC, SOUND_PAN_TARGET delay 6 createsprite gPoisonBubbleSpriteTemplate, ANIM_TARGET, 2, 20, -20, 0 - playsewithpan SE_M_TOXIC, 63 + playsewithpan SE_M_TOXIC, SOUND_PAN_TARGET delay 6 createsprite gPoisonBubbleSpriteTemplate, ANIM_TARGET, 2, -20, 15, 0 - playsewithpan SE_M_TOXIC, 63 + playsewithpan SE_M_TOXIC, SOUND_PAN_TARGET delay 6 createsprite gPoisonBubbleSpriteTemplate, ANIM_TARGET, 2, 0, 0, 0 - playsewithpan SE_M_TOXIC, 63 + playsewithpan SE_M_TOXIC, SOUND_PAN_TARGET delay 6 createsprite gPoisonBubbleSpriteTemplate, ANIM_TARGET, 2, -20, -20, 0 - playsewithpan SE_M_TOXIC, 63 + playsewithpan SE_M_TOXIC, SOUND_PAN_TARGET delay 6 createsprite gPoisonBubbleSpriteTemplate, ANIM_TARGET, 2, 16, -8, 0 - playsewithpan SE_M_TOXIC, 63 + playsewithpan SE_M_TOXIC, SOUND_PAN_TARGET return -WaterBubblesEffectShort:: +WaterBubblesEffectShort: createsprite gWaterBubbleSpriteTemplate, ANIM_ATTACKER, 2, 10, 10, 0 - playsewithpan SE_M_BUBBLE3, 63 + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET delay 6 createsprite gWaterBubbleSpriteTemplate, ANIM_ATTACKER, 2, 20, -20, 0 - playsewithpan SE_M_BUBBLE3, 63 + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET delay 6 createsprite gWaterBubbleSpriteTemplate, ANIM_ATTACKER, 2, -20, 15, 0 - playsewithpan SE_M_BUBBLE3, 63 + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET delay 6 createsprite gWaterBubbleSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 0 - playsewithpan SE_M_BUBBLE3, 63 + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET delay 6 createsprite gWaterBubbleSpriteTemplate, ANIM_ATTACKER, 2, -20, -20, 0 - playsewithpan SE_M_BUBBLE3, 63 + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET delay 6 createsprite gWaterBubbleSpriteTemplate, ANIM_ATTACKER, 2, 16, -8, 0 - playsewithpan SE_M_BUBBLE3, 63 + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET return -WaterBubblesEffectLong:: +WaterBubblesEffectLong: createsprite gWaterBubbleSpriteTemplate, ANIM_ATTACKER, 2, 10, 10, 1 - playsewithpan SE_M_BUBBLE3, 63 + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET delay 6 createsprite gWaterBubbleSpriteTemplate, ANIM_ATTACKER, 2, -28, -10, 1 - playsewithpan SE_M_BUBBLE3, 63 + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET delay 6 createsprite gWaterBubbleSpriteTemplate, ANIM_ATTACKER, 2, 20, -20, 1 - playsewithpan SE_M_BUBBLE3, 63 + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET delay 6 createsprite gWaterBubbleSpriteTemplate, ANIM_ATTACKER, 2, -20, 15, 1 - playsewithpan SE_M_BUBBLE3, 63 + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET delay 6 createsprite gWaterBubbleSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1 - playsewithpan SE_M_BUBBLE3, 63 + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET delay 6 createsprite gWaterBubbleSpriteTemplate, ANIM_ATTACKER, 2, 27, 8, 1 - playsewithpan SE_M_BUBBLE3, 63 + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET delay 6 createsprite gWaterBubbleSpriteTemplate, ANIM_ATTACKER, 2, -20, -20, 1 - playsewithpan SE_M_BUBBLE3, 63 + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET delay 6 createsprite gWaterBubbleSpriteTemplate, ANIM_ATTACKER, 2, 16, -8, 1 - playsewithpan SE_M_BUBBLE3, 63 + playsewithpan SE_M_BUBBLE3, SOUND_PAN_TARGET return -ElectricityEffect:: - playsewithpan SE_M_THUNDERBOLT2, 63 +ElectricityEffect: + playsewithpan SE_M_THUNDERBOLT2, SOUND_PAN_TARGET createsprite gElectricitySpriteTemplate, ANIM_TARGET, 2, 5, 0, 5, 0 delay 2 createsprite gElectricitySpriteTemplate, ANIM_TARGET, 2, -5, 10, 5, 1 @@ -10363,8 +10360,8 @@ ElectricityEffect:: createsprite gElectricitySpriteTemplate, ANIM_TARGET, 2, -20, 15, 5, 1 return -ConfusionEffect:: - loopsewithpan SE_M_DIZZY_PUNCH, 63, 13, 6 +ConfusionEffect: + loopsewithpan SE_M_DIZZY_PUNCH, SOUND_PAN_TARGET, 13, 6 createsprite gConfusionDuckSpriteTemplate, ANIM_TARGET, 2, 0, -15, 0, 3, 90 createsprite gConfusionDuckSpriteTemplate, ANIM_TARGET, 2, 0, -15, 51, 3, 90 createsprite gConfusionDuckSpriteTemplate, ANIM_TARGET, 2, 0, -15, 102, 3, 90 @@ -10372,333 +10369,334 @@ ConfusionEffect:: createsprite gConfusionDuckSpriteTemplate, ANIM_TARGET, 2, 0, -15, 204, 3, 90 return -SetPsychicBackground:: - fadetobg 3 +SetPsychicBackground: + fadetobg BG_PSYCHIC waitbgfadeout - createvisualtask AnimTask_SetPsychicBackground, 5, + createvisualtask AnimTask_SetPsychicBackground, 5 waitbgfadein return -UnsetPsychicBg:: +UnsetPsychicBackground: restorebg waitbgfadeout - setarg 7, 65535 + setarg 7, 0xFFFF waitbgfadein return -SetSkyBg:: +SetSkyBg: jumpifcontest SetSkyBgContest - fadetobg 18 + fadetobg BG_SKY waitbgfadeout createvisualtask AnimTask_StartSlidingBg, 5, -2304, 768, 1, -1 -SetSkyBgContinue:: +SetSkyBgContinue: waitbgfadein return -SetSkyBgContest:: - fadetobg 19 +SetSkyBgContest: + fadetobg BG_SKY_CONTESTS waitbgfadeout createvisualtask AnimTask_StartSlidingBg, 5, 2304, 768, 0, -1 goto SetSkyBgContinue -UnsetSkyBg:: +UnsetSkyBg: restorebg waitbgfadeout - setarg 7, 65535 + setarg 7, 0xFFFF waitbgfadein return -SetSolarBeamBg:: - createvisualtask AnimTask_IsContest, 2, - jumpargeq 7, 1, SetSolarBeamBgContest - createvisualtask AnimTask_IsTargetPlayerSide, 2, - jumpargeq 7, 0, SetSolarBeamBgOpponent +SetSolarBeamBg: + createvisualtask AnimTask_IsContest, 2 + jumprettrue SetSolarBeamBgContest + createvisualtask AnimTask_IsTargetPlayerSide, 2 + jumpretfalse SetSolarBeamBgOpponent goto SetSolarBeamBgPlayer -SetSolarBeamBgContinue:: + +SetSolarBeamBgContinue: waitbgfadein return -SetSolarBeamBgContest:: +SetSolarBeamBgContest: fadetobg BG_SOLAR_BEAM_CONTESTS goto SetSolarBeamBgContinue -SetSolarBeamBgPlayer:: +SetSolarBeamBgPlayer: fadetobg BG_SOLAR_BEAM_PLAYER goto SetSolarBeamBgContinue -SetSolarBeamBgOpponent:: +SetSolarBeamBgOpponent: fadetobg BG_SOLAR_BEAM_OPPONENT goto SetSolarBeamBgContinue -UnsetSolarBeamBg:: +UnsetSolarBeamBg: restorebg waitbgfadein return -Status_Poison:: - loopsewithpan SE_M_TOXIC, 63, 13, 6 - createvisualtask AnimTask_ShakeMon2, 2, 0, 1, 0, 18, 2 - createvisualtask AnimTask_CurseBlendEffect, 2, 2, 2, 2, 0, 12, 31774 +Status_Poison: + loopsewithpan SE_M_TOXIC, SOUND_PAN_TARGET, 13, 6 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_ATTACKER, 1, 0, 18, 2 + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_ATTACKER, 2, 2, 0, 12, RGB(30, 0, 31) end -Status_Confusion:: +Status_Confusion: loadspritegfx ANIM_TAG_DUCK call ConfusionEffect end -Status_Burn:: +Status_Burn: loadspritegfx ANIM_TAG_SMALL_EMBER - playsewithpan SE_M_FLAME_WHEEL, 63 + playsewithpan SE_M_FLAME_WHEEL, SOUND_PAN_TARGET call BurnFlame call BurnFlame call BurnFlame waitforvisualfinish end -BurnFlame:: +BurnFlame: createsprite gBurnFlameSpriteTemplate, ANIM_TARGET, 2, -24, 24, 24, 24, 20, 1, 1 delay 4 return -Status_Infatuation:: +Status_Infatuation: loadspritegfx ANIM_TAG_MAGENTA_HEART - playsewithpan SE_M_CHARM, 192 + playsewithpan SE_M_CHARM, SOUND_PAN_ATTACKER createsprite gMagentaHeartSpriteTemplate, ANIM_ATTACKER, 3, 0, 20 delay 15 - playsewithpan SE_M_CHARM, 192 + playsewithpan SE_M_CHARM, SOUND_PAN_ATTACKER createsprite gMagentaHeartSpriteTemplate, ANIM_ATTACKER, 3, -20, 20 delay 15 - playsewithpan SE_M_CHARM, 192 + playsewithpan SE_M_CHARM, SOUND_PAN_ATTACKER createsprite gMagentaHeartSpriteTemplate, ANIM_ATTACKER, 3, 20, 20 end -Status_Sleep:: +Status_Sleep: loadspritegfx ANIM_TAG_LETTER_Z - playsewithpan SE_M_SNORE, 192 + playsewithpan SE_M_SNORE, SOUND_PAN_ATTACKER createsprite gSleepLetterZSpriteTemplate, ANIM_ATTACKER, 2, 4, -10, 16, 0, 0 delay 30 createsprite gSleepLetterZSpriteTemplate, ANIM_ATTACKER, 2, 4, -10, 16, 0, 0 end -Status_Paralysis:: +Status_Paralysis: loadspritegfx ANIM_TAG_SPARK_2 - createvisualtask AnimTask_ShakeMon2, 2, 0, 1, 0, 10, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_ATTACKER, 1, 0, 10, 1 call ElectricityEffect end -Status_Freeze:: +Status_Freeze: playsewithpan SE_M_ICY_WIND, 0 loadspritegfx ANIM_TAG_ICE_CUBE monbg ANIM_DEF_PARTNER - monbgprio_28 1 - waitplaysewithpan SE_M_HAIL, 63, 17 - createvisualtask AnimTask_FrozenIceCube, 2, + splitbgprio ANIM_TARGET + waitplaysewithpan SE_M_HAIL, SOUND_PAN_TARGET, 17 + createvisualtask AnimTask_FrozenIceCube, 2 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER end -Status_Curse:: +Status_Curse: loadspritegfx ANIM_TAG_GHOSTLY_SPIRIT monbg ANIM_DEF_PARTNER - playsewithpan SE_M_NIGHTMARE, 63 - createsprite gCurseGhostSpriteTemplate, ANIM_TARGET, 2, - createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 14, 1 + playsewithpan SE_M_NIGHTMARE, SOUND_PAN_TARGET + createsprite gCurseGhostSpriteTemplate, ANIM_TARGET, 2 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 14, 1 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER end -Status_Nightmare:: +Status_Nightmare: loadspritegfx ANIM_TAG_DEVIL monbg ANIM_DEF_PARTNER - playsewithpan SE_M_NIGHTMARE, 63 + playsewithpan SE_M_NIGHTMARE, SOUND_PAN_TARGET createsprite gNightmareDevilSpriteTemplate, ANIM_TARGET, 2 - createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 14, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 14, 1 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER end -General_CastformChange:: - createvisualtask AnimTask_IsMonInvisible, 2, - jumpargeq 7, 1, CastformChangeSkipAnim +General_CastformChange: + createvisualtask AnimTask_IsMonInvisible, 2 + jumpreteq TRUE, CastformChangeSkipAnim goto CastformChangeContinue -CastformChangeContinue:: +CastformChangeContinue: monbg ANIM_ATTACKER - playsewithpan SE_M_TELEPORT, 192 - waitplaysewithpan SE_M_MINIMIZE, 192, 48 + playsewithpan SE_M_TELEPORT, SOUND_PAN_ATTACKER + waitplaysewithpan SE_M_MINIMIZE, SOUND_PAN_ATTACKER, 48 createvisualtask AnimTask_TransformMon, 2, 1 waitforvisualfinish clearmonbg ANIM_ATTACKER end -CastformChangeSkipAnim:: +CastformChangeSkipAnim: createvisualtask AnimTask_CastformGfxChange, 2, 1 end -General_StatsChange:: - createvisualtask AnimTask_StatsChange, 5, +General_StatsChange: + createvisualtask AnimTask_StatsChange, 5 waitforvisualfinish end -General_SubstituteFade:: +General_SubstituteFade: monbg ANIM_ATTACKER createvisualtask AnimTask_SubstituteFadeToInvisible, 5 - createvisualtask AnimTask_BlendSelected, 10, 2, 0, 0, 16, RGB_WHITE + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_ATTACKER, 0, 0, 16, RGB_WHITE waitforvisualfinish delay 1 clearmonbg ANIM_ATTACKER delay 2 blendoff - createvisualtask AnimTask_BlendSelected, 10, 2, 0, 0, 0, RGB_WHITE - createvisualtask AnimTask_SwapMonSpriteToFromSubstitute, 2, 1 + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_ATTACKER, 0, 0, 0, RGB_WHITE + createvisualtask AnimTask_SwapMonSpriteToFromSubstitute, 2, TRUE end -General_SubstituteAppear:: - createvisualtask AnimTask_MonToSubstitute, 2, +General_SubstituteAppear: + createvisualtask AnimTask_MonToSubstitute, 2 end -General_BaitThrow:: +General_BaitThrow: createvisualtask AnimTask_SafariOrGhost_DecideAnimSides, 2, 0 - createvisualtask AnimTask_LoadBaitGfx, 2, + createvisualtask AnimTask_LoadBaitGfx, 2 delay 0 - waitplaysewithpan SE_M_JUMP_KICK, 192, 22 + waitplaysewithpan SE_M_JUMP_KICK, SOUND_PAN_ATTACKER, 22 createsprite gSafariBaitSpriteTemplate, ANIM_TARGET, 3, -18, 12, 0, 32 delay 50 - loopsewithpan SE_M_TAIL_WHIP, 63, 19, 2 - createvisualtask AnimTask_SwayMon, 5, 1, 8, 1536, 2, 1 + loopsewithpan SE_M_TAIL_WHIP, SOUND_PAN_TARGET, 19, 2 + createvisualtask AnimTask_SwayMon, 5, 1, 8, 1536, 2, ANIM_TARGET waitforvisualfinish - createvisualtask AnimTask_FreeBaitGfx, 2, + createvisualtask AnimTask_FreeBaitGfx, 2 end -General_ItemKnockoff:: +General_ItemKnockoff: loadspritegfx ANIM_TAG_ITEM_BAG - createsprite gKnockOffItemSpriteTemplate, ANIM_TARGET, 2, + createsprite gKnockOffItemSpriteTemplate, ANIM_TARGET, 2 end -General_TurnTrap:: - createvisualtask AnimTask_GetTrappedMoveAnimId, 5, - jumpargeq 0, 1, Status_FireSpin - jumpargeq 0, 2, Status_Whirlpool - jumpargeq 0, 3, Status_Clamp - jumpargeq 0, 4, Status_SandTomb +General_TurnTrap: + createvisualtask AnimTask_GetTrappedMoveAnimId, 5 + jumpargeq 0, TRAP_ANIM_FIRE_SPIN, Status_FireSpin + jumpargeq 0, TRAP_ANIM_WHIRLPOOL, Status_Whirlpool + jumpargeq 0, TRAP_ANIM_CLAMP, Status_Clamp + jumpargeq 0, TRAP_ANIM_SAND_TOMB, Status_SandTomb goto Status_BindWrap -Status_BindWrap:: +Status_BindWrap: loadspritegfx ANIM_TAG_TENDRILS - loopsewithpan SE_M_SCRATCH, 63, 6, 2 + loopsewithpan SE_M_SCRATCH, SOUND_PAN_TARGET, 6, 2 createsprite gConstrictBindingSpriteTemplate, ANIM_TARGET, 4, 0, 16, 0, 1 delay 7 createsprite gConstrictBindingSpriteTemplate, ANIM_TARGET, 2, 0, 8, 1, 1 delay 3 - createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 8, 1 + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 8, 1 delay 20 - setarg 7, 65535 - playsewithpan SE_M_BIND, 63 + setarg 7, 0xFFFF + playsewithpan SE_M_BIND, SOUND_PAN_TARGET waitforvisualfinish end -Status_FireSpin:: +Status_FireSpin: loadspritegfx ANIM_TAG_SMALL_EMBER - playsewithpan SE_M_SACRED_FIRE2, 63 - createvisualtask AnimTask_ShakeMon, 5, 1, 0, 2, 30, 1 + playsewithpan SE_M_SACRED_FIRE2, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 2, 30, 1 call FireSpinEffect call FireSpinEffect waitforvisualfinish stopsound end -Status_Whirlpool:: +Status_Whirlpool: loadspritegfx ANIM_TAG_WATER_ORB monbg ANIM_DEF_PARTNER - monbgprio_28 1 + splitbgprio ANIM_TARGET setalpha 12, 8 delay 0 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 4, 2, 0, 7, 23968 - playsewithpan SE_M_WHIRLPOOL, 63 - createvisualtask AnimTask_ShakeMon, 5, 1, 0, 2, 30, 1 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, F_PAL_TARGET, 2, 0, 7, RGB(0, 13, 23) + playsewithpan SE_M_WHIRLPOOL, SOUND_PAN_TARGET + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 2, 30, 1 call WhirlpoolEffect call WhirlpoolEffect delay 12 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 4, 2, 7, 0, 23968 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, F_PAL_TARGET, 2, 7, 0, RGB(0, 13, 23) waitforvisualfinish stopsound clearmonbg ANIM_DEF_PARTNER end -Status_Clamp:: +Status_Clamp: loadspritegfx ANIM_TAG_CLAMP loadspritegfx ANIM_TAG_IMPACT - monbg 1 + monbg ANIM_TARGET setalpha 12, 8 - playsewithpan SE_M_VICEGRIP, 63 + playsewithpan SE_M_VICEGRIP, SOUND_PAN_TARGET createsprite gClampJawSpriteTemplate, ANIM_ATTACKER, 2, -32, 0, 2, 819, 0, 10 createsprite gClampJawSpriteTemplate, ANIM_ATTACKER, 2, 32, 0, 6, -819, 0, 10 delay 10 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 2 - createvisualtask AnimTask_ShakeMon, 5, 1, 3, 0, 5, 1 + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 2 + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 3, 0, 5, 1 waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff waitforvisualfinish end -Status_SandTomb:: +Status_SandTomb: loadspritegfx ANIM_TAG_MUD_SAND - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 4, 2, 0, 7, 563 - createvisualtask AnimTask_ShakeMon, 5, 1, 0, 2, 30, 1 - playsewithpan SE_M_SAND_TOMB, 63 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, F_PAL_TARGET, 2, 0, 7, RGB(19, 17, 0) + createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 2, 30, 1 + playsewithpan SE_M_SAND_TOMB, SOUND_PAN_TARGET call SandTombSwirlingDirt call SandTombSwirlingDirt delay 22 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 4, 2, 7, 0, 563 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, F_PAL_TARGET, 2, 7, 0, RGB(19, 17, 0) waitforvisualfinish stopsound end -General_ItemEffect:: +General_HeldItemEffect: loadspritegfx ANIM_TAG_THIN_RING loadspritegfx ANIM_TAG_SPARKLE_2 delay 0 - playsewithpan SE_M_TAKE_DOWN, 192 - createvisualtask AnimTask_RotateMonToSideAndRestore, 2, 16, 128, 0, 2 + playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER + createvisualtask AnimTask_RotateMonToSideAndRestore, 2, 16, 128, ANIM_ATTACKER, 2 waitforvisualfinish - playsewithpan SE_M_TAKE_DOWN, 192 - createvisualtask AnimTask_RotateMonToSideAndRestore, 2, 16, 128, 0, 2 + playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER + createvisualtask AnimTask_RotateMonToSideAndRestore, 2, 16, 128, ANIM_ATTACKER, 2 waitforvisualfinish - playsewithpan SE_M_TAKE_DOWN, 192 - createvisualtask AnimTask_RotateMonToSideAndRestore, 2, 16, 128, 0, 2 + playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER + createvisualtask AnimTask_RotateMonToSideAndRestore, 2, 16, 128, ANIM_ATTACKER, 2 waitforvisualfinish - playsewithpan SE_M_MORNING_SUN, 192 + playsewithpan SE_M_MORNING_SUN, SOUND_PAN_ATTACKER call GrantingStarsEffect waitforvisualfinish - playsewithpan SE_SHINY, 192 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 2, 3, 7, 0, 26609 + playsewithpan SE_SHINY, SOUND_PAN_ATTACKER + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_ATTACKER, 3, 7, 0, RGB(17, 31, 25) createsprite gThinRingExpandingSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 0, 0 waitforvisualfinish end -General_SmokeballEscape:: +General_SmokeballEscape: loadspritegfx ANIM_TAG_PINK_CLOUD monbg ANIM_ATTACKER setalpha 12, 4 delay 0 - playsewithpan SE_BALL_OPEN, 63 + playsewithpan SE_BALL_OPEN, SOUND_PAN_TARGET createsprite gSmokeBallEscapeCloudSpriteTemplate, ANIM_TARGET, 0, 0, 32, 28, 30 delay 4 - playsewithpan SE_BALL_OPEN, 63 + playsewithpan SE_BALL_OPEN, SOUND_PAN_TARGET createsprite gSmokeBallEscapeCloudSpriteTemplate, ANIM_ATTACKER, 127, 2, 12, 20, 30 delay 12 - playsewithpan SE_BALL_OPEN, 63 + playsewithpan SE_BALL_OPEN, SOUND_PAN_TARGET createsprite gSmokeBallEscapeCloudSpriteTemplate, ANIM_ATTACKER, 126, 2, -28, 4, 30 delay 12 - playsewithpan SE_BALL_OPEN, 63 + playsewithpan SE_BALL_OPEN, SOUND_PAN_TARGET createsprite gSmokeBallEscapeCloudSpriteTemplate, ANIM_ATTACKER, 124, 2, 14, -20, 30 delay 4 - playsewithpan SE_BALL_OPEN, 63 + playsewithpan SE_BALL_OPEN, SOUND_PAN_TARGET createvisualtask AnimTask_AttackerFadeToInvisible, 2, 2 createsprite gSmokeBallEscapeCloudSpriteTemplate, ANIM_ATTACKER, 123, 3, 4, 4, 30 delay 14 - playsewithpan SE_BALL_OPEN, 63 + playsewithpan SE_BALL_OPEN, SOUND_PAN_TARGET createsprite gSmokeBallEscapeCloudSpriteTemplate, ANIM_ATTACKER, 122, 3, -14, 18, 46 delay 0 createsprite gSmokeBallEscapeCloudSpriteTemplate, ANIM_ATTACKER, 121, 3, 14, -14, 46 @@ -10710,168 +10708,168 @@ General_SmokeballEscape:: createsprite gSmokeBallEscapeCloudSpriteTemplate, ANIM_ATTACKER, 118, 3, 0, 0, 46 waitforvisualfinish clearmonbg ANIM_ATTACKER - invisible 0 + invisible ANIM_ATTACKER delay 0 blendoff end -General_HangedOn:: - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 2, 7, 0, 9, 31 - playsewithpan SE_M_DRAGON_RAGE, 192 +General_FocusBand: + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, F_PAL_ATTACKER, 7, 0, 9, RGB_RED + playsewithpan SE_M_DRAGON_RAGE, SOUND_PAN_ATTACKER createvisualtask AnimTask_SlideMonForFocusBand, 5, 30, 128, 0, 1, 2, 0, 1 waitforvisualfinish - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 2, 4, 9, 0, 31 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, F_PAL_ATTACKER, 4, 9, 0, RGB_RED waitforvisualfinish delay 6 createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 0, 0, 0, 15 end -General_Rain:: +General_Rain: loadspritegfx ANIM_TAG_RAIN_DROPS - playsewithpan SE_M_RAIN_DANCE, 192 - createvisualtask AnimTask_BlendSelected, 10, 1 | (0xF << 7), 2, 0, 4, RGB_BLACK + playsewithpan SE_M_RAIN_DANCE, SOUND_PAN_ATTACKER + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_BG | F_PAL_BATTLERS_2, 2, 0, 4, RGB_BLACK waitforvisualfinish createvisualtask AnimTask_CreateRaindrops, 2, 0, 3, 60 createvisualtask AnimTask_CreateRaindrops, 2, 0, 3, 60 delay 50 waitforvisualfinish - createvisualtask AnimTask_BlendSelected, 10, 1 | (0xF << 7), 2, 4, 0, RGB_BLACK + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_BG | F_PAL_BATTLERS_2, 2, 4, 0, RGB_BLACK waitforvisualfinish end -General_Sun:: +General_Sun: goto Move_SUNNY_DAY -General_Sandstorm:: +General_Sandstorm: goto Move_SANDSTORM -General_Hail:: +General_Hail: goto Move_HAIL -General_LeechSeedDrain:: - createvisualtask AnimTask_GetBattlersFromArg, 5, +General_LeechSeedDrain: + createvisualtask AnimTask_GetBattlersFromArg, 5 delay 0 goto Move_ABSORB -General_MonHit:: +General_MonHit: loadspritegfx ANIM_TAG_IMPACT - monbg 1 + monbg ANIM_TARGET setalpha 12, 8 - playsewithpan SE_M_DOUBLE_SLAP, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 1, 2 - createvisualtask AnimTask_ShakeMon, 2, 1, 3, 0, 6, 1 + playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_TARGET, 2 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 6, 1 waitforvisualfinish - clearmonbg 1 + clearmonbg ANIM_TARGET blendoff end -General_ItemSteal:: +General_ItemSteal: loadspritegfx ANIM_TAG_ITEM_BAG createvisualtask AnimTask_SetAnimAttackerAndTargetForEffectAtk, 2 - createvisualtask AnimTask_TargetToEffectBattler, 2, + createvisualtask AnimTask_SetTargetToEffectBattler, 2 @ Redundant with above delay 1 createsprite gItemStealSpriteTemplate, ANIM_ATTACKER, 2, 0, -5, 10, 2, -1 end -General_SnatchMove:: +General_SnatchMove: loadspritegfx ANIM_TAG_ITEM_BAG createvisualtask AnimTask_SetAnimAttackerAndTargetForEffectTgt, 2 call SnatchMoveTrySwapFromSubstitute delay 1 - createvisualtask AnimTask_SwayMon, 2, 0, 5, 5120, 4, 1 + createvisualtask AnimTask_SwayMon, 2, 0, 5, 5120, 4, ANIM_TARGET waitforvisualfinish - createvisualtask AnimTask_IsTargetSameSide, 2, - jumpargeq 7, 0, SnatchOpposingMonMove + createvisualtask AnimTask_IsTargetSameSide, 2 + jumpretfalse SnatchOpposingMonMove goto SnatchPartnerMonMove -SnatchMoveContinue:: +SnatchMoveContinue: waitforvisualfinish call SnatchMoveTrySwapToSubstitute end -SnatchOpposingMonMove:: - playsewithpan SE_M_DOUBLE_TEAM, 192 - createvisualtask AnimTask_SnatchOpposingMonMove, 2, +SnatchOpposingMonMove: + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER + createvisualtask AnimTask_SnatchOpposingMonMove, 2 goto SnatchMoveContinue -SnatchPartnerMonMove:: - playsewithpan SE_M_DOUBLE_TEAM, 192 - createvisualtask AnimTask_SnatchPartnerMove, 2, +SnatchPartnerMonMove: + playsewithpan SE_M_DOUBLE_TEAM, SOUND_PAN_ATTACKER + createvisualtask AnimTask_SnatchPartnerMove, 2 goto SnatchMoveContinue -General_FutureSightHit:: +General_FutureSightHit: createvisualtask AnimTask_SetAnimTargetToBattlerTarget, 2 monbg ANIM_DEF_PARTNER - playsewithpan SE_M_PSYBEAM, 192 + playsewithpan SE_M_PSYBEAM, SOUND_PAN_ATTACKER call SetPsychicBackground setalpha 8, 8 - playsewithpan SE_M_SUPERSONIC, 63 - waitplaysewithpan SE_M_SUPERSONIC, 63, 8 - createvisualtask AnimTask_ShakeMon, 2, 1, 4, 0, 15, 1 - createvisualtask AnimTask_ScaleMonAndRestore, 5, -5, -5, 15, 1, 1 + playsewithpan SE_M_SUPERSONIC, SOUND_PAN_TARGET + waitplaysewithpan SE_M_SUPERSONIC, SOUND_PAN_TARGET, 8 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 4, 0, 15, 1 + createvisualtask AnimTask_ScaleMonAndRestore, 5, -5, -5, 15, ANIM_TARGET, 1 waitforvisualfinish - createvisualtask AnimTask_ShakeMon, 2, 1, 4, 0, 24, 1 + createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 4, 0, 24, 1 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff waitforvisualfinish delay 1 - call UnsetPsychicBg + call UnsetPsychicBackground end -General_DoomDesireHit:: - createvisualtask AnimTask_SetAnimTargetToBattlerTarget, 2, +General_DoomDesireHit: + createvisualtask AnimTask_SetAnimTargetToBattlerTarget, 2 loadspritegfx ANIM_TAG_EXPLOSION - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 0, 16, RGB_WHITE + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 3, 0, 16, RGB_WHITE waitforvisualfinish delay 10 - createvisualtask AnimTask_DoomDesireLightBeam, 5, + createvisualtask AnimTask_DoomDesireLightBeam, 5 delay 9 - playsewithpan SE_M_CONFUSE_RAY, 192 + playsewithpan SE_M_CONFUSE_RAY, SOUND_PAN_ATTACKER delay 9 playsewithpan SE_M_CONFUSE_RAY, 0 delay 9 - playsewithpan SE_M_CONFUSE_RAY, 63 + playsewithpan SE_M_CONFUSE_RAY, SOUND_PAN_TARGET delay 25 - createvisualtask AnimTask_ShakeMonInPlace, 2, 1, 10, 0, 20, 1 - playsewithpan SE_M_SELF_DESTRUCT, 63 + createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_TARGET, 10, 0, 20, 1 + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, 0, 0, 1, 1 delay 6 - playsewithpan SE_M_SELF_DESTRUCT, 63 + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, 24, -24, 1, 1 delay 6 - playsewithpan SE_M_SELF_DESTRUCT, 63 + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, -16, 16, 1, 1 delay 6 - playsewithpan SE_M_SELF_DESTRUCT, 63 + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, -24, -12, 1, 1 delay 6 - playsewithpan SE_M_SELF_DESTRUCT, 63 + playsewithpan SE_M_SELF_DESTRUCT, SOUND_PAN_TARGET createsprite gExplosionSpriteTemplate, ANIM_ATTACKER, 3, 16, 16, 1, 1 waitforvisualfinish - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 16, 0, RGB_WHITE + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 3, 16, 0, RGB_WHITE waitforvisualfinish end -General_FocusPunchSetUp:: +General_FocusPunchSetUp: loadspritegfx ANIM_TAG_FOCUS_ENERGY - playsewithpan SE_M_DRAGON_RAGE, 192 + playsewithpan SE_M_DRAGON_RAGE, SOUND_PAN_ATTACKER call EndureEffect delay 8 - createvisualtask AnimTask_CurseBlendEffect, 2, 2, 2, 2, 0, 11, 31 - createvisualtask AnimTask_ShakeMon2, 2, 0, 1, 0, 32, 1 + createvisualtask AnimTask_BlendColorCycle, 2, F_PAL_ATTACKER, 2, 2, 0, 11, RGB_RED + createvisualtask AnimTask_ShakeMon2, 2, ANIM_ATTACKER, 1, 0, 32, 1 call EndureEffect delay 8 call EndureEffect waitforvisualfinish end -General_IngrainHeal:: +General_IngrainHeal: loadspritegfx ANIM_TAG_ORBS loadspritegfx ANIM_TAG_BLUE_STAR monbg ANIM_DEF_PARTNER setalpha 12, 8 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 0, 4, 13293 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 1, 0, 4, RGB(13, 31, 12) waitforvisualfinish delay 3 call AbsorbEffect @@ -10879,90 +10877,90 @@ General_IngrainHeal:: delay 15 call HealingEffect waitforvisualfinish - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 1, 4, 0, 13293 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 1, 4, 0, RGB(13, 31, 12) waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff end -General_WishHeal:: +General_WishHeal: loadspritegfx ANIM_TAG_BLUE_STAR loadspritegfx ANIM_TAG_SPARKLE_2 - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 0, 10, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 3, 0, 10, RGB_BLACK waitforvisualfinish - playsewithpan SE_M_MEGA_KICK, 192 + playsewithpan SE_M_MEGA_KICK, SOUND_PAN_ATTACKER call GrantingStarsEffect waitforvisualfinish call HealingEffect waitforvisualfinish - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 1, 3, 10, 0, 0 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 3, 10, 0, RGB_BLACK end -General_MonScared:: +General_MonScared: createvisualtask AnimTask_SafariOrGhost_DecideAnimSides, 2, 1 waitforvisualfinish loadspritegfx ANIM_TAG_SWEAT_BEAD - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 4, 2, 0, 10, 26336 - createvisualtask AnimTask_ShakeMon2, 2, 1, 2, 0, 10, 1 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, F_PAL_TARGET, 2, 0, 10, RGB(0, 23, 25) + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 10, 1 delay 20 createsprite gSprayWaterDropletSpriteTemplate, ANIM_TARGET, 5, 0, 1 - playsewithpan SE_M_SKETCH, 63 + playsewithpan SE_M_SKETCH, SOUND_PAN_TARGET createsprite gSprayWaterDropletSpriteTemplate, ANIM_TARGET, 5, 1, 1 - createvisualtask AnimTask_ShakeMon2, 2, 1, 4, 0, 5, 1 - createvisualtask AnimTask_StretchTargetUp, 3, + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 5, 1 + createvisualtask AnimTask_StretchTargetUp, 3 waitforvisualfinish - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 4, 2, 10, 0, 26336 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, F_PAL_TARGET, 2, 10, 0, RGB(0, 23, 25) waitforvisualfinish end -General_GhostGetOut:: +General_GhostGetOut: createvisualtask AnimTask_SafariOrGhost_DecideAnimSides, 2, 1 waitforvisualfinish - fadetobg 2 + fadetobg BG_GHOST waitbgfadeout - monbg_22 0 - createvisualtask sub_80B6BBC, 2, + monbg_static ANIM_ATTACKER + createvisualtask AnimTask_GhostGetOut, 2 waitbgfadein - loopsewithpan SE_M_PSYBEAM, 63, 20, 3 + loopsewithpan SE_M_PSYBEAM, SOUND_PAN_TARGET, 20, 3 waitforvisualfinish - clearmonbg_23 0 + clearmonbg_static ANIM_ATTACKER delay 1 loadspritegfx ANIM_TAG_SWEAT_BEAD - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 4, -1, 0, 6, 27349 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, F_PAL_TARGET, -1, 0, 6, RGB(21, 22, 26) createsprite gSprayWaterDropletSpriteTemplate, ANIM_TARGET, 5, 0, 1 createsprite gSprayWaterDropletSpriteTemplate, ANIM_TARGET, 5, 1, 1 - createvisualtask AnimTask_ShakeMon2, 2, 1, 4, 0, 5, 1 - createvisualtask AnimTask_StretchTargetUp, 3, + createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 5, 1 + createvisualtask AnimTask_StretchTargetUp, 3 waitforvisualfinish - createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, 4, -1, 6, 0, 27349 + createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, F_PAL_TARGET, -1, 6, 0, RGB(21, 22, 26) waitforvisualfinish restorebg waitbgfadein end -General_SilphScoped:: +General_SilphScoped: monbg ANIM_ATTACKER - playsewithpan SE_M_TELEPORT, 192 - waitplaysewithpan SE_M_MINIMIZE, 192, 48 + playsewithpan SE_M_TELEPORT, SOUND_PAN_ATTACKER + waitplaysewithpan SE_M_MINIMIZE, SOUND_PAN_ATTACKER, 48 createvisualtask AnimTask_TransformMon, 2, 255 waitsound waitforvisualfinish clearmonbg ANIM_ATTACKER end -General_SafariRockThrow:: +General_SafariRockThrow: createvisualtask AnimTask_SafariOrGhost_DecideAnimSides, 2, 0 waitforvisualfinish loadspritegfx ANIM_TAG_ROCKS loadspritegfx ANIM_TAG_IMPACT delay 0 - waitplaysewithpan SE_M_JUMP_KICK, 192, 22 + waitplaysewithpan SE_M_JUMP_KICK, SOUND_PAN_ATTACKER, 22 createsprite gSafariRockTemplate, ANIM_TARGET, 3, -17, 14, 8, 0 delay 50 monbg ANIM_DEF_PARTNER setalpha 12, 8 delay 0 - playsewithpan SE_M_DOUBLE_SLAP, 63 + playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, -4, -20, 1, 2 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER @@ -10970,67 +10968,66 @@ General_SafariRockThrow:: waitforvisualfinish end -General_SafariReaction:: - createvisualtask AnimTask_SafariGetReaction, 2, +General_SafariReaction: + createvisualtask AnimTask_SafariGetReaction, 2 waitforvisualfinish - jumpargeq 7, 0, SafariReaction_WatchingCarefully - jumpargeq 7, 1, SafariReaction_Angry - jumpargeq 7, 2, SafariReaction_Eating + jumpreteq B_MSG_MON_WATCHING, SafariReaction_WatchingCarefully + jumpreteq B_MSG_MON_ANGRY, SafariReaction_Angry + jumpreteq B_MSG_MON_EATING, SafariReaction_Eating end -SafariReaction_WatchingCarefully:: - playsewithpan SE_M_TAKE_DOWN, 63 +SafariReaction_WatchingCarefully: + playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_TARGET createvisualtask AnimTask_RotateMonToSideAndRestore, 2, 16, 96, 0, 2 waitforvisualfinish - playsewithpan SE_M_TAKE_DOWN, 63 + playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_TARGET createvisualtask AnimTask_RotateMonToSideAndRestore, 2, 16, -96, 0, 2 end -SafariReaction_Angry:: +SafariReaction_Angry: loadspritegfx ANIM_TAG_ANGER createsprite gAngerMarkSpriteTemplate, ANIM_TARGET, 2, 1, 20, -20 - playsewithpan SE_M_SWAGGER2, 63 + playsewithpan SE_M_SWAGGER2, SOUND_PAN_TARGET waitforvisualfinish delay 12 createsprite gAngerMarkSpriteTemplate, ANIM_TARGET, 2, 1, -20, -20 - playsewithpan SE_M_SWAGGER2, 63 + playsewithpan SE_M_SWAGGER2, SOUND_PAN_TARGET end -SafariReaction_Eating:: - playsewithpan SE_M_TAKE_DOWN, 63 +SafariReaction_Eating: + playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_TARGET createvisualtask AnimTask_RotateMonToSideAndRestore, 2, 8, 136, 0, 2 waitforvisualfinish - playsewithpan SE_M_TAKE_DOWN, 63 + playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_TARGET createvisualtask AnimTask_RotateMonToSideAndRestore, 2, 8, 136, 0, 2 end -SnatchMoveTrySwapFromSubstitute:: - createvisualtask AnimTask_IsAttackerBehindSubstitute, 2, - jumpargeq 7, 1, SnatchMoveSwapSubstituteForMon - -SnatchMoveTrySwapFromSubstituteEnd:: +SnatchMoveTrySwapFromSubstitute: + createvisualtask AnimTask_IsAttackerBehindSubstitute, 2 + jumprettrue SnatchMoveSwapSubstituteForMon +SnatchMoveTrySwapFromSubstituteEnd: waitforvisualfinish return -SnatchMoveSwapSubstituteForMon:: - createvisualtask AnimTask_SwapMonSpriteToFromSubstitute, 2, 1 +SnatchMoveSwapSubstituteForMon: + createvisualtask AnimTask_SwapMonSpriteToFromSubstitute, 2, TRUE waitforvisualfinish goto SnatchMoveTrySwapFromSubstituteEnd -SnatchMoveTrySwapToSubstitute:: - createvisualtask AnimTask_IsAttackerBehindSubstitute, 2, - jumpargeq 7, 1, SnatchMoveSwapMonForSubstitute - -SnatchMoveTrySwapToSubstituteEnd:: +SnatchMoveTrySwapToSubstitute: + createvisualtask AnimTask_IsAttackerBehindSubstitute, 2 + jumprettrue SnatchMoveSwapMonForSubstitute +SnatchMoveTrySwapToSubstituteEnd: waitforvisualfinish return -SnatchMoveSwapMonForSubstitute:: - createvisualtask AnimTask_SwapMonSpriteToFromSubstitute, 2, 0 +SnatchMoveSwapMonForSubstitute: + createvisualtask AnimTask_SwapMonSpriteToFromSubstitute, 2, FALSE waitforvisualfinish goto SnatchMoveTrySwapToSubstituteEnd -Special_LevelUp:: +@ Healthbox blue flash effect on level up +Special_LevelUp: playsewithpan SE_EXP_MAX, 0 createvisualtask AnimTask_LoadHealthboxPalsForLevelUp, 2 delay 0 @@ -11039,64 +11036,64 @@ Special_LevelUp:: createvisualtask AnimTask_FreeHealthboxPalsForLevelUp, 2 end -Special_SwitchOutPlayerMon:: +Special_SwitchOutPlayerMon: createvisualtask AnimTask_SwitchOutBallEffect, 2 delay 10 createvisualtask AnimTask_SwitchOutShrinkMon, 2 end -Special_SwitchOutOpponentMon:: - createvisualtask AnimTask_SwitchOutBallEffect, 2, +Special_SwitchOutOpponentMon: + createvisualtask AnimTask_SwitchOutBallEffect, 2 delay 10 - createvisualtask AnimTask_SwitchOutShrinkMon, 2, + createvisualtask AnimTask_SwitchOutShrinkMon, 2 end -Special_BallThrow:: +Special_BallThrow: createvisualtask AnimTask_LoadBallGfx, 2 delay 0 playsewithpan SE_BALL_THROW, 0 createvisualtask AnimTask_ThrowBall, 2 - createvisualtask AnimTask_IsBallBlockedByTrainerOrDodged, 2, - jumpargeq 7, -1, BallThrowTrainerBlock - jumpargeq 7, -2, BallThrowGhostDodged -BallThrowEnd:: + createvisualtask AnimTask_IsBallBlockedByTrainerOrDodged, 2 + jumpreteq -1, BallThrowTrainerBlock + jumpreteq -2, BallThrowGhostDodged +BallThrowEnd: waitforvisualfinish createvisualtask AnimTask_FreeBallGfx, 2 end -BallThrowTrainerBlock:: +BallThrowTrainerBlock: loadspritegfx ANIM_TAG_IMPACT delay 25 monbg ANIM_DEF_PARTNER setalpha 12, 8 delay 0 - playsewithpan SE_M_DOUBLE_SLAP, 63 - createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, -4, -20, 1, 2 + playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET + createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, -4, -20, ANIM_TARGET, 2 waitforvisualfinish clearmonbg ANIM_DEF_PARTNER blendoff goto BallThrowEnd -BallThrowGhostDodged:: +BallThrowGhostDodged: delay 16 - createvisualtask AnimTask_WindUpLunge, 2, 1, 48, 6, 16, 48, -48, 16 - playsewithpan SE_M_TAKE_DOWN, 63 - waitplaysewithpan SE_M_TAKE_DOWN, 63, 48 + createvisualtask AnimTask_WindUpLunge, 2, ANIM_TARGET, 48, 6, 16, 48, -48, 16 + playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_TARGET + waitplaysewithpan SE_M_TAKE_DOWN, SOUND_PAN_TARGET, 48 waitforvisualfinish goto BallThrowEnd -Special_SafariBallThrow:: - createvisualtask AnimTask_LoadBallGfx, 2, +Special_BallThrowWithTrainer: + createvisualtask AnimTask_LoadBallGfx, 2 delay 0 createvisualtask AnimTask_ThrowBallSpecial, 2 waitforvisualfinish - createvisualtask AnimTask_FreeBallGfx, 2, + createvisualtask AnimTask_FreeBallGfx, 2 end -Special_SubstituteToMon:: - createvisualtask AnimTask_SwapMonSpriteToFromSubstitute, 2, 1 +Special_SubstituteToMon: + createvisualtask AnimTask_SwapMonSpriteToFromSubstitute, 2, TRUE end -Special_MonToSubstitute:: - createvisualtask AnimTask_SwapMonSpriteToFromSubstitute, 2, 0 +Special_MonToSubstitute: + createvisualtask AnimTask_SwapMonSpriteToFromSubstitute, 2, FALSE end diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index d469bb95d..8aa0a1004 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -11,7 +11,7 @@ #include "constants/songs.h" #include "constants/trainers.h" #include "constants/game_stat.h" -#include "battle_string_ids.h" +#include "constants/battle_string_ids.h" .include "asm/macros/battle_script.inc" @ Define these here since misc_constants.inc conflicts with the C headers .set NULL, 0 @@ -2964,20 +2964,20 @@ BattleScript_RivalBattleLostSkipMonRecall:: end2 BattleScript_BattleTowerLost:: - various8 BS_ATTACKER + getbattlersforrecall jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0, BattleScript_BattleTowerLostLostSkipMonRecall printfromtable gDoubleBattleRecallStrings waitmessage B_WAIT_TIME_LONG - returnopponentmon1toball BS_ATTACKER + returnopponentmon1toball waitstate - returnopponentmon2toball BS_ATTACKER + returnopponentmon2toball waitstate BattleScript_BattleTowerLostLostSkipMonRecall:: trainerslidein BS_ATTACKER waitstate printstring STRINGID_TRAINER1WINTEXT jumpifnotbattletype BATTLE_TYPE_DOUBLE, BattleScript_BattleTowerLostLostSkipDouble - printstring STRINGID_TRAINER2NAME + printstring STRINGID_TRAINER2WINTEXT BattleScript_BattleTowerLostLostSkipDouble:: end2 @@ -2995,7 +2995,7 @@ BattleScript_BattleTowerTrainerBattleWon:: jumpifnotbattletype BATTLE_TYPE_TRAINER_TOWER, BattleScript_BattleTowerEtcTrainerBattleWonSkipText printstring STRINGID_TRAINER1LOSETEXT jumpifnotbattletype BATTLE_TYPE_DOUBLE, BattleScript_BattleTowerEtcTrainerBattleWonSkipText - printstring STRINGID_TRAINER2CLASS + printstring STRINGID_TRAINER2LOSETEXT BattleScript_BattleTowerEtcTrainerBattleWonSkipText:: pickup end2 diff --git a/data/battle_scripts_2.s b/data/battle_scripts_2.s index 7a69b2320..6f41e3ce1 100644 --- a/data/battle_scripts_2.s +++ b/data/battle_scripts_2.s @@ -9,7 +9,7 @@ #include "constants/pokemon.h" #include "constants/songs.h" #include "constants/game_stat.h" -#include "battle_string_ids.h" +#include "constants/battle_string_ids.h" .include "asm/macros/battle_script.inc" @ Define these here since misc_constants.inc conflicts with the C headers .set NULL, 0 @@ -209,7 +209,7 @@ BattleScript_PokeFluteEnd:: finishaction BattleScript_WatchesCarefully:: - printfromtable gSafariPokeblockResultStringIds + printfromtable gSafariReactionStringIds waitmessage B_WAIT_TIME_LONG playanimation BS_OPPONENT1, B_ANIM_SAFARI_REACTION end2 diff --git a/data/event_scripts.s b/data/event_scripts.s index e76eb50f5..5e349996d 100644 --- a/data/event_scripts.s +++ b/data/event_scripts.s @@ -1175,16 +1175,16 @@ EventScript_ReleaseEnd:: @ Unused EventScript_DelayedLookAround:: lockall - applymovement VAR_0x8004, Movement_WalkInPlaceFasterLeft + applymovement VAR_0x8004, Common_Movement_WalkInPlaceFasterLeft waitmovement 0 delay 20 - applymovement VAR_0x8004, Movement_WalkInPlaceFasterUp + applymovement VAR_0x8004, Common_Movement_WalkInPlaceFasterUp waitmovement 0 delay 20 - applymovement VAR_0x8004, Movement_WalkInPlaceFasterRight + applymovement VAR_0x8004, Common_Movement_WalkInPlaceFasterRight waitmovement 0 delay 20 - applymovement VAR_0x8004, Movement_WalkInPlaceFasterDown + applymovement VAR_0x8004, Common_Movement_WalkInPlaceFasterDown waitmovement 0 delay 20 releaseall diff --git a/data/field_effect_scripts.s b/data/field_effect_scripts.s index a2bff536f..0dc13e882 100644 --- a/data/field_effect_scripts.s +++ b/data/field_effect_scripts.s @@ -48,7 +48,7 @@ gFieldEffectScriptPointers:: .4byte gFldEffScript_UseWaterfall @ FLDEFF_USE_WATERFALL .4byte gFldEffScript_UseDive @ FLDEFF_USE_DIVE .4byte gFldEffScript_Pokeball @ FLDEFF_POKEBALL - .4byte gFldEffScript_HeartIcon @ FLDEFF_X_ICON + .4byte gFldEffScript_XIcon @ FLDEFF_X_ICON .4byte gFldEffScript_Nop47 @ FLDEFF_NOP_47 .4byte gFldEffScript_Nop48 @ FLDEFF_NOP_48 .4byte gFldEffScript_PopOutOfAsh @ FLDEFF_POP_OUT_OF_ASH @@ -256,7 +256,7 @@ gFldEffScript_Pokeball:: callnative FldEff_Pokeball end -gFldEffScript_HeartIcon:: +gFldEffScript_XIcon:: callnative FldEff_XIcon end diff --git a/data/maps.s b/data/maps.s index ad3f9c993..fc88d8fc2 100644 --- a/data/maps.s +++ b/data/maps.s @@ -1,3 +1,4 @@ +#include "constants/global.h" #include "constants/layouts.h" #include "constants/maps.h" #include "constants/region_map_sections.h" diff --git a/data/maps/BattleColosseum_2P/map.json b/data/maps/BattleColosseum_2P/map.json index 84c7b2a8c..1a9f7fd6a 100644 --- a/data/maps/BattleColosseum_2P/map.json +++ b/data/maps/BattleColosseum_2P/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_UNION_ROOM_RECEPTIONIST", "x": 9, "y": 3, @@ -34,15 +35,15 @@ "x": 6, "y": 8, "elevation": 3, - "dest_map": "MAP_NONE", - "dest_warp_id": 127 + "dest_map": "MAP_DYNAMIC", + "dest_warp_id": "WARP_ID_DYNAMIC" }, { "x": 7, "y": 8, "elevation": 3, - "dest_map": "MAP_NONE", - "dest_warp_id": 127 + "dest_map": "MAP_DYNAMIC", + "dest_warp_id": "WARP_ID_DYNAMIC" } ], "coord_events": [ diff --git a/data/maps/BattleColosseum_4P/map.json b/data/maps/BattleColosseum_4P/map.json index 3a1be5e7d..82103f13d 100644 --- a/data/maps/BattleColosseum_4P/map.json +++ b/data/maps/BattleColosseum_4P/map.json @@ -20,29 +20,29 @@ "x": 5, "y": 8, "elevation": 3, - "dest_map": "MAP_NONE", - "dest_warp_id": 127 + "dest_map": "MAP_DYNAMIC", + "dest_warp_id": "WARP_ID_DYNAMIC" }, { "x": 6, "y": 8, "elevation": 3, - "dest_map": "MAP_NONE", - "dest_warp_id": 127 + "dest_map": "MAP_DYNAMIC", + "dest_warp_id": "WARP_ID_DYNAMIC" }, { "x": 7, "y": 8, "elevation": 3, - "dest_map": "MAP_NONE", - "dest_warp_id": 127 + "dest_map": "MAP_DYNAMIC", + "dest_warp_id": "WARP_ID_DYNAMIC" }, { "x": 8, "y": 8, "elevation": 3, - "dest_map": "MAP_NONE", - "dest_warp_id": 127 + "dest_map": "MAP_DYNAMIC", + "dest_warp_id": "WARP_ID_DYNAMIC" } ], "coord_events": [ diff --git a/data/maps/BirthIsland_Exterior/map.json b/data/maps/BirthIsland_Exterior/map.json index a0522d51a..255ca4645 100644 --- a/data/maps/BirthIsland_Exterior/map.json +++ b/data/maps/BirthIsland_Exterior/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_METEORITE", "x": 15, "y": 12, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_BIRTH_ISLAND_METEORITE" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_0", "x": 15, "y": 3, @@ -48,7 +50,7 @@ "y": 24, "elevation": 3, "dest_map": "MAP_BIRTH_ISLAND_HARBOR", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/BirthIsland_Harbor/map.json b/data/maps/BirthIsland_Harbor/map.json index 91769a123..d26338c28 100644 --- a/data/maps/BirthIsland_Harbor/map.json +++ b/data/maps/BirthIsland_Harbor/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SEAGALLOP", "x": 8, "y": 9, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SAILOR", "x": 8, "y": 6, @@ -48,7 +50,7 @@ "y": 2, "elevation": 3, "dest_map": "MAP_BIRTH_ISLAND_EXTERIOR", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/CeladonCity/map.json b/data/maps/CeladonCity/map.json index 6aa1807d3..ec34003c3 100644 --- a/data/maps/CeladonCity/map.json +++ b/data/maps/CeladonCity/map.json @@ -27,6 +27,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 48, "y": 15, @@ -40,6 +41,7 @@ "flag": "FLAG_HIDE_CELADON_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_FAT_MAN", "x": 38, "y": 14, @@ -53,6 +55,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_POLIWRATH", "x": 36, "y": 14, @@ -66,6 +69,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LITTLE_GIRL", "x": 11, "y": 18, @@ -79,6 +83,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_2", "x": 18, "y": 22, @@ -92,6 +97,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", "x": 30, "y": 24, @@ -105,6 +111,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_2", "x": 26, "y": 19, @@ -118,6 +125,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 38, "y": 31, @@ -131,6 +139,7 @@ "flag": "FLAG_HIDE_CELADON_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", "x": 9, "y": 30, @@ -144,6 +153,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 52, "y": 22, @@ -157,6 +167,7 @@ "flag": "FLAG_TEMP_14" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 40, "y": 35, @@ -170,6 +181,7 @@ "flag": "FLAG_TEMP_13" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BOY", "x": 25, "y": 10, @@ -183,20 +195,15 @@ "flag": "0" }, { + "type": "clone", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", - "in_connection": true, "x": -7, "y": 21, - "elevation": 7, - "movement_type": "MOVEMENT_TYPE_NONE", - "movement_range_x": 0, - "movement_range_y": 0, - "trainer_type": "34", - "trainer_sight_or_berry_tree_id": "3", - "script": "0x0", - "flag": "0" + "target_local_id": 7, + "target_map": "MAP_ROUTE16" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 5, "y": 3, @@ -210,6 +217,7 @@ "flag": "FLAG_HIDE_CELADON_CITY_ETHER" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 47, "y": 24, @@ -229,91 +237,91 @@ "y": 21, "elevation": 0, "dest_map": "MAP_CELADON_CITY_GAME_CORNER", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 11, "y": 14, "elevation": 0, "dest_map": "MAP_CELADON_CITY_DEPARTMENT_STORE_1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 15, "y": 14, "elevation": 0, "dest_map": "MAP_CELADON_CITY_DEPARTMENT_STORE_1F", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 30, "y": 11, "elevation": 0, "dest_map": "MAP_CELADON_CITY_CONDOMINIUMS_1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 48, "y": 11, "elevation": 0, "dest_map": "MAP_CELADON_CITY_POKEMON_CENTER_1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 39, "y": 20, "elevation": 0, "dest_map": "MAP_CELADON_CITY_GAME_CORNER_PRIZE_ROOM", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 11, "y": 30, "elevation": 0, "dest_map": "MAP_CELADON_CITY_GYM", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 37, "y": 29, "elevation": 0, "dest_map": "MAP_CELADON_CITY_RESTAURANT", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 41, "y": 29, "elevation": 0, "dest_map": "MAP_CELADON_CITY_HOUSE1", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 49, "y": 29, "elevation": 0, "dest_map": "MAP_CELADON_CITY_HOTEL", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 29, "y": 5, "elevation": 0, "dest_map": "MAP_CELADON_CITY_CONDOMINIUMS_1F", - "dest_warp_id": 5 + "dest_warp_id": "5" }, { "x": 30, "y": 4, "elevation": 3, "dest_map": "MAP_CELADON_CITY_CONDOMINIUMS_1F", - "dest_warp_id": 5 + "dest_warp_id": "5" }, { "x": 31, "y": 5, "elevation": 0, "dest_map": "MAP_CELADON_CITY_CONDOMINIUMS_1F", - "dest_warp_id": 5 + "dest_warp_id": "5" } ], "coord_events": [], @@ -388,7 +396,7 @@ "y": 20, "elevation": 3, "item": "ITEM_PP_UP", - "flag": "HIDDEN_ITEM_CELADON_CITY_PP_UP", + "flag": "FLAG_HIDDEN_ITEM_CELADON_CITY_PP_UP", "quantity": 1, "underfoot": false } diff --git a/data/maps/CeladonCity/scripts.inc b/data/maps/CeladonCity/scripts.inc index 505e8b95f..adf2f5457 100644 --- a/data/maps/CeladonCity/scripts.inc +++ b/data/maps/CeladonCity/scripts.inc @@ -36,7 +36,7 @@ CeladonCity_EventScript_FatMan:: faceplayer msgbox CeladonCity_Text_MyTrustedPalPoliwrath closemessage - applymovement LOCALID_FAT_MAN, Movement_FaceOriginalDirection + applymovement LOCALID_FAT_MAN, Common_Movement_FaceOriginalDirection waitmovement 0 release end @@ -49,7 +49,7 @@ CeladonCity_EventScript_Poliwrath:: msgbox CeladonCity_Text_Poliwrath closemessage waitmoncry - applymovement LOCALID_POLIWRATH, Movement_FaceOriginalDirection + applymovement LOCALID_POLIWRATH, Common_Movement_FaceOriginalDirection waitmovement 0 release end diff --git a/data/maps/CeladonCity_Condominiums_1F/map.json b/data/maps/CeladonCity_Condominiums_1F/map.json index aeac5b626..f85c98135 100644 --- a/data/maps/CeladonCity_Condominiums_1F/map.json +++ b/data/maps/CeladonCity_Condominiums_1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MEOWTH", "x": 1, "y": 9, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CLEFAIRY", "x": 5, "y": 13, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_NIDORAN_F", "x": 5, "y": 8, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_WOMAN", "x": 2, "y": 9, @@ -74,42 +78,42 @@ "y": 19, "elevation": 0, "dest_map": "MAP_CELADON_CITY", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 12, "y": 18, "elevation": 3, "dest_map": "MAP_CELADON_CITY", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 13, "y": 19, "elevation": 0, "dest_map": "MAP_CELADON_CITY", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 4, "y": 2, "elevation": 3, "dest_map": "MAP_CELADON_CITY_CONDOMINIUMS_2F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 12, "y": 2, "elevation": 3, "dest_map": "MAP_CELADON_CITY_CONDOMINIUMS_2F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 2, "y": 1, "elevation": 3, "dest_map": "MAP_CELADON_CITY", - "dest_warp_id": 11 + "dest_warp_id": "11" } ], "coord_events": [], diff --git a/data/maps/CeladonCity_Condominiums_2F/map.json b/data/maps/CeladonCity_Condominiums_2F/map.json index 756f74fb3..30dbdcacd 100644 --- a/data/maps/CeladonCity_Condominiums_2F/map.json +++ b/data/maps/CeladonCity_Condominiums_2F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "0", "x": 6, "y": 6, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_FAME_CHECKER_ERIKA_JOURNALS" }, { + "type": "object", "graphics_id": "0", "x": 5, "y": 6, @@ -48,28 +50,28 @@ "y": 2, "elevation": 3, "dest_map": "MAP_CELADON_CITY_CONDOMINIUMS_1F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 2, "y": 2, "elevation": 3, "dest_map": "MAP_CELADON_CITY_CONDOMINIUMS_3F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 11, "y": 2, "elevation": 3, "dest_map": "MAP_CELADON_CITY_CONDOMINIUMS_3F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 12, "y": 2, "elevation": 3, "dest_map": "MAP_CELADON_CITY_CONDOMINIUMS_1F", - "dest_warp_id": 4 + "dest_warp_id": "4" } ], "coord_events": [], diff --git a/data/maps/CeladonCity_Condominiums_3F/map.json b/data/maps/CeladonCity_Condominiums_3F/map.json index cf2d74454..7b62fae53 100644 --- a/data/maps/CeladonCity_Condominiums_3F/map.json +++ b/data/maps/CeladonCity_Condominiums_3F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKER", "x": 0, "y": 10, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MAN", "x": 3, "y": 8, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SUPER_NERD", "x": 4, "y": 10, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_FAT_MAN", "x": 0, "y": 13, @@ -74,28 +78,28 @@ "y": 2, "elevation": 3, "dest_map": "MAP_CELADON_CITY_CONDOMINIUMS_2F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 4, "y": 2, "elevation": 3, "dest_map": "MAP_CELADON_CITY_CONDOMINIUMS_ROOF", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 12, "y": 2, "elevation": 3, "dest_map": "MAP_CELADON_CITY_CONDOMINIUMS_ROOF", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 11, "y": 2, "elevation": 3, "dest_map": "MAP_CELADON_CITY_CONDOMINIUMS_2F", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [], diff --git a/data/maps/CeladonCity_Condominiums_Roof/map.json b/data/maps/CeladonCity_Condominiums_Roof/map.json index 7492b8718..ab42bbd0e 100644 --- a/data/maps/CeladonCity_Condominiums_Roof/map.json +++ b/data/maps/CeladonCity_Condominiums_Roof/map.json @@ -21,21 +21,21 @@ "y": 2, "elevation": 3, "dest_map": "MAP_CELADON_CITY_CONDOMINIUMS_3F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 10, "y": 2, "elevation": 3, "dest_map": "MAP_CELADON_CITY_CONDOMINIUMS_3F", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 2, "y": 12, "elevation": 3, "dest_map": "MAP_CELADON_CITY_CONDOMINIUMS_ROOF_ROOM", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/CeladonCity_Condominiums_RoofRoom/map.json b/data/maps/CeladonCity_Condominiums_RoofRoom/map.json index 999f32e1f..26d0871ed 100644 --- a/data/maps/CeladonCity_Condominiums_RoofRoom/map.json +++ b/data/maps/CeladonCity_Condominiums_RoofRoom/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BLACKBELT", "x": 3, "y": 5, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 7, "y": 3, @@ -48,21 +50,21 @@ "y": 8, "elevation": 0, "dest_map": "MAP_CELADON_CITY_CONDOMINIUMS_ROOF", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 4, "y": 7, "elevation": 3, "dest_map": "MAP_CELADON_CITY_CONDOMINIUMS_ROOF", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 5, "y": 8, "elevation": 0, "dest_map": "MAP_CELADON_CITY_CONDOMINIUMS_ROOF", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [], diff --git a/data/maps/CeladonCity_DepartmentStore_1F/map.json b/data/maps/CeladonCity_DepartmentStore_1F/map.json index 0a33592cc..85e4641bf 100644 --- a/data/maps/CeladonCity_DepartmentStore_1F/map.json +++ b/data/maps/CeladonCity_DepartmentStore_1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WORKER_F", "x": 6, "y": 10, @@ -35,56 +36,56 @@ "y": 15, "elevation": 0, "dest_map": "MAP_CELADON_CITY", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 2, "y": 14, "elevation": 3, "dest_map": "MAP_CELADON_CITY", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 3, "y": 15, "elevation": 0, "dest_map": "MAP_CELADON_CITY", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 9, "y": 15, "elevation": 0, "dest_map": "MAP_CELADON_CITY", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 10, "y": 14, "elevation": 3, "dest_map": "MAP_CELADON_CITY", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 11, "y": 15, "elevation": 0, "dest_map": "MAP_CELADON_CITY", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 6, "y": 1, "elevation": 0, "dest_map": "MAP_CELADON_CITY_DEPARTMENT_STORE_ELEVATOR", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 4, "y": 2, "elevation": 3, "dest_map": "MAP_CELADON_CITY_DEPARTMENT_STORE_2F", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/CeladonCity_DepartmentStore_2F/map.json b/data/maps/CeladonCity_DepartmentStore_2F/map.json index 0ebc6977e..f97e35bfd 100644 --- a/data/maps/CeladonCity_DepartmentStore_2F/map.json +++ b/data/maps/CeladonCity_DepartmentStore_2F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LASS", "x": 5, "y": 10, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CLERK", "x": 1, "y": 8, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CLERK", "x": 1, "y": 6, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_1", "x": 11, "y": 6, @@ -74,21 +78,21 @@ "y": 1, "elevation": 0, "dest_map": "MAP_CELADON_CITY_DEPARTMENT_STORE_ELEVATOR", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 3, "y": 2, "elevation": 3, "dest_map": "MAP_CELADON_CITY_DEPARTMENT_STORE_1F", - "dest_warp_id": 7 + "dest_warp_id": "7" }, { "x": 9, "y": 2, "elevation": 3, "dest_map": "MAP_CELADON_CITY_DEPARTMENT_STORE_3F", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/CeladonCity_DepartmentStore_3F/map.json b/data/maps/CeladonCity_DepartmentStore_3F/map.json index d59f34f42..4fa3b75b3 100644 --- a/data/maps/CeladonCity_DepartmentStore_3F/map.json +++ b/data/maps/CeladonCity_DepartmentStore_3F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CLERK", "x": 10, "y": 9, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GBA_KID", "x": 11, "y": 6, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GBA_KID", "x": 4, "y": 9, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GBA_KID", "x": 1, "y": 9, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LITTLE_GIRL", "x": 9, "y": 14, @@ -87,21 +92,21 @@ "y": 1, "elevation": 0, "dest_map": "MAP_CELADON_CITY_DEPARTMENT_STORE_ELEVATOR", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 9, "y": 2, "elevation": 0, "dest_map": "MAP_CELADON_CITY_DEPARTMENT_STORE_2F", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 3, "y": 2, "elevation": 0, "dest_map": "MAP_CELADON_CITY_DEPARTMENT_STORE_4F", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/CeladonCity_DepartmentStore_4F/map.json b/data/maps/CeladonCity_DepartmentStore_4F/map.json index 225a88043..deedb2485 100644 --- a/data/maps/CeladonCity_DepartmentStore_4F/map.json +++ b/data/maps/CeladonCity_DepartmentStore_4F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MAN", "x": 6, "y": 6, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 10, "y": 11, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CLERK", "x": 3, "y": 13, @@ -61,21 +64,21 @@ "y": 1, "elevation": 0, "dest_map": "MAP_CELADON_CITY_DEPARTMENT_STORE_ELEVATOR", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 3, "y": 2, "elevation": 0, "dest_map": "MAP_CELADON_CITY_DEPARTMENT_STORE_3F", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 9, "y": 2, "elevation": 0, "dest_map": "MAP_CELADON_CITY_DEPARTMENT_STORE_5F", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/CeladonCity_DepartmentStore_5F/map.json b/data/maps/CeladonCity_DepartmentStore_5F/map.json index 09c967ec2..27de2a596 100644 --- a/data/maps/CeladonCity_DepartmentStore_5F/map.json +++ b/data/maps/CeladonCity_DepartmentStore_5F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN", "x": 11, "y": 6, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SAILOR", "x": 6, "y": 8, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CLERK", "x": 1, "y": 7, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CLERK", "x": 1, "y": 6, @@ -74,21 +78,21 @@ "y": 1, "elevation": 0, "dest_map": "MAP_CELADON_CITY_DEPARTMENT_STORE_ELEVATOR", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 9, "y": 2, "elevation": 3, "dest_map": "MAP_CELADON_CITY_DEPARTMENT_STORE_4F", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 3, "y": 2, "elevation": 3, "dest_map": "MAP_CELADON_CITY_DEPARTMENT_STORE_ROOF", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/CeladonCity_DepartmentStore_Elevator/map.json b/data/maps/CeladonCity_DepartmentStore_Elevator/map.json index a863045a7..7805bb3f1 100644 --- a/data/maps/CeladonCity_DepartmentStore_Elevator/map.json +++ b/data/maps/CeladonCity_DepartmentStore_Elevator/map.json @@ -20,15 +20,15 @@ "x": 2, "y": 5, "elevation": 3, - "dest_map": "MAP_NONE", - "dest_warp_id": 127 + "dest_map": "MAP_DYNAMIC", + "dest_warp_id": "WARP_ID_DYNAMIC" }, { "x": 2, "y": 6, "elevation": 0, - "dest_map": "MAP_NONE", - "dest_warp_id": 127 + "dest_map": "MAP_DYNAMIC", + "dest_warp_id": "WARP_ID_DYNAMIC" } ], "coord_events": [], diff --git a/data/maps/CeladonCity_DepartmentStore_Roof/map.json b/data/maps/CeladonCity_DepartmentStore_Roof/map.json index e13de4ef8..7d8881bce 100644 --- a/data/maps/CeladonCity_DepartmentStore_Roof/map.json +++ b/data/maps/CeladonCity_DepartmentStore_Roof/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_M", "x": 9, "y": 5, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LITTLE_GIRL", "x": 5, "y": 4, @@ -48,7 +50,7 @@ "y": 6, "elevation": 3, "dest_map": "MAP_CELADON_CITY_DEPARTMENT_STORE_5F", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [], diff --git a/data/maps/CeladonCity_GameCorner/map.json b/data/maps/CeladonCity_GameCorner/map.json index b352a3967..51809f37c 100644 --- a/data/maps/CeladonCity_GameCorner/map.json +++ b/data/maps/CeladonCity_GameCorner/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WORKER_F", "x": 4, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WORKER_M", "x": 6, "y": 2, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", "x": 1, "y": 6, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_2", "x": 1, "y": 8, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_FISHER", "x": 4, "y": 7, @@ -81,6 +86,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GYM_GUY", "x": 7, "y": 10, @@ -94,6 +100,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_1", "x": 7, "y": 8, @@ -107,6 +114,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_2", "x": 10, "y": 9, @@ -120,6 +128,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 13, "y": 7, @@ -133,6 +142,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN", "x": 16, "y": 10, @@ -146,6 +156,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 11, "y": 2, @@ -165,28 +176,28 @@ "y": 13, "elevation": 0, "dest_map": "MAP_CELADON_CITY", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 10, "y": 13, "elevation": 0, "dest_map": "MAP_CELADON_CITY", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 11, "y": 13, "elevation": 0, "dest_map": "MAP_CELADON_CITY", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 15, "y": 2, "elevation": 3, "dest_map": "MAP_ROCKET_HIDEOUT_B1F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], @@ -197,7 +208,7 @@ "y": 4, "elevation": 3, "item": "ITEM_NONE", - "flag": "HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS", + "flag": "FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS", "quantity": 10, "underfoot": false }, @@ -207,7 +218,7 @@ "y": 8, "elevation": 3, "item": "ITEM_NONE", - "flag": "HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_2", + "flag": "FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_2", "quantity": 10, "underfoot": false }, @@ -217,7 +228,7 @@ "y": 11, "elevation": 3, "item": "ITEM_NONE", - "flag": "HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_3", + "flag": "FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_3", "quantity": 20, "underfoot": false }, @@ -227,7 +238,7 @@ "y": 12, "elevation": 3, "item": "ITEM_NONE", - "flag": "HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_4", + "flag": "FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_4", "quantity": 10, "underfoot": false }, @@ -237,7 +248,7 @@ "y": 9, "elevation": 3, "item": "ITEM_NONE", - "flag": "HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_5", + "flag": "FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_5", "quantity": 10, "underfoot": false }, @@ -247,7 +258,7 @@ "y": 5, "elevation": 3, "item": "ITEM_NONE", - "flag": "HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_6", + "flag": "FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_6", "quantity": 20, "underfoot": false }, @@ -257,7 +268,7 @@ "y": 4, "elevation": 3, "item": "ITEM_NONE", - "flag": "HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_7", + "flag": "FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_7", "quantity": 10, "underfoot": false }, @@ -267,7 +278,7 @@ "y": 3, "elevation": 3, "item": "ITEM_NONE", - "flag": "HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_8", + "flag": "FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_8", "quantity": 10, "underfoot": false }, @@ -277,7 +288,7 @@ "y": 5, "elevation": 3, "item": "ITEM_NONE", - "flag": "HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_9", + "flag": "FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_9", "quantity": 10, "underfoot": false }, @@ -287,7 +298,7 @@ "y": 5, "elevation": 3, "item": "ITEM_NONE", - "flag": "HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_10", + "flag": "FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_10", "quantity": 40, "underfoot": false }, @@ -297,7 +308,7 @@ "y": 13, "elevation": 3, "item": "ITEM_NONE", - "flag": "HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_11", + "flag": "FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_11", "quantity": 100, "underfoot": false }, @@ -307,7 +318,7 @@ "y": 12, "elevation": 3, "item": "ITEM_NONE", - "flag": "HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_12", + "flag": "FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_12", "quantity": 10, "underfoot": false }, diff --git a/data/maps/CeladonCity_GameCorner/scripts.inc b/data/maps/CeladonCity_GameCorner/scripts.inc index 120c59af1..a0e4e67b4 100644 --- a/data/maps/CeladonCity_GameCorner/scripts.inc +++ b/data/maps/CeladonCity_GameCorner/scripts.inc @@ -106,7 +106,7 @@ CeladonCity_GameCorner_EventScript_BaldingMan:: CeladonCity_GameCorner_EventScript_FaceSlotMachine:: closemessage - applymovement VAR_LAST_TALKED, Movement_FaceOriginalDirection + applymovement VAR_LAST_TALKED, Common_Movement_FaceOriginalDirection waitmovement 0 release end diff --git a/data/maps/CeladonCity_GameCorner_PrizeRoom/map.json b/data/maps/CeladonCity_GameCorner_PrizeRoom/map.json index 60063cd08..7efe5a838 100644 --- a/data/maps/CeladonCity_GameCorner_PrizeRoom/map.json +++ b/data/maps/CeladonCity_GameCorner_PrizeRoom/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", "x": 2, "y": 6, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_2", "x": 6, "y": 7, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WORKER_M", "x": 4, "y": 2, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WORKER_M", "x": 6, "y": 2, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WORKER_M", "x": 2, "y": 2, @@ -87,21 +92,21 @@ "y": 9, "elevation": 0, "dest_map": "MAP_CELADON_CITY", - "dest_warp_id": 5 + "dest_warp_id": "5" }, { "x": 4, "y": 8, "elevation": 3, "dest_map": "MAP_CELADON_CITY", - "dest_warp_id": 5 + "dest_warp_id": "5" }, { "x": 5, "y": 9, "elevation": 0, "dest_map": "MAP_CELADON_CITY", - "dest_warp_id": 5 + "dest_warp_id": "5" } ], "coord_events": [], diff --git a/data/maps/CeladonCity_Gym/map.json b/data/maps/CeladonCity_Gym/map.json index 9978fa9de..5db7ad035 100644 --- a/data/maps/CeladonCity_Gym/map.json +++ b/data/maps/CeladonCity_Gym/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LASS", "x": 3, "y": 11, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BEAUTY", "x": 9, "y": 10, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PICNICKER", "x": 10, "y": 7, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BEAUTY", "x": 2, "y": 6, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BEAUTY", "x": 5, "y": 4, @@ -81,6 +86,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LASS", "x": 7, "y": 4, @@ -94,6 +100,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ERIKA", "x": 6, "y": 4, @@ -107,6 +114,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_F", "x": 8, "y": 7, @@ -120,6 +128,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 6, "y": 8, @@ -133,6 +142,7 @@ "flag": "FLAG_TEMP_12" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 3, "y": 5, @@ -146,6 +156,7 @@ "flag": "FLAG_TEMP_13" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 9, "y": 6, @@ -165,21 +176,21 @@ "y": 18, "elevation": 3, "dest_map": "MAP_CELADON_CITY", - "dest_warp_id": 6 + "dest_warp_id": "6" }, { "x": 6, "y": 18, "elevation": 3, "dest_map": "MAP_CELADON_CITY", - "dest_warp_id": 6 + "dest_warp_id": "6" }, { "x": 7, "y": 18, "elevation": 3, "dest_map": "MAP_CELADON_CITY", - "dest_warp_id": 6 + "dest_warp_id": "6" } ], "coord_events": [], diff --git a/data/maps/CeladonCity_Hotel/map.json b/data/maps/CeladonCity_Hotel/map.json index 02d7c416b..70c59e155 100644 --- a/data/maps/CeladonCity_Hotel/map.json +++ b/data/maps/CeladonCity_Hotel/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_WOMAN", "x": 5, "y": 4, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BEAUTY", "x": 3, "y": 6, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MAN", "x": 9, "y": 7, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LITTLE_BOY", "x": 2, "y": 6, @@ -74,21 +78,21 @@ "y": 10, "elevation": 0, "dest_map": "MAP_CELADON_CITY", - "dest_warp_id": 9 + "dest_warp_id": "9" }, { "x": 4, "y": 9, "elevation": 0, "dest_map": "MAP_CELADON_CITY", - "dest_warp_id": 9 + "dest_warp_id": "9" }, { "x": 5, "y": 10, "elevation": 0, "dest_map": "MAP_CELADON_CITY", - "dest_warp_id": 9 + "dest_warp_id": "9" } ], "coord_events": [], diff --git a/data/maps/CeladonCity_House1/map.json b/data/maps/CeladonCity_House1/map.json index acf95fde5..db88aa3ed 100644 --- a/data/maps/CeladonCity_House1/map.json +++ b/data/maps/CeladonCity_House1/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_2", "x": 5, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 2, "y": 4, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 8, "y": 4, @@ -61,21 +64,21 @@ "y": 7, "elevation": 3, "dest_map": "MAP_CELADON_CITY", - "dest_warp_id": 8 + "dest_warp_id": "8" }, { "x": 4, "y": 7, "elevation": 3, "dest_map": "MAP_CELADON_CITY", - "dest_warp_id": 8 + "dest_warp_id": "8" }, { "x": 5, "y": 7, "elevation": 3, "dest_map": "MAP_CELADON_CITY", - "dest_warp_id": 8 + "dest_warp_id": "8" } ], "coord_events": [], diff --git a/data/maps/CeladonCity_PokemonCenter_1F/map.json b/data/maps/CeladonCity_PokemonCenter_1F/map.json index 5c2ca4f02..6cf24c45c 100644 --- a/data/maps/CeladonCity_PokemonCenter_1F/map.json +++ b/data/maps/CeladonCity_PokemonCenter_1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_NURSE", "x": 7, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN", "x": 4, "y": 4, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_F", "x": 10, "y": 6, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 12, "y": 5, @@ -74,28 +78,28 @@ "y": 8, "elevation": 3, "dest_map": "MAP_CELADON_CITY", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 7, "y": 8, "elevation": 3, "dest_map": "MAP_CELADON_CITY", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 8, "y": 8, "elevation": 3, "dest_map": "MAP_CELADON_CITY", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 1, "y": 6, "elevation": 4, "dest_map": "MAP_CELADON_CITY_POKEMON_CENTER_2F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/CeladonCity_PokemonCenter_2F/map.json b/data/maps/CeladonCity_PokemonCenter_2F/map.json index 9431c273d..91313423e 100644 --- a/data/maps/CeladonCity_PokemonCenter_2F/map.json +++ b/data/maps/CeladonCity_PokemonCenter_2F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 6, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 2, "y": 2, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 10, "y": 2, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MG_DELIVERYMAN", "x": 1, "y": 2, @@ -74,21 +78,21 @@ "y": 6, "elevation": 4, "dest_map": "MAP_CELADON_CITY_POKEMON_CENTER_1F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 5, "y": 1, "elevation": 0, "dest_map": "MAP_UNION_ROOM", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 9, "y": 1, "elevation": 0, "dest_map": "MAP_TRADE_CENTER", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/CeladonCity_Restaurant/map.json b/data/maps/CeladonCity_Restaurant/map.json index 71f2e4f30..3488bf4fb 100644 --- a/data/maps/CeladonCity_Restaurant/map.json +++ b/data/maps/CeladonCity_Restaurant/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CHEF", "x": 12, "y": 7, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_2", "x": 11, "y": 4, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_FAT_MAN", "x": 9, "y": 4, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", "x": 1, "y": 2, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WORKER_M", "x": 3, "y": 7, @@ -87,21 +92,21 @@ "y": 9, "elevation": 0, "dest_map": "MAP_CELADON_CITY", - "dest_warp_id": 7 + "dest_warp_id": "7" }, { "x": 6, "y": 9, "elevation": 0, "dest_map": "MAP_CELADON_CITY", - "dest_warp_id": 7 + "dest_warp_id": "7" }, { "x": 7, "y": 9, "elevation": 0, "dest_map": "MAP_CELADON_CITY", - "dest_warp_id": 7 + "dest_warp_id": "7" } ], "coord_events": [], diff --git a/data/maps/CeruleanCave_1F/map.json b/data/maps/CeruleanCave_1F/map.json index abc495f92..2ac897d93 100644 --- a/data/maps/CeruleanCave_1F/map.json +++ b/data/maps/CeruleanCave_1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 7, "y": 3, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_CERULEAN_CAVE_1F_NUGGET" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 11, "y": 16, @@ -42,6 +44,7 @@ "flag": "FLAG_HIDE_CERULEAN_CAVE_1F_FULL_RESTORE" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 25, "y": 5, @@ -55,6 +58,7 @@ "flag": "FLAG_HIDE_CERULEAN_CAVE_1F_MAX_ELIXIR" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 7, "y": 21, @@ -68,6 +72,7 @@ "flag": "FLAG_TEMP_12" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 13, "y": 21, @@ -81,6 +86,7 @@ "flag": "FLAG_TEMP_13" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 5, "y": 20, @@ -94,6 +100,7 @@ "flag": "FLAG_TEMP_14" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 14, "y": 20, @@ -107,6 +114,7 @@ "flag": "FLAG_TEMP_15" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 11, "y": 21, @@ -120,6 +128,7 @@ "flag": "FLAG_TEMP_16" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 9, "y": 18, @@ -139,56 +148,56 @@ "y": 21, "elevation": 3, "dest_map": "MAP_CERULEAN_CITY", - "dest_warp_id": 7 + "dest_warp_id": "7" }, { "x": 34, "y": 2, "elevation": 3, "dest_map": "MAP_CERULEAN_CAVE_2F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 1, "y": 7, "elevation": 3, "dest_map": "MAP_CERULEAN_CAVE_B1F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 10, "y": 2, "elevation": 3, "dest_map": "MAP_CERULEAN_CAVE_2F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 5, "y": 15, "elevation": 3, "dest_map": "MAP_CERULEAN_CAVE_2F", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 30, "y": 10, "elevation": 4, "dest_map": "MAP_CERULEAN_CAVE_2F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 24, "y": 11, "elevation": 3, "dest_map": "MAP_CERULEAN_CAVE_2F", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 2, "y": 4, "elevation": 3, "dest_map": "MAP_CERULEAN_CAVE_2F", - "dest_warp_id": 5 + "dest_warp_id": "5" } ], "coord_events": [], @@ -199,7 +208,7 @@ "y": 2, "elevation": 3, "item": "ITEM_ULTRA_BALL", - "flag": "HIDDEN_ITEM_CERULEAN_CAVE_1F_ULTRA_BALL", + "flag": "FLAG_HIDDEN_ITEM_CERULEAN_CAVE_1F_ULTRA_BALL", "quantity": 1, "underfoot": false } diff --git a/data/maps/CeruleanCave_2F/map.json b/data/maps/CeruleanCave_2F/map.json index 45e4fc963..fb800f0dc 100644 --- a/data/maps/CeruleanCave_2F/map.json +++ b/data/maps/CeruleanCave_2F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 9, "y": 18, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_CERULEAN_CAVE_2F_PP_UP" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 29, "y": 16, @@ -42,6 +44,7 @@ "flag": "FLAG_HIDE_CERULEAN_CAVE_2F_ULTRA_BALL" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 33, "y": 12, @@ -55,6 +58,7 @@ "flag": "FLAG_HIDE_CERULEAN_CAVE_2F_FULL_RESTORE" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 33, "y": 10, @@ -68,6 +72,7 @@ "flag": "FLAG_TEMP_12" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 33, "y": 9, @@ -81,6 +86,7 @@ "flag": "FLAG_TEMP_13" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 25, "y": 11, @@ -94,6 +100,7 @@ "flag": "FLAG_TEMP_14" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 28, "y": 20, @@ -107,6 +114,7 @@ "flag": "FLAG_TEMP_15" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 30, "y": 20, @@ -120,6 +128,7 @@ "flag": "FLAG_TEMP_16" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 9, "y": 13, @@ -133,6 +142,7 @@ "flag": "FLAG_TEMP_17" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 23, "y": 16, @@ -146,6 +156,7 @@ "flag": "FLAG_TEMP_18" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 13, "y": 6, @@ -159,6 +170,7 @@ "flag": "FLAG_TEMP_19" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 4, "y": 12, @@ -172,6 +184,7 @@ "flag": "FLAG_TEMP_1A" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 10, "y": 20, @@ -191,42 +204,42 @@ "y": 4, "elevation": 3, "dest_map": "MAP_CERULEAN_CAVE_1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 13, "y": 4, "elevation": 3, "dest_map": "MAP_CERULEAN_CAVE_1F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 7, "y": 14, "elevation": 3, "dest_map": "MAP_CERULEAN_CAVE_1F", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 26, "y": 9, "elevation": 3, "dest_map": "MAP_CERULEAN_CAVE_1F", - "dest_warp_id": 5 + "dest_warp_id": "5" }, { "x": 23, "y": 10, "elevation": 3, "dest_map": "MAP_CERULEAN_CAVE_1F", - "dest_warp_id": 6 + "dest_warp_id": "6" }, { "x": 5, "y": 6, "elevation": 3, "dest_map": "MAP_CERULEAN_CAVE_1F", - "dest_warp_id": 7 + "dest_warp_id": "7" } ], "coord_events": [], diff --git a/data/maps/CeruleanCave_B1F/map.json b/data/maps/CeruleanCave_B1F/map.json index 478ddf111..d155ea0b3 100644 --- a/data/maps/CeruleanCave_B1F/map.json +++ b/data/maps/CeruleanCave_B1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 31, "y": 9, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_CERULEAN_CAVE_B1F_ULTRA_BALL" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 32, "y": 2, @@ -42,6 +44,7 @@ "flag": "FLAG_HIDE_CERULEAN_CAVE_B1F_MAX_REVIVE" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MEWTWO", "x": 7, "y": 12, @@ -55,6 +58,7 @@ "flag": "FLAG_HIDE_MEWTWO" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 37, "y": 1, @@ -68,6 +72,7 @@ "flag": "FLAG_TEMP_12" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 38, "y": 2, @@ -81,6 +86,7 @@ "flag": "FLAG_TEMP_13" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 35, "y": 1, @@ -94,6 +100,7 @@ "flag": "FLAG_TEMP_14" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 37, "y": 4, @@ -107,6 +114,7 @@ "flag": "FLAG_TEMP_15" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 35, "y": 5, @@ -120,6 +128,7 @@ "flag": "FLAG_TEMP_16" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 2, "y": 2, @@ -133,6 +142,7 @@ "flag": "FLAG_TEMP_17" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 4, "y": 1, @@ -146,6 +156,7 @@ "flag": "FLAG_TEMP_18" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 6, "y": 1, @@ -159,6 +170,7 @@ "flag": "FLAG_TEMP_19" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 3, "y": 4, @@ -178,7 +190,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_CERULEAN_CAVE_1F", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [], diff --git a/data/maps/CeruleanCity/map.json b/data/maps/CeruleanCity/map.json index 282eaf4cc..5e534008d 100644 --- a/data/maps/CeruleanCity/map.json +++ b/data/maps/CeruleanCity/map.json @@ -37,6 +37,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_POLICEMAN", "x": 31, "y": 12, @@ -50,6 +51,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 33, "y": 6, @@ -63,6 +65,7 @@ "flag": "FLAG_HIDE_CERULEAN_ROCKET" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LITTLE_BOY", "x": 16, "y": 21, @@ -76,6 +79,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", "x": 9, "y": 23, @@ -89,6 +93,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SLOWBRO", "x": 32, "y": 29, @@ -102,6 +107,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LASS", "x": 33, "y": 29, @@ -115,6 +121,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 34, "y": 22, @@ -128,6 +135,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BLUE", "x": 22, "y": 0, @@ -141,6 +149,7 @@ "flag": "FLAG_HIDE_CERULEAN_RIVAL" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 26, "y": 32, @@ -154,20 +163,15 @@ "flag": "FLAG_TEMP_13" }, { + "type": "clone", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", - "in_connection": true, "x": 50, "y": 18, - "elevation": 10, - "movement_type": "MOVEMENT_TYPE_NONE", - "movement_range_x": 0, - "movement_range_y": 0, - "trainer_type": "27", - "trainer_sight_or_berry_tree_id": "3", - "script": "0x0", - "flag": "0" + "target_local_id": 10, + "target_map": "MAP_ROUTE9" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_1", "x": 12, "y": 30, @@ -181,6 +185,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_M", "x": 1, "y": 13, @@ -200,98 +205,98 @@ "y": 11, "elevation": 0, "dest_map": "MAP_CERULEAN_CITY_HOUSE1", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 30, "y": 11, "elevation": 0, "dest_map": "MAP_CERULEAN_CITY_HOUSE2", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 15, "y": 17, "elevation": 0, "dest_map": "MAP_CERULEAN_CITY_HOUSE3", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 22, "y": 19, "elevation": 0, "dest_map": "MAP_CERULEAN_CITY_POKEMON_CENTER_1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 31, "y": 21, "elevation": 0, "dest_map": "MAP_CERULEAN_CITY_GYM", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 13, "y": 28, "elevation": 3, "dest_map": "MAP_CERULEAN_CITY_BIKE_SHOP", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 29, "y": 28, "elevation": 0, "dest_map": "MAP_CERULEAN_CITY_MART", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 1, "y": 12, "elevation": 0, "dest_map": "MAP_CERULEAN_CAVE_1F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 10, "y": 8, "elevation": 3, "dest_map": "MAP_CERULEAN_CITY_HOUSE1", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 31, "y": 8, "elevation": 3, "dest_map": "MAP_CERULEAN_CITY_HOUSE2", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 31, "y": 9, "elevation": 3, "dest_map": "MAP_CERULEAN_CITY_HOUSE2", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 14, "y": 28, "elevation": 3, "dest_map": "MAP_CERULEAN_CITY_BIKE_SHOP", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 23, "y": 28, "elevation": 0, "dest_map": "MAP_CERULEAN_CITY_HOUSE4", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 17, "y": 11, "elevation": 0, "dest_map": "MAP_CERULEAN_CITY_HOUSE5", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [ @@ -380,7 +385,7 @@ "y": 7, "elevation": 3, "item": "ITEM_RARE_CANDY", - "flag": "HIDDEN_ITEM_CERULEAN_CITY_RARE_CANDY", + "flag": "FLAG_HIDDEN_ITEM_CERULEAN_CITY_RARE_CANDY", "quantity": 1, "underfoot": false }, diff --git a/data/maps/CeruleanCity/scripts.inc b/data/maps/CeruleanCity/scripts.inc index be2405292..98b9faa0c 100644 --- a/data/maps/CeruleanCity/scripts.inc +++ b/data/maps/CeruleanCity/scripts.inc @@ -204,9 +204,9 @@ CeruleanCity_EventScript_NoRoomForTM28:: CeruleanCity_EventScript_GruntTriggerTop:: lockall setvar VAR_TEMP_1, 0 - applymovement LOCALID_GRUNT, Movement_WalkInPlaceFasterUp + applymovement LOCALID_GRUNT, Common_Movement_WalkInPlaceFasterUp waitmovement 0 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterDown + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterDown waitmovement 0 goto CeruleanCity_EventScript_GruntTrigger end @@ -214,9 +214,9 @@ CeruleanCity_EventScript_GruntTriggerTop:: CeruleanCity_EventScript_GruntTriggerBottom:: lockall setvar VAR_TEMP_1, 1 - applymovement LOCALID_GRUNT, Movement_WalkInPlaceFasterDown + applymovement LOCALID_GRUNT, Common_Movement_WalkInPlaceFasterDown waitmovement 0 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterUp + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterUp waitmovement 0 goto CeruleanCity_EventScript_GruntTrigger end @@ -235,7 +235,7 @@ CeruleanCity_EventScript_Policeman:: faceplayer msgbox CeruleanCity_Text_PeopleHereWereRobbed closemessage - applymovement LOCALID_POLICEMAN, Movement_FaceOriginalDirection + applymovement LOCALID_POLICEMAN, Common_Movement_FaceOriginalDirection waitmovement 0 release end @@ -270,7 +270,7 @@ CeruleanCity_EventScript_Woman:: faceplayer msgbox CeruleanCity_Text_WantBrightRedBicycle closemessage - applymovement LOCALID_WOMAN, Movement_FaceOriginalDirection + applymovement LOCALID_WOMAN, Common_Movement_FaceOriginalDirection waitmovement 0 release end @@ -285,7 +285,7 @@ CeruleanCity_EventScript_Lass:: waitmessage delay 40 playse SE_PIN - applymovement LOCALID_SLOWBRO, Movement_QuestionMark + applymovement LOCALID_SLOWBRO, Common_Movement_QuestionMark waitmovement 0 delay 30 call_if_eq VAR_0x8008, 0, CeruleanCity_EventScript_SlowbroFailed1 diff --git a/data/maps/CeruleanCity_BikeShop/map.json b/data/maps/CeruleanCity_BikeShop/map.json index d7c0ea6d2..3cf55978f 100644 --- a/data/maps/CeruleanCity_BikeShop/map.json +++ b/data/maps/CeruleanCity_BikeShop/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MAN", "x": 9, "y": 3, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 9, "y": 7, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_2", "x": 5, "y": 5, @@ -61,21 +64,21 @@ "y": 9, "elevation": 0, "dest_map": "MAP_CERULEAN_CITY", - "dest_warp_id": 5 + "dest_warp_id": "5" }, { "x": 5, "y": 8, "elevation": 3, "dest_map": "MAP_CERULEAN_CITY", - "dest_warp_id": 5 + "dest_warp_id": "5" }, { "x": 6, "y": 9, "elevation": 0, "dest_map": "MAP_CERULEAN_CITY", - "dest_warp_id": 5 + "dest_warp_id": "5" } ], "coord_events": [], diff --git a/data/maps/CeruleanCity_Gym/map.json b/data/maps/CeruleanCity_Gym/map.json index 78f866633..8bb783973 100644 --- a/data/maps/CeruleanCity_Gym/map.json +++ b/data/maps/CeruleanCity_Gym/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SWIMMER_M_WATER", "x": 10, "y": 12, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PICNICKER", "x": 4, "y": 7, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MISTY", "x": 8, "y": 6, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GYM_GUY", "x": 7, "y": 16, @@ -74,21 +78,21 @@ "y": 18, "elevation": 3, "dest_map": "MAP_CERULEAN_CITY", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 8, "y": 18, "elevation": 3, "dest_map": "MAP_CERULEAN_CITY", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 9, "y": 18, "elevation": 3, "dest_map": "MAP_CERULEAN_CITY", - "dest_warp_id": 4 + "dest_warp_id": "4" } ], "coord_events": [], diff --git a/data/maps/CeruleanCity_House1/map.json b/data/maps/CeruleanCity_House1/map.json index 006be49fa..7082d2aa1 100644 --- a/data/maps/CeruleanCity_House1/map.json +++ b/data/maps/CeruleanCity_House1/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN", "x": 6, "y": 5, @@ -35,28 +36,28 @@ "y": 9, "elevation": 0, "dest_map": "MAP_CERULEAN_CITY", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 3, "y": 8, "elevation": 3, "dest_map": "MAP_CERULEAN_CITY", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 4, "y": 9, "elevation": 0, "dest_map": "MAP_CERULEAN_CITY", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 3, "y": 1, "elevation": 3, "dest_map": "MAP_CERULEAN_CITY", - "dest_warp_id": 8 + "dest_warp_id": "8" } ], "coord_events": [], diff --git a/data/maps/CeruleanCity_House2/map.json b/data/maps/CeruleanCity_House2/map.json index 4cc6cd713..ed5913862 100644 --- a/data/maps/CeruleanCity_House2/map.json +++ b/data/maps/CeruleanCity_House2/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_HIKER", "x": 1, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LASS", "x": 7, "y": 6, @@ -48,28 +50,28 @@ "y": 7, "elevation": 0, "dest_map": "MAP_CERULEAN_CITY", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 3, "y": 7, "elevation": 0, "dest_map": "MAP_CERULEAN_CITY", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 4, "y": 7, "elevation": 1, "dest_map": "MAP_CERULEAN_CITY", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 4, "y": 1, "elevation": 0, "dest_map": "MAP_CERULEAN_CITY", - "dest_warp_id": 9 + "dest_warp_id": "9" } ], "coord_events": [], diff --git a/data/maps/CeruleanCity_House3/map.json b/data/maps/CeruleanCity_House3/map.json index 0c0bb10c4..7e9abe77f 100644 --- a/data/maps/CeruleanCity_House3/map.json +++ b/data/maps/CeruleanCity_House3/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", "x": 2, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_WOMAN", "x": 7, "y": 5, @@ -48,21 +50,21 @@ "y": 7, "elevation": 0, "dest_map": "MAP_CERULEAN_CITY", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 4, "y": 7, "elevation": 0, "dest_map": "MAP_CERULEAN_CITY", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 5, "y": 7, "elevation": 0, "dest_map": "MAP_CERULEAN_CITY", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [], diff --git a/data/maps/CeruleanCity_House4/map.json b/data/maps/CeruleanCity_House4/map.json index a2b792ede..48fad54a7 100644 --- a/data/maps/CeruleanCity_House4/map.json +++ b/data/maps/CeruleanCity_House4/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", "x": 5, "y": 3, @@ -35,7 +36,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_CERULEAN_CITY", - "dest_warp_id": 12 + "dest_warp_id": "12" } ], "coord_events": [], diff --git a/data/maps/CeruleanCity_House4/scripts.inc b/data/maps/CeruleanCity_House4/scripts.inc index 8774b70ef..e812d3b73 100644 --- a/data/maps/CeruleanCity_House4/scripts.inc +++ b/data/maps/CeruleanCity_House4/scripts.inc @@ -40,7 +40,7 @@ CeruleanCity_House4_EventScript_News2:: end CeruleanCity_House4_EventScript_NewsNotSpread:: - applymovement LOCALID_WONDER_NEWS_BERRY_MAN, Movement_FacePlayer + applymovement LOCALID_WONDER_NEWS_BERRY_MAN, Common_Movement_FacePlayer waitmovement 0 msgbox CeruleanCity_House4_Text_WishCouldShareNewsWithOthers release @@ -63,7 +63,7 @@ CeruleanCity_House4_EventScript_NewsSpread2:: end CeruleanCity_House4_EventScript_NewsDone:: - applymovement LOCALID_WONDER_NEWS_BERRY_MAN, Movement_FacePlayer + applymovement LOCALID_WONDER_NEWS_BERRY_MAN, Common_Movement_FacePlayer waitmovement 0 msgbox CeruleanCity_House4_Text_EnjoyingMyselfWithAllSortsOfNews release @@ -71,11 +71,11 @@ CeruleanCity_House4_EventScript_NewsDone:: CeruleanCity_House4_EventScript_MovementReactionToNews:: playse SE_PIN - applymovement LOCALID_WONDER_NEWS_BERRY_MAN, Movement_ExclamationMark + applymovement LOCALID_WONDER_NEWS_BERRY_MAN, Common_Movement_ExclamationMark waitmovement 0 - applymovement LOCALID_WONDER_NEWS_BERRY_MAN, Movement_FacePlayer + applymovement LOCALID_WONDER_NEWS_BERRY_MAN, Common_Movement_FacePlayer waitmovement 0 - applymovement LOCALID_WONDER_NEWS_BERRY_MAN, Movement_Delay48 + applymovement LOCALID_WONDER_NEWS_BERRY_MAN, Common_Movement_Delay48 waitmovement 0 return diff --git a/data/maps/CeruleanCity_House5/map.json b/data/maps/CeruleanCity_House5/map.json index a54a593b6..b56b2de33 100644 --- a/data/maps/CeruleanCity_House5/map.json +++ b/data/maps/CeruleanCity_House5/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_2", "x": 7, "y": 4, @@ -35,7 +36,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_CERULEAN_CITY", - "dest_warp_id": 13 + "dest_warp_id": "13" } ], "coord_events": [], diff --git a/data/maps/CeruleanCity_Mart/map.json b/data/maps/CeruleanCity_Mart/map.json index 69dfbd2c0..62860b2bc 100644 --- a/data/maps/CeruleanCity_Mart/map.json +++ b/data/maps/CeruleanCity_Mart/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CLERK", "x": 2, "y": 3, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_1", "x": 9, "y": 2, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 1, "y": 7, @@ -61,21 +64,21 @@ "y": 7, "elevation": 3, "dest_map": "MAP_CERULEAN_CITY", - "dest_warp_id": 6 + "dest_warp_id": "6" }, { "x": 4, "y": 7, "elevation": 3, "dest_map": "MAP_CERULEAN_CITY", - "dest_warp_id": 6 + "dest_warp_id": "6" }, { "x": 5, "y": 7, "elevation": 3, "dest_map": "MAP_CERULEAN_CITY", - "dest_warp_id": 6 + "dest_warp_id": "6" } ], "coord_events": [], diff --git a/data/maps/CeruleanCity_PokemonCenter_1F/map.json b/data/maps/CeruleanCity_PokemonCenter_1F/map.json index 7c797a653..074444248 100644 --- a/data/maps/CeruleanCity_PokemonCenter_1F/map.json +++ b/data/maps/CeruleanCity_PokemonCenter_1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_NURSE", "x": 7, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN", "x": 12, "y": 5, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKER", "x": 5, "y": 4, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 4, "y": 8, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LASS", "x": 3, "y": 3, @@ -81,6 +86,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "0", "x": 2, "y": 1, @@ -94,6 +100,7 @@ "flag": "FLAG_HIDE_POSTGAME_GOSSIPERS" }, { + "type": "object", "graphics_id": "0", "x": 3, "y": 1, @@ -113,28 +120,28 @@ "y": 8, "elevation": 0, "dest_map": "MAP_CERULEAN_CITY", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 7, "y": 8, "elevation": 0, "dest_map": "MAP_CERULEAN_CITY", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 8, "y": 8, "elevation": 0, "dest_map": "MAP_CERULEAN_CITY", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 1, "y": 6, "elevation": 4, "dest_map": "MAP_CERULEAN_CITY_POKEMON_CENTER_2F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/CeruleanCity_PokemonCenter_2F/map.json b/data/maps/CeruleanCity_PokemonCenter_2F/map.json index a706e5b4d..a8a570130 100644 --- a/data/maps/CeruleanCity_PokemonCenter_2F/map.json +++ b/data/maps/CeruleanCity_PokemonCenter_2F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 6, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 2, "y": 2, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 10, "y": 2, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MG_DELIVERYMAN", "x": 1, "y": 2, @@ -74,21 +78,21 @@ "y": 6, "elevation": 4, "dest_map": "MAP_CERULEAN_CITY_POKEMON_CENTER_1F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 5, "y": 1, "elevation": 0, "dest_map": "MAP_UNION_ROOM", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 9, "y": 1, "elevation": 0, "dest_map": "MAP_TRADE_CENTER", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/CinnabarIsland/map.json b/data/maps/CinnabarIsland/map.json index 9798a6be3..09e909d0c 100644 --- a/data/maps/CinnabarIsland/map.json +++ b/data/maps/CinnabarIsland/map.json @@ -27,6 +27,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_2", "x": 14, "y": 6, @@ -40,6 +41,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", "x": 11, "y": 11, @@ -53,6 +55,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BILL", "x": 20, "y": 7, @@ -66,6 +69,7 @@ "flag": "FLAG_HIDE_CINNABAR_BILL" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SEAGALLOP", "x": 23, "y": 7, @@ -85,35 +89,35 @@ "y": 3, "elevation": 0, "dest_map": "MAP_POKEMON_MANSION_1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 20, "y": 4, "elevation": 0, "dest_map": "MAP_CINNABAR_ISLAND_GYM", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 8, "y": 9, "elevation": 0, "dest_map": "MAP_CINNABAR_ISLAND_POKEMON_LAB_ENTRANCE", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 14, "y": 11, "elevation": 0, "dest_map": "MAP_CINNABAR_ISLAND_POKEMON_CENTER_1F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 19, "y": 11, "elevation": 0, "dest_map": "MAP_CINNABAR_ISLAND_MART", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [ diff --git a/data/maps/CinnabarIsland/scripts.inc b/data/maps/CinnabarIsland/scripts.inc index 7746af9a7..e2e17385a 100644 --- a/data/maps/CinnabarIsland/scripts.inc +++ b/data/maps/CinnabarIsland/scripts.inc @@ -94,9 +94,9 @@ CinnabarIsland_EventScript_BillScene:: call_if_unset FLAG_TEMP_2, CinnabarIsland_EventScript_BillFacePlayer1 call_if_set FLAG_TEMP_2, CinnabarIsland_EventScript_BillFacePlayer2 playse SE_PIN - applymovement LOCALID_BILL, Movement_ExclamationMark + applymovement LOCALID_BILL, Common_Movement_ExclamationMark waitmovement 0 - applymovement LOCALID_BILL, Movement_Delay48 + applymovement LOCALID_BILL, Common_Movement_Delay48 waitmovement 0 call_if_unset FLAG_TEMP_2, CinnabarIsland_EventScript_BillApproachPlayer1 call_if_set FLAG_TEMP_2, CinnabarIsland_EventScript_BillApproachPlayer2 @@ -107,12 +107,12 @@ CinnabarIsland_EventScript_BillScene:: end CinnabarIsland_EventScript_BillFacePlayer1:: - applymovement LOCALID_BILL, Movement_WalkInPlaceFasterUp + applymovement LOCALID_BILL, Common_Movement_WalkInPlaceFasterUp waitmovement 0 return CinnabarIsland_EventScript_BillFacePlayer2:: - applymovement LOCALID_BILL, Movement_WalkInPlaceFasterLeft + applymovement LOCALID_BILL, Common_Movement_WalkInPlaceFasterLeft waitmovement 0 return @@ -124,7 +124,7 @@ CinnabarIsland_EventScript_BillApproachPlayer1:: CinnabarIsland_EventScript_BillApproachPlayer2:: applymovement LOCALID_BILL, CinnabarIsland_Movement_BillApproachPlayer2 waitmovement 0 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterRight waitmovement 0 return @@ -313,7 +313,7 @@ CinnabarIsland_Movement_PlayerBoardBoatFromShore:: @ Triggered when VAR_TEMP_1 is 0 CinnabarIsland_EventScript_GymDoorLocked:: lockall - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterUp + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterUp waitmovement 0 delay 20 msgbox CinnabarIsland_Text_DoorIsLocked diff --git a/data/maps/CinnabarIsland_Gym/map.json b/data/maps/CinnabarIsland_Gym/map.json index ae40512d5..0a1fa5e2e 100644 --- a/data/maps/CinnabarIsland_Gym/map.json +++ b/data/maps/CinnabarIsland_Gym/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SUPER_NERD", "x": 25, "y": 11, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 25, "y": 4, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 17, "y": 5, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SUPER_NERD", "x": 16, "y": 11, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 16, "y": 18, @@ -81,6 +86,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SUPER_NERD", "x": 4, "y": 19, @@ -94,6 +100,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 4, "y": 11, @@ -107,6 +114,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BLAINE", "x": 5, "y": 4, @@ -120,6 +128,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GYM_GUY", "x": 24, "y": 20, @@ -139,21 +148,21 @@ "y": 23, "elevation": 3, "dest_map": "MAP_CINNABAR_ISLAND", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 25, "y": 23, "elevation": 3, "dest_map": "MAP_CINNABAR_ISLAND", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 26, "y": 23, "elevation": 3, "dest_map": "MAP_CINNABAR_ISLAND", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/CinnabarIsland_Gym/scripts.inc b/data/maps/CinnabarIsland_Gym/scripts.inc index 58da8ac3f..38ec546f6 100644 --- a/data/maps/CinnabarIsland_Gym/scripts.inc +++ b/data/maps/CinnabarIsland_Gym/scripts.inc @@ -271,13 +271,13 @@ CinnabarIsland_Gym_EventScript_BattleQuinn:: end CinnabarIsland_Gym_EventScript_QuinnApproachLeft:: - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterRight applymovement LOCALID_QUINN, CinnabarIsland_Gym_Movement_QuinnApproachLeft waitmovement 0 return CinnabarIsland_Gym_EventScript_QuinnApproachRight:: - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterRight applymovement LOCALID_QUINN, CinnabarIsland_Gym_Movement_QuinnApproachRight waitmovement 0 return @@ -424,13 +424,13 @@ CinnabarIsland_Gym_EventScript_BattleRamon:: end CinnabarIsland_Gym_EventScript_RamonApproachLeft:: - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterRight applymovement LOCALID_RAMON, CinnabarIsland_Gym_Movement_RamonApproachLeft waitmovement 0 return CinnabarIsland_Gym_EventScript_RamonApproachRight:: - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterRight applymovement LOCALID_RAMON, CinnabarIsland_Gym_Movement_RamonApproachRight waitmovement 0 return @@ -496,13 +496,13 @@ CinnabarIsland_Gym_EventScript_BattleDerek:: end CinnabarIsland_Gym_EventScript_DerekApproachLeft:: - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterRight applymovement LOCALID_DEREK, CinnabarIsland_Gym_Movement_DerekApproachLeft waitmovement 0 return CinnabarIsland_Gym_EventScript_DerekApproachRight:: - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterRight applymovement LOCALID_DEREK, CinnabarIsland_Gym_Movement_DerekApproachRight waitmovement 0 return @@ -568,13 +568,13 @@ CinnabarIsland_Gym_EventScript_BattleDusty:: end CinnabarIsland_Gym_EventScript_DustyApproachLeft:: - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterRight applymovement LOCALID_DUSTY, CinnabarIsland_Gym_Movement_DustyApproachLeft waitmovement 0 return CinnabarIsland_Gym_EventScript_DustyApproachRight:: - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterRight applymovement LOCALID_DUSTY, CinnabarIsland_Gym_Movement_DustyApproachRight waitmovement 0 return @@ -640,13 +640,13 @@ CinnabarIsland_Gym_EventScript_BattleZac:: end CinnabarIsland_Gym_EventScript_ZacApproachLeft:: - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterRight applymovement LOCALID_ZAC, CinnabarIsland_Gym_Movement_ZacApproachLeft waitmovement 0 return CinnabarIsland_Gym_EventScript_ZacApproachRight:: - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterRight applymovement LOCALID_ZAC, CinnabarIsland_Gym_Movement_ZacApproachRight waitmovement 0 return diff --git a/data/maps/CinnabarIsland_Mart/map.json b/data/maps/CinnabarIsland_Mart/map.json index 0d5c16415..cd11131ca 100644 --- a/data/maps/CinnabarIsland_Mart/map.json +++ b/data/maps/CinnabarIsland_Mart/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CLERK", "x": 2, "y": 3, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_2", "x": 6, "y": 2, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 8, "y": 2, @@ -61,21 +64,21 @@ "y": 7, "elevation": 3, "dest_map": "MAP_CINNABAR_ISLAND", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 4, "y": 7, "elevation": 3, "dest_map": "MAP_CINNABAR_ISLAND", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 5, "y": 7, "elevation": 3, "dest_map": "MAP_CINNABAR_ISLAND", - "dest_warp_id": 4 + "dest_warp_id": "4" } ], "coord_events": [], diff --git a/data/maps/CinnabarIsland_PokemonCenter_1F/map.json b/data/maps/CinnabarIsland_PokemonCenter_1F/map.json index 83b962c02..9491f5f43 100644 --- a/data/maps/CinnabarIsland_PokemonCenter_1F/map.json +++ b/data/maps/CinnabarIsland_PokemonCenter_1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_NURSE", "x": 7, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_F", "x": 2, "y": 4, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN", "x": 9, "y": 7, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 14, "y": 6, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "0", "x": 2, "y": 1, @@ -81,6 +86,7 @@ "flag": "FLAG_HIDE_POSTGAME_GOSSIPERS" }, { + "type": "object", "graphics_id": "0", "x": 3, "y": 1, @@ -94,6 +100,7 @@ "flag": "FLAG_HIDE_POSTGAME_GOSSIPERS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BILL", "x": 11, "y": 5, @@ -113,28 +120,28 @@ "y": 8, "elevation": 0, "dest_map": "MAP_CINNABAR_ISLAND", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 6, "y": 8, "elevation": 3, "dest_map": "MAP_CINNABAR_ISLAND", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 8, "y": 8, "elevation": 0, "dest_map": "MAP_CINNABAR_ISLAND", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 1, "y": 6, "elevation": 4, "dest_map": "MAP_CINNABAR_ISLAND_POKEMON_CENTER_2F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/CinnabarIsland_PokemonCenter_2F/map.json b/data/maps/CinnabarIsland_PokemonCenter_2F/map.json index 32fcb549f..637d748d8 100644 --- a/data/maps/CinnabarIsland_PokemonCenter_2F/map.json +++ b/data/maps/CinnabarIsland_PokemonCenter_2F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 6, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 2, "y": 2, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 10, "y": 2, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MG_DELIVERYMAN", "x": 1, "y": 2, @@ -74,21 +78,21 @@ "y": 6, "elevation": 4, "dest_map": "MAP_CINNABAR_ISLAND_POKEMON_CENTER_1F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 5, "y": 1, "elevation": 0, "dest_map": "MAP_UNION_ROOM", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 9, "y": 1, "elevation": 0, "dest_map": "MAP_TRADE_CENTER", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/CinnabarIsland_PokemonLab_Entrance/map.json b/data/maps/CinnabarIsland_PokemonLab_Entrance/map.json index 8d3b7c92b..c7a013141 100644 --- a/data/maps/CinnabarIsland_PokemonLab_Entrance/map.json +++ b/data/maps/CinnabarIsland_PokemonLab_Entrance/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 2, "y": 4, @@ -35,42 +36,42 @@ "y": 9, "elevation": 3, "dest_map": "MAP_CINNABAR_ISLAND", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 4, "y": 9, "elevation": 3, "dest_map": "MAP_CINNABAR_ISLAND", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 5, "y": 9, "elevation": 3, "dest_map": "MAP_CINNABAR_ISLAND", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 13, "y": 5, "elevation": 0, "dest_map": "MAP_CINNABAR_ISLAND_POKEMON_LAB_LOUNGE", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 19, "y": 5, "elevation": 0, "dest_map": "MAP_CINNABAR_ISLAND_POKEMON_LAB_RESEARCH_ROOM", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 25, "y": 5, "elevation": 0, "dest_map": "MAP_CINNABAR_ISLAND_POKEMON_LAB_EXPERIMENT_ROOM", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/CinnabarIsland_PokemonLab_ExperimentRoom/map.json b/data/maps/CinnabarIsland_PokemonLab_ExperimentRoom/map.json index d6856c1f1..2730a98a1 100644 --- a/data/maps/CinnabarIsland_PokemonLab_ExperimentRoom/map.json +++ b/data/maps/CinnabarIsland_PokemonLab_ExperimentRoom/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BOY", "x": 11, "y": 8, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 12, "y": 3, @@ -48,7 +50,7 @@ "y": 9, "elevation": 3, "dest_map": "MAP_CINNABAR_ISLAND_POKEMON_LAB_ENTRANCE", - "dest_warp_id": 5 + "dest_warp_id": "5" } ], "coord_events": [], diff --git a/data/maps/CinnabarIsland_PokemonLab_Lounge/map.json b/data/maps/CinnabarIsland_PokemonLab_Lounge/map.json index f51aa1fa8..28f1e04ae 100644 --- a/data/maps/CinnabarIsland_PokemonLab_Lounge/map.json +++ b/data/maps/CinnabarIsland_PokemonLab_Lounge/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 5, "y": 3, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_2", "x": 4, "y": 6, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_2", "x": 10, "y": 5, @@ -61,7 +64,7 @@ "y": 9, "elevation": 3, "dest_map": "MAP_CINNABAR_ISLAND_POKEMON_LAB_ENTRANCE", - "dest_warp_id": 3 + "dest_warp_id": "3" } ], "coord_events": [], diff --git a/data/maps/CinnabarIsland_PokemonLab_ResearchRoom/map.json b/data/maps/CinnabarIsland_PokemonLab_ResearchRoom/map.json index a615b6830..415475d3c 100644 --- a/data/maps/CinnabarIsland_PokemonLab_ResearchRoom/map.json +++ b/data/maps/CinnabarIsland_PokemonLab_ResearchRoom/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SUPER_NERD", "x": 5, "y": 4, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 10, "y": 3, @@ -48,7 +50,7 @@ "y": 9, "elevation": 3, "dest_map": "MAP_CINNABAR_ISLAND_POKEMON_LAB_ENTRANCE", - "dest_warp_id": 4 + "dest_warp_id": "4" } ], "coord_events": [], diff --git a/data/maps/DiglettsCave_B1F/map.json b/data/maps/DiglettsCave_B1F/map.json index a95991fad..081e09b45 100644 --- a/data/maps/DiglettsCave_B1F/map.json +++ b/data/maps/DiglettsCave_B1F/map.json @@ -21,14 +21,14 @@ "y": 3, "elevation": 3, "dest_map": "MAP_DIGLETTS_CAVE_NORTH_ENTRANCE", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 82, "y": 71, "elevation": 3, "dest_map": "MAP_DIGLETTS_CAVE_SOUTH_ENTRANCE", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/DiglettsCave_NorthEntrance/map.json b/data/maps/DiglettsCave_NorthEntrance/map.json index 5135b3e28..8c3705955 100644 --- a/data/maps/DiglettsCave_NorthEntrance/map.json +++ b/data/maps/DiglettsCave_NorthEntrance/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_HIKER", "x": 4, "y": 4, @@ -35,14 +36,14 @@ "y": 4, "elevation": 3, "dest_map": "MAP_DIGLETTS_CAVE_B1F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 4, "y": 6, "elevation": 3, "dest_map": "MAP_ROUTE2", - "dest_warp_id": 3 + "dest_warp_id": "3" } ], "coord_events": [], diff --git a/data/maps/DiglettsCave_SouthEntrance/map.json b/data/maps/DiglettsCave_SouthEntrance/map.json index 493f30be7..c1758eeae 100644 --- a/data/maps/DiglettsCave_SouthEntrance/map.json +++ b/data/maps/DiglettsCave_SouthEntrance/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", "x": 4, "y": 4, @@ -35,14 +36,14 @@ "y": 6, "elevation": 3, "dest_map": "MAP_ROUTE11", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 6, "y": 4, "elevation": 3, "dest_map": "MAP_DIGLETTS_CAVE_B1F", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/FiveIsland/map.json b/data/maps/FiveIsland/map.json index 29e667d27..2da00d1c3 100644 --- a/data/maps/FiveIsland/map.json +++ b/data/maps/FiveIsland/map.json @@ -27,6 +27,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_FISHER", "x": 8, "y": 5, @@ -40,6 +41,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BUG_CATCHER", "x": 16, "y": 10, @@ -53,18 +55,12 @@ "flag": "0" }, { + "type": "clone", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", - "in_connection": true, "x": 32, "y": 9, - "elevation": 4, - "movement_type": "MOVEMENT_TYPE_NONE", - "movement_range_x": 0, - "movement_range_y": 0, - "trainer_type": "56", - "trainer_sight_or_berry_tree_id": "3", - "script": "0x0", - "flag": "0" + "target_local_id": 4, + "target_map": "MAP_FIVE_ISLAND_MEADOW" } ], "warp_events": [ @@ -73,28 +69,28 @@ "y": 14, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_HARBOR", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 18, "y": 6, "elevation": 0, "dest_map": "MAP_FIVE_ISLAND_POKEMON_CENTER_1F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 12, "y": 6, "elevation": 0, "dest_map": "MAP_FIVE_ISLAND_HOUSE1", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 22, "y": 9, "elevation": 0, "dest_map": "MAP_FIVE_ISLAND_HOUSE2", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/FiveIsland_Harbor/map.json b/data/maps/FiveIsland_Harbor/map.json index e86f2333a..5a290ddfb 100644 --- a/data/maps/FiveIsland_Harbor/map.json +++ b/data/maps/FiveIsland_Harbor/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SEAGALLOP", "x": 8, "y": 9, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SAILOR", "x": 8, "y": 6, @@ -48,7 +50,7 @@ "y": 2, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/FiveIsland_House1/map.json b/data/maps/FiveIsland_House1/map.json index c4a14839d..6c2d5b9bf 100644 --- a/data/maps/FiveIsland_House1/map.json +++ b/data/maps/FiveIsland_House1/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_3", "x": 10, "y": 2, @@ -35,7 +36,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [], diff --git a/data/maps/FiveIsland_House2/map.json b/data/maps/FiveIsland_House2/map.json index bd75ab0c3..e065f4771 100644 --- a/data/maps/FiveIsland_House2/map.json +++ b/data/maps/FiveIsland_House2/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", "x": 2, "y": 3, @@ -35,7 +36,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND", - "dest_warp_id": 3 + "dest_warp_id": "3" } ], "coord_events": [], diff --git a/data/maps/FiveIsland_LostCave_Entrance/map.json b/data/maps/FiveIsland_LostCave_Entrance/map.json index d91c86b79..4e607722d 100644 --- a/data/maps/FiveIsland_LostCave_Entrance/map.json +++ b/data/maps/FiveIsland_LostCave_Entrance/map.json @@ -21,14 +21,14 @@ "y": 8, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_RESORT_GORGEOUS", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 5, "y": 5, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/FiveIsland_LostCave_Room1/map.json b/data/maps/FiveIsland_LostCave_Room1/map.json index 9d6e27c73..da449b0ad 100644 --- a/data/maps/FiveIsland_LostCave_Room1/map.json +++ b/data/maps/FiveIsland_LostCave_Room1/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_HIKER", "x": 5, "y": 4, @@ -35,35 +36,35 @@ "y": 2, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ENTRANCE", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 5, "y": 1, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 8, "y": 5, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM2", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 5, "y": 8, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 2, "y": 5, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [], diff --git a/data/maps/FiveIsland_LostCave_Room10/map.json b/data/maps/FiveIsland_LostCave_Room10/map.json index 20835f0bc..d7b55d659 100644 --- a/data/maps/FiveIsland_LostCave_Room10/map.json +++ b/data/maps/FiveIsland_LostCave_Room10/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_2", "x": 5, "y": 5, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_LOST_CAVE_SELPHY" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 5, "y": 2, @@ -48,7 +50,7 @@ "y": 8, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/FiveIsland_LostCave_Room11/map.json b/data/maps/FiveIsland_LostCave_Room11/map.json index ab63d2ea3..622087adf 100644 --- a/data/maps/FiveIsland_LostCave_Room11/map.json +++ b/data/maps/FiveIsland_LostCave_Room11/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 5, "y": 5, @@ -35,7 +36,7 @@ "y": 1, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", - "dest_warp_id": 3 + "dest_warp_id": "3" } ], "coord_events": [], diff --git a/data/maps/FiveIsland_LostCave_Room12/map.json b/data/maps/FiveIsland_LostCave_Room12/map.json index c14996b6f..8d4ef0a00 100644 --- a/data/maps/FiveIsland_LostCave_Room12/map.json +++ b/data/maps/FiveIsland_LostCave_Room12/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 5, "y": 5, @@ -35,7 +36,7 @@ "y": 8, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/FiveIsland_LostCave_Room13/map.json b/data/maps/FiveIsland_LostCave_Room13/map.json index 84a0f34ea..593bb763c 100644 --- a/data/maps/FiveIsland_LostCave_Room13/map.json +++ b/data/maps/FiveIsland_LostCave_Room13/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 5, "y": 5, @@ -35,7 +36,7 @@ "y": 5, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [], diff --git a/data/maps/FiveIsland_LostCave_Room14/map.json b/data/maps/FiveIsland_LostCave_Room14/map.json index 2d24d97c8..9510f3d3f 100644 --- a/data/maps/FiveIsland_LostCave_Room14/map.json +++ b/data/maps/FiveIsland_LostCave_Room14/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 5, "y": 5, @@ -35,7 +36,7 @@ "y": 5, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", - "dest_warp_id": 4 + "dest_warp_id": "4" } ], "coord_events": [], diff --git a/data/maps/FiveIsland_LostCave_Room2/map.json b/data/maps/FiveIsland_LostCave_Room2/map.json index d1a5ff27d..e549c4f42 100644 --- a/data/maps/FiveIsland_LostCave_Room2/map.json +++ b/data/maps/FiveIsland_LostCave_Room2/map.json @@ -21,28 +21,28 @@ "y": 1, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM3", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 8, "y": 5, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 5, "y": 8, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM11", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 2, "y": 5, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [], diff --git a/data/maps/FiveIsland_LostCave_Room3/map.json b/data/maps/FiveIsland_LostCave_Room3/map.json index 97c46a1dd..a8fe5ef25 100644 --- a/data/maps/FiveIsland_LostCave_Room3/map.json +++ b/data/maps/FiveIsland_LostCave_Room3/map.json @@ -21,28 +21,28 @@ "y": 1, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 8, "y": 5, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 5, "y": 8, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM4", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 2, "y": 5, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [], diff --git a/data/maps/FiveIsland_LostCave_Room4/map.json b/data/maps/FiveIsland_LostCave_Room4/map.json index 93de2af9a..8547d0586 100644 --- a/data/maps/FiveIsland_LostCave_Room4/map.json +++ b/data/maps/FiveIsland_LostCave_Room4/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_1", "x": 6, "y": 4, @@ -35,28 +36,28 @@ "y": 1, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM12", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 8, "y": 5, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 5, "y": 8, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM5", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 2, "y": 5, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [], diff --git a/data/maps/FiveIsland_LostCave_Room5/map.json b/data/maps/FiveIsland_LostCave_Room5/map.json index 099d76722..4b3cf3b80 100644 --- a/data/maps/FiveIsland_LostCave_Room5/map.json +++ b/data/maps/FiveIsland_LostCave_Room5/map.json @@ -21,28 +21,28 @@ "y": 1, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 8, "y": 5, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM6", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 5, "y": 8, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 2, "y": 5, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [], diff --git a/data/maps/FiveIsland_LostCave_Room6/map.json b/data/maps/FiveIsland_LostCave_Room6/map.json index c96ab57f7..83c0a0a6f 100644 --- a/data/maps/FiveIsland_LostCave_Room6/map.json +++ b/data/maps/FiveIsland_LostCave_Room6/map.json @@ -21,28 +21,28 @@ "y": 1, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 8, "y": 5, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM13", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 5, "y": 8, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 2, "y": 5, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM7", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/FiveIsland_LostCave_Room7/map.json b/data/maps/FiveIsland_LostCave_Room7/map.json index 91f787589..51916314c 100644 --- a/data/maps/FiveIsland_LostCave_Room7/map.json +++ b/data/maps/FiveIsland_LostCave_Room7/map.json @@ -21,28 +21,28 @@ "y": 1, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 8, "y": 5, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 5, "y": 8, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM8", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 2, "y": 5, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [], diff --git a/data/maps/FiveIsland_LostCave_Room8/map.json b/data/maps/FiveIsland_LostCave_Room8/map.json index 243b3fed6..869de172b 100644 --- a/data/maps/FiveIsland_LostCave_Room8/map.json +++ b/data/maps/FiveIsland_LostCave_Room8/map.json @@ -21,28 +21,28 @@ "y": 1, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 8, "y": 5, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM9", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 5, "y": 8, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 2, "y": 5, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM14", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/FiveIsland_LostCave_Room9/map.json b/data/maps/FiveIsland_LostCave_Room9/map.json index b2bb357d8..4f90d61b0 100644 --- a/data/maps/FiveIsland_LostCave_Room9/map.json +++ b/data/maps/FiveIsland_LostCave_Room9/map.json @@ -21,28 +21,28 @@ "y": 1, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM10", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 8, "y": 5, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 5, "y": 8, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 2, "y": 5, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ROOM1", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [], diff --git a/data/maps/FiveIsland_Meadow/map.json b/data/maps/FiveIsland_Meadow/map.json index 16c52f2af..b543265d1 100644 --- a/data/maps/FiveIsland_Meadow/map.json +++ b/data/maps/FiveIsland_Meadow/map.json @@ -27,6 +27,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_F", "x": 18, "y": 18, @@ -40,6 +41,7 @@ "flag": "FLAG_HIDE_FIVE_ISLAND_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 17, "y": 5, @@ -53,6 +55,7 @@ "flag": "FLAG_HIDE_FIVE_ISLAND_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 11, "y": 27, @@ -66,6 +69,7 @@ "flag": "FLAG_HIDE_FIVE_ISLAND_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 8, "y": 9, @@ -79,6 +83,7 @@ "flag": "FLAG_TEMP_12" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 19, "y": 12, @@ -92,6 +97,7 @@ "flag": "FLAG_TEMP_13" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 12, "y": 11, @@ -105,6 +111,7 @@ "flag": "FLAG_HIDE_FIVE_ISLAND_MEADOW_MAX_POTION" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 3, "y": 22, @@ -124,7 +131,7 @@ "y": 21, "elevation": 0, "dest_map": "MAP_FIVE_ISLAND_ROCKET_WAREHOUSE", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/FiveIsland_MemorialPillar/map.json b/data/maps/FiveIsland_MemorialPillar/map.json index 489f63372..73c15634a 100644 --- a/data/maps/FiveIsland_MemorialPillar/map.json +++ b/data/maps/FiveIsland_MemorialPillar/map.json @@ -22,6 +22,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MAN", "x": 8, "y": 44, @@ -35,6 +36,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKER", "x": 12, "y": 6, @@ -48,6 +50,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKER", "x": 14, "y": 17, @@ -61,6 +64,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKER", "x": 17, "y": 31, @@ -74,6 +78,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 4, "y": 47, @@ -104,7 +109,7 @@ "y": 52, "elevation": 3, "item": "ITEM_BIG_PEARL", - "flag": "HIDDEN_ITEM_FIVE_ISLAND_MEMORIAL_PILLAR_BIG_PEARL", + "flag": "FLAG_HIDDEN_ITEM_FIVE_ISLAND_MEMORIAL_PILLAR_BIG_PEARL", "quantity": 1, "underfoot": false }, @@ -114,7 +119,7 @@ "y": 7, "elevation": 3, "item": "ITEM_RAZZ_BERRY", - "flag": "HIDDEN_ITEM_FIVE_ISLAND_MEMORIAL_PILLAR_RAZZ_BERRY", + "flag": "FLAG_HIDDEN_ITEM_FIVE_ISLAND_MEMORIAL_PILLAR_RAZZ_BERRY", "quantity": 1, "underfoot": false }, @@ -124,7 +129,7 @@ "y": 22, "elevation": 3, "item": "ITEM_SITRUS_BERRY", - "flag": "HIDDEN_ITEM_FIVE_ISLAND_MEMORIAL_PILLAR_SITRUS_BERRY", + "flag": "FLAG_HIDDEN_ITEM_FIVE_ISLAND_MEMORIAL_PILLAR_SITRUS_BERRY", "quantity": 1, "underfoot": false }, @@ -134,7 +139,7 @@ "y": 25, "elevation": 3, "item": "ITEM_BLUK_BERRY", - "flag": "HIDDEN_ITEM_FIVE_ISLAND_MEMORIAL_PILLAR_BLUK_BERRY", + "flag": "FLAG_HIDDEN_ITEM_FIVE_ISLAND_MEMORIAL_PILLAR_BLUK_BERRY", "quantity": 1, "underfoot": false } diff --git a/data/maps/FiveIsland_MemorialPillar/scripts.inc b/data/maps/FiveIsland_MemorialPillar/scripts.inc index 336b45902..0fb6a4a24 100644 --- a/data/maps/FiveIsland_MemorialPillar/scripts.inc +++ b/data/maps/FiveIsland_MemorialPillar/scripts.inc @@ -9,11 +9,11 @@ FiveIsland_MemorialPillar_EventScript_MemorialMan:: goto_if_set FLAG_NO_ROOM_FOR_TM42_AT_MEMORIAL_PILLAR, FiveIsland_MemorialPillar_EventScript_ReturnedForTM42 msgbox FiveIsland_MemorialPillar_Text_ScrubScrub closemessage - applymovement LOCALID_MEMORIAL_MAN, Movement_FacePlayer + applymovement LOCALID_MEMORIAL_MAN, Common_Movement_FacePlayer waitmovement 0 delay 45 msgbox FiveIsland_MemorialPillar_Text_YourMonsLookHealthy - applymovement LOCALID_MEMORIAL_MAN, Movement_WalkInPlaceFasterUp + applymovement LOCALID_MEMORIAL_MAN, Common_Movement_WalkInPlaceFasterUp waitmovement 0 msgbox FiveIsland_MemorialPillar_Text_ThisIsWhereIBuriedMyOnix release @@ -54,10 +54,10 @@ FiveIsland_MemorialPillar_EventScript_PlaceLemonade:: removeitem ITEM_LEMONADE msgbox FiveIsland_MemorialPillar_Text_PlacedCanOfLemonade closemessage - applymovement LOCALID_MEMORIAL_MAN, Movement_WalkInPlaceFasterRight + applymovement LOCALID_MEMORIAL_MAN, Common_Movement_WalkInPlaceFasterRight waitmovement 0 delay 45 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterLeft + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterLeft waitmovement 0 textcolor NPC_TEXT_COLOR_MALE msgbox FiveIsland_MemorialPillar_Text_ThankYouPleaseTakeThis @@ -69,7 +69,7 @@ FiveIsland_MemorialPillar_EventScript_PlaceLemonade:: FiveIsland_MemorialPillar_EventScript_ReceivedTM42:: msgbox FiveIsland_MemorialPillar_Text_BeGoodToYourMonsToo - applymovement LOCALID_MEMORIAL_MAN, Movement_WalkInPlaceFasterUp + applymovement LOCALID_MEMORIAL_MAN, Common_Movement_WalkInPlaceFasterUp waitmovement 0 setflag FLAG_GOT_TM42_AT_MEMORIAL_PILLAR return diff --git a/data/maps/FiveIsland_PokemonCenter_1F/map.json b/data/maps/FiveIsland_PokemonCenter_1F/map.json index 24c72dd7e..7d8d75de3 100644 --- a/data/maps/FiveIsland_PokemonCenter_1F/map.json +++ b/data/maps/FiveIsland_PokemonCenter_1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_NURSE", "x": 7, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_F", "x": 9, "y": 4, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CHEF", "x": 4, "y": 8, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "0", "x": 2, "y": 1, @@ -68,6 +72,7 @@ "flag": "FLAG_HIDE_POSTGAME_GOSSIPERS" }, { + "type": "object", "graphics_id": "0", "x": 3, "y": 1, @@ -87,14 +92,14 @@ "y": 8, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 1, "y": 6, "elevation": 4, "dest_map": "MAP_FIVE_ISLAND_POKEMON_CENTER_2F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/FiveIsland_PokemonCenter_2F/map.json b/data/maps/FiveIsland_PokemonCenter_2F/map.json index bb3bdd1eb..2122e04d1 100644 --- a/data/maps/FiveIsland_PokemonCenter_2F/map.json +++ b/data/maps/FiveIsland_PokemonCenter_2F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 6, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 2, "y": 2, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 10, "y": 2, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MG_DELIVERYMAN", "x": 1, "y": 2, @@ -74,21 +78,21 @@ "y": 6, "elevation": 4, "dest_map": "MAP_FIVE_ISLAND_POKEMON_CENTER_1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 5, "y": 1, "elevation": 0, "dest_map": "MAP_UNION_ROOM", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 9, "y": 1, "elevation": 0, "dest_map": "MAP_TRADE_CENTER", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/FiveIsland_ResortGorgeous/map.json b/data/maps/FiveIsland_ResortGorgeous/map.json index 5c596b3bc..80ddcafab 100644 --- a/data/maps/FiveIsland_ResortGorgeous/map.json +++ b/data/maps/FiveIsland_ResortGorgeous/map.json @@ -22,6 +22,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LASS", "x": 44, "y": 10, @@ -35,6 +36,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LASS", "x": 33, "y": 12, @@ -48,6 +50,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LASS", "x": 12, "y": 10, @@ -61,6 +64,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_2", "x": 23, "y": 9, @@ -74,6 +78,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_2", "x": 33, "y": 8, @@ -87,6 +92,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 33, "y": 3, @@ -100,6 +106,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SWIMMER_M_WATER", "x": 56, "y": 7, @@ -113,6 +120,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_2", "x": 39, "y": 9, @@ -132,14 +140,14 @@ "y": 13, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_LOST_CAVE_ENTRANCE", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 39, "y": 8, "elevation": 0, "dest_map": "MAP_FIVE_ISLAND_RESORT_GORGEOUS_HOUSE", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], @@ -150,7 +158,7 @@ "y": 7, "elevation": 3, "item": "ITEM_NEST_BALL", - "flag": "HIDDEN_ITEM_FIVE_ISLAND_RESORT_GORGEOUS_NEST_BALL", + "flag": "FLAG_HIDDEN_ITEM_FIVE_ISLAND_RESORT_GORGEOUS_NEST_BALL", "quantity": 1, "underfoot": false }, @@ -160,7 +168,7 @@ "y": 11, "elevation": 3, "item": "ITEM_STARDUST", - "flag": "HIDDEN_ITEM_FIVE_ISLAND_RESORT_GORGEOUS_STARDUST", + "flag": "FLAG_HIDDEN_ITEM_FIVE_ISLAND_RESORT_GORGEOUS_STARDUST", "quantity": 1, "underfoot": false }, @@ -170,7 +178,7 @@ "y": 12, "elevation": 3, "item": "ITEM_STAR_PIECE", - "flag": "HIDDEN_ITEM_FIVE_ISLAND_RESORT_GORGEOUS_STAR_PIECE", + "flag": "FLAG_HIDDEN_ITEM_FIVE_ISLAND_RESORT_GORGEOUS_STAR_PIECE", "quantity": 1, "underfoot": false }, @@ -180,7 +188,7 @@ "y": 5, "elevation": 3, "item": "ITEM_STARDUST", - "flag": "HIDDEN_ITEM_FIVE_ISLAND_RESORT_GORGEOUS_STARDUST_2", + "flag": "FLAG_HIDDEN_ITEM_FIVE_ISLAND_RESORT_GORGEOUS_STARDUST_2", "quantity": 1, "underfoot": false }, diff --git a/data/maps/FiveIsland_ResortGorgeous/scripts.inc b/data/maps/FiveIsland_ResortGorgeous/scripts.inc index a9ad66461..6ff14d475 100644 --- a/data/maps/FiveIsland_ResortGorgeous/scripts.inc +++ b/data/maps/FiveIsland_ResortGorgeous/scripts.inc @@ -22,7 +22,7 @@ FiveIsland_ResortGorgeous_EventScript_SelphyReturnHomeScene:: textcolor NPC_TEXT_COLOR_FEMALE msgbox FiveIsland_ResortGorgeous_Text_SelphyThanksYouMayGoNow closemessage - applymovement LOCALID_SELPHY, Movement_WalkInPlaceFasterUp + applymovement LOCALID_SELPHY, Common_Movement_WalkInPlaceFasterUp waitmovement 0 opendoor 39, 8 waitdooranim diff --git a/data/maps/FiveIsland_ResortGorgeous_House/map.json b/data/maps/FiveIsland_ResortGorgeous_House/map.json index d361589b7..bec5ba745 100644 --- a/data/maps/FiveIsland_ResortGorgeous_House/map.json +++ b/data/maps/FiveIsland_ResortGorgeous_House/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_2", "x": 4, "y": 4, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_RESORT_GORGEOUS_INSIDE_SELPHY" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN", "x": 6, "y": 2, @@ -48,7 +50,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_RESORT_GORGEOUS", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/FiveIsland_ResortGorgeous_House/scripts.inc b/data/maps/FiveIsland_ResortGorgeous_House/scripts.inc index 36ada6601..885ae0d87 100644 --- a/data/maps/FiveIsland_ResortGorgeous_House/scripts.inc +++ b/data/maps/FiveIsland_ResortGorgeous_House/scripts.inc @@ -44,7 +44,7 @@ FiveIsland_ResortGorgeous_House_EventScript_ShowRequestedMon:: waitmovement 0 textcolor NPC_TEXT_COLOR_MALE msgbox FiveIsland_ResortGorgeous_House_Text_ButlerYesMyLady - applymovement LOCALID_SELPHY, Movement_WalkInPlaceFasterUp + applymovement LOCALID_SELPHY, Common_Movement_WalkInPlaceFasterUp waitmovement 0 textcolor NPC_TEXT_COLOR_FEMALE msgbox FiveIsland_ResortGorgeous_House_Text_SelphyGiveTokenOfAppreciation @@ -65,25 +65,25 @@ FiveIsland_ResortGorgeous_House_EventScript_ShowRequestedMon:: end FiveIsland_ResortGorgeous_House_EventScript_ButlerApproachPlayerNorth:: - applymovement LOCALID_SELPHY, Movement_WalkInPlaceFasterDown + applymovement LOCALID_SELPHY, Common_Movement_WalkInPlaceFasterDown applymovement LOCALID_BUTLER, FiveIsland_ResortGorgeous_House_Movement_ButlerApproachPlayerNorth waitmovement 0 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterLeft + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterLeft waitmovement 0 return FiveIsland_ResortGorgeous_House_EventScript_ButlerApproachPlayerSouth:: applymovement LOCALID_BUTLER, FiveIsland_ResortGorgeous_House_Movement_ButlerApproachPlayerSouth waitmovement 0 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterUp + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterUp waitmovement 0 return FiveIsland_ResortGorgeous_House_EventScript_ButlerApproachPlayerEast:: - applymovement LOCALID_SELPHY, Movement_WalkInPlaceFasterLeft + applymovement LOCALID_SELPHY, Common_Movement_WalkInPlaceFasterLeft applymovement LOCALID_BUTLER, FiveIsland_ResortGorgeous_House_Movement_ButlerApproachPlayerEast waitmovement 0 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterUp + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterUp waitmovement 0 return diff --git a/data/maps/FiveIsland_RocketWarehouse/map.json b/data/maps/FiveIsland_RocketWarehouse/map.json index e14361861..63a27af82 100644 --- a/data/maps/FiveIsland_RocketWarehouse/map.json +++ b/data/maps/FiveIsland_RocketWarehouse/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 15, "y": 11, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_FIVE_ISLAND_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 17, "y": 15, @@ -42,6 +44,7 @@ "flag": "FLAG_HIDE_FIVE_ISLAND_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_F", "x": 27, "y": 16, @@ -55,6 +58,7 @@ "flag": "FLAG_HIDE_FIVE_ISLAND_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 25, "y": 11, @@ -68,6 +72,7 @@ "flag": "FLAG_HIDE_FIVE_ISLAND_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_F", "x": 6, "y": 6, @@ -81,6 +86,7 @@ "flag": "FLAG_HIDE_FIVE_ISLAND_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 27, "y": 4, @@ -94,6 +100,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 8, "y": 25, @@ -107,6 +114,7 @@ "flag": "FLAG_HIDE_FIVE_ISLAND_ROCKET_WAREHOUSE_BIG_PEARL" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 17, "y": 3, @@ -120,6 +128,7 @@ "flag": "FLAG_HIDE_FIVE_ISLAND_ROCKET_WAREHOUSE_TM36" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 1, "y": 16, @@ -133,6 +142,7 @@ "flag": "FLAG_HIDE_FIVE_ISLAND_ROCKET_WAREHOUSE_PEARL" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 4, "y": 5, @@ -152,7 +162,7 @@ "y": 25, "elevation": 3, "dest_map": "MAP_FIVE_ISLAND_MEADOW", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [ @@ -207,7 +217,7 @@ "y": 2, "elevation": 0, "item": "ITEM_NEST_BALL", - "flag": "HIDDEN_ITEM_FIVE_ISLAND_ROCKET_WAREHOUSE_NEST_BALL", + "flag": "FLAG_HIDDEN_ITEM_FIVE_ISLAND_ROCKET_WAREHOUSE_NEST_BALL", "quantity": 1, "underfoot": false }, @@ -217,7 +227,7 @@ "y": 16, "elevation": 0, "item": "ITEM_NET_BALL", - "flag": "HIDDEN_ITEM_FIVE_ISLAND_ROCKET_WAREHOUSE_NET_BALL", + "flag": "FLAG_HIDDEN_ITEM_FIVE_ISLAND_ROCKET_WAREHOUSE_NET_BALL", "quantity": 1, "underfoot": false }, diff --git a/data/maps/FiveIsland_RocketWarehouse/scripts.inc b/data/maps/FiveIsland_RocketWarehouse/scripts.inc index a5b30422f..26dd0a5b5 100644 --- a/data/maps/FiveIsland_RocketWarehouse/scripts.inc +++ b/data/maps/FiveIsland_RocketWarehouse/scripts.inc @@ -43,7 +43,7 @@ FiveIsland_RocketWarehouse_EventScript_Computer:: FiveIsland_RocketWarehouse_EventScript_Admin2Trigger:: lockall - applymovement LOCALID_ADMIN2, Movement_WalkInPlaceFasterLeft + applymovement LOCALID_ADMIN2, Common_Movement_WalkInPlaceFasterLeft waitmovement 0 setvar VAR_MAP_SCENE_ROCKET_WAREHOUSE, 1 releaseall @@ -100,7 +100,7 @@ FiveIsland_RocketWarehouse_EventScript_DefeatedAdmin2:: end FiveIsland_RocketWarehouse_EventScript_PlayerFaceAdmin2:: - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterRight waitmovement 0 return @@ -138,7 +138,7 @@ FiveIsland_RocketWarehouse_EventScript_DefeatedAdmin1:: FiveIsland_RocketWarehouse_EventScript_PlayerFaceAdmin1:: goto_if_eq PLAYER_X_POS, 27, EventScript_Return - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterRight waitmovement 0 return @@ -153,17 +153,17 @@ FiveIsland_RocketWarehouse_EventScript_AdminWalkToSwitch:: return FiveIsland_RocketWarehouse_EventScript_AdminFaceSwitch:: - applymovement LOCALID_ADMIN1, Movement_WalkInPlaceFasterUp + applymovement LOCALID_ADMIN1, Common_Movement_WalkInPlaceFasterUp waitmovement 0 return FiveIsland_RocketWarehouse_EventScript_AdminFacePlayerLeft:: - applymovement LOCALID_ADMIN1, Movement_WalkInPlaceFasterLeft + applymovement LOCALID_ADMIN1, Common_Movement_WalkInPlaceFasterLeft waitmovement 0 return FiveIsland_RocketWarehouse_EventScript_AdminFacePlayerDown:: - applymovement LOCALID_ADMIN1, Movement_WalkInPlaceFasterDown + applymovement LOCALID_ADMIN1, Common_Movement_WalkInPlaceFasterDown waitmovement 0 return diff --git a/data/maps/FiveIsland_WaterLabyrinth/map.json b/data/maps/FiveIsland_WaterLabyrinth/map.json index 002a02f36..a0ff618d3 100644 --- a/data/maps/FiveIsland_WaterLabyrinth/map.json +++ b/data/maps/FiveIsland_WaterLabyrinth/map.json @@ -27,6 +27,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN", "x": 14, "y": 11, @@ -40,6 +41,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_2", "x": 9, "y": 7, diff --git a/data/maps/FourIsland/map.json b/data/maps/FourIsland/map.json index 33abf1091..b347b7606 100644 --- a/data/maps/FourIsland/map.json +++ b/data/maps/FourIsland/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", "x": 16, "y": 13, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_DODUO", "x": 12, "y": 9, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_NIDORAN_F", "x": 13, "y": 7, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_NIDORAN_M", "x": 14, "y": 7, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PSYDUCK", "x": 17, "y": 9, @@ -81,6 +86,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_WOMAN", "x": 26, "y": 19, @@ -94,6 +100,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 5, "y": 11, @@ -107,6 +114,7 @@ "flag": "FLAG_TEMP_12" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 5, "y": 6, @@ -120,6 +128,7 @@ "flag": "FLAG_HIDE_FOUR_ISLAND_STAR_PIECE" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 32, "y": 19, @@ -133,6 +142,7 @@ "flag": "FLAG_HIDE_FOUR_ISLAND_STARDUST" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BLUE", "x": 8, "y": 25, @@ -146,6 +156,7 @@ "flag": "FLAG_HIDE_FOUR_ISLAND_RIVAL" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_FAT_MAN", "x": 36, "y": 13, @@ -159,6 +170,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LITTLE_GIRL", "x": 31, "y": 21, @@ -178,56 +190,56 @@ "y": 20, "elevation": 0, "dest_map": "MAP_FOUR_ISLAND_POKEMON_CENTER_1F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 12, "y": 13, "elevation": 0, "dest_map": "MAP_FOUR_ISLAND_POKEMON_DAY_CARE", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 25, "y": 14, "elevation": 0, "dest_map": "MAP_FOUR_ISLAND_HOUSE1", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 38, "y": 12, "elevation": 0, "dest_map": "MAP_FOUR_ISLAND_ICEFALL_CAVE_ENTRANCE", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 33, "y": 23, "elevation": 0, "dest_map": "MAP_FOUR_ISLAND_LORELEIS_HOUSE", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 25, "y": 26, "elevation": 0, "dest_map": "MAP_FOUR_ISLAND_HOUSE2", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 10, "y": 28, "elevation": 3, "dest_map": "MAP_FOUR_ISLAND_HARBOR", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 22, "y": 26, "elevation": 0, "dest_map": "MAP_FOUR_ISLAND_MART", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], @@ -246,7 +258,7 @@ "y": 34, "elevation": 3, "item": "ITEM_PEARL", - "flag": "HIDDEN_ITEM_FOUR_ISLAND_PEARL", + "flag": "FLAG_HIDDEN_ITEM_FOUR_ISLAND_PEARL", "quantity": 1, "underfoot": false }, @@ -256,7 +268,7 @@ "y": 21, "elevation": 3, "item": "ITEM_ULTRA_BALL", - "flag": "HIDDEN_ITEM_FOUR_ISLAND_ULTRA_BALL", + "flag": "FLAG_HIDDEN_ITEM_FOUR_ISLAND_ULTRA_BALL", "quantity": 1, "underfoot": false }, diff --git a/data/maps/FourIsland/scripts.inc b/data/maps/FourIsland/scripts.inc index be6dcd7cf..8d19847d2 100644 --- a/data/maps/FourIsland/scripts.inc +++ b/data/maps/FourIsland/scripts.inc @@ -29,12 +29,12 @@ FourIsland_OnFrame:: FourIsland_EventScript_RivalScene:: lockall textcolor NPC_TEXT_COLOR_MALE - applymovement LOCALID_RIVAL, Movement_WalkInPlaceFasterDown + applymovement LOCALID_RIVAL, Common_Movement_WalkInPlaceFasterDown waitmovement 0 playbgm MUS_ENCOUNTER_RIVAL, 0 - applymovement LOCALID_RIVAL, Movement_ExclamationMark + applymovement LOCALID_RIVAL, Common_Movement_ExclamationMark waitmovement 0 - applymovement LOCALID_RIVAL, Movement_Delay48 + applymovement LOCALID_RIVAL, Common_Movement_Delay48 waitmovement 0 delay 25 applymovement LOCALID_RIVAL, FourIsland_Movement_RivalApproach diff --git a/data/maps/FourIsland_Harbor/map.json b/data/maps/FourIsland_Harbor/map.json index afa0aca6c..5a9432afd 100644 --- a/data/maps/FourIsland_Harbor/map.json +++ b/data/maps/FourIsland_Harbor/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SEAGALLOP", "x": 8, "y": 9, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SAILOR", "x": 8, "y": 6, @@ -48,7 +50,7 @@ "y": 2, "elevation": 3, "dest_map": "MAP_FOUR_ISLAND", - "dest_warp_id": 6 + "dest_warp_id": "6" } ], "coord_events": [], diff --git a/data/maps/FourIsland_House1/map.json b/data/maps/FourIsland_House1/map.json index 44bf35f30..d84c882d9 100644 --- a/data/maps/FourIsland_House1/map.json +++ b/data/maps/FourIsland_House1/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_FAT_MAN", "x": 8, "y": 3, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_FAT_MAN", "x": 9, "y": 3, @@ -48,7 +50,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_FOUR_ISLAND", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [], diff --git a/data/maps/FourIsland_House2/map.json b/data/maps/FourIsland_House2/map.json index d31d74e77..70e18a4c3 100644 --- a/data/maps/FourIsland_House2/map.json +++ b/data/maps/FourIsland_House2/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MAN", "x": 4, "y": 4, @@ -35,7 +36,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_FOUR_ISLAND", - "dest_warp_id": 5 + "dest_warp_id": "5" } ], "coord_events": [], diff --git a/data/maps/FourIsland_IcefallCave_1F/map.json b/data/maps/FourIsland_IcefallCave_1F/map.json index d8ddd44d1..c0fe62b24 100644 --- a/data/maps/FourIsland_IcefallCave_1F/map.json +++ b/data/maps/FourIsland_IcefallCave_1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 11, "y": 7, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_FOUR_ISLAND_ICEFALL_CAVE_1F_ULTRA_BALL" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 12, "y": 16, @@ -48,42 +50,42 @@ "y": 17, "elevation": 0, "dest_map": "MAP_FOUR_ISLAND_ICEFALL_CAVE_ENTRANCE", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 2, "y": 8, "elevation": 3, "dest_map": "MAP_FOUR_ISLAND_ICEFALL_CAVE_ENTRANCE", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 12, "y": 12, "elevation": 3, "dest_map": "MAP_FOUR_ISLAND_ICEFALL_CAVE_B1F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 12, "y": 3, "elevation": 3, "dest_map": "MAP_FOUR_ISLAND_ICEFALL_CAVE_B1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 15, "y": 16, "elevation": 3, "dest_map": "MAP_FOUR_ISLAND_ICEFALL_CAVE_B1F", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 3, "y": 6, "elevation": 3, "dest_map": "MAP_FOUR_ISLAND_ICEFALL_CAVE_BACK", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/FourIsland_IcefallCave_B1F/map.json b/data/maps/FourIsland_IcefallCave_B1F/map.json index 8e5bdb8bf..d9fdf61df 100644 --- a/data/maps/FourIsland_IcefallCave_B1F/map.json +++ b/data/maps/FourIsland_IcefallCave_B1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 10, "y": 14, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_FOUR_ISLAND_ICEFALL_CAVE_B1F_FULL_RESTORE" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 21, "y": 7, @@ -48,21 +50,21 @@ "y": 12, "elevation": 3, "dest_map": "MAP_FOUR_ISLAND_ICEFALL_CAVE_1F", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 12, "y": 3, "elevation": 3, "dest_map": "MAP_FOUR_ISLAND_ICEFALL_CAVE_1F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 15, "y": 16, "elevation": 3, "dest_map": "MAP_FOUR_ISLAND_ICEFALL_CAVE_1F", - "dest_warp_id": 4 + "dest_warp_id": "4" } ], "coord_events": [], diff --git a/data/maps/FourIsland_IcefallCave_Back/map.json b/data/maps/FourIsland_IcefallCave_Back/map.json index bbb4afb7c..be6cb7c39 100644 --- a/data/maps/FourIsland_IcefallCave_Back/map.json +++ b/data/maps/FourIsland_IcefallCave_Back/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 11, "y": 14, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_ICEFALL_CAVE_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 13, "y": 14, @@ -42,6 +44,7 @@ "flag": "FLAG_HIDE_ICEFALL_CAVE_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LORELEI", "x": 12, "y": 16, @@ -55,6 +58,7 @@ "flag": "FLAG_HIDE_ICEFALL_CAVE_LORELEI" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 10, "y": 15, @@ -74,7 +78,7 @@ "y": 23, "elevation": 0, "dest_map": "MAP_FOUR_ISLAND_ICEFALL_CAVE_1F", - "dest_warp_id": 5 + "dest_warp_id": "5" } ], "coord_events": [ diff --git a/data/maps/FourIsland_IcefallCave_Back/scripts.inc b/data/maps/FourIsland_IcefallCave_Back/scripts.inc index 987a08764..67faf20ac 100644 --- a/data/maps/FourIsland_IcefallCave_Back/scripts.inc +++ b/data/maps/FourIsland_IcefallCave_Back/scripts.inc @@ -25,19 +25,19 @@ FourIsland_IcefallCave_Back_EventScript_LoreleiRocketsScene:: msgbox FourIsland_IcefallCave_Back_Text_ShutItLadyLeaveUsBe closemessage playse SE_PIN - applymovement LOCALID_LORELEI, Movement_ExclamationMark + applymovement LOCALID_LORELEI, Common_Movement_ExclamationMark waitmovement 0 - applymovement LOCALID_LORELEI, Movement_WalkInPlaceFasterDown + applymovement LOCALID_LORELEI, Common_Movement_WalkInPlaceFasterDown waitmovement 0 - applymovement LOCALID_LORELEI, Movement_Delay48 + applymovement LOCALID_LORELEI, Common_Movement_Delay48 waitmovement 0 textcolor NPC_TEXT_COLOR_FEMALE msgbox FourIsland_IcefallCave_Back_Text_LoreleiPlayerHelpMeKickPoachersOut closemessage - applymovement LOCALID_LORELEI, Movement_WalkInPlaceFasterRight + applymovement LOCALID_LORELEI, Common_Movement_WalkInPlaceFasterRight waitmovement 0 delay 18 - applymovement LOCALID_LORELEI, Movement_WalkInPlaceFasterDown + applymovement LOCALID_LORELEI, Common_Movement_WalkInPlaceFasterDown waitmovement 0 delay 35 applymovement LOCALID_ROCKET3, FourIsland_IcefallCave_Back_Movement_Rocket3FaceLorelei @@ -81,7 +81,7 @@ FourIsland_IcefallCave_Back_EventScript_LoreleiRocketsScene:: delay 50 applymovement LOCALID_LORELEI, FourIsland_IcefallCave_Back_Movement_LoreleiWalkToPlayer waitmovement 0 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterLeft + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterLeft waitmovement 0 textcolor NPC_TEXT_COLOR_FEMALE msgbox FourIsland_IcefallCave_Back_Text_ThankYouThisIsAwful diff --git a/data/maps/FourIsland_IcefallCave_Entrance/map.json b/data/maps/FourIsland_IcefallCave_Entrance/map.json index aa97ac246..728d15c3d 100644 --- a/data/maps/FourIsland_IcefallCave_Entrance/map.json +++ b/data/maps/FourIsland_IcefallCave_Entrance/map.json @@ -21,21 +21,21 @@ "y": 30, "elevation": 3, "dest_map": "MAP_FOUR_ISLAND", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 10, "y": 21, "elevation": 3, "dest_map": "MAP_FOUR_ISLAND_ICEFALL_CAVE_1F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 9, "y": 7, "elevation": 3, "dest_map": "MAP_FOUR_ISLAND_ICEFALL_CAVE_1F", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/FourIsland_LoreleisHouse/map.json b/data/maps/FourIsland_LoreleisHouse/map.json index 72070ccbf..ba745bf94 100644 --- a/data/maps/FourIsland_LoreleisHouse/map.json +++ b/data/maps/FourIsland_LoreleisHouse/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LORELEI", "x": 7, "y": 4, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_LORELEI_IN_HER_HOUSE" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WIGGLYTUFF", "x": 0, "y": 2, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SEEL", "x": 10, "y": 3, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PIKACHU", "x": 9, "y": 3, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SLOWPOKE", "x": 7, "y": 2, @@ -81,6 +86,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SLOWBRO", "x": 6, "y": 2, @@ -94,6 +100,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PSYDUCK", "x": 6, "y": 4, @@ -107,6 +114,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MEOWTH", "x": 9, "y": 4, @@ -120,6 +128,7 @@ "flag": "FLAG_HIDE_LORELEI_HOUSE_MEOWTH_DOLL" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CHANSEY", "x": 10, "y": 4, @@ -133,6 +142,7 @@ "flag": "FLAG_HIDE_LORELEI_HOUSE_CHANSEY_DOLL" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_JIGGLYPUFF", "x": 0, "y": 3, @@ -146,6 +156,7 @@ "flag": "FLAG_HIDE_LORELEI_HOUSE_JIGGLYPUFF_DOLL" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_NIDORAN_F", "x": 0, "y": 5, @@ -159,6 +170,7 @@ "flag": "FLAG_HIDE_LORELEIS_HOUSE_NIDORAN_F_DOLL" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_NIDORAN_M", "x": 1, "y": 5, @@ -172,6 +184,7 @@ "flag": "FLAG_HIDE_LORELEIS_HOUSE_NIDORAN_M_DOLL" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PIDGEOT", "x": 9, "y": 0, @@ -185,6 +198,7 @@ "flag": "FLAG_HIDE_LORELEIS_HOUSE_PIDGEOT_DOLL" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_FEAROW", "x": 10, "y": 0, @@ -198,6 +212,7 @@ "flag": "FLAG_HIDE_LORELEIS_HOUSE_FEAROW_DOLL" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LAPRAS_DOLL", "x": 9, "y": 6, @@ -217,7 +232,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_FOUR_ISLAND", - "dest_warp_id": 4 + "dest_warp_id": "4" } ], "coord_events": [], diff --git a/data/maps/FourIsland_Mart/map.json b/data/maps/FourIsland_Mart/map.json index ab36dfb24..d3dbae34a 100644 --- a/data/maps/FourIsland_Mart/map.json +++ b/data/maps/FourIsland_Mart/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CLERK", "x": 2, "y": 3, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", "x": 6, "y": 5, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CAMPER", "x": 8, "y": 3, @@ -61,7 +64,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_FOUR_ISLAND", - "dest_warp_id": 7 + "dest_warp_id": "7" } ], "coord_events": [], diff --git a/data/maps/FourIsland_PokemonCenter_1F/map.json b/data/maps/FourIsland_PokemonCenter_1F/map.json index 89ddda178..c6e9f2aba 100644 --- a/data/maps/FourIsland_PokemonCenter_1F/map.json +++ b/data/maps/FourIsland_PokemonCenter_1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_NURSE", "x": 7, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MAN", "x": 10, "y": 6, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_3", "x": 5, "y": 5, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN", "x": 2, "y": 2, @@ -74,14 +78,14 @@ "y": 8, "elevation": 3, "dest_map": "MAP_FOUR_ISLAND", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 1, "y": 6, "elevation": 4, "dest_map": "MAP_FOUR_ISLAND_POKEMON_CENTER_2F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/FourIsland_PokemonCenter_2F/map.json b/data/maps/FourIsland_PokemonCenter_2F/map.json index 7d6092bea..d606536c8 100644 --- a/data/maps/FourIsland_PokemonCenter_2F/map.json +++ b/data/maps/FourIsland_PokemonCenter_2F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 6, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 2, "y": 2, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 10, "y": 2, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MG_DELIVERYMAN", "x": 1, "y": 2, @@ -74,21 +78,21 @@ "y": 6, "elevation": 4, "dest_map": "MAP_FOUR_ISLAND_POKEMON_CENTER_1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 5, "y": 1, "elevation": 0, "dest_map": "MAP_UNION_ROOM", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 9, "y": 1, "elevation": 0, "dest_map": "MAP_TRADE_CENTER", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/FourIsland_PokemonDayCare/map.json b/data/maps/FourIsland_PokemonDayCare/map.json index 81c7c0d9d..380c5574d 100644 --- a/data/maps/FourIsland_PokemonDayCare/map.json +++ b/data/maps/FourIsland_PokemonDayCare/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_WOMAN", "x": 2, "y": 2, @@ -35,7 +36,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_FOUR_ISLAND", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/FuchsiaCity/map.json b/data/maps/FuchsiaCity/map.json index 9a1f3f504..834806202 100644 --- a/data/maps/FuchsiaCity/map.json +++ b/data/maps/FuchsiaCity/map.json @@ -32,6 +32,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_FAT_MAN", "x": 37, "y": 17, @@ -45,6 +46,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SLOWPOKE", "x": 36, "y": 15, @@ -58,6 +60,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VOLTORB", "x": 33, "y": 8, @@ -71,6 +74,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 33, "y": 11, @@ -84,6 +88,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CHANSEY", "x": 39, "y": 8, @@ -97,6 +102,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LITTLE_BOY", "x": 14, "y": 15, @@ -110,6 +116,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LAPRAS", "x": 12, "y": 20, @@ -123,6 +130,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", "x": 36, "y": 20, @@ -136,6 +144,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_0", "x": 8, "y": 8, @@ -149,6 +158,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_KANGASKHAN", "x": 16, "y": 9, @@ -162,6 +172,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 30, "y": 10, @@ -175,6 +186,7 @@ "flag": "FLAG_TEMP_12" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 21, "y": 13, @@ -188,6 +200,7 @@ "flag": "FLAG_TEMP_13" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 32, "y": 16, @@ -201,6 +214,7 @@ "flag": "FLAG_TEMP_14" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 24, "y": 22, @@ -214,6 +228,7 @@ "flag": "FLAG_TEMP_15" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BUG_CATCHER", "x": 15, "y": 11, @@ -227,6 +242,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LASS", "x": 40, "y": 6, @@ -246,77 +262,77 @@ "y": 5, "elevation": 0, "dest_map": "MAP_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 33, "y": 31, "elevation": 0, "dest_map": "MAP_FUCHSIA_CITY_WARDENS_HOUSE", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 11, "y": 15, "elevation": 0, "dest_map": "MAP_FUCHSIA_CITY_MART", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 28, "y": 16, "elevation": 0, "dest_map": "MAP_FUCHSIA_CITY_SAFARI_ZONE_OFFICE", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 9, "y": 32, "elevation": 0, "dest_map": "MAP_FUCHSIA_CITY_GYM", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 14, "y": 31, "elevation": 0, "dest_map": "MAP_FUCHSIA_CITY_HOUSE1", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 25, "y": 31, "elevation": 3, "dest_map": "MAP_FUCHSIA_CITY_POKEMON_CENTER_1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 38, "y": 31, "elevation": 0, "dest_map": "MAP_FUCHSIA_CITY_HOUSE2", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 39, "y": 28, "elevation": 3, "dest_map": "MAP_FUCHSIA_CITY_HOUSE2", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 39, "y": 29, "elevation": 3, "dest_map": "MAP_FUCHSIA_CITY_HOUSE2", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 19, "y": 31, "elevation": 0, "dest_map": "MAP_FUCHSIA_CITY_HOUSE3", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], @@ -415,7 +431,7 @@ "y": 26, "elevation": 3, "item": "ITEM_MAX_REVIVE", - "flag": "HIDDEN_ITEM_FUCHSIA_CITY_MAX_REVIVE", + "flag": "FLAG_HIDDEN_ITEM_FUCHSIA_CITY_MAX_REVIVE", "quantity": 1, "underfoot": false } diff --git a/data/maps/FuchsiaCity_Gym/map.json b/data/maps/FuchsiaCity_Gym/map.json index 031e69071..abeb179e0 100644 --- a/data/maps/FuchsiaCity_Gym/map.json +++ b/data/maps/FuchsiaCity_Gym/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKER", "x": 12, "y": 16, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKER", "x": 2, "y": 9, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKER", "x": 11, "y": 11, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MAN", "x": 13, "y": 4, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MAN", "x": 4, "y": 6, @@ -81,6 +86,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKER", "x": 2, "y": 16, @@ -94,6 +100,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_KOGA", "x": 7, "y": 13, @@ -107,6 +114,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GYM_GUY", "x": 11, "y": 19, @@ -126,21 +134,21 @@ "y": 21, "elevation": 3, "dest_map": "MAP_FUCHSIA_CITY", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 7, "y": 21, "elevation": 3, "dest_map": "MAP_FUCHSIA_CITY", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 8, "y": 21, "elevation": 3, "dest_map": "MAP_FUCHSIA_CITY", - "dest_warp_id": 4 + "dest_warp_id": "4" } ], "coord_events": [], diff --git a/data/maps/FuchsiaCity_House1/map.json b/data/maps/FuchsiaCity_House1/map.json index ac9fbd673..aff96b597 100644 --- a/data/maps/FuchsiaCity_House1/map.json +++ b/data/maps/FuchsiaCity_House1/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", "x": 7, "y": 4, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_2", "x": 1, "y": 2, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LITTLE_BOY", "x": 2, "y": 5, @@ -61,21 +64,21 @@ "y": 7, "elevation": 3, "dest_map": "MAP_FUCHSIA_CITY", - "dest_warp_id": 5 + "dest_warp_id": "5" }, { "x": 4, "y": 7, "elevation": 3, "dest_map": "MAP_FUCHSIA_CITY", - "dest_warp_id": 5 + "dest_warp_id": "5" }, { "x": 5, "y": 7, "elevation": 3, "dest_map": "MAP_FUCHSIA_CITY", - "dest_warp_id": 5 + "dest_warp_id": "5" } ], "coord_events": [], diff --git a/data/maps/FuchsiaCity_House2/map.json b/data/maps/FuchsiaCity_House2/map.json index 9d66853a4..d800bc15f 100644 --- a/data/maps/FuchsiaCity_House2/map.json +++ b/data/maps/FuchsiaCity_House2/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_FISHER", "x": 6, "y": 5, @@ -35,28 +36,28 @@ "y": 9, "elevation": 0, "dest_map": "MAP_FUCHSIA_CITY", - "dest_warp_id": 7 + "dest_warp_id": "7" }, { "x": 3, "y": 8, "elevation": 3, "dest_map": "MAP_FUCHSIA_CITY", - "dest_warp_id": 7 + "dest_warp_id": "7" }, { "x": 4, "y": 9, "elevation": 0, "dest_map": "MAP_FUCHSIA_CITY", - "dest_warp_id": 7 + "dest_warp_id": "7" }, { "x": 3, "y": 1, "elevation": 3, "dest_map": "MAP_FUCHSIA_CITY", - "dest_warp_id": 8 + "dest_warp_id": "8" } ], "coord_events": [], diff --git a/data/maps/FuchsiaCity_House3/map.json b/data/maps/FuchsiaCity_House3/map.json index b6916bec8..5b7e20007 100644 --- a/data/maps/FuchsiaCity_House3/map.json +++ b/data/maps/FuchsiaCity_House3/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", "x": 4, "y": 4, @@ -35,7 +36,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_FUCHSIA_CITY", - "dest_warp_id": 10 + "dest_warp_id": "10" } ], "coord_events": [], diff --git a/data/maps/FuchsiaCity_Mart/map.json b/data/maps/FuchsiaCity_Mart/map.json index 10e7deb5a..e4d04596b 100644 --- a/data/maps/FuchsiaCity_Mart/map.json +++ b/data/maps/FuchsiaCity_Mart/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CLERK", "x": 2, "y": 3, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN", "x": 6, "y": 3, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_F", "x": 9, "y": 5, @@ -61,21 +64,21 @@ "y": 7, "elevation": 3, "dest_map": "MAP_FUCHSIA_CITY", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 4, "y": 7, "elevation": 3, "dest_map": "MAP_FUCHSIA_CITY", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 5, "y": 7, "elevation": 3, "dest_map": "MAP_FUCHSIA_CITY", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [], diff --git a/data/maps/FuchsiaCity_PokemonCenter_1F/map.json b/data/maps/FuchsiaCity_PokemonCenter_1F/map.json index 04e1112cd..9d1b7c252 100644 --- a/data/maps/FuchsiaCity_PokemonCenter_1F/map.json +++ b/data/maps/FuchsiaCity_PokemonCenter_1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_NURSE", "x": 7, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MAN", "x": 12, "y": 5, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_F", "x": 13, "y": 3, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 4, "y": 8, @@ -74,28 +78,28 @@ "y": 8, "elevation": 3, "dest_map": "MAP_FUCHSIA_CITY", - "dest_warp_id": 6 + "dest_warp_id": "6" }, { "x": 7, "y": 8, "elevation": 3, "dest_map": "MAP_FUCHSIA_CITY", - "dest_warp_id": 6 + "dest_warp_id": "6" }, { "x": 8, "y": 8, "elevation": 3, "dest_map": "MAP_FUCHSIA_CITY", - "dest_warp_id": 6 + "dest_warp_id": "6" }, { "x": 1, "y": 6, "elevation": 4, "dest_map": "MAP_FUCHSIA_CITY_POKEMON_CENTER_2F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/FuchsiaCity_PokemonCenter_2F/map.json b/data/maps/FuchsiaCity_PokemonCenter_2F/map.json index 16e7f5606..60eb84ecf 100644 --- a/data/maps/FuchsiaCity_PokemonCenter_2F/map.json +++ b/data/maps/FuchsiaCity_PokemonCenter_2F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 6, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 2, "y": 2, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 10, "y": 2, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MG_DELIVERYMAN", "x": 1, "y": 2, @@ -74,21 +78,21 @@ "y": 6, "elevation": 4, "dest_map": "MAP_FUCHSIA_CITY_POKEMON_CENTER_1F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 5, "y": 1, "elevation": 0, "dest_map": "MAP_UNION_ROOM", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 9, "y": 1, "elevation": 0, "dest_map": "MAP_TRADE_CENTER", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/FuchsiaCity_SafariZone_Entrance/map.json b/data/maps/FuchsiaCity_SafariZone_Entrance/map.json index 62161f69f..c74062929 100644 --- a/data/maps/FuchsiaCity_SafariZone_Entrance/map.json +++ b/data/maps/FuchsiaCity_SafariZone_Entrance/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WORKER_M", "x": 7, "y": 3, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WORKER_M", "x": 1, "y": 6, @@ -48,28 +50,28 @@ "y": 1, "elevation": 3, "dest_map": "MAP_SAFARI_ZONE_CENTER", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 5, "y": 7, "elevation": 3, "dest_map": "MAP_FUCHSIA_CITY", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 4, "y": 7, "elevation": 3, "dest_map": "MAP_FUCHSIA_CITY", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 3, "y": 7, "elevation": 3, "dest_map": "MAP_FUCHSIA_CITY", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [ diff --git a/data/maps/FuchsiaCity_SafariZone_Entrance/scripts.inc b/data/maps/FuchsiaCity_SafariZone_Entrance/scripts.inc index 474f29023..77cd336ce 100644 --- a/data/maps/FuchsiaCity_SafariZone_Entrance/scripts.inc +++ b/data/maps/FuchsiaCity_SafariZone_Entrance/scripts.inc @@ -100,7 +100,7 @@ FuchsiaCity_SafariZone_Entrance_EventScript_EntryTriggerLeft:: FuchsiaCity_SafariZone_Entrance_EventScript_AskEnterSafariZone:: textcolor NPC_TEXT_COLOR_MALE msgbox FuchsiaCity_SafariZone_Entrance_Text_WelcomeToSafariZone - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterRight waitmovement 0 showmoneybox 0, 0 msgbox FuchsiaCity_SafariZone_Entrance_Text_PlaySafariGameFor500, MSGBOX_YESNO diff --git a/data/maps/FuchsiaCity_SafariZone_Office/map.json b/data/maps/FuchsiaCity_SafariZone_Office/map.json index 89bf9cffc..7a8dca1b5 100644 --- a/data/maps/FuchsiaCity_SafariZone_Office/map.json +++ b/data/maps/FuchsiaCity_SafariZone_Office/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WORKER_M", "x": 2, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WORKER_M", "x": 12, "y": 3, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WORKER_M", "x": 6, "y": 4, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WORKER_M", "x": 10, "y": 8, @@ -74,21 +78,21 @@ "y": 9, "elevation": 0, "dest_map": "MAP_FUCHSIA_CITY", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 6, "y": 9, "elevation": 0, "dest_map": "MAP_FUCHSIA_CITY", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 7, "y": 9, "elevation": 3, "dest_map": "MAP_FUCHSIA_CITY", - "dest_warp_id": 3 + "dest_warp_id": "3" } ], "coord_events": [], diff --git a/data/maps/FuchsiaCity_WardensHouse/map.json b/data/maps/FuchsiaCity_WardensHouse/map.json index 73a8ee885..527e9c22d 100644 --- a/data/maps/FuchsiaCity_WardensHouse/map.json +++ b/data/maps/FuchsiaCity_WardensHouse/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_2", "x": 3, "y": 5, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 11, "y": 6, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 11, "y": 5, @@ -55,6 +58,7 @@ "flag": "FLAG_HIDE_FUCHSIA_CITY_WARDENS_HOUSE_RARE_CANDY" }, { + "type": "object", "graphics_id": "0", "x": 4, "y": 1, @@ -74,21 +78,21 @@ "y": 10, "elevation": 0, "dest_map": "MAP_FUCHSIA_CITY", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 6, "y": 9, "elevation": 3, "dest_map": "MAP_FUCHSIA_CITY", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 7, "y": 10, "elevation": 0, "dest_map": "MAP_FUCHSIA_CITY", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/IndigoPlateau_Exterior/map.json b/data/maps/IndigoPlateau_Exterior/map.json index 31461c51f..13d14c825 100644 --- a/data/maps/IndigoPlateau_Exterior/map.json +++ b/data/maps/IndigoPlateau_Exterior/map.json @@ -22,6 +22,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BLUE", "x": 11, "y": 6, @@ -35,6 +36,7 @@ "flag": "FLAG_HIDE_CREDITS_RIVAL" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PROF_OAK", "x": 11, "y": 6, @@ -54,7 +56,7 @@ "y": 6, "elevation": 0, "dest_map": "MAP_INDIGO_PLATEAU_POKEMON_CENTER_1F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/IndigoPlateau_PokemonCenter_1F/map.json b/data/maps/IndigoPlateau_PokemonCenter_1F/map.json index 485be4c63..7955bd1cd 100644 --- a/data/maps/IndigoPlateau_PokemonCenter_1F/map.json +++ b/data/maps/IndigoPlateau_PokemonCenter_1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CLERK", "x": 0, "y": 7, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_NURSE", "x": 13, "y": 10, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GYM_GUY", "x": 7, "y": 14, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_F", "x": 5, "y": 3, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BLACKBELT", "x": 23, "y": 13, @@ -81,6 +86,7 @@ "flag": "FLAG_HIDE_POSTGAME_GOSSIPERS" }, { + "type": "object", "graphics_id": "0", "x": 22, "y": 9, @@ -94,6 +100,7 @@ "flag": "FLAG_HIDE_POSTGAME_GOSSIPERS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_M", "x": 16, "y": 15, @@ -107,6 +114,7 @@ "flag": "FLAG_HIDE_POSTGAME_GOSSIPERS" }, { + "type": "object", "graphics_id": "0", "x": 23, "y": 9, @@ -126,21 +134,21 @@ "y": 16, "elevation": 3, "dest_map": "MAP_INDIGO_PLATEAU_EXTERIOR", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 4, "y": 1, "elevation": 3, "dest_map": "MAP_POKEMON_LEAGUE_LORELEIS_ROOM", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 1, "y": 14, "elevation": 4, "dest_map": "MAP_INDIGO_PLATEAU_POKEMON_CENTER_2F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/IndigoPlateau_PokemonCenter_2F/map.json b/data/maps/IndigoPlateau_PokemonCenter_2F/map.json index bdb442d7a..770645384 100644 --- a/data/maps/IndigoPlateau_PokemonCenter_2F/map.json +++ b/data/maps/IndigoPlateau_PokemonCenter_2F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 6, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 2, "y": 2, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 10, "y": 2, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MG_DELIVERYMAN", "x": 1, "y": 2, @@ -74,21 +78,21 @@ "y": 6, "elevation": 4, "dest_map": "MAP_INDIGO_PLATEAU_POKEMON_CENTER_1F", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 5, "y": 1, "elevation": 0, "dest_map": "MAP_UNION_ROOM", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 9, "y": 1, "elevation": 0, "dest_map": "MAP_TRADE_CENTER", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/LavenderTown/map.json b/data/maps/LavenderTown/map.json index 07fe80598..edbe04fb6 100644 --- a/data/maps/LavenderTown/map.json +++ b/data/maps/LavenderTown/map.json @@ -32,6 +32,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LITTLE_GIRL", "x": 19, "y": 10, @@ -45,6 +46,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WORKER_M", "x": 12, "y": 12, @@ -58,6 +60,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BOY", "x": 10, "y": 7, @@ -77,42 +80,42 @@ "y": 6, "elevation": 0, "dest_map": "MAP_POKEMON_TOWER_1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 6, "y": 5, "elevation": 0, "dest_map": "MAP_LAVENDER_TOWN_POKEMON_CENTER_1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 10, "y": 11, "elevation": 0, "dest_map": "MAP_LAVENDER_TOWN_VOLUNTEER_POKEMON_HOUSE", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 5, "y": 16, "elevation": 0, "dest_map": "MAP_LAVENDER_TOWN_HOUSE1", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 10, "y": 16, "elevation": 0, "dest_map": "MAP_LAVENDER_TOWN_HOUSE2", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 20, "y": 15, "elevation": 0, "dest_map": "MAP_LAVENDER_TOWN_MART", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/LavenderTown_House1/map.json b/data/maps/LavenderTown_House1/map.json index 2920d0f11..98f026fbf 100644 --- a/data/maps/LavenderTown_House1/map.json +++ b/data/maps/LavenderTown_House1/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_F", "x": 4, "y": 4, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUBONE", "x": 8, "y": 6, @@ -48,21 +50,21 @@ "y": 7, "elevation": 3, "dest_map": "MAP_LAVENDER_TOWN", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 4, "y": 7, "elevation": 3, "dest_map": "MAP_LAVENDER_TOWN", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 5, "y": 7, "elevation": 3, "dest_map": "MAP_LAVENDER_TOWN", - "dest_warp_id": 3 + "dest_warp_id": "3" } ], "coord_events": [], diff --git a/data/maps/LavenderTown_House2/map.json b/data/maps/LavenderTown_House2/map.json index 51f227c93..688eeddc9 100644 --- a/data/maps/LavenderTown_House2/map.json +++ b/data/maps/LavenderTown_House2/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN", "x": 4, "y": 4, @@ -35,21 +36,21 @@ "y": 7, "elevation": 3, "dest_map": "MAP_LAVENDER_TOWN", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 4, "y": 7, "elevation": 3, "dest_map": "MAP_LAVENDER_TOWN", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 5, "y": 7, "elevation": 3, "dest_map": "MAP_LAVENDER_TOWN", - "dest_warp_id": 4 + "dest_warp_id": "4" } ], "coord_events": [], diff --git a/data/maps/LavenderTown_Mart/map.json b/data/maps/LavenderTown_Mart/map.json index c855026dc..6a7fbb2ca 100644 --- a/data/maps/LavenderTown_Mart/map.json +++ b/data/maps/LavenderTown_Mart/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CLERK", "x": 2, "y": 3, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", "x": 6, "y": 2, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKER", "x": 9, "y": 2, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 9, "y": 5, @@ -74,21 +78,21 @@ "y": 7, "elevation": 3, "dest_map": "MAP_LAVENDER_TOWN", - "dest_warp_id": 5 + "dest_warp_id": "5" }, { "x": 4, "y": 7, "elevation": 3, "dest_map": "MAP_LAVENDER_TOWN", - "dest_warp_id": 5 + "dest_warp_id": "5" }, { "x": 5, "y": 7, "elevation": 3, "dest_map": "MAP_LAVENDER_TOWN", - "dest_warp_id": 5 + "dest_warp_id": "5" } ], "coord_events": [], diff --git a/data/maps/LavenderTown_PokemonCenter_1F/map.json b/data/maps/LavenderTown_PokemonCenter_1F/map.json index f418ed011..055802ae6 100644 --- a/data/maps/LavenderTown_PokemonCenter_1F/map.json +++ b/data/maps/LavenderTown_PokemonCenter_1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_NURSE", "x": 7, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN", "x": 9, "y": 4, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LASS", "x": 5, "y": 6, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 2, "y": 2, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", "x": 14, "y": 6, @@ -87,28 +92,28 @@ "y": 8, "elevation": 3, "dest_map": "MAP_LAVENDER_TOWN", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 7, "y": 8, "elevation": 3, "dest_map": "MAP_LAVENDER_TOWN", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 8, "y": 8, "elevation": 3, "dest_map": "MAP_LAVENDER_TOWN", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 1, "y": 6, "elevation": 4, "dest_map": "MAP_LAVENDER_TOWN_POKEMON_CENTER_2F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/LavenderTown_PokemonCenter_2F/map.json b/data/maps/LavenderTown_PokemonCenter_2F/map.json index 108d34364..6fc2a4346 100644 --- a/data/maps/LavenderTown_PokemonCenter_2F/map.json +++ b/data/maps/LavenderTown_PokemonCenter_2F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 6, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 2, "y": 2, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 10, "y": 2, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MG_DELIVERYMAN", "x": 1, "y": 2, @@ -74,21 +78,21 @@ "y": 6, "elevation": 4, "dest_map": "MAP_LAVENDER_TOWN_POKEMON_CENTER_1F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 5, "y": 1, "elevation": 0, "dest_map": "MAP_UNION_ROOM", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 9, "y": 1, "elevation": 0, "dest_map": "MAP_TRADE_CENTER", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/LavenderTown_VolunteerPokemonHouse/map.json b/data/maps/LavenderTown_VolunteerPokemonHouse/map.json index 02b70d9ef..304d66005 100644 --- a/data/maps/LavenderTown_VolunteerPokemonHouse/map.json +++ b/data/maps/LavenderTown_VolunteerPokemonHouse/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MR_FUJI", "x": 3, "y": 3, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_POKEHOUSE_FUJI" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_NIDORINO", "x": 1, "y": 4, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PSYDUCK", "x": 9, "y": 6, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LITTLE_BOY", "x": 9, "y": 5, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 3, "y": 5, @@ -81,6 +86,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LITTLE_GIRL", "x": 7, "y": 2, @@ -100,21 +106,21 @@ "y": 7, "elevation": 3, "dest_map": "MAP_LAVENDER_TOWN", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 4, "y": 7, "elevation": 3, "dest_map": "MAP_LAVENDER_TOWN", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 5, "y": 7, "elevation": 3, "dest_map": "MAP_LAVENDER_TOWN", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [], diff --git a/data/maps/MtEmber_Exterior/map.json b/data/maps/MtEmber_Exterior/map.json index 42e1ea87f..a755bbd0b 100644 --- a/data/maps/MtEmber_Exterior/map.json +++ b/data/maps/MtEmber_Exterior/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_HIKER", "x": 29, "y": 45, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 41, "y": 40, @@ -42,6 +44,7 @@ "flag": "FLAG_HIDE_MT_EMBER_EXTERIOR_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 42, "y": 40, @@ -55,6 +58,7 @@ "flag": "FLAG_HIDE_MT_EMBER_EXTERIOR_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BATTLE_GIRL", "x": 22, "y": 35, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CAMPER", "x": 15, "y": 28, @@ -81,6 +86,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PICNICKER", "x": 14, "y": 42, @@ -94,6 +100,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 29, "y": 41, @@ -107,6 +114,7 @@ "flag": "FLAG_TEMP_12" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 30, "y": 42, @@ -120,6 +128,7 @@ "flag": "FLAG_TEMP_13" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 22, "y": 45, @@ -133,6 +142,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 17, "y": 46, @@ -146,6 +156,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 36, "y": 14, @@ -159,6 +170,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 34, "y": 14, @@ -172,6 +184,7 @@ "flag": "FLAG_TEMP_14" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 36, "y": 15, @@ -185,6 +198,7 @@ "flag": "FLAG_TEMP_15" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 35, "y": 14, @@ -198,6 +212,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 35, "y": 17, @@ -211,6 +226,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 18, "y": 39, @@ -224,6 +240,7 @@ "flag": "FLAG_TEMP_16" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 19, "y": 40, @@ -237,6 +254,7 @@ "flag": "FLAG_TEMP_17" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 13, "y": 6, @@ -250,6 +268,7 @@ "flag": "FLAG_HIDE_MT_EMBER_EXTERIOR_ULTRA_BALL" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 38, "y": 10, @@ -263,6 +282,7 @@ "flag": "FLAG_HIDE_MT_EMBER_EXTERIOR_FIRE_STONE" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 48, "y": 20, @@ -282,42 +302,42 @@ "y": 48, "elevation": 3, "dest_map": "MAP_ONE_ISLAND_KINDLE_ROAD", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 29, "y": 48, "elevation": 3, "dest_map": "MAP_ONE_ISLAND_KINDLE_ROAD", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 14, "y": 24, "elevation": 3, "dest_map": "MAP_MT_EMBER_SUMMIT_PATH_1F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 39, "y": 19, "elevation": 3, "dest_map": "MAP_MT_EMBER_SUMMIT_PATH_3F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 29, "y": 7, "elevation": 3, "dest_map": "MAP_MT_EMBER_SUMMIT", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 42, "y": 39, "elevation": 0, "dest_map": "MAP_MT_EMBER_RUBY_PATH_1F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [ @@ -356,7 +376,7 @@ "y": 17, "elevation": 0, "item": "ITEM_FIRE_STONE", - "flag": "HIDDEN_ITEM_MT_EMBER_EXTERIOR_FIRE_STONE", + "flag": "FLAG_HIDDEN_ITEM_MT_EMBER_EXTERIOR_FIRE_STONE", "quantity": 1, "underfoot": false }, @@ -366,7 +386,7 @@ "y": 30, "elevation": 3, "item": "ITEM_ULTRA_BALL", - "flag": "HIDDEN_ITEM_MT_EMBER_EXTERIOR_ULTRA_BALL", + "flag": "FLAG_HIDDEN_ITEM_MT_EMBER_EXTERIOR_ULTRA_BALL", "quantity": 1, "underfoot": false } diff --git a/data/maps/MtEmber_Exterior/scripts.inc b/data/maps/MtEmber_Exterior/scripts.inc index d5519c96a..6bfe3cbfa 100644 --- a/data/maps/MtEmber_Exterior/scripts.inc +++ b/data/maps/MtEmber_Exterior/scripts.inc @@ -38,7 +38,7 @@ MtEmber_Exterior_EventScript_Grunt1Defeated:: end MtEmber_Exterior_EventScript_BattleGrunt1:: - applymovement LOCALID_GRUNT1, Movement_FacePlayer + applymovement LOCALID_GRUNT1, Common_Movement_FacePlayer waitmovement 0 playbgm MUS_ENCOUNTER_ROCKET, 0 msgbox MtEmber_Exterior_Text_Grunt1Intro @@ -65,7 +65,7 @@ MtEmber_Exterior_EventScript_Grunt2:: goto_if_eq VAR_MAP_SCENE_ONE_ISLAND_POKEMON_CENTER_1F, 4, MtEmber_Exterior_EventScript_BattleGrunt2 msgbox MtEmber_Exterior_Text_YoureInTheWayGetLost closemessage - applymovement LOCALID_GRUNT2, Movement_FaceOriginalDirection + applymovement LOCALID_GRUNT2, Common_Movement_FaceOriginalDirection waitmovement 0 release end @@ -91,18 +91,18 @@ MtEmber_Exterior_EventScript_RocketPasswordScene:: message MtEmber_Exterior_Text_WhatsPasswordAgain waitmessage playse SE_PIN - applymovement LOCALID_GRUNT2, Movement_QuestionMark + applymovement LOCALID_GRUNT2, Common_Movement_QuestionMark waitmovement 0 waitbuttonpress msgbox MtEmber_Exterior_Text_FirstPasswordGoldeen - applymovement LOCALID_GRUNT1, Movement_WalkInPlaceFasterDown + applymovement LOCALID_GRUNT1, Common_Movement_WalkInPlaceFasterDown waitmovement 0 playse SE_PIN - applymovement LOCALID_GRUNT1, Movement_ExclamationMark + applymovement LOCALID_GRUNT1, Common_Movement_ExclamationMark waitmovement 0 - applymovement LOCALID_GRUNT1, Movement_Delay48 + applymovement LOCALID_GRUNT1, Common_Movement_Delay48 waitmovement 0 - applymovement LOCALID_GRUNT2, Movement_WalkInPlaceFasterDown + applymovement LOCALID_GRUNT2, Common_Movement_WalkInPlaceFasterDown waitmovement 0 call MtEmber_Exterior_EventScript_RocketsFaceDown msgbox MtEmber_Exterior_Text_SnoopsBeenListeningIn diff --git a/data/maps/MtEmber_RubyPath_1F/map.json b/data/maps/MtEmber_RubyPath_1F/map.json index 3a3d01a84..62b96b80b 100644 --- a/data/maps/MtEmber_RubyPath_1F/map.json +++ b/data/maps/MtEmber_RubyPath_1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 18, "y": 11, @@ -29,6 +30,7 @@ "flag": "FLAG_TEMP_12" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 23, "y": 16, @@ -42,6 +44,7 @@ "flag": "FLAG_TEMP_13" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 20, "y": 12, @@ -55,6 +58,7 @@ "flag": "FLAG_TEMP_14" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 19, "y": 7, @@ -68,6 +72,7 @@ "flag": "FLAG_TEMP_15" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 21, "y": 15, @@ -87,21 +92,21 @@ "y": 17, "elevation": 3, "dest_map": "MAP_MT_EMBER_EXTERIOR", - "dest_warp_id": 5 + "dest_warp_id": "5" }, { "x": 1, "y": 1, "elevation": 0, "dest_map": "MAP_MT_EMBER_RUBY_PATH_B1F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 24, "y": 5, "elevation": 0, "dest_map": "MAP_MT_EMBER_RUBY_PATH_B2F_STAIRS", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/MtEmber_RubyPath_B1F/map.json b/data/maps/MtEmber_RubyPath_B1F/map.json index 131ba8fd6..8b118eecd 100644 --- a/data/maps/MtEmber_RubyPath_B1F/map.json +++ b/data/maps/MtEmber_RubyPath_B1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 1, "y": 8, @@ -29,6 +30,7 @@ "flag": "FLAG_TEMP_12" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 1, "y": 11, @@ -42,6 +44,7 @@ "flag": "FLAG_TEMP_13" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 3, "y": 12, @@ -55,6 +58,7 @@ "flag": "FLAG_TEMP_14" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 5, "y": 14, @@ -74,14 +78,14 @@ "y": 21, "elevation": 0, "dest_map": "MAP_MT_EMBER_RUBY_PATH_1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 6, "y": 1, "elevation": 0, "dest_map": "MAP_MT_EMBER_RUBY_PATH_B2F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/MtEmber_RubyPath_B1F_Stairs/map.json b/data/maps/MtEmber_RubyPath_B1F_Stairs/map.json index ea9fa2586..d3242092b 100644 --- a/data/maps/MtEmber_RubyPath_B1F_Stairs/map.json +++ b/data/maps/MtEmber_RubyPath_B1F_Stairs/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 4, "y": 2, @@ -35,14 +36,14 @@ "y": 1, "elevation": 0, "dest_map": "MAP_MT_EMBER_RUBY_PATH_B3F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 1, "y": 5, "elevation": 0, "dest_map": "MAP_MT_EMBER_RUBY_PATH_B2F_STAIRS", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/MtEmber_RubyPath_B2F/map.json b/data/maps/MtEmber_RubyPath_B2F/map.json index aaf1b8dc3..5dd0f9e7b 100644 --- a/data/maps/MtEmber_RubyPath_B2F/map.json +++ b/data/maps/MtEmber_RubyPath_B2F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 9, "y": 3, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 12, "y": 5, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 12, "y": 2, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 4, "y": 8, @@ -68,6 +72,7 @@ "flag": "FLAG_TEMP_12" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 1, "y": 8, @@ -81,6 +86,7 @@ "flag": "FLAG_TEMP_13" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 4, "y": 5, @@ -94,6 +100,7 @@ "flag": "FLAG_TEMP_14" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 5, "y": 5, @@ -113,14 +120,14 @@ "y": 7, "elevation": 3, "dest_map": "MAP_MT_EMBER_RUBY_PATH_B1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 13, "y": 9, "elevation": 3, "dest_map": "MAP_MT_EMBER_RUBY_PATH_B3F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/MtEmber_RubyPath_B2F_Stairs/map.json b/data/maps/MtEmber_RubyPath_B2F_Stairs/map.json index b9c4074f9..9b0c34663 100644 --- a/data/maps/MtEmber_RubyPath_B2F_Stairs/map.json +++ b/data/maps/MtEmber_RubyPath_B2F_Stairs/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 4, "y": 3, @@ -29,6 +30,7 @@ "flag": "FLAG_TEMP_12" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 6, "y": 2, @@ -48,14 +50,14 @@ "y": 1, "elevation": 0, "dest_map": "MAP_MT_EMBER_RUBY_PATH_B1F_STAIRS", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 1, "y": 4, "elevation": 0, "dest_map": "MAP_MT_EMBER_RUBY_PATH_1F", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [], diff --git a/data/maps/MtEmber_RubyPath_B3F/map.json b/data/maps/MtEmber_RubyPath_B3F/map.json index 7ee35c5ef..87a812708 100644 --- a/data/maps/MtEmber_RubyPath_B3F/map.json +++ b/data/maps/MtEmber_RubyPath_B3F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 10, "y": 4, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 26, "y": 12, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 28, "y": 8, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 7, "y": 2, @@ -68,6 +72,7 @@ "flag": "FLAG_TEMP_12" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 4, "y": 3, @@ -81,6 +86,7 @@ "flag": "FLAG_TEMP_13" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 6, "y": 6, @@ -94,6 +100,7 @@ "flag": "FLAG_TEMP_14" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 7, "y": 6, @@ -107,6 +114,7 @@ "flag": "FLAG_TEMP_15" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 4, "y": 5, @@ -120,6 +128,7 @@ "flag": "FLAG_TEMP_16" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 5, "y": 2, @@ -133,6 +142,7 @@ "flag": "FLAG_TEMP_17" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 15, "y": 13, @@ -152,21 +162,21 @@ "y": 4, "elevation": 0, "dest_map": "MAP_MT_EMBER_RUBY_PATH_B2F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 19, "y": 19, "elevation": 3, "dest_map": "MAP_MT_EMBER_RUBY_PATH_B1F_STAIRS", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 5, "y": 19, "elevation": 3, "dest_map": "MAP_MT_EMBER_RUBY_PATH_B4F", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/MtEmber_RubyPath_B4F/map.json b/data/maps/MtEmber_RubyPath_B4F/map.json index d4ed67e9c..ebd016595 100644 --- a/data/maps/MtEmber_RubyPath_B4F/map.json +++ b/data/maps/MtEmber_RubyPath_B4F/map.json @@ -21,14 +21,14 @@ "y": 14, "elevation": 3, "dest_map": "MAP_MT_EMBER_RUBY_PATH_B5F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 4, "y": 2, "elevation": 3, "dest_map": "MAP_MT_EMBER_RUBY_PATH_B3F", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [], diff --git a/data/maps/MtEmber_RubyPath_B5F/map.json b/data/maps/MtEmber_RubyPath_B5F/map.json index 267cedd37..fc7a056fa 100644 --- a/data/maps/MtEmber_RubyPath_B5F/map.json +++ b/data/maps/MtEmber_RubyPath_B5F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_RUBY", "x": 7, "y": 7, @@ -35,7 +36,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_MT_EMBER_RUBY_PATH_B4F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/MtEmber_Summit/map.json b/data/maps/MtEmber_Summit/map.json index e750d9d65..c9ca661b4 100644 --- a/data/maps/MtEmber_Summit/map.json +++ b/data/maps/MtEmber_Summit/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MOLTRES", "x": 9, "y": 6, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_MOLTRES" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 10, "y": 12, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 9, "y": 12, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 8, "y": 11, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 8, "y": 10, @@ -87,7 +92,7 @@ "y": 15, "elevation": 0, "dest_map": "MAP_MT_EMBER_EXTERIOR", - "dest_warp_id": 4 + "dest_warp_id": "4" } ], "coord_events": [], diff --git a/data/maps/MtEmber_SummitPath_1F/map.json b/data/maps/MtEmber_SummitPath_1F/map.json index 2f577dc02..ecaef12c0 100644 --- a/data/maps/MtEmber_SummitPath_1F/map.json +++ b/data/maps/MtEmber_SummitPath_1F/map.json @@ -21,14 +21,14 @@ "y": 15, "elevation": 0, "dest_map": "MAP_MT_EMBER_EXTERIOR", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 11, "y": 1, "elevation": 0, "dest_map": "MAP_MT_EMBER_SUMMIT_PATH_2F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/MtEmber_SummitPath_2F/map.json b/data/maps/MtEmber_SummitPath_2F/map.json index 0cc16016d..6b6b5e92a 100644 --- a/data/maps/MtEmber_SummitPath_2F/map.json +++ b/data/maps/MtEmber_SummitPath_2F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 40, "y": 7, @@ -29,6 +30,7 @@ "flag": "FLAG_TEMP_12" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 33, "y": 5, @@ -42,6 +44,7 @@ "flag": "FLAG_TEMP_13" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 15, "y": 19, @@ -55,6 +58,7 @@ "flag": "FLAG_TEMP_14" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 13, "y": 23, @@ -68,6 +72,7 @@ "flag": "FLAG_TEMP_15" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 13, "y": 21, @@ -81,6 +86,7 @@ "flag": "FLAG_TEMP_16" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 7, "y": 38, @@ -94,6 +100,7 @@ "flag": "FLAG_TEMP_17" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 9, "y": 35, @@ -107,6 +114,7 @@ "flag": "FLAG_TEMP_18" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 7, "y": 34, @@ -120,6 +128,7 @@ "flag": "FLAG_TEMP_19" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 15, "y": 26, @@ -139,14 +148,14 @@ "y": 39, "elevation": 0, "dest_map": "MAP_MT_EMBER_SUMMIT_PATH_1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 39, "y": 6, "elevation": 3, "dest_map": "MAP_MT_EMBER_SUMMIT_PATH_3F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/MtEmber_SummitPath_3F/map.json b/data/maps/MtEmber_SummitPath_3F/map.json index 19dd584bc..e8571acce 100644 --- a/data/maps/MtEmber_SummitPath_3F/map.json +++ b/data/maps/MtEmber_SummitPath_3F/map.json @@ -21,14 +21,14 @@ "y": 4, "elevation": 0, "dest_map": "MAP_MT_EMBER_SUMMIT_PATH_2F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 11, "y": 8, "elevation": 0, "dest_map": "MAP_MT_EMBER_EXTERIOR", - "dest_warp_id": 3 + "dest_warp_id": "3" } ], "coord_events": [], diff --git a/data/maps/MtMoon_1F/map.json b/data/maps/MtMoon_1F/map.json index 4e91905de..500184fa2 100644 --- a/data/maps/MtMoon_1F/map.json +++ b/data/maps/MtMoon_1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LASS", "x": 20, "y": 26, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BUG_CATCHER", "x": 36, "y": 30, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 30, "y": 35, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LASS", "x": 33, "y": 4, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BUG_CATCHER", "x": 7, "y": 26, @@ -81,6 +86,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 13, "y": 17, @@ -94,6 +100,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_HIKER", "x": 7, "y": 10, @@ -103,10 +110,11 @@ "movement_range_y": 2, "trainer_type": "TRAINER_TYPE_NORMAL", "trainer_sight_or_berry_tree_id": "1", - "script": "MtMoon_1F_EventScript_Macros", + "script": "MtMoon_1F_EventScript_Marcos", "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 2, "y": 22, @@ -120,6 +128,7 @@ "flag": "FLAG_HIDE_MT_MOON_1F_PARALYZE_HEAL" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 11, "y": 35, @@ -133,6 +142,7 @@ "flag": "FLAG_HIDE_MT_MOON_1F_TM09" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 26, "y": 32, @@ -146,6 +156,7 @@ "flag": "FLAG_HIDE_MT_MOON_1F_POTION" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 42, "y": 35, @@ -159,6 +170,7 @@ "flag": "FLAG_HIDE_MT_MOON_1F_RARE_CANDY" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 44, "y": 21, @@ -172,6 +184,7 @@ "flag": "FLAG_HIDE_MT_MOON_1F_ESCAPE_ROPE" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 3, "y": 2, @@ -185,6 +198,7 @@ "flag": "FLAG_HIDE_MT_MOON_1F_MOON_STONE" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", "x": 42, "y": 7, @@ -204,28 +218,28 @@ "y": 6, "elevation": 3, "dest_map": "MAP_MT_MOON_B1F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 19, "y": 14, "elevation": 3, "dest_map": "MAP_MT_MOON_B1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 31, "y": 16, "elevation": 3, "dest_map": "MAP_MT_MOON_B1F", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 18, "y": 37, "elevation": 3, "dest_map": "MAP_ROUTE4", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/MtMoon_1F/scripts.inc b/data/maps/MtMoon_1F/scripts.inc index f7bb66db1..5aefc39b1 100644 --- a/data/maps/MtMoon_1F/scripts.inc +++ b/data/maps/MtMoon_1F/scripts.inc @@ -10,7 +10,7 @@ MtMoon_1F_EventScript_ZubatSign:: msgbox MtMoon_1F_Text_ZubatIsABloodsucker, MSGBOX_SIGN end -MtMoon_1F_EventScript_Macros:: +MtMoon_1F_EventScript_Marcos:: trainerbattle_single TRAINER_HIKER_MARCOS, MtMoon_1F_Text_MarcosIntro, MtMoon_1F_Text_MarcosDefeat msgbox MtMoon_1F_Text_MarcosPostBattle, MSGBOX_AUTOCLOSE end diff --git a/data/maps/MtMoon_B1F/map.json b/data/maps/MtMoon_B1F/map.json index 68723ddee..96472b9c2 100644 --- a/data/maps/MtMoon_B1F/map.json +++ b/data/maps/MtMoon_B1F/map.json @@ -21,56 +21,56 @@ "y": 3, "elevation": 3, "dest_map": "MAP_MT_MOON_1F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 25, "y": 4, "elevation": 3, "dest_map": "MAP_MT_MOON_1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 43, "y": 21, "elevation": 3, "dest_map": "MAP_MT_MOON_1F", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 22, "y": 18, "elevation": 3, "dest_map": "MAP_MT_MOON_B2F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 17, "y": 5, "elevation": 3, "dest_map": "MAP_MT_MOON_B2F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 26, "y": 36, "elevation": 3, "dest_map": "MAP_MT_MOON_B2F", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 39, "y": 4, "elevation": 3, "dest_map": "MAP_MT_MOON_B2F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 45, "y": 4, "elevation": 3, "dest_map": "MAP_ROUTE4", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], @@ -81,7 +81,7 @@ "y": 2, "elevation": 0, "item": "ITEM_TINY_MUSHROOM", - "flag": "HIDDEN_ITEM_MT_MOON_B1F_TINY_MUSHROOM", + "flag": "FLAG_HIDDEN_ITEM_MT_MOON_B1F_TINY_MUSHROOM", "quantity": 1, "underfoot": false }, @@ -91,7 +91,7 @@ "y": 2, "elevation": 0, "item": "ITEM_TINY_MUSHROOM", - "flag": "HIDDEN_ITEM_MT_MOON_B1F_TINY_MUSHROOM_2", + "flag": "FLAG_HIDDEN_ITEM_MT_MOON_B1F_TINY_MUSHROOM_2", "quantity": 1, "underfoot": false }, @@ -101,7 +101,7 @@ "y": 34, "elevation": 0, "item": "ITEM_TINY_MUSHROOM", - "flag": "HIDDEN_ITEM_MT_MOON_B1F_TINY_MUSHROOM_3", + "flag": "FLAG_HIDDEN_ITEM_MT_MOON_B1F_TINY_MUSHROOM_3", "quantity": 1, "underfoot": false }, @@ -111,7 +111,7 @@ "y": 35, "elevation": 0, "item": "ITEM_BIG_MUSHROOM", - "flag": "HIDDEN_ITEM_MT_MOON_B1F_BIG_MUSHROOM", + "flag": "FLAG_HIDDEN_ITEM_MT_MOON_B1F_BIG_MUSHROOM", "quantity": 1, "underfoot": false }, @@ -121,7 +121,7 @@ "y": 12, "elevation": 0, "item": "ITEM_BIG_MUSHROOM", - "flag": "HIDDEN_ITEM_MT_MOON_B1F_BIG_MUSHROOM_2", + "flag": "FLAG_HIDDEN_ITEM_MT_MOON_B1F_BIG_MUSHROOM_2", "quantity": 1, "underfoot": false }, @@ -131,7 +131,7 @@ "y": 34, "elevation": 0, "item": "ITEM_BIG_MUSHROOM", - "flag": "HIDDEN_ITEM_MT_MOON_B1F_BIG_MUSHROOM_3", + "flag": "FLAG_HIDDEN_ITEM_MT_MOON_B1F_BIG_MUSHROOM_3", "quantity": 1, "underfoot": false } diff --git a/data/maps/MtMoon_B2F/map.json b/data/maps/MtMoon_B2F/map.json index 358d791b8..259a6ed50 100644 --- a/data/maps/MtMoon_B2F/map.json +++ b/data/maps/MtMoon_B2F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_FOSSIL", "x": 13, "y": 7, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_DOME_FOSSIL" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_FOSSIL", "x": 14, "y": 7, @@ -42,6 +44,7 @@ "flag": "FLAG_HIDE_HELIX_FOSSIL" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 13, "y": 11, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 37, "y": 21, @@ -68,6 +72,7 @@ "flag": "FLAG_HIDE_MISC_KANTO_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 12, "y": 20, @@ -81,6 +86,7 @@ "flag": "FLAG_HIDE_MISC_KANTO_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 35, "y": 12, @@ -94,6 +100,7 @@ "flag": "FLAG_HIDE_MISC_KANTO_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 18, "y": 27, @@ -107,6 +114,7 @@ "flag": "FLAG_HIDE_MISC_KANTO_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 30, "y": 26, @@ -120,6 +128,7 @@ "flag": "FLAG_HIDE_MT_MOON_B2F_STAR_PIECE" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 35, "y": 5, @@ -133,6 +142,7 @@ "flag": "FLAG_HIDE_MT_MOON_B2F_TM46" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 24, "y": 6, @@ -146,6 +156,7 @@ "flag": "FLAG_HIDE_MT_MOON_B2F_REVIVE" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 3, "y": 11, @@ -165,28 +176,28 @@ "y": 21, "elevation": 3, "dest_map": "MAP_MT_MOON_B1F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 31, "y": 11, "elevation": 3, "dest_map": "MAP_MT_MOON_B1F", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 17, "y": 31, "elevation": 3, "dest_map": "MAP_MT_MOON_B1F", - "dest_warp_id": 5 + "dest_warp_id": "5" }, { "x": 5, "y": 10, "elevation": 3, "dest_map": "MAP_MT_MOON_B1F", - "dest_warp_id": 6 + "dest_warp_id": "6" } ], "coord_events": [ @@ -207,7 +218,7 @@ "y": 16, "elevation": 3, "item": "ITEM_MOON_STONE", - "flag": "HIDDEN_ITEM_MT_MOON_B2F_MOON_STONE", + "flag": "FLAG_HIDDEN_ITEM_MT_MOON_B2F_MOON_STONE", "quantity": 1, "underfoot": false }, @@ -217,7 +228,7 @@ "y": 11, "elevation": 3, "item": "ITEM_ETHER", - "flag": "HIDDEN_ITEM_MT_MOON_B2F_ETHER", + "flag": "FLAG_HIDDEN_ITEM_MT_MOON_B2F_ETHER", "quantity": 1, "underfoot": false } diff --git a/data/maps/MtMoon_B2F/scripts.inc b/data/maps/MtMoon_B2F/scripts.inc index 32213a5b4..d69d69d96 100644 --- a/data/maps/MtMoon_B2F/scripts.inc +++ b/data/maps/MtMoon_B2F/scripts.inc @@ -17,7 +17,7 @@ MtMoon_B2F_EventScript_ShowFossils:: MtMoon_B2F_EventScript_MiguelTrigger:: lockall - applymovement LOCALID_MIGUEL, Movement_WalkInPlaceFasterRight + applymovement LOCALID_MIGUEL, Common_Movement_WalkInPlaceFasterRight waitmovement 0 call MtMoon_B2F_EventScript_BattleMiguel releaseall diff --git a/data/maps/NavelRock_1F/map.json b/data/maps/NavelRock_1F/map.json index 1cee54ae8..59660ad6c 100644 --- a/data/maps/NavelRock_1F/map.json +++ b/data/maps/NavelRock_1F/map.json @@ -21,14 +21,14 @@ "y": 4, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_B1F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 8, "y": 23, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_EXTERIOR", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/NavelRock_B1F/map.json b/data/maps/NavelRock_B1F/map.json index 8ebd55017..2485fe670 100644 --- a/data/maps/NavelRock_B1F/map.json +++ b/data/maps/NavelRock_B1F/map.json @@ -21,14 +21,14 @@ "y": 2, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_1F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 11, "y": 5, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_FORK", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/NavelRock_Base/map.json b/data/maps/NavelRock_Base/map.json index 6350185f9..faa3eef81 100644 --- a/data/maps/NavelRock_Base/map.json +++ b/data/maps/NavelRock_Base/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LUGIA", "x": 10, "y": 15, @@ -35,7 +36,7 @@ "y": 20, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B11F", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/NavelRock_BasePath_B10F/map.json b/data/maps/NavelRock_BasePath_B10F/map.json index c579af031..a9a1f7497 100644 --- a/data/maps/NavelRock_BasePath_B10F/map.json +++ b/data/maps/NavelRock_BasePath_B10F/map.json @@ -21,14 +21,14 @@ "y": 4, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B9F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 2, "y": 2, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B11F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/NavelRock_BasePath_B11F/map.json b/data/maps/NavelRock_BasePath_B11F/map.json index 579b13577..a16259cf4 100644 --- a/data/maps/NavelRock_BasePath_B11F/map.json +++ b/data/maps/NavelRock_BasePath_B11F/map.json @@ -21,14 +21,14 @@ "y": 2, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B10F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 4, "y": 4, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_BASE", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/NavelRock_BasePath_B1F/map.json b/data/maps/NavelRock_BasePath_B1F/map.json index f0289d880..5e88bf657 100644 --- a/data/maps/NavelRock_BasePath_B1F/map.json +++ b/data/maps/NavelRock_BasePath_B1F/map.json @@ -21,14 +21,14 @@ "y": 2, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_FORK", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 4, "y": 4, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B2F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/NavelRock_BasePath_B2F/map.json b/data/maps/NavelRock_BasePath_B2F/map.json index 5cd175db3..9c871d0d7 100644 --- a/data/maps/NavelRock_BasePath_B2F/map.json +++ b/data/maps/NavelRock_BasePath_B2F/map.json @@ -21,14 +21,14 @@ "y": 4, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 2, "y": 2, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B3F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/NavelRock_BasePath_B3F/map.json b/data/maps/NavelRock_BasePath_B3F/map.json index fdbe8f4e3..8db0435a4 100644 --- a/data/maps/NavelRock_BasePath_B3F/map.json +++ b/data/maps/NavelRock_BasePath_B3F/map.json @@ -21,14 +21,14 @@ "y": 2, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B2F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 4, "y": 4, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B4F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/NavelRock_BasePath_B4F/map.json b/data/maps/NavelRock_BasePath_B4F/map.json index e90cabc93..a8ad85aa9 100644 --- a/data/maps/NavelRock_BasePath_B4F/map.json +++ b/data/maps/NavelRock_BasePath_B4F/map.json @@ -21,14 +21,14 @@ "y": 4, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B3F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 2, "y": 2, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B5F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/NavelRock_BasePath_B5F/map.json b/data/maps/NavelRock_BasePath_B5F/map.json index 61737e2e6..a5f95b8ba 100644 --- a/data/maps/NavelRock_BasePath_B5F/map.json +++ b/data/maps/NavelRock_BasePath_B5F/map.json @@ -21,14 +21,14 @@ "y": 2, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B4F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 4, "y": 4, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B6F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/NavelRock_BasePath_B6F/map.json b/data/maps/NavelRock_BasePath_B6F/map.json index 54801807e..2dba61b3e 100644 --- a/data/maps/NavelRock_BasePath_B6F/map.json +++ b/data/maps/NavelRock_BasePath_B6F/map.json @@ -21,14 +21,14 @@ "y": 4, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B5F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 2, "y": 2, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B7F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/NavelRock_BasePath_B7F/map.json b/data/maps/NavelRock_BasePath_B7F/map.json index b64c7ae1c..ac3ad1a6d 100644 --- a/data/maps/NavelRock_BasePath_B7F/map.json +++ b/data/maps/NavelRock_BasePath_B7F/map.json @@ -21,14 +21,14 @@ "y": 2, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B6F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 4, "y": 4, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B8F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/NavelRock_BasePath_B8F/map.json b/data/maps/NavelRock_BasePath_B8F/map.json index 5a50563b7..5e74b9780 100644 --- a/data/maps/NavelRock_BasePath_B8F/map.json +++ b/data/maps/NavelRock_BasePath_B8F/map.json @@ -21,14 +21,14 @@ "y": 4, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B7F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 2, "y": 2, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B9F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/NavelRock_BasePath_B9F/map.json b/data/maps/NavelRock_BasePath_B9F/map.json index a14c35048..1d4cf4847 100644 --- a/data/maps/NavelRock_BasePath_B9F/map.json +++ b/data/maps/NavelRock_BasePath_B9F/map.json @@ -21,14 +21,14 @@ "y": 2, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B8F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 4, "y": 4, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B10F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/NavelRock_Exterior/map.json b/data/maps/NavelRock_Exterior/map.json index e7578b073..e8d2476bc 100644 --- a/data/maps/NavelRock_Exterior/map.json +++ b/data/maps/NavelRock_Exterior/map.json @@ -21,14 +21,14 @@ "y": 8, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 9, "y": 16, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_HARBOR", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/NavelRock_Fork/map.json b/data/maps/NavelRock_Fork/map.json index 25e7ecf40..e20f46526 100644 --- a/data/maps/NavelRock_Fork/map.json +++ b/data/maps/NavelRock_Fork/map.json @@ -21,21 +21,21 @@ "y": 95, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_B1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 3, "y": 1, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_SUMMIT_PATH_2F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 26, "y": 1, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_BASE_PATH_B1F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/NavelRock_Harbor/map.json b/data/maps/NavelRock_Harbor/map.json index a94603087..f53a46a84 100644 --- a/data/maps/NavelRock_Harbor/map.json +++ b/data/maps/NavelRock_Harbor/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SEAGALLOP", "x": 8, "y": 9, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SAILOR", "x": 8, "y": 6, @@ -48,7 +50,7 @@ "y": 2, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_EXTERIOR", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/NavelRock_Summit/map.json b/data/maps/NavelRock_Summit/map.json index 2718158b2..64eb420c5 100644 --- a/data/maps/NavelRock_Summit/map.json +++ b/data/maps/NavelRock_Summit/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_HO_OH", "x": 9, "y": 6, @@ -35,7 +36,7 @@ "y": 18, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_SUMMIT_PATH_5F", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [ @@ -56,7 +57,7 @@ "y": 11, "elevation": 3, "item": "ITEM_SACRED_ASH", - "flag": "HIDDEN_ITEM_NAVEL_ROCK_SUMMIT_SACRED_ASH", + "flag": "FLAG_HIDDEN_ITEM_NAVEL_ROCK_SUMMIT_SACRED_ASH", "quantity": 1, "underfoot": true } diff --git a/data/maps/NavelRock_SummitPath_2F/map.json b/data/maps/NavelRock_SummitPath_2F/map.json index 9a61e4b79..06f005826 100644 --- a/data/maps/NavelRock_SummitPath_2F/map.json +++ b/data/maps/NavelRock_SummitPath_2F/map.json @@ -21,14 +21,14 @@ "y": 4, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_FORK", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 2, "y": 2, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_SUMMIT_PATH_3F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/NavelRock_SummitPath_3F/map.json b/data/maps/NavelRock_SummitPath_3F/map.json index e61f23fb8..30a79db74 100644 --- a/data/maps/NavelRock_SummitPath_3F/map.json +++ b/data/maps/NavelRock_SummitPath_3F/map.json @@ -21,14 +21,14 @@ "y": 2, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_SUMMIT_PATH_2F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 4, "y": 4, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_SUMMIT_PATH_4F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/NavelRock_SummitPath_4F/map.json b/data/maps/NavelRock_SummitPath_4F/map.json index 3d55fb5d7..371d04ef3 100644 --- a/data/maps/NavelRock_SummitPath_4F/map.json +++ b/data/maps/NavelRock_SummitPath_4F/map.json @@ -21,14 +21,14 @@ "y": 4, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_SUMMIT_PATH_3F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 2, "y": 2, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_SUMMIT_PATH_5F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/NavelRock_SummitPath_5F/map.json b/data/maps/NavelRock_SummitPath_5F/map.json index 0182b2eec..3256004c8 100644 --- a/data/maps/NavelRock_SummitPath_5F/map.json +++ b/data/maps/NavelRock_SummitPath_5F/map.json @@ -21,14 +21,14 @@ "y": 2, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_SUMMIT_PATH_4F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 4, "y": 4, "elevation": 3, "dest_map": "MAP_NAVEL_ROCK_SUMMIT", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/OneIsland/map.json b/data/maps/OneIsland/map.json index e49ef37ef..f8ac5c92d 100644 --- a/data/maps/OneIsland/map.json +++ b/data/maps/OneIsland/map.json @@ -27,6 +27,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BILL", "x": 12, "y": 16, @@ -40,6 +41,7 @@ "flag": "FLAG_HIDE_ONE_ISLAND_BILL" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", "x": 16, "y": 12, @@ -53,6 +55,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", "x": 13, "y": 9, @@ -72,28 +75,28 @@ "y": 5, "elevation": 0, "dest_map": "MAP_ONE_ISLAND_POKEMON_CENTER_1F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 19, "y": 9, "elevation": 0, "dest_map": "MAP_ONE_ISLAND_HOUSE1", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 8, "y": 11, "elevation": 0, "dest_map": "MAP_ONE_ISLAND_HOUSE2", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 12, "y": 18, "elevation": 3, "dest_map": "MAP_ONE_ISLAND_HARBOR", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/OneIsland_Harbor/map.json b/data/maps/OneIsland_Harbor/map.json index 0ca6c7b3f..d26171247 100644 --- a/data/maps/OneIsland_Harbor/map.json +++ b/data/maps/OneIsland_Harbor/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SEAGALLOP", "x": 8, "y": 9, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SAILOR", "x": 8, "y": 6, @@ -48,7 +50,7 @@ "y": 2, "elevation": 3, "dest_map": "MAP_ONE_ISLAND", - "dest_warp_id": 3 + "dest_warp_id": "3" } ], "coord_events": [], diff --git a/data/maps/OneIsland_House1/map.json b/data/maps/OneIsland_House1/map.json index 5823a4c3c..33677be61 100644 --- a/data/maps/OneIsland_House1/map.json +++ b/data/maps/OneIsland_House1/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", "x": 4, "y": 5, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_WOMAN", "x": 7, "y": 5, @@ -48,7 +50,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_ONE_ISLAND", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/OneIsland_House2/map.json b/data/maps/OneIsland_House2/map.json index 3f51fb461..07bc21d68 100644 --- a/data/maps/OneIsland_House2/map.json +++ b/data/maps/OneIsland_House2/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LASS", "x": 9, "y": 4, @@ -35,7 +36,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_ONE_ISLAND", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [], diff --git a/data/maps/OneIsland_KindleRoad/map.json b/data/maps/OneIsland_KindleRoad/map.json index 963d70acc..b23c862a1 100644 --- a/data/maps/OneIsland_KindleRoad/map.json +++ b/data/maps/OneIsland_KindleRoad/map.json @@ -22,6 +22,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SWIMMER_F_WATER", "x": 11, "y": 32, @@ -35,6 +36,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SWIMMER_F_LAND", "x": 17, "y": 132, @@ -48,6 +50,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SWIMMER_M_WATER", "x": 7, "y": 39, @@ -61,6 +64,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SWIMMER_M_LAND", "x": 19, "y": 79, @@ -74,6 +78,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_FISHER", "x": 15, "y": 25, @@ -87,6 +92,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BATTLE_GIRL", "x": 9, "y": 53, @@ -100,6 +106,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BATTLE_GIRL", "x": 18, "y": 105, @@ -113,6 +120,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BLACKBELT", "x": 16, "y": 64, @@ -126,6 +134,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BLACKBELT", "x": 11, "y": 64, @@ -139,6 +148,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CAMPER", "x": 11, "y": 89, @@ -152,6 +162,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PICNICKER", "x": 9, "y": 108, @@ -165,6 +176,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BLACKBELT", "x": 8, "y": 68, @@ -178,6 +190,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BATTLE_GIRL", "x": 9, "y": 68, @@ -191,6 +204,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 8, "y": 104, @@ -204,6 +218,7 @@ "flag": "FLAG_TEMP_13" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 11, "y": 95, @@ -217,6 +232,7 @@ "flag": "FLAG_TEMP_15" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 12, "y": 96, @@ -230,6 +246,7 @@ "flag": "FLAG_TEMP_16" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 10, "y": 95, @@ -243,6 +260,7 @@ "flag": "FLAG_TEMP_17" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 9, "y": 105, @@ -256,6 +274,7 @@ "flag": "FLAG_TEMP_18" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 15, "y": 75, @@ -269,6 +288,7 @@ "flag": "FLAG_TEMP_19" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 9, "y": 84, @@ -282,6 +302,7 @@ "flag": "FLAG_TEMP_1A" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 15, "y": 74, @@ -295,6 +316,7 @@ "flag": "FLAG_TEMP_1B" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 15, "y": 73, @@ -308,6 +330,7 @@ "flag": "FLAG_TEMP_1C" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 18, "y": 111, @@ -321,6 +344,7 @@ "flag": "FLAG_TEMP_1D" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 10, "y": 86, @@ -334,6 +358,7 @@ "flag": "FLAG_TEMP_1E" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 9, "y": 110, @@ -347,6 +372,7 @@ "flag": "FLAG_TEMP_1F" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 18, "y": 112, @@ -360,6 +386,7 @@ "flag": "FLAG_TEMP_11" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 15, "y": 70, @@ -373,6 +400,7 @@ "flag": "FLAG_HIDE_ONE_ISLAND_KINDLE_ROAD_ETHER" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 17, "y": 103, @@ -386,6 +414,7 @@ "flag": "FLAG_HIDE_ONE_ISLAND_KINDLE_ROAD_MAX_REPEL" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 18, "y": 114, @@ -405,21 +434,21 @@ "y": 6, "elevation": 3, "dest_map": "MAP_MT_EMBER_EXTERIOR", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 12, "y": 6, "elevation": 3, "dest_map": "MAP_MT_EMBER_EXTERIOR", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 15, "y": 58, "elevation": 3, "dest_map": "MAP_ONE_ISLAND_KINDLE_ROAD_EMBER_SPA", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/OneIsland_KindleRoad_EmberSpa/map.json b/data/maps/OneIsland_KindleRoad_EmberSpa/map.json index f31b4b26f..ea0c5a2e1 100644 --- a/data/maps/OneIsland_KindleRoad_EmberSpa/map.json +++ b/data/maps/OneIsland_KindleRoad_EmberSpa/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", "x": 11, "y": 13, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", "x": 15, "y": 11, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BLACKBELT", "x": 6, "y": 8, @@ -55,6 +58,7 @@ "flag": "FLAG_HIDE_POSTGAME_GOSSIPERS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_WOMAN", "x": 20, "y": 7, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", "x": 10, "y": 5, @@ -81,6 +86,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", "x": 11, "y": 20, @@ -100,7 +106,7 @@ "y": 36, "elevation": 3, "dest_map": "MAP_ONE_ISLAND_KINDLE_ROAD", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [ diff --git a/data/maps/OneIsland_PokemonCenter_1F/map.json b/data/maps/OneIsland_PokemonCenter_1F/map.json index 1223e5a2d..98c9bb585 100644 --- a/data/maps/OneIsland_PokemonCenter_1F/map.json +++ b/data/maps/OneIsland_PokemonCenter_1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_NURSE", "x": 5, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BILL", "x": 14, "y": 6, @@ -42,6 +44,7 @@ "flag": "FLAG_HIDE_ONE_ISLAND_POKECENTER_BILL" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CELIO", "x": 15, "y": 6, @@ -55,6 +58,7 @@ "flag": "FLAG_HIDE_ONE_ISLAND_POKECENTER_CELIO" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LITTLE_BOY", "x": 6, "y": 8, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_HIKER", "x": 3, "y": 7, @@ -81,6 +86,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BATTLE_GIRL", "x": 7, "y": 4, @@ -100,14 +106,14 @@ "y": 9, "elevation": 3, "dest_map": "MAP_ONE_ISLAND", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 1, "y": 5, "elevation": 4, "dest_map": "MAP_ONE_ISLAND_POKEMON_CENTER_2F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [ diff --git a/data/maps/OneIsland_PokemonCenter_1F/scripts.inc b/data/maps/OneIsland_PokemonCenter_1F/scripts.inc index 05c082315..bb05cbec4 100644 --- a/data/maps/OneIsland_PokemonCenter_1F/scripts.inc +++ b/data/maps/OneIsland_PokemonCenter_1F/scripts.inc @@ -63,46 +63,46 @@ OneIsland_PokemonCenter_1F_EventScript_MeetCelioScene:: applymovement LOCALID_BILL, OneIsland_PokemonCenter_1F_Movement_BillWalkToCelio waitmovement 0 msgbox OneIsland_PokemonCenter_1F_Text_BillHeyThereCelio - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterRight waitmovement 0 playse SE_PIN - applymovement LOCALID_CELIO, Movement_ExclamationMark + applymovement LOCALID_CELIO, Common_Movement_ExclamationMark waitmovement 0 - applymovement LOCALID_CELIO, Movement_WalkInPlaceFasterLeft + applymovement LOCALID_CELIO, Common_Movement_WalkInPlaceFasterLeft waitmovement 0 - applymovement LOCALID_CELIO, Movement_Delay48 + applymovement LOCALID_CELIO, Common_Movement_Delay48 waitmovement 0 msgbox OneIsland_PokemonCenter_1F_Text_CelioCantBelieveYouCameOut msgbox OneIsland_PokemonCenter_1F_Text_BillHowsYourResearchComing - applymovement LOCALID_BILL, Movement_WalkInPlaceFasterDown - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterUp + applymovement LOCALID_BILL, Common_Movement_WalkInPlaceFasterDown + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterUp waitmovement 0 msgbox OneIsland_PokemonCenter_1F_Text_ThisIsMyBuddyCelio - applymovement LOCALID_BILL, Movement_WalkInPlaceFasterRight + applymovement LOCALID_BILL, Common_Movement_WalkInPlaceFasterRight waitmovement 0 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterRight waitmovement 0 call_if_set FLAG_SYS_GAME_CLEAR, OneIsland_PokemonCenter_1F_EventScript_IntroducePlayerChamp call_if_unset FLAG_SYS_GAME_CLEAR, OneIsland_PokemonCenter_1F_EventScript_IntroducePlayerNotChamp - applymovement LOCALID_CELIO, Movement_WalkInPlaceFasterDown + applymovement LOCALID_CELIO, Common_Movement_WalkInPlaceFasterDown waitmovement 0 msgbox OneIsland_PokemonCenter_1F_Text_CelioThatsReallyImpressive msgbox OneIsland_PokemonCenter_1F_Text_BillBringMeUpToSpeed - applymovement LOCALID_CELIO, Movement_WalkInPlaceFasterLeft + applymovement LOCALID_CELIO, Common_Movement_WalkInPlaceFasterLeft waitmovement 0 msgbox OneIsland_PokemonCenter_1F_Text_CelioPCsCantLinkWithYours closemessage - applymovement LOCALID_BILL, Movement_WalkInPlaceFasterUp + applymovement LOCALID_BILL, Common_Movement_WalkInPlaceFasterUp waitmovement 0 msgbox OneIsland_PokemonCenter_1F_Text_BillLetMeHelpYou - applymovement LOCALID_BILL, Movement_WalkInPlaceFasterDown + applymovement LOCALID_BILL, Common_Movement_WalkInPlaceFasterDown waitmovement 0 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterUp + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterUp waitmovement 0 msgbox OneIsland_PokemonCenter_1F_Text_CanYouDeliverThisMeteoritePlayer msgreceiveditem OneIsland_PokemonCenter_1F_Text_AcceptedMeteoriteFromBill, ITEM_METEORITE, 1, MUS_OBTAIN_KEY_ITEM additem ITEM_METEORITE - applymovement LOCALID_CELIO, Movement_WalkInPlaceFasterDown + applymovement LOCALID_CELIO, Common_Movement_WalkInPlaceFasterDown waitmovement 0 msgbox OneIsland_PokemonCenter_1F_Text_CelioPleaseTakeThis giveitem_msg OneIsland_PokemonCenter_1F_Text_ObtainedTriPass, ITEM_TRI_PASS, 1, MUS_OBTAIN_KEY_ITEM @@ -112,9 +112,9 @@ OneIsland_PokemonCenter_1F_EventScript_MeetCelioScene:: setflag FLAG_SYS_SEVII_MAP_123 msgbox OneIsland_PokemonCenter_1F_Text_BillCatchYouLater closemessage - applymovement LOCALID_BILL, Movement_WalkInPlaceFasterUp + applymovement LOCALID_BILL, Common_Movement_WalkInPlaceFasterUp waitmovement 0 - applymovement LOCALID_CELIO, Movement_WalkInPlaceFasterUp + applymovement LOCALID_CELIO, Common_Movement_WalkInPlaceFasterUp waitmovement 0 setflag FLAG_SYS_PC_STORAGE_DISABLED setvar VAR_MAP_SCENE_ONE_ISLAND_POKEMON_CENTER_1F, 1 @@ -167,12 +167,12 @@ OneIsland_PokemonCenter_1F_Movement_BillWalkToCelio:: step_end @ Unused -Movement_170E8F:: +OneIsland_PokemonCenter_1F_Movement_WalkUp: walk_up step_end @ Unused -Movement_170E91:: +OneIsland_PokemonCenter_1F_Movement_StepAsideLeft:: walk_left walk_in_place_faster_right step_end @@ -192,7 +192,7 @@ OneIsland_PokemonCenter_1F_EventScript_Bill:: end OneIsland_PokemonCenter_1F_EventScript_BillGoTakeStroll:: - applymovement LOCALID_BILL, Movement_FacePlayer + applymovement LOCALID_BILL, Common_Movement_FacePlayer waitmovement 0 msgbox OneIsland_PokemonCenter_1F_Text_GotPCWorkingStrollAWhileMore release @@ -212,7 +212,7 @@ OneIsland_PokemonCenter_1F_EventScript_Celio:: goto_if_eq VAR_MAP_SCENE_ONE_ISLAND_POKEMON_CENTER_1F, 3, OneIsland_PokemonCenter_1F_EventScript_CelioPlayerMissingNationalDex msgbox OneIsland_PokemonCenter_1F_Text_SorryForBeingPoorHost closemessage - applymovement LOCALID_CELIO, Movement_FaceOriginalDirection + applymovement LOCALID_CELIO, Common_Movement_FaceOriginalDirection waitmovement 0 release end @@ -272,7 +272,7 @@ OneIsland_PokemonCenter_1F_EventScript_GiveCelioSapphire:: call OneIsland_PokemonCenter_1F_EventScript_SetNetworkMachineOn special DrawWholeMapView msgbox OneIsland_PokemonCenter_1F_Text_LinkedUpWithLanette - applymovement LOCALID_CELIO, Movement_FacePlayer + applymovement LOCALID_CELIO, Common_Movement_FacePlayer waitmovement 0 msgbox OneIsland_PokemonCenter_1F_Text_ManagedToLinkWithHoennThankYou special SetPostgameFlags @@ -304,7 +304,7 @@ OneIsland_PokemonCenter_1F_EventScript_GiveCelioRuby:: call OneIsland_PokemonCenter_1F_EventScript_SetRubyMetatile special DrawWholeMapView delay 30 - applymovement LOCALID_CELIO, Movement_FacePlayer + applymovement LOCALID_CELIO, Common_Movement_FacePlayer waitmovement 0 msgbox OneIsland_PokemonCenter_1F_Text_MayIAskOneMoreFavor, MSGBOX_YESNO goto_if_eq VAR_RESULT, NO, OneIsland_PokemonCenter_1F_EventScript_DeclineHelpCelio @@ -344,10 +344,10 @@ OneIsland_PokemonCenter_1F_EventScript_CelioWaitingForRuby:: OneIsland_PokemonCenter_1F_EventScript_CelioRequestRuby:: msgbox OneIsland_PokemonCenter_1F_Text_CelioCaughtMoreMonMaybeICanBeUseful - applymovement LOCALID_CELIO, Movement_WalkInPlaceFasterUp + applymovement LOCALID_CELIO, Common_Movement_WalkInPlaceFasterUp waitmovement 0 msgbox OneIsland_PokemonCenter_1F_Text_YoullBeTradingFromTrainersFarAway - applymovement LOCALID_CELIO, Movement_FacePlayer + applymovement LOCALID_CELIO, Common_Movement_FacePlayer waitmovement 0 msgbox OneIsland_PokemonCenter_1F_Text_NeedsSpecialGemstone setvar VAR_MAP_SCENE_MT_EMBER_EXTERIOR, 1 @@ -440,7 +440,7 @@ OneIsland_PokemonCenter_1F_EventScript_LeaveOneIslandTriggerBottom:: OneIsland_PokemonCenter_1F_EventScript_LeaveOneIslandScene:: textcolor NPC_TEXT_COLOR_MALE playse SE_PIN - applymovement LOCALID_BILL, Movement_ExclamationMark + applymovement LOCALID_BILL, Common_Movement_ExclamationMark waitmovement 0 msgbox OneIsland_PokemonCenter_1F_Text_BillOhHeyPlayer closemessage @@ -450,30 +450,30 @@ OneIsland_PokemonCenter_1F_EventScript_LeaveOneIslandScene:: call_if_eq VAR_TEMP_1, 4, OneIsland_PokemonCenter_1F_EventScript_PlayerWalkToBillBottom delay 10 msgbox OneIsland_PokemonCenter_1F_Text_BillWeGotItDone - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterDown + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterDown waitmovement 0 msgbox OneIsland_PokemonCenter_1F_Text_CelioJobWentQuick - applymovement LOCALID_BILL, Movement_WalkInPlaceFasterDown + applymovement LOCALID_BILL, Common_Movement_WalkInPlaceFasterDown waitmovement 0 - applymovement LOCALID_CELIO, Movement_WalkInPlaceFasterUp + applymovement LOCALID_CELIO, Common_Movement_WalkInPlaceFasterUp waitmovement 0 msgbox OneIsland_PokemonCenter_1F_Text_BillYouveLearnedALot msgbox OneIsland_PokemonCenter_1F_Text_CelioOhReallyEhehe closemessage - applymovement LOCALID_BILL, Movement_WalkInPlaceFasterLeft + applymovement LOCALID_BILL, Common_Movement_WalkInPlaceFasterLeft waitmovement 0 delay 10 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterRight waitmovement 0 delay 15 msgbox OneIsland_PokemonCenter_1F_Text_BillWeShouldHeadBackToKanto closemessage - applymovement LOCALID_BILL, Movement_WalkInPlaceFasterDown + applymovement LOCALID_BILL, Common_Movement_WalkInPlaceFasterDown waitmovement 0 delay 15 - applymovement LOCALID_CELIO, Movement_WalkInPlaceFasterLeft + applymovement LOCALID_CELIO, Common_Movement_WalkInPlaceFasterLeft waitmovement 0 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterDown + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterDown waitmovement 0 msgbox OneIsland_PokemonCenter_1F_Text_CelioPromiseIllShowYouAroundSometime closemessage @@ -535,7 +535,7 @@ OneIsland_PokemonCenter_1F_Movement_PlayerWalkToBillBottom:: step_end @ Unused -Movement_17131F:: +OneIsland_PokemonCenter_1F_Movement_DelayWalkInPlaceLeft:: delay_16 delay_16 delay_4 @@ -543,7 +543,7 @@ Movement_17131F:: step_end @ Unused -Movement_171324:: +OneIsland_PokemonCenter_1F_Movement_WalkInPlaceDown:: walk_in_place_fast_down step_end diff --git a/data/maps/OneIsland_PokemonCenter_2F/map.json b/data/maps/OneIsland_PokemonCenter_2F/map.json index f7fd1a1bb..62c92bff7 100644 --- a/data/maps/OneIsland_PokemonCenter_2F/map.json +++ b/data/maps/OneIsland_PokemonCenter_2F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 6, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 2, "y": 2, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 10, "y": 2, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MG_DELIVERYMAN", "x": 1, "y": 2, @@ -74,21 +78,21 @@ "y": 6, "elevation": 4, "dest_map": "MAP_ONE_ISLAND_POKEMON_CENTER_1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 5, "y": 1, "elevation": 0, "dest_map": "MAP_UNION_ROOM", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 9, "y": 1, "elevation": 0, "dest_map": "MAP_TRADE_CENTER", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/OneIsland_TreasureBeach/map.json b/data/maps/OneIsland_TreasureBeach/map.json index 1eaf448bc..040861ce5 100644 --- a/data/maps/OneIsland_TreasureBeach/map.json +++ b/data/maps/OneIsland_TreasureBeach/map.json @@ -22,6 +22,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SWIMMER_F_WATER", "x": 8, "y": 11, @@ -35,6 +36,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BOY", "x": 13, "y": 20, @@ -57,7 +59,7 @@ "y": 20, "elevation": 3, "item": "ITEM_STARDUST", - "flag": "HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_STARDUST", + "flag": "FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_STARDUST", "quantity": 1, "underfoot": false }, @@ -67,7 +69,7 @@ "y": 27, "elevation": 3, "item": "ITEM_STARDUST", - "flag": "HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_STARDUST_2", + "flag": "FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_STARDUST_2", "quantity": 1, "underfoot": false }, @@ -77,7 +79,7 @@ "y": 31, "elevation": 3, "item": "ITEM_PEARL", - "flag": "HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_PEARL", + "flag": "FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_PEARL", "quantity": 1, "underfoot": false }, @@ -87,7 +89,7 @@ "y": 34, "elevation": 3, "item": "ITEM_PEARL", - "flag": "HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_PEARL_2", + "flag": "FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_PEARL_2", "quantity": 1, "underfoot": false }, @@ -97,7 +99,7 @@ "y": 22, "elevation": 3, "item": "ITEM_ULTRA_BALL", - "flag": "HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_ULTRA_BALL", + "flag": "FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_ULTRA_BALL", "quantity": 1, "underfoot": false }, @@ -107,7 +109,7 @@ "y": 33, "elevation": 3, "item": "ITEM_ULTRA_BALL", - "flag": "HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_ULTRA_BALL_2", + "flag": "FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_ULTRA_BALL_2", "quantity": 1, "underfoot": false }, @@ -117,7 +119,7 @@ "y": 29, "elevation": 3, "item": "ITEM_STAR_PIECE", - "flag": "HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_STAR_PIECE", + "flag": "FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_STAR_PIECE", "quantity": 1, "underfoot": false }, @@ -127,7 +129,7 @@ "y": 27, "elevation": 3, "item": "ITEM_BIG_PEARL", - "flag": "HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_BIG_PEARL", + "flag": "FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_BIG_PEARL", "quantity": 1, "underfoot": false } diff --git a/data/maps/PalletTown/map.json b/data/maps/PalletTown/map.json index 9296719e0..355411bc1 100644 --- a/data/maps/PalletTown/map.json +++ b/data/maps/PalletTown/map.json @@ -27,6 +27,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_1", "x": 3, "y": 10, @@ -40,6 +41,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_FAT_MAN", "x": 13, "y": 17, @@ -53,6 +55,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PROF_OAK", "x": 10, "y": 8, @@ -72,21 +75,21 @@ "y": 7, "elevation": 0, "dest_map": "MAP_PALLET_TOWN_PLAYERS_HOUSE_1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 15, "y": 7, "elevation": 0, "dest_map": "MAP_PALLET_TOWN_RIVALS_HOUSE", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 16, "y": 13, "elevation": 0, "dest_map": "MAP_PALLET_TOWN_PROFESSOR_OAKS_LAB", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [ diff --git a/data/maps/PalletTown/scripts.inc b/data/maps/PalletTown/scripts.inc index 00202f054..95f757e71 100644 --- a/data/maps/PalletTown/scripts.inc +++ b/data/maps/PalletTown/scripts.inc @@ -190,10 +190,10 @@ PalletTown_EventScript_OakTrigger:: waitmessage delay 85 closemessage - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterDown + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterDown waitmovement 0 playse SE_PIN - applymovement OBJ_EVENT_ID_PLAYER, Movement_ExclamationMark + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_ExclamationMark waitmovement 0 delay 30 addobject LOCALID_PROF_OAK @@ -332,12 +332,12 @@ PalletTown_EventScript_SignLady:: goto_if_eq SIGN_LADY_READY, TRUE, PalletTown_EventScript_SignLadyStartShowSign goto_if_set FLAG_TEMP_2, PalletTown_EventScript_SignLadyGoReadSign msgbox PalletTown_Text_HmmIsThatRight - applymovement LOCALID_SIGN_LADY, Movement_FacePlayer + applymovement LOCALID_SIGN_LADY, Common_Movement_FacePlayer waitmovement 0 playse SE_PIN - applymovement LOCALID_SIGN_LADY, Movement_ExclamationMark + applymovement LOCALID_SIGN_LADY, Common_Movement_ExclamationMark waitmovement 0 - applymovement LOCALID_SIGN_LADY, Movement_Delay48 + applymovement LOCALID_SIGN_LADY, Common_Movement_Delay48 waitmovement 0 msgbox PalletTown_Text_OhLookLook closemessage @@ -359,21 +359,21 @@ PalletTown_EventScript_SignLadyMoveOutOfWayLeft:: return PalletTown_EventScript_SignLadyDone:: - applymovement LOCALID_SIGN_LADY, Movement_FacePlayer + applymovement LOCALID_SIGN_LADY, Common_Movement_FacePlayer waitmovement 0 msgbox PalletTown_Text_RaisingMonsToo release end PalletTown_EventScript_SignLadyGoReadSign:: - applymovement LOCALID_SIGN_LADY, Movement_FacePlayer + applymovement LOCALID_SIGN_LADY, Common_Movement_FacePlayer waitmovement 0 msgbox PalletTown_Text_ReadItReadIt release end PalletTown_EventScript_SignLadyJustShowedSign:: - applymovement LOCALID_SIGN_LADY, Movement_FacePlayer + applymovement LOCALID_SIGN_LADY, Common_Movement_FacePlayer waitmovement 0 msgbox PalletTown_Text_SignsAreUsefulArentThey release @@ -421,8 +421,8 @@ PalletTown_EventScript_TrainerTips:: PalletTown_EventScript_SignLadyTrigger:: lockall - applymovement LOCALID_SIGN_LADY, Movement_WalkInPlaceFasterRight - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterLeft + applymovement LOCALID_SIGN_LADY, Common_Movement_WalkInPlaceFasterRight + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterLeft waitmovement 0 call PalletTown_EventScript_SignLadyShowSign releaseall @@ -445,7 +445,7 @@ PalletTown_EventScript_SignLadyShowSign:: return PalletTown_EventScript_SignLadyStartShowSign:: - applymovement LOCALID_SIGN_LADY, Movement_FacePlayer + applymovement LOCALID_SIGN_LADY, Common_Movement_FacePlayer waitmovement 0 call PalletTown_EventScript_SignLadyShowSign release diff --git a/data/maps/PalletTown_PlayersHouse_1F/map.json b/data/maps/PalletTown_PlayersHouse_1F/map.json index f40f63125..a03192be5 100644 --- a/data/maps/PalletTown_PlayersHouse_1F/map.json +++ b/data/maps/PalletTown_PlayersHouse_1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MOM", "x": 8, "y": 4, @@ -35,28 +36,28 @@ "y": 8, "elevation": 3, "dest_map": "MAP_PALLET_TOWN", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 4, "y": 8, "elevation": 3, "dest_map": "MAP_PALLET_TOWN", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 10, "y": 2, "elevation": 3, "dest_map": "MAP_PALLET_TOWN_PLAYERS_HOUSE_2F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 3, "y": 9, "elevation": 0, "dest_map": "MAP_PALLET_TOWN", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/PalletTown_PlayersHouse_1F/scripts.inc b/data/maps/PalletTown_PlayersHouse_1F/scripts.inc index 01028e6fb..a5a7b35bb 100644 --- a/data/maps/PalletTown_PlayersHouse_1F/scripts.inc +++ b/data/maps/PalletTown_PlayersHouse_1F/scripts.inc @@ -11,7 +11,7 @@ PalletTown_PlayersHouse_1F_EventScript_Mom:: call_if_eq VAR_RESULT, MALE, PalletTown_PlayersHouse_1F_EventScript_MomOakLookingForYouMale call_if_eq VAR_RESULT, FEMALE, PalletTown_PlayersHouse_1F_EventScript_MomOakLookingForYouFemale closemessage - applymovement LOCALID_MOM, Movement_FaceOriginalDirection + applymovement LOCALID_MOM, Common_Movement_FaceOriginalDirection waitmovement 0 release end diff --git a/data/maps/PalletTown_PlayersHouse_2F/map.json b/data/maps/PalletTown_PlayersHouse_2F/map.json index 9d38997a1..05337daa4 100644 --- a/data/maps/PalletTown_PlayersHouse_2F/map.json +++ b/data/maps/PalletTown_PlayersHouse_2F/map.json @@ -21,7 +21,7 @@ "y": 2, "elevation": 3, "dest_map": "MAP_PALLET_TOWN_PLAYERS_HOUSE_1F", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [], diff --git a/data/maps/PalletTown_ProfessorOaksLab/map.json b/data/maps/PalletTown_ProfessorOaksLab/map.json index 4ba6d636b..ddbc3e3e2 100644 --- a/data/maps/PalletTown_ProfessorOaksLab/map.json +++ b/data/maps/PalletTown_ProfessorOaksLab/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 3, "y": 11, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WORKER_F", "x": 2, "y": 10, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 11, "y": 10, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PROF_OAK", "x": 6, "y": 3, @@ -68,6 +72,7 @@ "flag": "FLAG_HIDE_OAK_IN_HIS_LAB" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 8, "y": 4, @@ -81,6 +86,7 @@ "flag": "FLAG_HIDE_BULBASAUR_BALL" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 9, "y": 4, @@ -94,6 +100,7 @@ "flag": "FLAG_HIDE_SQUIRTLE_BALL" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 10, "y": 4, @@ -107,6 +114,7 @@ "flag": "FLAG_HIDE_CHARMANDER_BALL" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BLUE", "x": 5, "y": 4, @@ -120,6 +128,7 @@ "flag": "FLAG_HIDE_RIVAL_IN_LAB" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_POKEDEX", "x": 4, "y": 1, @@ -133,6 +142,7 @@ "flag": "FLAG_HIDE_POKEDEX" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_POKEDEX", "x": 5, "y": 1, @@ -152,21 +162,21 @@ "y": 12, "elevation": 3, "dest_map": "MAP_PALLET_TOWN", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 7, "y": 12, "elevation": 3, "dest_map": "MAP_PALLET_TOWN", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 5, "y": 12, "elevation": 3, "dest_map": "MAP_PALLET_TOWN", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [ diff --git a/data/maps/PalletTown_ProfessorOaksLab/scripts.inc b/data/maps/PalletTown_ProfessorOaksLab/scripts.inc index 8b646176d..c23534df8 100644 --- a/data/maps/PalletTown_ProfessorOaksLab/scripts.inc +++ b/data/maps/PalletTown_ProfessorOaksLab/scripts.inc @@ -140,7 +140,7 @@ PalletTown_ProfessorOaksLab_EventScript_NationalDexSceneRivalEnterEastWest:: setobjectxyperm LOCALID_RIVAL, 6, 10 addobject LOCALID_RIVAL playbgm MUS_ENCOUNTER_RIVAL, 0 - applymovement LOCALID_PROF_OAK, Movement_WalkInPlaceFasterDown + applymovement LOCALID_PROF_OAK, Common_Movement_WalkInPlaceFasterDown applymovement OBJ_EVENT_ID_PLAYER, PalletTown_ProfessorOaksLab_Movement_WatchRivalEnterEastWest applymovement LOCALID_RIVAL, PalletTown_ProfessorOaksLab_Movement_RivalEnter waitmovement 0 @@ -150,18 +150,18 @@ PalletTown_ProfessorOaksLab_EventScript_NationalDexSceneRivalEnterSouth:: setobjectxyperm LOCALID_RIVAL, 6, 10 addobject LOCALID_RIVAL playbgm MUS_ENCOUNTER_RIVAL, 0 - applymovement LOCALID_PROF_OAK, Movement_WalkInPlaceFasterDown + applymovement LOCALID_PROF_OAK, Common_Movement_WalkInPlaceFasterDown applymovement LOCALID_RIVAL, PalletTown_ProfessorOaksLab_Movement_RivalEnter waitmovement 0 return PalletTown_ProfessorOaksLab_EventScript_PlayerFaceOakNorth:: - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterUp + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterUp waitmovement 0 return PalletTown_ProfessorOaksLab_EventScript_PlayerFaceOakWest:: - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterLeft + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterLeft waitmovement 0 return @@ -215,7 +215,7 @@ PalletTown_ProfessorOaksLab_ChooseStarterScene:: clearflag FLAG_HIDE_OAK_IN_HIS_LAB applymovement OBJ_EVENT_ID_PLAYER, PalletTown_ProfessorOaksLab_Movement_PlayerEnter waitmovement 0 - applymovement LOCALID_RIVAL, Movement_WalkInPlaceFasterUp + applymovement LOCALID_RIVAL, Common_Movement_WalkInPlaceFasterUp waitmovement 0 clearflag FLAG_DONT_TRANSITION_MUSIC savebgm MUS_DUMMY @@ -262,7 +262,7 @@ PalletTown_ProfessorOaksLab_Movement_RivalReact:: PalletTown_ProfessorOaksLab_EventScript_LeaveStarterSceneTrigger:: lockall textcolor NPC_TEXT_COLOR_MALE - applymovement LOCALID_PROF_OAK, Movement_FaceDown + applymovement LOCALID_PROF_OAK, Common_Movement_FaceDown waitmovement 0 msgbox PalletTown_ProfessorOaksLab_Text_OakHeyDontGoAwayYet closemessage @@ -296,13 +296,13 @@ PalletTown_ProfessorOaksLab_EventScript_RivalBattleTriggerRight:: PalletTown_ProfessorOaksLab_EventScript_RivalBattle:: textcolor NPC_TEXT_COLOR_MALE playbgm MUS_ENCOUNTER_RIVAL, 0 - applymovement LOCALID_RIVAL, Movement_WalkInPlaceFasterDown + applymovement LOCALID_RIVAL, Common_Movement_WalkInPlaceFasterDown waitmovement 0 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterUp + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterUp waitmovement 0 msgbox PalletTown_ProfessorOaksLab_Text_RivalLetsCheckOutMons closemessage - applymovement LOCALID_PROF_OAK, Movement_FaceDown + applymovement LOCALID_PROF_OAK, Common_Movement_FaceDown waitmovement 0 goto_if_eq VAR_STARTER_MON, 0, PalletTown_ProfessorOaksLab_EventScript_RivalApproachForBattleCharmander goto_if_eq VAR_STARTER_MON, 1, PalletTown_ProfessorOaksLab_EventScript_RivalApproachForBattleBulbasaur @@ -625,9 +625,9 @@ PalletTown_ProfessorOaksLab_EventScript_ReceiveDexScene:: closemessage delay 30 playse SE_PIN - applymovement LOCALID_PROF_OAK, Movement_ExclamationMark + applymovement LOCALID_PROF_OAK, Common_Movement_ExclamationMark waitmovement 0 - applymovement LOCALID_PROF_OAK, Movement_Delay48 + applymovement LOCALID_PROF_OAK, Common_Movement_Delay48 waitmovement 0 call_if_eq VAR_FACING, DIR_SOUTH, PalletTown_ProfessorOaksLab_EventScript_DexSceneOakFacePlayerAndRivalSouth call_if_eq VAR_FACING, DIR_EAST, PalletTown_ProfessorOaksLab_EventScript_DexSceneOakFacePlayerAndRivalEast @@ -644,7 +644,7 @@ PalletTown_ProfessorOaksLab_EventScript_ReceiveDexScene:: delay 40 msgbox PalletTown_ProfessorOaksLab_Text_OakTakeTheseWithYou closemessage - applymovement LOCALID_PROF_OAK, Movement_WalkInPlaceFasterUp + applymovement LOCALID_PROF_OAK, Common_Movement_WalkInPlaceFasterUp waitmovement 0 removeobject LOCALID_POKEDEX_1 delay 10 @@ -804,7 +804,7 @@ PalletTown_ProfessorOaksLab_EventScript_DexCompleted:: call_if_eq VAR_FACING, DIR_SOUTH, PalletTown_ProfessorOaksLab_EventScript_OakExcitedSouth call_if_eq VAR_FACING, DIR_EAST, PalletTown_ProfessorOaksLab_EventScript_OakExcitedEast call_if_eq VAR_FACING, DIR_WEST, PalletTown_ProfessorOaksLab_EventScript_OakExcitedWest - applymovement LOCALID_PROF_OAK, Movement_FacePlayer + applymovement LOCALID_PROF_OAK, Common_Movement_FacePlayer waitmovement 0 closemessage delay 70 @@ -870,7 +870,7 @@ PalletTown_ProfessorOaksLab_Movement_OakExcitedWest:: step_end @ Unused -Movement_1699AC:: +PalletTown_ProfessorOaksLab_Movement_Search: walk_left walk_in_place_faster_down delay_8 @@ -898,7 +898,7 @@ Movement_1699AC:: step_end @ Unused -Movement_1699C5: +PalletTown_ProfessorOaksLab_Movement_VerticalPacing: walk_up walk_down walk_down @@ -966,7 +966,7 @@ PalletTown_ProfessorOaksLab_EventScript_DexSceneRivalEnterNorth:: PalletTown_ProfessorOaksLab_EventScript_DexSceneRivalEnterEastWest:: setobjectxyperm LOCALID_RIVAL, 6, 10 addobject LOCALID_RIVAL - applymovement LOCALID_PROF_OAK, Movement_WalkInPlaceFasterDown + applymovement LOCALID_PROF_OAK, Common_Movement_WalkInPlaceFasterDown applymovement OBJ_EVENT_ID_PLAYER, PalletTown_ProfessorOaksLab_Movement_WatchRivalEnterEastWest applymovement LOCALID_RIVAL, PalletTown_ProfessorOaksLab_Movement_RivalEnter waitmovement 0 @@ -975,52 +975,52 @@ PalletTown_ProfessorOaksLab_EventScript_DexSceneRivalEnterEastWest:: PalletTown_ProfessorOaksLab_EventScript_DexSceneRivalEnterSouth:: setobjectxyperm LOCALID_RIVAL, 6, 10 addobject LOCALID_RIVAL - applymovement LOCALID_PROF_OAK, Movement_WalkInPlaceFasterDown + applymovement LOCALID_PROF_OAK, Common_Movement_WalkInPlaceFasterDown applymovement LOCALID_RIVAL, PalletTown_ProfessorOaksLab_Movement_RivalEnter waitmovement 0 return PalletTown_ProfessorOaksLab_EventScript_DexSceneOakFacePlayerAndRivalSouth:: - applymovement LOCALID_PROF_OAK, Movement_FacePlayer + applymovement LOCALID_PROF_OAK, Common_Movement_FacePlayer waitmovement 0 delay 15 - applymovement LOCALID_PROF_OAK, Movement_WalkInPlaceFasterDown + applymovement LOCALID_PROF_OAK, Common_Movement_WalkInPlaceFasterDown waitmovement 0 return PalletTown_ProfessorOaksLab_EventScript_DexSceneOakFacePlayerAndRivalWest:: - applymovement LOCALID_PROF_OAK, Movement_FacePlayer + applymovement LOCALID_PROF_OAK, Common_Movement_FacePlayer waitmovement 0 delay 15 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterLeft - applymovement LOCALID_PROF_OAK, Movement_WalkInPlaceFasterDown + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterLeft + applymovement LOCALID_PROF_OAK, Common_Movement_WalkInPlaceFasterDown waitmovement 0 return PalletTown_ProfessorOaksLab_EventScript_DexSceneOakFacePlayerAndRivalEast:: - applymovement LOCALID_PROF_OAK, Movement_FacePlayer + applymovement LOCALID_PROF_OAK, Common_Movement_FacePlayer waitmovement 0 delay 15 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight - applymovement LOCALID_PROF_OAK, Movement_WalkInPlaceFasterDown + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterRight + applymovement LOCALID_PROF_OAK, Common_Movement_WalkInPlaceFasterDown waitmovement 0 return PalletTown_ProfessorOaksLab_EventScript_DexSceneRivalFacePlayerNorth:: - applymovement LOCALID_RIVAL, Movement_FacePlayer - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterLeft + applymovement LOCALID_RIVAL, Common_Movement_FacePlayer + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterLeft waitmovement 0 return PalletTown_ProfessorOaksLab_EventScript_DexSceneRivalFacePlayerSouth:: - applymovement LOCALID_RIVAL, Movement_WalkInPlaceFasterUp - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterDown + applymovement LOCALID_RIVAL, Common_Movement_WalkInPlaceFasterUp + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterDown waitmovement 0 return PalletTown_ProfessorOaksLab_EventScript_DexSceneRivalFacePlayerEastWest:: - applymovement LOCALID_RIVAL, Movement_FacePlayer - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterDown + applymovement LOCALID_RIVAL, Common_Movement_FacePlayer + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterDown waitmovement 0 return @@ -1036,7 +1036,7 @@ PalletTown_ProfessorOaksLab_EventScript_RivalExit:: return PalletTown_ProfessorOaksLab_EventScript_DexSceneOakFacePlayerAndRivalNorth:: - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterUp + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterUp waitmovement 0 return @@ -1088,7 +1088,7 @@ PalletTown_ProfessorOaksLab_EventScript_BulbasaurBall:: end PalletTown_ProfessorOaksLab_EventScript_ConfirmStarterChoice:: - applymovement LOCALID_PROF_OAK, Movement_FaceRight + applymovement LOCALID_PROF_OAK, Common_Movement_FaceRight waitmovement 0 showmonpic PLAYER_STARTER_SPECIES, 10, 3 textcolor NPC_TEXT_COLOR_MALE diff --git a/data/maps/PalletTown_RivalsHouse/map.json b/data/maps/PalletTown_RivalsHouse/map.json index d6eafde70..ad9b2880d 100644 --- a/data/maps/PalletTown_RivalsHouse/map.json +++ b/data/maps/PalletTown_RivalsHouse/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_DAISY", "x": 10, "y": 6, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_TOWN_MAP", "x": 6, "y": 4, @@ -48,21 +50,21 @@ "y": 8, "elevation": 3, "dest_map": "MAP_PALLET_TOWN", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 5, "y": 8, "elevation": 3, "dest_map": "MAP_PALLET_TOWN", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 3, "y": 8, "elevation": 3, "dest_map": "MAP_PALLET_TOWN", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/PalletTown_RivalsHouse/scripts.inc b/data/maps/PalletTown_RivalsHouse/scripts.inc index 7dbca25da..1f0fd3381 100644 --- a/data/maps/PalletTown_RivalsHouse/scripts.inc +++ b/data/maps/PalletTown_RivalsHouse/scripts.inc @@ -32,7 +32,7 @@ PalletTown_RivalsHouse_EventScript_Daisy:: goto_if_ge VAR_MAP_SCENE_PALLET_TOWN_PROFESSOR_OAKS_LAB, 1, PalletTown_RivalsHouse_EventScript_HeardBattledRival msgbox PalletTown_RivalsHouse_Text_HiBrothersAtLab closemessage - applymovement LOCALID_DAISY, Movement_FaceOriginalDirection + applymovement LOCALID_DAISY, Common_Movement_FaceOriginalDirection waitmovement 0 release end @@ -136,12 +136,12 @@ PalletTown_RivalsHouse_EventScript_GiveTownMap:: closemessage checkitemspace ITEM_TOWN_MAP goto_if_eq VAR_RESULT, FALSE, PalletTown_RivalsHouse_EventScript_NoRoomForTownMap - applymovement LOCALID_DAISY, Movement_WalkInPlaceFasterRight + applymovement LOCALID_DAISY, Common_Movement_WalkInPlaceFasterRight waitmovement 0 removeobject LOCALID_TOWN_MAP setvar VAR_MAP_SCENE_PALLET_TOWN_RIVALS_HOUSE, 2 delay 15 - applymovement LOCALID_DAISY, Movement_FacePlayer + applymovement LOCALID_DAISY, Common_Movement_FacePlayer waitmovement 0 delay 12 giveitem_msg PalletTown_RivalsHouse_Text_ReceivedTownMapFromDaisy, ITEM_TOWN_MAP, 1, MUS_OBTAIN_KEY_ITEM diff --git a/data/maps/PewterCity/map.json b/data/maps/PewterCity/map.json index eca9af0b8..ddc3481ca 100644 --- a/data/maps/PewterCity/map.json +++ b/data/maps/PewterCity/map.json @@ -27,6 +27,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LASS", "x": 6, "y": 15, @@ -40,6 +41,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MAN", "x": 33, "y": 17, @@ -53,6 +55,7 @@ "flag": "FLAG_HIDE_PEWTER_MUSEUM_GUIDE" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_FAT_MAN", "x": 21, "y": 28, @@ -66,6 +69,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BUG_CATCHER", "x": 33, "y": 27, @@ -79,6 +83,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BOY", "x": 42, "y": 20, @@ -92,6 +97,7 @@ "flag": "FLAG_HIDE_PEWTER_CITY_GYM_GUIDE" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 30, "y": 5, @@ -105,6 +111,7 @@ "flag": "FLAG_TEMP_12" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 46, "y": 20, @@ -124,49 +131,49 @@ "y": 6, "elevation": 0, "dest_map": "MAP_PEWTER_CITY_MUSEUM_1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 25, "y": 4, "elevation": 0, "dest_map": "MAP_PEWTER_CITY_MUSEUM_1F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 15, "y": 16, "elevation": 0, "dest_map": "MAP_PEWTER_CITY_GYM", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 28, "y": 18, "elevation": 0, "dest_map": "MAP_PEWTER_CITY_MART", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 33, "y": 11, "elevation": 0, "dest_map": "MAP_PEWTER_CITY_HOUSE1", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 17, "y": 25, "elevation": 0, "dest_map": "MAP_PEWTER_CITY_POKEMON_CENTER_1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 9, "y": 30, "elevation": 0, "dest_map": "MAP_PEWTER_CITY_HOUSE2", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [ @@ -281,7 +288,7 @@ "y": 3, "elevation": 3, "item": "ITEM_POKE_BALL", - "flag": "HIDDEN_ITEM_PEWTER_CITY_POKE_BALL", + "flag": "FLAG_HIDDEN_ITEM_PEWTER_CITY_POKE_BALL", "quantity": 1, "underfoot": false } diff --git a/data/maps/PewterCity/scripts.inc b/data/maps/PewterCity/scripts.inc index e559e3322..3cb0e4ccb 100644 --- a/data/maps/PewterCity/scripts.inc +++ b/data/maps/PewterCity/scripts.inc @@ -691,9 +691,9 @@ PewterCity_EventScript_AideGiveRunningShoes:: call_if_eq VAR_TEMP_1, 3, PewterCity_EventScript_AideNoticePlayer waitse playse SE_PIN - applymovement LOCALID_AIDE, Movement_ExclamationMark + applymovement LOCALID_AIDE, Common_Movement_ExclamationMark waitmovement 0 - applymovement LOCALID_AIDE, Movement_Delay48 + applymovement LOCALID_AIDE, Common_Movement_Delay48 waitmovement 0 msgbox PewterCity_Text_OhPlayer call_if_eq VAR_TEMP_1, 0, PewterCity_EventScript_AideApproachPlayer0 @@ -728,7 +728,7 @@ PewterCity_EventScript_AideGiveRunningShoes:: return PewterCity_EventScript_AideNoticePlayer:: - applymovement LOCALID_AIDE, Movement_WalkInPlaceFasterDown + applymovement LOCALID_AIDE, Common_Movement_WalkInPlaceFasterDown waitmovement 0 return @@ -740,7 +740,7 @@ PewterCity_EventScript_AideApproachPlayer0:: PewterCity_EventScript_AideApproachPlayer1:: closemessage - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterUp + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterUp waitmovement 0 return @@ -748,7 +748,7 @@ PewterCity_EventScript_AideApproachPlayer2:: closemessage applymovement LOCALID_AIDE, PewterCity_Movement_AideApproachPlayerMid waitmovement 0 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterUp + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterUp waitmovement 0 return @@ -756,7 +756,7 @@ PewterCity_EventScript_AideApproachPlayer3:: closemessage applymovement LOCALID_AIDE, PewterCity_Movement_AideApproachPlayerBottom waitmovement 0 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterUp + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterUp waitmovement 0 return diff --git a/data/maps/PewterCity_Gym/map.json b/data/maps/PewterCity_Gym/map.json index 7c160945a..5ecb2eb7c 100644 --- a/data/maps/PewterCity_Gym/map.json +++ b/data/maps/PewterCity_Gym/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BROCK", "x": 6, "y": 5, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CAMPER", "x": 3, "y": 8, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GYM_GUY", "x": 7, "y": 12, @@ -61,21 +64,21 @@ "y": 14, "elevation": 3, "dest_map": "MAP_PEWTER_CITY", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 6, "y": 14, "elevation": 3, "dest_map": "MAP_PEWTER_CITY", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 7, "y": 14, "elevation": 3, "dest_map": "MAP_PEWTER_CITY", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [], diff --git a/data/maps/PewterCity_House1/map.json b/data/maps/PewterCity_House1/map.json index 70b274917..097a58484 100644 --- a/data/maps/PewterCity_House1/map.json +++ b/data/maps/PewterCity_House1/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", "x": 1, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LITTLE_BOY", "x": 5, "y": 3, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_NIDORAN_M", "x": 6, "y": 3, @@ -61,21 +64,21 @@ "y": 7, "elevation": 0, "dest_map": "MAP_PEWTER_CITY", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 4, "y": 7, "elevation": 0, "dest_map": "MAP_PEWTER_CITY", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 5, "y": 7, "elevation": 0, "dest_map": "MAP_PEWTER_CITY", - "dest_warp_id": 4 + "dest_warp_id": "4" } ], "coord_events": [], diff --git a/data/maps/PewterCity_House1/scripts.inc b/data/maps/PewterCity_House1/scripts.inc index 9003913dd..d4dfee4e8 100644 --- a/data/maps/PewterCity_House1/scripts.inc +++ b/data/maps/PewterCity_House1/scripts.inc @@ -18,7 +18,7 @@ PewterCity_House1_EventScript_Nidoran:: lock faceplayer call PewterCity_House1_EventScript_DoNidoranCry - applymovement LOCALID_NIDORAN, Movement_FaceOriginalDirection + applymovement LOCALID_NIDORAN, Common_Movement_FaceOriginalDirection waitmovement 0 release end diff --git a/data/maps/PewterCity_House2/map.json b/data/maps/PewterCity_House2/map.json index 224bf438e..b1c86a681 100644 --- a/data/maps/PewterCity_House2/map.json +++ b/data/maps/PewterCity_House2/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", "x": 3, "y": 3, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LITTLE_BOY", "x": 5, "y": 3, @@ -48,21 +50,21 @@ "y": 7, "elevation": 0, "dest_map": "MAP_PEWTER_CITY", - "dest_warp_id": 6 + "dest_warp_id": "6" }, { "x": 4, "y": 7, "elevation": 0, "dest_map": "MAP_PEWTER_CITY", - "dest_warp_id": 6 + "dest_warp_id": "6" }, { "x": 5, "y": 7, "elevation": 0, "dest_map": "MAP_PEWTER_CITY", - "dest_warp_id": 6 + "dest_warp_id": "6" } ], "coord_events": [], diff --git a/data/maps/PewterCity_Mart/map.json b/data/maps/PewterCity_Mart/map.json index df4620ff7..c11a3939b 100644 --- a/data/maps/PewterCity_Mart/map.json +++ b/data/maps/PewterCity_Mart/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 8, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BOY", "x": 6, "y": 4, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CLERK", "x": 2, "y": 3, @@ -61,21 +64,21 @@ "y": 7, "elevation": 3, "dest_map": "MAP_PEWTER_CITY", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 4, "y": 7, "elevation": 3, "dest_map": "MAP_PEWTER_CITY", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 5, "y": 7, "elevation": 3, "dest_map": "MAP_PEWTER_CITY", - "dest_warp_id": 3 + "dest_warp_id": "3" } ], "coord_events": [], diff --git a/data/maps/PewterCity_Museum_1F/map.json b/data/maps/PewterCity_Museum_1F/map.json index a96ec184e..530760e18 100644 --- a/data/maps/PewterCity_Museum_1F/map.json +++ b/data/maps/PewterCity_Museum_1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WORKER_M", "x": 16, "y": 5, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", "x": 2, "y": 4, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 21, "y": 3, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_AMBER", "x": 22, "y": 3, @@ -68,6 +72,7 @@ "flag": "FLAG_HIDE_OLD_AMBER" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 26, "y": 4, @@ -81,6 +86,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 26, "y": 7, @@ -100,42 +106,42 @@ "y": 9, "elevation": 3, "dest_map": "MAP_PEWTER_CITY", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 14, "y": 9, "elevation": 3, "dest_map": "MAP_PEWTER_CITY", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 15, "y": 9, "elevation": 3, "dest_map": "MAP_PEWTER_CITY", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 21, "y": 9, "elevation": 3, "dest_map": "MAP_PEWTER_CITY", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 22, "y": 9, "elevation": 3, "dest_map": "MAP_PEWTER_CITY", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 8, "y": 8, "elevation": 3, "dest_map": "MAP_PEWTER_CITY_MUSEUM_2F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [ diff --git a/data/maps/PewterCity_Museum_1F/scripts.inc b/data/maps/PewterCity_Museum_1F/scripts.inc index e41feef0d..28c09240b 100644 --- a/data/maps/PewterCity_Museum_1F/scripts.inc +++ b/data/maps/PewterCity_Museum_1F/scripts.inc @@ -22,14 +22,14 @@ PewterCity_Museum_1F_EventScript_Scientist1BehindCounter:: PewterCity_Museum_1F_EventScript_AmberHasGeneticMatter:: msgbox PewterCity_Museum_1F_Text_AmberContainsGeneticMatter - applymovement LOCALID_SCIENTIST1, Movement_FaceOriginalDirection + applymovement LOCALID_SCIENTIST1, Common_Movement_FaceOriginalDirection waitmovement 0 release end PewterCity_Museum_1F_EventScript_ExplainAmber:: msgbox PewterCity_Museum_1F_Text_AmberIsFossilizedSap - applymovement LOCALID_SCIENTIST1, Movement_FaceOriginalDirection + applymovement LOCALID_SCIENTIST1, Common_Movement_FaceOriginalDirection waitmovement 0 release end @@ -37,7 +37,7 @@ PewterCity_Museum_1F_EventScript_ExplainAmber:: PewterCity_Museum_1F_EventScript_EntranceTriggerLeft:: lockall setvar VAR_TEMP_1, 0 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterRight waitmovement 0 goto PewterCity_Museum_1F_EventScript_EntranceTrigger end @@ -45,7 +45,7 @@ PewterCity_Museum_1F_EventScript_EntranceTriggerLeft:: PewterCity_Museum_1F_EventScript_EntranceTriggerMid:: lockall setvar VAR_TEMP_1, 1 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterRight waitmovement 0 goto PewterCity_Museum_1F_EventScript_EntranceTrigger end @@ -53,7 +53,7 @@ PewterCity_Museum_1F_EventScript_EntranceTriggerMid:: PewterCity_Museum_1F_EventScript_EntranceTriggerRight:: lockall setvar VAR_TEMP_1, 2 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterRight waitmovement 0 goto PewterCity_Museum_1F_EventScript_EntranceTrigger end diff --git a/data/maps/PewterCity_Museum_2F/map.json b/data/maps/PewterCity_Museum_2F/map.json index 95c1b6aa4..4e10ce252 100644 --- a/data/maps/PewterCity_Museum_2F/map.json +++ b/data/maps/PewterCity_Museum_2F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 10, "y": 5, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MAN", "x": 4, "y": 9, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_2", "x": 0, "y": 6, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LITTLE_GIRL", "x": 15, "y": 8, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", "x": 16, "y": 8, @@ -87,7 +92,7 @@ "y": 8, "elevation": 3, "dest_map": "MAP_PEWTER_CITY_MUSEUM_1F", - "dest_warp_id": 5 + "dest_warp_id": "5" } ], "coord_events": [], diff --git a/data/maps/PewterCity_PokemonCenter_1F/map.json b/data/maps/PewterCity_PokemonCenter_1F/map.json index ebc6c532b..d8840a13b 100644 --- a/data/maps/PewterCity_PokemonCenter_1F/map.json +++ b/data/maps/PewterCity_PokemonCenter_1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_JIGGLYPUFF", "x": 2, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN", "x": 4, "y": 8, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_NURSE", "x": 7, "y": 2, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 1, "y": 2, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_1", "x": 13, "y": 2, @@ -81,6 +86,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GBA_KID", "x": 10, "y": 7, @@ -94,6 +100,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GBA_KID", "x": 14, "y": 6, @@ -113,28 +120,28 @@ "y": 8, "elevation": 0, "dest_map": "MAP_PEWTER_CITY", - "dest_warp_id": 5 + "dest_warp_id": "5" }, { "x": 7, "y": 8, "elevation": 3, "dest_map": "MAP_PEWTER_CITY", - "dest_warp_id": 5 + "dest_warp_id": "5" }, { "x": 8, "y": 8, "elevation": 0, "dest_map": "MAP_PEWTER_CITY", - "dest_warp_id": 5 + "dest_warp_id": "5" }, { "x": 1, "y": 6, "elevation": 4, "dest_map": "MAP_PEWTER_CITY_POKEMON_CENTER_2F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/PewterCity_PokemonCenter_2F/map.json b/data/maps/PewterCity_PokemonCenter_2F/map.json index 45d753045..756892072 100644 --- a/data/maps/PewterCity_PokemonCenter_2F/map.json +++ b/data/maps/PewterCity_PokemonCenter_2F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 6, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 2, "y": 2, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 10, "y": 2, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MG_DELIVERYMAN", "x": 1, "y": 2, @@ -74,21 +78,21 @@ "y": 6, "elevation": 4, "dest_map": "MAP_PEWTER_CITY_POKEMON_CENTER_1F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 5, "y": 1, "elevation": 0, "dest_map": "MAP_UNION_ROOM", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 9, "y": 1, "elevation": 0, "dest_map": "MAP_TRADE_CENTER", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/PokemonLeague_AgathasRoom/map.json b/data/maps/PokemonLeague_AgathasRoom/map.json index 86fda6a3e..c1791ebf0 100644 --- a/data/maps/PokemonLeague_AgathasRoom/map.json +++ b/data/maps/PokemonLeague_AgathasRoom/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_AGATHA", "x": 6, "y": 5, @@ -35,14 +36,14 @@ "y": 12, "elevation": 0, "dest_map": "MAP_POKEMON_LEAGUE_BRUNOS_ROOM", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 6, "y": 2, "elevation": 0, "dest_map": "MAP_POKEMON_LEAGUE_LANCES_ROOM", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/PokemonLeague_BrunosRoom/map.json b/data/maps/PokemonLeague_BrunosRoom/map.json index cf1448886..3150972ac 100644 --- a/data/maps/PokemonLeague_BrunosRoom/map.json +++ b/data/maps/PokemonLeague_BrunosRoom/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BRUNO", "x": 6, "y": 5, @@ -35,14 +36,14 @@ "y": 12, "elevation": 0, "dest_map": "MAP_POKEMON_LEAGUE_LORELEIS_ROOM", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 6, "y": 2, "elevation": 0, "dest_map": "MAP_POKEMON_LEAGUE_AGATHAS_ROOM", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/PokemonLeague_BrunosRoom/scripts.inc b/data/maps/PokemonLeague_BrunosRoom/scripts.inc index a54266d4e..b1d6de506 100644 --- a/data/maps/PokemonLeague_BrunosRoom/scripts.inc +++ b/data/maps/PokemonLeague_BrunosRoom/scripts.inc @@ -100,16 +100,16 @@ PokemonLeague_BrunosRoom_EventScript_DefeatedBruno:: end PokemonLeague_BrunosRoom_EventScript_BrunoLookAwayLeft:: - applymovement LOCALID_BRUNO, Movement_WalkInPlaceFasterLeft + applymovement LOCALID_BRUNO, Common_Movement_WalkInPlaceFasterLeft waitmovement 0 return PokemonLeague_BrunosRoom_EventScript_BrunoLookAwayRight:: - applymovement LOCALID_BRUNO, Movement_WalkInPlaceFasterRight + applymovement LOCALID_BRUNO, Common_Movement_WalkInPlaceFasterRight waitmovement 0 return PokemonLeague_BrunosRoom_EventScript_BrunoLookAwayDown:: - applymovement LOCALID_BRUNO, Movement_WalkInPlaceFasterDown + applymovement LOCALID_BRUNO, Common_Movement_WalkInPlaceFasterDown waitmovement 0 return diff --git a/data/maps/PokemonLeague_ChampionsRoom/map.json b/data/maps/PokemonLeague_ChampionsRoom/map.json index a4c1da00f..32329b02d 100644 --- a/data/maps/PokemonLeague_ChampionsRoom/map.json +++ b/data/maps/PokemonLeague_ChampionsRoom/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BLUE", "x": 6, "y": 8, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PROF_OAK", "x": 6, "y": 15, @@ -48,14 +50,14 @@ "y": 19, "elevation": 3, "dest_map": "MAP_POKEMON_LEAGUE_LANCES_ROOM", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 6, "y": 2, "elevation": 3, "dest_map": "MAP_POKEMON_LEAGUE_HALL_OF_FAME", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/PokemonLeague_ChampionsRoom/scripts.inc b/data/maps/PokemonLeague_ChampionsRoom/scripts.inc index c45d61e8b..cdbb93a2e 100644 --- a/data/maps/PokemonLeague_ChampionsRoom/scripts.inc +++ b/data/maps/PokemonLeague_ChampionsRoom/scripts.inc @@ -78,12 +78,12 @@ PokemonLeague_ChampionsRoom_EventScript_EnterRoom:: specialvar VAR_RESULT, GetStarterSpecies bufferspeciesname STR_VAR_1, VAR_RESULT msgbox PokemonLeague_ChampionsRoom_Text_OakCongratulations - applymovement LOCALID_PROF_OAK, Movement_WalkInPlaceFasterRight - applymovement LOCALID_RIVAL, Movement_WalkInPlaceFasterLeft + applymovement LOCALID_PROF_OAK, Common_Movement_WalkInPlaceFasterRight + applymovement LOCALID_RIVAL, Common_Movement_WalkInPlaceFasterLeft waitmovement 0 msgbox PokemonLeague_ChampionsRoom_Text_OakImDisappointedRival closemessage - applymovement LOCALID_PROF_OAK, Movement_WalkInPlaceFasterDown + applymovement LOCALID_PROF_OAK, Common_Movement_WalkInPlaceFasterDown waitmovement 0 delay 20 msgbox PokemonLeague_ChampionsRoom_Text_OakPlayerComeWithMe diff --git a/data/maps/PokemonLeague_HallOfFame/map.json b/data/maps/PokemonLeague_HallOfFame/map.json index bbe302813..e728c6554 100644 --- a/data/maps/PokemonLeague_HallOfFame/map.json +++ b/data/maps/PokemonLeague_HallOfFame/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PROF_OAK", "x": 6, "y": 4, @@ -35,7 +36,7 @@ "y": 12, "elevation": 3, "dest_map": "MAP_POKEMON_LEAGUE_CHAMPIONS_ROOM", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/PokemonLeague_HallOfFame/scripts.inc b/data/maps/PokemonLeague_HallOfFame/scripts.inc index 426f594b9..e8fae588d 100644 --- a/data/maps/PokemonLeague_HallOfFame/scripts.inc +++ b/data/maps/PokemonLeague_HallOfFame/scripts.inc @@ -22,14 +22,14 @@ PokemonLeague_HallOfFame_EventScript_EnterRoom:: textcolor NPC_TEXT_COLOR_MALE applymovement OBJ_EVENT_ID_PLAYER, PokemonLeague_HallOfFame_Movement_EnterRoom waitmovement 0 - applymovement LOCALID_PROF_OAK, Movement_WalkInPlaceFasterLeft - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight + applymovement LOCALID_PROF_OAK, Common_Movement_WalkInPlaceFasterLeft + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterRight waitmovement 0 delay 18 msgbox PokemonLeague_HallOfFame_Text_OakCongratulations closemessage - applymovement LOCALID_PROF_OAK, Movement_WalkInPlaceFasterUp - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterUp + applymovement LOCALID_PROF_OAK, Common_Movement_WalkInPlaceFasterUp + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterUp waitmovement 0 delay 20 dofieldeffect FLDEFF_HALL_OF_FAME_RECORD diff --git a/data/maps/PokemonLeague_LancesRoom/map.json b/data/maps/PokemonLeague_LancesRoom/map.json index 05c1daa01..4a1dde336 100644 --- a/data/maps/PokemonLeague_LancesRoom/map.json +++ b/data/maps/PokemonLeague_LancesRoom/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LANCE", "x": 6, "y": 8, @@ -35,14 +36,14 @@ "y": 13, "elevation": 3, "dest_map": "MAP_POKEMON_LEAGUE_AGATHAS_ROOM", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 6, "y": 5, "elevation": 0, "dest_map": "MAP_POKEMON_LEAGUE_CHAMPIONS_ROOM", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/PokemonLeague_LoreleisRoom/map.json b/data/maps/PokemonLeague_LoreleisRoom/map.json index d34bcabc7..0e6943857 100644 --- a/data/maps/PokemonLeague_LoreleisRoom/map.json +++ b/data/maps/PokemonLeague_LoreleisRoom/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LORELEI", "x": 6, "y": 5, @@ -35,14 +36,14 @@ "y": 12, "elevation": 0, "dest_map": "MAP_INDIGO_PLATEAU_POKEMON_CENTER_1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 6, "y": 2, "elevation": 0, "dest_map": "MAP_POKEMON_LEAGUE_BRUNOS_ROOM", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/PokemonMansion_1F/map.json b/data/maps/PokemonMansion_1F/map.json index d8ff775b8..346a767b0 100644 --- a/data/maps/PokemonMansion_1F/map.json +++ b/data/maps/PokemonMansion_1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 22, "y": 24, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 29, "y": 32, @@ -42,6 +44,7 @@ "flag": "FLAG_HIDE_POKEMON_MANSION_1F_CARBOS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 22, "y": 6, @@ -55,6 +58,7 @@ "flag": "FLAG_HIDE_POKEMON_MANSION_1F_ESCAPE_ROPE" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 27, "y": 15, @@ -68,6 +72,7 @@ "flag": "FLAG_HIDE_POKEMON_MANSION_1F_PROTEIN" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 8, "y": 8, @@ -87,70 +92,70 @@ "y": 33, "elevation": 3, "dest_map": "MAP_CINNABAR_ISLAND", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 8, "y": 33, "elevation": 3, "dest_map": "MAP_CINNABAR_ISLAND", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 9, "y": 33, "elevation": 3, "dest_map": "MAP_CINNABAR_ISLAND", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 10, "y": 13, "elevation": 3, "dest_map": "MAP_POKEMON_MANSION_2F", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 25, "y": 27, "elevation": 3, "dest_map": "MAP_POKEMON_MANSION_B1F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 34, "y": 33, "elevation": 3, "dest_map": "MAP_CINNABAR_ISLAND", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 35, "y": 34, "elevation": 0, "dest_map": "MAP_CINNABAR_ISLAND", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 19, "y": 22, "elevation": 3, "dest_map": "MAP_POKEMON_MANSION_3F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 20, "y": 22, "elevation": 3, "dest_map": "MAP_POKEMON_MANSION_3F", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 11, "y": 13, "elevation": 0, "dest_map": "MAP_POKEMON_MANSION_2F", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [], @@ -169,7 +174,7 @@ "y": 21, "elevation": 0, "item": "ITEM_MOON_STONE", - "flag": "HIDDEN_ITEM_POKEMON_MANSION_1F_MOON_STONE", + "flag": "FLAG_HIDDEN_ITEM_POKEMON_MANSION_1F_MOON_STONE", "quantity": 1, "underfoot": false } diff --git a/data/maps/PokemonMansion_2F/map.json b/data/maps/PokemonMansion_2F/map.json index 6fb09a8e7..89220add4 100644 --- a/data/maps/PokemonMansion_2F/map.json +++ b/data/maps/PokemonMansion_2F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SUPER_NERD", "x": 5, "y": 23, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 36, "y": 8, @@ -42,6 +44,7 @@ "flag": "FLAG_HIDE_POKEMON_MANSION_2F_CALCIUM" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 18, "y": 23, @@ -55,6 +58,7 @@ "flag": "FLAG_HIDE_POKEMON_MANSION_2F_ZINC" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 35, "y": 17, @@ -74,35 +78,35 @@ "y": 3, "elevation": 3, "dest_map": "MAP_POKEMON_MANSION_3F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 34, "y": 22, "elevation": 3, "dest_map": "MAP_POKEMON_MANSION_3F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 6, "y": 14, "elevation": 3, "dest_map": "MAP_POKEMON_MANSION_1F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 9, "y": 14, "elevation": 3, "dest_map": "MAP_POKEMON_MANSION_3F", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 27, "y": 17, "elevation": 3, "dest_map": "MAP_POKEMON_MANSION_3F", - "dest_warp_id": 5 + "dest_warp_id": "5" } ], "coord_events": [], diff --git a/data/maps/PokemonMansion_3F/map.json b/data/maps/PokemonMansion_3F/map.json index 6ca394a7d..13c7ea294 100644 --- a/data/maps/PokemonMansion_3F/map.json +++ b/data/maps/PokemonMansion_3F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SUPER_NERD", "x": 7, "y": 13, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 22, "y": 13, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 9, "y": 19, @@ -55,6 +58,7 @@ "flag": "FLAG_HIDE_POKEMON_MANSION_3F_MAX_POTION" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 32, "y": 6, @@ -74,56 +78,56 @@ "y": 3, "elevation": 3, "dest_map": "MAP_POKEMON_MANSION_2F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 34, "y": 18, "elevation": 3, "dest_map": "MAP_POKEMON_MANSION_2F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 11, "y": 11, "elevation": 3, "dest_map": "MAP_POKEMON_MANSION_2F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 18, "y": 18, "elevation": 3, "dest_map": "MAP_POKEMON_MANSION_1F", - "dest_warp_id": 7 + "dest_warp_id": "7" }, { "x": 19, "y": 18, "elevation": 3, "dest_map": "MAP_POKEMON_MANSION_1F", - "dest_warp_id": 8 + "dest_warp_id": "8" }, { "x": 23, "y": 18, "elevation": 3, "dest_map": "MAP_POKEMON_MANSION_2F", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 20, "y": 18, "elevation": 3, "dest_map": "MAP_POKEMON_MANSION_1F", - "dest_warp_id": 8 + "dest_warp_id": "8" }, { "x": 24, "y": 18, "elevation": 3, "dest_map": "MAP_POKEMON_MANSION_2F", - "dest_warp_id": 4 + "dest_warp_id": "4" } ], "coord_events": [], @@ -150,7 +154,7 @@ "y": 13, "elevation": 3, "item": "ITEM_RARE_CANDY", - "flag": "HIDDEN_ITEM_POKEMON_MANSION_3F_RARE_CANDY", + "flag": "FLAG_HIDDEN_ITEM_POKEMON_MANSION_3F_RARE_CANDY", "quantity": 1, "underfoot": false } diff --git a/data/maps/PokemonMansion_B1F/map.json b/data/maps/PokemonMansion_B1F/map.json index 4f4ad6ea1..b68160cf6 100644 --- a/data/maps/PokemonMansion_B1F/map.json +++ b/data/maps/PokemonMansion_B1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 6, "y": 21, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_POKEMON_MANSION_B1F_TM22" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SUPER_NERD", "x": 20, "y": 25, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 34, "y": 13, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 23, "y": 4, @@ -68,6 +72,7 @@ "flag": "FLAG_HIDE_POKEMON_MANSION_B1F_TM14" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 2, "y": 29, @@ -81,6 +86,7 @@ "flag": "FLAG_HIDE_POKEMON_MANSION_B1F_FULL_RESTORE" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 5, "y": 7, @@ -100,7 +106,7 @@ "y": 29, "elevation": 3, "dest_map": "MAP_POKEMON_MANSION_1F", - "dest_warp_id": 4 + "dest_warp_id": "4" } ], "coord_events": [], @@ -135,7 +141,7 @@ "y": 5, "elevation": 3, "item": "ITEM_ELIXIR", - "flag": "HIDDEN_ITEM_POKEMON_MANSION_B1F_ELIXIR", + "flag": "FLAG_HIDDEN_ITEM_POKEMON_MANSION_B1F_ELIXIR", "quantity": 1, "underfoot": false } diff --git a/data/maps/PokemonTower_1F/map.json b/data/maps/PokemonTower_1F/map.json index b0d8cafa2..900da797b 100644 --- a/data/maps/PokemonTower_1F/map.json +++ b/data/maps/PokemonTower_1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WORKER_F", "x": 18, "y": 13, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CHANNELER", "x": 18, "y": 7, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_2", "x": 15, "y": 6, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_3", "x": 7, "y": 8, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", "x": 8, "y": 12, @@ -87,28 +92,28 @@ "y": 19, "elevation": 3, "dest_map": "MAP_LAVENDER_TOWN", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 11, "y": 18, "elevation": 3, "dest_map": "MAP_LAVENDER_TOWN", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 12, "y": 19, "elevation": 3, "dest_map": "MAP_LAVENDER_TOWN", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 18, "y": 9, "elevation": 3, "dest_map": "MAP_POKEMON_TOWER_2F", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/PokemonTower_2F/map.json b/data/maps/PokemonTower_2F/map.json index 36281aa79..05e924e0f 100644 --- a/data/maps/PokemonTower_2F/map.json +++ b/data/maps/PokemonTower_2F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BLUE", "x": 16, "y": 5, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_TOWER_RIVAL" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CHANNELER", "x": 3, "y": 7, @@ -48,14 +50,14 @@ "y": 10, "elevation": 3, "dest_map": "MAP_POKEMON_TOWER_3F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 18, "y": 10, "elevation": 3, "dest_map": "MAP_POKEMON_TOWER_1F", - "dest_warp_id": 3 + "dest_warp_id": "3" } ], "coord_events": [ diff --git a/data/maps/PokemonTower_2F/scripts.inc b/data/maps/PokemonTower_2F/scripts.inc index 3d7a6b715..e03faf21f 100644 --- a/data/maps/PokemonTower_2F/scripts.inc +++ b/data/maps/PokemonTower_2F/scripts.inc @@ -24,9 +24,9 @@ PokemonTower_2F_EventScript_Rival:: playbgm MUS_ENCOUNTER_RIVAL, 0 call_if_eq VAR_TEMP_1, 0, PokemonTower_2F_EventScript_RivalFacePlayerRight call_if_eq VAR_TEMP_1, 1, PokemonTower_2F_EventScript_RivalFacePlayerDown - applymovement LOCALID_RIVAL, Movement_ExclamationMark + applymovement LOCALID_RIVAL, Common_Movement_ExclamationMark waitmovement 0 - applymovement LOCALID_RIVAL, Movement_Delay48 + applymovement LOCALID_RIVAL, Common_Movement_Delay48 waitmovement 0 msgbox PokemonTower_2F_Text_RivalIntro setvar VAR_LAST_TALKED, LOCALID_RIVAL @@ -47,14 +47,14 @@ PokemonTower_2F_EventScript_Rival:: end PokemonTower_2F_EventScript_RivalFacePlayerRight:: - applymovement LOCALID_RIVAL, Movement_WalkInPlaceFasterRight - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterLeft + applymovement LOCALID_RIVAL, Common_Movement_WalkInPlaceFasterRight + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterLeft waitmovement 0 return PokemonTower_2F_EventScript_RivalFacePlayerDown:: - applymovement LOCALID_RIVAL, Movement_WalkInPlaceFasterDown - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterUp + applymovement LOCALID_RIVAL, Common_Movement_WalkInPlaceFasterDown + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterUp waitmovement 0 return diff --git a/data/maps/PokemonTower_3F/map.json b/data/maps/PokemonTower_3F/map.json index ee15b4a68..f894e4cf4 100644 --- a/data/maps/PokemonTower_3F/map.json +++ b/data/maps/PokemonTower_3F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CHANNELER", "x": 10, "y": 14, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CHANNELER", "x": 9, "y": 9, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CHANNELER", "x": 12, "y": 4, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 13, "y": 2, @@ -74,14 +78,14 @@ "y": 10, "elevation": 3, "dest_map": "MAP_POKEMON_TOWER_2F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 18, "y": 10, "elevation": 3, "dest_map": "MAP_POKEMON_TOWER_4F", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/PokemonTower_4F/map.json b/data/maps/PokemonTower_4F/map.json index 7924b4f3c..67aa43d0f 100644 --- a/data/maps/PokemonTower_4F/map.json +++ b/data/maps/PokemonTower_4F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CHANNELER", "x": 17, "y": 7, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CHANNELER", "x": 15, "y": 13, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CHANNELER", "x": 4, "y": 12, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 12, "y": 11, @@ -68,6 +72,7 @@ "flag": "FLAG_HIDE_POKEMON_TOWER_4F_ELIXIR" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 8, "y": 11, @@ -81,6 +86,7 @@ "flag": "FLAG_HIDE_POKEMON_TOWER_4F_AWAKENING" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 11, "y": 16, @@ -100,14 +106,14 @@ "y": 10, "elevation": 3, "dest_map": "MAP_POKEMON_TOWER_5F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 18, "y": 10, "elevation": 3, "dest_map": "MAP_POKEMON_TOWER_3F", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/PokemonTower_5F/map.json b/data/maps/PokemonTower_5F/map.json index 9f74a6aab..72fb7dee8 100644 --- a/data/maps/PokemonTower_5F/map.json +++ b/data/maps/PokemonTower_5F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CHANNELER", "x": 11, "y": 4, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CHANNELER", "x": 19, "y": 7, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CHANNELER", "x": 7, "y": 12, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CHANNELER", "x": 11, "y": 16, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CHANNELER", "x": 12, "y": 8, @@ -81,6 +86,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 6, "y": 16, @@ -94,6 +100,7 @@ "flag": "FLAG_HIDE_POKEMON_TOWER_5F_NUGGET" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 11, "y": 9, @@ -113,14 +120,14 @@ "y": 10, "elevation": 3, "dest_map": "MAP_POKEMON_TOWER_4F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 18, "y": 10, "elevation": 3, "dest_map": "MAP_POKEMON_TOWER_6F", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [ @@ -285,7 +292,7 @@ "y": 3, "elevation": 3, "item": "ITEM_BIG_MUSHROOM", - "flag": "HIDDEN_ITEM_POKEMON_TOWER_5F_BIG_MUSHROOM", + "flag": "FLAG_HIDDEN_ITEM_POKEMON_TOWER_5F_BIG_MUSHROOM", "quantity": 1, "underfoot": false } diff --git a/data/maps/PokemonTower_6F/map.json b/data/maps/PokemonTower_6F/map.json index ae72e35e6..da60ee269 100644 --- a/data/maps/PokemonTower_6F/map.json +++ b/data/maps/PokemonTower_6F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CHANNELER", "x": 13, "y": 10, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CHANNELER", "x": 18, "y": 6, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CHANNELER", "x": 9, "y": 6, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 5, "y": 15, @@ -68,6 +72,7 @@ "flag": "FLAG_HIDE_POKEMON_TOWER_6F_RARE_CANDY" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 15, "y": 15, @@ -87,14 +92,14 @@ "y": 16, "elevation": 3, "dest_map": "MAP_POKEMON_TOWER_7F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 18, "y": 10, "elevation": 3, "dest_map": "MAP_POKEMON_TOWER_5F", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [ diff --git a/data/maps/PokemonTower_7F/map.json b/data/maps/PokemonTower_7F/map.json index 327b9311b..75a293e4b 100644 --- a/data/maps/PokemonTower_7F/map.json +++ b/data/maps/PokemonTower_7F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MR_FUJI", "x": 11, "y": 4, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_TOWER_FUJI" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 9, "y": 10, @@ -42,6 +44,7 @@ "flag": "FLAG_HIDE_TOWER_ROCKET_1" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 13, "y": 8, @@ -55,6 +58,7 @@ "flag": "FLAG_HIDE_TOWER_ROCKET_2" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 9, "y": 6, @@ -74,7 +78,7 @@ "y": 16, "elevation": 3, "dest_map": "MAP_POKEMON_TOWER_6F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], @@ -85,7 +89,7 @@ "y": 4, "elevation": 3, "item": "ITEM_SOOTHE_BELL", - "flag": "HIDDEN_ITEM_POKEMON_TOWER_7F_SOOTHE_BELL", + "flag": "FLAG_HIDDEN_ITEM_POKEMON_TOWER_7F_SOOTHE_BELL", "quantity": 1, "underfoot": true } diff --git a/data/maps/PowerPlant/map.json b/data/maps/PowerPlant/map.json index f019d6320..38950b3a4 100644 --- a/data/maps/PowerPlant/map.json +++ b/data/maps/PowerPlant/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 7, "y": 27, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_POWER_PLANT_MAX_POTION" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 40, "y": 22, @@ -42,6 +44,7 @@ "flag": "FLAG_HIDE_POWER_PLANT_TM17" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 46, "y": 37, @@ -55,6 +58,7 @@ "flag": "FLAG_HIDE_POWER_PLANT_TM25" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 45, "y": 4, @@ -68,6 +72,7 @@ "flag": "FLAG_HIDE_POWER_PLANT_THUNDER_STONE" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 26, "y": 22, @@ -81,6 +86,7 @@ "flag": "FLAG_HIDE_POWER_PLANT_ELIXIR" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ZAPDOS", "x": 5, "y": 11, @@ -94,6 +100,7 @@ "flag": "FLAG_HIDE_ZAPDOS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 36, "y": 5, @@ -107,6 +114,7 @@ "flag": "FLAG_HIDE_POWER_PLANT_ELECTRODE_2" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 30, "y": 38, @@ -126,35 +134,35 @@ "y": 39, "elevation": 3, "dest_map": "MAP_ROUTE10", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 5, "y": 38, "elevation": 3, "dest_map": "MAP_ROUTE10", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 6, "y": 39, "elevation": 3, "dest_map": "MAP_ROUTE10", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 1, "y": 11, "elevation": 3, "dest_map": "MAP_ROUTE10", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 0, "y": 13, "elevation": 3, "dest_map": "MAP_ROUTE10", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [], @@ -165,7 +173,7 @@ "y": 16, "elevation": 3, "item": "ITEM_MAX_ELIXIR", - "flag": "HIDDEN_ITEM_POWER_PLANT_MAX_ELIXIR", + "flag": "FLAG_HIDDEN_ITEM_POWER_PLANT_MAX_ELIXIR", "quantity": 1, "underfoot": false }, @@ -175,7 +183,7 @@ "y": 12, "elevation": 3, "item": "ITEM_THUNDER_STONE", - "flag": "HIDDEN_ITEM_POWER_PLANT_THUNDER_STONE", + "flag": "FLAG_HIDDEN_ITEM_POWER_PLANT_THUNDER_STONE", "quantity": 1, "underfoot": false } diff --git a/data/maps/RecordCorner/map.json b/data/maps/RecordCorner/map.json index 67d6be4a5..48aea0b56 100644 --- a/data/maps/RecordCorner/map.json +++ b/data/maps/RecordCorner/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_UNION_ROOM_RECEPTIONIST", "x": 10, "y": 5, @@ -34,29 +35,29 @@ "x": 8, "y": 9, "elevation": 3, - "dest_map": "MAP_NONE", - "dest_warp_id": 127 + "dest_map": "MAP_DYNAMIC", + "dest_warp_id": "WARP_ID_DYNAMIC" }, { "x": 9, "y": 9, "elevation": 3, - "dest_map": "MAP_NONE", - "dest_warp_id": 127 + "dest_map": "MAP_DYNAMIC", + "dest_warp_id": "WARP_ID_DYNAMIC" }, { "x": 11, "y": 9, "elevation": 3, - "dest_map": "MAP_NONE", - "dest_warp_id": 127 + "dest_map": "MAP_DYNAMIC", + "dest_warp_id": "WARP_ID_DYNAMIC" }, { "x": 10, "y": 9, "elevation": 3, - "dest_map": "MAP_NONE", - "dest_warp_id": 127 + "dest_map": "MAP_DYNAMIC", + "dest_warp_id": "WARP_ID_DYNAMIC" } ], "coord_events": [ diff --git a/data/maps/RockTunnel_1F/map.json b/data/maps/RockTunnel_1F/map.json index 2c0ae4315..8c56778c2 100644 --- a/data/maps/RockTunnel_1F/map.json +++ b/data/maps/RockTunnel_1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PICNICKER", "x": 26, "y": 28, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PICNICKER", "x": 39, "y": 27, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PICNICKER", "x": 45, "y": 24, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_HIKER", "x": 20, "y": 17, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_HIKER", "x": 5, "y": 20, @@ -81,6 +86,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_HIKER", "x": 7, "y": 5, @@ -94,6 +100,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SUPER_NERD", "x": 27, "y": 10, @@ -107,6 +114,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 37, "y": 5, @@ -120,6 +128,7 @@ "flag": "FLAG_HIDE_ROCK_TUNNEL_1F_REPEL" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 33, "y": 22, @@ -133,6 +142,7 @@ "flag": "FLAG_HIDE_ROCK_TUNNEL_1F_PEARL" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 22, "y": 22, @@ -152,42 +162,42 @@ "y": 2, "elevation": 3, "dest_map": "MAP_ROUTE10", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 45, "y": 2, "elevation": 3, "dest_map": "MAP_ROCK_TUNNEL_B1F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 4, "y": 2, "elevation": 3, "dest_map": "MAP_ROCK_TUNNEL_B1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 20, "y": 13, "elevation": 3, "dest_map": "MAP_ROCK_TUNNEL_B1F", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 45, "y": 21, "elevation": 3, "dest_map": "MAP_ROCK_TUNNEL_B1F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 18, "y": 37, "elevation": 3, "dest_map": "MAP_ROUTE10", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/RockTunnel_B1F/map.json b/data/maps/RockTunnel_B1F/map.json index 186cd6336..b5dac6490 100644 --- a/data/maps/RockTunnel_B1F/map.json +++ b/data/maps/RockTunnel_B1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SUPER_NERD", "x": 2, "y": 6, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_HIKER", "x": 5, "y": 11, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PICNICKER", "x": 11, "y": 15, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_HIKER", "x": 36, "y": 11, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_HIKER", "x": 41, "y": 5, @@ -81,6 +86,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SUPER_NERD", "x": 23, "y": 23, @@ -94,6 +100,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PICNICKER", "x": 15, "y": 33, @@ -107,6 +114,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SUPER_NERD", "x": 29, "y": 35, @@ -120,6 +128,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 2, "y": 29, @@ -133,6 +142,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 2, "y": 37, @@ -146,6 +156,7 @@ "flag": "FLAG_HIDE_ROCK_TUNNEL_B1F_REVIVE" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 9, "y": 2, @@ -159,6 +170,7 @@ "flag": "FLAG_HIDE_ROCK_TUNNEL_B1F_MAX_ETHER" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 1, "y": 20, @@ -172,6 +184,7 @@ "flag": "FLAG_TEMP_12" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 1, "y": 22, @@ -185,6 +198,7 @@ "flag": "FLAG_TEMP_13" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 4, "y": 23, @@ -198,6 +212,7 @@ "flag": "FLAG_TEMP_14" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 2, "y": 23, @@ -211,6 +226,7 @@ "flag": "FLAG_TEMP_15" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 39, "y": 26, @@ -224,6 +240,7 @@ "flag": "FLAG_TEMP_16" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 42, "y": 26, @@ -237,6 +254,7 @@ "flag": "FLAG_TEMP_17" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 43, "y": 28, @@ -250,6 +268,7 @@ "flag": "FLAG_TEMP_18" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 45, "y": 30, @@ -263,6 +282,7 @@ "flag": "FLAG_TEMP_19" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 45, "y": 33, @@ -276,6 +296,7 @@ "flag": "FLAG_TEMP_1A" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 25, "y": 1, @@ -289,6 +310,7 @@ "flag": "FLAG_TEMP_1B" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 27, "y": 4, @@ -302,6 +324,7 @@ "flag": "FLAG_TEMP_1C" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 23, "y": 2, @@ -315,6 +338,7 @@ "flag": "FLAG_TEMP_1D" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 26, "y": 2, @@ -328,6 +352,7 @@ "flag": "FLAG_TEMP_1E" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 24, "y": 7, @@ -341,6 +366,7 @@ "flag": "FLAG_TEMP_1F" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 27, "y": 6, @@ -360,28 +386,28 @@ "y": 28, "elevation": 3, "dest_map": "MAP_ROCK_TUNNEL_1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 33, "y": 3, "elevation": 3, "dest_map": "MAP_ROCK_TUNNEL_1F", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 27, "y": 12, "elevation": 3, "dest_map": "MAP_ROCK_TUNNEL_1F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 2, "y": 3, "elevation": 3, "dest_map": "MAP_ROCK_TUNNEL_1F", - "dest_warp_id": 4 + "dest_warp_id": "4" } ], "coord_events": [], diff --git a/data/maps/RocketHideout_B1F/map.json b/data/maps/RocketHideout_B1F/map.json index 54cf4bdef..86b907054 100644 --- a/data/maps/RocketHideout_B1F/map.json +++ b/data/maps/RocketHideout_B1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 4, "y": 9, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_MISC_KANTO_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 24, "y": 12, @@ -42,6 +44,7 @@ "flag": "FLAG_HIDE_MISC_KANTO_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 6, "y": 32, @@ -55,6 +58,7 @@ "flag": "FLAG_HIDE_MISC_KANTO_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 10, "y": 22, @@ -68,6 +72,7 @@ "flag": "FLAG_HIDE_MISC_KANTO_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 21, "y": 27, @@ -81,6 +86,7 @@ "flag": "FLAG_HIDE_MISC_KANTO_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 5, "y": 16, @@ -94,6 +100,7 @@ "flag": "FLAG_HIDE_ROCKET_HIDEOUT_B1F_ESCAPE_ROPE" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 1, "y": 22, @@ -113,42 +120,42 @@ "y": 2, "elevation": 3, "dest_map": "MAP_CELADON_CITY_GAME_CORNER", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 17, "y": 2, "elevation": 3, "dest_map": "MAP_ROCKET_HIDEOUT_B2F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 15, "y": 30, "elevation": 3, "dest_map": "MAP_ROCKET_HIDEOUT_B2F", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 23, "y": 25, "elevation": 0, "dest_map": "MAP_ROCKET_HIDEOUT_ELEVATOR", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 24, "y": 25, "elevation": 0, "dest_map": "MAP_ROCKET_HIDEOUT_ELEVATOR", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 25, "y": 25, "elevation": 0, "dest_map": "MAP_ROCKET_HIDEOUT_ELEVATOR", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], @@ -159,7 +166,7 @@ "y": 17, "elevation": 0, "item": "ITEM_PP_UP", - "flag": "HIDDEN_ITEM_ROCKET_HIDEOUT_B1F_PP_UP", + "flag": "FLAG_HIDDEN_ITEM_ROCKET_HIDEOUT_B1F_PP_UP", "quantity": 1, "underfoot": false } diff --git a/data/maps/RocketHideout_B2F/map.json b/data/maps/RocketHideout_B2F/map.json index 9cdb75e2a..6b465505d 100644 --- a/data/maps/RocketHideout_B2F/map.json +++ b/data/maps/RocketHideout_B2F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 20, "y": 6, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_MISC_KANTO_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 15, "y": 3, @@ -42,6 +44,7 @@ "flag": "FLAG_HIDE_ROCKET_HIDEOUT_B2F_X_SPEED" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 2, "y": 5, @@ -55,6 +58,7 @@ "flag": "FLAG_HIDE_ROCKET_HIDEOUT_B2F_MOON_STONE" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 5, "y": 7, @@ -68,6 +72,7 @@ "flag": "FLAG_HIDE_ROCKET_HIDEOUT_B2F_TM12" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 0, "y": 14, @@ -87,35 +92,35 @@ "y": 2, "elevation": 3, "dest_map": "MAP_ROCKET_HIDEOUT_B3F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 28, "y": 2, "elevation": 3, "dest_map": "MAP_ROCKET_HIDEOUT_B1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 23, "y": 12, "elevation": 3, "dest_map": "MAP_ROCKET_HIDEOUT_B1F", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 28, "y": 16, "elevation": 0, "dest_map": "MAP_ROCKET_HIDEOUT_ELEVATOR", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 29, "y": 16, "elevation": 0, "dest_map": "MAP_ROCKET_HIDEOUT_ELEVATOR", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/RocketHideout_B3F/map.json b/data/maps/RocketHideout_B3F/map.json index 5ab261edf..a606996ed 100644 --- a/data/maps/RocketHideout_B3F/map.json +++ b/data/maps/RocketHideout_B3F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 19, "y": 9, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_MISC_KANTO_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 2, "y": 20, @@ -42,6 +44,7 @@ "flag": "FLAG_HIDE_MISC_KANTO_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 12, "y": 12, @@ -55,6 +58,7 @@ "flag": "FLAG_HIDE_ROCKET_HIDEOUT_B3F_RARE_CANDY" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 19, "y": 14, @@ -68,6 +72,7 @@ "flag": "FLAG_HIDE_ROCKET_HIDEOUT_B3F_TM21" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 14, "y": 24, @@ -87,14 +92,14 @@ "y": 2, "elevation": 3, "dest_map": "MAP_ROCKET_HIDEOUT_B2F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 15, "y": 18, "elevation": 3, "dest_map": "MAP_ROCKET_HIDEOUT_B4F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], @@ -105,7 +110,7 @@ "y": 3, "elevation": 3, "item": "ITEM_NUGGET", - "flag": "HIDDEN_ITEM_ROCKET_HIDEOUT_B3F_NUGGET", + "flag": "FLAG_HIDDEN_ITEM_ROCKET_HIDEOUT_B3F_NUGGET", "quantity": 1, "underfoot": false } diff --git a/data/maps/RocketHideout_B4F/map.json b/data/maps/RocketHideout_B4F/map.json index 0e55fb111..8ad0ad4e7 100644 --- a/data/maps/RocketHideout_B4F/map.json +++ b/data/maps/RocketHideout_B4F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GIOVANNI", "x": 19, "y": 4, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_HIDEOUT_GIOVANNI" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 20, "y": 5, @@ -42,6 +44,7 @@ "flag": "FLAG_HIDE_SILPH_SCOPE" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 4, "y": 2, @@ -55,6 +58,7 @@ "flag": "FLAG_HIDE_MISC_KANTO_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 3, "y": 2, @@ -68,6 +72,7 @@ "flag": "FLAG_HIDE_LIFT_KEY" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 19, "y": 14, @@ -81,6 +86,7 @@ "flag": "FLAG_HIDE_MISC_KANTO_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 16, "y": 14, @@ -94,6 +100,7 @@ "flag": "FLAG_HIDE_MISC_KANTO_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 1, "y": 6, @@ -107,6 +114,7 @@ "flag": "FLAG_HIDE_ROCKET_HIDEOUT_B4F_TM49" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 4, "y": 14, @@ -120,6 +128,7 @@ "flag": "FLAG_HIDE_ROCKET_HIDEOUT_B4F_MAX_ETHER" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 6, "y": 23, @@ -139,21 +148,21 @@ "y": 15, "elevation": 3, "dest_map": "MAP_ROCKET_HIDEOUT_B3F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 20, "y": 23, "elevation": 0, "dest_map": "MAP_ROCKET_HIDEOUT_ELEVATOR", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 21, "y": 23, "elevation": 0, "dest_map": "MAP_ROCKET_HIDEOUT_ELEVATOR", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], @@ -164,7 +173,7 @@ "y": 6, "elevation": 3, "item": "ITEM_NEST_BALL", - "flag": "HIDDEN_ITEM_ROCKET_HIDEOUT_B4F_NEST_BALL", + "flag": "FLAG_HIDDEN_ITEM_ROCKET_HIDEOUT_B4F_NEST_BALL", "quantity": 1, "underfoot": false }, @@ -174,7 +183,7 @@ "y": 6, "elevation": 3, "item": "ITEM_NET_BALL", - "flag": "HIDDEN_ITEM_ROCKET_HIDEOUT_B4F_NET_BALL", + "flag": "FLAG_HIDDEN_ITEM_ROCKET_HIDEOUT_B4F_NET_BALL", "quantity": 1, "underfoot": false } diff --git a/data/maps/RocketHideout_Elevator/map.json b/data/maps/RocketHideout_Elevator/map.json index 71a762a19..223fa0497 100644 --- a/data/maps/RocketHideout_Elevator/map.json +++ b/data/maps/RocketHideout_Elevator/map.json @@ -20,15 +20,15 @@ "x": 1, "y": 5, "elevation": 3, - "dest_map": "MAP_NONE", - "dest_warp_id": 127 + "dest_map": "MAP_DYNAMIC", + "dest_warp_id": "WARP_ID_DYNAMIC" }, { "x": 2, "y": 5, "elevation": 3, - "dest_map": "MAP_NONE", - "dest_warp_id": 127 + "dest_map": "MAP_DYNAMIC", + "dest_warp_id": "WARP_ID_DYNAMIC" } ], "coord_events": [], diff --git a/data/maps/Route1/map.json b/data/maps/Route1/map.json index 96878b73b..b2145ee92 100644 --- a/data/maps/Route1/map.json +++ b/data/maps/Route1/map.json @@ -27,6 +27,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CLERK", "x": 6, "y": 28, @@ -40,6 +41,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BOY", "x": 19, "y": 16, diff --git a/data/maps/Route10/map.json b/data/maps/Route10/map.json index 9c82434fb..97d85418f 100644 --- a/data/maps/Route10/map.json +++ b/data/maps/Route10/map.json @@ -27,6 +27,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PICNICKER", "x": 7, "y": 60, @@ -40,6 +41,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_HIKER", "x": 4, "y": 62, @@ -53,6 +55,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SUPER_NERD", "x": 15, "y": 70, @@ -66,6 +69,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_HIKER", "x": 4, "y": 68, @@ -79,6 +83,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SUPER_NERD", "x": 13, "y": 44, @@ -92,6 +97,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PICNICKER", "x": 9, "y": 27, @@ -105,6 +111,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 10, "y": 20, @@ -118,6 +125,7 @@ "flag": "FLAG_TEMP_12" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 10, "y": 22, @@ -131,6 +139,7 @@ "flag": "FLAG_TEMP_13" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 10, "y": 24, @@ -144,6 +153,7 @@ "flag": "FLAG_TEMP_14" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 10, "y": 26, @@ -163,35 +173,35 @@ "y": 19, "elevation": 3, "dest_map": "MAP_ROCK_TUNNEL_1F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 8, "y": 57, "elevation": 3, "dest_map": "MAP_ROCK_TUNNEL_1F", - "dest_warp_id": 5 + "dest_warp_id": "5" }, { "x": 7, "y": 40, "elevation": 3, "dest_map": "MAP_POWER_PLANT", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 13, "y": 20, "elevation": 0, "dest_map": "MAP_ROUTE10_POKEMON_CENTER_1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 2, "y": 37, "elevation": 3, "dest_map": "MAP_POWER_PLANT", - "dest_warp_id": 3 + "dest_warp_id": "3" } ], "coord_events": [], @@ -226,7 +236,7 @@ "y": 19, "elevation": 0, "item": "ITEM_SUPER_POTION", - "flag": "HIDDEN_ITEM_ROUTE10_SUPER_POTION", + "flag": "FLAG_HIDDEN_ITEM_ROUTE10_SUPER_POTION", "quantity": 1, "underfoot": false }, @@ -236,7 +246,7 @@ "y": 40, "elevation": 3, "item": "ITEM_MAX_ETHER", - "flag": "HIDDEN_ITEM_ROUTE10_MAX_ETHER", + "flag": "FLAG_HIDDEN_ITEM_ROUTE10_MAX_ETHER", "quantity": 1, "underfoot": false }, @@ -246,7 +256,7 @@ "y": 26, "elevation": 3, "item": "ITEM_CHERI_BERRY", - "flag": "HIDDEN_ITEM_ROUTE10_CHERI_BERRY", + "flag": "FLAG_HIDDEN_ITEM_ROUTE10_CHERI_BERRY", "quantity": 1, "underfoot": false }, @@ -256,7 +266,7 @@ "y": 29, "elevation": 3, "item": "ITEM_PERSIM_BERRY", - "flag": "HIDDEN_ITEM_ROUTE10_PERSIM_BERRY", + "flag": "FLAG_HIDDEN_ITEM_ROUTE10_PERSIM_BERRY", "quantity": 1, "underfoot": false }, @@ -266,7 +276,7 @@ "y": 57, "elevation": 3, "item": "ITEM_NANAB_BERRY", - "flag": "HIDDEN_ITEM_ROUTE10_NANAB_BERRY", + "flag": "FLAG_HIDDEN_ITEM_ROUTE10_NANAB_BERRY", "quantity": 1, "underfoot": false } diff --git a/data/maps/Route10_PokemonCenter_1F/map.json b/data/maps/Route10_PokemonCenter_1F/map.json index b8c0aa7ed..a49cb927d 100644 --- a/data/maps/Route10_PokemonCenter_1F/map.json +++ b/data/maps/Route10_PokemonCenter_1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_NURSE", "x": 7, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN", "x": 9, "y": 4, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_FAT_MAN", "x": 2, "y": 3, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 14, "y": 6, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 12, "y": 5, @@ -87,28 +92,28 @@ "y": 8, "elevation": 3, "dest_map": "MAP_ROUTE10", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 7, "y": 8, "elevation": 3, "dest_map": "MAP_ROUTE10", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 8, "y": 8, "elevation": 3, "dest_map": "MAP_ROUTE10", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 1, "y": 6, "elevation": 4, "dest_map": "MAP_ROUTE10_POKEMON_CENTER_2F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/Route10_PokemonCenter_2F/map.json b/data/maps/Route10_PokemonCenter_2F/map.json index 665f25678..314ea1b67 100644 --- a/data/maps/Route10_PokemonCenter_2F/map.json +++ b/data/maps/Route10_PokemonCenter_2F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 6, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 2, "y": 2, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 10, "y": 2, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MG_DELIVERYMAN", "x": 1, "y": 2, @@ -74,21 +78,21 @@ "y": 6, "elevation": 4, "dest_map": "MAP_ROUTE10_POKEMON_CENTER_1F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 5, "y": 1, "elevation": 0, "dest_map": "MAP_UNION_ROOM", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 9, "y": 1, "elevation": 0, "dest_map": "MAP_TRADE_CENTER", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/Route11/map.json b/data/maps/Route11/map.json index c948dcfc4..8bceede43 100644 --- a/data/maps/Route11/map.json +++ b/data/maps/Route11/map.json @@ -27,6 +27,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 19, "y": 8, @@ -40,6 +41,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", "x": 16, "y": 17, @@ -53,6 +55,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 31, "y": 8, @@ -66,6 +69,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 28, "y": 10, @@ -79,6 +83,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", "x": 38, "y": 15, @@ -92,6 +97,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", "x": 50, "y": 4, @@ -105,6 +111,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", "x": 42, "y": 8, @@ -118,6 +125,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 50, "y": 14, @@ -131,6 +139,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", "x": 57, "y": 16, @@ -144,6 +153,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", "x": 32, "y": 18, @@ -157,6 +167,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 42, "y": 12, @@ -170,6 +181,7 @@ "flag": "FLAG_HIDE_ROUTE11_X_DEFEND" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 63, "y": 13, @@ -183,6 +195,7 @@ "flag": "FLAG_HIDE_ROUTE11_GREAT_BALL" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 13, "y": 3, @@ -202,21 +215,21 @@ "y": 7, "elevation": 0, "dest_map": "MAP_DIGLETTS_CAVE_SOUTH_ENTRANCE", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 58, "y": 10, "elevation": 3, "dest_map": "MAP_ROUTE11_EAST_ENTRANCE_1F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 65, "y": 10, "elevation": 3, "dest_map": "MAP_ROUTE11_EAST_ENTRANCE_1F", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [], @@ -235,7 +248,7 @@ "y": 5, "elevation": 0, "item": "ITEM_ESCAPE_ROPE", - "flag": "HIDDEN_ITEM_ROUTE11_ESCAPE_ROPE", + "flag": "FLAG_HIDDEN_ITEM_ROUTE11_ESCAPE_ROPE", "quantity": 1, "underfoot": false } diff --git a/data/maps/Route11_EastEntrance_1F/map.json b/data/maps/Route11_EastEntrance_1F/map.json index 4063642d2..e6a85b2a2 100644 --- a/data/maps/Route11_EastEntrance_1F/map.json +++ b/data/maps/Route11_EastEntrance_1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_POLICEMAN", "x": 6, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_POLICEMAN", "x": 4, "y": 10, @@ -48,35 +50,35 @@ "y": 6, "elevation": 3, "dest_map": "MAP_ROUTE11", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 1, "y": 7, "elevation": 3, "dest_map": "MAP_ROUTE11", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 11, "y": 6, "elevation": 3, "dest_map": "MAP_ROUTE11", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 11, "y": 7, "elevation": 3, "dest_map": "MAP_ROUTE11", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 9, "y": 10, "elevation": 3, "dest_map": "MAP_ROUTE11_EAST_ENTRANCE_2F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/Route11_EastEntrance_2F/map.json b/data/maps/Route11_EastEntrance_2F/map.json index ae37f03ea..50a7c6f58 100644 --- a/data/maps/Route11_EastEntrance_2F/map.json +++ b/data/maps/Route11_EastEntrance_2F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 7, "y": 3, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 2, "y": 6, @@ -48,7 +50,7 @@ "y": 9, "elevation": 3, "dest_map": "MAP_ROUTE11_EAST_ENTRANCE_1F", - "dest_warp_id": 4 + "dest_warp_id": "4" } ], "coord_events": [], diff --git a/data/maps/Route12/map.json b/data/maps/Route12/map.json index 49f08179c..ec90e4440 100644 --- a/data/maps/Route12/map.json +++ b/data/maps/Route12/map.json @@ -32,6 +32,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_FISHER", "x": 17, "y": 32, @@ -45,6 +46,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_FISHER", "x": 9, "y": 40, @@ -58,6 +60,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_FISHER", "x": 16, "y": 47, @@ -71,6 +74,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_FISHER", "x": 13, "y": 59, @@ -84,6 +88,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SNORLAX", "x": 14, "y": 70, @@ -97,6 +102,7 @@ "flag": "FLAG_HIDE_ROUTE_12_SNORLAX" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKER", "x": 13, "y": 92, @@ -110,6 +116,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CAMPER", "x": 10, "y": 99, @@ -123,6 +130,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_FISHER", "x": 18, "y": 108, @@ -136,6 +144,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 11, "y": 100, @@ -149,6 +158,7 @@ "flag": "FLAG_TEMP_12" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 18, "y": 36, @@ -162,6 +172,7 @@ "flag": "FLAG_HIDE_ROUTE12_TM48" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 9, "y": 101, @@ -175,6 +186,7 @@ "flag": "FLAG_HIDE_ROUTE12_IRON" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BEAUTY", "x": 19, "y": 64, @@ -188,6 +200,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MAN", "x": 19, "y": 63, @@ -201,6 +214,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 12, "y": 111, @@ -220,28 +234,28 @@ "y": 86, "elevation": 0, "dest_map": "MAP_ROUTE12_FISHING_HOUSE", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 14, "y": 15, "elevation": 3, "dest_map": "MAP_ROUTE12_NORTH_ENTRANCE_1F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 15, "y": 15, "elevation": 3, "dest_map": "MAP_ROUTE12_NORTH_ENTRANCE_1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 14, "y": 21, "elevation": 3, "dest_map": "MAP_ROUTE12_NORTH_ENTRANCE_1F", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [], @@ -268,7 +282,7 @@ "y": 57, "elevation": 3, "item": "ITEM_HYPER_POTION", - "flag": "HIDDEN_ITEM_ROUTE12_HYPER_POTION", + "flag": "FLAG_HIDDEN_ITEM_ROUTE12_HYPER_POTION", "quantity": 1, "underfoot": false }, @@ -278,7 +292,7 @@ "y": 70, "elevation": 3, "item": "ITEM_LEFTOVERS", - "flag": "HIDDEN_ITEM_ROUTE12_LEFTOVERS", + "flag": "FLAG_HIDDEN_ITEM_ROUTE12_LEFTOVERS", "quantity": 1, "underfoot": true }, @@ -288,7 +302,7 @@ "y": 116, "elevation": 3, "item": "ITEM_RARE_CANDY", - "flag": "HIDDEN_ITEM_ROUTE12_RARE_CANDY", + "flag": "FLAG_HIDDEN_ITEM_ROUTE12_RARE_CANDY", "quantity": 1, "underfoot": false } diff --git a/data/maps/Route12_FishingHouse/map.json b/data/maps/Route12_FishingHouse/map.json index 1ae854e05..c0e761da1 100644 --- a/data/maps/Route12_FishingHouse/map.json +++ b/data/maps/Route12_FishingHouse/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_FISHER", "x": 4, "y": 4, @@ -35,21 +36,21 @@ "y": 8, "elevation": 0, "dest_map": "MAP_ROUTE12", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 3, "y": 7, "elevation": 3, "dest_map": "MAP_ROUTE12", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 4, "y": 8, "elevation": 0, "dest_map": "MAP_ROUTE12", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/Route12_NorthEntrance_1F/map.json b/data/maps/Route12_NorthEntrance_1F/map.json index 552880a86..4a03cf2cf 100644 --- a/data/maps/Route12_NorthEntrance_1F/map.json +++ b/data/maps/Route12_NorthEntrance_1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_POLICEMAN", "x": 1, "y": 5, @@ -35,35 +36,35 @@ "y": 1, "elevation": 3, "dest_map": "MAP_ROUTE12", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 6, "y": 1, "elevation": 0, "dest_map": "MAP_ROUTE12", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 5, "y": 11, "elevation": 3, "dest_map": "MAP_ROUTE12", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 6, "y": 11, "elevation": 3, "dest_map": "MAP_ROUTE12", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 8, "y": 10, "elevation": 3, "dest_map": "MAP_ROUTE12_NORTH_ENTRANCE_2F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/Route12_NorthEntrance_2F/map.json b/data/maps/Route12_NorthEntrance_2F/map.json index 192b2f407..0a57d4beb 100644 --- a/data/maps/Route12_NorthEntrance_2F/map.json +++ b/data/maps/Route12_NorthEntrance_2F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LASS", "x": 7, "y": 5, @@ -35,7 +36,7 @@ "y": 9, "elevation": 3, "dest_map": "MAP_ROUTE12_NORTH_ENTRANCE_1F", - "dest_warp_id": 4 + "dest_warp_id": "4" } ], "coord_events": [], diff --git a/data/maps/Route13/map.json b/data/maps/Route13/map.json index d22b8fe8b..e24ec68d2 100644 --- a/data/maps/Route13/map.json +++ b/data/maps/Route13/map.json @@ -27,6 +27,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PICNICKER", "x": 62, "y": 6, @@ -40,6 +41,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKER", "x": 63, "y": 12, @@ -53,6 +55,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PICNICKER", "x": 54, "y": 11, @@ -66,6 +69,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BEAUTY", "x": 42, "y": 7, @@ -79,6 +83,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BEAUTY", "x": 43, "y": 7, @@ -92,6 +97,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PICNICKER", "x": 35, "y": 10, @@ -105,6 +111,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PICNICKER", "x": 29, "y": 11, @@ -118,6 +125,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKER", "x": 9, "y": 14, @@ -131,6 +139,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKER", "x": 16, "y": 5, @@ -144,6 +153,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BIKER", "x": 14, "y": 8, @@ -157,6 +167,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 44, "y": 5, @@ -203,7 +214,7 @@ "y": 14, "elevation": 3, "item": "ITEM_PP_UP", - "flag": "HIDDEN_ITEM_ROUTE13_PP_UP", + "flag": "FLAG_HIDDEN_ITEM_ROUTE13_PP_UP", "quantity": 1, "underfoot": false } diff --git a/data/maps/Route14/map.json b/data/maps/Route14/map.json index 212b190b0..c3b58cf4b 100644 --- a/data/maps/Route14/map.json +++ b/data/maps/Route14/map.json @@ -27,6 +27,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BIKER", "x": 7, "y": 37, @@ -40,6 +41,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKER", "x": 18, "y": 35, @@ -53,6 +55,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKER", "x": 10, "y": 14, @@ -66,6 +69,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKER", "x": 16, "y": 16, @@ -79,6 +83,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BIKER", "x": 7, "y": 31, @@ -92,6 +97,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BIKER", "x": 7, "y": 34, @@ -105,6 +111,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKER", "x": 8, "y": 9, @@ -118,6 +125,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKER", "x": 7, "y": 6, @@ -131,6 +139,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BIKER", "x": 10, "y": 37, @@ -144,6 +153,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKER", "x": 18, "y": 47, @@ -157,6 +167,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 7, "y": 26, @@ -170,6 +181,7 @@ "flag": "FLAG_TEMP_12" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 12, "y": 35, @@ -183,6 +195,7 @@ "flag": "FLAG_TEMP_13" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 1, "y": 47, @@ -196,6 +209,7 @@ "flag": "FLAG_TEMP_14" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LITTLE_GIRL", "x": 13, "y": 51, @@ -209,6 +223,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LITTLE_GIRL", "x": 12, "y": 51, @@ -239,7 +254,7 @@ "y": 20, "elevation": 3, "item": "ITEM_ZINC", - "flag": "HIDDEN_ITEM_ROUTE14_ZINC", + "flag": "FLAG_HIDDEN_ITEM_ROUTE14_ZINC", "quantity": 1, "underfoot": false }, @@ -249,7 +264,7 @@ "y": 53, "elevation": 3, "item": "ITEM_PINAP_BERRY", - "flag": "HIDDEN_ITEM_ROUTE14_PINAP_BERRY", + "flag": "FLAG_HIDDEN_ITEM_ROUTE14_PINAP_BERRY", "quantity": 1, "underfoot": false } diff --git a/data/maps/Route15/map.json b/data/maps/Route15/map.json index df6d62329..433c045bb 100644 --- a/data/maps/Route15/map.json +++ b/data/maps/Route15/map.json @@ -27,6 +27,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PICNICKER", "x": 22, "y": 13, @@ -40,6 +41,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKER", "x": 31, "y": 12, @@ -53,6 +55,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKER", "x": 37, "y": 14, @@ -66,6 +69,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PICNICKER", "x": 44, "y": 13, @@ -79,6 +83,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BEAUTY", "x": 50, "y": 12, @@ -92,6 +97,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BIKER", "x": 59, "y": 12, @@ -105,6 +111,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BIKER", "x": 63, "y": 13, @@ -118,6 +125,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PICNICKER", "x": 52, "y": 8, @@ -131,6 +139,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BEAUTY", "x": 54, "y": 12, @@ -144,6 +153,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PICNICKER", "x": 28, "y": 6, @@ -157,6 +167,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 20, "y": 6, @@ -170,6 +181,7 @@ "flag": "FLAG_HIDE_ROUTE15_TM18" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BLACKBELT", "x": 39, "y": 7, @@ -183,6 +195,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BATTLE_GIRL", "x": 40, "y": 7, @@ -196,18 +209,12 @@ "flag": "0" }, { + "type": "clone", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", - "in_connection": true, "x": 73, "y": 7, - "elevation": 13, - "movement_type": "MOVEMENT_TYPE_NONE", - "movement_range_x": 0, - "movement_range_y": 0, - "trainer_type": "32", - "trainer_sight_or_berry_tree_id": "3", - "script": "0x0", - "flag": "0" + "target_local_id": 13, + "target_map": "MAP_ROUTE14" } ], "warp_events": [ @@ -216,14 +223,14 @@ "y": 11, "elevation": 3, "dest_map": "MAP_ROUTE15_WEST_ENTRANCE_1F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 16, "y": 11, "elevation": 3, "dest_map": "MAP_ROUTE15_WEST_ENTRANCE_1F", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [], diff --git a/data/maps/Route15_WestEntrance_1F/map.json b/data/maps/Route15_WestEntrance_1F/map.json index 1317b92f8..e1d529a19 100644 --- a/data/maps/Route15_WestEntrance_1F/map.json +++ b/data/maps/Route15_WestEntrance_1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_POLICEMAN", "x": 6, "y": 2, @@ -35,35 +36,35 @@ "y": 6, "elevation": 3, "dest_map": "MAP_ROUTE15", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 1, "y": 7, "elevation": 3, "dest_map": "MAP_ROUTE15", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 11, "y": 6, "elevation": 3, "dest_map": "MAP_ROUTE15", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 11, "y": 7, "elevation": 3, "dest_map": "MAP_ROUTE15", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 9, "y": 10, "elevation": 3, "dest_map": "MAP_ROUTE15_WEST_ENTRANCE_2F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/Route15_WestEntrance_2F/map.json b/data/maps/Route15_WestEntrance_2F/map.json index 1bba0494e..4163c8bb8 100644 --- a/data/maps/Route15_WestEntrance_2F/map.json +++ b/data/maps/Route15_WestEntrance_2F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 5, "y": 5, @@ -35,7 +36,7 @@ "y": 9, "elevation": 3, "dest_map": "MAP_ROUTE15_WEST_ENTRANCE_1F", - "dest_warp_id": 4 + "dest_warp_id": "4" } ], "coord_events": [], diff --git a/data/maps/Route16/map.json b/data/maps/Route16/map.json index 3b63483b2..97a8592cb 100644 --- a/data/maps/Route16/map.json +++ b/data/maps/Route16/map.json @@ -27,6 +27,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BIKER", "x": 16, "y": 12, @@ -40,6 +41,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BIKER", "x": 14, "y": 14, @@ -53,6 +55,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BIKER", "x": 12, "y": 12, @@ -66,6 +69,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BIKER", "x": 8, "y": 12, @@ -79,6 +83,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BIKER", "x": 10, "y": 14, @@ -92,6 +97,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BIKER", "x": 6, "y": 14, @@ -105,6 +111,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 41, "y": 11, @@ -118,6 +125,7 @@ "flag": "FLAG_TEMP_12" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BEAUTY", "x": 30, "y": 5, @@ -131,6 +139,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MAN", "x": 31, "y": 5, @@ -144,6 +153,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SNORLAX", "x": 31, "y": 13, @@ -163,35 +173,35 @@ "y": 5, "elevation": 0, "dest_map": "MAP_ROUTE16_HOUSE", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 20, "y": 6, "elevation": 3, "dest_map": "MAP_ROUTE16_NORTH_ENTRANCE_1F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 27, "y": 6, "elevation": 3, "dest_map": "MAP_ROUTE16_NORTH_ENTRANCE_1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 20, "y": 13, "elevation": 3, "dest_map": "MAP_ROUTE16_NORTH_ENTRANCE_1F", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 27, "y": 13, "elevation": 3, "dest_map": "MAP_ROUTE16_NORTH_ENTRANCE_1F", - "dest_warp_id": 3 + "dest_warp_id": "3" } ], "coord_events": [], @@ -218,7 +228,7 @@ "y": 13, "elevation": 3, "item": "ITEM_LEFTOVERS", - "flag": "HIDDEN_ITEM_ROUTE16_LEFTOVERS", + "flag": "FLAG_HIDDEN_ITEM_ROUTE16_LEFTOVERS", "quantity": 1, "underfoot": true } diff --git a/data/maps/Route16_House/map.json b/data/maps/Route16_House/map.json index f8bd335b3..b2a9374c7 100644 --- a/data/maps/Route16_House/map.json +++ b/data/maps/Route16_House/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_1", "x": 4, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_FEAROW", "x": 9, "y": 3, @@ -48,21 +50,21 @@ "y": 7, "elevation": 3, "dest_map": "MAP_ROUTE16", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 4, "y": 7, "elevation": 3, "dest_map": "MAP_ROUTE16", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 5, "y": 7, "elevation": 3, "dest_map": "MAP_ROUTE16", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/Route16_NorthEntrance_1F/map.json b/data/maps/Route16_NorthEntrance_1F/map.json index d79f1d50b..272c358b9 100644 --- a/data/maps/Route16_NorthEntrance_1F/map.json +++ b/data/maps/Route16_NorthEntrance_1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_POLICEMAN", "x": 6, "y": 8, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", "x": 7, "y": 4, @@ -48,35 +50,35 @@ "y": 3, "elevation": 3, "dest_map": "MAP_ROUTE16", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 11, "y": 3, "elevation": 3, "dest_map": "MAP_ROUTE16", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 1, "y": 12, "elevation": 3, "dest_map": "MAP_ROUTE16", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 11, "y": 12, "elevation": 3, "dest_map": "MAP_ROUTE16", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 9, "y": 16, "elevation": 3, "dest_map": "MAP_ROUTE16_NORTH_ENTRANCE_2F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [ diff --git a/data/maps/Route16_NorthEntrance_1F/scripts.inc b/data/maps/Route16_NorthEntrance_1F/scripts.inc index b7e9fcfcc..d0e52d70f 100644 --- a/data/maps/Route16_NorthEntrance_1F/scripts.inc +++ b/data/maps/Route16_NorthEntrance_1F/scripts.inc @@ -49,7 +49,7 @@ Route16_NorthEntrance_1F_EventScript_NeedBikeTrigger:: textcolor NPC_TEXT_COLOR_MALE msgbox Route16_NorthEntrance_1F_Text_ExcuseMeWaitUp closemessage - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterUp + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterUp waitmovement 0 delay 20 call_if_eq VAR_0x8008, 1, Route16_NorthEntrance_1F_EventScript_PlayerWalkToCounterMidTop diff --git a/data/maps/Route16_NorthEntrance_2F/map.json b/data/maps/Route16_NorthEntrance_2F/map.json index bf37d4ab4..6bea3b6cd 100644 --- a/data/maps/Route16_NorthEntrance_2F/map.json +++ b/data/maps/Route16_NorthEntrance_2F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LITTLE_BOY", "x": 6, "y": 3, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LITTLE_GIRL", "x": 4, "y": 8, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 10, "y": 6, @@ -61,7 +64,7 @@ "y": 9, "elevation": 3, "dest_map": "MAP_ROUTE16_NORTH_ENTRANCE_1F", - "dest_warp_id": 4 + "dest_warp_id": "4" } ], "coord_events": [], diff --git a/data/maps/Route17/map.json b/data/maps/Route17/map.json index 7218a151b..5aeda1cda 100644 --- a/data/maps/Route17/map.json +++ b/data/maps/Route17/map.json @@ -27,6 +27,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BIKER", "x": 4, "y": 18, @@ -40,6 +41,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BIKER", "x": 11, "y": 15, @@ -53,6 +55,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BIKER", "x": 15, "y": 24, @@ -66,6 +69,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BIKER", "x": 18, "y": 41, @@ -79,6 +83,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BIKER", "x": 7, "y": 38, @@ -92,6 +97,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BIKER", "x": 2, "y": 61, @@ -105,6 +111,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BIKER", "x": 21, "y": 61, @@ -118,6 +125,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BIKER", "x": 18, "y": 94, @@ -131,6 +139,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BIKER", "x": 16, "y": 134, @@ -144,6 +153,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BIKER", "x": 4, "y": 116, @@ -214,7 +224,7 @@ "y": 83, "elevation": 3, "item": "ITEM_RARE_CANDY", - "flag": "HIDDEN_ITEM_ROUTE17_RARE_CANDY", + "flag": "FLAG_HIDDEN_ITEM_ROUTE17_RARE_CANDY", "quantity": 1, "underfoot": false }, @@ -224,7 +234,7 @@ "y": 53, "elevation": 3, "item": "ITEM_FULL_RESTORE", - "flag": "HIDDEN_ITEM_ROUTE17_FULL_RESTORE", + "flag": "FLAG_HIDDEN_ITEM_ROUTE17_FULL_RESTORE", "quantity": 1, "underfoot": false }, @@ -234,7 +244,7 @@ "y": 68, "elevation": 3, "item": "ITEM_PP_UP", - "flag": "HIDDEN_ITEM_ROUTE17_PP_UP", + "flag": "FLAG_HIDDEN_ITEM_ROUTE17_PP_UP", "quantity": 1, "underfoot": false }, @@ -244,7 +254,7 @@ "y": 125, "elevation": 3, "item": "ITEM_MAX_REVIVE", - "flag": "HIDDEN_ITEM_ROUTE17_MAX_REVIVE", + "flag": "FLAG_HIDDEN_ITEM_ROUTE17_MAX_REVIVE", "quantity": 1, "underfoot": false }, @@ -254,7 +264,7 @@ "y": 157, "elevation": 3, "item": "ITEM_MAX_ELIXIR", - "flag": "HIDDEN_ITEM_ROUTE17_MAX_ELIXIR", + "flag": "FLAG_HIDDEN_ITEM_ROUTE17_MAX_ELIXIR", "quantity": 1, "underfoot": false } diff --git a/data/maps/Route18/map.json b/data/maps/Route18/map.json index 28e35b7a3..14f7aee1c 100644 --- a/data/maps/Route18/map.json +++ b/data/maps/Route18/map.json @@ -27,6 +27,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKER", "x": 46, "y": 14, @@ -40,6 +41,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKER", "x": 41, "y": 15, @@ -53,6 +55,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKER", "x": 39, "y": 12, @@ -72,14 +75,14 @@ "y": 9, "elevation": 3, "dest_map": "MAP_ROUTE18_EAST_ENTRANCE_1F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 48, "y": 9, "elevation": 3, "dest_map": "MAP_ROUTE18_EAST_ENTRANCE_1F", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/Route18_EastEntrance_1F/map.json b/data/maps/Route18_EastEntrance_1F/map.json index 0cd6eaa19..cb905b343 100644 --- a/data/maps/Route18_EastEntrance_1F/map.json +++ b/data/maps/Route18_EastEntrance_1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_POLICEMAN", "x": 6, "y": 2, @@ -35,21 +36,21 @@ "y": 6, "elevation": 3, "dest_map": "MAP_ROUTE18", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 11, "y": 6, "elevation": 3, "dest_map": "MAP_ROUTE18", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 9, "y": 10, "elevation": 3, "dest_map": "MAP_ROUTE18_EAST_ENTRANCE_2F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [ diff --git a/data/maps/Route18_EastEntrance_1F/scripts.inc b/data/maps/Route18_EastEntrance_1F/scripts.inc index 0c05c8beb..05e2526e4 100644 --- a/data/maps/Route18_EastEntrance_1F/scripts.inc +++ b/data/maps/Route18_EastEntrance_1F/scripts.inc @@ -49,7 +49,7 @@ Route18_EastEntrance_1F_EventScript_NeedBikeTrigger:: textcolor NPC_TEXT_COLOR_MALE msgbox Route18_EastEntrance_1F_Text_ExcuseMe closemessage - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterUp + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterUp waitmovement 0 delay 20 call_if_eq VAR_0x8008, 1, Route18_EastEntrance_1F_EventScript_PlayerWalkToCounterMidTop diff --git a/data/maps/Route18_EastEntrance_2F/map.json b/data/maps/Route18_EastEntrance_2F/map.json index 80b9973f6..e29d59992 100644 --- a/data/maps/Route18_EastEntrance_2F/map.json +++ b/data/maps/Route18_EastEntrance_2F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BOY", "x": 5, "y": 3, @@ -35,7 +36,7 @@ "y": 9, "elevation": 3, "dest_map": "MAP_ROUTE18_EAST_ENTRANCE_1F", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [], diff --git a/data/maps/Route19/map.json b/data/maps/Route19/map.json index 5fc1f6821..fe9fe5c29 100644 --- a/data/maps/Route19/map.json +++ b/data/maps/Route19/map.json @@ -27,6 +27,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SWIMMER_M_LAND", "x": 15, "y": 10, @@ -40,6 +41,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SWIMMER_M_LAND", "x": 10, "y": 9, @@ -53,6 +55,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SWIMMER_M_WATER", "x": 12, "y": 17, @@ -66,6 +69,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SWIMMER_M_WATER", "x": 18, "y": 33, @@ -79,6 +83,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SWIMMER_M_WATER", "x": 8, "y": 27, @@ -92,6 +97,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SWIMMER_M_WATER", "x": 16, "y": 22, @@ -105,6 +111,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SWIMMER_M_WATER", "x": 11, "y": 47, @@ -118,6 +125,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SWIMMER_F_WATER", "x": 14, "y": 48, @@ -131,6 +139,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SWIMMER_F_WATER", "x": 12, "y": 49, @@ -144,6 +153,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SWIMMER_F_WATER", "x": 9, "y": 48, @@ -157,6 +167,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SWIMMER_F_WATER", "x": 8, "y": 41, @@ -170,6 +181,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_TUBER_M_WATER", "x": 9, "y": 41, diff --git a/data/maps/Route2/map.json b/data/maps/Route2/map.json index 6ad6a8e57..ae86c838d 100644 --- a/data/maps/Route2/map.json +++ b/data/maps/Route2/map.json @@ -27,6 +27,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 16, "y": 62, @@ -40,6 +41,7 @@ "flag": "FLAG_TEMP_14" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 15, "y": 69, @@ -53,6 +55,7 @@ "flag": "FLAG_TEMP_13" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 11, "y": 13, @@ -66,6 +69,7 @@ "flag": "FLAG_TEMP_15" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 18, "y": 26, @@ -79,6 +83,7 @@ "flag": "FLAG_TEMP_16" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 17, "y": 54, @@ -92,6 +97,7 @@ "flag": "FLAG_HIDE_ROUTE2_ETHER" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 17, "y": 64, @@ -105,18 +111,12 @@ "flag": "FLAG_HIDE_ROUTE2_PARALYZE_HEAL" }, { + "type": "clone", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", - "in_connection": true, "x": 6, "y": 85, - "elevation": 8, - "movement_type": "MOVEMENT_TYPE_NONE", - "movement_range_x": 0, - "movement_range_y": 0, - "trainer_type": "TRAINER_TYPE_NORMAL", - "trainer_sight_or_berry_tree_id": "3", - "script": "0x0", - "flag": "0" + "target_local_id": 8, + "target_map": "MAP_VIRIDIAN_CITY" } ], "warp_events": [ @@ -125,70 +125,70 @@ "y": 13, "elevation": 3, "dest_map": "MAP_ROUTE2_VIRIDIAN_FOREST_NORTH_ENTRANCE", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 6, "y": 13, "elevation": 3, "dest_map": "MAP_ROUTE2_VIRIDIAN_FOREST_NORTH_ENTRANCE", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 5, "y": 51, "elevation": 3, "dest_map": "MAP_ROUTE2_VIRIDIAN_FOREST_SOUTH_ENTRANCE", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 17, "y": 11, "elevation": 3, "dest_map": "MAP_DIGLETTS_CAVE_NORTH_ENTRANCE", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 17, "y": 22, "elevation": 0, "dest_map": "MAP_ROUTE2_HOUSE", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 18, "y": 46, "elevation": 3, "dest_map": "MAP_ROUTE2_EAST_BUILDING", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 18, "y": 41, "elevation": 3, "dest_map": "MAP_ROUTE2_EAST_BUILDING", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 19, "y": 41, "elevation": 3, "dest_map": "MAP_ROUTE2_EAST_BUILDING", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 19, "y": 46, "elevation": 3, "dest_map": "MAP_ROUTE2_EAST_BUILDING", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 6, "y": 51, "elevation": 3, "dest_map": "MAP_ROUTE2_VIRIDIAN_FOREST_SOUTH_ENTRANCE", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/Route20/map.json b/data/maps/Route20/map.json index 0f606647d..5499ee68a 100644 --- a/data/maps/Route20/map.json +++ b/data/maps/Route20/map.json @@ -27,6 +27,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SWIMMER_F_WATER", "x": 8, "y": 11, @@ -40,6 +41,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PICNICKER", "x": 16, "y": 14, @@ -53,6 +55,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SWIMMER_F_WATER", "x": 34, "y": 7, @@ -66,6 +69,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKER", "x": 43, "y": 9, @@ -79,6 +83,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SWIMMER_M_WATER", "x": 23, "y": 10, @@ -92,6 +97,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PICNICKER", "x": 73, "y": 16, @@ -105,6 +111,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SWIMMER_M_WATER", "x": 111, "y": 9, @@ -118,6 +125,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SWIMMER_M_WATER", "x": 106, "y": 11, @@ -131,6 +139,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SWIMMER_F_WATER", "x": 93, "y": 10, @@ -144,6 +153,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SWIMMER_F_WATER", "x": 54, "y": 11, @@ -157,6 +167,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CAMPER", "x": 69, "y": 3, @@ -176,14 +187,14 @@ "y": 8, "elevation": 3, "dest_map": "MAP_SEAFOAM_ISLANDS_1F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 72, "y": 14, "elevation": 3, "dest_map": "MAP_SEAFOAM_ISLANDS_1F", - "dest_warp_id": 4 + "dest_warp_id": "4" } ], "coord_events": [], @@ -210,7 +221,7 @@ "y": 6, "elevation": 3, "item": "ITEM_STARDUST", - "flag": "HIDDEN_ITEM_ROUTE20_STARDUST", + "flag": "FLAG_HIDDEN_ITEM_ROUTE20_STARDUST", "quantity": 1, "underfoot": false } diff --git a/data/maps/Route21_North/map.json b/data/maps/Route21_North/map.json index 33d256f6e..3a9bbe242 100644 --- a/data/maps/Route21_North/map.json +++ b/data/maps/Route21_North/map.json @@ -27,6 +27,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_FISHER", "x": 7, "y": 27, @@ -40,6 +41,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_FISHER", "x": 16, "y": 26, @@ -53,6 +55,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SWIMMER_M_WATER", "x": 12, "y": 44, @@ -66,6 +69,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SWIMMER_F_WATER", "x": 14, "y": 35, @@ -79,6 +83,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_TUBER_M_WATER", "x": 15, "y": 35, @@ -92,18 +97,12 @@ "flag": "0" }, { + "type": "clone", "graphics_id": "OBJ_EVENT_GFX_FAT_MAN", - "in_connection": true, "x": 13, "y": -3, - "elevation": 2, - "movement_type": "MOVEMENT_TYPE_NONE", - "movement_range_x": 0, - "movement_range_y": 0, - "trainer_type": "TRAINER_TYPE_NONE", - "trainer_sight_or_berry_tree_id": "3", - "script": "0x0", - "flag": "0" + "target_local_id": 2, + "target_map": "MAP_PALLET_TOWN" } ], "warp_events": [], @@ -115,7 +114,7 @@ "y": 42, "elevation": 3, "item": "ITEM_PEARL", - "flag": "HIDDEN_ITEM_ROUTE21_NORTH_PEARL", + "flag": "FLAG_HIDDEN_ITEM_ROUTE21_NORTH_PEARL", "quantity": 1, "underfoot": false } diff --git a/data/maps/Route21_South/map.json b/data/maps/Route21_South/map.json index f5e648729..72b604725 100644 --- a/data/maps/Route21_South/map.json +++ b/data/maps/Route21_South/map.json @@ -27,6 +27,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_FISHER", "x": 11, "y": 8, @@ -40,6 +41,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_FISHER", "x": 14, "y": 15, @@ -53,6 +55,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SWIMMER_M_WATER", "x": 15, "y": 24, @@ -66,6 +69,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SWIMMER_M_WATER", "x": 15, "y": 38, @@ -79,6 +83,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SWIMMER_M_WATER", "x": 10, "y": 29, diff --git a/data/maps/Route22/map.json b/data/maps/Route22/map.json index a00677beb..ee918e6fa 100644 --- a/data/maps/Route22/map.json +++ b/data/maps/Route22/map.json @@ -27,6 +27,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BLUE", "x": 25, "y": 4, @@ -46,14 +47,14 @@ "y": 5, "elevation": 0, "dest_map": "MAP_ROUTE22_NORTH_ENTRANCE", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 9, "y": 5, "elevation": 0, "dest_map": "MAP_ROUTE22_NORTH_ENTRANCE", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [ diff --git a/data/maps/Route22_NorthEntrance/map.json b/data/maps/Route22_NorthEntrance/map.json index 7367db717..40191e5c2 100644 --- a/data/maps/Route22_NorthEntrance/map.json +++ b/data/maps/Route22_NorthEntrance/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_POLICEMAN", "x": 8, "y": 2, @@ -35,28 +36,28 @@ "y": 1, "elevation": 3, "dest_map": "MAP_ROUTE23", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 6, "y": 10, "elevation": 3, "dest_map": "MAP_ROUTE22", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 7, "y": 10, "elevation": 3, "dest_map": "MAP_ROUTE22", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 8, "y": 10, "elevation": 3, "dest_map": "MAP_ROUTE22", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [ diff --git a/data/maps/Route23/map.json b/data/maps/Route23/map.json index 01889aff9..7cbf5ed4e 100644 --- a/data/maps/Route23/map.json +++ b/data/maps/Route23/map.json @@ -27,6 +27,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_POLICEMAN", "x": 15, "y": 149, @@ -40,6 +41,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_POLICEMAN", "x": 8, "y": 140, @@ -53,6 +55,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_POLICEMAN", "x": 14, "y": 123, @@ -66,6 +69,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_POLICEMAN", "x": 16, "y": 112, @@ -79,6 +83,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_POLICEMAN", "x": 10, "y": 94, @@ -92,6 +97,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_POLICEMAN", "x": 14, "y": 61, @@ -105,6 +111,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_POLICEMAN", "x": 6, "y": 35, @@ -124,28 +131,28 @@ "y": 28, "elevation": 3, "dest_map": "MAP_VICTORY_ROAD_1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 18, "y": 28, "elevation": 3, "dest_map": "MAP_VICTORY_ROAD_2F", - "dest_warp_id": 6 + "dest_warp_id": "6" }, { "x": 8, "y": 153, "elevation": 3, "dest_map": "MAP_ROUTE22_NORTH_ENTRANCE", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 9, "y": 154, "elevation": 0, "dest_map": "MAP_ROUTE22_NORTH_ENTRANCE", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [ @@ -535,7 +542,7 @@ "y": 42, "elevation": 0, "item": "ITEM_FULL_RESTORE", - "flag": "HIDDEN_ITEM_ROUTE23_FULL_RESTORE", + "flag": "FLAG_HIDDEN_ITEM_ROUTE23_FULL_RESTORE", "quantity": 1, "underfoot": false }, @@ -545,7 +552,7 @@ "y": 72, "elevation": 0, "item": "ITEM_ULTRA_BALL", - "flag": "HIDDEN_ITEM_ROUTE23_ULTRA_BALL", + "flag": "FLAG_HIDDEN_ITEM_ROUTE23_ULTRA_BALL", "quantity": 1, "underfoot": false }, @@ -555,7 +562,7 @@ "y": 101, "elevation": 3, "item": "ITEM_MAX_ETHER", - "flag": "HIDDEN_ITEM_ROUTE23_MAX_ETHER", + "flag": "FLAG_HIDDEN_ITEM_ROUTE23_MAX_ETHER", "quantity": 1, "underfoot": false }, @@ -565,7 +572,7 @@ "y": 18, "elevation": 3, "item": "ITEM_LUM_BERRY", - "flag": "HIDDEN_ITEM_ROUTE23_LUM_BERRY", + "flag": "FLAG_HIDDEN_ITEM_ROUTE23_LUM_BERRY", "quantity": 1, "underfoot": false }, @@ -575,7 +582,7 @@ "y": 29, "elevation": 3, "item": "ITEM_SITRUS_BERRY", - "flag": "HIDDEN_ITEM_ROUTE23_SITRUS_BERRY", + "flag": "FLAG_HIDDEN_ITEM_ROUTE23_SITRUS_BERRY", "quantity": 1, "underfoot": false }, @@ -585,7 +592,7 @@ "y": 67, "elevation": 3, "item": "ITEM_ASPEAR_BERRY", - "flag": "HIDDEN_ITEM_ROUTE23_ASPEAR_BERRY", + "flag": "FLAG_HIDDEN_ITEM_ROUTE23_ASPEAR_BERRY", "quantity": 1, "underfoot": false }, @@ -595,7 +602,7 @@ "y": 128, "elevation": 3, "item": "ITEM_LEPPA_BERRY", - "flag": "HIDDEN_ITEM_ROUTE23_LEPPA_BERRY", + "flag": "FLAG_HIDDEN_ITEM_ROUTE23_LEPPA_BERRY", "quantity": 1, "underfoot": false }, @@ -605,7 +612,7 @@ "y": 8, "elevation": 3, "item": "ITEM_MAX_ELIXIR", - "flag": "HIDDEN_ITEM_ROUTE23_MAX_ELIXIR", + "flag": "FLAG_HIDDEN_ITEM_ROUTE23_MAX_ELIXIR", "quantity": 1, "underfoot": false }, diff --git a/data/maps/Route24/map.json b/data/maps/Route24/map.json index d3e00bab0..0e8fd736f 100644 --- a/data/maps/Route24/map.json +++ b/data/maps/Route24/map.json @@ -27,6 +27,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MAN", "x": 12, "y": 15, @@ -40,6 +41,7 @@ "flag": "FLAG_HIDE_NUGGET_BRIDGE_ROCKET" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CAMPER", "x": 12, "y": 19, @@ -53,6 +55,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LASS", "x": 10, "y": 22, @@ -66,6 +69,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 12, "y": 25, @@ -79,6 +83,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LASS", "x": 10, "y": 28, @@ -92,6 +97,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BUG_CATCHER", "x": 12, "y": 31, @@ -105,6 +111,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CAMPER", "x": 5, "y": 21, @@ -118,6 +125,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 11, "y": 4, @@ -159,7 +167,7 @@ "y": 4, "elevation": 3, "item": "ITEM_PECHA_BERRY", - "flag": "HIDDEN_ITEM_ROUTE24_PECHA_BERRY", + "flag": "FLAG_HIDDEN_ITEM_ROUTE24_PECHA_BERRY", "quantity": 1, "underfoot": false } diff --git a/data/maps/Route24/scripts.inc b/data/maps/Route24/scripts.inc index bf8c685da..6a0befab8 100644 --- a/data/maps/Route24/scripts.inc +++ b/data/maps/Route24/scripts.inc @@ -40,7 +40,7 @@ Route24_EventScript_RocketTrigger:: textcolor NPC_TEXT_COLOR_MALE call_if_eq VAR_TEMP_1, 0, Route24_EventScript_RocketApproachPlayer call_if_eq VAR_TEMP_1, 1, Route24_EventScript_RocketMotionToPlayer - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterRight waitmovement 0 msgbox Route24_Text_JustEarnedFabulousPrize checkitemspace ITEM_NUGGET @@ -67,7 +67,7 @@ Route24_EventScript_RocketApproachPlayer:: return Route24_EventScript_RocketMotionToPlayer:: - applymovement LOCALID_ROCKET, Movement_WalkInPlaceFasterLeft + applymovement LOCALID_ROCKET, Common_Movement_WalkInPlaceFasterLeft waitmovement 0 return diff --git a/data/maps/Route25/map.json b/data/maps/Route25/map.json index 8f93b33a7..ab2cdf6cb 100644 --- a/data/maps/Route25/map.json +++ b/data/maps/Route25/map.json @@ -22,6 +22,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_HIKER", "x": 11, "y": 4, @@ -35,6 +36,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 18, "y": 2, @@ -48,6 +50,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_HIKER", "x": 17, "y": 7, @@ -61,6 +64,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 22, "y": 4, @@ -74,6 +78,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PICNICKER", "x": 22, "y": 8, @@ -87,6 +92,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_HIKER", "x": 27, "y": 9, @@ -100,6 +106,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CAMPER", "x": 28, "y": 4, @@ -113,6 +120,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 36, "y": 4, @@ -126,6 +134,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LASS", "x": 42, "y": 5, @@ -139,6 +148,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 26, "y": 2, @@ -152,6 +162,7 @@ "flag": "FLAG_HIDE_ROUTE25_TM43" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 30, "y": 3, @@ -165,6 +176,7 @@ "flag": "FLAG_TEMP_12" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BEAUTY", "x": 49, "y": 10, @@ -178,6 +190,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MAN", "x": 49, "y": 11, @@ -197,7 +210,7 @@ "y": 4, "elevation": 0, "dest_map": "MAP_ROUTE25_SEA_COTTAGE", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], @@ -216,7 +229,7 @@ "y": 2, "elevation": 3, "item": "ITEM_ELIXIR", - "flag": "HIDDEN_ITEM_ROUTE25_ELIXIR", + "flag": "FLAG_HIDDEN_ITEM_ROUTE25_ELIXIR", "quantity": 1, "underfoot": false }, @@ -226,7 +239,7 @@ "y": 6, "elevation": 3, "item": "ITEM_ETHER", - "flag": "HIDDEN_ITEM_ROUTE25_ETHER", + "flag": "FLAG_HIDDEN_ITEM_ROUTE25_ETHER", "quantity": 1, "underfoot": false }, @@ -236,7 +249,7 @@ "y": 8, "elevation": 3, "item": "ITEM_ORAN_BERRY", - "flag": "HIDDEN_ITEM_ROUTE25_ORAN_BERRY", + "flag": "FLAG_HIDDEN_ITEM_ROUTE25_ORAN_BERRY", "quantity": 1, "underfoot": false }, @@ -246,7 +259,7 @@ "y": 3, "elevation": 3, "item": "ITEM_BLUK_BERRY", - "flag": "HIDDEN_ITEM_ROUTE25_BLUK_BERRY", + "flag": "FLAG_HIDDEN_ITEM_ROUTE25_BLUK_BERRY", "quantity": 1, "underfoot": false } diff --git a/data/maps/Route25_SeaCottage/map.json b/data/maps/Route25_SeaCottage/map.json index 60a490867..82dd50402 100644 --- a/data/maps/Route25_SeaCottage/map.json +++ b/data/maps/Route25_SeaCottage/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BILL", "x": 7, "y": 5, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_BILL_HUMAN_SEA_COTTAGE" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CLEFAIRY", "x": 10, "y": 6, @@ -48,21 +50,21 @@ "y": 9, "elevation": 3, "dest_map": "MAP_ROUTE25", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 7, "y": 9, "elevation": 3, "dest_map": "MAP_ROUTE25", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 8, "y": 9, "elevation": 3, "dest_map": "MAP_ROUTE25", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/Route2_EastBuilding/map.json b/data/maps/Route2_EastBuilding/map.json index f7997cb0b..e7d96be6e 100644 --- a/data/maps/Route2_EastBuilding/map.json +++ b/data/maps/Route2_EastBuilding/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 4, "y": 6, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKER", "x": 10, "y": 3, @@ -48,28 +50,28 @@ "y": 10, "elevation": 0, "dest_map": "MAP_ROUTE2", - "dest_warp_id": 5 + "dest_warp_id": "5" }, { "x": 7, "y": 10, "elevation": 3, "dest_map": "MAP_ROUTE2", - "dest_warp_id": 5 + "dest_warp_id": "5" }, { "x": 8, "y": 10, "elevation": 3, "dest_map": "MAP_ROUTE2", - "dest_warp_id": 5 + "dest_warp_id": "5" }, { "x": 7, "y": 1, "elevation": 3, "dest_map": "MAP_ROUTE2", - "dest_warp_id": 6 + "dest_warp_id": "6" } ], "coord_events": [], diff --git a/data/maps/Route2_House/map.json b/data/maps/Route2_House/map.json index 39c841dd3..a688bf780 100644 --- a/data/maps/Route2_House/map.json +++ b/data/maps/Route2_House/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 4, "y": 5, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GBA_KID", "x": 7, "y": 2, @@ -48,21 +50,21 @@ "y": 7, "elevation": 0, "dest_map": "MAP_ROUTE2", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 4, "y": 7, "elevation": 0, "dest_map": "MAP_ROUTE2", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 5, "y": 7, "elevation": 0, "dest_map": "MAP_ROUTE2", - "dest_warp_id": 4 + "dest_warp_id": "4" } ], "coord_events": [], diff --git a/data/maps/Route2_ViridianForest_NorthEntrance/map.json b/data/maps/Route2_ViridianForest_NorthEntrance/map.json index c6cc23713..f0b7393b2 100644 --- a/data/maps/Route2_ViridianForest_NorthEntrance/map.json +++ b/data/maps/Route2_ViridianForest_NorthEntrance/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 5, "y": 4, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", "x": 4, "y": 7, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_F", "x": 10, "y": 5, @@ -61,28 +64,28 @@ "y": 10, "elevation": 3, "dest_map": "MAP_VIRIDIAN_FOREST", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 7, "y": 10, "elevation": 3, "dest_map": "MAP_VIRIDIAN_FOREST", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 8, "y": 10, "elevation": 3, "dest_map": "MAP_VIRIDIAN_FOREST", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 7, "y": 1, "elevation": 3, "dest_map": "MAP_ROUTE2", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/Route2_ViridianForest_SouthEntrance/map.json b/data/maps/Route2_ViridianForest_SouthEntrance/map.json index fbe4c75e0..4f5a7fb05 100644 --- a/data/maps/Route2_ViridianForest_SouthEntrance/map.json +++ b/data/maps/Route2_ViridianForest_SouthEntrance/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_2", "x": 10, "y": 6, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_1", "x": 4, "y": 7, @@ -48,28 +50,28 @@ "y": 10, "elevation": 3, "dest_map": "MAP_ROUTE2", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 7, "y": 10, "elevation": 3, "dest_map": "MAP_ROUTE2", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 8, "y": 10, "elevation": 3, "dest_map": "MAP_ROUTE2", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 7, "y": 1, "elevation": 3, "dest_map": "MAP_VIRIDIAN_FOREST", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/Route3/map.json b/data/maps/Route3/map.json index f310180b7..bc5d1449a 100644 --- a/data/maps/Route3/map.json +++ b/data/maps/Route3/map.json @@ -27,6 +27,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 70, "y": 13, @@ -40,6 +41,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LASS", "x": 40, "y": 11, @@ -53,6 +55,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BUG_CATCHER", "x": 32, "y": 6, @@ -66,6 +69,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LASS", "x": 30, "y": 3, @@ -79,6 +83,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BUG_CATCHER", "x": 25, "y": 4, @@ -92,6 +97,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 29, "y": 10, @@ -105,6 +111,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LASS", "x": 19, "y": 9, @@ -118,6 +125,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BUG_CATCHER", "x": 12, "y": 6, @@ -131,6 +139,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 17, "y": 4, @@ -161,7 +170,7 @@ "y": 9, "elevation": 3, "item": "ITEM_ORAN_BERRY", - "flag": "HIDDEN_ITEM_ROUTE3_ORAN_BERRY", + "flag": "FLAG_HIDDEN_ITEM_ROUTE3_ORAN_BERRY", "quantity": 1, "underfoot": false } diff --git a/data/maps/Route4/map.json b/data/maps/Route4/map.json index a588a2cd1..3273015c1 100644 --- a/data/maps/Route4/map.json +++ b/data/maps/Route4/map.json @@ -27,6 +27,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_1", "x": 9, "y": 8, @@ -40,6 +41,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LASS", "x": 75, "y": 3, @@ -53,6 +55,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 67, "y": 5, @@ -66,6 +69,7 @@ "flag": "FLAG_HIDE_ROUTE4_TM05" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BOY", "x": 15, "y": 14, @@ -79,6 +83,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BLACKBELT", "x": 47, "y": 3, @@ -92,6 +97,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BLACKBELT", "x": 50, "y": 3, @@ -105,18 +111,12 @@ "flag": "0" }, { + "type": "clone", "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_M", - "in_connection": true, "x": 109, "y": 3, - "elevation": 12, - "movement_type": "MOVEMENT_TYPE_NONE", - "movement_range_x": 0, - "movement_range_y": 0, - "trainer_type": "3", - "trainer_sight_or_berry_tree_id": "3", - "script": "0x0", - "flag": "0" + "target_local_id": 12, + "target_map": "MAP_CERULEAN_CITY" } ], "warp_events": [ @@ -125,21 +125,21 @@ "y": 5, "elevation": 3, "dest_map": "MAP_MT_MOON_1F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 32, "y": 5, "elevation": 0, "dest_map": "MAP_MT_MOON_B1F", - "dest_warp_id": 7 + "dest_warp_id": "7" }, { "x": 12, "y": 5, "elevation": 0, "dest_map": "MAP_ROUTE4_POKEMON_CENTER_1F", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], @@ -166,7 +166,7 @@ "y": 2, "elevation": 3, "item": "ITEM_GREAT_BALL", - "flag": "HIDDEN_ITEM_ROUTE4_GREAT_BALL", + "flag": "FLAG_HIDDEN_ITEM_ROUTE4_GREAT_BALL", "quantity": 1, "underfoot": false }, @@ -176,7 +176,7 @@ "y": 4, "elevation": 3, "item": "ITEM_PERSIM_BERRY", - "flag": "HIDDEN_ITEM_ROUTE4_PERSIM_BERRY", + "flag": "FLAG_HIDDEN_ITEM_ROUTE4_PERSIM_BERRY", "quantity": 1, "underfoot": false }, @@ -186,7 +186,7 @@ "y": 17, "elevation": 3, "item": "ITEM_RAZZ_BERRY", - "flag": "HIDDEN_ITEM_ROUTE4_RAZZ_BERRY", + "flag": "FLAG_HIDDEN_ITEM_ROUTE4_RAZZ_BERRY", "quantity": 1, "underfoot": false } diff --git a/data/maps/Route4_PokemonCenter_1F/map.json b/data/maps/Route4_PokemonCenter_1F/map.json index b62ee3fbe..52cf73b1d 100644 --- a/data/maps/Route4_PokemonCenter_1F/map.json +++ b/data/maps/Route4_PokemonCenter_1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_NURSE", "x": 7, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", "x": 1, "y": 3, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN", "x": 12, "y": 5, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BOY", "x": 5, "y": 4, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 14, "y": 4, @@ -81,6 +86,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CLIPBOARD", "x": 12, "y": 6, @@ -100,28 +106,28 @@ "y": 8, "elevation": 3, "dest_map": "MAP_ROUTE4", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 7, "y": 8, "elevation": 3, "dest_map": "MAP_ROUTE4", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 8, "y": 8, "elevation": 3, "dest_map": "MAP_ROUTE4", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 1, "y": 6, "elevation": 4, "dest_map": "MAP_ROUTE4_POKEMON_CENTER_2F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/Route4_PokemonCenter_2F/map.json b/data/maps/Route4_PokemonCenter_2F/map.json index b70232abd..cdadbfccf 100644 --- a/data/maps/Route4_PokemonCenter_2F/map.json +++ b/data/maps/Route4_PokemonCenter_2F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 6, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 2, "y": 2, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 10, "y": 2, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MG_DELIVERYMAN", "x": 1, "y": 2, @@ -74,21 +78,21 @@ "y": 6, "elevation": 4, "dest_map": "MAP_ROUTE4_POKEMON_CENTER_1F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 5, "y": 1, "elevation": 0, "dest_map": "MAP_UNION_ROOM", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 9, "y": 1, "elevation": 0, "dest_map": "MAP_TRADE_CENTER", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/Route5/map.json b/data/maps/Route5/map.json index 85b0e75a2..34199b1bd 100644 --- a/data/maps/Route5/map.json +++ b/data/maps/Route5/map.json @@ -32,28 +32,28 @@ "y": 31, "elevation": 0, "dest_map": "MAP_UNDERGROUND_PATH_NORTH_ENTRANCE", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 23, "y": 25, "elevation": 0, "dest_map": "MAP_ROUTE5_POKEMON_DAY_CARE", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 24, "y": 32, "elevation": 3, "dest_map": "MAP_ROUTE5_SOUTH_ENTRANCE", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 25, "y": 32, "elevation": 3, "dest_map": "MAP_ROUTE5_SOUTH_ENTRANCE", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/Route5_PokemonDayCare/map.json b/data/maps/Route5_PokemonDayCare/map.json index fa866f235..773450928 100644 --- a/data/maps/Route5_PokemonDayCare/map.json +++ b/data/maps/Route5_PokemonDayCare/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN", "x": 4, "y": 4, @@ -35,21 +36,21 @@ "y": 7, "elevation": 0, "dest_map": "MAP_ROUTE5", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 4, "y": 7, "elevation": 0, "dest_map": "MAP_ROUTE5", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 5, "y": 7, "elevation": 0, "dest_map": "MAP_ROUTE5", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/Route5_SouthEntrance/map.json b/data/maps/Route5_SouthEntrance/map.json index 9d40775e8..650568ac1 100644 --- a/data/maps/Route5_SouthEntrance/map.json +++ b/data/maps/Route5_SouthEntrance/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_POLICEMAN", "x": 1, "y": 5, @@ -35,28 +36,28 @@ "y": 9, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY", - "dest_warp_id": 9 + "dest_warp_id": "9" }, { "x": 4, "y": 1, "elevation": 3, "dest_map": "MAP_ROUTE5", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 4, "y": 9, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY", - "dest_warp_id": 9 + "dest_warp_id": "9" }, { "x": 5, "y": 1, "elevation": 0, "dest_map": "MAP_ROUTE5", - "dest_warp_id": 3 + "dest_warp_id": "3" } ], "coord_events": [ diff --git a/data/maps/Route5_SouthEntrance/scripts.inc b/data/maps/Route5_SouthEntrance/scripts.inc index fe8e06607..307de8b0d 100644 --- a/data/maps/Route5_SouthEntrance/scripts.inc +++ b/data/maps/Route5_SouthEntrance/scripts.inc @@ -25,7 +25,7 @@ Route5_SouthEntrance_EventScript_GuardTriggerRight:: Route5_SouthEntrance_EventScript_GuardTrigger:: textcolor NPC_TEXT_COLOR_MALE - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterLeft + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterLeft waitmovement 0 goto_if_set FLAG_GOT_TEA, Route5_SouthEntrance_EventScript_GiveTea msgbox Route5_SouthEntrance_Text_ThirstyOnGuardDuty diff --git a/data/maps/Route6/map.json b/data/maps/Route6/map.json index 47c69f5c5..4a146846a 100644 --- a/data/maps/Route6/map.json +++ b/data/maps/Route6/map.json @@ -27,6 +27,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BUG_CATCHER", "x": 3, "y": 16, @@ -40,6 +41,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CAMPER", "x": 12, "y": 21, @@ -53,6 +55,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PICNICKER", "x": 13, "y": 21, @@ -66,6 +69,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BUG_CATCHER", "x": 20, "y": 25, @@ -79,6 +83,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PICNICKER", "x": 13, "y": 32, @@ -92,6 +97,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CAMPER", "x": 13, "y": 33, @@ -111,21 +117,21 @@ "y": 13, "elevation": 0, "dest_map": "MAP_UNDERGROUND_PATH_SOUTH_ENTRANCE", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 12, "y": 5, "elevation": 3, "dest_map": "MAP_ROUTE6_NORTH_ENTRANCE", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 13, "y": 5, "elevation": 3, "dest_map": "MAP_ROUTE6_NORTH_ENTRANCE", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [], @@ -144,7 +150,7 @@ "y": 5, "elevation": 3, "item": "ITEM_SITRUS_BERRY", - "flag": "HIDDEN_ITEM_ROUTE6_SITRUS_BERRY", + "flag": "FLAG_HIDDEN_ITEM_ROUTE6_SITRUS_BERRY", "quantity": 1, "underfoot": false }, @@ -154,7 +160,7 @@ "y": 5, "elevation": 3, "item": "ITEM_RARE_CANDY", - "flag": "HIDDEN_ITEM_ROUTE6_RARE_CANDY", + "flag": "FLAG_HIDDEN_ITEM_ROUTE6_RARE_CANDY", "quantity": 1, "underfoot": false } diff --git a/data/maps/Route6_NorthEntrance/map.json b/data/maps/Route6_NorthEntrance/map.json index 287d13d1c..fb2edae08 100644 --- a/data/maps/Route6_NorthEntrance/map.json +++ b/data/maps/Route6_NorthEntrance/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_POLICEMAN", "x": 7, "y": 5, @@ -35,28 +36,28 @@ "y": 1, "elevation": 0, "dest_map": "MAP_SAFFRON_CITY", - "dest_warp_id": 11 + "dest_warp_id": "11" }, { "x": 5, "y": 1, "elevation": 0, "dest_map": "MAP_SAFFRON_CITY", - "dest_warp_id": 11 + "dest_warp_id": "11" }, { "x": 4, "y": 9, "elevation": 3, "dest_map": "MAP_ROUTE6", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 5, "y": 9, "elevation": 3, "dest_map": "MAP_ROUTE6", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [ diff --git a/data/maps/Route6_NorthEntrance/scripts.inc b/data/maps/Route6_NorthEntrance/scripts.inc index 9f27430d6..c7c8cb95e 100644 --- a/data/maps/Route6_NorthEntrance/scripts.inc +++ b/data/maps/Route6_NorthEntrance/scripts.inc @@ -25,7 +25,7 @@ Route6_NorthEntrance_EventScript_GuardTriggerRight:: Route6_NorthEntrance_EventScript_GuardTrigger:: textcolor NPC_TEXT_COLOR_MALE - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterRight waitmovement 0 goto_if_set FLAG_GOT_TEA, Route6_NorthEntrance_EventScript_GiveTea msgbox Route6_NorthEntrance_Text_ThirstyOnGuardDuty diff --git a/data/maps/Route7/map.json b/data/maps/Route7/map.json index 922a44476..255dbe841 100644 --- a/data/maps/Route7/map.json +++ b/data/maps/Route7/map.json @@ -27,18 +27,12 @@ ], "object_events": [ { + "type": "clone", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", - "in_connection": true, "x": -8, "y": 12, - "elevation": 10, - "movement_type": "MOVEMENT_TYPE_NONE", - "movement_range_x": 0, - "movement_range_y": 0, - "trainer_type": "6", - "trainer_sight_or_berry_tree_id": "3", - "script": "0x0", - "flag": "0" + "target_local_id": 10, + "target_map": "MAP_CELADON_CITY" } ], "warp_events": [ @@ -47,14 +41,14 @@ "y": 14, "elevation": 0, "dest_map": "MAP_UNDERGROUND_PATH_WEST_ENTRANCE", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 15, "y": 10, "elevation": 3, "dest_map": "MAP_ROUTE7_EAST_ENTRANCE", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], @@ -73,7 +67,7 @@ "y": 15, "elevation": 3, "item": "ITEM_WEPEAR_BERRY", - "flag": "HIDDEN_ITEM_ROUTE7_WEPEAR_BERRY", + "flag": "FLAG_HIDDEN_ITEM_ROUTE7_WEPEAR_BERRY", "quantity": 1, "underfoot": false } diff --git a/data/maps/Route7_EastEntrance/map.json b/data/maps/Route7_EastEntrance/map.json index b05ab81e7..4be396210 100644 --- a/data/maps/Route7_EastEntrance/map.json +++ b/data/maps/Route7_EastEntrance/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_POLICEMAN", "x": 6, "y": 2, @@ -35,28 +36,28 @@ "y": 5, "elevation": 3, "dest_map": "MAP_ROUTE7", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 1, "y": 6, "elevation": 3, "dest_map": "MAP_ROUTE7", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 11, "y": 5, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY", - "dest_warp_id": 8 + "dest_warp_id": "8" }, { "x": 11, "y": 6, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY", - "dest_warp_id": 8 + "dest_warp_id": "8" } ], "coord_events": [ diff --git a/data/maps/Route7_EastEntrance/scripts.inc b/data/maps/Route7_EastEntrance/scripts.inc index 30c776d0b..a13ec857c 100644 --- a/data/maps/Route7_EastEntrance/scripts.inc +++ b/data/maps/Route7_EastEntrance/scripts.inc @@ -25,7 +25,7 @@ Route7_EastEntrance_EventScript_GuardTriggerBottom:: Route7_EastEntrance_EventScript_GuardTrigger:: textcolor NPC_TEXT_COLOR_MALE - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterUp + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterUp waitmovement 0 goto_if_set FLAG_GOT_TEA, Route7_EastEntrance_EventScript_GiveTea msgbox Route7_EastEntrance_Text_ThirstyOnGuardDuty diff --git a/data/maps/Route8/map.json b/data/maps/Route8/map.json index 7f0b2e8c4..53c017e41 100644 --- a/data/maps/Route8/map.json +++ b/data/maps/Route8/map.json @@ -27,6 +27,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LASS", "x": 62, "y": 14, @@ -40,6 +41,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", "x": 55, "y": 15, @@ -53,6 +55,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 51, "y": 6, @@ -66,6 +69,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LASS", "x": 29, "y": 3, @@ -79,6 +83,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 29, "y": 4, @@ -92,6 +97,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LASS", "x": 29, "y": 5, @@ -105,6 +111,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LASS", "x": 29, "y": 6, @@ -118,6 +125,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", "x": 21, "y": 3, @@ -131,6 +139,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 9, "y": 6, @@ -144,6 +153,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 33, "y": 15, @@ -157,6 +167,7 @@ "flag": "FLAG_TEMP_12" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 47, "y": 12, @@ -170,6 +181,7 @@ "flag": "FLAG_TEMP_13" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LITTLE_GIRL", "x": 40, "y": 3, @@ -183,6 +195,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LITTLE_GIRL", "x": 41, "y": 3, @@ -196,6 +209,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BIKER", "x": 14, "y": 16, @@ -209,6 +223,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BIKER", "x": 24, "y": 17, @@ -228,14 +243,14 @@ "y": 4, "elevation": 0, "dest_map": "MAP_UNDERGROUND_PATH_EAST_ENTRANCE", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 7, "y": 10, "elevation": 3, "dest_map": "MAP_ROUTE8_WEST_ENTRANCE", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [], @@ -254,7 +269,7 @@ "y": 10, "elevation": 3, "item": "ITEM_RAWST_BERRY", - "flag": "HIDDEN_ITEM_ROUTE8_RAWST_BERRY", + "flag": "FLAG_HIDDEN_ITEM_ROUTE8_RAWST_BERRY", "quantity": 1, "underfoot": false }, @@ -264,7 +279,7 @@ "y": 11, "elevation": 3, "item": "ITEM_LUM_BERRY", - "flag": "HIDDEN_ITEM_ROUTE8_LUM_BERRY", + "flag": "FLAG_HIDDEN_ITEM_ROUTE8_LUM_BERRY", "quantity": 1, "underfoot": false }, @@ -274,7 +289,7 @@ "y": 15, "elevation": 3, "item": "ITEM_LEPPA_BERRY", - "flag": "HIDDEN_ITEM_ROUTE8_LEPPA_BERRY", + "flag": "FLAG_HIDDEN_ITEM_ROUTE8_LEPPA_BERRY", "quantity": 1, "underfoot": false } diff --git a/data/maps/Route8_WestEntrance/map.json b/data/maps/Route8_WestEntrance/map.json index d759be75e..538e467a2 100644 --- a/data/maps/Route8_WestEntrance/map.json +++ b/data/maps/Route8_WestEntrance/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_POLICEMAN", "x": 6, "y": 2, @@ -35,28 +36,28 @@ "y": 4, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY", - "dest_warp_id": 10 + "dest_warp_id": "10" }, { "x": 1, "y": 5, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY", - "dest_warp_id": 10 + "dest_warp_id": "10" }, { "x": 11, "y": 5, "elevation": 3, "dest_map": "MAP_ROUTE8", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 11, "y": 6, "elevation": 3, "dest_map": "MAP_ROUTE8", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [ diff --git a/data/maps/Route8_WestEntrance/scripts.inc b/data/maps/Route8_WestEntrance/scripts.inc index 1ef74df1b..e0a8b5f27 100644 --- a/data/maps/Route8_WestEntrance/scripts.inc +++ b/data/maps/Route8_WestEntrance/scripts.inc @@ -25,7 +25,7 @@ Route8_WestEntrance_EventScript_GuardTriggerBottom:: Route8_WestEntrance_EventScript_GuardTrigger:: textcolor NPC_TEXT_COLOR_MALE - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterUp + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterUp waitmovement 0 goto_if_set FLAG_GOT_TEA, Route8_WestEntrance_EventScript_GiveTea msgbox Route8_WestEntrance_Text_ThirstyOnGuardDuty diff --git a/data/maps/Route9/map.json b/data/maps/Route9/map.json index b733f7a21..a60f193b4 100644 --- a/data/maps/Route9/map.json +++ b/data/maps/Route9/map.json @@ -27,6 +27,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PICNICKER", "x": 14, "y": 10, @@ -40,6 +41,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_HIKER", "x": 20, "y": 17, @@ -53,6 +55,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_HIKER", "x": 61, "y": 16, @@ -66,6 +69,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CAMPER", "x": 26, "y": 7, @@ -79,6 +83,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BUG_CATCHER", "x": 26, "y": 1, @@ -92,6 +97,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BUG_CATCHER", "x": 49, "y": 7, @@ -105,6 +111,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_HIKER", "x": 53, "y": 2, @@ -118,6 +125,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PICNICKER", "x": 60, "y": 9, @@ -131,6 +139,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CAMPER", "x": 36, "y": 6, @@ -144,6 +153,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 2, "y": 8, @@ -157,6 +167,7 @@ "flag": "FLAG_TEMP_12" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 12, "y": 17, @@ -170,6 +181,7 @@ "flag": "FLAG_HIDE_ROUTE9_TM40" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 65, "y": 17, @@ -200,7 +212,7 @@ "y": 7, "elevation": 0, "item": "ITEM_ETHER", - "flag": "HIDDEN_ITEM_ROUTE9_ETHER", + "flag": "FLAG_HIDDEN_ITEM_ROUTE9_ETHER", "quantity": 1, "underfoot": false }, @@ -210,7 +222,7 @@ "y": 2, "elevation": 3, "item": "ITEM_RARE_CANDY", - "flag": "HIDDEN_ITEM_ROUTE9_RARE_CANDY", + "flag": "FLAG_HIDDEN_ITEM_ROUTE9_RARE_CANDY", "quantity": 1, "underfoot": false }, @@ -220,7 +232,7 @@ "y": 2, "elevation": 3, "item": "ITEM_CHESTO_BERRY", - "flag": "HIDDEN_ITEM_ROUTE9_CHESTO_BERRY", + "flag": "FLAG_HIDDEN_ITEM_ROUTE9_CHESTO_BERRY", "quantity": 1, "underfoot": false } diff --git a/data/maps/SSAnne_1F_Corridor/map.json b/data/maps/SSAnne_1F_Corridor/map.json index fe30bc49f..45bd8e606 100644 --- a/data/maps/SSAnne_1F_Corridor/map.json +++ b/data/maps/SSAnne_1F_Corridor/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SAILOR", "x": 18, "y": 8, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WORKER_M", "x": 12, "y": 9, @@ -48,91 +50,91 @@ "y": 8, "elevation": 3, "dest_map": "MAP_SSANNE_2F_CORRIDOR", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 2, "y": 18, "elevation": 3, "dest_map": "MAP_SSANNE_KITCHEN", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 19, "y": 1, "elevation": 3, "dest_map": "MAP_SSANNE_EXTERIOR", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 20, "y": 0, "elevation": 0, "dest_map": "MAP_SSANNE_EXTERIOR", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 3, "y": 20, "elevation": 0, "dest_map": "MAP_SSANNE_KITCHEN", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 28, "y": 17, "elevation": 3, "dest_map": "MAP_SSANNE_B1F_CORRIDOR", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 5, "y": 10, "elevation": 3, "dest_map": "MAP_SSANNE_1F_ROOM1", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 8, "y": 10, "elevation": 3, "dest_map": "MAP_SSANNE_1F_ROOM2", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 11, "y": 10, "elevation": 3, "dest_map": "MAP_SSANNE_1F_ROOM3", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 14, "y": 10, "elevation": 3, "dest_map": "MAP_SSANNE_1F_ROOM4", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 17, "y": 10, "elevation": 3, "dest_map": "MAP_SSANNE_1F_ROOM5", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 23, "y": 10, "elevation": 3, "dest_map": "MAP_SSANNE_1F_ROOM7", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 20, "y": 10, "elevation": 3, "dest_map": "MAP_SSANNE_1F_ROOM6", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/SSAnne_1F_Room1/map.json b/data/maps/SSAnne_1F_Room1/map.json index 47fa01a0c..a74f0215e 100644 --- a/data/maps/SSAnne_1F_Room1/map.json +++ b/data/maps/SSAnne_1F_Room1/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN", "x": 2, "y": 5, @@ -35,7 +36,7 @@ "y": 1, "elevation": 0, "dest_map": "MAP_SSANNE_1F_CORRIDOR", - "dest_warp_id": 6 + "dest_warp_id": "6" } ], "coord_events": [], diff --git a/data/maps/SSAnne_1F_Room2/map.json b/data/maps/SSAnne_1F_Room2/map.json index 0f93495b2..3681c1b97 100644 --- a/data/maps/SSAnne_1F_Room2/map.json +++ b/data/maps/SSAnne_1F_Room2/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LASS", "x": 5, "y": 3, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 0, "y": 4, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_2", "x": 2, "y": 6, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 5, "y": 7, @@ -74,7 +78,7 @@ "y": 1, "elevation": 0, "dest_map": "MAP_SSANNE_1F_CORRIDOR", - "dest_warp_id": 7 + "dest_warp_id": "7" } ], "coord_events": [], diff --git a/data/maps/SSAnne_1F_Room3/map.json b/data/maps/SSAnne_1F_Room3/map.json index 7eec1735f..1523f1259 100644 --- a/data/maps/SSAnne_1F_Room3/map.json +++ b/data/maps/SSAnne_1F_Room3/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LITTLE_GIRL", "x": 3, "y": 4, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WIGGLYTUFF", "x": 4, "y": 2, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", "x": 0, "y": 4, @@ -61,7 +64,7 @@ "y": 1, "elevation": 0, "dest_map": "MAP_SSANNE_1F_CORRIDOR", - "dest_warp_id": 8 + "dest_warp_id": "8" } ], "coord_events": [], diff --git a/data/maps/SSAnne_1F_Room4/map.json b/data/maps/SSAnne_1F_Room4/map.json index 8a932c9c9..08de2fce8 100644 --- a/data/maps/SSAnne_1F_Room4/map.json +++ b/data/maps/SSAnne_1F_Room4/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_1", "x": 2, "y": 4, @@ -35,7 +36,7 @@ "y": 1, "elevation": 0, "dest_map": "MAP_SSANNE_1F_CORRIDOR", - "dest_warp_id": 9 + "dest_warp_id": "9" } ], "coord_events": [], diff --git a/data/maps/SSAnne_1F_Room5/map.json b/data/maps/SSAnne_1F_Room5/map.json index 6a3a6e6b0..a796b3aa7 100644 --- a/data/maps/SSAnne_1F_Room5/map.json +++ b/data/maps/SSAnne_1F_Room5/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN", "x": 2, "y": 6, @@ -35,7 +36,7 @@ "y": 1, "elevation": 0, "dest_map": "MAP_SSANNE_1F_CORRIDOR", - "dest_warp_id": 10 + "dest_warp_id": "10" } ], "coord_events": [], diff --git a/data/maps/SSAnne_1F_Room6/map.json b/data/maps/SSAnne_1F_Room6/map.json index 2a504adce..2b19578a0 100644 --- a/data/maps/SSAnne_1F_Room6/map.json +++ b/data/maps/SSAnne_1F_Room6/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_2", "x": 3, "y": 5, @@ -35,7 +36,7 @@ "y": 1, "elevation": 0, "dest_map": "MAP_SSANNE_1F_CORRIDOR", - "dest_warp_id": 12 + "dest_warp_id": "12" } ], "coord_events": [], diff --git a/data/maps/SSAnne_1F_Room7/map.json b/data/maps/SSAnne_1F_Room7/map.json index 91746ee78..92dd20902 100644 --- a/data/maps/SSAnne_1F_Room7/map.json +++ b/data/maps/SSAnne_1F_Room7/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN", "x": 4, "y": 3, @@ -35,7 +36,7 @@ "y": 1, "elevation": 0, "dest_map": "MAP_SSANNE_1F_CORRIDOR", - "dest_warp_id": 11 + "dest_warp_id": "11" } ], "coord_events": [], diff --git a/data/maps/SSAnne_2F_Corridor/map.json b/data/maps/SSAnne_2F_Corridor/map.json index f23f839ee..90934647d 100644 --- a/data/maps/SSAnne_2F_Corridor/map.json +++ b/data/maps/SSAnne_2F_Corridor/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BLUE", "x": 30, "y": 2, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_SS_ANNE_RIVAL" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SAILOR", "x": 2, "y": 7, @@ -48,63 +50,63 @@ "y": 2, "elevation": 3, "dest_map": "MAP_SSANNE_1F_CORRIDOR", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 3, "y": 12, "elevation": 3, "dest_map": "MAP_SSANNE_3F_CORRIDOR", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 30, "y": 2, "elevation": 3, "dest_map": "MAP_SSANNE_CAPTAINS_OFFICE", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 6, "y": 10, "elevation": 0, "dest_map": "MAP_SSANNE_2F_ROOM1", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 10, "y": 10, "elevation": 0, "dest_map": "MAP_SSANNE_2F_ROOM2", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 14, "y": 10, "elevation": 0, "dest_map": "MAP_SSANNE_2F_ROOM3", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 18, "y": 10, "elevation": 0, "dest_map": "MAP_SSANNE_2F_ROOM4", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 22, "y": 10, "elevation": 0, "dest_map": "MAP_SSANNE_2F_ROOM5", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 26, "y": 10, "elevation": 0, "dest_map": "MAP_SSANNE_2F_ROOM6", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [ diff --git a/data/maps/SSAnne_2F_Corridor/scripts.inc b/data/maps/SSAnne_2F_Corridor/scripts.inc index e3d30efe1..3d09bd4bb 100644 --- a/data/maps/SSAnne_2F_Corridor/scripts.inc +++ b/data/maps/SSAnne_2F_Corridor/scripts.inc @@ -28,7 +28,7 @@ SSAnne_2F_Corridor_EventScript_RivalTrigger:: playbgm MUS_ENCOUNTER_RIVAL, 0 addobject LOCALID_RIVAL delay 10 - applymovement LOCALID_RIVAL, Movement_WalkInPlaceFasterDown + applymovement LOCALID_RIVAL, Common_Movement_WalkInPlaceFasterDown waitmovement 0 delay 20 call_if_eq VAR_TEMP_1, 0, SSAnne_2F_Corridor_EventScript_RivalApproachLeft diff --git a/data/maps/SSAnne_2F_Room1/map.json b/data/maps/SSAnne_2F_Room1/map.json index cfd1b60be..9bf965c75 100644 --- a/data/maps/SSAnne_2F_Room1/map.json +++ b/data/maps/SSAnne_2F_Room1/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN", "x": 1, "y": 4, @@ -35,7 +36,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_SSANNE_2F_CORRIDOR", - "dest_warp_id": 3 + "dest_warp_id": "3" } ], "coord_events": [], diff --git a/data/maps/SSAnne_2F_Room2/map.json b/data/maps/SSAnne_2F_Room2/map.json index 2e12441b4..0809ce817 100644 --- a/data/maps/SSAnne_2F_Room2/map.json +++ b/data/maps/SSAnne_2F_Room2/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_FISHER", "x": 5, "y": 5, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN", "x": 1, "y": 4, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 3, "y": 3, @@ -61,7 +64,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_SSANNE_2F_CORRIDOR", - "dest_warp_id": 4 + "dest_warp_id": "4" } ], "coord_events": [], diff --git a/data/maps/SSAnne_2F_Room3/map.json b/data/maps/SSAnne_2F_Room3/map.json index 5d8ff0753..c1dce2a6d 100644 --- a/data/maps/SSAnne_2F_Room3/map.json +++ b/data/maps/SSAnne_2F_Room3/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN", "x": 2, "y": 5, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", "x": 3, "y": 2, @@ -48,7 +50,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_SSANNE_2F_CORRIDOR", - "dest_warp_id": 5 + "dest_warp_id": "5" } ], "coord_events": [], diff --git a/data/maps/SSAnne_2F_Room4/map.json b/data/maps/SSAnne_2F_Room4/map.json index 157f29bf3..ee878da63 100644 --- a/data/maps/SSAnne_2F_Room4/map.json +++ b/data/maps/SSAnne_2F_Room4/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN", "x": 0, "y": 5, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LASS", "x": 3, "y": 3, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 2, "y": 4, @@ -61,7 +64,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_SSANNE_2F_CORRIDOR", - "dest_warp_id": 6 + "dest_warp_id": "6" } ], "coord_events": [], diff --git a/data/maps/SSAnne_2F_Room5/map.json b/data/maps/SSAnne_2F_Room5/map.json index 7c3e77e1e..f982577f8 100644 --- a/data/maps/SSAnne_2F_Room5/map.json +++ b/data/maps/SSAnne_2F_Room5/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN", "x": 5, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LITTLE_BOY", "x": 3, "y": 5, @@ -48,7 +50,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_SSANNE_2F_CORRIDOR", - "dest_warp_id": 7 + "dest_warp_id": "7" } ], "coord_events": [], diff --git a/data/maps/SSAnne_2F_Room6/map.json b/data/maps/SSAnne_2F_Room6/map.json index a57b2e30d..9b199c30a 100644 --- a/data/maps/SSAnne_2F_Room6/map.json +++ b/data/maps/SSAnne_2F_Room6/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_3", "x": 1, "y": 4, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_1", "x": 4, "y": 4, @@ -48,7 +50,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_SSANNE_2F_CORRIDOR", - "dest_warp_id": 8 + "dest_warp_id": "8" } ], "coord_events": [], diff --git a/data/maps/SSAnne_3F_Corridor/map.json b/data/maps/SSAnne_3F_Corridor/map.json index 9c2079431..4c7259290 100644 --- a/data/maps/SSAnne_3F_Corridor/map.json +++ b/data/maps/SSAnne_3F_Corridor/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SAILOR", "x": 10, "y": 4, @@ -35,21 +36,21 @@ "y": 4, "elevation": 3, "dest_map": "MAP_SSANNE_DECK", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 18, "y": 2, "elevation": 3, "dest_map": "MAP_SSANNE_2F_CORRIDOR", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 0, "y": 5, "elevation": 0, "dest_map": "MAP_SSANNE_DECK", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/SSAnne_B1F_Corridor/map.json b/data/maps/SSAnne_B1F_Corridor/map.json index 4e0ad1134..fa64ecb13 100644 --- a/data/maps/SSAnne_B1F_Corridor/map.json +++ b/data/maps/SSAnne_B1F_Corridor/map.json @@ -21,42 +21,42 @@ "y": 3, "elevation": 3, "dest_map": "MAP_SSANNE_1F_CORRIDOR", - "dest_warp_id": 5 + "dest_warp_id": "5" }, { "x": 2, "y": 2, "elevation": 0, "dest_map": "MAP_SSANNE_B1F_ROOM1", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 6, "y": 2, "elevation": 0, "dest_map": "MAP_SSANNE_B1F_ROOM2", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 10, "y": 2, "elevation": 0, "dest_map": "MAP_SSANNE_B1F_ROOM3", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 14, "y": 2, "elevation": 0, "dest_map": "MAP_SSANNE_B1F_ROOM4", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 18, "y": 2, "elevation": 0, "dest_map": "MAP_SSANNE_B1F_ROOM5", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], @@ -67,7 +67,7 @@ "y": 5, "elevation": 3, "item": "ITEM_HYPER_POTION", - "flag": "HIDDEN_ITEM_SSANNE_B1F_CORRIDOR_HYPER_POTION", + "flag": "FLAG_HIDDEN_ITEM_SSANNE_B1F_CORRIDOR_HYPER_POTION", "quantity": 1, "underfoot": false } diff --git a/data/maps/SSAnne_B1F_Room1/map.json b/data/maps/SSAnne_B1F_Room1/map.json index cf7bf15ec..254074b36 100644 --- a/data/maps/SSAnne_B1F_Room1/map.json +++ b/data/maps/SSAnne_B1F_Room1/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_FISHER", "x": 5, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SAILOR", "x": 3, "y": 2, @@ -48,7 +50,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_SSANNE_B1F_CORRIDOR", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/SSAnne_B1F_Room2/map.json b/data/maps/SSAnne_B1F_Room2/map.json index cd01d82b8..edbedddbe 100644 --- a/data/maps/SSAnne_B1F_Room2/map.json +++ b/data/maps/SSAnne_B1F_Room2/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SAILOR", "x": 3, "y": 5, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 3, "y": 2, @@ -48,7 +50,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_SSANNE_B1F_CORRIDOR", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [], diff --git a/data/maps/SSAnne_B1F_Room3/map.json b/data/maps/SSAnne_B1F_Room3/map.json index 2dbef096c..f46cc525a 100644 --- a/data/maps/SSAnne_B1F_Room3/map.json +++ b/data/maps/SSAnne_B1F_Room3/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SAILOR", "x": 4, "y": 4, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 1, "y": 5, @@ -48,7 +50,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_SSANNE_B1F_CORRIDOR", - "dest_warp_id": 3 + "dest_warp_id": "3" } ], "coord_events": [], diff --git a/data/maps/SSAnne_B1F_Room4/map.json b/data/maps/SSAnne_B1F_Room4/map.json index 68a1ecf65..d57823eb4 100644 --- a/data/maps/SSAnne_B1F_Room4/map.json +++ b/data/maps/SSAnne_B1F_Room4/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SAILOR", "x": 3, "y": 3, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SAILOR", "x": 2, "y": 6, @@ -48,7 +50,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_SSANNE_B1F_CORRIDOR", - "dest_warp_id": 4 + "dest_warp_id": "4" } ], "coord_events": [], diff --git a/data/maps/SSAnne_B1F_Room5/map.json b/data/maps/SSAnne_B1F_Room5/map.json index ee81b03b4..dce8aff51 100644 --- a/data/maps/SSAnne_B1F_Room5/map.json +++ b/data/maps/SSAnne_B1F_Room5/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BOY", "x": 3, "y": 5, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MACHOKE", "x": 2, "y": 5, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 2, "y": 2, @@ -61,7 +64,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_SSANNE_B1F_CORRIDOR", - "dest_warp_id": 5 + "dest_warp_id": "5" } ], "coord_events": [], diff --git a/data/maps/SSAnne_CaptainsOffice/map.json b/data/maps/SSAnne_CaptainsOffice/map.json index ffd6cc1ec..4282796c7 100644 --- a/data/maps/SSAnne_CaptainsOffice/map.json +++ b/data/maps/SSAnne_CaptainsOffice/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CAPTAIN", "x": 5, "y": 4, @@ -35,7 +36,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_SSANNE_2F_CORRIDOR", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [], diff --git a/data/maps/SSAnne_CaptainsOffice/scripts.inc b/data/maps/SSAnne_CaptainsOffice/scripts.inc index 485b93807..6ac9cb693 100644 --- a/data/maps/SSAnne_CaptainsOffice/scripts.inc +++ b/data/maps/SSAnne_CaptainsOffice/scripts.inc @@ -14,7 +14,7 @@ SSAnne_CaptainsOffice_EventScript_Captain:: waitfanfare call EventScript_RestorePrevTextColor delay 50 - applymovement LOCALID_CAPTAIN, Movement_FacePlayer + applymovement LOCALID_CAPTAIN, Common_Movement_FacePlayer waitmovement 0 msgbox SSAnne_CaptainsOffice_Text_ThankYouHaveHMForCut giveitem_msg SSAnne_CaptainsOffice_Text_ObtainedHM01FromCaptain, ITEM_HM01, 1, MUS_OBTAIN_KEY_ITEM @@ -28,13 +28,13 @@ SSAnne_CaptainsOffice_EventScript_Captain:: SSAnne_CaptainsOffice_EventScript_NoRoomForCut:: msgbox SSAnne_CaptainsOffice_Text_YouHaveNoRoomForThis closemessage - applymovement LOCALID_CAPTAIN, Movement_FaceOriginalDirection + applymovement LOCALID_CAPTAIN, Common_Movement_FaceOriginalDirection waitmovement 0 release end SSAnne_CaptainsOffice_EventScript_AlreadyGotCut:: - applymovement LOCALID_CAPTAIN, Movement_FacePlayer + applymovement LOCALID_CAPTAIN, Common_Movement_FacePlayer waitmovement 0 msgbox SSAnne_CaptainsOffice_Text_SSAnneWillSetSailSoon release diff --git a/data/maps/SSAnne_Deck/map.json b/data/maps/SSAnne_Deck/map.json index 2f74b00ec..193652c1e 100644 --- a/data/maps/SSAnne_Deck/map.json +++ b/data/maps/SSAnne_Deck/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SAILOR", "x": 12, "y": 10, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", "x": 14, "y": 11, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SAILOR", "x": 13, "y": 13, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SAILOR", "x": 6, "y": 9, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 11, "y": 5, @@ -87,14 +92,14 @@ "y": 8, "elevation": 3, "dest_map": "MAP_SSANNE_3F_CORRIDOR", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 16, "y": 9, "elevation": 3, "dest_map": "MAP_SSANNE_3F_CORRIDOR", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/SSAnne_Exterior/map.json b/data/maps/SSAnne_Exterior/map.json index 000138ce8..c8b563471 100644 --- a/data/maps/SSAnne_Exterior/map.json +++ b/data/maps/SSAnne_Exterior/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SS_ANNE", "x": 30, "y": 16, @@ -35,35 +36,35 @@ "y": 5, "elevation": 0, "dest_map": "MAP_VERMILION_CITY", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 32, "y": 5, "elevation": 3, "dest_map": "MAP_VERMILION_CITY", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 32, "y": 14, "elevation": 3, "dest_map": "MAP_SSANNE_1F_CORRIDOR", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 33, "y": 15, "elevation": 0, "dest_map": "MAP_SSANNE_1F_CORRIDOR", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 33, "y": 5, "elevation": 0, "dest_map": "MAP_VERMILION_CITY", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [], @@ -74,7 +75,7 @@ "y": 28, "elevation": 3, "item": "ITEM_LAVA_COOKIE", - "flag": "HIDDEN_ITEM_SSANNE_EXTERIOR_LAVA_COOKIE", + "flag": "FLAG_HIDDEN_ITEM_SSANNE_EXTERIOR_LAVA_COOKIE", "quantity": 1, "underfoot": false } diff --git a/data/maps/SSAnne_Exterior/scripts.inc b/data/maps/SSAnne_Exterior/scripts.inc index e6043855d..ed084fb89 100644 --- a/data/maps/SSAnne_Exterior/scripts.inc +++ b/data/maps/SSAnne_Exterior/scripts.inc @@ -38,7 +38,7 @@ SSAnne_Exterior_WalkDown:: return SSAnne_Exterior_WalkInPlaceDown:: - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterDown + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterDown waitmovement 0 return diff --git a/data/maps/SSAnne_Kitchen/map.json b/data/maps/SSAnne_Kitchen/map.json index 2470b482a..1566589d7 100644 --- a/data/maps/SSAnne_Kitchen/map.json +++ b/data/maps/SSAnne_Kitchen/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CHEF", "x": 1, "y": 5, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CHEF", "x": 6, "y": 6, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CHEF", "x": 10, "y": 4, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CHEF", "x": 8, "y": 9, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CHEF", "x": 14, "y": 5, @@ -81,6 +86,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CHEF", "x": 14, "y": 7, @@ -94,6 +100,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CHEF", "x": 14, "y": 9, @@ -107,6 +114,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 1, "y": 10, @@ -126,7 +134,7 @@ "y": 1, "elevation": 0, "dest_map": "MAP_SSANNE_1F_CORRIDOR", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], @@ -137,7 +145,7 @@ "y": 8, "elevation": 0, "item": "ITEM_CHESTO_BERRY", - "flag": "HIDDEN_ITEM_SSANNE_KITCHEN_CHESTO_BERRY", + "flag": "FLAG_HIDDEN_ITEM_SSANNE_KITCHEN_CHESTO_BERRY", "quantity": 1, "underfoot": false }, @@ -147,7 +155,7 @@ "y": 4, "elevation": 0, "item": "ITEM_PECHA_BERRY", - "flag": "HIDDEN_ITEM_SSANNE_KITCHEN_PECHA_BERRY", + "flag": "FLAG_HIDDEN_ITEM_SSANNE_KITCHEN_PECHA_BERRY", "quantity": 1, "underfoot": false }, @@ -157,7 +165,7 @@ "y": 6, "elevation": 0, "item": "ITEM_CHERI_BERRY", - "flag": "HIDDEN_ITEM_SSANNE_KITCHEN_CHERI_BERRY", + "flag": "FLAG_HIDDEN_ITEM_SSANNE_KITCHEN_CHERI_BERRY", "quantity": 1, "underfoot": false } diff --git a/data/maps/SafariZone_Center/map.json b/data/maps/SafariZone_Center/map.json index 19231b544..29a2be415 100644 --- a/data/maps/SafariZone_Center/map.json +++ b/data/maps/SafariZone_Center/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 24, "y": 15, @@ -35,91 +36,91 @@ "y": 30, "elevation": 3, "dest_map": "MAP_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 26, "y": 30, "elevation": 3, "dest_map": "MAP_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 27, "y": 30, "elevation": 3, "dest_map": "MAP_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 25, "y": 5, "elevation": 3, "dest_map": "MAP_SAFARI_ZONE_NORTH", - "dest_warp_id": 9 + "dest_warp_id": "9" }, { "x": 26, "y": 5, "elevation": 3, "dest_map": "MAP_SAFARI_ZONE_NORTH", - "dest_warp_id": 10 + "dest_warp_id": "10" }, { "x": 27, "y": 5, "elevation": 0, "dest_map": "MAP_SAFARI_ZONE_NORTH", - "dest_warp_id": 11 + "dest_warp_id": "11" }, { "x": 8, "y": 17, "elevation": 3, "dest_map": "MAP_SAFARI_ZONE_WEST", - "dest_warp_id": 6 + "dest_warp_id": "6" }, { "x": 8, "y": 18, "elevation": 3, "dest_map": "MAP_SAFARI_ZONE_WEST", - "dest_warp_id": 7 + "dest_warp_id": "7" }, { "x": 8, "y": 19, "elevation": 0, "dest_map": "MAP_SAFARI_ZONE_WEST", - "dest_warp_id": 8 + "dest_warp_id": "8" }, { "x": 43, "y": 15, "elevation": 3, "dest_map": "MAP_SAFARI_ZONE_EAST", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 43, "y": 16, "elevation": 3, "dest_map": "MAP_SAFARI_ZONE_EAST", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 43, "y": 17, "elevation": 0, "dest_map": "MAP_SAFARI_ZONE_EAST", - "dest_warp_id": 5 + "dest_warp_id": "5" }, { "x": 29, "y": 25, "elevation": 0, "dest_map": "MAP_SAFARI_ZONE_CENTER_REST_HOUSE", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], @@ -146,7 +147,7 @@ "y": 15, "elevation": 3, "item": "ITEM_LEAF_STONE", - "flag": "HIDDEN_ITEM_SAFARI_ZONE_CENTER_LEAF_STONE", + "flag": "FLAG_HIDDEN_ITEM_SAFARI_ZONE_CENTER_LEAF_STONE", "quantity": 1, "underfoot": false }, diff --git a/data/maps/SafariZone_Center_RestHouse/map.json b/data/maps/SafariZone_Center_RestHouse/map.json index 9a6211cd5..1bf350eb9 100644 --- a/data/maps/SafariZone_Center_RestHouse/map.json +++ b/data/maps/SafariZone_Center_RestHouse/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 3, "y": 4, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_1", "x": 7, "y": 3, @@ -48,21 +50,21 @@ "y": 9, "elevation": 3, "dest_map": "MAP_SAFARI_ZONE_CENTER", - "dest_warp_id": 12 + "dest_warp_id": "12" }, { "x": 4, "y": 9, "elevation": 3, "dest_map": "MAP_SAFARI_ZONE_CENTER", - "dest_warp_id": 12 + "dest_warp_id": "12" }, { "x": 5, "y": 9, "elevation": 3, "dest_map": "MAP_SAFARI_ZONE_CENTER", - "dest_warp_id": 12 + "dest_warp_id": "12" } ], "coord_events": [], diff --git a/data/maps/SafariZone_East/map.json b/data/maps/SafariZone_East/map.json index aabf6edc8..cc9ed8726 100644 --- a/data/maps/SafariZone_East/map.json +++ b/data/maps/SafariZone_East/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 13, "y": 12, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_SAFARI_ZONE_EAST_MAX_POTION" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 37, "y": 15, @@ -42,6 +44,7 @@ "flag": "FLAG_HIDE_SAFARI_ZONE_EAST_FULL_RESTORE" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 31, "y": 18, @@ -55,6 +58,7 @@ "flag": "FLAG_HIDE_SAFARI_ZONE_EAST_TM11" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 36, "y": 17, @@ -74,49 +78,49 @@ "y": 9, "elevation": 3, "dest_map": "MAP_SAFARI_ZONE_NORTH", - "dest_warp_id": 6 + "dest_warp_id": "6" }, { "x": 8, "y": 10, "elevation": 3, "dest_map": "MAP_SAFARI_ZONE_NORTH", - "dest_warp_id": 7 + "dest_warp_id": "7" }, { "x": 8, "y": 11, "elevation": 0, "dest_map": "MAP_SAFARI_ZONE_NORTH", - "dest_warp_id": 8 + "dest_warp_id": "8" }, { "x": 8, "y": 26, "elevation": 3, "dest_map": "MAP_SAFARI_ZONE_CENTER", - "dest_warp_id": 9 + "dest_warp_id": "9" }, { "x": 8, "y": 27, "elevation": 3, "dest_map": "MAP_SAFARI_ZONE_CENTER", - "dest_warp_id": 10 + "dest_warp_id": "10" }, { "x": 8, "y": 28, "elevation": 0, "dest_map": "MAP_SAFARI_ZONE_CENTER", - "dest_warp_id": 11 + "dest_warp_id": "11" }, { "x": 40, "y": 14, "elevation": 0, "dest_map": "MAP_SAFARI_ZONE_EAST_REST_HOUSE", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/SafariZone_East_RestHouse/map.json b/data/maps/SafariZone_East_RestHouse/map.json index 136eeb85d..a9682a68e 100644 --- a/data/maps/SafariZone_East_RestHouse/map.json +++ b/data/maps/SafariZone_East_RestHouse/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 3, "y": 5, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKER", "x": 6, "y": 3, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", "x": 7, "y": 3, @@ -61,21 +64,21 @@ "y": 9, "elevation": 3, "dest_map": "MAP_SAFARI_ZONE_EAST", - "dest_warp_id": 6 + "dest_warp_id": "6" }, { "x": 4, "y": 9, "elevation": 3, "dest_map": "MAP_SAFARI_ZONE_EAST", - "dest_warp_id": 6 + "dest_warp_id": "6" }, { "x": 5, "y": 9, "elevation": 3, "dest_map": "MAP_SAFARI_ZONE_EAST", - "dest_warp_id": 6 + "dest_warp_id": "6" } ], "coord_events": [], diff --git a/data/maps/SafariZone_North/map.json b/data/maps/SafariZone_North/map.json index 9611e34fa..f0d2e8639 100644 --- a/data/maps/SafariZone_North/map.json +++ b/data/maps/SafariZone_North/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 33, "y": 5, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_SAFARI_ZONE_NORTH_PROTEIN" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 28, "y": 9, @@ -42,6 +44,7 @@ "flag": "FLAG_HIDE_SAFARI_ZONE_NORTH_TM47" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 29, "y": 17, @@ -61,91 +64,91 @@ "y": 34, "elevation": 3, "dest_map": "MAP_SAFARI_ZONE_WEST", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 11, "y": 34, "elevation": 3, "dest_map": "MAP_SAFARI_ZONE_WEST", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 12, "y": 34, "elevation": 0, "dest_map": "MAP_SAFARI_ZONE_WEST", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 20, "y": 34, "elevation": 3, "dest_map": "MAP_SAFARI_ZONE_WEST", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 21, "y": 34, "elevation": 3, "dest_map": "MAP_SAFARI_ZONE_WEST", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 22, "y": 34, "elevation": 0, "dest_map": "MAP_SAFARI_ZONE_WEST", - "dest_warp_id": 5 + "dest_warp_id": "5" }, { "x": 48, "y": 31, "elevation": 3, "dest_map": "MAP_SAFARI_ZONE_EAST", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 48, "y": 32, "elevation": 3, "dest_map": "MAP_SAFARI_ZONE_EAST", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 48, "y": 33, "elevation": 0, "dest_map": "MAP_SAFARI_ZONE_EAST", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 30, "y": 34, "elevation": 3, "dest_map": "MAP_SAFARI_ZONE_CENTER", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 31, "y": 34, "elevation": 3, "dest_map": "MAP_SAFARI_ZONE_CENTER", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 32, "y": 34, "elevation": 0, "dest_map": "MAP_SAFARI_ZONE_CENTER", - "dest_warp_id": 5 + "dest_warp_id": "5" }, { "x": 43, "y": 8, "elevation": 0, "dest_map": "MAP_SAFARI_ZONE_NORTH_REST_HOUSE", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/SafariZone_North_RestHouse/map.json b/data/maps/SafariZone_North_RestHouse/map.json index 7e2f211cd..2a55ff569 100644 --- a/data/maps/SafariZone_North_RestHouse/map.json +++ b/data/maps/SafariZone_North_RestHouse/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN", "x": 3, "y": 4, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 7, "y": 5, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_FISHER", "x": 6, "y": 2, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", "x": 11, "y": 2, @@ -74,21 +78,21 @@ "y": 9, "elevation": 3, "dest_map": "MAP_SAFARI_ZONE_NORTH", - "dest_warp_id": 12 + "dest_warp_id": "12" }, { "x": 4, "y": 9, "elevation": 3, "dest_map": "MAP_SAFARI_ZONE_NORTH", - "dest_warp_id": 12 + "dest_warp_id": "12" }, { "x": 5, "y": 9, "elevation": 3, "dest_map": "MAP_SAFARI_ZONE_NORTH", - "dest_warp_id": 12 + "dest_warp_id": "12" } ], "coord_events": [], diff --git a/data/maps/SafariZone_SecretHouse/map.json b/data/maps/SafariZone_SecretHouse/map.json index 87cd7742d..782716f0c 100644 --- a/data/maps/SafariZone_SecretHouse/map.json +++ b/data/maps/SafariZone_SecretHouse/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WORKER_M", "x": 6, "y": 5, @@ -35,21 +36,21 @@ "y": 9, "elevation": 3, "dest_map": "MAP_SAFARI_ZONE_WEST", - "dest_warp_id": 9 + "dest_warp_id": "9" }, { "x": 4, "y": 9, "elevation": 3, "dest_map": "MAP_SAFARI_ZONE_WEST", - "dest_warp_id": 9 + "dest_warp_id": "9" }, { "x": 5, "y": 9, "elevation": 3, "dest_map": "MAP_SAFARI_ZONE_WEST", - "dest_warp_id": 9 + "dest_warp_id": "9" } ], "coord_events": [], diff --git a/data/maps/SafariZone_West/map.json b/data/maps/SafariZone_West/map.json index 239f7caef..0933c13fb 100644 --- a/data/maps/SafariZone_West/map.json +++ b/data/maps/SafariZone_West/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 28, "y": 14, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_SAFARI_ZONE_WEST_GOLD_TEETH" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 17, "y": 13, @@ -42,6 +44,7 @@ "flag": "FLAG_HIDE_SAFARI_ZONE_WEST_TM32" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 16, "y": 27, @@ -55,6 +58,7 @@ "flag": "FLAG_HIDE_SAFARI_ZONE_WEST_MAX_POTION" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 27, "y": 24, @@ -74,77 +78,77 @@ "y": 5, "elevation": 3, "dest_map": "MAP_SAFARI_ZONE_NORTH", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 31, "y": 5, "elevation": 3, "dest_map": "MAP_SAFARI_ZONE_NORTH", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 32, "y": 5, "elevation": 0, "dest_map": "MAP_SAFARI_ZONE_NORTH", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 37, "y": 5, "elevation": 3, "dest_map": "MAP_SAFARI_ZONE_NORTH", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 38, "y": 5, "elevation": 3, "dest_map": "MAP_SAFARI_ZONE_NORTH", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 39, "y": 5, "elevation": 0, "dest_map": "MAP_SAFARI_ZONE_NORTH", - "dest_warp_id": 5 + "dest_warp_id": "5" }, { "x": 40, "y": 26, "elevation": 3, "dest_map": "MAP_SAFARI_ZONE_CENTER", - "dest_warp_id": 6 + "dest_warp_id": "6" }, { "x": 40, "y": 27, "elevation": 3, "dest_map": "MAP_SAFARI_ZONE_CENTER", - "dest_warp_id": 7 + "dest_warp_id": "7" }, { "x": 40, "y": 28, "elevation": 0, "dest_map": "MAP_SAFARI_ZONE_CENTER", - "dest_warp_id": 8 + "dest_warp_id": "8" }, { "x": 12, "y": 7, "elevation": 0, "dest_map": "MAP_SAFARI_ZONE_SECRET_HOUSE", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 19, "y": 18, "elevation": 0, "dest_map": "MAP_SAFARI_ZONE_WEST_REST_HOUSE", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], @@ -187,7 +191,7 @@ "y": 11, "elevation": 3, "item": "ITEM_REVIVE", - "flag": "HIDDEN_ITEM_SAFARI_ZONE_WEST_REVIVE", + "flag": "FLAG_HIDDEN_ITEM_SAFARI_ZONE_WEST_REVIVE", "quantity": 1, "underfoot": false } diff --git a/data/maps/SafariZone_West_RestHouse/map.json b/data/maps/SafariZone_West_RestHouse/map.json index 0716b11b6..0b7b3bb6e 100644 --- a/data/maps/SafariZone_West_RestHouse/map.json +++ b/data/maps/SafariZone_West_RestHouse/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 3, "y": 4, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MAN", "x": 2, "y": 2, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_F", "x": 7, "y": 3, @@ -61,21 +64,21 @@ "y": 9, "elevation": 3, "dest_map": "MAP_SAFARI_ZONE_WEST", - "dest_warp_id": 10 + "dest_warp_id": "10" }, { "x": 4, "y": 9, "elevation": 3, "dest_map": "MAP_SAFARI_ZONE_WEST", - "dest_warp_id": 10 + "dest_warp_id": "10" }, { "x": 5, "y": 9, "elevation": 3, "dest_map": "MAP_SAFARI_ZONE_WEST", - "dest_warp_id": 10 + "dest_warp_id": "10" } ], "coord_events": [], diff --git a/data/maps/SaffronCity/map.json b/data/maps/SaffronCity/map.json index d2a1b424e..31eb5193c 100644 --- a/data/maps/SaffronCity/map.json +++ b/data/maps/SaffronCity/map.json @@ -38,6 +38,7 @@ "connections_no_include": true, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 22, "y": 15, @@ -51,6 +52,7 @@ "flag": "FLAG_HIDE_SAFFRON_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 26, "y": 16, @@ -64,6 +66,7 @@ "flag": "FLAG_HIDE_SAFFRON_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 46, "y": 13, @@ -77,6 +80,7 @@ "flag": "FLAG_HIDE_SAFFRON_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 27, "y": 22, @@ -90,6 +94,7 @@ "flag": "FLAG_HIDE_SAFFRON_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 25, "y": 33, @@ -103,6 +108,7 @@ "flag": "FLAG_HIDE_SAFFRON_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 34, "y": 31, @@ -116,6 +122,7 @@ "flag": "FLAG_HIDE_SAFFRON_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 30, "y": 39, @@ -129,6 +136,7 @@ "flag": "FLAG_HIDE_SAFFRON_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 48, "y": 24, @@ -142,6 +150,7 @@ "flag": "FLAG_HIDE_SAFFRON_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 37, "y": 32, @@ -155,6 +164,7 @@ "flag": "FLAG_HIDE_SAFFRON_CIVILIANS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WORKER_M", "x": 21, "y": 23, @@ -168,6 +178,7 @@ "flag": "FLAG_HIDE_SAFFRON_CIVILIANS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MAN", "x": 39, "y": 16, @@ -181,6 +192,7 @@ "flag": "FLAG_HIDE_SAFFRON_CIVILIANS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BOY", "x": 44, "y": 22, @@ -194,6 +206,7 @@ "flag": "FLAG_HIDE_SAFFRON_CIVILIANS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PIDGEOT", "x": 45, "y": 22, @@ -207,6 +220,7 @@ "flag": "FLAG_HIDE_SAFFRON_CIVILIANS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LASS", "x": 32, "y": 39, @@ -220,6 +234,7 @@ "flag": "FLAG_HIDE_SAFFRON_CIVILIANS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BATTLE_GIRL", "x": 47, "y": 24, @@ -239,105 +254,105 @@ "y": 30, "elevation": 0, "dest_map": "MAP_SILPH_CO_1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 22, "y": 14, "elevation": 0, "dest_map": "MAP_SAFFRON_CITY_COPYCATS_HOUSE_1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 40, "y": 12, "elevation": 0, "dest_map": "MAP_SAFFRON_CITY_DOJO", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 46, "y": 12, "elevation": 0, "dest_map": "MAP_SAFFRON_CITY_GYM", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 27, "y": 21, "elevation": 0, "dest_map": "MAP_SAFFRON_CITY_HOUSE", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 40, "y": 21, "elevation": 0, "dest_map": "MAP_SAFFRON_CITY_MART", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 24, "y": 38, "elevation": 0, "dest_map": "MAP_SAFFRON_CITY_POKEMON_CENTER_1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 43, "y": 38, "elevation": 0, "dest_map": "MAP_SAFFRON_CITY_MR_PSYCHICS_HOUSE", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 8, "y": 27, "elevation": 3, "dest_map": "MAP_ROUTE7_EAST_ENTRANCE", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 34, "y": 5, "elevation": 3, "dest_map": "MAP_ROUTE5_SOUTH_ENTRANCE", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 58, "y": 27, "elevation": 3, "dest_map": "MAP_ROUTE8_WEST_ENTRANCE", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 34, "y": 46, "elevation": 3, "dest_map": "MAP_ROUTE6_NORTH_ENTRANCE", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 35, "y": 46, "elevation": 3, "dest_map": "MAP_ROUTE6_NORTH_ENTRANCE", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 35, "y": 5, "elevation": 3, "dest_map": "MAP_ROUTE5_SOUTH_ENTRANCE", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 47, "y": 21, "elevation": 0, "dest_map": "MAP_SAFFRON_CITY_POKEMON_TRAINER_FAN_CLUB", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/SaffronCity/scripts.inc b/data/maps/SaffronCity/scripts.inc index 530ce140c..3d517bf43 100644 --- a/data/maps/SaffronCity/scripts.inc +++ b/data/maps/SaffronCity/scripts.inc @@ -44,7 +44,7 @@ SaffronCity_EventScript_RocketGrunt7:: SaffronCity_EventScript_DoorGuardGrunt:: lock goto_if_set FLAG_RESCUED_MR_FUJI, SaffronCity_EventScript_DoorGuardAsleep - applymovement LOCALID_DOOR_GUARD_GRUNT, Movement_FacePlayer + applymovement LOCALID_DOOR_GUARD_GRUNT, Common_Movement_FacePlayer waitmovement 0 msgbox SaffronCity_Text_ImASecurityGuard release diff --git a/data/maps/SaffronCity_CopycatsHouse_1F/map.json b/data/maps/SaffronCity_CopycatsHouse_1F/map.json index a53910775..4bb8a60a8 100644 --- a/data/maps/SaffronCity_CopycatsHouse_1F/map.json +++ b/data/maps/SaffronCity_CopycatsHouse_1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", "x": 8, "y": 4, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_3", "x": 3, "y": 3, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CHANSEY", "x": 4, "y": 4, @@ -61,28 +64,28 @@ "y": 8, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 4, "y": 8, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 5, "y": 8, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 10, "y": 2, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY_COPYCATS_HOUSE_2F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/SaffronCity_CopycatsHouse_2F/map.json b/data/maps/SaffronCity_CopycatsHouse_2F/map.json index d281922d1..63bc01336 100644 --- a/data/maps/SaffronCity_CopycatsHouse_2F/map.json +++ b/data/maps/SaffronCity_CopycatsHouse_2F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_DODUO", "x": 6, "y": 8, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PIKACHU", "x": 4, "y": 6, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_JIGGLYPUFF", "x": 7, "y": 2, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LITTLE_GIRL", "x": 9, "y": 6, @@ -74,7 +78,7 @@ "y": 2, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY_COPYCATS_HOUSE_1F", - "dest_warp_id": 3 + "dest_warp_id": "3" } ], "coord_events": [], @@ -101,7 +105,7 @@ "y": 1, "elevation": 0, "item": "ITEM_NUGGET", - "flag": "HIDDEN_ITEM_SAFFRON_CITY_COPYCATS_HOUSE_2F_NUGGET", + "flag": "FLAG_HIDDEN_ITEM_SAFFRON_CITY_COPYCATS_HOUSE_2F_NUGGET", "quantity": 1, "underfoot": false } diff --git a/data/maps/SaffronCity_Dojo/map.json b/data/maps/SaffronCity_Dojo/map.json index 34a64c7c4..062741bfa 100644 --- a/data/maps/SaffronCity_Dojo/map.json +++ b/data/maps/SaffronCity_Dojo/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BLACKBELT", "x": 11, "y": 10, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BLACKBELT", "x": 1, "y": 10, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BLACKBELT", "x": 11, "y": 8, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BLACKBELT", "x": 1, "y": 8, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BLACKBELT", "x": 6, "y": 5, @@ -81,6 +86,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 5, "y": 3, @@ -94,6 +100,7 @@ "flag": "FLAG_HIDE_DOJO_HITMONLEE_BALL" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 7, "y": 3, @@ -113,21 +120,21 @@ "y": 14, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 6, "y": 14, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 7, "y": 14, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [ diff --git a/data/maps/SaffronCity_Dojo/scripts.inc b/data/maps/SaffronCity_Dojo/scripts.inc index 680dc871e..b66ad6cee 100644 --- a/data/maps/SaffronCity_Dojo/scripts.inc +++ b/data/maps/SaffronCity_Dojo/scripts.inc @@ -6,7 +6,7 @@ SaffronCity_Dojo_MapScripts:: SaffronCity_Dojo_EventScript_TriggerMasterBattleLeft:: lockall setvar VAR_MAP_SCENE_SAFFRON_CITY_DOJO, 1 - applymovement LOCALID_KARATE_MASTER, Movement_WalkInPlaceFasterLeft + applymovement LOCALID_KARATE_MASTER, Common_Movement_WalkInPlaceFasterLeft waitmovement 0 releaseall end @@ -14,7 +14,7 @@ SaffronCity_Dojo_EventScript_TriggerMasterBattleLeft:: SaffronCity_Dojo_EventScript_TriggerMasterBattleRight:: lockall setvar VAR_MAP_SCENE_SAFFRON_CITY_DOJO, 1 - applymovement LOCALID_KARATE_MASTER, Movement_WalkInPlaceFasterRight + applymovement LOCALID_KARATE_MASTER, Common_Movement_WalkInPlaceFasterRight waitmovement 0 releaseall end @@ -25,7 +25,7 @@ SaffronCity_Dojo_EventScript_HitmonleeBall:: goto_if_set FLAG_GOT_HITMON_FROM_DOJO, SaffronCity_Dojo_EventScript_AlreadyGotHitmon showmonpic SPECIES_HITMONLEE, 10, 3 setvar VAR_TEMP_1, SPECIES_HITMONLEE - applymovement LOCALID_KARATE_MASTER, Movement_WalkInPlaceFasterUp + applymovement LOCALID_KARATE_MASTER, Common_Movement_WalkInPlaceFasterUp waitmovement 0 textcolor NPC_TEXT_COLOR_MALE msgbox SaffronCity_Dojo_Text_YouWantHitmonlee, MSGBOX_YESNO @@ -46,7 +46,7 @@ SaffronCity_Dojo_EventScript_HitmonchanBall:: goto_if_set FLAG_GOT_HITMON_FROM_DOJO, SaffronCity_Dojo_EventScript_AlreadyGotHitmon showmonpic SPECIES_HITMONCHAN, 10, 3 setvar VAR_TEMP_1, SPECIES_HITMONCHAN - applymovement LOCALID_KARATE_MASTER, Movement_WalkInPlaceFasterUp + applymovement LOCALID_KARATE_MASTER, Common_Movement_WalkInPlaceFasterUp waitmovement 0 textcolor NPC_TEXT_COLOR_MALE msgbox SaffronCity_Dojo_Text_YouWantHitmonchan, MSGBOX_YESNO diff --git a/data/maps/SaffronCity_Gym/map.json b/data/maps/SaffronCity_Gym/map.json index 26a6736b6..faf4769e4 100644 --- a/data/maps/SaffronCity_Gym/map.json +++ b/data/maps/SaffronCity_Gym/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_M", "x": 24, "y": 18, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_M", "x": 24, "y": 2, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_M", "x": 4, "y": 2, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CHANNELER", "x": 14, "y": 2, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CHANNELER", "x": 4, "y": 10, @@ -81,6 +86,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CHANNELER", "x": 4, "y": 18, @@ -94,6 +100,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SABRINA", "x": 14, "y": 11, @@ -107,6 +114,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_M", "x": 24, "y": 10, @@ -120,6 +128,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GYM_GUY", "x": 15, "y": 20, @@ -139,231 +148,231 @@ "y": 23, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 14, "y": 23, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 15, "y": 23, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 18, "y": 20, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY_GYM", - "dest_warp_id": 32 + "dest_warp_id": "32" }, { "x": 0, "y": 4, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY_GYM", - "dest_warp_id": 22 + "dest_warp_id": "22" }, { "x": 0, "y": 7, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY_GYM", - "dest_warp_id": 20 + "dest_warp_id": "20" }, { "x": 0, "y": 12, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY_GYM", - "dest_warp_id": 30 + "dest_warp_id": "30" }, { "x": 0, "y": 15, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY_GYM", - "dest_warp_id": 11 + "dest_warp_id": "11" }, { "x": 0, "y": 20, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY_GYM", - "dest_warp_id": 28 + "dest_warp_id": "28" }, { "x": 0, "y": 23, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY_GYM", - "dest_warp_id": 19 + "dest_warp_id": "19" }, { "x": 8, "y": 4, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY_GYM", - "dest_warp_id": 18 + "dest_warp_id": "18" }, { "x": 8, "y": 7, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY_GYM", - "dest_warp_id": 7 + "dest_warp_id": "7" }, { "x": 8, "y": 12, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY_GYM", - "dest_warp_id": 17 + "dest_warp_id": "17" }, { "x": 8, "y": 15, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY_GYM", - "dest_warp_id": 15 + "dest_warp_id": "15" }, { "x": 8, "y": 20, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY_GYM", - "dest_warp_id": 26 + "dest_warp_id": "26" }, { "x": 8, "y": 23, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY_GYM", - "dest_warp_id": 13 + "dest_warp_id": "13" }, { "x": 12, "y": 4, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY_GYM", - "dest_warp_id": 24 + "dest_warp_id": "24" }, { "x": 12, "y": 7, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY_GYM", - "dest_warp_id": 12 + "dest_warp_id": "12" }, { "x": 16, "y": 4, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY_GYM", - "dest_warp_id": 10 + "dest_warp_id": "10" }, { "x": 16, "y": 7, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY_GYM", - "dest_warp_id": 9 + "dest_warp_id": "9" }, { "x": 18, "y": 15, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY_GYM", - "dest_warp_id": 5 + "dest_warp_id": "5" }, { "x": 20, "y": 4, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY_GYM", - "dest_warp_id": 23 + "dest_warp_id": "23" }, { "x": 20, "y": 7, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY_GYM", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 20, "y": 12, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY_GYM", - "dest_warp_id": 21 + "dest_warp_id": "21" }, { "x": 20, "y": 15, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY_GYM", - "dest_warp_id": 16 + "dest_warp_id": "16" }, { "x": 20, "y": 20, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY_GYM", - "dest_warp_id": 27 + "dest_warp_id": "27" }, { "x": 20, "y": 23, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY_GYM", - "dest_warp_id": 14 + "dest_warp_id": "14" }, { "x": 28, "y": 4, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY_GYM", - "dest_warp_id": 25 + "dest_warp_id": "25" }, { "x": 28, "y": 7, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY_GYM", - "dest_warp_id": 8 + "dest_warp_id": "8" }, { "x": 28, "y": 12, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY_GYM", - "dest_warp_id": 31 + "dest_warp_id": "31" }, { "x": 28, "y": 15, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY_GYM", - "dest_warp_id": 6 + "dest_warp_id": "6" }, { "x": 28, "y": 20, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY_GYM", - "dest_warp_id": 29 + "dest_warp_id": "29" }, { "x": 28, "y": 23, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY_GYM", - "dest_warp_id": 3 + "dest_warp_id": "3" } ], "coord_events": [], diff --git a/data/maps/SaffronCity_House/map.json b/data/maps/SaffronCity_House/map.json index d1232cadb..304d9cb7b 100644 --- a/data/maps/SaffronCity_House/map.json +++ b/data/maps/SaffronCity_House/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PIDGEY", "x": 0, "y": 5, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LASS", "x": 4, "y": 4, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 6, "y": 2, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CLIPBOARD", "x": 5, "y": 4, @@ -74,21 +78,21 @@ "y": 7, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 4, "y": 7, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 5, "y": 7, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY", - "dest_warp_id": 4 + "dest_warp_id": "4" } ], "coord_events": [], diff --git a/data/maps/SaffronCity_Mart/map.json b/data/maps/SaffronCity_Mart/map.json index 451ee31d9..0618e78d1 100644 --- a/data/maps/SaffronCity_Mart/map.json +++ b/data/maps/SaffronCity_Mart/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CLERK", "x": 2, "y": 3, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 1, "y": 7, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LASS", "x": 9, "y": 5, @@ -61,21 +64,21 @@ "y": 7, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY", - "dest_warp_id": 5 + "dest_warp_id": "5" }, { "x": 4, "y": 7, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY", - "dest_warp_id": 5 + "dest_warp_id": "5" }, { "x": 5, "y": 7, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY", - "dest_warp_id": 5 + "dest_warp_id": "5" } ], "coord_events": [], diff --git a/data/maps/SaffronCity_MrPsychicsHouse/map.json b/data/maps/SaffronCity_MrPsychicsHouse/map.json index 6e9a5508d..444045571 100644 --- a/data/maps/SaffronCity_MrPsychicsHouse/map.json +++ b/data/maps/SaffronCity_MrPsychicsHouse/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", "x": 7, "y": 4, @@ -35,21 +36,21 @@ "y": 7, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY", - "dest_warp_id": 7 + "dest_warp_id": "7" }, { "x": 4, "y": 7, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY", - "dest_warp_id": 7 + "dest_warp_id": "7" }, { "x": 5, "y": 7, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY", - "dest_warp_id": 7 + "dest_warp_id": "7" } ], "coord_events": [], diff --git a/data/maps/SaffronCity_PokemonCenter_1F/map.json b/data/maps/SaffronCity_PokemonCenter_1F/map.json index 3bf36c736..dfb7b03be 100644 --- a/data/maps/SaffronCity_PokemonCenter_1F/map.json +++ b/data/maps/SaffronCity_PokemonCenter_1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_NURSE", "x": 7, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN", "x": 14, "y": 6, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_3", "x": 4, "y": 4, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 9, "y": 6, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "0", "x": 2, "y": 1, @@ -81,6 +86,7 @@ "flag": "FLAG_HIDE_SAFFRON_CITY_POKECENTER_SABRINA_JOURNALS" }, { + "type": "object", "graphics_id": "0", "x": 3, "y": 1, @@ -100,28 +106,28 @@ "y": 8, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY", - "dest_warp_id": 6 + "dest_warp_id": "6" }, { "x": 7, "y": 8, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY", - "dest_warp_id": 6 + "dest_warp_id": "6" }, { "x": 8, "y": 8, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY", - "dest_warp_id": 6 + "dest_warp_id": "6" }, { "x": 1, "y": 6, "elevation": 4, "dest_map": "MAP_SAFFRON_CITY_POKEMON_CENTER_2F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/SaffronCity_PokemonCenter_2F/map.json b/data/maps/SaffronCity_PokemonCenter_2F/map.json index 71c05de46..53db3c4ca 100644 --- a/data/maps/SaffronCity_PokemonCenter_2F/map.json +++ b/data/maps/SaffronCity_PokemonCenter_2F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 6, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 2, "y": 2, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 10, "y": 2, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MG_DELIVERYMAN", "x": 1, "y": 2, @@ -74,21 +78,21 @@ "y": 6, "elevation": 4, "dest_map": "MAP_SAFFRON_CITY_POKEMON_CENTER_1F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 5, "y": 1, "elevation": 0, "dest_map": "MAP_UNION_ROOM", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 9, "y": 1, "elevation": 0, "dest_map": "MAP_TRADE_CENTER", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/SaffronCity_PokemonTrainerFanClub/map.json b/data/maps/SaffronCity_PokemonTrainerFanClub/map.json index dc9f24d6d..02db9fdb5 100644 --- a/data/maps/SaffronCity_PokemonTrainerFanClub/map.json +++ b/data/maps/SaffronCity_PokemonTrainerFanClub/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BATTLE_GIRL", "x": 7, "y": 13, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LITTLE_GIRL", "x": 6, "y": 11, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 3, "y": 13, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN", "x": 3, "y": 12, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_3", "x": 9, "y": 11, @@ -81,6 +86,7 @@ "flag": "FLAG_HIDE_SAFFRON_FAN_CLUB_WOMAN" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKER", "x": 7, "y": 12, @@ -94,6 +100,7 @@ "flag": "FLAG_HIDE_SAFFRON_FAN_CLUB_ROCKER" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BEAUTY", "x": 9, "y": 12, @@ -107,6 +114,7 @@ "flag": "FLAG_HIDE_SAFFRON_FAN_CLUB_BEAUTY" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BLACKBELT", "x": 5, "y": 11, @@ -120,6 +128,7 @@ "flag": "FLAG_HIDE_SAFFRON_FAN_CLUB_BLACKBELT" }, { + "type": "object", "graphics_id": "0", "x": 2, "y": 1, @@ -133,6 +142,7 @@ "flag": "FLAG_HIDE_POSTGAME_GOSSIPERS" }, { + "type": "object", "graphics_id": "0", "x": 3, "y": 1, @@ -152,7 +162,7 @@ "y": 15, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY", - "dest_warp_id": 14 + "dest_warp_id": "14" } ], "coord_events": [], diff --git a/data/maps/SaffronCity_PokemonTrainerFanClub/scripts.inc b/data/maps/SaffronCity_PokemonTrainerFanClub/scripts.inc index d4979c25c..698abf617 100644 --- a/data/maps/SaffronCity_PokemonTrainerFanClub/scripts.inc +++ b/data/maps/SaffronCity_PokemonTrainerFanClub/scripts.inc @@ -19,18 +19,18 @@ SaffronCity_PokemonTrainerFanClub_OnFrame:: SaffronCity_PokemonTrainerFanClub_EventScript_MeetFirstFans:: lockall textcolor NPC_TEXT_COLOR_FEMALE - applymovement LOCALID_BATTLE_GIRL, Movement_WalkInPlaceFasterDown + applymovement LOCALID_BATTLE_GIRL, Common_Movement_WalkInPlaceFasterDown waitmovement 0 playse SE_PIN - applymovement LOCALID_BATTLE_GIRL, Movement_ExclamationMark + applymovement LOCALID_BATTLE_GIRL, Common_Movement_ExclamationMark waitmovement 0 - applymovement LOCALID_BATTLE_GIRL, Movement_Delay48 + applymovement LOCALID_BATTLE_GIRL, Common_Movement_Delay48 waitmovement 0 msgbox SaffronCity_PokemonTrainerFanClub_Text_HuhYou closemessage applymovement LOCALID_BATTLE_GIRL, SaffronCity_PokemonTrainerFanClub_Movement_FanApproachPlayer waitmovement 0 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterRight waitmovement 0 msgbox SaffronCity_PokemonTrainerFanClub_Text_YourePlayerWereYourFansNow setvar VAR_MAP_SCENE_SAFFRON_CITY_POKEMON_TRAINER_FAN_CLUB, 2 diff --git a/data/maps/SeafoamIslands_1F/map.json b/data/maps/SeafoamIslands_1F/map.json index 8956609fb..3893afd63 100644 --- a/data/maps/SeafoamIslands_1F/map.json +++ b/data/maps/SeafoamIslands_1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 22, "y": 12, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_SEAFOAM_1F_BOULDER_1" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 32, "y": 9, @@ -42,6 +44,7 @@ "flag": "FLAG_HIDE_SEAFOAM_1F_BOULDER_2" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 11, "y": 8, @@ -61,49 +64,49 @@ "y": 6, "elevation": 3, "dest_map": "MAP_SEAFOAM_ISLANDS_B1F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 31, "y": 4, "elevation": 3, "dest_map": "MAP_SEAFOAM_ISLANDS_B1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 28, "y": 19, "elevation": 3, "dest_map": "MAP_SEAFOAM_ISLANDS_B1F", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 6, "y": 21, "elevation": 3, "dest_map": "MAP_ROUTE20", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 32, "y": 21, "elevation": 3, "dest_map": "MAP_ROUTE20", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 21, "y": 8, "elevation": 3, "dest_map": "MAP_SEAFOAM_ISLANDS_B1F", - "dest_warp_id": 9 + "dest_warp_id": "9" }, { "x": 30, "y": 8, "elevation": 3, "dest_map": "MAP_SEAFOAM_ISLANDS_B1F", - "dest_warp_id": 10 + "dest_warp_id": "10" } ], "coord_events": [], diff --git a/data/maps/SeafoamIslands_B1F/map.json b/data/maps/SeafoamIslands_B1F/map.json index 8e3cb2bb5..ddd704e26 100644 --- a/data/maps/SeafoamIslands_B1F/map.json +++ b/data/maps/SeafoamIslands_B1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 22, "y": 8, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_SEAFOAM_B1F_BOULDER_1" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 30, "y": 8, @@ -42,6 +44,7 @@ "flag": "FLAG_HIDE_SEAFOAM_B1F_BOULDER_2" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 19, "y": 18, @@ -55,6 +58,7 @@ "flag": "FLAG_HIDE_SEAFOAM_ISLANDS_B1F_WATER_STONE" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 24, "y": 14, @@ -74,77 +78,77 @@ "y": 6, "elevation": 4, "dest_map": "MAP_SEAFOAM_ISLANDS_1F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 31, "y": 4, "elevation": 3, "dest_map": "MAP_SEAFOAM_ISLANDS_1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 28, "y": 19, "elevation": 3, "dest_map": "MAP_SEAFOAM_ISLANDS_1F", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 7, "y": 3, "elevation": 3, "dest_map": "MAP_SEAFOAM_ISLANDS_B2F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 17, "y": 9, "elevation": 4, "dest_map": "MAP_SEAFOAM_ISLANDS_B2F", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 25, "y": 19, "elevation": 3, "dest_map": "MAP_SEAFOAM_ISLANDS_B2F", - "dest_warp_id": 5 + "dest_warp_id": "5" }, { "x": 32, "y": 14, "elevation": 3, "dest_map": "MAP_SEAFOAM_ISLANDS_B2F", - "dest_warp_id": 6 + "dest_warp_id": "6" }, { "x": 23, "y": 8, "elevation": 3, "dest_map": "MAP_SEAFOAM_ISLANDS_B2F", - "dest_warp_id": 7 + "dest_warp_id": "7" }, { "x": 28, "y": 8, "elevation": 3, "dest_map": "MAP_SEAFOAM_ISLANDS_B2F", - "dest_warp_id": 8 + "dest_warp_id": "8" }, { "x": 21, "y": 8, "elevation": 3, "dest_map": "MAP_SEAFOAM_ISLANDS_1F", - "dest_warp_id": 5 + "dest_warp_id": "5" }, { "x": 29, "y": 8, "elevation": 3, "dest_map": "MAP_SEAFOAM_ISLANDS_1F", - "dest_warp_id": 6 + "dest_warp_id": "6" } ], "coord_events": [], diff --git a/data/maps/SeafoamIslands_B2F/map.json b/data/maps/SeafoamIslands_B2F/map.json index e2b21a02f..421b263b4 100644 --- a/data/maps/SeafoamIslands_B2F/map.json +++ b/data/maps/SeafoamIslands_B2F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 22, "y": 8, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_SEAFOAM_B2F_BOULDER_1" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 30, "y": 8, @@ -42,6 +44,7 @@ "flag": "FLAG_HIDE_SEAFOAM_B2F_BOULDER_2" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 18, "y": 15, @@ -61,77 +64,77 @@ "y": 17, "elevation": 3, "dest_map": "MAP_SEAFOAM_ISLANDS_B3F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 32, "y": 4, "elevation": 3, "dest_map": "MAP_SEAFOAM_ISLANDS_B3F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 31, "y": 17, "elevation": 4, "dest_map": "MAP_SEAFOAM_ISLANDS_B3F", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 7, "y": 4, "elevation": 3, "dest_map": "MAP_SEAFOAM_ISLANDS_B1F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 17, "y": 9, "elevation": 4, "dest_map": "MAP_SEAFOAM_ISLANDS_B1F", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 25, "y": 19, "elevation": 3, "dest_map": "MAP_SEAFOAM_ISLANDS_B1F", - "dest_warp_id": 5 + "dest_warp_id": "5" }, { "x": 32, "y": 14, "elevation": 4, "dest_map": "MAP_SEAFOAM_ISLANDS_B1F", - "dest_warp_id": 6 + "dest_warp_id": "6" }, { "x": 22, "y": 7, "elevation": 3, "dest_map": "MAP_SEAFOAM_ISLANDS_B1F", - "dest_warp_id": 7 + "dest_warp_id": "7" }, { "x": 29, "y": 8, "elevation": 3, "dest_map": "MAP_SEAFOAM_ISLANDS_B1F", - "dest_warp_id": 8 + "dest_warp_id": "8" }, { "x": 24, "y": 8, "elevation": 3, "dest_map": "MAP_SEAFOAM_ISLANDS_B3F", - "dest_warp_id": 5 + "dest_warp_id": "5" }, { "x": 27, "y": 8, "elevation": 3, "dest_map": "MAP_SEAFOAM_ISLANDS_B3F", - "dest_warp_id": 6 + "dest_warp_id": "6" } ], "coord_events": [], diff --git a/data/maps/SeafoamIslands_B3F/map.json b/data/maps/SeafoamIslands_B3F/map.json index 07eec3472..e56351aa4 100644 --- a/data/maps/SeafoamIslands_B3F/map.json +++ b/data/maps/SeafoamIslands_B3F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 23, "y": 8, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_SEAFOAM_B3F_BOULDER_1" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 24, "y": 8, @@ -42,6 +44,7 @@ "flag": "FLAG_HIDE_SEAFOAM_B3F_BOULDER_2" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 12, "y": 16, @@ -55,6 +58,7 @@ "flag": "FLAG_HIDE_SEAFOAM_B3F_BOULDER_5" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 13, "y": 16, @@ -68,6 +72,7 @@ "flag": "FLAG_HIDE_SEAFOAM_B3F_BOULDER_6" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 9, "y": 16, @@ -81,6 +86,7 @@ "flag": "FLAG_HIDE_SEAFOAM_B3F_BOULDER_4" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 6, "y": 17, @@ -100,63 +106,63 @@ "y": 14, "elevation": 4, "dest_map": "MAP_SEAFOAM_ISLANDS_B2F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 31, "y": 4, "elevation": 3, "dest_map": "MAP_SEAFOAM_ISLANDS_B2F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 31, "y": 16, "elevation": 4, "dest_map": "MAP_SEAFOAM_ISLANDS_B2F", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 12, "y": 9, "elevation": 3, "dest_map": "MAP_SEAFOAM_ISLANDS_B4F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 29, "y": 5, "elevation": 3, "dest_map": "MAP_SEAFOAM_ISLANDS_B4F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 23, "y": 9, "elevation": 1, "dest_map": "MAP_SEAFOAM_ISLANDS_B2F", - "dest_warp_id": 7 + "dest_warp_id": "7" }, { "x": 24, "y": 9, "elevation": 1, "dest_map": "MAP_SEAFOAM_ISLANDS_B2F", - "dest_warp_id": 8 + "dest_warp_id": "8" }, { "x": 6, "y": 18, "elevation": 3, "dest_map": "MAP_SEAFOAM_ISLANDS_B4F", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 9, "y": 18, "elevation": 3, "dest_map": "MAP_SEAFOAM_ISLANDS_B4F", - "dest_warp_id": 3 + "dest_warp_id": "3" } ], "coord_events": [], @@ -167,7 +173,7 @@ "y": 12, "elevation": 0, "item": "ITEM_NUGGET", - "flag": "HIDDEN_ITEM_SEAFOAM_ISLANDS_B3F_NUGGET", + "flag": "FLAG_HIDDEN_ITEM_SEAFOAM_ISLANDS_B3F_NUGGET", "quantity": 1, "underfoot": false } diff --git a/data/maps/SeafoamIslands_B4F/map.json b/data/maps/SeafoamIslands_B4F/map.json index 44c4268c8..f015454d5 100644 --- a/data/maps/SeafoamIslands_B4F/map.json +++ b/data/maps/SeafoamIslands_B4F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 8, "y": 18, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_SEAFOAM_B4F_BOULDER_1" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 9, "y": 18, @@ -42,6 +44,7 @@ "flag": "FLAG_HIDE_SEAFOAM_B4F_BOULDER_2" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ARTICUNO", "x": 9, "y": 2, @@ -55,6 +58,7 @@ "flag": "FLAG_HIDE_ARTICUNO" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 22, "y": 19, @@ -74,28 +78,28 @@ "y": 9, "elevation": 4, "dest_map": "MAP_SEAFOAM_ISLANDS_B3F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 32, "y": 5, "elevation": 4, "dest_map": "MAP_SEAFOAM_ISLANDS_B3F", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 8, "y": 17, "elevation": 1, "dest_map": "MAP_SEAFOAM_ISLANDS_B3F", - "dest_warp_id": 7 + "dest_warp_id": "7" }, { "x": 9, "y": 17, "elevation": 1, "dest_map": "MAP_SEAFOAM_ISLANDS_B3F", - "dest_warp_id": 8 + "dest_warp_id": "8" } ], "coord_events": [ @@ -134,7 +138,7 @@ "y": 8, "elevation": 0, "item": "ITEM_WATER_STONE", - "flag": "HIDDEN_ITEM_SEAFOAM_ISLANDS_B4F_WATER_STONE", + "flag": "FLAG_HIDDEN_ITEM_SEAFOAM_ISLANDS_B4F_WATER_STONE", "quantity": 1, "underfoot": false }, diff --git a/data/maps/SevenIsland/map.json b/data/maps/SevenIsland/map.json index 08494194a..d775303af 100644 --- a/data/maps/SevenIsland/map.json +++ b/data/maps/SevenIsland/map.json @@ -27,6 +27,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_M", "x": 7, "y": 18, @@ -40,6 +41,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_WOMAN", "x": 9, "y": 7, @@ -53,6 +55,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 15, "y": 5, @@ -72,28 +75,28 @@ "y": 9, "elevation": 0, "dest_map": "MAP_SEVEN_ISLAND_HOUSE_ROOM1", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 5, "y": 9, "elevation": 0, "dest_map": "MAP_SEVEN_ISLAND_MART", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 12, "y": 3, "elevation": 0, "dest_map": "MAP_SEVEN_ISLAND_POKEMON_CENTER_1F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 16, "y": 13, "elevation": 3, "dest_map": "MAP_SEVEN_ISLAND_HARBOR", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/SevenIsland_Harbor/map.json b/data/maps/SevenIsland_Harbor/map.json index 3e11a65ca..22f5f6844 100644 --- a/data/maps/SevenIsland_Harbor/map.json +++ b/data/maps/SevenIsland_Harbor/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SEAGALLOP", "x": 8, "y": 9, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SAILOR", "x": 8, "y": 6, @@ -48,7 +50,7 @@ "y": 2, "elevation": 3, "dest_map": "MAP_SEVEN_ISLAND", - "dest_warp_id": 3 + "dest_warp_id": "3" } ], "coord_events": [], diff --git a/data/maps/SevenIsland_House_Room1/map.json b/data/maps/SevenIsland_House_Room1/map.json index d1dc104c8..4204f1811 100644 --- a/data/maps/SevenIsland_House_Room1/map.json +++ b/data/maps/SevenIsland_House_Room1/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_WOMAN", "x": 4, "y": 4, @@ -35,14 +36,14 @@ "y": 7, "elevation": 3, "dest_map": "MAP_SEVEN_ISLAND", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 4, "y": 1, "elevation": 0, "dest_map": "MAP_SEVEN_ISLAND_HOUSE_ROOM2", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/SevenIsland_House_Room1/scripts.inc b/data/maps/SevenIsland_House_Room1/scripts.inc index d9da2eca2..056519ed2 100644 --- a/data/maps/SevenIsland_House_Room1/scripts.inc +++ b/data/maps/SevenIsland_House_Room1/scripts.inc @@ -39,7 +39,7 @@ SevenIsland_House_Room1_EventScript_OldWomanCommentOnBattle:: applymovement LOCALID_OLD_WOMAN, SevenIsland_House_Room1_Movement_OldWomanWalkBehindPlayer waitmovement 0 copyobjectxytoperm LOCALID_OLD_WOMAN - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterUp + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterUp waitmovement 0 call_if_eq VAR_MAP_SCENE_SEVEN_ISLAND_HOUSE_ROOM1, 1, SevenIsland_House_Room1_EventScript_BattleWonComment call_if_eq VAR_MAP_SCENE_SEVEN_ISLAND_HOUSE_ROOM1, 2, SevenIsland_House_Room1_EventScript_BattleLostComment diff --git a/data/maps/SevenIsland_House_Room2/map.json b/data/maps/SevenIsland_House_Room2/map.json index 93b0a3a6e..2e280939c 100644 --- a/data/maps/SevenIsland_House_Room2/map.json +++ b/data/maps/SevenIsland_House_Room2/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_0", "x": 6, "y": 5, @@ -35,7 +36,7 @@ "y": 1, "elevation": 0, "dest_map": "MAP_SEVEN_ISLAND_HOUSE_ROOM1", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/SevenIsland_Mart/map.json b/data/maps/SevenIsland_Mart/map.json index a74ef6c45..227c6931a 100644 --- a/data/maps/SevenIsland_Mart/map.json +++ b/data/maps/SevenIsland_Mart/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CLERK", "x": 2, "y": 3, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LASS", "x": 6, "y": 2, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_FISHER", "x": 9, "y": 5, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_HIKER", "x": 5, "y": 4, @@ -74,7 +78,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_SEVEN_ISLAND", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/SevenIsland_PokemonCenter_1F/map.json b/data/maps/SevenIsland_PokemonCenter_1F/map.json index a73cb405b..010db8bec 100644 --- a/data/maps/SevenIsland_PokemonCenter_1F/map.json +++ b/data/maps/SevenIsland_PokemonCenter_1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_NURSE", "x": 7, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", "x": 11, "y": 5, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SAILOR", "x": 14, "y": 6, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BEAUTY", "x": 4, "y": 4, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "0", "x": 3, "y": 1, @@ -81,6 +86,7 @@ "flag": "FLAG_HIDE_POSTGAME_GOSSIPERS" }, { + "type": "object", "graphics_id": "0", "x": 2, "y": 1, @@ -100,14 +106,14 @@ "y": 8, "elevation": 3, "dest_map": "MAP_SEVEN_ISLAND", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 1, "y": 6, "elevation": 4, "dest_map": "MAP_SEVEN_ISLAND_POKEMON_CENTER_2F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/SevenIsland_PokemonCenter_2F/map.json b/data/maps/SevenIsland_PokemonCenter_2F/map.json index f7d97b3ca..95ff5a714 100644 --- a/data/maps/SevenIsland_PokemonCenter_2F/map.json +++ b/data/maps/SevenIsland_PokemonCenter_2F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 6, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 2, "y": 2, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 10, "y": 2, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MG_DELIVERYMAN", "x": 1, "y": 2, @@ -74,21 +78,21 @@ "y": 6, "elevation": 4, "dest_map": "MAP_SEVEN_ISLAND_POKEMON_CENTER_1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 5, "y": 1, "elevation": 0, "dest_map": "MAP_UNION_ROOM", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 9, "y": 1, "elevation": 0, "dest_map": "MAP_TRADE_CENTER", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/SevenIsland_SevaultCanyon/map.json b/data/maps/SevenIsland_SevaultCanyon/map.json index 824d75723..d0d1a0dca 100644 --- a/data/maps/SevenIsland_SevaultCanyon/map.json +++ b/data/maps/SevenIsland_SevaultCanyon/map.json @@ -27,6 +27,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BATTLE_GIRL", "x": 13, "y": 43, @@ -40,6 +41,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MAN", "x": 13, "y": 36, @@ -53,6 +55,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CAMPER", "x": 3, "y": 35, @@ -66,6 +69,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PICNICKER", "x": 3, "y": 36, @@ -79,6 +83,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_M", "x": 7, "y": 56, @@ -92,6 +97,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_F", "x": 11, "y": 63, @@ -105,6 +111,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_M", "x": 14, "y": 13, @@ -118,6 +125,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_F", "x": 14, "y": 14, @@ -131,6 +139,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 3, "y": 41, @@ -144,6 +153,7 @@ "flag": "FLAG_TEMP_12" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 13, "y": 47, @@ -157,6 +167,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 7, "y": 44, @@ -170,6 +181,7 @@ "flag": "FLAG_TEMP_13" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 12, "y": 47, @@ -183,6 +195,7 @@ "flag": "FLAG_TEMP_15" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 15, "y": 46, @@ -196,6 +209,7 @@ "flag": "FLAG_TEMP_16" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 16, "y": 47, @@ -209,6 +223,7 @@ "flag": "FLAG_TEMP_17" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 17, "y": 47, @@ -222,6 +237,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCK_SMASH_ROCK", "x": 11, "y": 31, @@ -235,6 +251,7 @@ "flag": "FLAG_TEMP_1B" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 18, "y": 45, @@ -248,6 +265,7 @@ "flag": "FLAG_HIDE_SEVEN_ISLAND_SEVAULT_CANYON_KINGS_ROCK" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 7, "y": 38, @@ -261,6 +279,7 @@ "flag": "FLAG_HIDE_SEVEN_ISLAND_SEVAULT_CANYON_MAX_ELIXIR" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 17, "y": 23, @@ -274,6 +293,7 @@ "flag": "FLAG_HIDE_SEVEN_ISLAND_SEVAULT_CANYON_NUGGET" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BLACKBELT", "x": 8, "y": 26, @@ -293,14 +313,14 @@ "y": 17, "elevation": 5, "dest_map": "MAP_SEVEN_ISLAND_SEVAULT_CANYON_TANOBY_KEY", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 14, "y": 61, "elevation": 0, "dest_map": "MAP_SEVEN_ISLAND_SEVAULT_CANYON_HOUSE", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], @@ -311,7 +331,7 @@ "y": 66, "elevation": 3, "item": "ITEM_CHERI_BERRY", - "flag": "HIDDEN_ITEM_SEVEN_ISLAND_SEVAULT_CANYON_CHERI_BERRY", + "flag": "FLAG_HIDDEN_ITEM_SEVEN_ISLAND_SEVAULT_CANYON_CHERI_BERRY", "quantity": 1, "underfoot": false }, diff --git a/data/maps/SevenIsland_SevaultCanyon_Entrance/map.json b/data/maps/SevenIsland_SevaultCanyon_Entrance/map.json index 58c07698e..45e036fe0 100644 --- a/data/maps/SevenIsland_SevaultCanyon_Entrance/map.json +++ b/data/maps/SevenIsland_SevaultCanyon_Entrance/map.json @@ -27,6 +27,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_2", "x": 12, "y": 6, @@ -40,6 +41,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BEAUTY", "x": 3, "y": 34, @@ -53,6 +55,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MAN", "x": 4, "y": 34, @@ -66,6 +69,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CAMPER", "x": 11, "y": 26, @@ -79,6 +83,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PICNICKER", "x": 10, "y": 26, @@ -92,6 +97,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKER", "x": 11, "y": 17, @@ -105,18 +111,12 @@ "flag": "0" }, { + "type": "clone", "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_M", - "in_connection": true, "x": 7, "y": -2, - "elevation": 1, - "movement_type": "MOVEMENT_TYPE_NONE", - "movement_range_x": 0, - "movement_range_y": 0, - "trainer_type": "17", - "trainer_sight_or_berry_tree_id": "3", - "script": "0x0", - "flag": "0" + "target_local_id": 1, + "target_map": "MAP_SEVEN_ISLAND" } ], "warp_events": [], @@ -128,7 +128,7 @@ "y": 29, "elevation": 5, "item": "ITEM_RAWST_BERRY", - "flag": "HIDDEN_ITEM_SEVEN_ISLAND_SEVAULT_CANYON_ENTRANCE_RAWST_BERRY", + "flag": "FLAG_HIDDEN_ITEM_SEVEN_ISLAND_SEVAULT_CANYON_ENTRANCE_RAWST_BERRY", "quantity": 1, "underfoot": false }, diff --git a/data/maps/SevenIsland_SevaultCanyon_House/map.json b/data/maps/SevenIsland_SevaultCanyon_House/map.json index f697cb790..e5e14894a 100644 --- a/data/maps/SevenIsland_SevaultCanyon_House/map.json +++ b/data/maps/SevenIsland_SevaultCanyon_House/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", "x": 2, "y": 4, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CHANSEY", "x": 4, "y": 2, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 6, "y": 4, @@ -61,7 +64,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_SEVEN_ISLAND_SEVAULT_CANYON", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/SevenIsland_SevaultCanyon_House/scripts.inc b/data/maps/SevenIsland_SevaultCanyon_House/scripts.inc index f8b966a94..07cd151e7 100644 --- a/data/maps/SevenIsland_SevaultCanyon_House/scripts.inc +++ b/data/maps/SevenIsland_SevaultCanyon_House/scripts.inc @@ -11,7 +11,7 @@ SevenIsland_SevaultCanyon_House_EventScript_BaldingMan:: waitmovement 0 fadedefaultbgm delay 30 - applymovement LOCALID_BALDING_MAN, Movement_FacePlayer + applymovement LOCALID_BALDING_MAN, Common_Movement_FacePlayer waitmovement 0 msgbox SevenIsland_SevaultCanyon_House_Text_ChanseyDanceJoinIn textcolor NPC_TEXT_COLOR_NEUTRAL @@ -34,12 +34,12 @@ SevenIsland_SevaultCanyon_House_EventScript_BaldingMan:: end SevenIsland_SevaultCanyon_House_EventScript_PlayerFaceDown:: - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterDown + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterDown waitmovement 0 return SevenIsland_SevaultCanyon_House_EventScript_AlreadyDanced:: - applymovement LOCALID_BALDING_MAN, Movement_FacePlayer + applymovement LOCALID_BALDING_MAN, Common_Movement_FacePlayer waitmovement 0 msgbox SevenIsland_SevaultCanyon_House_Text_ChanseyDanceJoinIn release diff --git a/data/maps/SevenIsland_SevaultCanyon_TanobyKey/map.json b/data/maps/SevenIsland_SevaultCanyon_TanobyKey/map.json index e8f0d9181..639d495cb 100644 --- a/data/maps/SevenIsland_SevaultCanyon_TanobyKey/map.json +++ b/data/maps/SevenIsland_SevaultCanyon_TanobyKey/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 7, "y": 6, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 8, "y": 6, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 8, "y": 9, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 6, "y": 10, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 8, "y": 10, @@ -81,6 +86,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 6, "y": 9, @@ -94,6 +100,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 6, "y": 6, @@ -113,7 +120,7 @@ "y": 13, "elevation": 3, "dest_map": "MAP_SEVEN_ISLAND_SEVAULT_CANYON", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [ diff --git a/data/maps/SevenIsland_TanobyRuins/map.json b/data/maps/SevenIsland_TanobyRuins/map.json index 31455ac19..05002e689 100644 --- a/data/maps/SevenIsland_TanobyRuins/map.json +++ b/data/maps/SevenIsland_TanobyRuins/map.json @@ -22,6 +22,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_HIKER", "x": 35, "y": 7, @@ -35,6 +36,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_HIKER", "x": 121, "y": 11, @@ -48,6 +50,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LASS", "x": 85, "y": 8, @@ -61,6 +64,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN", "x": 85, "y": 5, @@ -80,49 +84,49 @@ "y": 10, "elevation": 3, "dest_map": "MAP_SEVEN_ISLAND_TANOBY_RUINS_MONEAN_CHAMBER", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 103, "y": 10, "elevation": 3, "dest_map": "MAP_SEVEN_ISLAND_TANOBY_RUINS_LIPTOO_CHAMBER", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 88, "y": 8, "elevation": 3, "dest_map": "MAP_SEVEN_ISLAND_TANOBY_RUINS_WEEPTH_CHAMBER", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 44, "y": 11, "elevation": 3, "dest_map": "MAP_SEVEN_ISLAND_TANOBY_RUINS_DILFORD_CHAMBER", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 32, "y": 9, "elevation": 3, "dest_map": "MAP_SEVEN_ISLAND_TANOBY_RUINS_SCUFIB_CHAMBER", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 12, "y": 15, "elevation": 3, "dest_map": "MAP_SEVEN_ISLAND_TANOBY_RUINS_RIXY_CHAMBER", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 11, "y": 6, "elevation": 3, "dest_map": "MAP_SEVEN_ISLAND_TANOBY_RUINS_VIAPOIS_CHAMBER", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], @@ -133,7 +137,7 @@ "y": 10, "elevation": 3, "item": "ITEM_HEART_SCALE", - "flag": "HIDDEN_ITEM_SEVEN_ISLAND_TANOBY_RUINS_HEART_SCALE", + "flag": "FLAG_HIDDEN_ITEM_SEVEN_ISLAND_TANOBY_RUINS_HEART_SCALE", "quantity": 1, "underfoot": false }, @@ -143,7 +147,7 @@ "y": 9, "elevation": 3, "item": "ITEM_HEART_SCALE", - "flag": "HIDDEN_ITEM_SEVEN_ISLAND_TANOBY_RUINS_HEART_SCALE_2", + "flag": "FLAG_HIDDEN_ITEM_SEVEN_ISLAND_TANOBY_RUINS_HEART_SCALE_2", "quantity": 1, "underfoot": false }, @@ -153,7 +157,7 @@ "y": 5, "elevation": 3, "item": "ITEM_HEART_SCALE", - "flag": "HIDDEN_ITEM_SEVEN_ISLAND_TANOBY_RUINS_HEART_SCALE_3", + "flag": "FLAG_HIDDEN_ITEM_SEVEN_ISLAND_TANOBY_RUINS_HEART_SCALE_3", "quantity": 1, "underfoot": false }, @@ -163,7 +167,7 @@ "y": 2, "elevation": 3, "item": "ITEM_HEART_SCALE", - "flag": "HIDDEN_ITEM_SEVEN_ISLAND_TANOBY_RUINS_HEART_SCALE_4", + "flag": "FLAG_HIDDEN_ITEM_SEVEN_ISLAND_TANOBY_RUINS_HEART_SCALE_4", "quantity": 1, "underfoot": false } diff --git a/data/maps/SevenIsland_TanobyRuins_DilfordChamber/map.json b/data/maps/SevenIsland_TanobyRuins_DilfordChamber/map.json index f51307ed0..df2917eb6 100644 --- a/data/maps/SevenIsland_TanobyRuins_DilfordChamber/map.json +++ b/data/maps/SevenIsland_TanobyRuins_DilfordChamber/map.json @@ -21,7 +21,7 @@ "y": 15, "elevation": 3, "dest_map": "MAP_SEVEN_ISLAND_TANOBY_RUINS", - "dest_warp_id": 3 + "dest_warp_id": "3" } ], "coord_events": [], diff --git a/data/maps/SevenIsland_TanobyRuins_LiptooChamber/map.json b/data/maps/SevenIsland_TanobyRuins_LiptooChamber/map.json index 5786a9f73..ba3dc36ec 100644 --- a/data/maps/SevenIsland_TanobyRuins_LiptooChamber/map.json +++ b/data/maps/SevenIsland_TanobyRuins_LiptooChamber/map.json @@ -21,7 +21,7 @@ "y": 15, "elevation": 3, "dest_map": "MAP_SEVEN_ISLAND_TANOBY_RUINS", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/SevenIsland_TanobyRuins_MoneanChamber/map.json b/data/maps/SevenIsland_TanobyRuins_MoneanChamber/map.json index efb2dc13c..edf7c74bd 100644 --- a/data/maps/SevenIsland_TanobyRuins_MoneanChamber/map.json +++ b/data/maps/SevenIsland_TanobyRuins_MoneanChamber/map.json @@ -21,7 +21,7 @@ "y": 15, "elevation": 3, "dest_map": "MAP_SEVEN_ISLAND_TANOBY_RUINS", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/SevenIsland_TanobyRuins_RixyChamber/map.json b/data/maps/SevenIsland_TanobyRuins_RixyChamber/map.json index e0a656acf..75b490006 100644 --- a/data/maps/SevenIsland_TanobyRuins_RixyChamber/map.json +++ b/data/maps/SevenIsland_TanobyRuins_RixyChamber/map.json @@ -21,7 +21,7 @@ "y": 15, "elevation": 3, "dest_map": "MAP_SEVEN_ISLAND_TANOBY_RUINS", - "dest_warp_id": 5 + "dest_warp_id": "5" } ], "coord_events": [], diff --git a/data/maps/SevenIsland_TanobyRuins_ScufibChamber/map.json b/data/maps/SevenIsland_TanobyRuins_ScufibChamber/map.json index 266b18579..072eeb144 100644 --- a/data/maps/SevenIsland_TanobyRuins_ScufibChamber/map.json +++ b/data/maps/SevenIsland_TanobyRuins_ScufibChamber/map.json @@ -21,7 +21,7 @@ "y": 15, "elevation": 3, "dest_map": "MAP_SEVEN_ISLAND_TANOBY_RUINS", - "dest_warp_id": 4 + "dest_warp_id": "4" } ], "coord_events": [], diff --git a/data/maps/SevenIsland_TanobyRuins_ViapoisChamber/map.json b/data/maps/SevenIsland_TanobyRuins_ViapoisChamber/map.json index a1cd61249..9d2d4594f 100644 --- a/data/maps/SevenIsland_TanobyRuins_ViapoisChamber/map.json +++ b/data/maps/SevenIsland_TanobyRuins_ViapoisChamber/map.json @@ -21,7 +21,7 @@ "y": 15, "elevation": 3, "dest_map": "MAP_SEVEN_ISLAND_TANOBY_RUINS", - "dest_warp_id": 6 + "dest_warp_id": "6" } ], "coord_events": [], diff --git a/data/maps/SevenIsland_TanobyRuins_WeepthChamber/map.json b/data/maps/SevenIsland_TanobyRuins_WeepthChamber/map.json index b9e11db9b..15124e2d2 100644 --- a/data/maps/SevenIsland_TanobyRuins_WeepthChamber/map.json +++ b/data/maps/SevenIsland_TanobyRuins_WeepthChamber/map.json @@ -21,7 +21,7 @@ "y": 15, "elevation": 3, "dest_map": "MAP_SEVEN_ISLAND_TANOBY_RUINS", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [], diff --git a/data/maps/SevenIsland_TrainerTower/map.json b/data/maps/SevenIsland_TrainerTower/map.json index d6be87d75..a47439424 100644 --- a/data/maps/SevenIsland_TrainerTower/map.json +++ b/data/maps/SevenIsland_TrainerTower/map.json @@ -22,6 +22,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BOY", "x": 56, "y": 26, @@ -35,6 +36,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_1", "x": 56, "y": 29, @@ -54,7 +56,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_TRAINER_TOWER_LOBBY", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], @@ -65,7 +67,7 @@ "y": 27, "elevation": 3, "item": "ITEM_BIG_PEARL", - "flag": "HIDDEN_ITEM_SEVEN_ISLAND_TRAINER_TOWER_BIG_PEARL", + "flag": "FLAG_HIDDEN_ITEM_SEVEN_ISLAND_TRAINER_TOWER_BIG_PEARL", "quantity": 1, "underfoot": false }, @@ -75,7 +77,7 @@ "y": 30, "elevation": 3, "item": "ITEM_PEARL", - "flag": "HIDDEN_ITEM_SEVEN_ISLAND_TRAINER_TOWER_PEARL", + "flag": "FLAG_HIDDEN_ITEM_SEVEN_ISLAND_TRAINER_TOWER_PEARL", "quantity": 1, "underfoot": false }, @@ -85,7 +87,7 @@ "y": 32, "elevation": 3, "item": "ITEM_NANAB_BERRY", - "flag": "HIDDEN_ITEM_SEVEN_ISLAND_TRAINER_TOWER_NANAB_BERRY", + "flag": "FLAG_HIDDEN_ITEM_SEVEN_ISLAND_TRAINER_TOWER_NANAB_BERRY", "quantity": 1, "underfoot": false }, diff --git a/data/maps/SilphCo_10F/map.json b/data/maps/SilphCo_10F/map.json index b867283ab..ed9e17aa9 100644 --- a/data/maps/SilphCo_10F/map.json +++ b/data/maps/SilphCo_10F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 2, "y": 7, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_SILPH_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WORKER_F", "x": 10, "y": 17, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 0, "y": 13, @@ -55,6 +58,7 @@ "flag": "FLAG_HIDE_SILPH_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 5, "y": 15, @@ -68,6 +72,7 @@ "flag": "FLAG_HIDE_SILPH_CO_10F_CARBOS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 2, "y": 15, @@ -81,6 +86,7 @@ "flag": "FLAG_HIDE_SILPH_CO_10F_ULTRA_BALL" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 3, "y": 17, @@ -100,42 +106,42 @@ "y": 2, "elevation": 3, "dest_map": "MAP_SILPH_CO_11F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 10, "y": 14, "elevation": 3, "dest_map": "MAP_SILPH_CO_4F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 14, "y": 9, "elevation": 3, "dest_map": "MAP_SILPH_CO_4F", - "dest_warp_id": 5 + "dest_warp_id": "5" }, { "x": 8, "y": 2, "elevation": 3, "dest_map": "MAP_SILPH_CO_9F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 14, "y": 17, "elevation": 3, "dest_map": "MAP_SILPH_CO_4F", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 13, "y": 3, "elevation": 0, "dest_map": "MAP_SILPH_CO_ELEVATOR", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], @@ -178,7 +184,7 @@ "y": 9, "elevation": 0, "item": "ITEM_HP_UP", - "flag": "HIDDEN_ITEM_SILPH_CO_10F_HP_UP", + "flag": "FLAG_HIDDEN_ITEM_SILPH_CO_10F_HP_UP", "quantity": 1, "underfoot": false }, diff --git a/data/maps/SilphCo_11F/map.json b/data/maps/SilphCo_11F/map.json index 07479d1d8..118dd5d32 100644 --- a/data/maps/SilphCo_11F/map.json +++ b/data/maps/SilphCo_11F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_2", "x": 9, "y": 9, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WORKER_F", "x": 11, "y": 9, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GIOVANNI", "x": 6, "y": 11, @@ -55,6 +58,7 @@ "flag": "FLAG_HIDE_SILPH_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 16, "y": 12, @@ -68,6 +72,7 @@ "flag": "FLAG_HIDE_SILPH_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 16, "y": 18, @@ -81,6 +86,7 @@ "flag": "FLAG_HIDE_SILPH_CO_11F_ZINC" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 2, "y": 19, @@ -100,21 +106,21 @@ "y": 2, "elevation": 3, "dest_map": "MAP_SILPH_CO_10F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 2, "y": 5, "elevation": 3, "dest_map": "MAP_SILPH_CO_7F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 13, "y": 3, "elevation": 0, "dest_map": "MAP_SILPH_CO_ELEVATOR", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [ @@ -176,7 +182,7 @@ "y": 18, "elevation": 0, "item": "ITEM_REVIVE", - "flag": "HIDDEN_ITEM_SILPH_CO_11F_REVIVE", + "flag": "FLAG_HIDDEN_ITEM_SILPH_CO_11F_REVIVE", "quantity": 1, "underfoot": false }, diff --git a/data/maps/SilphCo_11F/scripts.inc b/data/maps/SilphCo_11F/scripts.inc index 08411f199..3cc1f6841 100644 --- a/data/maps/SilphCo_11F/scripts.inc +++ b/data/maps/SilphCo_11F/scripts.inc @@ -61,7 +61,7 @@ SilphCo_11F_EventScript_GiovanniTriggerRight:: SilphCo_11F_EventScript_BattleGiovanni:: textcolor NPC_TEXT_COLOR_MALE - applymovement LOCALID_GIOVANNI, Movement_WalkInPlaceFasterDown + applymovement LOCALID_GIOVANNI, Common_Movement_WalkInPlaceFasterDown waitmovement 0 delay 25 msgbox SilphCo_11F_Text_GiovanniIntro diff --git a/data/maps/SilphCo_1F/map.json b/data/maps/SilphCo_1F/map.json index aba93eb0a..60dcf04ee 100644 --- a/data/maps/SilphCo_1F/map.json +++ b/data/maps/SilphCo_1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WORKER_F", "x": 3, "y": 7, @@ -35,35 +36,35 @@ "y": 21, "elevation": 0, "dest_map": "MAP_SAFFRON_CITY", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 8, "y": 20, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 9, "y": 20, "elevation": 3, "dest_map": "MAP_SAFFRON_CITY", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 31, "y": 2, "elevation": 3, "dest_map": "MAP_SILPH_CO_2F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 22, "y": 3, "elevation": 0, "dest_map": "MAP_SILPH_CO_ELEVATOR", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/SilphCo_2F/map.json b/data/maps/SilphCo_2F/map.json index 55b2da754..f22ab8826 100644 --- a/data/maps/SilphCo_2F/map.json +++ b/data/maps/SilphCo_2F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 29, "y": 12, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_SILPH_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 28, "y": 18, @@ -42,6 +44,7 @@ "flag": "FLAG_HIDE_SILPH_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 20, "y": 14, @@ -55,6 +58,7 @@ "flag": "FLAG_HIDE_SILPH_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 5, "y": 19, @@ -68,6 +72,7 @@ "flag": "FLAG_HIDE_SILPH_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_2", "x": 10, "y": 4, @@ -87,49 +92,49 @@ "y": 2, "elevation": 3, "dest_map": "MAP_SILPH_CO_3F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 2, "y": 6, "elevation": 3, "dest_map": "MAP_SILPH_CO_3F", - "dest_warp_id": 8 + "dest_warp_id": "8" }, { "x": 15, "y": 6, "elevation": 3, "dest_map": "MAP_SILPH_CO_8F", - "dest_warp_id": 5 + "dest_warp_id": "5" }, { "x": 30, "y": 2, "elevation": 3, "dest_map": "MAP_SILPH_CO_1F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 7, "y": 19, "elevation": 3, "dest_map": "MAP_SILPH_CO_6F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 33, "y": 19, "elevation": 3, "dest_map": "MAP_SILPH_CO_8F", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 22, "y": 3, "elevation": 0, "dest_map": "MAP_SILPH_CO_ELEVATOR", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], @@ -204,7 +209,7 @@ "y": 21, "elevation": 0, "item": "ITEM_ULTRA_BALL", - "flag": "HIDDEN_ITEM_SILPH_CO_2F_ULTRA_BALL", + "flag": "FLAG_HIDDEN_ITEM_SILPH_CO_2F_ULTRA_BALL", "quantity": 1, "underfoot": false }, diff --git a/data/maps/SilphCo_3F/map.json b/data/maps/SilphCo_3F/map.json index b8617c70b..b5c5c6f61 100644 --- a/data/maps/SilphCo_3F/map.json +++ b/data/maps/SilphCo_3F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 25, "y": 9, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_SILPH_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WORKER_M", "x": 31, "y": 13, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 4, "y": 12, @@ -55,6 +58,7 @@ "flag": "FLAG_HIDE_SILPH_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 8, "y": 10, @@ -74,70 +78,70 @@ "y": 2, "elevation": 3, "dest_map": "MAP_SILPH_CO_2F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 4, "y": 6, "elevation": 3, "dest_map": "MAP_SILPH_CO_5F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 13, "y": 14, "elevation": 3, "dest_map": "MAP_SILPH_CO_7F", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 30, "y": 2, "elevation": 3, "dest_map": "MAP_SILPH_CO_4F", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 2, "y": 14, "elevation": 3, "dest_map": "MAP_SILPH_CO_9F", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 3, "y": 20, "elevation": 3, "dest_map": "MAP_SILPH_CO_5F", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 29, "y": 14, "elevation": 3, "dest_map": "MAP_SILPH_CO_3F", - "dest_warp_id": 7 + "dest_warp_id": "7" }, { "x": 32, "y": 20, "elevation": 3, "dest_map": "MAP_SILPH_CO_3F", - "dest_warp_id": 6 + "dest_warp_id": "6" }, { "x": 33, "y": 5, "elevation": 3, "dest_map": "MAP_SILPH_CO_2F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 22, "y": 3, "elevation": 0, "dest_map": "MAP_SILPH_CO_ELEVATOR", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], @@ -212,7 +216,7 @@ "y": 18, "elevation": 0, "item": "ITEM_PROTEIN", - "flag": "HIDDEN_ITEM_SILPH_CO_3F_PROTEIN", + "flag": "FLAG_HIDDEN_ITEM_SILPH_CO_3F_PROTEIN", "quantity": 1, "underfoot": false }, diff --git a/data/maps/SilphCo_4F/map.json b/data/maps/SilphCo_4F/map.json index e02b30912..89258bab9 100644 --- a/data/maps/SilphCo_4F/map.json +++ b/data/maps/SilphCo_4F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 33, "y": 16, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_SILPH_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 10, "y": 19, @@ -42,6 +44,7 @@ "flag": "FLAG_HIDE_SILPH_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 14, "y": 8, @@ -55,6 +58,7 @@ "flag": "FLAG_HIDE_SILPH_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WORKER_M", "x": 5, "y": 5, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 3, "y": 11, @@ -81,6 +86,7 @@ "flag": "FLAG_HIDE_SILPH_CO_4F_MAX_REVIVE" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 4, "y": 12, @@ -94,6 +100,7 @@ "flag": "FLAG_HIDE_SILPH_CO_4F_ESCAPE_ROPE" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 2, "y": 13, @@ -107,6 +114,7 @@ "flag": "FLAG_HIDE_SILPH_CO_4F_FULL_HEAL" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 30, "y": 18, @@ -126,49 +134,49 @@ "y": 2, "elevation": 3, "dest_map": "MAP_SILPH_CO_5F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 18, "y": 6, "elevation": 3, "dest_map": "MAP_SILPH_CO_6F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 30, "y": 2, "elevation": 3, "dest_map": "MAP_SILPH_CO_3F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 12, "y": 9, "elevation": 3, "dest_map": "MAP_SILPH_CO_10F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 2, "y": 20, "elevation": 3, "dest_map": "MAP_SILPH_CO_10F", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 18, "y": 14, "elevation": 3, "dest_map": "MAP_SILPH_CO_10F", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 22, "y": 3, "elevation": 0, "dest_map": "MAP_SILPH_CO_ELEVATOR", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], @@ -243,7 +251,7 @@ "y": 20, "elevation": 0, "item": "ITEM_IRON", - "flag": "HIDDEN_ITEM_SILPH_CO_4F_IRON", + "flag": "FLAG_HIDDEN_ITEM_SILPH_CO_4F_IRON", "quantity": 1, "underfoot": false }, diff --git a/data/maps/SilphCo_5F/map.json b/data/maps/SilphCo_5F/map.json index 6fcc56f08..5d6c07664 100644 --- a/data/maps/SilphCo_5F/map.json +++ b/data/maps/SilphCo_5F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 35, "y": 7, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_SILPH_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKER", "x": 23, "y": 13, @@ -42,6 +44,7 @@ "flag": "FLAG_HIDE_SILPH_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WORKER_M", "x": 16, "y": 13, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 11, "y": 6, @@ -68,6 +72,7 @@ "flag": "FLAG_HIDE_SILPH_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 9, "y": 21, @@ -81,6 +86,7 @@ "flag": "FLAG_HIDE_SILPH_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 4, "y": 9, @@ -94,6 +100,7 @@ "flag": "FLAG_HIDE_SILPH_CO_5F_PROTEIN" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 1, "y": 18, @@ -107,6 +114,7 @@ "flag": "FLAG_HIDE_SILPH_CO_5F_TM01" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 22, "y": 21, @@ -120,6 +128,7 @@ "flag": "FLAG_HIDE_SILPH_CO_5F_CARD_KEY" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 2, "y": 7, @@ -139,49 +148,49 @@ "y": 2, "elevation": 3, "dest_map": "MAP_SILPH_CO_4F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 15, "y": 7, "elevation": 3, "dest_map": "MAP_SILPH_CO_3F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 30, "y": 2, "elevation": 3, "dest_map": "MAP_SILPH_CO_6F", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 10, "y": 20, "elevation": 3, "dest_map": "MAP_SILPH_CO_9F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 2, "y": 20, "elevation": 3, "dest_map": "MAP_SILPH_CO_3F", - "dest_warp_id": 5 + "dest_warp_id": "5" }, { "x": 33, "y": 5, "elevation": 3, "dest_map": "MAP_SILPH_CO_7F", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 22, "y": 3, "elevation": 0, "dest_map": "MAP_SILPH_CO_ELEVATOR", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], @@ -192,7 +201,7 @@ "y": 16, "elevation": 0, "item": "ITEM_ELIXIR", - "flag": "HIDDEN_ITEM_SILPH_CO_5F_ELIXIR", + "flag": "FLAG_HIDDEN_ITEM_SILPH_CO_5F_ELIXIR", "quantity": 1, "underfoot": false }, @@ -322,7 +331,7 @@ "y": 9, "elevation": 0, "item": "ITEM_PP_UP", - "flag": "HIDDEN_ITEM_SILPH_CO_5F_PP_UP", + "flag": "FLAG_HIDDEN_ITEM_SILPH_CO_5F_PP_UP", "quantity": 1, "underfoot": false }, diff --git a/data/maps/SilphCo_6F/map.json b/data/maps/SilphCo_6F/map.json index ca17ad516..7fd6ee981 100644 --- a/data/maps/SilphCo_6F/map.json +++ b/data/maps/SilphCo_6F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 21, "y": 5, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_SILPH_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WORKER_M", "x": 23, "y": 9, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WORKER_F", "x": 24, "y": 9, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WORKER_M", "x": 22, "y": 13, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WORKER_M", "x": 14, "y": 9, @@ -81,6 +86,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WORKER_F", "x": 16, "y": 12, @@ -94,6 +100,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 9, "y": 11, @@ -107,6 +114,7 @@ "flag": "FLAG_HIDE_SILPH_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 2, "y": 14, @@ -120,6 +128,7 @@ "flag": "FLAG_HIDE_SILPH_CO_6F_HP_UP" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 1, "y": 17, @@ -133,6 +142,7 @@ "flag": "FLAG_HIDE_SILPH_CO_6F_X_SPECIAL" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 18, "y": 17, @@ -152,35 +162,35 @@ "y": 2, "elevation": 3, "dest_map": "MAP_SILPH_CO_7F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 29, "y": 5, "elevation": 3, "dest_map": "MAP_SILPH_CO_2F", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 26, "y": 2, "elevation": 3, "dest_map": "MAP_SILPH_CO_5F", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 2, "y": 6, "elevation": 3, "dest_map": "MAP_SILPH_CO_4F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 20, "y": 3, "elevation": 0, "dest_map": "MAP_SILPH_CO_ELEVATOR", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], @@ -223,7 +233,7 @@ "y": 8, "elevation": 0, "item": "ITEM_CARBOS", - "flag": "HIDDEN_ITEM_SILPH_CO_6F_CARBOS", + "flag": "FLAG_HIDDEN_ITEM_SILPH_CO_6F_CARBOS", "quantity": 1, "underfoot": false }, diff --git a/data/maps/SilphCo_7F/map.json b/data/maps/SilphCo_7F/map.json index 2257544b7..e1739bc2d 100644 --- a/data/maps/SilphCo_7F/map.json +++ b/data/maps/SilphCo_7F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BLUE", "x": 2, "y": 6, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_SILPH_RIVAL" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WORKER_M", "x": 0, "y": 7, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 24, "y": 5, @@ -55,6 +58,7 @@ "flag": "FLAG_HIDE_SILPH_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 24, "y": 15, @@ -68,6 +72,7 @@ "flag": "FLAG_HIDE_SILPH_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 13, "y": 4, @@ -81,6 +86,7 @@ "flag": "FLAG_HIDE_SILPH_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WORKER_F", "x": 10, "y": 10, @@ -94,6 +100,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WORKER_M", "x": 13, "y": 14, @@ -107,6 +114,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WORKER_M", "x": 9, "y": 14, @@ -120,6 +128,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 3, "y": 13, @@ -133,6 +142,7 @@ "flag": "FLAG_HIDE_SILPH_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 0, "y": 12, @@ -146,6 +156,7 @@ "flag": "FLAG_HIDE_SILPH_CO_7F_CALCIUM" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 30, "y": 11, @@ -165,42 +176,42 @@ "y": 2, "elevation": 3, "dest_map": "MAP_SILPH_CO_6F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 5, "y": 8, "elevation": 3, "dest_map": "MAP_SILPH_CO_11F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 25, "y": 17, "elevation": 3, "dest_map": "MAP_SILPH_CO_5F", - "dest_warp_id": 5 + "dest_warp_id": "5" }, { "x": 27, "y": 2, "elevation": 3, "dest_map": "MAP_SILPH_CO_8F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 5, "y": 4, "elevation": 3, "dest_map": "MAP_SILPH_CO_3F", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 23, "y": 3, "elevation": 0, "dest_map": "MAP_SILPH_CO_ELEVATOR", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [ @@ -326,7 +337,7 @@ "y": 11, "elevation": 0, "item": "ITEM_ZINC", - "flag": "HIDDEN_ITEM_SILPH_CO_7F_ZINC", + "flag": "FLAG_HIDDEN_ITEM_SILPH_CO_7F_ZINC", "quantity": 1, "underfoot": false }, diff --git a/data/maps/SilphCo_7F/scripts.inc b/data/maps/SilphCo_7F/scripts.inc index afa40c8fb..d4db57800 100644 --- a/data/maps/SilphCo_7F/scripts.inc +++ b/data/maps/SilphCo_7F/scripts.inc @@ -35,10 +35,10 @@ SilphCo_7F_EventScript_RivalTriggerBottom:: SilphCo_7F_EventScript_RivalScene:: textcolor NPC_TEXT_COLOR_MALE playbgm MUS_ENCOUNTER_RIVAL, 0 - applymovement LOCALID_RIVAL, Movement_ExclamationMark + applymovement LOCALID_RIVAL, Common_Movement_ExclamationMark waitmovement 0 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterDown - applymovement LOCALID_RIVAL, Movement_Delay48 + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterDown + applymovement LOCALID_RIVAL, Common_Movement_Delay48 waitmovement 0 msgbox SilphCo_7F_Text_RivalWhatKeptYou call_if_eq VAR_TEMP_1, 0, SilphCo_7F_EventScript_RivalApproachTop diff --git a/data/maps/SilphCo_8F/map.json b/data/maps/SilphCo_8F/map.json index ed2d8dd32..9e5363959 100644 --- a/data/maps/SilphCo_8F/map.json +++ b/data/maps/SilphCo_8F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 28, "y": 5, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_SILPH_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 10, "y": 17, @@ -42,6 +44,7 @@ "flag": "FLAG_HIDE_SILPH_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 9, "y": 4, @@ -55,6 +58,7 @@ "flag": "FLAG_HIDE_SILPH_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WORKER_M", "x": 2, "y": 5, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 24, "y": 8, @@ -81,6 +86,7 @@ "flag": "FLAG_HIDE_SILPH_CO_8F_IRON" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 29, "y": 9, @@ -100,49 +106,49 @@ "y": 2, "elevation": 3, "dest_map": "MAP_SILPH_CO_9F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 11, "y": 10, "elevation": 3, "dest_map": "MAP_SILPH_CO_8F", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 10, "y": 6, "elevation": 3, "dest_map": "MAP_SILPH_CO_2F", - "dest_warp_id": 5 + "dest_warp_id": "5" }, { "x": 28, "y": 2, "elevation": 3, "dest_map": "MAP_SILPH_CO_7F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 2, "y": 12, "elevation": 3, "dest_map": "MAP_SILPH_CO_8F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 2, "y": 17, "elevation": 3, "dest_map": "MAP_SILPH_CO_2F", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 22, "y": 3, "elevation": 0, "dest_map": "MAP_SILPH_CO_ELEVATOR", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], @@ -185,7 +191,7 @@ "y": 10, "elevation": 0, "item": "ITEM_NUGGET", - "flag": "HIDDEN_ITEM_SILPH_CO_8F_NUGGET", + "flag": "FLAG_HIDDEN_ITEM_SILPH_CO_8F_NUGGET", "quantity": 1, "underfoot": false }, diff --git a/data/maps/SilphCo_9F/map.json b/data/maps/SilphCo_9F/map.json index a5cb18329..5f108ad82 100644 --- a/data/maps/SilphCo_9F/map.json +++ b/data/maps/SilphCo_9F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 26, "y": 16, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_SILPH_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 15, "y": 18, @@ -42,6 +44,7 @@ "flag": "FLAG_HIDE_SILPH_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_2", "x": 2, "y": 16, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 1, "y": 6, @@ -74,35 +78,35 @@ "y": 2, "elevation": 0, "dest_map": "MAP_SILPH_CO_8F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 22, "y": 18, "elevation": 3, "dest_map": "MAP_SILPH_CO_5F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 9, "y": 4, "elevation": 3, "dest_map": "MAP_SILPH_CO_3F", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 18, "y": 2, "elevation": 3, "dest_map": "MAP_SILPH_CO_10F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 24, "y": 3, "elevation": 0, "dest_map": "MAP_SILPH_CO_ELEVATOR", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], @@ -113,7 +117,7 @@ "y": 14, "elevation": 3, "item": "ITEM_MAX_POTION", - "flag": "HIDDEN_ITEM_SILPH_CO_9F_MAX_POTION", + "flag": "FLAG_HIDDEN_ITEM_SILPH_CO_9F_MAX_POTION", "quantity": 1, "underfoot": false }, @@ -251,7 +255,7 @@ "y": 8, "elevation": 0, "item": "ITEM_CALCIUM", - "flag": "HIDDEN_ITEM_SILPH_CO_9F_CALCIUM", + "flag": "FLAG_HIDDEN_ITEM_SILPH_CO_9F_CALCIUM", "quantity": 1, "underfoot": false }, diff --git a/data/maps/SilphCo_Elevator/map.json b/data/maps/SilphCo_Elevator/map.json index 95e2bdfcd..846cd8fce 100644 --- a/data/maps/SilphCo_Elevator/map.json +++ b/data/maps/SilphCo_Elevator/map.json @@ -20,8 +20,8 @@ "x": 2, "y": 5, "elevation": 3, - "dest_map": "MAP_NONE", - "dest_warp_id": 127 + "dest_map": "MAP_DYNAMIC", + "dest_warp_id": "WARP_ID_DYNAMIC" } ], "coord_events": [], diff --git a/data/maps/SixIsland/map.json b/data/maps/SixIsland/map.json index 89d0c6eff..e5ebdb14f 100644 --- a/data/maps/SixIsland/map.json +++ b/data/maps/SixIsland/map.json @@ -22,6 +22,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BOY", "x": 10, "y": 15, @@ -35,6 +36,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_HIKER", "x": 15, "y": 13, @@ -54,28 +56,28 @@ "y": 23, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_HARBOR", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 11, "y": 11, "elevation": 0, "dest_map": "MAP_SIX_ISLAND_POKEMON_CENTER_1F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 16, "y": 17, "elevation": 0, "dest_map": "MAP_SIX_ISLAND_HOUSE", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 20, "y": 11, "elevation": 0, "dest_map": "MAP_SIX_ISLAND_MART", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], @@ -94,7 +96,7 @@ "y": 7, "elevation": 3, "item": "ITEM_LEPPA_BERRY", - "flag": "HIDDEN_ITEM_SIX_ISLAND_LEPPA_BERRY", + "flag": "FLAG_HIDDEN_ITEM_SIX_ISLAND_LEPPA_BERRY", "quantity": 1, "underfoot": false } diff --git a/data/maps/SixIsland_AlteringCave/map.json b/data/maps/SixIsland_AlteringCave/map.json index b6447b1b2..2b97053f3 100644 --- a/data/maps/SixIsland_AlteringCave/map.json +++ b/data/maps/SixIsland_AlteringCave/map.json @@ -21,7 +21,7 @@ "y": 22, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_OUTCAST_ISLAND", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/SixIsland_DottedHole_1F/map.json b/data/maps/SixIsland_DottedHole_1F/map.json index 802d67e26..dc2a4ae75 100644 --- a/data/maps/SixIsland_DottedHole_1F/map.json +++ b/data/maps/SixIsland_DottedHole_1F/map.json @@ -21,28 +21,28 @@ "y": 9, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_RUIN_VALLEY", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 6, "y": 5, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_B1F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 13, "y": 5, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_SAPPHIRE_ROOM", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 6, "y": 7, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_B1F", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [], diff --git a/data/maps/SixIsland_DottedHole_B1F/map.json b/data/maps/SixIsland_DottedHole_B1F/map.json index 7522ff81c..60032fcc2 100644 --- a/data/maps/SixIsland_DottedHole_B1F/map.json +++ b/data/maps/SixIsland_DottedHole_B1F/map.json @@ -21,35 +21,35 @@ "y": 7, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 6, "y": 1, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_B2F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 11, "y": 5, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_1F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 6, "y": 9, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_1F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 1, "y": 5, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_1F", - "dest_warp_id": 3 + "dest_warp_id": "3" } ], "coord_events": [], diff --git a/data/maps/SixIsland_DottedHole_B2F/map.json b/data/maps/SixIsland_DottedHole_B2F/map.json index e45898a49..cd3365b4c 100644 --- a/data/maps/SixIsland_DottedHole_B2F/map.json +++ b/data/maps/SixIsland_DottedHole_B2F/map.json @@ -21,35 +21,35 @@ "y": 7, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_B1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 6, "y": 1, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_1F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 11, "y": 5, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_1F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 6, "y": 9, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_1F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 1, "y": 5, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_B3F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/SixIsland_DottedHole_B3F/map.json b/data/maps/SixIsland_DottedHole_B3F/map.json index 5c871db50..91528bf0b 100644 --- a/data/maps/SixIsland_DottedHole_B3F/map.json +++ b/data/maps/SixIsland_DottedHole_B3F/map.json @@ -21,35 +21,35 @@ "y": 7, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_B2F", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 6, "y": 1, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_1F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 11, "y": 5, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_B4F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 6, "y": 9, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_1F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 1, "y": 5, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_1F", - "dest_warp_id": 3 + "dest_warp_id": "3" } ], "coord_events": [], diff --git a/data/maps/SixIsland_DottedHole_B4F/map.json b/data/maps/SixIsland_DottedHole_B4F/map.json index 108aa3cce..1fe17117d 100644 --- a/data/maps/SixIsland_DottedHole_B4F/map.json +++ b/data/maps/SixIsland_DottedHole_B4F/map.json @@ -21,35 +21,35 @@ "y": 7, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_B3F", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 6, "y": 1, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_1F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 11, "y": 5, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_1F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 6, "y": 9, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_SAPPHIRE_ROOM", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 1, "y": 5, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_1F", - "dest_warp_id": 3 + "dest_warp_id": "3" } ], "coord_events": [], diff --git a/data/maps/SixIsland_DottedHole_SapphireRoom/map.json b/data/maps/SixIsland_DottedHole_SapphireRoom/map.json index 9909f8a4a..fe9af6319 100644 --- a/data/maps/SixIsland_DottedHole_SapphireRoom/map.json +++ b/data/maps/SixIsland_DottedHole_SapphireRoom/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SAPPHIRE", "x": 7, "y": 7, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_SAPPHIRE" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 5, "y": 9, @@ -48,14 +50,14 @@ "y": 7, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_1F", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 5, "y": 9, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_B4F", - "dest_warp_id": 3 + "dest_warp_id": "3" } ], "coord_events": [], diff --git a/data/maps/SixIsland_DottedHole_SapphireRoom/scripts.inc b/data/maps/SixIsland_DottedHole_SapphireRoom/scripts.inc index 59c3a7e17..bb32e7d0c 100644 --- a/data/maps/SixIsland_DottedHole_SapphireRoom/scripts.inc +++ b/data/maps/SixIsland_DottedHole_SapphireRoom/scripts.inc @@ -60,22 +60,22 @@ SixIsland_DottedHole_SapphireRoom_EventScript_Sapphire:: @ Lots of redundant scripts below SixIsland_DottedHole_SapphireRoom_EventScript_PlayerFaceThiefLeft2:: - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterLeft + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterLeft waitmovement 0 return SixIsland_DottedHole_SapphireRoom_EventScript_PlayerFaceThiefDown2:: - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterDown + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterDown waitmovement 0 return SixIsland_DottedHole_SapphireRoom_EventScript_PlayerFaceThiefLeft:: - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterLeft + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterLeft waitmovement 0 return SixIsland_DottedHole_SapphireRoom_EventScript_PlayerFaceThiefDown:: - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterDown + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterDown waitmovement 0 return @@ -102,28 +102,28 @@ SixIsland_DottedHole_SapphireRoom_EventScript_ThiefLookAtSapphireWest:: SixIsland_DottedHole_SapphireRoom_EventScript_ThiefGetSapphireNorth:: applymovement LOCALID_THIEF, SixIsland_DottedHole_SapphireRoom_Movement_ThiefGetSapphireFromLeft waitmovement 0 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterUp + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterUp waitmovement 0 return SixIsland_DottedHole_SapphireRoom_EventScript_ThiefGetSapphireSouth:: applymovement LOCALID_THIEF, SixIsland_DottedHole_SapphireRoom_Movement_ThiefGetSapphireFromLeft waitmovement 0 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterDown + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterDown waitmovement 0 return SixIsland_DottedHole_SapphireRoom_EventScript_ThiefGetSapphireEast:: applymovement LOCALID_THIEF, SixIsland_DottedHole_SapphireRoom_Movement_ThiefGetSapphireFromBelow waitmovement 0 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterRight waitmovement 0 return SixIsland_DottedHole_SapphireRoom_EventScript_ThiefGetSapphireWest:: applymovement LOCALID_THIEF, SixIsland_DottedHole_SapphireRoom_Movement_ThiefGetSapphireFromBelow waitmovement 0 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterLeft + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterLeft waitmovement 0 return diff --git a/data/maps/SixIsland_GreenPath/map.json b/data/maps/SixIsland_GreenPath/map.json index 30ca97e51..5d01d6956 100644 --- a/data/maps/SixIsland_GreenPath/map.json +++ b/data/maps/SixIsland_GreenPath/map.json @@ -27,6 +27,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_1", "x": 11, "y": 8, @@ -46,28 +47,28 @@ "y": 10, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_PATTERN_BUSH", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 64, "y": 10, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_PATTERN_BUSH", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 45, "y": 10, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_PATTERN_BUSH", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 46, "y": 10, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_PATTERN_BUSH", - "dest_warp_id": 4 + "dest_warp_id": "4" } ], "coord_events": [], @@ -94,7 +95,7 @@ "y": 9, "elevation": 3, "item": "ITEM_ULTRA_BALL", - "flag": "HIDDEN_ITEM_SIX_ISLAND_GREEN_PATH_ULTRA_BALL", + "flag": "FLAG_HIDDEN_ITEM_SIX_ISLAND_GREEN_PATH_ULTRA_BALL", "quantity": 1, "underfoot": false } diff --git a/data/maps/SixIsland_Harbor/map.json b/data/maps/SixIsland_Harbor/map.json index ce3ba9b04..84482518c 100644 --- a/data/maps/SixIsland_Harbor/map.json +++ b/data/maps/SixIsland_Harbor/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SEAGALLOP", "x": 8, "y": 9, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SAILOR", "x": 8, "y": 6, @@ -48,7 +50,7 @@ "y": 2, "elevation": 3, "dest_map": "MAP_SIX_ISLAND", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/SixIsland_House/map.json b/data/maps/SixIsland_House/map.json index 682351b4c..37cd73c6e 100644 --- a/data/maps/SixIsland_House/map.json +++ b/data/maps/SixIsland_House/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", "x": 7, "y": 5, @@ -35,7 +36,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_SIX_ISLAND", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [], diff --git a/data/maps/SixIsland_Mart/map.json b/data/maps/SixIsland_Mart/map.json index 7201f0851..0f5b787e9 100644 --- a/data/maps/SixIsland_Mart/map.json +++ b/data/maps/SixIsland_Mart/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CLERK", "x": 2, "y": 3, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_WOMAN", "x": 8, "y": 3, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PICNICKER", "x": 7, "y": 7, @@ -61,7 +64,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_SIX_ISLAND", - "dest_warp_id": 3 + "dest_warp_id": "3" } ], "coord_events": [], diff --git a/data/maps/SixIsland_OutcastIsland/map.json b/data/maps/SixIsland_OutcastIsland/map.json index 1c353c29b..4a0178f54 100644 --- a/data/maps/SixIsland_OutcastIsland/map.json +++ b/data/maps/SixIsland_OutcastIsland/map.json @@ -22,6 +22,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKET_M", "x": 9, "y": 24, @@ -35,6 +36,7 @@ "flag": "FLAG_HIDE_FIVE_ISLAND_ROCKETS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_FISHER", "x": 12, "y": 15, @@ -48,6 +50,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SWIMMER_M_WATER", "x": 13, "y": 34, @@ -61,6 +64,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SWIMMER_F_WATER", "x": 14, "y": 61, @@ -74,6 +78,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SWIMMER_F_WATER", "x": 10, "y": 44, @@ -87,6 +92,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_TUBER_M_WATER", "x": 11, "y": 44, @@ -100,6 +106,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 11, "y": 16, @@ -119,7 +126,7 @@ "y": 21, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_ALTERING_CAVE", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], @@ -130,7 +137,7 @@ "y": 23, "elevation": 3, "item": "ITEM_STAR_PIECE", - "flag": "HIDDEN_ITEM_SIX_ISLAND_OUTCAST_ISLAND_STAR_PIECE", + "flag": "FLAG_HIDDEN_ITEM_SIX_ISLAND_OUTCAST_ISLAND_STAR_PIECE", "quantity": 1, "underfoot": false }, @@ -140,7 +147,7 @@ "y": 24, "elevation": 3, "item": "ITEM_NET_BALL", - "flag": "HIDDEN_ITEM_SIX_ISLAND_OUTCAST_ISLAND_NET_BALL", + "flag": "FLAG_HIDDEN_ITEM_SIX_ISLAND_OUTCAST_ISLAND_NET_BALL", "quantity": 1, "underfoot": false } diff --git a/data/maps/SixIsland_PatternBush/map.json b/data/maps/SixIsland_PatternBush/map.json index 37c0cca48..9595abbc9 100644 --- a/data/maps/SixIsland_PatternBush/map.json +++ b/data/maps/SixIsland_PatternBush/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_2", "x": 48, "y": 15, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_2", "x": 10, "y": 5, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BUG_CATCHER", "x": 51, "y": 6, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BUG_CATCHER", "x": 12, "y": 13, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BUG_CATCHER", "x": 37, "y": 23, @@ -81,6 +86,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 32, "y": 5, @@ -94,6 +100,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 52, "y": 20, @@ -107,6 +114,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LASS", "x": 8, "y": 21, @@ -120,6 +128,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LASS", "x": 39, "y": 6, @@ -133,6 +142,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CAMPER", "x": 3, "y": 9, @@ -146,6 +156,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PICNICKER", "x": 19, "y": 24, @@ -159,6 +170,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_HIKER", "x": 30, "y": 19, @@ -178,42 +190,42 @@ "y": 26, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_GREEN_PATH", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 55, "y": 26, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_GREEN_PATH", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 56, "y": 26, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_GREEN_PATH", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 3, "y": 26, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_GREEN_PATH", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 4, "y": 26, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_GREEN_PATH", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 5, "y": 26, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_GREEN_PATH", - "dest_warp_id": 3 + "dest_warp_id": "3" } ], "coord_events": [], diff --git a/data/maps/SixIsland_PokemonCenter_1F/map.json b/data/maps/SixIsland_PokemonCenter_1F/map.json index 4ddf8f3b5..b027d1990 100644 --- a/data/maps/SixIsland_PokemonCenter_1F/map.json +++ b/data/maps/SixIsland_PokemonCenter_1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_NURSE", "x": 7, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BLUE", "x": 5, "y": 5, @@ -42,6 +44,7 @@ "flag": "FLAG_HIDE_SIX_ISLAND_POKECENTER_RIVAL" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_HIKER", "x": 13, "y": 3, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_2", "x": 12, "y": 5, @@ -74,14 +78,14 @@ "y": 8, "elevation": 3, "dest_map": "MAP_SIX_ISLAND", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 1, "y": 6, "elevation": 4, "dest_map": "MAP_SIX_ISLAND_POKEMON_CENTER_2F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/SixIsland_PokemonCenter_1F/scripts.inc b/data/maps/SixIsland_PokemonCenter_1F/scripts.inc index 3e23e6839..9efdc8681 100644 --- a/data/maps/SixIsland_PokemonCenter_1F/scripts.inc +++ b/data/maps/SixIsland_PokemonCenter_1F/scripts.inc @@ -22,12 +22,12 @@ SixIsland_PokemonCenter_1F_OnFrame:: SixIsland_PokemonCenter_1F_EventScript_RivalScene:: lockall textcolor NPC_TEXT_COLOR_MALE - applymovement LOCALID_RIVAL, Movement_WalkInPlaceFasterDown + applymovement LOCALID_RIVAL, Common_Movement_WalkInPlaceFasterDown waitmovement 0 playbgm MUS_ENCOUNTER_RIVAL, 0 - applymovement LOCALID_RIVAL, Movement_ExclamationMark + applymovement LOCALID_RIVAL, Common_Movement_ExclamationMark waitmovement 0 - applymovement LOCALID_RIVAL, Movement_Delay48 + applymovement LOCALID_RIVAL, Common_Movement_Delay48 waitmovement 0 delay 25 applymovement LOCALID_RIVAL, SixIsland_PokemonCenter_1F_Movement_RivalApproach diff --git a/data/maps/SixIsland_PokemonCenter_2F/map.json b/data/maps/SixIsland_PokemonCenter_2F/map.json index 6fa988e71..fd46d24fa 100644 --- a/data/maps/SixIsland_PokemonCenter_2F/map.json +++ b/data/maps/SixIsland_PokemonCenter_2F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 6, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 2, "y": 2, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 10, "y": 2, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MG_DELIVERYMAN", "x": 1, "y": 2, @@ -74,21 +78,21 @@ "y": 6, "elevation": 4, "dest_map": "MAP_SIX_ISLAND_POKEMON_CENTER_1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 5, "y": 1, "elevation": 0, "dest_map": "MAP_UNION_ROOM", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 9, "y": 1, "elevation": 0, "dest_map": "MAP_TRADE_CENTER", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/SixIsland_RuinValley/map.json b/data/maps/SixIsland_RuinValley/map.json index 1233ea32a..72cc69b52 100644 --- a/data/maps/SixIsland_RuinValley/map.json +++ b/data/maps/SixIsland_RuinValley/map.json @@ -22,6 +22,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 24, "y": 25, @@ -35,6 +36,7 @@ "flag": "FLAG_HIDE_RUIN_VALLEY_SCIENTIST" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_HIKER", "x": 32, "y": 11, @@ -48,6 +50,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_HIKER", "x": 33, "y": 16, @@ -61,6 +64,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_HIKER", "x": 31, "y": 24, @@ -74,6 +78,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_HIKER", "x": 14, "y": 10, @@ -87,6 +92,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SUPER_NERD", "x": 21, "y": 29, @@ -100,6 +106,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 17, "y": 10, @@ -113,6 +120,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 17, "y": 12, @@ -126,6 +134,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 18, "y": 11, @@ -139,6 +148,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 6, "y": 33, @@ -152,6 +162,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 6, "y": 34, @@ -165,6 +176,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 41, "y": 32, @@ -178,6 +190,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 41, "y": 33, @@ -191,6 +204,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 42, "y": 33, @@ -204,6 +218,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 5, "y": 33, @@ -217,6 +232,7 @@ "flag": "FLAG_HIDE_SIX_ISLAND_RUIN_VALLEY_HP_UP" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 19, "y": 11, @@ -230,6 +246,7 @@ "flag": "FLAG_HIDE_SIX_ISLAND_RUIN_VALLEY_FULL_RESTORE" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 43, "y": 32, @@ -249,7 +266,7 @@ "y": 24, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_DOTTED_HOLE_1F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/SixIsland_RuinValley/scripts.inc b/data/maps/SixIsland_RuinValley/scripts.inc index 808bed3d0..6df247886 100644 --- a/data/maps/SixIsland_RuinValley/scripts.inc +++ b/data/maps/SixIsland_RuinValley/scripts.inc @@ -15,10 +15,10 @@ SixIsland_RuinValley_EventScript_OpenDottedHoleDoor:: SixIsland_RuinValley_EventScript_Scientist:: lock msgbox SixIsland_RuinValley_Text_CantFigureOutHowToGetInside - applymovement LOCALID_SCIENTIST, Movement_FacePlayer + applymovement LOCALID_SCIENTIST, Common_Movement_FacePlayer waitmovement 0 msgbox SixIsland_RuinValley_Text_IFoundThisPlace - applymovement LOCALID_SCIENTIST, Movement_FaceOriginalDirection + applymovement LOCALID_SCIENTIST, Common_Movement_FaceOriginalDirection waitmovement 0 release end diff --git a/data/maps/SixIsland_WaterPath/map.json b/data/maps/SixIsland_WaterPath/map.json index 952fd541e..1ee07dfbb 100644 --- a/data/maps/SixIsland_WaterPath/map.json +++ b/data/maps/SixIsland_WaterPath/map.json @@ -32,6 +32,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_2", "x": 12, "y": 13, @@ -45,6 +46,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKER", "x": 11, "y": 52, @@ -58,6 +60,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SWIMMER_M_WATER", "x": 13, "y": 35, @@ -71,6 +74,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SWIMMER_F_WATER", "x": 15, "y": 45, @@ -84,6 +88,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LITTLE_GIRL", "x": 6, "y": 21, @@ -97,6 +102,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LITTLE_GIRL", "x": 7, "y": 21, @@ -110,6 +116,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_HIKER", "x": 11, "y": 76, @@ -123,6 +130,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 17, "y": 19, @@ -136,6 +144,7 @@ "flag": "FLAG_HIDE_SIX_ISLAND_WATER_PATH_ELIXIR" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 17, "y": 87, @@ -155,14 +164,14 @@ "y": 13, "elevation": 0, "dest_map": "MAP_SIX_ISLAND_WATER_PATH_HOUSE1", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 11, "y": 19, "elevation": 0, "dest_map": "MAP_SIX_ISLAND_WATER_PATH_HOUSE2", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], @@ -181,7 +190,7 @@ "y": 76, "elevation": 3, "item": "ITEM_ASPEAR_BERRY", - "flag": "HIDDEN_ITEM_SIX_ISLAND_WATER_PATH_ASPEAR_BERRY", + "flag": "FLAG_HIDDEN_ITEM_SIX_ISLAND_WATER_PATH_ASPEAR_BERRY", "quantity": 1, "underfoot": false }, @@ -191,7 +200,7 @@ "y": 8, "elevation": 3, "item": "ITEM_ORAN_BERRY", - "flag": "HIDDEN_ITEM_SIX_ISLAND_WATER_PATH_ORAN_BERRY", + "flag": "FLAG_HIDDEN_ITEM_SIX_ISLAND_WATER_PATH_ORAN_BERRY", "quantity": 1, "underfoot": false }, @@ -201,7 +210,7 @@ "y": 63, "elevation": 3, "item": "ITEM_PINAP_BERRY", - "flag": "HIDDEN_ITEM_SIX_ISLAND_WATER_PATH_PINAP_BERRY", + "flag": "FLAG_HIDDEN_ITEM_SIX_ISLAND_WATER_PATH_PINAP_BERRY", "quantity": 1, "underfoot": false }, diff --git a/data/maps/SixIsland_WaterPath_House1/map.json b/data/maps/SixIsland_WaterPath_House1/map.json index 88e50542f..69b8967f4 100644 --- a/data/maps/SixIsland_WaterPath_House1/map.json +++ b/data/maps/SixIsland_WaterPath_House1/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BEAUTY", "x": 3, "y": 4, @@ -35,7 +36,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_WATER_PATH", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/SixIsland_WaterPath_House2/map.json b/data/maps/SixIsland_WaterPath_House2/map.json index fe1e53c65..3de52cacd 100644 --- a/data/maps/SixIsland_WaterPath_House2/map.json +++ b/data/maps/SixIsland_WaterPath_House2/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MAN", "x": 7, "y": 4, @@ -35,7 +36,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_SIX_ISLAND_WATER_PATH", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/ThreeIsland/map.json b/data/maps/ThreeIsland/map.json index b760e50b2..69d733605 100644 --- a/data/maps/ThreeIsland/map.json +++ b/data/maps/ThreeIsland/map.json @@ -27,6 +27,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MAN", "x": 7, "y": 24, @@ -40,6 +41,7 @@ "flag": "FLAG_HIDE_THREE_ISLAND_ANTIBIKERS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MAN", "x": 8, "y": 23, @@ -53,6 +55,7 @@ "flag": "FLAG_HIDE_THREE_ISLAND_ANTIBIKERS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BIKER", "x": 8, "y": 24, @@ -66,6 +69,7 @@ "flag": "FLAG_HIDE_THREE_ISLAND_LONE_BIKER" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BIKER", "x": 9, "y": 23, @@ -79,6 +83,7 @@ "flag": "FLAG_HIDE_THREE_ISLAND_BIKERS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BIKER", "x": 9, "y": 24, @@ -92,6 +97,7 @@ "flag": "FLAG_HIDE_THREE_ISLAND_BIKERS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BIKER", "x": 10, "y": 22, @@ -105,6 +111,7 @@ "flag": "FLAG_HIDE_THREE_ISLAND_BIKERS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BIKER", "x": 10, "y": 24, @@ -118,6 +125,7 @@ "flag": "FLAG_HIDE_THREE_ISLAND_BIKERS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BIKER", "x": 11, "y": 23, @@ -131,6 +139,7 @@ "flag": "FLAG_HIDE_THREE_ISLAND_BIKERS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 20, "y": 7, @@ -144,6 +153,7 @@ "flag": "FLAG_TEMP_12" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 18, "y": 17, @@ -157,6 +167,7 @@ "flag": "FLAG_HIDE_THREE_ISLAND_ZINC" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_1", "x": 15, "y": 7, @@ -170,6 +181,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LITTLE_BOY", "x": 14, "y": 14, @@ -183,6 +195,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_DODUO", "x": 15, "y": 14, @@ -196,6 +209,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BIKER", "x": 15, "y": 31, @@ -215,49 +229,49 @@ "y": 31, "elevation": 0, "dest_map": "MAP_THREE_ISLAND_HOUSE1", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 14, "y": 27, "elevation": 0, "dest_map": "MAP_THREE_ISLAND_POKEMON_CENTER_1F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 18, "y": 12, "elevation": 0, "dest_map": "MAP_THREE_ISLAND_MART", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 4, "y": 6, "elevation": 0, "dest_map": "MAP_THREE_ISLAND_HOUSE2", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 12, "y": 6, "elevation": 0, "dest_map": "MAP_THREE_ISLAND_HOUSE3", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 12, "y": 12, "elevation": 0, "dest_map": "MAP_THREE_ISLAND_HOUSE4", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 13, "y": 19, "elevation": 0, "dest_map": "MAP_THREE_ISLAND_HOUSE5", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [ @@ -367,7 +381,7 @@ "y": 13, "elevation": 3, "item": "ITEM_PP_UP", - "flag": "HIDDEN_ITEM_THREE_ISLAND_PP_UP", + "flag": "FLAG_HIDDEN_ITEM_THREE_ISLAND_PP_UP", "quantity": 1, "underfoot": false } diff --git a/data/maps/ThreeIsland/scripts.inc b/data/maps/ThreeIsland/scripts.inc index c88307195..589ddca21 100644 --- a/data/maps/ThreeIsland/scripts.inc +++ b/data/maps/ThreeIsland/scripts.inc @@ -44,14 +44,14 @@ ThreeIsland_EventScript_AntiBiker1:: end ThreeIsland_EventScript_AntiBiker1GotFullRestore:: - applymovement LOCALID_ANTIBIKER1, Movement_FacePlayer + applymovement LOCALID_ANTIBIKER1, Common_Movement_FacePlayer waitmovement 0 msgbox ThreeIsland_Text_YouveGotImpressiveMons release end ThreeIsland_EventScript_GiveFullRestore:: - applymovement LOCALID_ANTIBIKER1, Movement_FacePlayer + applymovement LOCALID_ANTIBIKER1, Common_Movement_FacePlayer waitmovement 0 msgbox ThreeIsland_Text_ThankYouOhYourMonGotHurt checkitemspace ITEM_FULL_RESTORE @@ -95,23 +95,23 @@ ThreeIsland_EventScript_BikerArgumentScene:: return ThreeIsland_EventScript_PlayerFaceUp:: - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterUp + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterUp waitmovement 0 return @ Unused ThreeIsland_EventScript_PlayerFaceDown:: - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterDown + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterDown waitmovement 0 return ThreeIsland_EventScript_PlayerFaceLeft:: - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterLeft + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterLeft waitmovement 0 return ThreeIsland_EventScript_PlayerFaceRight:: - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterRight waitmovement 0 return @@ -136,7 +136,7 @@ ThreeIsland_EventScript_AntiBiker2:: end ThreeIsland_EventScript_AntiBiker2BikersGone:: - applymovement LOCALID_ANTIBIKER2, Movement_FacePlayer + applymovement LOCALID_ANTIBIKER2, Common_Movement_FacePlayer waitmovement 0 msgbox ThreeIsland_Text_LostelleWentOffTowardsBondBridge release @@ -204,12 +204,12 @@ ThreeIsland_EventScript_BattleBikersTriggerRight:: ThreeIsland_EventScript_BattleBikersScene:: textcolor NPC_TEXT_COLOR_MALE - applymovement LOCALID_BIKER1, Movement_WalkInPlaceFasterDown + applymovement LOCALID_BIKER1, Common_Movement_WalkInPlaceFasterDown waitmovement 0 playse SE_PIN - applymovement LOCALID_BIKER1, Movement_ExclamationMark + applymovement LOCALID_BIKER1, Common_Movement_ExclamationMark waitmovement 0 - applymovement LOCALID_BIKER1, Movement_Delay48 + applymovement LOCALID_BIKER1, Common_Movement_Delay48 waitmovement 0 applymovement LOCALID_BIKER1, ThreeIsland_Movement_BikerApproach waitmovement 0 @@ -239,10 +239,10 @@ ThreeIsland_EventScript_BattleBikersScene:: msgbox ThreeIsland_Text_Biker3Intro setvar VAR_LAST_TALKED, LOCALID_BIKER3 trainerbattle_no_intro TRAINER_BIKER_GOON_3, ThreeIsland_Text_Biker3Defeat - applymovement LOCALID_BIKER3, Movement_WalkInPlaceFasterLeft + applymovement LOCALID_BIKER3, Common_Movement_WalkInPlaceFasterLeft waitmovement 0 - applymovement LOCALID_BIKER4, Movement_WalkInPlaceFasterDown - applymovement LOCALID_BIKER5, Movement_WalkInPlaceFasterDown + applymovement LOCALID_BIKER4, Common_Movement_WalkInPlaceFasterDown + applymovement LOCALID_BIKER5, Common_Movement_WalkInPlaceFasterDown waitmovement 0 msgbox ThreeIsland_Text_Biker3PostBattle closemessage @@ -272,33 +272,33 @@ ThreeIsland_EventScript_BattleBikersScene:: end ThreeIsland_EventScript_PaxtonApproachLeft:: - applymovement LOCALID_BIKER3, Movement_WalkInPlaceFasterDown + applymovement LOCALID_BIKER3, Common_Movement_WalkInPlaceFasterDown applymovement LOCALID_PAXTON, ThreeIsland_Movement_PaxtonApproachLeft waitmovement 0 return ThreeIsland_EventScript_PaxtonApproachMidLeft:: - applymovement LOCALID_BIKER3, Movement_WalkInPlaceFasterDown + applymovement LOCALID_BIKER3, Common_Movement_WalkInPlaceFasterDown applymovement LOCALID_PAXTON, ThreeIsland_Movement_PaxtonApproachMidLeft waitmovement 0 return ThreeIsland_EventScript_PaxtonApproachMid:: - applymovement LOCALID_BIKER3, Movement_WalkInPlaceFasterDown + applymovement LOCALID_BIKER3, Common_Movement_WalkInPlaceFasterDown applymovement LOCALID_PAXTON, ThreeIsland_Movement_PaxtonApproachMid applymovement OBJ_EVENT_ID_PLAYER, ThreeIsland_Movement_PlayerFacePaxton waitmovement 0 return ThreeIsland_EventScript_PaxtonApproachMidRight:: - applymovement LOCALID_BIKER3, Movement_WalkInPlaceFasterDown + applymovement LOCALID_BIKER3, Common_Movement_WalkInPlaceFasterDown applymovement OBJ_EVENT_ID_PLAYER, ThreeIsland_Movement_PlayerFacePaxton applymovement LOCALID_PAXTON, ThreeIsland_Movement_PaxtonApproachMidRight waitmovement 0 return ThreeIsland_EventScript_PaxtonApproachRight:: - applymovement LOCALID_BIKER3, Movement_WalkInPlaceFasterDown + applymovement LOCALID_BIKER3, Common_Movement_WalkInPlaceFasterDown applymovement OBJ_EVENT_ID_PLAYER, ThreeIsland_Movement_PlayerFacePaxton applymovement LOCALID_PAXTON, ThreeIsland_Movement_PaxtonApproachRight waitmovement 0 diff --git a/data/maps/ThreeIsland_BerryForest/map.json b/data/maps/ThreeIsland_BerryForest/map.json index 874b9f089..18151e232 100644 --- a/data/maps/ThreeIsland_BerryForest/map.json +++ b/data/maps/ThreeIsland_BerryForest/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LITTLE_GIRL", "x": 4, "y": 8, @@ -29,6 +30,7 @@ "flag": "FLAG_HIDE_LOSTELLE_IN_BERRY_FOREST" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 12, "y": 11, @@ -42,6 +44,7 @@ "flag": "FLAG_TEMP_12" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 19, "y": 7, @@ -55,6 +58,7 @@ "flag": "FLAG_TEMP_13" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 23, "y": 17, @@ -68,6 +72,7 @@ "flag": "FLAG_TEMP_14" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 38, "y": 23, @@ -81,6 +86,7 @@ "flag": "FLAG_TEMP_15" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 44, "y": 23, @@ -94,6 +100,7 @@ "flag": "FLAG_TEMP_16" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 44, "y": 29, @@ -107,6 +114,7 @@ "flag": "FLAG_TEMP_17" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 16, "y": 43, @@ -120,6 +128,7 @@ "flag": "FLAG_TEMP_18" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 17, "y": 39, @@ -133,6 +142,7 @@ "flag": "FLAG_TEMP_19" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 14, "y": 39, @@ -146,6 +156,7 @@ "flag": "FLAG_TEMP_1A" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 11, "y": 39, @@ -159,6 +170,7 @@ "flag": "FLAG_TEMP_1B" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 12, "y": 5, @@ -172,6 +184,7 @@ "flag": "FLAG_HIDE_THREE_ISLAND_BERRY_FOREST_MAX_ETHER" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 27, "y": 11, @@ -185,6 +198,7 @@ "flag": "FLAG_HIDE_THREE_ISLAND_BERRY_FOREST_FULL_HEAL" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 12, "y": 43, @@ -204,21 +218,21 @@ "y": 41, "elevation": 3, "dest_map": "MAP_THREE_ISLAND_BOND_BRIDGE", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 42, "y": 41, "elevation": 3, "dest_map": "MAP_THREE_ISLAND_BOND_BRIDGE", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 44, "y": 41, "elevation": 3, "dest_map": "MAP_THREE_ISLAND_BOND_BRIDGE", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], @@ -245,7 +259,7 @@ "y": 25, "elevation": 3, "item": "ITEM_RAZZ_BERRY", - "flag": "HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_RAZZ_BERRY", + "flag": "FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_RAZZ_BERRY", "quantity": 1, "underfoot": false }, @@ -255,7 +269,7 @@ "y": 15, "elevation": 3, "item": "ITEM_BLUK_BERRY", - "flag": "HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_BLUK_BERRY", + "flag": "FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_BLUK_BERRY", "quantity": 1, "underfoot": false }, @@ -265,7 +279,7 @@ "y": 24, "elevation": 3, "item": "ITEM_NANAB_BERRY", - "flag": "HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_NANAB_BERRY", + "flag": "FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_NANAB_BERRY", "quantity": 1, "underfoot": false }, @@ -275,7 +289,7 @@ "y": 24, "elevation": 3, "item": "ITEM_WEPEAR_BERRY", - "flag": "HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_WEPEAR_BERRY", + "flag": "FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_WEPEAR_BERRY", "quantity": 1, "underfoot": false }, @@ -285,7 +299,7 @@ "y": 18, "elevation": 3, "item": "ITEM_ORAN_BERRY", - "flag": "HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_ORAN_BERRY", + "flag": "FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_ORAN_BERRY", "quantity": 1, "underfoot": false }, @@ -295,7 +309,7 @@ "y": 23, "elevation": 3, "item": "ITEM_CHERI_BERRY", - "flag": "HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_CHERI_BERRY", + "flag": "FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_CHERI_BERRY", "quantity": 1, "underfoot": false }, @@ -305,7 +319,7 @@ "y": 5, "elevation": 3, "item": "ITEM_CHESTO_BERRY", - "flag": "HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_CHESTO_BERRY", + "flag": "FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_CHESTO_BERRY", "quantity": 1, "underfoot": false }, @@ -315,7 +329,7 @@ "y": 30, "elevation": 3, "item": "ITEM_PECHA_BERRY", - "flag": "HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_PECHA_BERRY", + "flag": "FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_PECHA_BERRY", "quantity": 1, "underfoot": false }, @@ -325,7 +339,7 @@ "y": 5, "elevation": 3, "item": "ITEM_RAWST_BERRY", - "flag": "HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_RAWST_BERRY", + "flag": "FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_RAWST_BERRY", "quantity": 1, "underfoot": false }, @@ -335,7 +349,7 @@ "y": 6, "elevation": 3, "item": "ITEM_ASPEAR_BERRY", - "flag": "HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_ASPEAR_BERRY", + "flag": "FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_ASPEAR_BERRY", "quantity": 1, "underfoot": false }, @@ -345,7 +359,7 @@ "y": 32, "elevation": 3, "item": "ITEM_PERSIM_BERRY", - "flag": "HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_PERSIM_BERRY", + "flag": "FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_PERSIM_BERRY", "quantity": 1, "underfoot": false }, @@ -355,7 +369,7 @@ "y": 16, "elevation": 3, "item": "ITEM_PINAP_BERRY", - "flag": "HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_PINAP_BERRY", + "flag": "FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_PINAP_BERRY", "quantity": 1, "underfoot": false }, @@ -365,7 +379,7 @@ "y": 5, "elevation": 3, "item": "ITEM_LUM_BERRY", - "flag": "HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_LUM_BERRY", + "flag": "FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_LUM_BERRY", "quantity": 1, "underfoot": false } diff --git a/data/maps/ThreeIsland_BerryForest/scripts.inc b/data/maps/ThreeIsland_BerryForest/scripts.inc index c5e8841de..8aeed468c 100644 --- a/data/maps/ThreeIsland_BerryForest/scripts.inc +++ b/data/maps/ThreeIsland_BerryForest/scripts.inc @@ -14,7 +14,7 @@ ThreeIsland_BerryForest_EventScript_Lostelle:: faceplayer msgbox ThreeIsland_BerryForest_Text_HelpScaryPokemon playse SE_PIN - applymovement LOCALID_LOSTELLE, Movement_ExclamationMark + applymovement LOCALID_LOSTELLE, Common_Movement_ExclamationMark waitmovement 0 applymovement LOCALID_LOSTELLE, ThreeIsland_BerryForest_Movement_LostelleLookAround waitmovement 0 @@ -26,7 +26,7 @@ ThreeIsland_BerryForest_EventScript_Lostelle:: setwildbattle SPECIES_HYPNO, 30 dowildbattle special QuestLog_CutRecording - applymovement LOCALID_LOSTELLE, Movement_FacePlayer + applymovement LOCALID_LOSTELLE, Common_Movement_FacePlayer waitmovement 0 msgbox ThreeIsland_BerryForest_Text_ThankYouHaveThis giveitem ITEM_IAPAPA_BERRY diff --git a/data/maps/ThreeIsland_BondBridge/map.json b/data/maps/ThreeIsland_BondBridge/map.json index 80f8c79ed..787fac702 100644 --- a/data/maps/ThreeIsland_BondBridge/map.json +++ b/data/maps/ThreeIsland_BondBridge/map.json @@ -22,6 +22,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_2", "x": 27, "y": 10, @@ -35,6 +36,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_2", "x": 68, "y": 10, @@ -48,6 +50,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_TUBER_F", "x": 33, "y": 13, @@ -61,6 +64,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_TUBER_F", "x": 50, "y": 11, @@ -74,6 +78,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SWIMMER_F_WATER", "x": 36, "y": 4, @@ -87,6 +92,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LITTLE_GIRL", "x": 77, "y": 5, @@ -100,6 +106,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LITTLE_GIRL", "x": 78, "y": 5, @@ -113,6 +120,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 72, "y": 8, @@ -126,6 +134,7 @@ "flag": "FLAG_TEMP_12" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 86, "y": 13, @@ -145,14 +154,14 @@ "y": 6, "elevation": 3, "dest_map": "MAP_THREE_ISLAND_BERRY_FOREST", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 13, "y": 6, "elevation": 3, "dest_map": "MAP_THREE_ISLAND_BERRY_FOREST", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], @@ -171,7 +180,7 @@ "y": 5, "elevation": 0, "item": "ITEM_MAX_REPEL", - "flag": "HIDDEN_ITEM_THREE_ISLAND_BOND_BRIDGE_MAX_REPEL", + "flag": "FLAG_HIDDEN_ITEM_THREE_ISLAND_BOND_BRIDGE_MAX_REPEL", "quantity": 1, "underfoot": false }, @@ -181,7 +190,7 @@ "y": 12, "elevation": 3, "item": "ITEM_PEARL", - "flag": "HIDDEN_ITEM_THREE_ISLAND_BOND_BRIDGE_PEARL", + "flag": "FLAG_HIDDEN_ITEM_THREE_ISLAND_BOND_BRIDGE_PEARL", "quantity": 1, "underfoot": false }, @@ -191,7 +200,7 @@ "y": 7, "elevation": 3, "item": "ITEM_STARDUST", - "flag": "HIDDEN_ITEM_THREE_ISLAND_BOND_BRIDGE_STARDUST", + "flag": "FLAG_HIDDEN_ITEM_THREE_ISLAND_BOND_BRIDGE_STARDUST", "quantity": 1, "underfoot": false }, diff --git a/data/maps/ThreeIsland_DunsparceTunnel/map.json b/data/maps/ThreeIsland_DunsparceTunnel/map.json index f5c957505..6b40c01eb 100644 --- a/data/maps/ThreeIsland_DunsparceTunnel/map.json +++ b/data/maps/ThreeIsland_DunsparceTunnel/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_FAT_MAN", "x": 23, "y": 2, @@ -35,14 +36,14 @@ "y": 4, "elevation": 3, "dest_map": "MAP_THREE_ISLAND_PORT", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 25, "y": 5, "elevation": 3, "dest_map": "MAP_THREE_ISLAND_PORT", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], @@ -53,7 +54,7 @@ "y": 3, "elevation": 0, "item": "ITEM_NUGGET", - "flag": "HIDDEN_ITEM_THREE_ISLAND_DUNSPARCE_TUNNEL_NUGGET", + "flag": "FLAG_HIDDEN_ITEM_THREE_ISLAND_DUNSPARCE_TUNNEL_NUGGET", "quantity": 1, "underfoot": false } diff --git a/data/maps/ThreeIsland_DunsparceTunnel/scripts.inc b/data/maps/ThreeIsland_DunsparceTunnel/scripts.inc index 20826c539..2c66fb6f4 100644 --- a/data/maps/ThreeIsland_DunsparceTunnel/scripts.inc +++ b/data/maps/ThreeIsland_DunsparceTunnel/scripts.inc @@ -29,7 +29,7 @@ ThreeIsland_DunsparceTunnel_EventScript_Prospector:: goto_if_eq VAR_RESULT, TRUE, ThreeIsland_DunsparceTunnel_EventScript_ProspectorStruckGold msgbox ThreeIsland_DunsparceTunnel_Text_ProspectingForGold closemessage - applymovement LOCALID_PROSPECTOR, Movement_FaceOriginalDirection + applymovement LOCALID_PROSPECTOR, Common_Movement_FaceOriginalDirection waitmovement 0 release end diff --git a/data/maps/ThreeIsland_Harbor/map.json b/data/maps/ThreeIsland_Harbor/map.json index f9219d5c2..91b0068f3 100644 --- a/data/maps/ThreeIsland_Harbor/map.json +++ b/data/maps/ThreeIsland_Harbor/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SEAGALLOP", "x": 8, "y": 9, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SAILOR", "x": 8, "y": 6, @@ -48,7 +50,7 @@ "y": 2, "elevation": 3, "dest_map": "MAP_THREE_ISLAND_PORT", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [], diff --git a/data/maps/ThreeIsland_House1/map.json b/data/maps/ThreeIsland_House1/map.json index aa356997b..6f8adafad 100644 --- a/data/maps/ThreeIsland_House1/map.json +++ b/data/maps/ThreeIsland_House1/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LITTLE_GIRL", "x": 3, "y": 4, @@ -35,7 +36,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_THREE_ISLAND", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/ThreeIsland_House2/map.json b/data/maps/ThreeIsland_House2/map.json index 01fd8fe58..16f5c6329 100644 --- a/data/maps/ThreeIsland_House2/map.json +++ b/data/maps/ThreeIsland_House2/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKER", "x": 4, "y": 4, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MAN", "x": 7, "y": 4, @@ -48,7 +50,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_THREE_ISLAND", - "dest_warp_id": 3 + "dest_warp_id": "3" } ], "coord_events": [], diff --git a/data/maps/ThreeIsland_House3/map.json b/data/maps/ThreeIsland_House3/map.json index e3c4c467c..92dd72209 100644 --- a/data/maps/ThreeIsland_House3/map.json +++ b/data/maps/ThreeIsland_House3/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BEAUTY", "x": 8, "y": 2, @@ -35,7 +36,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_THREE_ISLAND", - "dest_warp_id": 4 + "dest_warp_id": "4" } ], "coord_events": [], diff --git a/data/maps/ThreeIsland_House4/map.json b/data/maps/ThreeIsland_House4/map.json index 25e2193a0..3f717a01e 100644 --- a/data/maps/ThreeIsland_House4/map.json +++ b/data/maps/ThreeIsland_House4/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", "x": 7, "y": 4, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LITTLE_BOY", "x": 6, "y": 3, @@ -48,7 +50,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_THREE_ISLAND", - "dest_warp_id": 5 + "dest_warp_id": "5" } ], "coord_events": [], diff --git a/data/maps/ThreeIsland_House5/map.json b/data/maps/ThreeIsland_House5/map.json index 19f808a4a..078de6766 100644 --- a/data/maps/ThreeIsland_House5/map.json +++ b/data/maps/ThreeIsland_House5/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LITTLE_GIRL", "x": 2, "y": 5, @@ -35,7 +36,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_THREE_ISLAND", - "dest_warp_id": 6 + "dest_warp_id": "6" } ], "coord_events": [], diff --git a/data/maps/ThreeIsland_Mart/map.json b/data/maps/ThreeIsland_Mart/map.json index c1e596005..87d40bc50 100644 --- a/data/maps/ThreeIsland_Mart/map.json +++ b/data/maps/ThreeIsland_Mart/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CLERK", "x": 2, "y": 3, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PICNICKER", "x": 2, "y": 7, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BUG_CATCHER", "x": 7, "y": 2, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 6, "y": 5, @@ -74,7 +78,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_THREE_ISLAND", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [], diff --git a/data/maps/ThreeIsland_PokemonCenter_1F/map.json b/data/maps/ThreeIsland_PokemonCenter_1F/map.json index 532c0766c..40a381d8a 100644 --- a/data/maps/ThreeIsland_PokemonCenter_1F/map.json +++ b/data/maps/ThreeIsland_PokemonCenter_1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_NURSE", "x": 7, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKER", "x": 12, "y": 2, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LASS", "x": 3, "y": 4, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SAILOR", "x": 11, "y": 5, @@ -74,14 +78,14 @@ "y": 8, "elevation": 3, "dest_map": "MAP_THREE_ISLAND", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 1, "y": 6, "elevation": 4, "dest_map": "MAP_THREE_ISLAND_POKEMON_CENTER_2F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/ThreeIsland_PokemonCenter_2F/map.json b/data/maps/ThreeIsland_PokemonCenter_2F/map.json index 265d66974..fc9dc06bf 100644 --- a/data/maps/ThreeIsland_PokemonCenter_2F/map.json +++ b/data/maps/ThreeIsland_PokemonCenter_2F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 6, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 2, "y": 2, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 10, "y": 2, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MG_DELIVERYMAN", "x": 1, "y": 2, @@ -74,21 +78,21 @@ "y": 6, "elevation": 4, "dest_map": "MAP_THREE_ISLAND_POKEMON_CENTER_1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 5, "y": 1, "elevation": 0, "dest_map": "MAP_UNION_ROOM", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 9, "y": 1, "elevation": 0, "dest_map": "MAP_TRADE_CENTER", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/ThreeIsland_Port/map.json b/data/maps/ThreeIsland_Port/map.json index 794b27b4e..061bf2808 100644 --- a/data/maps/ThreeIsland_Port/map.json +++ b/data/maps/ThreeIsland_Port/map.json @@ -22,6 +22,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_3", "x": 14, "y": 9, @@ -35,6 +36,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BIKER", "x": 8, "y": 8, @@ -48,6 +50,7 @@ "flag": "FLAG_HIDE_THREE_ISLAND_BIKERS" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BIKER", "x": 13, "y": 10, @@ -67,21 +70,21 @@ "y": 4, "elevation": 0, "dest_map": "MAP_THREE_ISLAND_DUNSPARCE_TUNNEL", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 38, "y": 5, "elevation": 3, "dest_map": "MAP_THREE_ISLAND_DUNSPARCE_TUNNEL", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 12, "y": 13, "elevation": 3, "dest_map": "MAP_THREE_ISLAND_HARBOR", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/TradeCenter/map.json b/data/maps/TradeCenter/map.json index 4c35a5942..6a630234f 100644 --- a/data/maps/TradeCenter/map.json +++ b/data/maps/TradeCenter/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_UNION_ROOM_RECEPTIONIST", "x": 9, "y": 6, @@ -34,15 +35,15 @@ "x": 5, "y": 8, "elevation": 3, - "dest_map": "MAP_NONE", - "dest_warp_id": 127 + "dest_map": "MAP_DYNAMIC", + "dest_warp_id": "WARP_ID_DYNAMIC" }, { "x": 6, "y": 8, "elevation": 3, - "dest_map": "MAP_NONE", - "dest_warp_id": 127 + "dest_map": "MAP_DYNAMIC", + "dest_warp_id": "WARP_ID_DYNAMIC" } ], "coord_events": [ diff --git a/data/maps/TrainerTower_1F/map.json b/data/maps/TrainerTower_1F/map.json index 4b12dc8a0..7547f513b 100644 --- a/data/maps/TrainerTower_1F/map.json +++ b/data/maps/TrainerTower_1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_TRAINER_TOWER_DUDE", "x": 9, "y": 7, @@ -29,6 +30,7 @@ "flag": "FLAG_TEMP_6" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_0", "x": 11, "y": 10, @@ -42,6 +44,7 @@ "flag": "FLAG_TEMP_2" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_1", "x": 15, "y": 13, @@ -55,6 +58,7 @@ "flag": "FLAG_TEMP_3" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_2", "x": 10, "y": 16, @@ -68,6 +72,7 @@ "flag": "FLAG_TEMP_4" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_3", "x": 10, "y": 10, @@ -87,14 +92,14 @@ "y": 6, "elevation": 3, "dest_map": "MAP_TRAINER_TOWER_2F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 4, "y": 6, "elevation": 3, "dest_map": "MAP_TRAINER_TOWER_LOBBY", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [ diff --git a/data/maps/TrainerTower_2F/map.json b/data/maps/TrainerTower_2F/map.json index 5972e45b4..b92b7b6b7 100644 --- a/data/maps/TrainerTower_2F/map.json +++ b/data/maps/TrainerTower_2F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_TRAINER_TOWER_DUDE", "x": 9, "y": 7, @@ -29,6 +30,7 @@ "flag": "FLAG_TEMP_6" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_0", "x": 10, "y": 10, @@ -42,6 +44,7 @@ "flag": "FLAG_TEMP_2" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_1", "x": 15, "y": 13, @@ -55,6 +58,7 @@ "flag": "FLAG_TEMP_3" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_2", "x": 10, "y": 16, @@ -68,6 +72,7 @@ "flag": "FLAG_TEMP_4" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_3", "x": 11, "y": 10, @@ -87,21 +92,21 @@ "y": 6, "elevation": 3, "dest_map": "MAP_TRAINER_TOWER_3F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 4, "y": 6, "elevation": 3, "dest_map": "MAP_TRAINER_TOWER_1F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 13, "y": 5, "elevation": 0, "dest_map": "MAP_TRAINER_TOWER_ELEVATOR", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [ diff --git a/data/maps/TrainerTower_3F/map.json b/data/maps/TrainerTower_3F/map.json index 10becb1c8..e6adefa4b 100644 --- a/data/maps/TrainerTower_3F/map.json +++ b/data/maps/TrainerTower_3F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_TRAINER_TOWER_DUDE", "x": 9, "y": 7, @@ -29,6 +30,7 @@ "flag": "FLAG_TEMP_6" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_0", "x": 10, "y": 10, @@ -42,6 +44,7 @@ "flag": "FLAG_TEMP_2" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_1", "x": 15, "y": 13, @@ -55,6 +58,7 @@ "flag": "FLAG_TEMP_3" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_2", "x": 10, "y": 16, @@ -68,6 +72,7 @@ "flag": "FLAG_TEMP_4" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_3", "x": 11, "y": 10, @@ -87,21 +92,21 @@ "y": 6, "elevation": 3, "dest_map": "MAP_TRAINER_TOWER_4F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 4, "y": 6, "elevation": 3, "dest_map": "MAP_TRAINER_TOWER_2F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 13, "y": 5, "elevation": 0, "dest_map": "MAP_TRAINER_TOWER_ELEVATOR", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [ diff --git a/data/maps/TrainerTower_4F/map.json b/data/maps/TrainerTower_4F/map.json index 07c1183f3..82ad54a67 100644 --- a/data/maps/TrainerTower_4F/map.json +++ b/data/maps/TrainerTower_4F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_TRAINER_TOWER_DUDE", "x": 9, "y": 7, @@ -29,6 +30,7 @@ "flag": "FLAG_TEMP_6" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_0", "x": 10, "y": 10, @@ -42,6 +44,7 @@ "flag": "FLAG_TEMP_2" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_1", "x": 15, "y": 13, @@ -55,6 +58,7 @@ "flag": "FLAG_TEMP_3" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_2", "x": 10, "y": 16, @@ -68,6 +72,7 @@ "flag": "FLAG_TEMP_4" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_3", "x": 11, "y": 10, @@ -87,21 +92,21 @@ "y": 6, "elevation": 3, "dest_map": "MAP_TRAINER_TOWER_5F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 4, "y": 6, "elevation": 3, "dest_map": "MAP_TRAINER_TOWER_3F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 13, "y": 5, "elevation": 0, "dest_map": "MAP_TRAINER_TOWER_ELEVATOR", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [ diff --git a/data/maps/TrainerTower_5F/map.json b/data/maps/TrainerTower_5F/map.json index 5f7d41602..706a18d53 100644 --- a/data/maps/TrainerTower_5F/map.json +++ b/data/maps/TrainerTower_5F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_TRAINER_TOWER_DUDE", "x": 9, "y": 7, @@ -29,6 +30,7 @@ "flag": "FLAG_TEMP_6" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_0", "x": 10, "y": 10, @@ -42,6 +44,7 @@ "flag": "FLAG_TEMP_2" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_1", "x": 15, "y": 13, @@ -55,6 +58,7 @@ "flag": "FLAG_TEMP_3" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_2", "x": 10, "y": 16, @@ -68,6 +72,7 @@ "flag": "FLAG_TEMP_4" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_3", "x": 11, "y": 10, @@ -87,21 +92,21 @@ "y": 6, "elevation": 3, "dest_map": "MAP_TRAINER_TOWER_6F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 4, "y": 6, "elevation": 3, "dest_map": "MAP_TRAINER_TOWER_4F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 13, "y": 5, "elevation": 0, "dest_map": "MAP_TRAINER_TOWER_ELEVATOR", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [ diff --git a/data/maps/TrainerTower_6F/map.json b/data/maps/TrainerTower_6F/map.json index 8a30e713c..b10e110e0 100644 --- a/data/maps/TrainerTower_6F/map.json +++ b/data/maps/TrainerTower_6F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_TRAINER_TOWER_DUDE", "x": 9, "y": 7, @@ -29,6 +30,7 @@ "flag": "FLAG_TEMP_6" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_0", "x": 10, "y": 10, @@ -42,6 +44,7 @@ "flag": "FLAG_TEMP_2" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_1", "x": 15, "y": 13, @@ -55,6 +58,7 @@ "flag": "FLAG_TEMP_3" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_2", "x": 10, "y": 16, @@ -68,6 +72,7 @@ "flag": "FLAG_TEMP_4" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_3", "x": 11, "y": 10, @@ -87,21 +92,21 @@ "y": 6, "elevation": 3, "dest_map": "MAP_TRAINER_TOWER_7F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 4, "y": 6, "elevation": 3, "dest_map": "MAP_TRAINER_TOWER_5F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 13, "y": 5, "elevation": 0, "dest_map": "MAP_TRAINER_TOWER_ELEVATOR", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [ diff --git a/data/maps/TrainerTower_7F/map.json b/data/maps/TrainerTower_7F/map.json index bfdd31391..33fa4b6bc 100644 --- a/data/maps/TrainerTower_7F/map.json +++ b/data/maps/TrainerTower_7F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_TRAINER_TOWER_DUDE", "x": 9, "y": 7, @@ -29,6 +30,7 @@ "flag": "FLAG_TEMP_6" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_0", "x": 10, "y": 10, @@ -42,6 +44,7 @@ "flag": "FLAG_TEMP_2" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_1", "x": 15, "y": 13, @@ -55,6 +58,7 @@ "flag": "FLAG_TEMP_3" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_2", "x": 10, "y": 16, @@ -68,6 +72,7 @@ "flag": "FLAG_TEMP_4" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_3", "x": 11, "y": 10, @@ -87,21 +92,21 @@ "y": 6, "elevation": 3, "dest_map": "MAP_TRAINER_TOWER_8F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 4, "y": 6, "elevation": 3, "dest_map": "MAP_TRAINER_TOWER_6F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 13, "y": 5, "elevation": 0, "dest_map": "MAP_TRAINER_TOWER_ELEVATOR", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [ diff --git a/data/maps/TrainerTower_8F/map.json b/data/maps/TrainerTower_8F/map.json index 2b3358855..5624035e3 100644 --- a/data/maps/TrainerTower_8F/map.json +++ b/data/maps/TrainerTower_8F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_TRAINER_TOWER_DUDE", "x": 9, "y": 7, @@ -29,6 +30,7 @@ "flag": "FLAG_TEMP_6" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_0", "x": 10, "y": 10, @@ -42,6 +44,7 @@ "flag": "FLAG_TEMP_2" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_1", "x": 15, "y": 13, @@ -55,6 +58,7 @@ "flag": "FLAG_TEMP_3" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_2", "x": 10, "y": 16, @@ -68,6 +72,7 @@ "flag": "FLAG_TEMP_4" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_3", "x": 11, "y": 10, @@ -87,21 +92,21 @@ "y": 6, "elevation": 3, "dest_map": "MAP_TRAINER_TOWER_ROOF", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 4, "y": 6, "elevation": 3, "dest_map": "MAP_TRAINER_TOWER_7F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 13, "y": 5, "elevation": 0, "dest_map": "MAP_TRAINER_TOWER_ELEVATOR", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [ diff --git a/data/maps/TrainerTower_Elevator/map.json b/data/maps/TrainerTower_Elevator/map.json index c0a71f79e..285a704d1 100644 --- a/data/maps/TrainerTower_Elevator/map.json +++ b/data/maps/TrainerTower_Elevator/map.json @@ -20,8 +20,8 @@ "x": 2, "y": 5, "elevation": 3, - "dest_map": "MAP_NONE", - "dest_warp_id": 127 + "dest_map": "MAP_DYNAMIC", + "dest_warp_id": "WARP_ID_DYNAMIC" } ], "coord_events": [], diff --git a/data/maps/TrainerTower_Lobby/map.json b/data/maps/TrainerTower_Lobby/map.json index 1fa9f1869..8ca6a756d 100644 --- a/data/maps/TrainerTower_Lobby/map.json +++ b/data/maps/TrainerTower_Lobby/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_NURSE", "x": 4, "y": 9, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_UNION_ROOM_RECEPTIONIST", "x": 14, "y": 9, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_UNION_ROOM_RECEPTIONIST", "x": 11, "y": 7, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_F", "x": 12, "y": 13, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", "x": 2, "y": 12, @@ -87,21 +92,21 @@ "y": 2, "elevation": 3, "dest_map": "MAP_TRAINER_TOWER_1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 9, "y": 15, "elevation": 3, "dest_map": "MAP_SEVEN_ISLAND_TRAINER_TOWER", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 17, "y": 8, "elevation": 0, "dest_map": "MAP_TRAINER_TOWER_ELEVATOR", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [ diff --git a/data/maps/TrainerTower_Lobby/scripts.inc b/data/maps/TrainerTower_Lobby/scripts.inc index 19dc390ae..e435cb33f 100644 --- a/data/maps/TrainerTower_Lobby/scripts.inc +++ b/data/maps/TrainerTower_Lobby/scripts.inc @@ -72,7 +72,7 @@ TrainerTower_Lobby_EventScript_Enter:: ttower_getchallengestatus switch VAR_RESULT case CHALLENGE_STATUS_LOST, TrainerTower_Lobby_EventScript_LostChallenge - case CHALLENGE_STATUS_UNK, TrainerTower_Lobby_EventScript_164938 + case CHALLENGE_STATUS_UNK, TrainerTower_Lobby_EventScript_ExitChallengeSpeakToReceptionist case CHALLENGE_STATUS_NORMAL, TrainerTower_Lobby_EventScript_EnterEnd TrainerTower_Lobby_EventScript_LostChallenge:: @@ -84,7 +84,7 @@ TrainerTower_Lobby_EventScript_LostChallenge:: goto TrainerTower_Lobby_EventScript_ExitChallenge @ Presumably E-Reader related -TrainerTower_Lobby_EventScript_164938:: +TrainerTower_Lobby_EventScript_ExitChallengeSpeakToReceptionist:: lock faceplayer applymovement OBJ_EVENT_ID_PLAYER, TrainerTower_Lobby_Movement_FaceReceptionist diff --git a/data/maps/TrainerTower_Roof/map.json b/data/maps/TrainerTower_Roof/map.json index ee528571e..3e603b3cd 100644 --- a/data/maps/TrainerTower_Roof/map.json +++ b/data/maps/TrainerTower_Roof/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_TRAINER_TOWER_DUDE", "x": 9, "y": 7, @@ -35,14 +36,14 @@ "y": 5, "elevation": 0, "dest_map": "MAP_TRAINER_TOWER_ELEVATOR", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 4, "y": 6, "elevation": 3, "dest_map": "MAP_TRAINER_TOWER_8F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/TwoIsland/map.json b/data/maps/TwoIsland/map.json index bb680ce77..41ae31f39 100644 --- a/data/maps/TwoIsland/map.json +++ b/data/maps/TwoIsland/map.json @@ -22,6 +22,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CLERK", "x": 28, "y": 4, @@ -35,6 +36,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_1", "x": 31, "y": 6, @@ -48,6 +50,7 @@ "flag": "FLAG_HIDE_TWO_ISLAND_WOMAN" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BEAUTY", "x": 30, "y": 11, @@ -61,6 +64,7 @@ "flag": "FLAG_HIDE_TWO_ISLAND_BEAUTY" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SAILOR", "x": 26, "y": 5, @@ -74,6 +78,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SUPER_NERD", "x": 27, "y": 6, @@ -87,6 +92,7 @@ "flag": "FLAG_HIDE_TWO_ISLAND_SUPER_NERD" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 30, "y": 16, @@ -100,6 +106,7 @@ "flag": "FLAG_TEMP_12" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 39, "y": 16, @@ -113,6 +120,7 @@ "flag": "FLAG_HIDE_TWO_ISLAND_REVIVE" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LITTLE_BOY", "x": 37, "y": 12, @@ -126,6 +134,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BOY", "x": 24, "y": 12, @@ -145,28 +154,28 @@ "y": 9, "elevation": 0, "dest_map": "MAP_TWO_ISLAND_JOYFUL_GAME_CORNER", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 33, "y": 9, "elevation": 0, "dest_map": "MAP_TWO_ISLAND_HOUSE", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 21, "y": 7, "elevation": 0, "dest_map": "MAP_TWO_ISLAND_POKEMON_CENTER_1F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 10, "y": 8, "elevation": 3, "dest_map": "MAP_TWO_ISLAND_HARBOR", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/TwoIsland_CapeBrink/map.json b/data/maps/TwoIsland_CapeBrink/map.json index f4fbfe4e4..ce109de65 100644 --- a/data/maps/TwoIsland_CapeBrink/map.json +++ b/data/maps/TwoIsland_CapeBrink/map.json @@ -27,7 +27,7 @@ "y": 16, "elevation": 0, "dest_map": "MAP_TWO_ISLAND_CAPE_BRINK_HOUSE", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], @@ -38,7 +38,7 @@ "y": 28, "elevation": 3, "item": "ITEM_PP_MAX", - "flag": "HIDDEN_ITEM_TWO_ISLAND_CAPE_BRINK_PP_MAX", + "flag": "FLAG_HIDDEN_ITEM_TWO_ISLAND_CAPE_BRINK_PP_MAX", "quantity": 1, "underfoot": true }, @@ -48,7 +48,7 @@ "y": 13, "elevation": 3, "item": "ITEM_RARE_CANDY", - "flag": "HIDDEN_ITEM_TWO_ISLAND_CAPE_BRINK_RARE_CANDY", + "flag": "FLAG_HIDDEN_ITEM_TWO_ISLAND_CAPE_BRINK_RARE_CANDY", "quantity": 1, "underfoot": false } diff --git a/data/maps/TwoIsland_CapeBrink_House/map.json b/data/maps/TwoIsland_CapeBrink_House/map.json index 5ffda9b54..a37a6d584 100644 --- a/data/maps/TwoIsland_CapeBrink_House/map.json +++ b/data/maps/TwoIsland_CapeBrink_House/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CHANNELER", "x": 4, "y": 4, @@ -35,7 +36,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_TWO_ISLAND_CAPE_BRINK", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/TwoIsland_Harbor/map.json b/data/maps/TwoIsland_Harbor/map.json index be3073e86..19734c66e 100644 --- a/data/maps/TwoIsland_Harbor/map.json +++ b/data/maps/TwoIsland_Harbor/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SEAGALLOP", "x": 8, "y": 9, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SAILOR", "x": 8, "y": 6, @@ -48,7 +50,7 @@ "y": 2, "elevation": 3, "dest_map": "MAP_TWO_ISLAND", - "dest_warp_id": 3 + "dest_warp_id": "3" } ], "coord_events": [], diff --git a/data/maps/TwoIsland_House/map.json b/data/maps/TwoIsland_House/map.json index acb50d880..b8ebaf876 100644 --- a/data/maps/TwoIsland_House/map.json +++ b/data/maps/TwoIsland_House/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_FAT_MAN", "x": 7, "y": 5, @@ -35,7 +36,7 @@ "y": 7, "elevation": 3, "dest_map": "MAP_TWO_ISLAND", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/TwoIsland_JoyfulGameCorner/map.json b/data/maps/TwoIsland_JoyfulGameCorner/map.json index 213e7ea20..58f88994c 100644 --- a/data/maps/TwoIsland_JoyfulGameCorner/map.json +++ b/data/maps/TwoIsland_JoyfulGameCorner/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", "x": 5, "y": 5, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BIKER", "x": 5, "y": 8, @@ -42,6 +44,7 @@ "flag": "FLAG_HIDE_TWO_ISLAND_GAME_CORNER_BIKER" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LITTLE_GIRL", "x": 6, "y": 5, @@ -55,6 +58,7 @@ "flag": "FLAG_HIDE_TWO_ISLAND_GAME_CORNER_LOSTELLE" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MAN", "x": 4, "y": 2, @@ -74,7 +78,7 @@ "y": 8, "elevation": 3, "dest_map": "MAP_TWO_ISLAND", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/TwoIsland_JoyfulGameCorner/scripts.inc b/data/maps/TwoIsland_JoyfulGameCorner/scripts.inc index ab2e4a8bf..a31f95dea 100644 --- a/data/maps/TwoIsland_JoyfulGameCorner/scripts.inc +++ b/data/maps/TwoIsland_JoyfulGameCorner/scripts.inc @@ -43,7 +43,7 @@ TwoIsland_JoyfulGameCorner_EventScript_FoundLostelleScene:: special BufferBigGuyOrBigGirlString msgbox TwoIsland_JoyfulGameCorner_Text_LostelleItsOkayDaddy closemessage - applymovement LOCALID_LOSTELLE, Movement_WalkInPlaceFasterDown + applymovement LOCALID_LOSTELLE, Common_Movement_WalkInPlaceFasterDown waitmovement 0 setvar VAR_MAP_SCENE_TWO_ISLAND_JOYFUL_GAME_CORNER, 3 releaseall @@ -52,38 +52,38 @@ TwoIsland_JoyfulGameCorner_EventScript_FoundLostelleScene:: TwoIsland_JoyfulGameCorner_EventScript_HelpFindLostelleScene:: lockall textcolor NPC_TEXT_COLOR_MALE - applymovement LOCALID_DADDY, Movement_171520 + applymovement LOCALID_DADDY, TwoIsland_JoyfulGameCorner_Movement_DaddyPacing waitmovement 0 msgbox TwoIsland_JoyfulGameCorner_Text_WhereHasLostelleGottenTo closemessage - applymovement LOCALID_DADDY, Movement_WalkInPlaceFasterDown + applymovement LOCALID_DADDY, Common_Movement_WalkInPlaceFasterDown waitmovement 0 playse SE_PIN - applymovement LOCALID_DADDY, Movement_ExclamationMark + applymovement LOCALID_DADDY, Common_Movement_ExclamationMark waitmovement 0 - applymovement LOCALID_DADDY, Movement_Delay48 + applymovement LOCALID_DADDY, Common_Movement_Delay48 waitmovement 0 - applymovement LOCALID_DADDY, Movement_171527 + applymovement LOCALID_DADDY, TwoIsland_JoyfulGameCorner_Movement_DaddyApproachPlayer waitmovement 0 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterRight waitmovement 0 msgbox TwoIsland_JoyfulGameCorner_Text_PleaseHelpFindLostelle closemessage playse SE_RS_DOOR waitse - applymovement OBJ_EVENT_ID_PLAYER, Movement_17152C + applymovement OBJ_EVENT_ID_PLAYER, TwoIsland_JoyfulGameCorner_Movement_PlayerFaceDaddy waitmovement 0 playbgm MUS_ENCOUNTER_BOY, 0 addobject LOCALID_BIKER applymovement LOCALID_BIKER, TwoIsland_JoyfulGameCorner_Movement_BikerLookAround waitmovement 0 msgbox TwoIsland_JoyfulGameCorner_Text_IsThisOnlyThreeIsland - applymovement LOCALID_BIKER, Movement_WalkInPlaceFasterRight + applymovement LOCALID_BIKER, Common_Movement_WalkInPlaceFasterRight waitmovement 0 msgbox TwoIsland_JoyfulGameCorner_Text_ThisIsTwoIslandMoveIt msgbox TwoIsland_JoyfulGameCorner_Text_TheseIslandsAreConfusing closemessage - applymovement LOCALID_BIKER, Movement_WalkInPlaceFasterDown + applymovement LOCALID_BIKER, Common_Movement_WalkInPlaceFasterDown waitmovement 0 playse SE_EXIT removeobject LOCALID_BIKER @@ -96,7 +96,7 @@ TwoIsland_JoyfulGameCorner_EventScript_HelpFindLostelleScene:: releaseall end -Movement_171520:: +TwoIsland_JoyfulGameCorner_Movement_DaddyPacing:: walk_left walk_right walk_right @@ -105,14 +105,14 @@ Movement_171520:: delay_16 step_end -Movement_171527:: +TwoIsland_JoyfulGameCorner_Movement_DaddyApproachPlayer:: walk_down walk_down walk_down walk_in_place_faster_left step_end -Movement_17152C:: +TwoIsland_JoyfulGameCorner_Movement_PlayerFaceDaddy:: walk_left walk_in_place_faster_right step_end diff --git a/data/maps/TwoIsland_PokemonCenter_1F/map.json b/data/maps/TwoIsland_PokemonCenter_1F/map.json index ad6c90d96..6daf7c00a 100644 --- a/data/maps/TwoIsland_PokemonCenter_1F/map.json +++ b/data/maps/TwoIsland_PokemonCenter_1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_NURSE", "x": 7, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GBA_KID", "x": 11, "y": 5, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BUG_CATCHER", "x": 4, "y": 4, @@ -61,14 +64,14 @@ "y": 8, "elevation": 3, "dest_map": "MAP_TWO_ISLAND", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 1, "y": 6, "elevation": 4, "dest_map": "MAP_TWO_ISLAND_POKEMON_CENTER_2F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/TwoIsland_PokemonCenter_2F/map.json b/data/maps/TwoIsland_PokemonCenter_2F/map.json index d6c52f551..adb9a6b49 100644 --- a/data/maps/TwoIsland_PokemonCenter_2F/map.json +++ b/data/maps/TwoIsland_PokemonCenter_2F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 6, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 2, "y": 2, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 10, "y": 2, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MG_DELIVERYMAN", "x": 1, "y": 2, @@ -74,21 +78,21 @@ "y": 6, "elevation": 4, "dest_map": "MAP_TWO_ISLAND_POKEMON_CENTER_1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 5, "y": 1, "elevation": 0, "dest_map": "MAP_UNION_ROOM", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 9, "y": 1, "elevation": 0, "dest_map": "MAP_TRADE_CENTER", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/UndergroundPath_EastEntrance/map.json b/data/maps/UndergroundPath_EastEntrance/map.json index fdd6613a0..88777f77c 100644 --- a/data/maps/UndergroundPath_EastEntrance/map.json +++ b/data/maps/UndergroundPath_EastEntrance/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_2", "x": 5, "y": 6, @@ -35,28 +36,28 @@ "y": 8, "elevation": 3, "dest_map": "MAP_ROUTE8", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 6, "y": 8, "elevation": 3, "dest_map": "MAP_ROUTE8", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 7, "y": 8, "elevation": 3, "dest_map": "MAP_ROUTE8", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 7, "y": 4, "elevation": 3, "dest_map": "MAP_UNDERGROUND_PATH_EAST_WEST_TUNNEL", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/UndergroundPath_EastWestTunnel/map.json b/data/maps/UndergroundPath_EastWestTunnel/map.json index 9648812ad..30ca49913 100644 --- a/data/maps/UndergroundPath_EastWestTunnel/map.json +++ b/data/maps/UndergroundPath_EastWestTunnel/map.json @@ -21,14 +21,14 @@ "y": 3, "elevation": 3, "dest_map": "MAP_UNDERGROUND_PATH_EAST_ENTRANCE", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 3, "y": 4, "elevation": 3, "dest_map": "MAP_UNDERGROUND_PATH_WEST_ENTRANCE", - "dest_warp_id": 3 + "dest_warp_id": "3" } ], "coord_events": [], @@ -39,7 +39,7 @@ "y": 3, "elevation": 3, "item": "ITEM_POTION", - "flag": "HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_POTION", + "flag": "FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_POTION", "quantity": 1, "underfoot": false }, @@ -49,7 +49,7 @@ "y": 5, "elevation": 3, "item": "ITEM_PARALYZE_HEAL", - "flag": "HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_PARALYZE_HEAL", + "flag": "FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_PARALYZE_HEAL", "quantity": 1, "underfoot": false }, @@ -59,7 +59,7 @@ "y": 4, "elevation": 3, "item": "ITEM_AWAKENING", - "flag": "HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_AWAKENING", + "flag": "FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_AWAKENING", "quantity": 1, "underfoot": false }, @@ -69,7 +69,7 @@ "y": 3, "elevation": 3, "item": "ITEM_BURN_HEAL", - "flag": "HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_BURN_HEAL", + "flag": "FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_BURN_HEAL", "quantity": 1, "underfoot": false }, @@ -79,7 +79,7 @@ "y": 3, "elevation": 3, "item": "ITEM_ICE_HEAL", - "flag": "HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_ICE_HEAL", + "flag": "FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_ICE_HEAL", "quantity": 1, "underfoot": false }, @@ -89,7 +89,7 @@ "y": 2, "elevation": 3, "item": "ITEM_ETHER", - "flag": "HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_ETHER", + "flag": "FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_ETHER", "quantity": 1, "underfoot": false }, @@ -99,7 +99,7 @@ "y": 5, "elevation": 3, "item": "ITEM_ANTIDOTE", - "flag": "HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_ANTIDOTE", + "flag": "FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_ANTIDOTE", "quantity": 1, "underfoot": false } diff --git a/data/maps/UndergroundPath_NorthEntrance/map.json b/data/maps/UndergroundPath_NorthEntrance/map.json index 9dda62055..f3602bf1f 100644 --- a/data/maps/UndergroundPath_NorthEntrance/map.json +++ b/data/maps/UndergroundPath_NorthEntrance/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LITTLE_GIRL", "x": 5, "y": 6, @@ -35,28 +36,28 @@ "y": 8, "elevation": 3, "dest_map": "MAP_ROUTE5", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 6, "y": 8, "elevation": 3, "dest_map": "MAP_ROUTE5", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 7, "y": 8, "elevation": 3, "dest_map": "MAP_ROUTE5", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 7, "y": 4, "elevation": 3, "dest_map": "MAP_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/UndergroundPath_NorthSouthTunnel/map.json b/data/maps/UndergroundPath_NorthSouthTunnel/map.json index 5358160b7..95b3decab 100644 --- a/data/maps/UndergroundPath_NorthSouthTunnel/map.json +++ b/data/maps/UndergroundPath_NorthSouthTunnel/map.json @@ -21,14 +21,14 @@ "y": 3, "elevation": 3, "dest_map": "MAP_UNDERGROUND_PATH_NORTH_ENTRANCE", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 3, "y": 60, "elevation": 3, "dest_map": "MAP_UNDERGROUND_PATH_SOUTH_ENTRANCE", - "dest_warp_id": 3 + "dest_warp_id": "3" } ], "coord_events": [], @@ -39,7 +39,7 @@ "y": 30, "elevation": 3, "item": "ITEM_POTION", - "flag": "HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_POTION", + "flag": "FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_POTION", "quantity": 1, "underfoot": false }, @@ -49,7 +49,7 @@ "y": 6, "elevation": 3, "item": "ITEM_ANTIDOTE", - "flag": "HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_ANTIDOTE", + "flag": "FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_ANTIDOTE", "quantity": 1, "underfoot": false }, @@ -59,7 +59,7 @@ "y": 57, "elevation": 3, "item": "ITEM_BURN_HEAL", - "flag": "HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_BURN_HEAL", + "flag": "FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_BURN_HEAL", "quantity": 1, "underfoot": false }, @@ -69,7 +69,7 @@ "y": 24, "elevation": 3, "item": "ITEM_AWAKENING", - "flag": "HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_AWAKENING", + "flag": "FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_AWAKENING", "quantity": 1, "underfoot": false }, @@ -79,7 +79,7 @@ "y": 53, "elevation": 3, "item": "ITEM_ICE_HEAL", - "flag": "HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_ICE_HEAL", + "flag": "FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_ICE_HEAL", "quantity": 1, "underfoot": false }, @@ -89,7 +89,7 @@ "y": 15, "elevation": 3, "item": "ITEM_PARALYZE_HEAL", - "flag": "HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_PARALYZE_HEAL", + "flag": "FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_PARALYZE_HEAL", "quantity": 1, "underfoot": false }, @@ -99,7 +99,7 @@ "y": 39, "elevation": 3, "item": "ITEM_ETHER", - "flag": "HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_ETHER", + "flag": "FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_ETHER", "quantity": 1, "underfoot": false } diff --git a/data/maps/UndergroundPath_SouthEntrance/map.json b/data/maps/UndergroundPath_SouthEntrance/map.json index 9109d7035..3b1d0c9b9 100644 --- a/data/maps/UndergroundPath_SouthEntrance/map.json +++ b/data/maps/UndergroundPath_SouthEntrance/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_2", "x": 5, "y": 6, @@ -35,28 +36,28 @@ "y": 8, "elevation": 3, "dest_map": "MAP_ROUTE6", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 6, "y": 8, "elevation": 3, "dest_map": "MAP_ROUTE6", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 7, "y": 8, "elevation": 3, "dest_map": "MAP_ROUTE6", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 7, "y": 4, "elevation": 3, "dest_map": "MAP_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/UndergroundPath_WestEntrance/map.json b/data/maps/UndergroundPath_WestEntrance/map.json index 9fbfb4cd6..92162da3a 100644 --- a/data/maps/UndergroundPath_WestEntrance/map.json +++ b/data/maps/UndergroundPath_WestEntrance/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", "x": 5, "y": 6, @@ -35,28 +36,28 @@ "y": 8, "elevation": 3, "dest_map": "MAP_ROUTE7", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 6, "y": 8, "elevation": 3, "dest_map": "MAP_ROUTE7", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 7, "y": 8, "elevation": 3, "dest_map": "MAP_ROUTE7", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 7, "y": 4, "elevation": 3, "dest_map": "MAP_UNDERGROUND_PATH_EAST_WEST_TUNNEL", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/UnionRoom/map.json b/data/maps/UnionRoom/map.json index ec4ea7e21..45c625f84 100644 --- a/data/maps/UnionRoom/map.json +++ b/data/maps/UnionRoom/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_UNION_ROOM_RECEPTIONIST", "x": 3, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_3", "x": 1, "y": 8, @@ -42,6 +44,7 @@ "flag": "FLAG_HIDE_UNION_ROOM_PLAYER_4" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_7", "x": 7, "y": 8, @@ -55,6 +58,7 @@ "flag": "FLAG_HIDE_UNION_ROOM_PLAYER_8" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_6", "x": 1, "y": 4, @@ -68,6 +72,7 @@ "flag": "FLAG_HIDE_UNION_ROOM_PLAYER_7" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_5", "x": 7, "y": 4, @@ -81,6 +86,7 @@ "flag": "FLAG_HIDE_UNION_ROOM_PLAYER_6" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_4", "x": 13, "y": 4, @@ -94,6 +100,7 @@ "flag": "FLAG_HIDE_UNION_ROOM_PLAYER_5" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_2", "x": 10, "y": 6, @@ -107,6 +114,7 @@ "flag": "FLAG_HIDE_UNION_ROOM_PLAYER_3" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_1", "x": 13, "y": 8, @@ -120,6 +128,7 @@ "flag": "FLAG_HIDE_UNION_ROOM_PLAYER_2" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_0", "x": 4, "y": 6, @@ -138,8 +147,8 @@ "x": 7, "y": 11, "elevation": 3, - "dest_map": "MAP_NONE", - "dest_warp_id": 127 + "dest_map": "MAP_DYNAMIC", + "dest_warp_id": "WARP_ID_DYNAMIC" } ], "coord_events": [], diff --git a/data/maps/VermilionCity/map.json b/data/maps/VermilionCity/map.json index 9c3a5e558..cda186af7 100644 --- a/data/maps/VermilionCity/map.json +++ b/data/maps/VermilionCity/map.json @@ -27,6 +27,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_1", "x": 22, "y": 11, @@ -40,6 +41,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", "x": 17, "y": 9, @@ -53,6 +55,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_2", "x": 36, "y": 10, @@ -66,6 +69,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MACHOP", "x": 35, "y": 11, @@ -79,6 +83,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SAILOR", "x": 31, "y": 30, @@ -92,6 +97,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SAILOR", "x": 24, "y": 33, @@ -105,6 +111,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 19, "y": 24, @@ -118,6 +125,7 @@ "flag": "FLAG_TEMP_12" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SCIENTIST", "x": 25, "y": 7, @@ -137,70 +145,70 @@ "y": 34, "elevation": 3, "dest_map": "MAP_SSANNE_EXTERIOR", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 23, "y": 34, "elevation": 3, "dest_map": "MAP_SSANNE_EXTERIOR", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 24, "y": 34, "elevation": 3, "dest_map": "MAP_SSANNE_EXTERIOR", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 9, "y": 6, "elevation": 0, "dest_map": "MAP_VERMILION_CITY_HOUSE1", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 15, "y": 6, "elevation": 3, "dest_map": "MAP_VERMILION_CITY_POKEMON_CENTER_1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 12, "y": 17, "elevation": 0, "dest_map": "MAP_VERMILION_CITY_POKEMON_FAN_CLUB", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 19, "y": 17, "elevation": 0, "dest_map": "MAP_VERMILION_CITY_HOUSE2", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 29, "y": 17, "elevation": 0, "dest_map": "MAP_VERMILION_CITY_MART", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 28, "y": 24, "elevation": 0, "dest_map": "MAP_VERMILION_CITY_HOUSE3", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 14, "y": 25, "elevation": 0, "dest_map": "MAP_VERMILION_CITY_GYM", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [ @@ -288,7 +296,7 @@ "y": 11, "elevation": 3, "item": "ITEM_MAX_ETHER", - "flag": "HIDDEN_ITEM_VERMILION_CITY_MAX_ETHER", + "flag": "FLAG_HIDDEN_ITEM_VERMILION_CITY_MAX_ETHER", "quantity": 1, "underfoot": false } diff --git a/data/maps/VermilionCity/scripts.inc b/data/maps/VermilionCity/scripts.inc index 9b7028145..004d6e7c6 100644 --- a/data/maps/VermilionCity/scripts.inc +++ b/data/maps/VermilionCity/scripts.inc @@ -191,8 +191,8 @@ VermilionCity_EventScript_ExitedTicketCheck:: VermilionCity_EventScript_CheckTicket:: textcolor NPC_TEXT_COLOR_MALE - applymovement LOCALID_FERRY_SAILOR, Movement_WalkInPlaceFasterLeft - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight + applymovement LOCALID_FERRY_SAILOR, Common_Movement_WalkInPlaceFasterLeft + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterRight waitmovement 0 goto_if_eq VAR_MAP_SCENE_VERMILION_CITY, 3, VermilionCity_EventScript_CheckSeagallopPresentTrigger msgbox VermilionCity_Text_DoYouHaveATicket diff --git a/data/maps/VermilionCity_Gym/map.json b/data/maps/VermilionCity_Gym/map.json index 66c27c611..62d686734 100644 --- a/data/maps/VermilionCity_Gym/map.json +++ b/data/maps/VermilionCity_Gym/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LT_SURGE", "x": 5, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", "x": 2, "y": 11, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SAILOR", "x": 8, "y": 13, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GYM_GUY", "x": 4, "y": 17, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN", "x": 7, "y": 8, @@ -87,21 +92,21 @@ "y": 19, "elevation": 3, "dest_map": "MAP_VERMILION_CITY", - "dest_warp_id": 9 + "dest_warp_id": "9" }, { "x": 5, "y": 19, "elevation": 3, "dest_map": "MAP_VERMILION_CITY", - "dest_warp_id": 9 + "dest_warp_id": "9" }, { "x": 6, "y": 19, "elevation": 3, "dest_map": "MAP_VERMILION_CITY", - "dest_warp_id": 9 + "dest_warp_id": "9" } ], "coord_events": [], diff --git a/data/maps/VermilionCity_House1/map.json b/data/maps/VermilionCity_House1/map.json index 5ddb668e4..d2628a141 100644 --- a/data/maps/VermilionCity_House1/map.json +++ b/data/maps/VermilionCity_House1/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_FISHER", "x": 4, "y": 5, @@ -35,21 +36,21 @@ "y": 7, "elevation": 3, "dest_map": "MAP_VERMILION_CITY", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 4, "y": 7, "elevation": 3, "dest_map": "MAP_VERMILION_CITY", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 5, "y": 7, "elevation": 3, "dest_map": "MAP_VERMILION_CITY", - "dest_warp_id": 3 + "dest_warp_id": "3" } ], "coord_events": [], diff --git a/data/maps/VermilionCity_House2/map.json b/data/maps/VermilionCity_House2/map.json index c91403a4e..6e9117fa7 100644 --- a/data/maps/VermilionCity_House2/map.json +++ b/data/maps/VermilionCity_House2/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LITTLE_GIRL", "x": 4, "y": 4, @@ -35,21 +36,21 @@ "y": 7, "elevation": 3, "dest_map": "MAP_VERMILION_CITY", - "dest_warp_id": 6 + "dest_warp_id": "6" }, { "x": 4, "y": 7, "elevation": 3, "dest_map": "MAP_VERMILION_CITY", - "dest_warp_id": 6 + "dest_warp_id": "6" }, { "x": 5, "y": 7, "elevation": 3, "dest_map": "MAP_VERMILION_CITY", - "dest_warp_id": 6 + "dest_warp_id": "6" } ], "coord_events": [], diff --git a/data/maps/VermilionCity_House3/map.json b/data/maps/VermilionCity_House3/map.json index 00228071a..f9c6bc68a 100644 --- a/data/maps/VermilionCity_House3/map.json +++ b/data/maps/VermilionCity_House3/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BOY", "x": 7, "y": 4, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PIDGEY", "x": 2, "y": 5, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CLIPBOARD", "x": 6, "y": 4, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LASS", "x": 2, "y": 4, @@ -74,21 +78,21 @@ "y": 7, "elevation": 3, "dest_map": "MAP_VERMILION_CITY", - "dest_warp_id": 8 + "dest_warp_id": "8" }, { "x": 4, "y": 7, "elevation": 3, "dest_map": "MAP_VERMILION_CITY", - "dest_warp_id": 8 + "dest_warp_id": "8" }, { "x": 5, "y": 7, "elevation": 3, "dest_map": "MAP_VERMILION_CITY", - "dest_warp_id": 8 + "dest_warp_id": "8" } ], "coord_events": [], diff --git a/data/maps/VermilionCity_Mart/map.json b/data/maps/VermilionCity_Mart/map.json index 472cfd606..b62113ed5 100644 --- a/data/maps/VermilionCity_Mart/map.json +++ b/data/maps/VermilionCity_Mart/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CLERK", "x": 2, "y": 3, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_F", "x": 4, "y": 2, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", "x": 9, "y": 4, @@ -61,21 +64,21 @@ "y": 7, "elevation": 3, "dest_map": "MAP_VERMILION_CITY", - "dest_warp_id": 7 + "dest_warp_id": "7" }, { "x": 4, "y": 7, "elevation": 3, "dest_map": "MAP_VERMILION_CITY", - "dest_warp_id": 7 + "dest_warp_id": "7" }, { "x": 5, "y": 7, "elevation": 3, "dest_map": "MAP_VERMILION_CITY", - "dest_warp_id": 7 + "dest_warp_id": "7" } ], "coord_events": [], diff --git a/data/maps/VermilionCity_PokemonCenter_1F/map.json b/data/maps/VermilionCity_PokemonCenter_1F/map.json index d08b85b28..4faf56365 100644 --- a/data/maps/VermilionCity_PokemonCenter_1F/map.json +++ b/data/maps/VermilionCity_PokemonCenter_1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_NURSE", "x": 7, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MAN", "x": 4, "y": 8, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_HIKER", "x": 12, "y": 5, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 14, "y": 4, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_F", "x": 6, "y": 4, @@ -81,6 +86,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "0", "x": 2, "y": 1, @@ -94,6 +100,7 @@ "flag": "FLAG_HIDE_FAME_CHECKER_LT_SURGE_JOURNAL" }, { + "type": "object", "graphics_id": "0", "x": 3, "y": 1, @@ -113,28 +120,28 @@ "y": 8, "elevation": 3, "dest_map": "MAP_VERMILION_CITY", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 7, "y": 8, "elevation": 3, "dest_map": "MAP_VERMILION_CITY", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 8, "y": 8, "elevation": 3, "dest_map": "MAP_VERMILION_CITY", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 1, "y": 6, "elevation": 4, "dest_map": "MAP_VERMILION_CITY_POKEMON_CENTER_2F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/VermilionCity_PokemonCenter_2F/map.json b/data/maps/VermilionCity_PokemonCenter_2F/map.json index 8866e68b4..d9e4b1808 100644 --- a/data/maps/VermilionCity_PokemonCenter_2F/map.json +++ b/data/maps/VermilionCity_PokemonCenter_2F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 6, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 2, "y": 2, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 10, "y": 2, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MG_DELIVERYMAN", "x": 1, "y": 2, @@ -74,21 +78,21 @@ "y": 6, "elevation": 4, "dest_map": "MAP_VERMILION_CITY_POKEMON_CENTER_1F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 5, "y": 1, "elevation": 0, "dest_map": "MAP_UNION_ROOM", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 9, "y": 1, "elevation": 0, "dest_map": "MAP_TRADE_CENTER", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/VermilionCity_PokemonFanClub/map.json b/data/maps/VermilionCity_PokemonFanClub/map.json index b5df8639c..2ab3825ad 100644 --- a/data/maps/VermilionCity_PokemonFanClub/map.json +++ b/data/maps/VermilionCity_PokemonFanClub/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN", "x": 5, "y": 4, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WORKER_F", "x": 6, "y": 4, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PIKACHU", "x": 7, "y": 6, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SEEL", "x": 4, "y": 6, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_1", "x": 4, "y": 5, @@ -81,6 +86,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_FAT_MAN", "x": 7, "y": 5, @@ -100,21 +106,21 @@ "y": 10, "elevation": 3, "dest_map": "MAP_VERMILION_CITY", - "dest_warp_id": 5 + "dest_warp_id": "5" }, { "x": 5, "y": 10, "elevation": 3, "dest_map": "MAP_VERMILION_CITY", - "dest_warp_id": 5 + "dest_warp_id": "5" }, { "x": 6, "y": 10, "elevation": 3, "dest_map": "MAP_VERMILION_CITY", - "dest_warp_id": 5 + "dest_warp_id": "5" } ], "coord_events": [], diff --git a/data/maps/VermilionCity_PokemonFanClub/scripts.inc b/data/maps/VermilionCity_PokemonFanClub/scripts.inc index 1ef77430e..b5c9e005c 100644 --- a/data/maps/VermilionCity_PokemonFanClub/scripts.inc +++ b/data/maps/VermilionCity_PokemonFanClub/scripts.inc @@ -57,7 +57,7 @@ VermilionCity_PokemonFanClub_EventScript_Woman:: goto_if_set SPOKE_TO_FAT_MAN_LAST, VermilionCity_PokemonFanClub_EventScript_WomanSpokeToFatMan msgbox VermilionCity_PokemonFanClub_Text_AdoreMySeel closemessage - applymovement LOCALID_WOMAN, Movement_FaceOriginalDirection + applymovement LOCALID_WOMAN, Common_Movement_FaceOriginalDirection waitmovement 0 setflag SPOKE_TO_WOMAN_LAST release @@ -66,7 +66,7 @@ VermilionCity_PokemonFanClub_EventScript_Woman:: VermilionCity_PokemonFanClub_EventScript_WomanSpokeToFatMan:: msgbox VermilionCity_PokemonFanClub_Text_SeelFarMoreAttractive closemessage - applymovement LOCALID_WOMAN, Movement_FaceOriginalDirection + applymovement LOCALID_WOMAN, Common_Movement_FaceOriginalDirection waitmovement 0 clearflag SPOKE_TO_FAT_MAN_LAST release @@ -78,7 +78,7 @@ VermilionCity_PokemonFanClub_EventScript_FatMan:: goto_if_set SPOKE_TO_WOMAN_LAST, VermilionCity_PokemonFanClub_EventScript_FatManSpokeToWoman msgbox VermilionCity_PokemonFanClub_Text_AdmirePikachusTail closemessage - applymovement LOCALID_FAT_MAN, Movement_FaceOriginalDirection + applymovement LOCALID_FAT_MAN, Common_Movement_FaceOriginalDirection waitmovement 0 setflag SPOKE_TO_FAT_MAN_LAST release @@ -87,7 +87,7 @@ VermilionCity_PokemonFanClub_EventScript_FatMan:: VermilionCity_PokemonFanClub_EventScript_FatManSpokeToWoman:: msgbox VermilionCity_PokemonFanClub_Text_PikachuTwiceAsCute closemessage - applymovement LOCALID_FAT_MAN, Movement_FaceOriginalDirection + applymovement LOCALID_FAT_MAN, Common_Movement_FaceOriginalDirection waitmovement 0 clearflag SPOKE_TO_WOMAN_LAST release diff --git a/data/maps/VictoryRoad_1F/map.json b/data/maps/VictoryRoad_1F/map.json index 45801a27c..069f4213a 100644 --- a/data/maps/VictoryRoad_1F/map.json +++ b/data/maps/VictoryRoad_1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_M", "x": 5, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_F", "x": 14, "y": 6, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 12, "y": 3, @@ -55,6 +58,7 @@ "flag": "FLAG_HIDE_VICTORY_ROAD_1F_RARE_CANDY" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 14, "y": 1, @@ -68,6 +72,7 @@ "flag": "FLAG_HIDE_VICTORY_ROAD_1F_TM02" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 7, "y": 18, @@ -81,6 +86,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 4, "y": 12, @@ -94,6 +100,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 16, "y": 3, @@ -113,14 +120,14 @@ "y": 2, "elevation": 3, "dest_map": "MAP_VICTORY_ROAD_2F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 11, "y": 20, "elevation": 3, "dest_map": "MAP_ROUTE23", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [ @@ -141,7 +148,7 @@ "y": 12, "elevation": 0, "item": "ITEM_ULTRA_BALL", - "flag": "HIDDEN_ITEM_VICTORY_ROAD_1F_ULTRA_BALL", + "flag": "FLAG_HIDDEN_ITEM_VICTORY_ROAD_1F_ULTRA_BALL", "quantity": 1, "underfoot": false }, @@ -151,7 +158,7 @@ "y": 1, "elevation": 0, "item": "ITEM_FULL_RESTORE", - "flag": "HIDDEN_ITEM_VICTORY_ROAD_1F_FULL_RESTORE", + "flag": "FLAG_HIDDEN_ITEM_VICTORY_ROAD_1F_FULL_RESTORE", "quantity": 1, "underfoot": false } diff --git a/data/maps/VictoryRoad_2F/map.json b/data/maps/VictoryRoad_2F/map.json index 0c389ff08..ab71c632d 100644 --- a/data/maps/VictoryRoad_2F/map.json +++ b/data/maps/VictoryRoad_2F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SUPER_NERD", "x": 7, "y": 4, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BLACKBELT", "x": 20, "y": 11, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKER", "x": 31, "y": 16, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MAN", "x": 26, "y": 6, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ROCKER", "x": 36, "y": 5, @@ -81,6 +86,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 17, "y": 6, @@ -94,6 +100,7 @@ "flag": "FLAG_HIDE_VICTORY_ROAD_2F_GUARD_SPEC" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 40, "y": 7, @@ -107,6 +114,7 @@ "flag": "FLAG_HIDE_VICTORY_ROAD_2F_TM07" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 25, "y": 13, @@ -120,6 +128,7 @@ "flag": "FLAG_HIDE_VICTORY_ROAD_2F_FULL_HEAL" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 14, "y": 13, @@ -133,6 +142,7 @@ "flag": "FLAG_HIDE_VICTORY_ROAD_2F_TM37" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 8, "y": 7, @@ -146,6 +156,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 6, "y": 17, @@ -159,6 +170,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 33, "y": 19, @@ -172,6 +184,7 @@ "flag": "FLAG_HIDE_VICTORY_ROAD_2F_BOULDER" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_M", "x": 40, "y": 9, @@ -191,63 +204,63 @@ "y": 9, "elevation": 3, "dest_map": "MAP_VICTORY_ROAD_1F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 3, "y": 3, "elevation": 3, "dest_map": "MAP_VICTORY_ROAD_3F", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 34, "y": 9, "elevation": 3, "dest_map": "MAP_VICTORY_ROAD_3F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 38, "y": 9, "elevation": 3, "dest_map": "MAP_VICTORY_ROAD_3F", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 36, "y": 17, "elevation": 4, "dest_map": "MAP_VICTORY_ROAD_3F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 49, "y": 13, "elevation": 0, "dest_map": "MAP_ROUTE23", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 48, "y": 12, "elevation": 3, "dest_map": "MAP_ROUTE23", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 47, "y": 13, "elevation": 0, "dest_map": "MAP_ROUTE23", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 34, "y": 19, "elevation": 3, "dest_map": "MAP_VICTORY_ROAD_3F", - "dest_warp_id": 4 + "dest_warp_id": "4" } ], "coord_events": [ diff --git a/data/maps/VictoryRoad_3F/map.json b/data/maps/VictoryRoad_3F/map.json index 6f21bdd56..1c62f8a19 100644 --- a/data/maps/VictoryRoad_3F/map.json +++ b/data/maps/VictoryRoad_3F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_M", "x": 40, "y": 7, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_F", "x": 21, "y": 5, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_M", "x": 10, "y": 17, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_F", "x": 11, "y": 16, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 38, "y": 7, @@ -81,6 +86,7 @@ "flag": "FLAG_HIDE_VICTORY_ROAD_3F_MAX_REVIVE" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 12, "y": 9, @@ -94,6 +100,7 @@ "flag": "FLAG_HIDE_VICTORY_ROAD_3F_TM50" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 19, "y": 15, @@ -107,6 +114,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 33, "y": 18, @@ -120,6 +128,7 @@ "flag": "FLAG_HIDE_VICTORY_ROAD_3F_BOULDER" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 35, "y": 13, @@ -133,6 +142,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER", "x": 32, "y": 5, @@ -146,6 +156,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_M", "x": 38, "y": 13, @@ -159,6 +170,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_F", "x": 39, "y": 13, @@ -178,35 +190,35 @@ "y": 2, "elevation": 3, "dest_map": "MAP_VICTORY_ROAD_2F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 34, "y": 9, "elevation": 3, "dest_map": "MAP_VICTORY_ROAD_2F", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 37, "y": 10, "elevation": 3, "dest_map": "MAP_VICTORY_ROAD_2F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 39, "y": 17, "elevation": 3, "dest_map": "MAP_VICTORY_ROAD_2F", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 34, "y": 18, "elevation": 3, "dest_map": "MAP_VICTORY_ROAD_2F", - "dest_warp_id": 8 + "dest_warp_id": "8" } ], "coord_events": [ diff --git a/data/maps/ViridianCity/map.json b/data/maps/ViridianCity/map.json index 1254d1b83..ccd10d432 100644 --- a/data/maps/ViridianCity/map.json +++ b/data/maps/ViridianCity/map.json @@ -32,6 +32,7 @@ ], "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_FAT_MAN", "x": 8, "y": 26, @@ -45,6 +46,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 11, "y": 24, @@ -58,6 +60,7 @@ "flag": "FLAG_TEMP_11" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_OLD_MAN_1", "x": 34, "y": 11, @@ -71,6 +74,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_VAR_0", "x": 21, "y": 6, @@ -84,6 +88,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_3", "x": 20, "y": 12, @@ -97,6 +102,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 33, "y": 26, @@ -110,6 +116,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BOY", "x": 16, "y": 22, @@ -123,6 +130,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CUT_TREE", "x": 18, "y": 5, @@ -136,6 +144,7 @@ "flag": "FLAG_TEMP_12" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 17, "y": 5, @@ -155,35 +164,35 @@ "y": 26, "elevation": 0, "dest_map": "MAP_VIRIDIAN_CITY_POKEMON_CENTER_1F", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 25, "y": 11, "elevation": 3, "dest_map": "MAP_VIRIDIAN_CITY_HOUSE", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 36, "y": 10, "elevation": 0, "dest_map": "MAP_VIRIDIAN_CITY_GYM", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 25, "y": 18, "elevation": 0, "dest_map": "MAP_VIRIDIAN_CITY_SCHOOL", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 36, "y": 19, "elevation": 0, "dest_map": "MAP_VIRIDIAN_CITY_MART", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [ diff --git a/data/maps/ViridianCity/scripts.inc b/data/maps/ViridianCity/scripts.inc index 85edc6686..5793034d9 100644 --- a/data/maps/ViridianCity/scripts.inc +++ b/data/maps/ViridianCity/scripts.inc @@ -43,7 +43,7 @@ ViridianCity_EventScript_TryUnlockGym:: ViridianCity_EventScript_GymDoorLocked:: lockall textcolor NPC_TEXT_COLOR_NEUTRAL - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterUp + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterUp waitmovement 0 delay 20 msgbox ViridianCity_Text_GymDoorsAreLocked @@ -88,7 +88,7 @@ ViridianCity_EventScript_OldMan:: goto_if_eq VAR_MAP_SCENE_VIRIDIAN_CITY_GYM_DOOR, 1, ViridianCity_EventScript_OldManGymLeaderReturned msgbox ViridianCity_Text_GymClosedWonderWhoLeaderIs closemessage - applymovement LOCALID_OLD_MAN, Movement_FaceOriginalDirection + applymovement LOCALID_OLD_MAN, Common_Movement_FaceOriginalDirection waitmovement 0 release end @@ -180,7 +180,7 @@ ViridianCity_EventScript_Woman:: ViridianCity_EventScript_WomanRoadBlocked:: msgbox ViridianCity_Text_GrandpaHasntHadCoffeeYet closemessage - applymovement LOCALID_WOMAN, Movement_FaceOriginalDirection + applymovement LOCALID_WOMAN, Common_Movement_FaceOriginalDirection waitmovement 0 release end @@ -206,9 +206,9 @@ ViridianCity_Movement_WalkDown:: ViridianCity_EventScript_TutorialTriggerLeft:: lockall textcolor NPC_TEXT_COLOR_MALE - applymovement LOCALID_TUTORIAL_MAN, Movement_WalkInPlaceFasterLeft + applymovement LOCALID_TUTORIAL_MAN, Common_Movement_WalkInPlaceFasterLeft waitmovement 0 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterRight waitmovement 0 call ViridianCity_EventScript_DoTutorialBattle release @@ -217,9 +217,9 @@ ViridianCity_EventScript_TutorialTriggerLeft:: ViridianCity_EventScript_TutorialTriggerRight:: lockall textcolor NPC_TEXT_COLOR_MALE - applymovement LOCALID_TUTORIAL_MAN, Movement_WalkInPlaceFasterRight + applymovement LOCALID_TUTORIAL_MAN, Common_Movement_WalkInPlaceFasterRight waitmovement 0 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterLeft + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterLeft waitmovement 0 call ViridianCity_EventScript_DoTutorialBattle release diff --git a/data/maps/ViridianCity_Gym/map.json b/data/maps/ViridianCity_Gym/map.json index b0e1599f5..12b470ba7 100644 --- a/data/maps/ViridianCity_Gym/map.json +++ b/data/maps/ViridianCity_Gym/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BLACKBELT", "x": 10, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_M", "x": 12, "y": 10, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BLACKBELT", "x": 11, "y": 14, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MAN", "x": 10, "y": 10, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MAN", "x": 2, "y": 21, @@ -81,6 +86,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BLACKBELT", "x": 3, "y": 11, @@ -94,6 +100,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_M", "x": 6, "y": 8, @@ -107,6 +114,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GIOVANNI", "x": 2, "y": 2, @@ -120,6 +128,7 @@ "flag": "FLAG_HIDE_VIRIDIAN_GIOVANNI" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_COOLTRAINER_M", "x": 13, "y": 7, @@ -133,6 +142,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GYM_GUY", "x": 16, "y": 20, @@ -152,21 +162,21 @@ "y": 22, "elevation": 3, "dest_map": "MAP_VIRIDIAN_CITY", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 17, "y": 22, "elevation": 3, "dest_map": "MAP_VIRIDIAN_CITY", - "dest_warp_id": 2 + "dest_warp_id": "2" }, { "x": 18, "y": 22, "elevation": 3, "dest_map": "MAP_VIRIDIAN_CITY", - "dest_warp_id": 2 + "dest_warp_id": "2" } ], "coord_events": [], @@ -193,7 +203,7 @@ "y": 2, "elevation": 3, "item": "ITEM_MACHO_BRACE", - "flag": "HIDDEN_ITEM_VIRIDIAN_CITY_GYM_MACHO_BRACE", + "flag": "FLAG_HIDDEN_ITEM_VIRIDIAN_CITY_GYM_MACHO_BRACE", "quantity": 1, "underfoot": true } diff --git a/data/maps/ViridianCity_House/map.json b/data/maps/ViridianCity_House/map.json index 72273ebd7..7448c7a66 100644 --- a/data/maps/ViridianCity_House/map.json +++ b/data/maps/ViridianCity_House/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BALDING_MAN", "x": 7, "y": 4, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LITTLE_GIRL", "x": 2, "y": 5, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_SPEAROW", "x": 6, "y": 6, @@ -61,21 +64,21 @@ "y": 7, "elevation": 0, "dest_map": "MAP_VIRIDIAN_CITY", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 4, "y": 7, "elevation": 0, "dest_map": "MAP_VIRIDIAN_CITY", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 5, "y": 7, "elevation": 3, "dest_map": "MAP_VIRIDIAN_CITY", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], diff --git a/data/maps/ViridianCity_Mart/map.json b/data/maps/ViridianCity_Mart/map.json index 0428205d0..23cbb6e81 100644 --- a/data/maps/ViridianCity_Mart/map.json +++ b/data/maps/ViridianCity_Mart/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CLERK", "x": 2, "y": 3, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 6, "y": 2, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_1", "x": 9, "y": 5, @@ -61,21 +64,21 @@ "y": 7, "elevation": 3, "dest_map": "MAP_VIRIDIAN_CITY", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 4, "y": 7, "elevation": 3, "dest_map": "MAP_VIRIDIAN_CITY", - "dest_warp_id": 4 + "dest_warp_id": "4" }, { "x": 5, "y": 7, "elevation": 3, "dest_map": "MAP_VIRIDIAN_CITY", - "dest_warp_id": 4 + "dest_warp_id": "4" } ], "coord_events": [], diff --git a/data/maps/ViridianCity_Mart/scripts.inc b/data/maps/ViridianCity_Mart/scripts.inc index 6ff805858..4a2ed71d1 100644 --- a/data/maps/ViridianCity_Mart/scripts.inc +++ b/data/maps/ViridianCity_Mart/scripts.inc @@ -21,7 +21,7 @@ ViridianCity_Mart_OnFrame:: ViridianCity_Mart_EventScript_ParcelScene:: lockall textcolor NPC_TEXT_COLOR_MALE - applymovement LOCALID_CLERK, Movement_WalkInPlaceFasterDown + applymovement LOCALID_CLERK, Common_Movement_WalkInPlaceFasterDown waitmovement 0 msgbox ViridianCity_Mart_Text_YouCameFromPallet closemessage diff --git a/data/maps/ViridianCity_PokemonCenter_1F/map.json b/data/maps/ViridianCity_PokemonCenter_1F/map.json index 935bcd10b..84ad95c4d 100644 --- a/data/maps/ViridianCity_PokemonCenter_1F/map.json +++ b/data/maps/ViridianCity_PokemonCenter_1F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_NURSE", "x": 7, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_GENTLEMAN", "x": 12, "y": 5, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BOY", "x": 4, "y": 7, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 2, "y": 3, @@ -74,28 +78,28 @@ "y": 8, "elevation": 3, "dest_map": "MAP_VIRIDIAN_CITY", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 7, "y": 8, "elevation": 3, "dest_map": "MAP_VIRIDIAN_CITY", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 8, "y": 8, "elevation": 3, "dest_map": "MAP_VIRIDIAN_CITY", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 1, "y": 6, "elevation": 4, "dest_map": "MAP_VIRIDIAN_CITY_POKEMON_CENTER_2F", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/ViridianCity_PokemonCenter_2F/map.json b/data/maps/ViridianCity_PokemonCenter_2F/map.json index d34ec1462..6458e0f52 100644 --- a/data/maps/ViridianCity_PokemonCenter_2F/map.json +++ b/data/maps/ViridianCity_PokemonCenter_2F/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 6, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 2, "y": 2, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_CABLE_CLUB_RECEPTIONIST", "x": 10, "y": 2, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_MG_DELIVERYMAN", "x": 1, "y": 2, @@ -74,21 +78,21 @@ "y": 6, "elevation": 4, "dest_map": "MAP_VIRIDIAN_CITY_POKEMON_CENTER_1F", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 5, "y": 1, "elevation": 0, "dest_map": "MAP_UNION_ROOM", - "dest_warp_id": 0 + "dest_warp_id": "0" }, { "x": 9, "y": 1, "elevation": 0, "dest_map": "MAP_TRADE_CENTER", - "dest_warp_id": 0 + "dest_warp_id": "0" } ], "coord_events": [], diff --git a/data/maps/ViridianCity_School/map.json b/data/maps/ViridianCity_School/map.json index 7dd444ac5..195161147 100644 --- a/data/maps/ViridianCity_School/map.json +++ b/data/maps/ViridianCity_School/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_WOMAN_2", "x": 6, "y": 2, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_LASS", "x": 4, "y": 5, @@ -48,21 +50,21 @@ "y": 7, "elevation": 0, "dest_map": "MAP_VIRIDIAN_CITY", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 4, "y": 7, "elevation": 0, "dest_map": "MAP_VIRIDIAN_CITY", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 5, "y": 7, "elevation": 3, "dest_map": "MAP_VIRIDIAN_CITY", - "dest_warp_id": 3 + "dest_warp_id": "3" } ], "coord_events": [], diff --git a/data/maps/ViridianCity_School/scripts.inc b/data/maps/ViridianCity_School/scripts.inc index 658dfdf0c..fdb02d481 100644 --- a/data/maps/ViridianCity_School/scripts.inc +++ b/data/maps/ViridianCity_School/scripts.inc @@ -9,7 +9,7 @@ ViridianCity_School_EventScript_Lass:: faceplayer msgbox ViridianCity_School_Text_TryingToMemorizeNotes closemessage - applymovement LOCALID_LASS, Movement_WalkInPlaceFasterUp + applymovement LOCALID_LASS, Common_Movement_WalkInPlaceFasterUp waitmovement 0 release end @@ -19,7 +19,7 @@ ViridianCity_School_EventScript_Woman:: faceplayer msgbox ViridianCity_School_Text_ReadBlackboardCarefully closemessage - applymovement LOCALID_WOMAN, Movement_FaceOriginalDirection + applymovement LOCALID_WOMAN, Common_Movement_FaceOriginalDirection waitmovement 0 release end @@ -36,7 +36,7 @@ ViridianCity_School_EventScript_Notebook:: msgbox ViridianCity_School_Text_TurnThePage, MSGBOX_YESNO goto_if_eq VAR_RESULT, NO, ViridianCity_School_EventScript_StopReadingNotebook msgbox ViridianCity_School_Text_NotebookFourthPage - applymovement LOCALID_LASS, Movement_WalkInPlaceFasterUp + applymovement LOCALID_LASS, Common_Movement_WalkInPlaceFasterUp waitmovement 0 textcolor NPC_TEXT_COLOR_FEMALE msgbox ViridianCity_School_Text_HeyDontLookAtMyNotes diff --git a/data/maps/ViridianForest/map.json b/data/maps/ViridianForest/map.json index f8d799501..2d42aab09 100644 --- a/data/maps/ViridianForest/map.json +++ b/data/maps/ViridianForest/map.json @@ -16,6 +16,7 @@ "connections": null, "object_events": [ { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_YOUNGSTER", "x": 29, "y": 58, @@ -29,6 +30,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BOY", "x": 45, "y": 58, @@ -42,6 +44,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BUG_CATCHER", "x": 47, "y": 45, @@ -55,6 +58,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BUG_CATCHER", "x": 47, "y": 29, @@ -68,6 +72,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BUG_CATCHER", "x": 7, "y": 22, @@ -81,6 +86,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 5, "y": 41, @@ -94,6 +100,7 @@ "flag": "FLAG_HIDE_VIRIDIAN_FOREST_POKE_BALL" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 40, "y": 21, @@ -107,6 +114,7 @@ "flag": "FLAG_HIDE_VIRIDIAN_FOREST_ANTIDOTE" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 21, "y": 34, @@ -120,6 +128,7 @@ "flag": "FLAG_HIDE_VIRIDIAN_FOREST_POTION" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BUG_CATCHER", "x": 43, "y": 6, @@ -133,6 +142,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_BUG_CATCHER", "x": 16, "y": 5, @@ -146,6 +156,7 @@ "flag": "0" }, { + "type": "object", "graphics_id": "OBJ_EVENT_GFX_ITEM_BALL", "x": 49, "y": 60, @@ -165,42 +176,42 @@ "y": 62, "elevation": 3, "dest_map": "MAP_ROUTE2_VIRIDIAN_FOREST_SOUTH_ENTRANCE", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 28, "y": 62, "elevation": 3, "dest_map": "MAP_ROUTE2_VIRIDIAN_FOREST_SOUTH_ENTRANCE", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 5, "y": 9, "elevation": 3, "dest_map": "MAP_ROUTE2_VIRIDIAN_FOREST_NORTH_ENTRANCE", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 6, "y": 9, "elevation": 3, "dest_map": "MAP_ROUTE2_VIRIDIAN_FOREST_NORTH_ENTRANCE", - "dest_warp_id": 1 + "dest_warp_id": "1" }, { "x": 30, "y": 62, "elevation": 3, "dest_map": "MAP_ROUTE2_VIRIDIAN_FOREST_SOUTH_ENTRANCE", - "dest_warp_id": 3 + "dest_warp_id": "3" }, { "x": 4, "y": 9, "elevation": 3, "dest_map": "MAP_ROUTE2_VIRIDIAN_FOREST_NORTH_ENTRANCE", - "dest_warp_id": 1 + "dest_warp_id": "1" } ], "coord_events": [], @@ -259,7 +270,7 @@ "y": 22, "elevation": 3, "item": "ITEM_POTION", - "flag": "HIDDEN_ITEM_VIRIDIAN_FOREST_POTION", + "flag": "FLAG_HIDDEN_ITEM_VIRIDIAN_FOREST_POTION", "quantity": 1, "underfoot": false }, @@ -269,7 +280,7 @@ "y": 57, "elevation": 0, "item": "ITEM_ANTIDOTE", - "flag": "HIDDEN_ITEM_VIRIDIAN_FOREST_ANTIDOTE", + "flag": "FLAG_HIDDEN_ITEM_VIRIDIAN_FOREST_ANTIDOTE", "quantity": 1, "underfoot": false } diff --git a/data/scripts/cable_club.inc b/data/scripts/cable_club.inc index b225958a3..afa923a0a 100644 --- a/data/scripts/cable_club.inc +++ b/data/scripts/cable_club.inc @@ -181,7 +181,7 @@ CableClub_EventScript_PlayerExitLinkRoom:: CableClub_EventScript_Tutorial:: lockall textcolor NPC_TEXT_COLOR_FEMALE - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterUp + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterUp waitmovement 0 msgbox CableClub_Text_FirstTimeRightThisWay closemessage @@ -275,12 +275,12 @@ CableClub_EventScript_TryEnterColosseum:: special TryBattleLinkup waitstate call EventScript_RestorePrevTextColor - goto_if_eq VAR_RESULT, 1, CableClub_EventScript_EnterColosseum - goto_if_eq VAR_RESULT, 2, CableClub_EventScript_AbortLinkSomeoneNotReady - goto_if_eq VAR_RESULT, 3, CableClub_EventScript_AbortLinkDifferentSelections - goto_if_eq VAR_RESULT, 4, CableClub_EventScript_AbortLinkIncorrectNumberOfBattlers - goto_if_eq VAR_RESULT, 5, CableClub_EventScript_AbortLink - goto_if_eq VAR_RESULT, 6, CableClub_EventScript_AbortLinkConnectionError + goto_if_eq VAR_RESULT, LINKUP_SUCCESS, CableClub_EventScript_EnterColosseum + goto_if_eq VAR_RESULT, LINKUP_SOMEONE_NOT_READY, CableClub_EventScript_AbortLinkSomeoneNotReady + goto_if_eq VAR_RESULT, LINKUP_DIFF_SELECTIONS, CableClub_EventScript_AbortLinkDifferentSelections + goto_if_eq VAR_RESULT, LINKUP_WRONG_NUM_PLAYERS, CableClub_EventScript_AbortLinkIncorrectNumberOfBattlers + goto_if_eq VAR_RESULT, LINKUP_FAILED, CableClub_EventScript_AbortLink + goto_if_eq VAR_RESULT, LINKUP_CONNECTION_ERROR, CableClub_EventScript_AbortLinkConnectionError end CableClub_EventScript_EnterColosseum:: @@ -373,14 +373,14 @@ CableClub_EventScript_TradeCenter:: special TryTradeLinkup waitstate call EventScript_RestorePrevTextColor - goto_if_eq VAR_RESULT, 1, CableClub_EventScript_EnterTradeCenter - goto_if_eq VAR_RESULT, 2, CableClub_EventScript_AbortLinkSomeoneNotReady - goto_if_eq VAR_RESULT, 3, CableClub_EventScript_AbortLinkDifferentSelections - goto_if_eq VAR_RESULT, 4, CableClub_EventScript_AbortLinkIncorrectNumberOfParticipants - goto_if_eq VAR_RESULT, 5, CableClub_EventScript_AbortLink - goto_if_eq VAR_RESULT, 6, CableClub_EventScript_AbortLinkConnectionError - goto_if_eq VAR_RESULT, 7, CableClub_EventScript_AbortLinkPlayerNotReady - goto_if_eq VAR_RESULT, 9, CableClub_EventScript_AbortLinkOtherTrainerNotReady + goto_if_eq VAR_RESULT, LINKUP_SUCCESS, CableClub_EventScript_EnterTradeCenter + goto_if_eq VAR_RESULT, LINKUP_SOMEONE_NOT_READY, CableClub_EventScript_AbortLinkSomeoneNotReady + goto_if_eq VAR_RESULT, LINKUP_DIFF_SELECTIONS, CableClub_EventScript_AbortLinkDifferentSelections + goto_if_eq VAR_RESULT, LINKUP_WRONG_NUM_PLAYERS, CableClub_EventScript_AbortLinkIncorrectNumberOfParticipants + goto_if_eq VAR_RESULT, LINKUP_FAILED, CableClub_EventScript_AbortLink + goto_if_eq VAR_RESULT, LINKUP_CONNECTION_ERROR, CableClub_EventScript_AbortLinkConnectionError + goto_if_eq VAR_RESULT, LINKUP_PLAYER_NOT_READY, CableClub_EventScript_AbortLinkPlayerNotReady + goto_if_eq VAR_RESULT, LINKUP_PARTNER_NOT_READY, CableClub_EventScript_AbortLinkOtherTrainerNotReady end CableClub_EventScript_EnterTradeCenter:: @@ -963,17 +963,17 @@ CableClub_EventScript_ChooseLinkLeaderFrom2:: CableClub_EventScript_TryLeadGroup2Players:: call CableClub_EventScript_TryBecomeLinkLeader - goto_if_eq VAR_RESULT, 1, CableClub_EventScript_EnterWirelessLinkRoom - goto_if_eq VAR_RESULT, 5, CableClub_EventScript_ChooseLinkLeaderFrom2 - goto_if_eq VAR_RESULT, 8, CableClub_EventScript_TryLeadGroup2Players + goto_if_eq VAR_RESULT, LINKUP_SUCCESS, CableClub_EventScript_EnterWirelessLinkRoom + goto_if_eq VAR_RESULT, LINKUP_FAILED, CableClub_EventScript_ChooseLinkLeaderFrom2 + goto_if_eq VAR_RESULT, LINKUP_RETRY_ROLE_ASSIGN, CableClub_EventScript_TryLeadGroup2Players release return CableClub_EventScript_TryJoinGroup2Players:: call CableClub_EventScript_TryJoinLinkGroup - goto_if_eq VAR_RESULT, 1, CableClub_EventScript_EnterWirelessLinkRoom - goto_if_eq VAR_RESULT, 5, CableClub_EventScript_ChooseLinkLeaderFrom2 - goto_if_eq VAR_RESULT, 8, CableClub_EventScript_TryJoinGroup2Players + goto_if_eq VAR_RESULT, LINKUP_SUCCESS, CableClub_EventScript_EnterWirelessLinkRoom + goto_if_eq VAR_RESULT, LINKUP_FAILED, CableClub_EventScript_ChooseLinkLeaderFrom2 + goto_if_eq VAR_RESULT, LINKUP_RETRY_ROLE_ASSIGN, CableClub_EventScript_TryJoinGroup2Players release return @@ -992,17 +992,17 @@ CableClub_EventScript_ChooseLinkLeaderFrom4:: CableClub_EventScript_TryLeadGroup4Players:: call CableClub_EventScript_TryBecomeLinkLeader - goto_if_eq VAR_RESULT, 1, CableClub_EventScript_EnterWirelessLinkRoom - goto_if_eq VAR_RESULT, 5, CableClub_EventScript_ChooseLinkLeaderFrom4 - goto_if_eq VAR_RESULT, 8, CableClub_EventScript_TryLeadGroup4Players + goto_if_eq VAR_RESULT, LINKUP_SUCCESS, CableClub_EventScript_EnterWirelessLinkRoom + goto_if_eq VAR_RESULT, LINKUP_FAILED, CableClub_EventScript_ChooseLinkLeaderFrom4 + goto_if_eq VAR_RESULT, LINKUP_RETRY_ROLE_ASSIGN, CableClub_EventScript_TryLeadGroup4Players release return CableClub_EventScript_TryJoinGroup4Players:: call CableClub_EventScript_TryJoinLinkGroup - goto_if_eq VAR_RESULT, 1, CableClub_EventScript_EnterWirelessLinkRoom - goto_if_eq VAR_RESULT, 5, CableClub_EventScript_ChooseLinkLeaderFrom4 - goto_if_eq VAR_RESULT, 8, CableClub_EventScript_TryJoinGroup4Players + goto_if_eq VAR_RESULT, LINKUP_SUCCESS, CableClub_EventScript_EnterWirelessLinkRoom + goto_if_eq VAR_RESULT, LINKUP_FAILED, CableClub_EventScript_ChooseLinkLeaderFrom4 + goto_if_eq VAR_RESULT, LINKUP_RETRY_ROLE_ASSIGN, CableClub_EventScript_TryJoinGroup4Players release return @@ -1021,17 +1021,17 @@ CableClub_EventScript_ChooseLinkLeader:: CableClub_EventScript_TryLeadGroupXPlayers:: call CableClub_EventScript_TryBecomeLinkLeader - goto_if_eq VAR_RESULT, 1, CableClub_EventScript_EnterWirelessLinkRoom - goto_if_eq VAR_RESULT, 5, CableClub_EventScript_ChooseLinkLeader - goto_if_eq VAR_RESULT, 8, CableClub_EventScript_TryLeadGroupXPlayers + goto_if_eq VAR_RESULT, LINKUP_SUCCESS, CableClub_EventScript_EnterWirelessLinkRoom + goto_if_eq VAR_RESULT, LINKUP_FAILED, CableClub_EventScript_ChooseLinkLeader + goto_if_eq VAR_RESULT, LINKUP_RETRY_ROLE_ASSIGN, CableClub_EventScript_TryLeadGroupXPlayers release return CableClub_EventScript_TryJoinGroupXPlayers:: call CableClub_EventScript_TryJoinLinkGroup - goto_if_eq VAR_RESULT, 1, CableClub_EventScript_EnterWirelessLinkRoom - goto_if_eq VAR_RESULT, 5, CableClub_EventScript_ChooseLinkLeader - goto_if_eq VAR_RESULT, 8, CableClub_EventScript_TryJoinGroupXPlayers + goto_if_eq VAR_RESULT, LINKUP_SUCCESS, CableClub_EventScript_EnterWirelessLinkRoom + goto_if_eq VAR_RESULT, LINKUP_FAILED, CableClub_EventScript_ChooseLinkLeader + goto_if_eq VAR_RESULT, LINKUP_RETRY_ROLE_ASSIGN, CableClub_EventScript_TryJoinGroupXPlayers release return @@ -1217,17 +1217,17 @@ CableClub_EventScript_ChooseLinkLeaderMinigame:: CableClub_EventScript_TryBecomeMinigameLinkLeader:: call CableClub_EventScript_TryBecomeLinkLeader - goto_if_eq VAR_RESULT, 1, CableClub_EventScript_EnterMinigame - goto_if_eq VAR_RESULT, 5, CableClub_EventScript_ChooseLinkLeaderMinigame - goto_if_eq VAR_RESULT, 8, CableClub_EventScript_TryBecomeMinigameLinkLeader + goto_if_eq VAR_RESULT, LINKUP_SUCCESS, CableClub_EventScript_EnterMinigame + goto_if_eq VAR_RESULT, LINKUP_FAILED, CableClub_EventScript_ChooseLinkLeaderMinigame + goto_if_eq VAR_RESULT, LINKUP_RETRY_ROLE_ASSIGN, CableClub_EventScript_TryBecomeMinigameLinkLeader release return CableClub_EventScript_TryJoinMinigameLinkGroup:: call CableClub_EventScript_TryJoinLinkGroup - goto_if_eq VAR_RESULT, 1, CableClub_EventScript_EnterMinigame - goto_if_eq VAR_RESULT, 5, CableClub_EventScript_ChooseLinkLeaderMinigame - goto_if_eq VAR_RESULT, 8, CableClub_EventScript_TryJoinMinigameLinkGroup + goto_if_eq VAR_RESULT, LINKUP_SUCCESS, CableClub_EventScript_EnterMinigame + goto_if_eq VAR_RESULT, LINKUP_FAILED, CableClub_EventScript_ChooseLinkLeaderMinigame + goto_if_eq VAR_RESULT, LINKUP_RETRY_ROLE_ASSIGN, CableClub_EventScript_TryJoinMinigameLinkGroup release return diff --git a/data/scripts/hole.inc b/data/scripts/hole.inc index ae64ccf5f..343458e7c 100644 --- a/data/scripts/hole.inc +++ b/data/scripts/hole.inc @@ -19,8 +19,8 @@ EventScript_FallDownHole:: waitstate end -@ TODO: EventScript_FallDownHoleMtPyre in pokeemerald, needs generic name -EventScript_1C1361:: +@ Differs from the script above by assuming the warp destination has already been set +EventScript_DoFallWarp:: lockall delay 20 applymovement OBJ_EVENT_ID_PLAYER, Movement_SetInvisible diff --git a/data/scripts/movement.inc b/data/scripts/movement.inc index 52e5a2c96..51e486794 100644 --- a/data/scripts/movement.inc +++ b/data/scripts/movement.inc @@ -1,55 +1,55 @@ -Movement_QuestionMark:: +Common_Movement_QuestionMark:: emote_question_mark step_end -Movement_ExclamationMark:: +Common_Movement_ExclamationMark:: emote_exclamation_mark step_end -Movement_Delay48:: +Common_Movement_Delay48:: delay_16 delay_16 delay_16 step_end -Movement_FacePlayer:: +Common_Movement_FacePlayer:: face_player step_end @ Unused -Movement_FaceAwayPlayer:: +Common_Movement_FaceAwayPlayer:: face_away_player step_end -Movement_FaceOriginalDirection:: +Common_Movement_FaceOriginalDirection:: face_original_direction step_end -Movement_WalkInPlaceFasterLeft:: +Common_Movement_WalkInPlaceFasterLeft:: walk_in_place_faster_left step_end -Movement_WalkInPlaceFasterUp:: +Common_Movement_WalkInPlaceFasterUp:: walk_in_place_faster_up step_end -Movement_WalkInPlaceFasterRight:: +Common_Movement_WalkInPlaceFasterRight:: walk_in_place_faster_right step_end -Movement_WalkInPlaceFasterDown:: +Common_Movement_WalkInPlaceFasterDown:: walk_in_place_faster_down step_end -Movement_FaceRight:: +Common_Movement_FaceRight:: face_right step_end -Movement_FaceDown:: +Common_Movement_FaceDown:: face_down step_end -Movement_WalkUp5:: +Common_Movement_WalkUp5:: walk_up walk_up walk_up @@ -58,25 +58,25 @@ Movement_WalkUp5:: step_end @ Unused -Movement_WalkUp4:: +Common_Movement_WalkUp4:: walk_up walk_up walk_up walk_up step_end -Movement_Delay32:: +Common_Movement_Delay32:: delay_16 delay_16 step_end @ Unused -Movement_WalkUp:: +Common_Movement_WalkUp:: walk_up step_end @ Unused -Movement_WalkUp2:: +Common_Movement_WalkUp2:: walk_up walk_up step_end diff --git a/data/scripts/pkmn_center_nurse.inc b/data/scripts/pkmn_center_nurse.inc index bec40c40c..f92ff3183 100644 --- a/data/scripts/pkmn_center_nurse.inc +++ b/data/scripts/pkmn_center_nurse.inc @@ -19,11 +19,11 @@ EventScript_PkmnCenterNurse_HealPkmn:: end EventScript_PkmnCenterNurse_TakeAndHealPkmn:: - applymovement VAR_LAST_TALKED, Movement_WalkInPlaceFasterLeft + applymovement VAR_LAST_TALKED, Common_Movement_WalkInPlaceFasterLeft waitmovement 0 dofieldeffect FLDEFF_POKECENTER_HEAL waitfieldeffect FLDEFF_POKECENTER_HEAL - applymovement VAR_LAST_TALKED, Movement_WalkInPlaceFasterDown + applymovement VAR_LAST_TALKED, Common_Movement_WalkInPlaceFasterDown waitmovement 0 special HealPlayerParty return diff --git a/data/scripts/pokemon_league.inc b/data/scripts/pokemon_league.inc index 03295279e..f1d018499 100644 --- a/data/scripts/pokemon_league.inc +++ b/data/scripts/pokemon_league.inc @@ -1,5 +1,5 @@ PokemonLeague_EventScript_OpenDoor:: - applymovement OBJ_EVENT_ID_PLAYER, Movement_Delay32 + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_Delay32 waitmovement 0 playse SE_RS_DOOR call PokemonLeague_EventScript_SetDoorOpen @@ -8,7 +8,7 @@ PokemonLeague_EventScript_OpenDoor:: return PokemonLeague_EventScript_EnterRoom:: - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkUp5 + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkUp5 waitmovement 0 setflag FLAG_TEMP_2 playse SE_UNLOCK @@ -32,7 +32,7 @@ PokemonLeague_EventScript_PreventExit:: end PokemonLeague_EventScript_OpenDoorLance:: - applymovement OBJ_EVENT_ID_PLAYER, Movement_Delay32 + applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_Delay32 waitmovement 0 playse SE_RS_DOOR setmetatile 6, 4, METATILE_PokemonLeague_Door_Top_Open, 1 diff --git a/data/scripts/questionnaire.inc b/data/scripts/questionnaire.inc index f3bb76a3b..dd79200c6 100644 --- a/data/scripts/questionnaire.inc +++ b/data/scripts/questionnaire.inc @@ -15,12 +15,12 @@ EventScript_Questionnaire:: end EventScript_EnableMysteryGift:: - applymovement VAR_0x8008, Movement_FaceDown + applymovement VAR_0x8008, Common_Movement_FaceDown waitmovement 0 playse SE_PIN - applymovement VAR_0x8008, Movement_ExclamationMark + applymovement VAR_0x8008, Common_Movement_ExclamationMark waitmovement 0 - applymovement VAR_0x8008, Movement_Delay48 + applymovement VAR_0x8008, Common_Movement_Delay48 waitmovement 0 msgbox Text_YouKnowThoseWords setflag FLAG_SYS_MYSTERY_GIFT_ENABLED @@ -37,7 +37,7 @@ EventScript_DeclineQuestionnaire:: end EventScript_TookQuestionnaire:: - applymovement VAR_0x8008, Movement_FaceDown + applymovement VAR_0x8008, Common_Movement_FaceDown waitmovement 0 msgbox Text_QuestionnaireThankYou releaseall diff --git a/data/scripts/route23.inc b/data/scripts/route23.inc index 7a7b838a0..9d9a616cb 100644 --- a/data/scripts/route23.inc +++ b/data/scripts/route23.inc @@ -114,7 +114,7 @@ Route23_EventScript_RecognizeBadge:: Route23_EventScript_BadgeGuardTrigger:: textcolor NPC_TEXT_COLOR_MALE - applymovement VAR_0x8009, Movement_WalkInPlaceFasterLeft + applymovement VAR_0x8009, Common_Movement_WalkInPlaceFasterLeft waitmovement 0 switch VAR_TEMP_1 case 1, Route23_EventScript_CheckBoulderBadgeTrigger @@ -173,7 +173,7 @@ Route23_EventScript_MissingBoulderBadgeTrigger:: msgbox Text_CantLetYouPass closemessage applymovement OBJ_EVENT_ID_PLAYER, Route23_Movement_WalkDown - applymovement VAR_0x8009, Movement_WalkInPlaceFasterDown + applymovement VAR_0x8009, Common_Movement_WalkInPlaceFasterDown waitmovement 0 releaseall end @@ -186,7 +186,7 @@ Route23_EventScript_MissingBadgeTrigger:: closemessage waitse applymovement OBJ_EVENT_ID_PLAYER, Route23_Movement_WalkDown - applymovement VAR_0x8009, Movement_WalkInPlaceFasterDown + applymovement VAR_0x8009, Common_Movement_WalkInPlaceFasterDown waitmovement 0 releaseall end diff --git a/data/scripts/seagallop.inc b/data/scripts/seagallop.inc index 9cbd502b6..f2c8bae3a 100644 --- a/data/scripts/seagallop.inc +++ b/data/scripts/seagallop.inc @@ -117,7 +117,7 @@ EventScript_CancelSail:: VermilionCity_EventScript_WalkUpPier:: closemessage - applymovement LOCALID_FERRY_SAILOR, Movement_FaceOriginalDirection + applymovement LOCALID_FERRY_SAILOR, Common_Movement_FaceOriginalDirection applymovement OBJ_EVENT_ID_PLAYER, VermilionCity_Movement_WalkUp waitmovement 0 releaseall diff --git a/data/scripts/trainer_card.inc b/data/scripts/trainer_card.inc index 09a4c38f5..3bb906554 100644 --- a/data/scripts/trainer_card.inc +++ b/data/scripts/trainer_card.inc @@ -74,12 +74,12 @@ FourIsland_House2_EventScript_StickerMan:: FourIsland_House2_EventScript_MeetStickerMan:: setflag FLAG_MET_STICKER_MAN msgbox FourIsland_House2_Text_WishICouldShowOffStickers - applymovement LOCALID_STICKER_MAN, Movement_FacePlayer + applymovement LOCALID_STICKER_MAN, Common_Movement_FacePlayer waitmovement 0 playse SE_PIN - applymovement LOCALID_STICKER_MAN, Movement_ExclamationMark + applymovement LOCALID_STICKER_MAN, Common_Movement_ExclamationMark waitmovement 0 - applymovement LOCALID_STICKER_MAN, Movement_Delay48 + applymovement LOCALID_STICKER_MAN, Common_Movement_Delay48 waitmovement 0 goto_if_eq VAR_0x8008, 0, FourIsland_House2_EventScript_StickerManNothingToBrag message FourIsland_House2_Text_GiveYouStickerIfYouBrag @@ -88,7 +88,7 @@ FourIsland_House2_EventScript_MeetStickerMan:: end FourIsland_House2_EventScript_StickerManAskForBrag:: - applymovement LOCALID_STICKER_MAN, Movement_FacePlayer + applymovement LOCALID_STICKER_MAN, Common_Movement_FacePlayer waitmovement 0 goto_if_questlog EventScript_ReleaseEnd special QuestLog_CutRecording diff --git a/data/scripts/trainer_tower.inc b/data/scripts/trainer_tower.inc index fe239dd1d..e64f9b768 100644 --- a/data/scripts/trainer_tower.inc +++ b/data/scripts/trainer_tower.inc @@ -109,9 +109,9 @@ TrainerTower_EventScript_TriggerBattle:: TrainerTower_EventScript_DoSingleBattle: ttower_encountermusic - applymovement LOCALID_TRAINER_SINGLES, Movement_ExclamationMark + applymovement LOCALID_TRAINER_SINGLES, Common_Movement_ExclamationMark waitmovement 0 - applymovement LOCALID_TRAINER_SINGLES, Movement_Delay48 + applymovement LOCALID_TRAINER_SINGLES, Common_Movement_Delay48 waitmovement 0 setvar DISABLE_SINGLES_TRIGGER, TRUE applymovement LOCALID_TRAINER_SINGLES, TrainerTower_Movement_SingleTrainerApproach @@ -144,9 +144,9 @@ TrainerTower_EventScript_DoKnockoutBattle:: TrainerTower_EventScript_DoKnockoutBattle1: ttower_encountermusic - applymovement LOCALID_TRAINER_KNOCKOUT, Movement_ExclamationMark + applymovement LOCALID_TRAINER_KNOCKOUT, Common_Movement_ExclamationMark waitmovement 0 - applymovement LOCALID_TRAINER_KNOCKOUT, Movement_Delay48 + applymovement LOCALID_TRAINER_KNOCKOUT, Common_Movement_Delay48 waitmovement 0 applymovement LOCALID_TRAINER_KNOCKOUT, TrainerTower_Movement_BottomKnockoutTrainerApproach waitmovement 0 @@ -154,9 +154,9 @@ TrainerTower_EventScript_DoKnockoutBattle1: TrainerTower_EventScript_DoKnockoutBattle2:: ttower_encountermusic - applymovement LOCALID_TRAINER_DOUBLES1, Movement_ExclamationMark + applymovement LOCALID_TRAINER_DOUBLES1, Common_Movement_ExclamationMark waitmovement 0 - applymovement LOCALID_TRAINER_DOUBLES1, Movement_Delay48 + applymovement LOCALID_TRAINER_DOUBLES1, Common_Movement_Delay48 waitmovement 0 applymovement LOCALID_TRAINER_DOUBLES1, TrainerTower_Movement_TopKnockoutTrainerApproach waitmovement 0 @@ -164,9 +164,9 @@ TrainerTower_EventScript_DoKnockoutBattle2:: TrainerTower_EventScript_DoKnockoutBattle3:: ttower_encountermusic - applymovement LOCALID_TRAINER_SINGLES, Movement_ExclamationMark + applymovement LOCALID_TRAINER_SINGLES, Common_Movement_ExclamationMark waitmovement 0 - applymovement LOCALID_TRAINER_SINGLES, Movement_Delay48 + applymovement LOCALID_TRAINER_SINGLES, Common_Movement_Delay48 waitmovement 0 applymovement LOCALID_TRAINER_SINGLES, TrainerTower_Movement_RightKnockoutTrainerApproach waitmovement 0 @@ -339,9 +339,9 @@ TrainerTower_EventScript_DoubleBattleTriggerTop:: ttower_checkdoubles goto_if_ne VAR_RESULT, PLAYER_HAS_TWO_USABLE_MONS, TrainerTower_EventScript_IneligibleForDoubleBattle ttower_encountermusic - applymovement LOCALID_TRAINER_DOUBLES1, Movement_ExclamationMark + applymovement LOCALID_TRAINER_DOUBLES1, Common_Movement_ExclamationMark waitmovement 0 - applymovement LOCALID_TRAINER_DOUBLES1, Movement_Delay48 + applymovement LOCALID_TRAINER_DOUBLES1, Common_Movement_Delay48 goto TrainerTower_EventScript_TriggerDoubleBattle TrainerTower_EventScript_DoubleBattleTriggerBottom:: @@ -349,9 +349,9 @@ TrainerTower_EventScript_DoubleBattleTriggerBottom:: ttower_checkdoubles goto_if_ne VAR_RESULT, PLAYER_HAS_TWO_USABLE_MONS, TrainerTower_EventScript_IneligibleForDoubleBattle ttower_encountermusic - applymovement LOCALID_TRAINER_DOUBLES2, Movement_ExclamationMark + applymovement LOCALID_TRAINER_DOUBLES2, Common_Movement_ExclamationMark waitmovement 0 - applymovement LOCALID_TRAINER_DOUBLES2, Movement_Delay48 + applymovement LOCALID_TRAINER_DOUBLES2, Common_Movement_Delay48 TrainerTower_EventScript_TriggerDoubleBattle: waitmovement 0 setvar DISABLE_DOUBLES_TRIGGER, TRUE diff --git a/data/scripts/white_out.inc b/data/scripts/white_out.inc index cbf593c82..6ec14717b 100644 --- a/data/scripts/white_out.inc +++ b/data/scripts/white_out.inc @@ -24,7 +24,7 @@ EventScript_AfterWhiteOutHealMsg:: EventScript_AfterWhiteOutMomHeal:: lockall textcolor NPC_TEXT_COLOR_FEMALE - applymovement LOCALID_MOM, Movement_WalkInPlaceFasterDown + applymovement LOCALID_MOM, Common_Movement_WalkInPlaceFasterDown waitmovement 0 msgbox Text_HadQuiteAnExperienceTakeRest call EventScript_OutOfCenterPartyHeal diff --git a/data/smokescreen.s b/data/smokescreen.s deleted file mode 100644 index 3a4a46558..000000000 --- a/data/smokescreen.s +++ /dev/null @@ -1,55 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - .section .rodata - .align 2 - -gSmokescreenImpactSpriteSheet:: - obj_tiles gSmokescreenImpactTiles, 0x0180, 55019 - -gSmokescreenImpactSpritePalette:: - obj_pal gSmokescreenImpactPalette, 55019 - -gOamData_835099C:: - .4byte 0x40000000, 0x00000400 - -gAnimCmd_82509A4:: - obj_image_anim_frame 0, 4 - obj_image_anim_frame 4, 4 - obj_image_anim_frame 8, 4 - obj_image_anim_end - -gAnimCmd_82509B4:: - obj_image_anim_frame 0, 4, OBJ_IMAGE_ANIM_H_FLIP - obj_image_anim_frame 4, 4, OBJ_IMAGE_ANIM_H_FLIP - obj_image_anim_frame 8, 4, OBJ_IMAGE_ANIM_H_FLIP - obj_image_anim_end - -gAnimCmd_82509C4:: - obj_image_anim_frame 0, 4, OBJ_IMAGE_ANIM_V_FLIP - obj_image_anim_frame 4, 4, OBJ_IMAGE_ANIM_V_FLIP - obj_image_anim_frame 8, 4, OBJ_IMAGE_ANIM_V_FLIP - obj_image_anim_end - -gAnimCmd_82509D4:: - obj_image_anim_frame 0, 4, OBJ_IMAGE_ANIM_H_FLIP | OBJ_IMAGE_ANIM_V_FLIP - obj_image_anim_frame 4, 4, OBJ_IMAGE_ANIM_H_FLIP | OBJ_IMAGE_ANIM_V_FLIP - obj_image_anim_frame 8, 4, OBJ_IMAGE_ANIM_H_FLIP | OBJ_IMAGE_ANIM_V_FLIP - obj_image_anim_end - -gSpriteAnimTable_82509E4:: - .4byte gAnimCmd_82509A4 - .4byte gAnimCmd_82509B4 - .4byte gAnimCmd_82509C4 - .4byte gAnimCmd_82509D4 - -gSmokescreenImpactSpriteTemplate:: - spr_template 55019, 55019, gOamData_835099C, gSpriteAnimTable_82509E4, NULL, gDummySpriteAffineAnimTable, SpriteCB_DestroySprite - -gSpriteSheet_EnemyShadow:: - obj_tiles gFile_graphics_battle_interface_enemy_mon_shadow_sheet, 0x0080, 55129 - -gOamData_8250A14:: - .4byte 0x40004000, 0x00000c00 - -gSpriteTemplate_EnemyShadow:: - spr_template 55129, 55039, gOamData_8250A14, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCB_SetInvisible diff --git a/data/text/save.inc b/data/text/save.inc index d71e03f1e..bbaebf72c 100644 --- a/data/text/save.inc +++ b/data/text/save.inc @@ -12,7 +12,7 @@ gText_SavingDontTurnOffThePower:: gText_PlayerSavedTheGame:: .string "{PLAYER} saved the game.$" -gText_SaveFailed:: +gText_SaveFailed2:: .string "セーブに しっぱい しました‥$" gText_DifferentGameFile:: diff --git a/data/tilesets.s b/data/tilesets.s deleted file mode 100644 index b8b50e652..000000000 --- a/data/tilesets.s +++ /dev/null @@ -1,8 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - - .include "data/tilesets/graphics.inc" - .include "data/tilesets/metatiles.inc" - .include "data/tilesets/headers.inc" diff --git a/data/tilesets/graphics.inc b/data/tilesets/graphics.inc deleted file mode 100644 index adecd108e..000000000 --- a/data/tilesets/graphics.inc +++ /dev/null @@ -1,1471 +0,0 @@ - .align 2 -gTilesetTiles_PalletTown:: - .incbin "data/tilesets/secondary/pallet_town/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_PalletTown:: - .incbin "data/tilesets/secondary/pallet_town/palettes/00.gbapal" - .incbin "data/tilesets/secondary/pallet_town/palettes/01.gbapal" - .incbin "data/tilesets/secondary/pallet_town/palettes/02.gbapal" - .incbin "data/tilesets/secondary/pallet_town/palettes/03.gbapal" - .incbin "data/tilesets/secondary/pallet_town/palettes/04.gbapal" - .incbin "data/tilesets/secondary/pallet_town/palettes/05.gbapal" - .incbin "data/tilesets/secondary/pallet_town/palettes/06.gbapal" - .incbin "data/tilesets/secondary/pallet_town/palettes/07.gbapal" - .incbin "data/tilesets/secondary/pallet_town/palettes/08.gbapal" - .incbin "data/tilesets/secondary/pallet_town/palettes/09.gbapal" - .incbin "data/tilesets/secondary/pallet_town/palettes/10.gbapal" - .incbin "data/tilesets/secondary/pallet_town/palettes/11.gbapal" - .incbin "data/tilesets/secondary/pallet_town/palettes/12.gbapal" - .incbin "data/tilesets/secondary/pallet_town/palettes/13.gbapal" - .incbin "data/tilesets/secondary/pallet_town/palettes/14.gbapal" - .incbin "data/tilesets/secondary/pallet_town/palettes/15.gbapal" - - .align 2 -gTilesetTiles_ViridianCity:: - .incbin "data/tilesets/secondary/viridian_city/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_ViridianCity:: - .incbin "data/tilesets/secondary/viridian_city/palettes/00.gbapal" - .incbin "data/tilesets/secondary/viridian_city/palettes/01.gbapal" - .incbin "data/tilesets/secondary/viridian_city/palettes/02.gbapal" - .incbin "data/tilesets/secondary/viridian_city/palettes/03.gbapal" - .incbin "data/tilesets/secondary/viridian_city/palettes/04.gbapal" - .incbin "data/tilesets/secondary/viridian_city/palettes/05.gbapal" - .incbin "data/tilesets/secondary/viridian_city/palettes/06.gbapal" - .incbin "data/tilesets/secondary/viridian_city/palettes/07.gbapal" - .incbin "data/tilesets/secondary/viridian_city/palettes/08.gbapal" - .incbin "data/tilesets/secondary/viridian_city/palettes/09.gbapal" - .incbin "data/tilesets/secondary/viridian_city/palettes/10.gbapal" - .incbin "data/tilesets/secondary/viridian_city/palettes/11.gbapal" - .incbin "data/tilesets/secondary/viridian_city/palettes/12.gbapal" - .incbin "data/tilesets/secondary/viridian_city/palettes/13.gbapal" - .incbin "data/tilesets/secondary/viridian_city/palettes/14.gbapal" - .incbin "data/tilesets/secondary/viridian_city/palettes/15.gbapal" - - .align 2 -gTilesetTiles_PewterCity:: - .incbin "data/tilesets/secondary/pewter_city/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_PewterCity:: - .incbin "data/tilesets/secondary/pewter_city/palettes/00.gbapal" - .incbin "data/tilesets/secondary/pewter_city/palettes/01.gbapal" - .incbin "data/tilesets/secondary/pewter_city/palettes/02.gbapal" - .incbin "data/tilesets/secondary/pewter_city/palettes/03.gbapal" - .incbin "data/tilesets/secondary/pewter_city/palettes/04.gbapal" - .incbin "data/tilesets/secondary/pewter_city/palettes/05.gbapal" - .incbin "data/tilesets/secondary/pewter_city/palettes/06.gbapal" - .incbin "data/tilesets/secondary/pewter_city/palettes/07.gbapal" - .incbin "data/tilesets/secondary/pewter_city/palettes/08.gbapal" - .incbin "data/tilesets/secondary/pewter_city/palettes/09.gbapal" - .incbin "data/tilesets/secondary/pewter_city/palettes/10.gbapal" - .incbin "data/tilesets/secondary/pewter_city/palettes/11.gbapal" - .incbin "data/tilesets/secondary/pewter_city/palettes/12.gbapal" - .incbin "data/tilesets/secondary/pewter_city/palettes/13.gbapal" - .incbin "data/tilesets/secondary/pewter_city/palettes/14.gbapal" - .incbin "data/tilesets/secondary/pewter_city/palettes/15.gbapal" - - .align 2 -gTilesetTiles_CeruleanCity:: - .incbin "data/tilesets/secondary/cerulean_city/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_CeruleanCity:: - .incbin "data/tilesets/secondary/cerulean_city/palettes/00.gbapal" - .incbin "data/tilesets/secondary/cerulean_city/palettes/01.gbapal" - .incbin "data/tilesets/secondary/cerulean_city/palettes/02.gbapal" - .incbin "data/tilesets/secondary/cerulean_city/palettes/03.gbapal" - .incbin "data/tilesets/secondary/cerulean_city/palettes/04.gbapal" - .incbin "data/tilesets/secondary/cerulean_city/palettes/05.gbapal" - .incbin "data/tilesets/secondary/cerulean_city/palettes/06.gbapal" - .incbin "data/tilesets/secondary/cerulean_city/palettes/07.gbapal" - .incbin "data/tilesets/secondary/cerulean_city/palettes/08.gbapal" - .incbin "data/tilesets/secondary/cerulean_city/palettes/09.gbapal" - .incbin "data/tilesets/secondary/cerulean_city/palettes/10.gbapal" - .incbin "data/tilesets/secondary/cerulean_city/palettes/11.gbapal" - .incbin "data/tilesets/secondary/cerulean_city/palettes/12.gbapal" - .incbin "data/tilesets/secondary/cerulean_city/palettes/13.gbapal" - .incbin "data/tilesets/secondary/cerulean_city/palettes/14.gbapal" - .incbin "data/tilesets/secondary/cerulean_city/palettes/15.gbapal" - - .align 2 -gTilesetTiles_LavenderTown:: - .incbin "data/tilesets/secondary/lavender_town/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_LavenderTown:: - .incbin "data/tilesets/secondary/lavender_town/palettes/00.gbapal" - .incbin "data/tilesets/secondary/lavender_town/palettes/01.gbapal" - .incbin "data/tilesets/secondary/lavender_town/palettes/02.gbapal" - .incbin "data/tilesets/secondary/lavender_town/palettes/03.gbapal" - .incbin "data/tilesets/secondary/lavender_town/palettes/04.gbapal" - .incbin "data/tilesets/secondary/lavender_town/palettes/05.gbapal" - .incbin "data/tilesets/secondary/lavender_town/palettes/06.gbapal" - .incbin "data/tilesets/secondary/lavender_town/palettes/07.gbapal" - .incbin "data/tilesets/secondary/lavender_town/palettes/08.gbapal" - .incbin "data/tilesets/secondary/lavender_town/palettes/09.gbapal" - .incbin "data/tilesets/secondary/lavender_town/palettes/10.gbapal" - .incbin "data/tilesets/secondary/lavender_town/palettes/11.gbapal" - .incbin "data/tilesets/secondary/lavender_town/palettes/12.gbapal" - .incbin "data/tilesets/secondary/lavender_town/palettes/13.gbapal" - .incbin "data/tilesets/secondary/lavender_town/palettes/14.gbapal" - .incbin "data/tilesets/secondary/lavender_town/palettes/15.gbapal" - - .align 2 -gTilesetTiles_VermilionCity:: - .incbin "data/tilesets/secondary/vermilion_city/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_VermilionCity:: - .incbin "data/tilesets/secondary/vermilion_city/palettes/00.gbapal" - .incbin "data/tilesets/secondary/vermilion_city/palettes/01.gbapal" - .incbin "data/tilesets/secondary/vermilion_city/palettes/02.gbapal" - .incbin "data/tilesets/secondary/vermilion_city/palettes/03.gbapal" - .incbin "data/tilesets/secondary/vermilion_city/palettes/04.gbapal" - .incbin "data/tilesets/secondary/vermilion_city/palettes/05.gbapal" - .incbin "data/tilesets/secondary/vermilion_city/palettes/06.gbapal" - .incbin "data/tilesets/secondary/vermilion_city/palettes/07.gbapal" - .incbin "data/tilesets/secondary/vermilion_city/palettes/08.gbapal" - .incbin "data/tilesets/secondary/vermilion_city/palettes/09.gbapal" - .incbin "data/tilesets/secondary/vermilion_city/palettes/10.gbapal" - .incbin "data/tilesets/secondary/vermilion_city/palettes/11.gbapal" - .incbin "data/tilesets/secondary/vermilion_city/palettes/12.gbapal" - .incbin "data/tilesets/secondary/vermilion_city/palettes/13.gbapal" - .incbin "data/tilesets/secondary/vermilion_city/palettes/14.gbapal" - .incbin "data/tilesets/secondary/vermilion_city/palettes/15.gbapal" - - .align 2 -gTilesetTiles_CeladonCity:: - .incbin "data/tilesets/secondary/celadon_city/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_CeladonCity:: - .incbin "data/tilesets/secondary/celadon_city/palettes/00.gbapal" - .incbin "data/tilesets/secondary/celadon_city/palettes/01.gbapal" - .incbin "data/tilesets/secondary/celadon_city/palettes/02.gbapal" - .incbin "data/tilesets/secondary/celadon_city/palettes/03.gbapal" - .incbin "data/tilesets/secondary/celadon_city/palettes/04.gbapal" - .incbin "data/tilesets/secondary/celadon_city/palettes/05.gbapal" - .incbin "data/tilesets/secondary/celadon_city/palettes/06.gbapal" - .incbin "data/tilesets/secondary/celadon_city/palettes/07.gbapal" - .incbin "data/tilesets/secondary/celadon_city/palettes/08.gbapal" - .incbin "data/tilesets/secondary/celadon_city/palettes/09.gbapal" - .incbin "data/tilesets/secondary/celadon_city/palettes/10.gbapal" - .incbin "data/tilesets/secondary/celadon_city/palettes/11.gbapal" - .incbin "data/tilesets/secondary/celadon_city/palettes/12.gbapal" - .incbin "data/tilesets/secondary/celadon_city/palettes/13.gbapal" - .incbin "data/tilesets/secondary/celadon_city/palettes/14.gbapal" - .incbin "data/tilesets/secondary/celadon_city/palettes/15.gbapal" - - .align 2 -gTilesetTiles_FuchsiaCity:: - .incbin "data/tilesets/secondary/fuchsia_city/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_FuchsiaCity:: - .incbin "data/tilesets/secondary/fuchsia_city/palettes/00.gbapal" - .incbin "data/tilesets/secondary/fuchsia_city/palettes/01.gbapal" - .incbin "data/tilesets/secondary/fuchsia_city/palettes/02.gbapal" - .incbin "data/tilesets/secondary/fuchsia_city/palettes/03.gbapal" - .incbin "data/tilesets/secondary/fuchsia_city/palettes/04.gbapal" - .incbin "data/tilesets/secondary/fuchsia_city/palettes/05.gbapal" - .incbin "data/tilesets/secondary/fuchsia_city/palettes/06.gbapal" - .incbin "data/tilesets/secondary/fuchsia_city/palettes/07.gbapal" - .incbin "data/tilesets/secondary/fuchsia_city/palettes/08.gbapal" - .incbin "data/tilesets/secondary/fuchsia_city/palettes/09.gbapal" - .incbin "data/tilesets/secondary/fuchsia_city/palettes/10.gbapal" - .incbin "data/tilesets/secondary/fuchsia_city/palettes/11.gbapal" - .incbin "data/tilesets/secondary/fuchsia_city/palettes/12.gbapal" - .incbin "data/tilesets/secondary/fuchsia_city/palettes/13.gbapal" - .incbin "data/tilesets/secondary/fuchsia_city/palettes/14.gbapal" - .incbin "data/tilesets/secondary/fuchsia_city/palettes/15.gbapal" - - .align 2 -gTilesetTiles_CinnabarIsland:: - .incbin "data/tilesets/secondary/cinnabar_island/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_CinnabarIsland:: - .incbin "data/tilesets/secondary/cinnabar_island/palettes/00.gbapal" - .incbin "data/tilesets/secondary/cinnabar_island/palettes/01.gbapal" - .incbin "data/tilesets/secondary/cinnabar_island/palettes/02.gbapal" - .incbin "data/tilesets/secondary/cinnabar_island/palettes/03.gbapal" - .incbin "data/tilesets/secondary/cinnabar_island/palettes/04.gbapal" - .incbin "data/tilesets/secondary/cinnabar_island/palettes/05.gbapal" - .incbin "data/tilesets/secondary/cinnabar_island/palettes/06.gbapal" - .incbin "data/tilesets/secondary/cinnabar_island/palettes/07.gbapal" - .incbin "data/tilesets/secondary/cinnabar_island/palettes/08.gbapal" - .incbin "data/tilesets/secondary/cinnabar_island/palettes/09.gbapal" - .incbin "data/tilesets/secondary/cinnabar_island/palettes/10.gbapal" - .incbin "data/tilesets/secondary/cinnabar_island/palettes/11.gbapal" - .incbin "data/tilesets/secondary/cinnabar_island/palettes/12.gbapal" - .incbin "data/tilesets/secondary/cinnabar_island/palettes/13.gbapal" - .incbin "data/tilesets/secondary/cinnabar_island/palettes/14.gbapal" - .incbin "data/tilesets/secondary/cinnabar_island/palettes/15.gbapal" - - .align 2 -gTilesetTiles_IndigoPlateau:: - .incbin "data/tilesets/secondary/indigo_plateau/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_IndigoPlateau:: - .incbin "data/tilesets/secondary/indigo_plateau/palettes/00.gbapal" - .incbin "data/tilesets/secondary/indigo_plateau/palettes/01.gbapal" - .incbin "data/tilesets/secondary/indigo_plateau/palettes/02.gbapal" - .incbin "data/tilesets/secondary/indigo_plateau/palettes/03.gbapal" - .incbin "data/tilesets/secondary/indigo_plateau/palettes/04.gbapal" - .incbin "data/tilesets/secondary/indigo_plateau/palettes/05.gbapal" - .incbin "data/tilesets/secondary/indigo_plateau/palettes/06.gbapal" - .incbin "data/tilesets/secondary/indigo_plateau/palettes/07.gbapal" - .incbin "data/tilesets/secondary/indigo_plateau/palettes/08.gbapal" - .incbin "data/tilesets/secondary/indigo_plateau/palettes/09.gbapal" - .incbin "data/tilesets/secondary/indigo_plateau/palettes/10.gbapal" - .incbin "data/tilesets/secondary/indigo_plateau/palettes/11.gbapal" - .incbin "data/tilesets/secondary/indigo_plateau/palettes/12.gbapal" - .incbin "data/tilesets/secondary/indigo_plateau/palettes/13.gbapal" - .incbin "data/tilesets/secondary/indigo_plateau/palettes/14.gbapal" - .incbin "data/tilesets/secondary/indigo_plateau/palettes/15.gbapal" - - .align 2 -gTilesetTiles_SaffronCity:: - .incbin "data/tilesets/secondary/saffron_city/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_SaffronCity:: - .incbin "data/tilesets/secondary/saffron_city/palettes/00.gbapal" - .incbin "data/tilesets/secondary/saffron_city/palettes/01.gbapal" - .incbin "data/tilesets/secondary/saffron_city/palettes/02.gbapal" - .incbin "data/tilesets/secondary/saffron_city/palettes/03.gbapal" - .incbin "data/tilesets/secondary/saffron_city/palettes/04.gbapal" - .incbin "data/tilesets/secondary/saffron_city/palettes/05.gbapal" - .incbin "data/tilesets/secondary/saffron_city/palettes/06.gbapal" - .incbin "data/tilesets/secondary/saffron_city/palettes/07.gbapal" - .incbin "data/tilesets/secondary/saffron_city/palettes/08.gbapal" - .incbin "data/tilesets/secondary/saffron_city/palettes/09.gbapal" - .incbin "data/tilesets/secondary/saffron_city/palettes/10.gbapal" - .incbin "data/tilesets/secondary/saffron_city/palettes/11.gbapal" - .incbin "data/tilesets/secondary/saffron_city/palettes/12.gbapal" - .incbin "data/tilesets/secondary/saffron_city/palettes/13.gbapal" - .incbin "data/tilesets/secondary/saffron_city/palettes/14.gbapal" - .incbin "data/tilesets/secondary/saffron_city/palettes/15.gbapal" - - .align 2 -gTilesetTiles_Building:: @ Building - .incbin "data/tilesets/primary/building/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_Building:: @ Building - .incbin "data/tilesets/primary/building/palettes/00.gbapal" - .incbin "data/tilesets/primary/building/palettes/01.gbapal" - .incbin "data/tilesets/primary/building/palettes/02.gbapal" - .incbin "data/tilesets/primary/building/palettes/03.gbapal" - .incbin "data/tilesets/primary/building/palettes/04.gbapal" - .incbin "data/tilesets/primary/building/palettes/05.gbapal" - .incbin "data/tilesets/primary/building/palettes/06.gbapal" - .incbin "data/tilesets/primary/building/palettes/07.gbapal" - .incbin "data/tilesets/primary/building/palettes/08.gbapal" - .incbin "data/tilesets/primary/building/palettes/09.gbapal" - .incbin "data/tilesets/primary/building/palettes/10.gbapal" - .incbin "data/tilesets/primary/building/palettes/11.gbapal" - .incbin "data/tilesets/primary/building/palettes/12.gbapal" - .incbin "data/tilesets/primary/building/palettes/13.gbapal" - .incbin "data/tilesets/primary/building/palettes/14.gbapal" - .incbin "data/tilesets/primary/building/palettes/15.gbapal" - - .align 2 -gTilesetTiles_Mart:: - .incbin "data/tilesets/secondary/mart/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_Mart:: - .incbin "data/tilesets/secondary/mart/palettes/00.gbapal" - .incbin "data/tilesets/secondary/mart/palettes/01.gbapal" - .incbin "data/tilesets/secondary/mart/palettes/02.gbapal" - .incbin "data/tilesets/secondary/mart/palettes/03.gbapal" - .incbin "data/tilesets/secondary/mart/palettes/04.gbapal" - .incbin "data/tilesets/secondary/mart/palettes/05.gbapal" - .incbin "data/tilesets/secondary/mart/palettes/06.gbapal" - .incbin "data/tilesets/secondary/mart/palettes/07.gbapal" - .incbin "data/tilesets/secondary/mart/palettes/08.gbapal" - .incbin "data/tilesets/secondary/mart/palettes/09.gbapal" - .incbin "data/tilesets/secondary/mart/palettes/10.gbapal" - .incbin "data/tilesets/secondary/mart/palettes/11.gbapal" - .incbin "data/tilesets/secondary/mart/palettes/12.gbapal" - .incbin "data/tilesets/secondary/mart/palettes/13.gbapal" - .incbin "data/tilesets/secondary/mart/palettes/14.gbapal" - .incbin "data/tilesets/secondary/mart/palettes/15.gbapal" - - .align 2 -gTilesetTiles_PokemonCenter:: - .incbin "data/tilesets/secondary/pokemon_center/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_PokemonCenter:: - .incbin "data/tilesets/secondary/pokemon_center/palettes/00.gbapal" - .incbin "data/tilesets/secondary/pokemon_center/palettes/01.gbapal" - .incbin "data/tilesets/secondary/pokemon_center/palettes/02.gbapal" - .incbin "data/tilesets/secondary/pokemon_center/palettes/03.gbapal" - .incbin "data/tilesets/secondary/pokemon_center/palettes/04.gbapal" - .incbin "data/tilesets/secondary/pokemon_center/palettes/05.gbapal" - .incbin "data/tilesets/secondary/pokemon_center/palettes/06.gbapal" - .incbin "data/tilesets/secondary/pokemon_center/palettes/07.gbapal" - .incbin "data/tilesets/secondary/pokemon_center/palettes/08.gbapal" - .incbin "data/tilesets/secondary/pokemon_center/palettes/09.gbapal" - .incbin "data/tilesets/secondary/pokemon_center/palettes/10.gbapal" - .incbin "data/tilesets/secondary/pokemon_center/palettes/11.gbapal" - .incbin "data/tilesets/secondary/pokemon_center/palettes/12.gbapal" - .incbin "data/tilesets/secondary/pokemon_center/palettes/13.gbapal" - .incbin "data/tilesets/secondary/pokemon_center/palettes/14.gbapal" - .incbin "data/tilesets/secondary/pokemon_center/palettes/15.gbapal" - - .align 2 -gTilesetTiles_Cave:: - .incbin "data/tilesets/secondary/cave/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_Cave:: - .incbin "data/tilesets/secondary/cave/palettes/00.gbapal" - .incbin "data/tilesets/secondary/cave/palettes/01.gbapal" - .incbin "data/tilesets/secondary/cave/palettes/02.gbapal" - .incbin "data/tilesets/secondary/cave/palettes/03.gbapal" - .incbin "data/tilesets/secondary/cave/palettes/04.gbapal" - .incbin "data/tilesets/secondary/cave/palettes/05.gbapal" - .incbin "data/tilesets/secondary/cave/palettes/06.gbapal" - .incbin "data/tilesets/secondary/cave/palettes/07.gbapal" - .incbin "data/tilesets/secondary/cave/palettes/08.gbapal" - .incbin "data/tilesets/secondary/cave/palettes/09.gbapal" - .incbin "data/tilesets/secondary/cave/palettes/10.gbapal" - .incbin "data/tilesets/secondary/cave/palettes/11.gbapal" - .incbin "data/tilesets/secondary/cave/palettes/12.gbapal" - .incbin "data/tilesets/secondary/cave/palettes/13.gbapal" - .incbin "data/tilesets/secondary/cave/palettes/14.gbapal" - .incbin "data/tilesets/secondary/cave/palettes/15.gbapal" - - .align 2 -gTilesetTiles_Dummy1:: - .incbin "data/tilesets/secondary/dummy_1/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_Dummy1:: - .incbin "data/tilesets/secondary/dummy_1/palettes/00.gbapal" - .incbin "data/tilesets/secondary/dummy_1/palettes/01.gbapal" - .incbin "data/tilesets/secondary/dummy_1/palettes/02.gbapal" - .incbin "data/tilesets/secondary/dummy_1/palettes/03.gbapal" - .incbin "data/tilesets/secondary/dummy_1/palettes/04.gbapal" - .incbin "data/tilesets/secondary/dummy_1/palettes/05.gbapal" - .incbin "data/tilesets/secondary/dummy_1/palettes/06.gbapal" - .incbin "data/tilesets/secondary/dummy_1/palettes/07.gbapal" - .incbin "data/tilesets/secondary/dummy_1/palettes/08.gbapal" - .incbin "data/tilesets/secondary/dummy_1/palettes/09.gbapal" - .incbin "data/tilesets/secondary/dummy_1/palettes/10.gbapal" - .incbin "data/tilesets/secondary/dummy_1/palettes/11.gbapal" - .incbin "data/tilesets/secondary/dummy_1/palettes/12.gbapal" - .incbin "data/tilesets/secondary/dummy_1/palettes/13.gbapal" - .incbin "data/tilesets/secondary/dummy_1/palettes/14.gbapal" - .incbin "data/tilesets/secondary/dummy_1/palettes/15.gbapal" - - .align 2 -gTilesetTiles_Museum:: - .incbin "data/tilesets/secondary/museum/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_Museum:: - .incbin "data/tilesets/secondary/museum/palettes/00.gbapal" - .incbin "data/tilesets/secondary/museum/palettes/01.gbapal" - .incbin "data/tilesets/secondary/museum/palettes/02.gbapal" - .incbin "data/tilesets/secondary/museum/palettes/03.gbapal" - .incbin "data/tilesets/secondary/museum/palettes/04.gbapal" - .incbin "data/tilesets/secondary/museum/palettes/05.gbapal" - .incbin "data/tilesets/secondary/museum/palettes/06.gbapal" - .incbin "data/tilesets/secondary/museum/palettes/07.gbapal" - .incbin "data/tilesets/secondary/museum/palettes/08.gbapal" - .incbin "data/tilesets/secondary/museum/palettes/09.gbapal" - .incbin "data/tilesets/secondary/museum/palettes/10.gbapal" - .incbin "data/tilesets/secondary/museum/palettes/11.gbapal" - .incbin "data/tilesets/secondary/museum/palettes/12.gbapal" - .incbin "data/tilesets/secondary/museum/palettes/13.gbapal" - .incbin "data/tilesets/secondary/museum/palettes/14.gbapal" - .incbin "data/tilesets/secondary/museum/palettes/15.gbapal" - - .align 2 -gTilesetTiles_CableClub:: - .incbin "data/tilesets/secondary/cable_club/tiles.4bpp" - - .align 2 -gTilesetPalettes_CableClub:: - .incbin "data/tilesets/secondary/cable_club/palettes/00.gbapal" - .incbin "data/tilesets/secondary/cable_club/palettes/01.gbapal" - .incbin "data/tilesets/secondary/cable_club/palettes/02.gbapal" - .incbin "data/tilesets/secondary/cable_club/palettes/03.gbapal" - .incbin "data/tilesets/secondary/cable_club/palettes/04.gbapal" - .incbin "data/tilesets/secondary/cable_club/palettes/05.gbapal" - .incbin "data/tilesets/secondary/cable_club/palettes/06.gbapal" - .incbin "data/tilesets/secondary/cable_club/palettes/07.gbapal" - .incbin "data/tilesets/secondary/cable_club/palettes/08.gbapal" - .incbin "data/tilesets/secondary/cable_club/palettes/09.gbapal" - .incbin "data/tilesets/secondary/cable_club/palettes/10.gbapal" - .incbin "data/tilesets/secondary/cable_club/palettes/11.gbapal" - .incbin "data/tilesets/secondary/cable_club/palettes/12.gbapal" - .incbin "data/tilesets/secondary/cable_club/palettes/13.gbapal" - .incbin "data/tilesets/secondary/cable_club/palettes/14.gbapal" - .incbin "data/tilesets/secondary/cable_club/palettes/15.gbapal" - - .align 2 -gTilesetTiles_BikeShop:: - .incbin "data/tilesets/secondary/bike_shop/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_BikeShop:: - .incbin "data/tilesets/secondary/bike_shop/palettes/00.gbapal" - .incbin "data/tilesets/secondary/bike_shop/palettes/01.gbapal" - .incbin "data/tilesets/secondary/bike_shop/palettes/02.gbapal" - .incbin "data/tilesets/secondary/bike_shop/palettes/03.gbapal" - .incbin "data/tilesets/secondary/bike_shop/palettes/04.gbapal" - .incbin "data/tilesets/secondary/bike_shop/palettes/05.gbapal" - .incbin "data/tilesets/secondary/bike_shop/palettes/06.gbapal" - .incbin "data/tilesets/secondary/bike_shop/palettes/07.gbapal" - .incbin "data/tilesets/secondary/bike_shop/palettes/08.gbapal" - .incbin "data/tilesets/secondary/bike_shop/palettes/09.gbapal" - .incbin "data/tilesets/secondary/bike_shop/palettes/10.gbapal" - .incbin "data/tilesets/secondary/bike_shop/palettes/11.gbapal" - .incbin "data/tilesets/secondary/bike_shop/palettes/12.gbapal" - .incbin "data/tilesets/secondary/bike_shop/palettes/13.gbapal" - .incbin "data/tilesets/secondary/bike_shop/palettes/14.gbapal" - .incbin "data/tilesets/secondary/bike_shop/palettes/15.gbapal" - - .align 2 -gTilesetTiles_Lab:: - .incbin "data/tilesets/secondary/lab/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_Lab:: - .incbin "data/tilesets/secondary/lab/palettes/00.gbapal" - .incbin "data/tilesets/secondary/lab/palettes/01.gbapal" - .incbin "data/tilesets/secondary/lab/palettes/02.gbapal" - .incbin "data/tilesets/secondary/lab/palettes/03.gbapal" - .incbin "data/tilesets/secondary/lab/palettes/04.gbapal" - .incbin "data/tilesets/secondary/lab/palettes/05.gbapal" - .incbin "data/tilesets/secondary/lab/palettes/06.gbapal" - .incbin "data/tilesets/secondary/lab/palettes/07.gbapal" - .incbin "data/tilesets/secondary/lab/palettes/08.gbapal" - .incbin "data/tilesets/secondary/lab/palettes/09.gbapal" - .incbin "data/tilesets/secondary/lab/palettes/10.gbapal" - .incbin "data/tilesets/secondary/lab/palettes/11.gbapal" - .incbin "data/tilesets/secondary/lab/palettes/12.gbapal" - .incbin "data/tilesets/secondary/lab/palettes/13.gbapal" - .incbin "data/tilesets/secondary/lab/palettes/14.gbapal" - .incbin "data/tilesets/secondary/lab/palettes/15.gbapal" - - .align 2 -gTilesetTiles_HoennBuilding:: - .incbin "data/tilesets/secondary/hoenn_building/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_HoennBuilding:: - .incbin "data/tilesets/secondary/hoenn_building/palettes/00.gbapal" - .incbin "data/tilesets/secondary/hoenn_building/palettes/01.gbapal" - .incbin "data/tilesets/secondary/hoenn_building/palettes/02.gbapal" - .incbin "data/tilesets/secondary/hoenn_building/palettes/03.gbapal" - .incbin "data/tilesets/secondary/hoenn_building/palettes/04.gbapal" - .incbin "data/tilesets/secondary/hoenn_building/palettes/05.gbapal" - .incbin "data/tilesets/secondary/hoenn_building/palettes/06.gbapal" - .incbin "data/tilesets/secondary/hoenn_building/palettes/07.gbapal" - .incbin "data/tilesets/secondary/hoenn_building/palettes/08.gbapal" - .incbin "data/tilesets/secondary/hoenn_building/palettes/09.gbapal" - .incbin "data/tilesets/secondary/hoenn_building/palettes/10.gbapal" - .incbin "data/tilesets/secondary/hoenn_building/palettes/11.gbapal" - .incbin "data/tilesets/secondary/hoenn_building/palettes/12.gbapal" - .incbin "data/tilesets/secondary/hoenn_building/palettes/13.gbapal" - .incbin "data/tilesets/secondary/hoenn_building/palettes/14.gbapal" - .incbin "data/tilesets/secondary/hoenn_building/palettes/15.gbapal" - - .align 2 -gTilesetTiles_GameCorner:: - .incbin "data/tilesets/secondary/game_corner/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_GameCorner:: - .incbin "data/tilesets/secondary/game_corner/palettes/00.gbapal" - .incbin "data/tilesets/secondary/game_corner/palettes/01.gbapal" - .incbin "data/tilesets/secondary/game_corner/palettes/02.gbapal" - .incbin "data/tilesets/secondary/game_corner/palettes/03.gbapal" - .incbin "data/tilesets/secondary/game_corner/palettes/04.gbapal" - .incbin "data/tilesets/secondary/game_corner/palettes/05.gbapal" - .incbin "data/tilesets/secondary/game_corner/palettes/06.gbapal" - .incbin "data/tilesets/secondary/game_corner/palettes/07.gbapal" - .incbin "data/tilesets/secondary/game_corner/palettes/08.gbapal" - .incbin "data/tilesets/secondary/game_corner/palettes/09.gbapal" - .incbin "data/tilesets/secondary/game_corner/palettes/10.gbapal" - .incbin "data/tilesets/secondary/game_corner/palettes/11.gbapal" - .incbin "data/tilesets/secondary/game_corner/palettes/12.gbapal" - .incbin "data/tilesets/secondary/game_corner/palettes/13.gbapal" - .incbin "data/tilesets/secondary/game_corner/palettes/14.gbapal" - .incbin "data/tilesets/secondary/game_corner/palettes/15.gbapal" - - .align 2 -gTilesetTiles_PewterGym:: - .incbin "data/tilesets/secondary/pewter_gym/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_PewterGym:: - .incbin "data/tilesets/secondary/pewter_gym/palettes/00.gbapal" - .incbin "data/tilesets/secondary/pewter_gym/palettes/01.gbapal" - .incbin "data/tilesets/secondary/pewter_gym/palettes/02.gbapal" - .incbin "data/tilesets/secondary/pewter_gym/palettes/03.gbapal" - .incbin "data/tilesets/secondary/pewter_gym/palettes/04.gbapal" - .incbin "data/tilesets/secondary/pewter_gym/palettes/05.gbapal" - .incbin "data/tilesets/secondary/pewter_gym/palettes/06.gbapal" - .incbin "data/tilesets/secondary/pewter_gym/palettes/07.gbapal" - .incbin "data/tilesets/secondary/pewter_gym/palettes/08.gbapal" - .incbin "data/tilesets/secondary/pewter_gym/palettes/09.gbapal" - .incbin "data/tilesets/secondary/pewter_gym/palettes/10.gbapal" - .incbin "data/tilesets/secondary/pewter_gym/palettes/11.gbapal" - .incbin "data/tilesets/secondary/pewter_gym/palettes/12.gbapal" - .incbin "data/tilesets/secondary/pewter_gym/palettes/13.gbapal" - .incbin "data/tilesets/secondary/pewter_gym/palettes/14.gbapal" - .incbin "data/tilesets/secondary/pewter_gym/palettes/15.gbapal" - - .align 2 -gTilesetTiles_CeruleanGym:: - .incbin "data/tilesets/secondary/cerulean_gym/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_CeruleanGym:: - .incbin "data/tilesets/secondary/cerulean_gym/palettes/00.gbapal" - .incbin "data/tilesets/secondary/cerulean_gym/palettes/01.gbapal" - .incbin "data/tilesets/secondary/cerulean_gym/palettes/02.gbapal" - .incbin "data/tilesets/secondary/cerulean_gym/palettes/03.gbapal" - .incbin "data/tilesets/secondary/cerulean_gym/palettes/04.gbapal" - .incbin "data/tilesets/secondary/cerulean_gym/palettes/05.gbapal" - .incbin "data/tilesets/secondary/cerulean_gym/palettes/06.gbapal" - .incbin "data/tilesets/secondary/cerulean_gym/palettes/07.gbapal" - .incbin "data/tilesets/secondary/cerulean_gym/palettes/08.gbapal" - .incbin "data/tilesets/secondary/cerulean_gym/palettes/09.gbapal" - .incbin "data/tilesets/secondary/cerulean_gym/palettes/10.gbapal" - .incbin "data/tilesets/secondary/cerulean_gym/palettes/11.gbapal" - .incbin "data/tilesets/secondary/cerulean_gym/palettes/12.gbapal" - .incbin "data/tilesets/secondary/cerulean_gym/palettes/13.gbapal" - .incbin "data/tilesets/secondary/cerulean_gym/palettes/14.gbapal" - .incbin "data/tilesets/secondary/cerulean_gym/palettes/15.gbapal" - - .align 2 -gTilesetTiles_VermilionGym:: - .incbin "data/tilesets/secondary/vermilion_gym/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_VermilionGym:: - .incbin "data/tilesets/secondary/vermilion_gym/palettes/00.gbapal" - .incbin "data/tilesets/secondary/vermilion_gym/palettes/01.gbapal" - .incbin "data/tilesets/secondary/vermilion_gym/palettes/02.gbapal" - .incbin "data/tilesets/secondary/vermilion_gym/palettes/03.gbapal" - .incbin "data/tilesets/secondary/vermilion_gym/palettes/04.gbapal" - .incbin "data/tilesets/secondary/vermilion_gym/palettes/05.gbapal" - .incbin "data/tilesets/secondary/vermilion_gym/palettes/06.gbapal" - .incbin "data/tilesets/secondary/vermilion_gym/palettes/07.gbapal" - .incbin "data/tilesets/secondary/vermilion_gym/palettes/08.gbapal" - .incbin "data/tilesets/secondary/vermilion_gym/palettes/09.gbapal" - .incbin "data/tilesets/secondary/vermilion_gym/palettes/10.gbapal" - .incbin "data/tilesets/secondary/vermilion_gym/palettes/11.gbapal" - .incbin "data/tilesets/secondary/vermilion_gym/palettes/12.gbapal" - .incbin "data/tilesets/secondary/vermilion_gym/palettes/13.gbapal" - .incbin "data/tilesets/secondary/vermilion_gym/palettes/14.gbapal" - .incbin "data/tilesets/secondary/vermilion_gym/palettes/15.gbapal" - - .align 2 -gTilesetTiles_CeladonGym:: - .incbin "data/tilesets/secondary/celadon_gym/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_CeladonGym:: - .incbin "data/tilesets/secondary/celadon_gym/palettes/00.gbapal" - .incbin "data/tilesets/secondary/celadon_gym/palettes/01.gbapal" - .incbin "data/tilesets/secondary/celadon_gym/palettes/02.gbapal" - .incbin "data/tilesets/secondary/celadon_gym/palettes/03.gbapal" - .incbin "data/tilesets/secondary/celadon_gym/palettes/04.gbapal" - .incbin "data/tilesets/secondary/celadon_gym/palettes/05.gbapal" - .incbin "data/tilesets/secondary/celadon_gym/palettes/06.gbapal" - .incbin "data/tilesets/secondary/celadon_gym/palettes/07.gbapal" - .incbin "data/tilesets/secondary/celadon_gym/palettes/08.gbapal" - .incbin "data/tilesets/secondary/celadon_gym/palettes/09.gbapal" - .incbin "data/tilesets/secondary/celadon_gym/palettes/10.gbapal" - .incbin "data/tilesets/secondary/celadon_gym/palettes/11.gbapal" - .incbin "data/tilesets/secondary/celadon_gym/palettes/12.gbapal" - .incbin "data/tilesets/secondary/celadon_gym/palettes/13.gbapal" - .incbin "data/tilesets/secondary/celadon_gym/palettes/14.gbapal" - .incbin "data/tilesets/secondary/celadon_gym/palettes/15.gbapal" - - .align 2 -gTilesetTiles_FuchsiaGym:: - .incbin "data/tilesets/secondary/fuchsia_gym/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_FuchsiaGym:: - .incbin "data/tilesets/secondary/fuchsia_gym/palettes/00.gbapal" - .incbin "data/tilesets/secondary/fuchsia_gym/palettes/01.gbapal" - .incbin "data/tilesets/secondary/fuchsia_gym/palettes/02.gbapal" - .incbin "data/tilesets/secondary/fuchsia_gym/palettes/03.gbapal" - .incbin "data/tilesets/secondary/fuchsia_gym/palettes/04.gbapal" - .incbin "data/tilesets/secondary/fuchsia_gym/palettes/05.gbapal" - .incbin "data/tilesets/secondary/fuchsia_gym/palettes/06.gbapal" - .incbin "data/tilesets/secondary/fuchsia_gym/palettes/07.gbapal" - .incbin "data/tilesets/secondary/fuchsia_gym/palettes/08.gbapal" - .incbin "data/tilesets/secondary/fuchsia_gym/palettes/09.gbapal" - .incbin "data/tilesets/secondary/fuchsia_gym/palettes/10.gbapal" - .incbin "data/tilesets/secondary/fuchsia_gym/palettes/11.gbapal" - .incbin "data/tilesets/secondary/fuchsia_gym/palettes/12.gbapal" - .incbin "data/tilesets/secondary/fuchsia_gym/palettes/13.gbapal" - .incbin "data/tilesets/secondary/fuchsia_gym/palettes/14.gbapal" - .incbin "data/tilesets/secondary/fuchsia_gym/palettes/15.gbapal" - - .align 2 -gTilesetTiles_SaffronGym:: - .incbin "data/tilesets/secondary/saffron_gym/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_SaffronGym:: - .incbin "data/tilesets/secondary/saffron_gym/palettes/00.gbapal" - .incbin "data/tilesets/secondary/saffron_gym/palettes/01.gbapal" - .incbin "data/tilesets/secondary/saffron_gym/palettes/02.gbapal" - .incbin "data/tilesets/secondary/saffron_gym/palettes/03.gbapal" - .incbin "data/tilesets/secondary/saffron_gym/palettes/04.gbapal" - .incbin "data/tilesets/secondary/saffron_gym/palettes/05.gbapal" - .incbin "data/tilesets/secondary/saffron_gym/palettes/06.gbapal" - .incbin "data/tilesets/secondary/saffron_gym/palettes/07.gbapal" - .incbin "data/tilesets/secondary/saffron_gym/palettes/08.gbapal" - .incbin "data/tilesets/secondary/saffron_gym/palettes/09.gbapal" - .incbin "data/tilesets/secondary/saffron_gym/palettes/10.gbapal" - .incbin "data/tilesets/secondary/saffron_gym/palettes/11.gbapal" - .incbin "data/tilesets/secondary/saffron_gym/palettes/12.gbapal" - .incbin "data/tilesets/secondary/saffron_gym/palettes/13.gbapal" - .incbin "data/tilesets/secondary/saffron_gym/palettes/14.gbapal" - .incbin "data/tilesets/secondary/saffron_gym/palettes/15.gbapal" - - .align 2 -gTilesetTiles_CinnabarGym:: - .incbin "data/tilesets/secondary/cinnabar_gym/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_CinnabarGym:: - .incbin "data/tilesets/secondary/cinnabar_gym/palettes/00.gbapal" - .incbin "data/tilesets/secondary/cinnabar_gym/palettes/01.gbapal" - .incbin "data/tilesets/secondary/cinnabar_gym/palettes/02.gbapal" - .incbin "data/tilesets/secondary/cinnabar_gym/palettes/03.gbapal" - .incbin "data/tilesets/secondary/cinnabar_gym/palettes/04.gbapal" - .incbin "data/tilesets/secondary/cinnabar_gym/palettes/05.gbapal" - .incbin "data/tilesets/secondary/cinnabar_gym/palettes/06.gbapal" - .incbin "data/tilesets/secondary/cinnabar_gym/palettes/07.gbapal" - .incbin "data/tilesets/secondary/cinnabar_gym/palettes/08.gbapal" - .incbin "data/tilesets/secondary/cinnabar_gym/palettes/09.gbapal" - .incbin "data/tilesets/secondary/cinnabar_gym/palettes/10.gbapal" - .incbin "data/tilesets/secondary/cinnabar_gym/palettes/11.gbapal" - .incbin "data/tilesets/secondary/cinnabar_gym/palettes/12.gbapal" - .incbin "data/tilesets/secondary/cinnabar_gym/palettes/13.gbapal" - .incbin "data/tilesets/secondary/cinnabar_gym/palettes/14.gbapal" - .incbin "data/tilesets/secondary/cinnabar_gym/palettes/15.gbapal" - - .align 2 -gTilesetTiles_ViridianGym:: - .incbin "data/tilesets/secondary/viridian_gym/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_ViridianGym:: - .incbin "data/tilesets/secondary/viridian_gym/palettes/00.gbapal" - .incbin "data/tilesets/secondary/viridian_gym/palettes/01.gbapal" - .incbin "data/tilesets/secondary/viridian_gym/palettes/02.gbapal" - .incbin "data/tilesets/secondary/viridian_gym/palettes/03.gbapal" - .incbin "data/tilesets/secondary/viridian_gym/palettes/04.gbapal" - .incbin "data/tilesets/secondary/viridian_gym/palettes/05.gbapal" - .incbin "data/tilesets/secondary/viridian_gym/palettes/06.gbapal" - .incbin "data/tilesets/secondary/viridian_gym/palettes/07.gbapal" - .incbin "data/tilesets/secondary/viridian_gym/palettes/08.gbapal" - .incbin "data/tilesets/secondary/viridian_gym/palettes/09.gbapal" - .incbin "data/tilesets/secondary/viridian_gym/palettes/10.gbapal" - .incbin "data/tilesets/secondary/viridian_gym/palettes/11.gbapal" - .incbin "data/tilesets/secondary/viridian_gym/palettes/12.gbapal" - .incbin "data/tilesets/secondary/viridian_gym/palettes/13.gbapal" - .incbin "data/tilesets/secondary/viridian_gym/palettes/14.gbapal" - .incbin "data/tilesets/secondary/viridian_gym/palettes/15.gbapal" - - .align 2 -gTilesetTiles_SSAnne:: - .incbin "data/tilesets/secondary/ss_anne/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_SSAnne:: - .incbin "data/tilesets/secondary/ss_anne/palettes/00.gbapal" - .incbin "data/tilesets/secondary/ss_anne/palettes/01.gbapal" - .incbin "data/tilesets/secondary/ss_anne/palettes/02.gbapal" - .incbin "data/tilesets/secondary/ss_anne/palettes/03.gbapal" - .incbin "data/tilesets/secondary/ss_anne/palettes/04.gbapal" - .incbin "data/tilesets/secondary/ss_anne/palettes/05.gbapal" - .incbin "data/tilesets/secondary/ss_anne/palettes/06.gbapal" - .incbin "data/tilesets/secondary/ss_anne/palettes/07.gbapal" - .incbin "data/tilesets/secondary/ss_anne/palettes/08.gbapal" - .incbin "data/tilesets/secondary/ss_anne/palettes/09.gbapal" - .incbin "data/tilesets/secondary/ss_anne/palettes/10.gbapal" - .incbin "data/tilesets/secondary/ss_anne/palettes/11.gbapal" - .incbin "data/tilesets/secondary/ss_anne/palettes/12.gbapal" - .incbin "data/tilesets/secondary/ss_anne/palettes/13.gbapal" - .incbin "data/tilesets/secondary/ss_anne/palettes/14.gbapal" - .incbin "data/tilesets/secondary/ss_anne/palettes/15.gbapal" - - .align 2 -gTilesetTiles_Dummy2:: - .incbin "data/tilesets/secondary/dummy_2/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_Dummy2:: - .incbin "data/tilesets/secondary/dummy_2/palettes/00.gbapal" - .incbin "data/tilesets/secondary/dummy_2/palettes/01.gbapal" - .incbin "data/tilesets/secondary/dummy_2/palettes/02.gbapal" - .incbin "data/tilesets/secondary/dummy_2/palettes/03.gbapal" - .incbin "data/tilesets/secondary/dummy_2/palettes/04.gbapal" - .incbin "data/tilesets/secondary/dummy_2/palettes/05.gbapal" - .incbin "data/tilesets/secondary/dummy_2/palettes/06.gbapal" - .incbin "data/tilesets/secondary/dummy_2/palettes/07.gbapal" - .incbin "data/tilesets/secondary/dummy_2/palettes/08.gbapal" - .incbin "data/tilesets/secondary/dummy_2/palettes/09.gbapal" - .incbin "data/tilesets/secondary/dummy_2/palettes/10.gbapal" - .incbin "data/tilesets/secondary/dummy_2/palettes/11.gbapal" - .incbin "data/tilesets/secondary/dummy_2/palettes/12.gbapal" - .incbin "data/tilesets/secondary/dummy_2/palettes/13.gbapal" - .incbin "data/tilesets/secondary/dummy_2/palettes/14.gbapal" - .incbin "data/tilesets/secondary/dummy_2/palettes/15.gbapal" - - .align 2 -gTilesetTiles_ViridianForest:: - .incbin "data/tilesets/secondary/viridian_forest/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_ViridianForest:: - .incbin "data/tilesets/secondary/viridian_forest/palettes/00.gbapal" - .incbin "data/tilesets/secondary/viridian_forest/palettes/01.gbapal" - .incbin "data/tilesets/secondary/viridian_forest/palettes/02.gbapal" - .incbin "data/tilesets/secondary/viridian_forest/palettes/03.gbapal" - .incbin "data/tilesets/secondary/viridian_forest/palettes/04.gbapal" - .incbin "data/tilesets/secondary/viridian_forest/palettes/05.gbapal" - .incbin "data/tilesets/secondary/viridian_forest/palettes/06.gbapal" - .incbin "data/tilesets/secondary/viridian_forest/palettes/07.gbapal" - .incbin "data/tilesets/secondary/viridian_forest/palettes/08.gbapal" - .incbin "data/tilesets/secondary/viridian_forest/palettes/09.gbapal" - .incbin "data/tilesets/secondary/viridian_forest/palettes/10.gbapal" - .incbin "data/tilesets/secondary/viridian_forest/palettes/11.gbapal" - .incbin "data/tilesets/secondary/viridian_forest/palettes/12.gbapal" - .incbin "data/tilesets/secondary/viridian_forest/palettes/13.gbapal" - .incbin "data/tilesets/secondary/viridian_forest/palettes/14.gbapal" - .incbin "data/tilesets/secondary/viridian_forest/palettes/15.gbapal" - - .align 2 -gTilesetTiles_UnusedGatehouse1:: - .incbin "data/tilesets/secondary/unused_gatehouse_1/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_UnusedGatehouse1:: - .incbin "data/tilesets/secondary/unused_gatehouse_1/palettes/00.gbapal" - .incbin "data/tilesets/secondary/unused_gatehouse_1/palettes/01.gbapal" - .incbin "data/tilesets/secondary/unused_gatehouse_1/palettes/02.gbapal" - .incbin "data/tilesets/secondary/unused_gatehouse_1/palettes/03.gbapal" - .incbin "data/tilesets/secondary/unused_gatehouse_1/palettes/04.gbapal" - .incbin "data/tilesets/secondary/unused_gatehouse_1/palettes/05.gbapal" - .incbin "data/tilesets/secondary/unused_gatehouse_1/palettes/06.gbapal" - .incbin "data/tilesets/secondary/unused_gatehouse_1/palettes/07.gbapal" - .incbin "data/tilesets/secondary/unused_gatehouse_1/palettes/08.gbapal" - .incbin "data/tilesets/secondary/unused_gatehouse_1/palettes/09.gbapal" - .incbin "data/tilesets/secondary/unused_gatehouse_1/palettes/10.gbapal" - .incbin "data/tilesets/secondary/unused_gatehouse_1/palettes/11.gbapal" - .incbin "data/tilesets/secondary/unused_gatehouse_1/palettes/12.gbapal" - .incbin "data/tilesets/secondary/unused_gatehouse_1/palettes/13.gbapal" - .incbin "data/tilesets/secondary/unused_gatehouse_1/palettes/14.gbapal" - .incbin "data/tilesets/secondary/unused_gatehouse_1/palettes/15.gbapal" - - .align 2 -gTilesetTiles_RockTunnel:: - .incbin "data/tilesets/secondary/rock_tunnel/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_RockTunnel:: - .incbin "data/tilesets/secondary/rock_tunnel/palettes/00.gbapal" - .incbin "data/tilesets/secondary/rock_tunnel/palettes/01.gbapal" - .incbin "data/tilesets/secondary/rock_tunnel/palettes/02.gbapal" - .incbin "data/tilesets/secondary/rock_tunnel/palettes/03.gbapal" - .incbin "data/tilesets/secondary/rock_tunnel/palettes/04.gbapal" - .incbin "data/tilesets/secondary/rock_tunnel/palettes/05.gbapal" - .incbin "data/tilesets/secondary/rock_tunnel/palettes/06.gbapal" - .incbin "data/tilesets/secondary/rock_tunnel/palettes/07.gbapal" - .incbin "data/tilesets/secondary/rock_tunnel/palettes/08.gbapal" - .incbin "data/tilesets/secondary/rock_tunnel/palettes/09.gbapal" - .incbin "data/tilesets/secondary/rock_tunnel/palettes/10.gbapal" - .incbin "data/tilesets/secondary/rock_tunnel/palettes/11.gbapal" - .incbin "data/tilesets/secondary/rock_tunnel/palettes/12.gbapal" - .incbin "data/tilesets/secondary/rock_tunnel/palettes/13.gbapal" - .incbin "data/tilesets/secondary/rock_tunnel/palettes/14.gbapal" - .incbin "data/tilesets/secondary/rock_tunnel/palettes/15.gbapal" - - .align 2 -gTilesetTiles_DiglettsCave:: - .incbin "data/tilesets/secondary/digletts_cave/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_DiglettsCave:: - .incbin "data/tilesets/secondary/digletts_cave/palettes/00.gbapal" - .incbin "data/tilesets/secondary/digletts_cave/palettes/01.gbapal" - .incbin "data/tilesets/secondary/digletts_cave/palettes/02.gbapal" - .incbin "data/tilesets/secondary/digletts_cave/palettes/03.gbapal" - .incbin "data/tilesets/secondary/digletts_cave/palettes/04.gbapal" - .incbin "data/tilesets/secondary/digletts_cave/palettes/05.gbapal" - .incbin "data/tilesets/secondary/digletts_cave/palettes/06.gbapal" - .incbin "data/tilesets/secondary/digletts_cave/palettes/07.gbapal" - .incbin "data/tilesets/secondary/digletts_cave/palettes/08.gbapal" - .incbin "data/tilesets/secondary/digletts_cave/palettes/09.gbapal" - .incbin "data/tilesets/secondary/digletts_cave/palettes/10.gbapal" - .incbin "data/tilesets/secondary/digletts_cave/palettes/11.gbapal" - .incbin "data/tilesets/secondary/digletts_cave/palettes/12.gbapal" - .incbin "data/tilesets/secondary/digletts_cave/palettes/13.gbapal" - .incbin "data/tilesets/secondary/digletts_cave/palettes/14.gbapal" - .incbin "data/tilesets/secondary/digletts_cave/palettes/15.gbapal" - - .align 2 -gTilesetTiles_SeafoamIslands:: - .incbin "data/tilesets/secondary/seafoam_islands/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_SeafoamIslands:: - .incbin "data/tilesets/secondary/seafoam_islands/palettes/00.gbapal" - .incbin "data/tilesets/secondary/seafoam_islands/palettes/01.gbapal" - .incbin "data/tilesets/secondary/seafoam_islands/palettes/02.gbapal" - .incbin "data/tilesets/secondary/seafoam_islands/palettes/03.gbapal" - .incbin "data/tilesets/secondary/seafoam_islands/palettes/04.gbapal" - .incbin "data/tilesets/secondary/seafoam_islands/palettes/05.gbapal" - .incbin "data/tilesets/secondary/seafoam_islands/palettes/06.gbapal" - .incbin "data/tilesets/secondary/seafoam_islands/palettes/07.gbapal" - .incbin "data/tilesets/secondary/seafoam_islands/palettes/08.gbapal" - .incbin "data/tilesets/secondary/seafoam_islands/palettes/09.gbapal" - .incbin "data/tilesets/secondary/seafoam_islands/palettes/10.gbapal" - .incbin "data/tilesets/secondary/seafoam_islands/palettes/11.gbapal" - .incbin "data/tilesets/secondary/seafoam_islands/palettes/12.gbapal" - .incbin "data/tilesets/secondary/seafoam_islands/palettes/13.gbapal" - .incbin "data/tilesets/secondary/seafoam_islands/palettes/14.gbapal" - .incbin "data/tilesets/secondary/seafoam_islands/palettes/15.gbapal" - - .align 2 -gTilesetTiles_UnusedGatehouse2:: - .incbin "data/tilesets/secondary/unused_gatehouse_2/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_UnusedGatehouse2:: - .incbin "data/tilesets/secondary/unused_gatehouse_2/palettes/00.gbapal" - .incbin "data/tilesets/secondary/unused_gatehouse_2/palettes/01.gbapal" - .incbin "data/tilesets/secondary/unused_gatehouse_2/palettes/02.gbapal" - .incbin "data/tilesets/secondary/unused_gatehouse_2/palettes/03.gbapal" - .incbin "data/tilesets/secondary/unused_gatehouse_2/palettes/04.gbapal" - .incbin "data/tilesets/secondary/unused_gatehouse_2/palettes/05.gbapal" - .incbin "data/tilesets/secondary/unused_gatehouse_2/palettes/06.gbapal" - .incbin "data/tilesets/secondary/unused_gatehouse_2/palettes/07.gbapal" - .incbin "data/tilesets/secondary/unused_gatehouse_2/palettes/08.gbapal" - .incbin "data/tilesets/secondary/unused_gatehouse_2/palettes/09.gbapal" - .incbin "data/tilesets/secondary/unused_gatehouse_2/palettes/10.gbapal" - .incbin "data/tilesets/secondary/unused_gatehouse_2/palettes/11.gbapal" - .incbin "data/tilesets/secondary/unused_gatehouse_2/palettes/12.gbapal" - .incbin "data/tilesets/secondary/unused_gatehouse_2/palettes/13.gbapal" - .incbin "data/tilesets/secondary/unused_gatehouse_2/palettes/14.gbapal" - .incbin "data/tilesets/secondary/unused_gatehouse_2/palettes/15.gbapal" - - .align 2 -gTilesetTiles_CeruleanCave:: - .incbin "data/tilesets/secondary/cerulean_cave/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_CeruleanCave:: - .incbin "data/tilesets/secondary/cerulean_cave/palettes/00.gbapal" - .incbin "data/tilesets/secondary/cerulean_cave/palettes/01.gbapal" - .incbin "data/tilesets/secondary/cerulean_cave/palettes/02.gbapal" - .incbin "data/tilesets/secondary/cerulean_cave/palettes/03.gbapal" - .incbin "data/tilesets/secondary/cerulean_cave/palettes/04.gbapal" - .incbin "data/tilesets/secondary/cerulean_cave/palettes/05.gbapal" - .incbin "data/tilesets/secondary/cerulean_cave/palettes/06.gbapal" - .incbin "data/tilesets/secondary/cerulean_cave/palettes/07.gbapal" - .incbin "data/tilesets/secondary/cerulean_cave/palettes/08.gbapal" - .incbin "data/tilesets/secondary/cerulean_cave/palettes/09.gbapal" - .incbin "data/tilesets/secondary/cerulean_cave/palettes/10.gbapal" - .incbin "data/tilesets/secondary/cerulean_cave/palettes/11.gbapal" - .incbin "data/tilesets/secondary/cerulean_cave/palettes/12.gbapal" - .incbin "data/tilesets/secondary/cerulean_cave/palettes/13.gbapal" - .incbin "data/tilesets/secondary/cerulean_cave/palettes/14.gbapal" - .incbin "data/tilesets/secondary/cerulean_cave/palettes/15.gbapal" - - .align 2 -gTilesetTiles_GenericBuilding2:: - .incbin "data/tilesets/secondary/generic_building_2/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_GenericBuilding2:: - .incbin "data/tilesets/secondary/generic_building_2/palettes/00.gbapal" - .incbin "data/tilesets/secondary/generic_building_2/palettes/01.gbapal" - .incbin "data/tilesets/secondary/generic_building_2/palettes/02.gbapal" - .incbin "data/tilesets/secondary/generic_building_2/palettes/03.gbapal" - .incbin "data/tilesets/secondary/generic_building_2/palettes/04.gbapal" - .incbin "data/tilesets/secondary/generic_building_2/palettes/05.gbapal" - .incbin "data/tilesets/secondary/generic_building_2/palettes/06.gbapal" - .incbin "data/tilesets/secondary/generic_building_2/palettes/07.gbapal" - .incbin "data/tilesets/secondary/generic_building_2/palettes/08.gbapal" - .incbin "data/tilesets/secondary/generic_building_2/palettes/09.gbapal" - .incbin "data/tilesets/secondary/generic_building_2/palettes/10.gbapal" - .incbin "data/tilesets/secondary/generic_building_2/palettes/11.gbapal" - .incbin "data/tilesets/secondary/generic_building_2/palettes/12.gbapal" - .incbin "data/tilesets/secondary/generic_building_2/palettes/13.gbapal" - .incbin "data/tilesets/secondary/generic_building_2/palettes/14.gbapal" - .incbin "data/tilesets/secondary/generic_building_2/palettes/15.gbapal" - - .align 2 -gTilesetTiles_PowerPlant:: - .incbin "data/tilesets/secondary/power_plant/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_PowerPlant:: - .incbin "data/tilesets/secondary/power_plant/palettes/00.gbapal" - .incbin "data/tilesets/secondary/power_plant/palettes/01.gbapal" - .incbin "data/tilesets/secondary/power_plant/palettes/02.gbapal" - .incbin "data/tilesets/secondary/power_plant/palettes/03.gbapal" - .incbin "data/tilesets/secondary/power_plant/palettes/04.gbapal" - .incbin "data/tilesets/secondary/power_plant/palettes/05.gbapal" - .incbin "data/tilesets/secondary/power_plant/palettes/06.gbapal" - .incbin "data/tilesets/secondary/power_plant/palettes/07.gbapal" - .incbin "data/tilesets/secondary/power_plant/palettes/08.gbapal" - .incbin "data/tilesets/secondary/power_plant/palettes/09.gbapal" - .incbin "data/tilesets/secondary/power_plant/palettes/10.gbapal" - .incbin "data/tilesets/secondary/power_plant/palettes/11.gbapal" - .incbin "data/tilesets/secondary/power_plant/palettes/12.gbapal" - .incbin "data/tilesets/secondary/power_plant/palettes/13.gbapal" - .incbin "data/tilesets/secondary/power_plant/palettes/14.gbapal" - .incbin "data/tilesets/secondary/power_plant/palettes/15.gbapal" - - .align 2 -gTilesetTiles_SeaCottage:: - .incbin "data/tilesets/secondary/sea_cottage/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_SeaCottage:: - .incbin "data/tilesets/secondary/sea_cottage/palettes/00.gbapal" - .incbin "data/tilesets/secondary/sea_cottage/palettes/01.gbapal" - .incbin "data/tilesets/secondary/sea_cottage/palettes/02.gbapal" - .incbin "data/tilesets/secondary/sea_cottage/palettes/03.gbapal" - .incbin "data/tilesets/secondary/sea_cottage/palettes/04.gbapal" - .incbin "data/tilesets/secondary/sea_cottage/palettes/05.gbapal" - .incbin "data/tilesets/secondary/sea_cottage/palettes/06.gbapal" - .incbin "data/tilesets/secondary/sea_cottage/palettes/07.gbapal" - .incbin "data/tilesets/secondary/sea_cottage/palettes/08.gbapal" - .incbin "data/tilesets/secondary/sea_cottage/palettes/09.gbapal" - .incbin "data/tilesets/secondary/sea_cottage/palettes/10.gbapal" - .incbin "data/tilesets/secondary/sea_cottage/palettes/11.gbapal" - .incbin "data/tilesets/secondary/sea_cottage/palettes/12.gbapal" - .incbin "data/tilesets/secondary/sea_cottage/palettes/13.gbapal" - .incbin "data/tilesets/secondary/sea_cottage/palettes/14.gbapal" - .incbin "data/tilesets/secondary/sea_cottage/palettes/15.gbapal" - - .align 2 -gTilesetTiles_SilphCo:: - .incbin "data/tilesets/secondary/condominiums/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_SilphCo:: - .incbin "data/tilesets/secondary/condominiums/palettes/00.gbapal" - .incbin "data/tilesets/secondary/condominiums/palettes/01.gbapal" - .incbin "data/tilesets/secondary/condominiums/palettes/02.gbapal" - .incbin "data/tilesets/secondary/condominiums/palettes/03.gbapal" - .incbin "data/tilesets/secondary/condominiums/palettes/04.gbapal" - .incbin "data/tilesets/secondary/condominiums/palettes/05.gbapal" - .incbin "data/tilesets/secondary/condominiums/palettes/06.gbapal" - .incbin "data/tilesets/secondary/condominiums/palettes/07.gbapal" - .incbin "data/tilesets/secondary/condominiums/palettes/08.gbapal" - .incbin "data/tilesets/secondary/condominiums/palettes/09.gbapal" - .incbin "data/tilesets/secondary/condominiums/palettes/10.gbapal" - .incbin "data/tilesets/secondary/condominiums/palettes/11.gbapal" - .incbin "data/tilesets/secondary/condominiums/palettes/12.gbapal" - .incbin "data/tilesets/secondary/condominiums/palettes/13.gbapal" - .incbin "data/tilesets/secondary/condominiums/palettes/14.gbapal" - .incbin "data/tilesets/secondary/condominiums/palettes/15.gbapal" - - .align 2 -gTilesetTiles_UndergroundPath:: - .incbin "data/tilesets/secondary/underground_path/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_UndergroundPath:: - .incbin "data/tilesets/secondary/underground_path/palettes/00.gbapal" - .incbin "data/tilesets/secondary/underground_path/palettes/01.gbapal" - .incbin "data/tilesets/secondary/underground_path/palettes/02.gbapal" - .incbin "data/tilesets/secondary/underground_path/palettes/03.gbapal" - .incbin "data/tilesets/secondary/underground_path/palettes/04.gbapal" - .incbin "data/tilesets/secondary/underground_path/palettes/05.gbapal" - .incbin "data/tilesets/secondary/underground_path/palettes/06.gbapal" - .incbin "data/tilesets/secondary/underground_path/palettes/07.gbapal" - .incbin "data/tilesets/secondary/underground_path/palettes/08.gbapal" - .incbin "data/tilesets/secondary/underground_path/palettes/09.gbapal" - .incbin "data/tilesets/secondary/underground_path/palettes/10.gbapal" - .incbin "data/tilesets/secondary/underground_path/palettes/11.gbapal" - .incbin "data/tilesets/secondary/underground_path/palettes/12.gbapal" - .incbin "data/tilesets/secondary/underground_path/palettes/13.gbapal" - .incbin "data/tilesets/secondary/underground_path/palettes/14.gbapal" - .incbin "data/tilesets/secondary/underground_path/palettes/15.gbapal" - - .align 2 -gTilesetTiles_PokemonTower:: - .incbin "data/tilesets/secondary/pokemon_tower/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_PokemonTower:: - .incbin "data/tilesets/secondary/pokemon_tower/palettes/00.gbapal" - .incbin "data/tilesets/secondary/pokemon_tower/palettes/01.gbapal" - .incbin "data/tilesets/secondary/pokemon_tower/palettes/02.gbapal" - .incbin "data/tilesets/secondary/pokemon_tower/palettes/03.gbapal" - .incbin "data/tilesets/secondary/pokemon_tower/palettes/04.gbapal" - .incbin "data/tilesets/secondary/pokemon_tower/palettes/05.gbapal" - .incbin "data/tilesets/secondary/pokemon_tower/palettes/06.gbapal" - .incbin "data/tilesets/secondary/pokemon_tower/palettes/07.gbapal" - .incbin "data/tilesets/secondary/pokemon_tower/palettes/08.gbapal" - .incbin "data/tilesets/secondary/pokemon_tower/palettes/09.gbapal" - .incbin "data/tilesets/secondary/pokemon_tower/palettes/10.gbapal" - .incbin "data/tilesets/secondary/pokemon_tower/palettes/11.gbapal" - .incbin "data/tilesets/secondary/pokemon_tower/palettes/12.gbapal" - .incbin "data/tilesets/secondary/pokemon_tower/palettes/13.gbapal" - .incbin "data/tilesets/secondary/pokemon_tower/palettes/14.gbapal" - .incbin "data/tilesets/secondary/pokemon_tower/palettes/15.gbapal" - - .align 2 -gTilesetTiles_SafariZoneBuilding:: - .incbin "data/tilesets/secondary/safari_zone_building/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_SafariZoneBuilding:: - .incbin "data/tilesets/secondary/safari_zone_building/palettes/00.gbapal" - .incbin "data/tilesets/secondary/safari_zone_building/palettes/01.gbapal" - .incbin "data/tilesets/secondary/safari_zone_building/palettes/02.gbapal" - .incbin "data/tilesets/secondary/safari_zone_building/palettes/03.gbapal" - .incbin "data/tilesets/secondary/safari_zone_building/palettes/04.gbapal" - .incbin "data/tilesets/secondary/safari_zone_building/palettes/05.gbapal" - .incbin "data/tilesets/secondary/safari_zone_building/palettes/06.gbapal" - .incbin "data/tilesets/secondary/safari_zone_building/palettes/07.gbapal" - .incbin "data/tilesets/secondary/safari_zone_building/palettes/08.gbapal" - .incbin "data/tilesets/secondary/safari_zone_building/palettes/09.gbapal" - .incbin "data/tilesets/secondary/safari_zone_building/palettes/10.gbapal" - .incbin "data/tilesets/secondary/safari_zone_building/palettes/11.gbapal" - .incbin "data/tilesets/secondary/safari_zone_building/palettes/12.gbapal" - .incbin "data/tilesets/secondary/safari_zone_building/palettes/13.gbapal" - .incbin "data/tilesets/secondary/safari_zone_building/palettes/14.gbapal" - .incbin "data/tilesets/secondary/safari_zone_building/palettes/15.gbapal" - - .align 2 -gTilesetTiles_PokemonMansion:: - .incbin "data/tilesets/secondary/pokemon_mansion/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_PokemonMansion:: - .incbin "data/tilesets/secondary/pokemon_mansion/palettes/00.gbapal" - .incbin "data/tilesets/secondary/pokemon_mansion/palettes/01.gbapal" - .incbin "data/tilesets/secondary/pokemon_mansion/palettes/02.gbapal" - .incbin "data/tilesets/secondary/pokemon_mansion/palettes/03.gbapal" - .incbin "data/tilesets/secondary/pokemon_mansion/palettes/04.gbapal" - .incbin "data/tilesets/secondary/pokemon_mansion/palettes/05.gbapal" - .incbin "data/tilesets/secondary/pokemon_mansion/palettes/06.gbapal" - .incbin "data/tilesets/secondary/pokemon_mansion/palettes/07.gbapal" - .incbin "data/tilesets/secondary/pokemon_mansion/palettes/08.gbapal" - .incbin "data/tilesets/secondary/pokemon_mansion/palettes/09.gbapal" - .incbin "data/tilesets/secondary/pokemon_mansion/palettes/10.gbapal" - .incbin "data/tilesets/secondary/pokemon_mansion/palettes/11.gbapal" - .incbin "data/tilesets/secondary/pokemon_mansion/palettes/12.gbapal" - .incbin "data/tilesets/secondary/pokemon_mansion/palettes/13.gbapal" - .incbin "data/tilesets/secondary/pokemon_mansion/palettes/14.gbapal" - .incbin "data/tilesets/secondary/pokemon_mansion/palettes/15.gbapal" - - .align 2 -gTilesetTiles_RestaurantHotel:: - .incbin "data/tilesets/secondary/restaurant_hotel/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_RestaurantHotel:: - .incbin "data/tilesets/secondary/restaurant_hotel/palettes/00.gbapal" - .incbin "data/tilesets/secondary/restaurant_hotel/palettes/01.gbapal" - .incbin "data/tilesets/secondary/restaurant_hotel/palettes/02.gbapal" - .incbin "data/tilesets/secondary/restaurant_hotel/palettes/03.gbapal" - .incbin "data/tilesets/secondary/restaurant_hotel/palettes/04.gbapal" - .incbin "data/tilesets/secondary/restaurant_hotel/palettes/05.gbapal" - .incbin "data/tilesets/secondary/restaurant_hotel/palettes/06.gbapal" - .incbin "data/tilesets/secondary/restaurant_hotel/palettes/07.gbapal" - .incbin "data/tilesets/secondary/restaurant_hotel/palettes/08.gbapal" - .incbin "data/tilesets/secondary/restaurant_hotel/palettes/09.gbapal" - .incbin "data/tilesets/secondary/restaurant_hotel/palettes/10.gbapal" - .incbin "data/tilesets/secondary/restaurant_hotel/palettes/11.gbapal" - .incbin "data/tilesets/secondary/restaurant_hotel/palettes/12.gbapal" - .incbin "data/tilesets/secondary/restaurant_hotel/palettes/13.gbapal" - .incbin "data/tilesets/secondary/restaurant_hotel/palettes/14.gbapal" - .incbin "data/tilesets/secondary/restaurant_hotel/palettes/15.gbapal" - - .align 2 -gTilesetTiles_School:: - .incbin "data/tilesets/secondary/school/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_School:: - .incbin "data/tilesets/secondary/school/palettes/00.gbapal" - .incbin "data/tilesets/secondary/school/palettes/01.gbapal" - .incbin "data/tilesets/secondary/school/palettes/02.gbapal" - .incbin "data/tilesets/secondary/school/palettes/03.gbapal" - .incbin "data/tilesets/secondary/school/palettes/04.gbapal" - .incbin "data/tilesets/secondary/school/palettes/05.gbapal" - .incbin "data/tilesets/secondary/school/palettes/06.gbapal" - .incbin "data/tilesets/secondary/school/palettes/07.gbapal" - .incbin "data/tilesets/secondary/school/palettes/08.gbapal" - .incbin "data/tilesets/secondary/school/palettes/09.gbapal" - .incbin "data/tilesets/secondary/school/palettes/10.gbapal" - .incbin "data/tilesets/secondary/school/palettes/11.gbapal" - .incbin "data/tilesets/secondary/school/palettes/12.gbapal" - .incbin "data/tilesets/secondary/school/palettes/13.gbapal" - .incbin "data/tilesets/secondary/school/palettes/14.gbapal" - .incbin "data/tilesets/secondary/school/palettes/15.gbapal" - - .align 2 -gTilesetTiles_FanClubDaycare:: - .incbin "data/tilesets/secondary/fan_club_daycare/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_FanClubDaycare:: - .incbin "data/tilesets/secondary/fan_club_daycare/palettes/00.gbapal" - .incbin "data/tilesets/secondary/fan_club_daycare/palettes/01.gbapal" - .incbin "data/tilesets/secondary/fan_club_daycare/palettes/02.gbapal" - .incbin "data/tilesets/secondary/fan_club_daycare/palettes/03.gbapal" - .incbin "data/tilesets/secondary/fan_club_daycare/palettes/04.gbapal" - .incbin "data/tilesets/secondary/fan_club_daycare/palettes/05.gbapal" - .incbin "data/tilesets/secondary/fan_club_daycare/palettes/06.gbapal" - .incbin "data/tilesets/secondary/fan_club_daycare/palettes/07.gbapal" - .incbin "data/tilesets/secondary/fan_club_daycare/palettes/08.gbapal" - .incbin "data/tilesets/secondary/fan_club_daycare/palettes/09.gbapal" - .incbin "data/tilesets/secondary/fan_club_daycare/palettes/10.gbapal" - .incbin "data/tilesets/secondary/fan_club_daycare/palettes/11.gbapal" - .incbin "data/tilesets/secondary/fan_club_daycare/palettes/12.gbapal" - .incbin "data/tilesets/secondary/fan_club_daycare/palettes/13.gbapal" - .incbin "data/tilesets/secondary/fan_club_daycare/palettes/14.gbapal" - .incbin "data/tilesets/secondary/fan_club_daycare/palettes/15.gbapal" - - .align 2 -gTilesetTiles_BurgledHouse:: - .incbin "data/tilesets/secondary/burgled_house/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_BurgledHouse:: - .incbin "data/tilesets/secondary/burgled_house/palettes/00.gbapal" - .incbin "data/tilesets/secondary/burgled_house/palettes/01.gbapal" - .incbin "data/tilesets/secondary/burgled_house/palettes/02.gbapal" - .incbin "data/tilesets/secondary/burgled_house/palettes/03.gbapal" - .incbin "data/tilesets/secondary/burgled_house/palettes/04.gbapal" - .incbin "data/tilesets/secondary/burgled_house/palettes/05.gbapal" - .incbin "data/tilesets/secondary/burgled_house/palettes/06.gbapal" - .incbin "data/tilesets/secondary/burgled_house/palettes/07.gbapal" - .incbin "data/tilesets/secondary/burgled_house/palettes/08.gbapal" - .incbin "data/tilesets/secondary/burgled_house/palettes/09.gbapal" - .incbin "data/tilesets/secondary/burgled_house/palettes/10.gbapal" - .incbin "data/tilesets/secondary/burgled_house/palettes/11.gbapal" - .incbin "data/tilesets/secondary/burgled_house/palettes/12.gbapal" - .incbin "data/tilesets/secondary/burgled_house/palettes/13.gbapal" - .incbin "data/tilesets/secondary/burgled_house/palettes/14.gbapal" - .incbin "data/tilesets/secondary/burgled_house/palettes/15.gbapal" - - .align 2 -gTilesetTiles_Dummy3:: - .incbin "data/tilesets/secondary/dummy_3/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_Dummy3:: - .incbin "data/tilesets/secondary/dummy_3/palettes/00.gbapal" - .incbin "data/tilesets/secondary/dummy_3/palettes/01.gbapal" - .incbin "data/tilesets/secondary/dummy_3/palettes/02.gbapal" - .incbin "data/tilesets/secondary/dummy_3/palettes/03.gbapal" - .incbin "data/tilesets/secondary/dummy_3/palettes/04.gbapal" - .incbin "data/tilesets/secondary/dummy_3/palettes/05.gbapal" - .incbin "data/tilesets/secondary/dummy_3/palettes/06.gbapal" - .incbin "data/tilesets/secondary/dummy_3/palettes/07.gbapal" - .incbin "data/tilesets/secondary/dummy_3/palettes/08.gbapal" - .incbin "data/tilesets/secondary/dummy_3/palettes/09.gbapal" - .incbin "data/tilesets/secondary/dummy_3/palettes/10.gbapal" - .incbin "data/tilesets/secondary/dummy_3/palettes/11.gbapal" - .incbin "data/tilesets/secondary/dummy_3/palettes/12.gbapal" - .incbin "data/tilesets/secondary/dummy_3/palettes/13.gbapal" - .incbin "data/tilesets/secondary/dummy_3/palettes/14.gbapal" - .incbin "data/tilesets/secondary/dummy_3/palettes/15.gbapal" - - .align 2 -gTilesetTiles_Dummy4:: - .incbin "data/tilesets/secondary/dummy_4/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_Dummy4:: - .incbin "data/tilesets/secondary/dummy_4/palettes/00.gbapal" - .incbin "data/tilesets/secondary/dummy_4/palettes/01.gbapal" - .incbin "data/tilesets/secondary/dummy_4/palettes/02.gbapal" - .incbin "data/tilesets/secondary/dummy_4/palettes/03.gbapal" - .incbin "data/tilesets/secondary/dummy_4/palettes/04.gbapal" - .incbin "data/tilesets/secondary/dummy_4/palettes/05.gbapal" - .incbin "data/tilesets/secondary/dummy_4/palettes/06.gbapal" - .incbin "data/tilesets/secondary/dummy_4/palettes/07.gbapal" - .incbin "data/tilesets/secondary/dummy_4/palettes/08.gbapal" - .incbin "data/tilesets/secondary/dummy_4/palettes/09.gbapal" - .incbin "data/tilesets/secondary/dummy_4/palettes/10.gbapal" - .incbin "data/tilesets/secondary/dummy_4/palettes/11.gbapal" - .incbin "data/tilesets/secondary/dummy_4/palettes/12.gbapal" - .incbin "data/tilesets/secondary/dummy_4/palettes/13.gbapal" - .incbin "data/tilesets/secondary/dummy_4/palettes/14.gbapal" - .incbin "data/tilesets/secondary/dummy_4/palettes/15.gbapal" - - .align 2 -gTilesetTiles_MtEmber:: - .incbin "data/tilesets/secondary/mt_ember/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_MtEmber:: - .incbin "data/tilesets/secondary/mt_ember/palettes/00.gbapal" - .incbin "data/tilesets/secondary/mt_ember/palettes/01.gbapal" - .incbin "data/tilesets/secondary/mt_ember/palettes/02.gbapal" - .incbin "data/tilesets/secondary/mt_ember/palettes/03.gbapal" - .incbin "data/tilesets/secondary/mt_ember/palettes/04.gbapal" - .incbin "data/tilesets/secondary/mt_ember/palettes/05.gbapal" - .incbin "data/tilesets/secondary/mt_ember/palettes/06.gbapal" - .incbin "data/tilesets/secondary/mt_ember/palettes/07.gbapal" - .incbin "data/tilesets/secondary/mt_ember/palettes/08.gbapal" - .incbin "data/tilesets/secondary/mt_ember/palettes/09.gbapal" - .incbin "data/tilesets/secondary/mt_ember/palettes/10.gbapal" - .incbin "data/tilesets/secondary/mt_ember/palettes/11.gbapal" - .incbin "data/tilesets/secondary/mt_ember/palettes/12.gbapal" - .incbin "data/tilesets/secondary/mt_ember/palettes/13.gbapal" - .incbin "data/tilesets/secondary/mt_ember/palettes/14.gbapal" - .incbin "data/tilesets/secondary/mt_ember/palettes/15.gbapal" - - .align 2 -gTilesetTiles_BerryForest:: - .incbin "data/tilesets/secondary/berry_forest/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_BerryForest:: - .incbin "data/tilesets/secondary/berry_forest/palettes/00.gbapal" - .incbin "data/tilesets/secondary/berry_forest/palettes/01.gbapal" - .incbin "data/tilesets/secondary/berry_forest/palettes/02.gbapal" - .incbin "data/tilesets/secondary/berry_forest/palettes/03.gbapal" - .incbin "data/tilesets/secondary/berry_forest/palettes/04.gbapal" - .incbin "data/tilesets/secondary/berry_forest/palettes/05.gbapal" - .incbin "data/tilesets/secondary/berry_forest/palettes/06.gbapal" - .incbin "data/tilesets/secondary/berry_forest/palettes/07.gbapal" - .incbin "data/tilesets/secondary/berry_forest/palettes/08.gbapal" - .incbin "data/tilesets/secondary/berry_forest/palettes/09.gbapal" - .incbin "data/tilesets/secondary/berry_forest/palettes/10.gbapal" - .incbin "data/tilesets/secondary/berry_forest/palettes/11.gbapal" - .incbin "data/tilesets/secondary/berry_forest/palettes/12.gbapal" - .incbin "data/tilesets/secondary/berry_forest/palettes/13.gbapal" - .incbin "data/tilesets/secondary/berry_forest/palettes/14.gbapal" - .incbin "data/tilesets/secondary/berry_forest/palettes/15.gbapal" - - .align 2 -gTilesetTiles_NavelRock:: - .incbin "data/tilesets/secondary/navel_rock/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_NavelRock:: - .incbin "data/tilesets/secondary/navel_rock/palettes/00.gbapal" - .incbin "data/tilesets/secondary/navel_rock/palettes/01.gbapal" - .incbin "data/tilesets/secondary/navel_rock/palettes/02.gbapal" - .incbin "data/tilesets/secondary/navel_rock/palettes/03.gbapal" - .incbin "data/tilesets/secondary/navel_rock/palettes/04.gbapal" - .incbin "data/tilesets/secondary/navel_rock/palettes/05.gbapal" - .incbin "data/tilesets/secondary/navel_rock/palettes/06.gbapal" - .incbin "data/tilesets/secondary/navel_rock/palettes/07.gbapal" - .incbin "data/tilesets/secondary/navel_rock/palettes/08.gbapal" - .incbin "data/tilesets/secondary/navel_rock/palettes/09.gbapal" - .incbin "data/tilesets/secondary/navel_rock/palettes/10.gbapal" - .incbin "data/tilesets/secondary/navel_rock/palettes/11.gbapal" - .incbin "data/tilesets/secondary/navel_rock/palettes/12.gbapal" - .incbin "data/tilesets/secondary/navel_rock/palettes/13.gbapal" - .incbin "data/tilesets/secondary/navel_rock/palettes/14.gbapal" - .incbin "data/tilesets/secondary/navel_rock/palettes/15.gbapal" - - .align 2 -gTilesetTiles_TanobyRuins:: - .incbin "data/tilesets/secondary/tanoby_ruins/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_TanobyRuins:: - .incbin "data/tilesets/secondary/tanoby_ruins/palettes/00.gbapal" - .incbin "data/tilesets/secondary/tanoby_ruins/palettes/01.gbapal" - .incbin "data/tilesets/secondary/tanoby_ruins/palettes/02.gbapal" - .incbin "data/tilesets/secondary/tanoby_ruins/palettes/03.gbapal" - .incbin "data/tilesets/secondary/tanoby_ruins/palettes/04.gbapal" - .incbin "data/tilesets/secondary/tanoby_ruins/palettes/05.gbapal" - .incbin "data/tilesets/secondary/tanoby_ruins/palettes/06.gbapal" - .incbin "data/tilesets/secondary/tanoby_ruins/palettes/07.gbapal" - .incbin "data/tilesets/secondary/tanoby_ruins/palettes/08.gbapal" - .incbin "data/tilesets/secondary/tanoby_ruins/palettes/09.gbapal" - .incbin "data/tilesets/secondary/tanoby_ruins/palettes/10.gbapal" - .incbin "data/tilesets/secondary/tanoby_ruins/palettes/11.gbapal" - .incbin "data/tilesets/secondary/tanoby_ruins/palettes/12.gbapal" - .incbin "data/tilesets/secondary/tanoby_ruins/palettes/13.gbapal" - .incbin "data/tilesets/secondary/tanoby_ruins/palettes/14.gbapal" - .incbin "data/tilesets/secondary/tanoby_ruins/palettes/15.gbapal" - - .align 2 -gTilesetTiles_SeviiIslands123:: - .incbin "data/tilesets/secondary/sevii_islands_123/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_SeviiIslands123:: - .incbin "data/tilesets/secondary/sevii_islands_123/palettes/00.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_123/palettes/01.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_123/palettes/02.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_123/palettes/03.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_123/palettes/04.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_123/palettes/05.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_123/palettes/06.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_123/palettes/07.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_123/palettes/08.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_123/palettes/09.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_123/palettes/10.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_123/palettes/11.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_123/palettes/12.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_123/palettes/13.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_123/palettes/14.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_123/palettes/15.gbapal" - - .align 2 -gTilesetTiles_SeviiIslands45:: - .incbin "data/tilesets/secondary/sevii_islands_45/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_SeviiIslands45:: - .incbin "data/tilesets/secondary/sevii_islands_45/palettes/00.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_45/palettes/01.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_45/palettes/02.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_45/palettes/03.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_45/palettes/04.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_45/palettes/05.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_45/palettes/06.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_45/palettes/07.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_45/palettes/08.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_45/palettes/09.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_45/palettes/10.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_45/palettes/11.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_45/palettes/12.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_45/palettes/13.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_45/palettes/14.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_45/palettes/15.gbapal" - - .align 2 -gTilesetTiles_SeviiIslands67:: - .incbin "data/tilesets/secondary/sevii_islands_67/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_SeviiIslands67:: - .incbin "data/tilesets/secondary/sevii_islands_67/palettes/00.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_67/palettes/01.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_67/palettes/02.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_67/palettes/03.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_67/palettes/04.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_67/palettes/05.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_67/palettes/06.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_67/palettes/07.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_67/palettes/08.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_67/palettes/09.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_67/palettes/10.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_67/palettes/11.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_67/palettes/12.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_67/palettes/13.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_67/palettes/14.gbapal" - .incbin "data/tilesets/secondary/sevii_islands_67/palettes/15.gbapal" - - .align 2 -gTilesetTiles_TrainerTower:: - .incbin "data/tilesets/secondary/trainer_tower/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_TrainerTower:: - .incbin "data/tilesets/secondary/trainer_tower/palettes/00.gbapal" - .incbin "data/tilesets/secondary/trainer_tower/palettes/01.gbapal" - .incbin "data/tilesets/secondary/trainer_tower/palettes/02.gbapal" - .incbin "data/tilesets/secondary/trainer_tower/palettes/03.gbapal" - .incbin "data/tilesets/secondary/trainer_tower/palettes/04.gbapal" - .incbin "data/tilesets/secondary/trainer_tower/palettes/05.gbapal" - .incbin "data/tilesets/secondary/trainer_tower/palettes/06.gbapal" - .incbin "data/tilesets/secondary/trainer_tower/palettes/07.gbapal" - .incbin "data/tilesets/secondary/trainer_tower/palettes/08.gbapal" - .incbin "data/tilesets/secondary/trainer_tower/palettes/09.gbapal" - .incbin "data/tilesets/secondary/trainer_tower/palettes/10.gbapal" - .incbin "data/tilesets/secondary/trainer_tower/palettes/11.gbapal" - .incbin "data/tilesets/secondary/trainer_tower/palettes/12.gbapal" - .incbin "data/tilesets/secondary/trainer_tower/palettes/13.gbapal" - .incbin "data/tilesets/secondary/trainer_tower/palettes/14.gbapal" - .incbin "data/tilesets/secondary/trainer_tower/palettes/15.gbapal" - - .align 2 -gTilesetTiles_IslandHarbor:: - .incbin "data/tilesets/secondary/island_harbor/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_IslandHarbor:: - .incbin "data/tilesets/secondary/island_harbor/palettes/00.gbapal" - .incbin "data/tilesets/secondary/island_harbor/palettes/01.gbapal" - .incbin "data/tilesets/secondary/island_harbor/palettes/02.gbapal" - .incbin "data/tilesets/secondary/island_harbor/palettes/03.gbapal" - .incbin "data/tilesets/secondary/island_harbor/palettes/04.gbapal" - .incbin "data/tilesets/secondary/island_harbor/palettes/05.gbapal" - .incbin "data/tilesets/secondary/island_harbor/palettes/06.gbapal" - .incbin "data/tilesets/secondary/island_harbor/palettes/07.gbapal" - .incbin "data/tilesets/secondary/island_harbor/palettes/08.gbapal" - .incbin "data/tilesets/secondary/island_harbor/palettes/09.gbapal" - .incbin "data/tilesets/secondary/island_harbor/palettes/10.gbapal" - .incbin "data/tilesets/secondary/island_harbor/palettes/11.gbapal" - .incbin "data/tilesets/secondary/island_harbor/palettes/12.gbapal" - .incbin "data/tilesets/secondary/island_harbor/palettes/13.gbapal" - .incbin "data/tilesets/secondary/island_harbor/palettes/14.gbapal" - .incbin "data/tilesets/secondary/island_harbor/palettes/15.gbapal" - - .align 2 -gTilesetTiles_PokemonLeague:: - .incbin "data/tilesets/secondary/pokemon_league/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_PokemonLeague:: - .incbin "data/tilesets/secondary/pokemon_league/palettes/00.gbapal" - .incbin "data/tilesets/secondary/pokemon_league/palettes/01.gbapal" - .incbin "data/tilesets/secondary/pokemon_league/palettes/02.gbapal" - .incbin "data/tilesets/secondary/pokemon_league/palettes/03.gbapal" - .incbin "data/tilesets/secondary/pokemon_league/palettes/04.gbapal" - .incbin "data/tilesets/secondary/pokemon_league/palettes/05.gbapal" - .incbin "data/tilesets/secondary/pokemon_league/palettes/06.gbapal" - .incbin "data/tilesets/secondary/pokemon_league/palettes/07.gbapal" - .incbin "data/tilesets/secondary/pokemon_league/palettes/08.gbapal" - .incbin "data/tilesets/secondary/pokemon_league/palettes/09.gbapal" - .incbin "data/tilesets/secondary/pokemon_league/palettes/10.gbapal" - .incbin "data/tilesets/secondary/pokemon_league/palettes/11.gbapal" - .incbin "data/tilesets/secondary/pokemon_league/palettes/12.gbapal" - .incbin "data/tilesets/secondary/pokemon_league/palettes/13.gbapal" - .incbin "data/tilesets/secondary/pokemon_league/palettes/14.gbapal" - .incbin "data/tilesets/secondary/pokemon_league/palettes/15.gbapal" - - .align 2 -gTilesetTiles_HallOfFame:: - .incbin "data/tilesets/secondary/hall_of_fame/tiles.4bpp.lz" - - .align 2 -gTilesetPalettes_HallOfFame:: - .incbin "data/tilesets/secondary/hall_of_fame/palettes/00.gbapal" - .incbin "data/tilesets/secondary/hall_of_fame/palettes/01.gbapal" - .incbin "data/tilesets/secondary/hall_of_fame/palettes/02.gbapal" - .incbin "data/tilesets/secondary/hall_of_fame/palettes/03.gbapal" - .incbin "data/tilesets/secondary/hall_of_fame/palettes/04.gbapal" - .incbin "data/tilesets/secondary/hall_of_fame/palettes/05.gbapal" - .incbin "data/tilesets/secondary/hall_of_fame/palettes/06.gbapal" - .incbin "data/tilesets/secondary/hall_of_fame/palettes/07.gbapal" - .incbin "data/tilesets/secondary/hall_of_fame/palettes/08.gbapal" - .incbin "data/tilesets/secondary/hall_of_fame/palettes/09.gbapal" - .incbin "data/tilesets/secondary/hall_of_fame/palettes/10.gbapal" - .incbin "data/tilesets/secondary/hall_of_fame/palettes/11.gbapal" - .incbin "data/tilesets/secondary/hall_of_fame/palettes/12.gbapal" - .incbin "data/tilesets/secondary/hall_of_fame/palettes/13.gbapal" - .incbin "data/tilesets/secondary/hall_of_fame/palettes/14.gbapal" - .incbin "data/tilesets/secondary/hall_of_fame/palettes/15.gbapal" diff --git a/data/tilesets/headers.inc b/data/tilesets/headers.inc deleted file mode 100644 index cac3cf82f..000000000 --- a/data/tilesets/headers.inc +++ /dev/null @@ -1,749 +0,0 @@ - - .align 2 -gTileset_General:: - .byte TRUE @ is compressed - .byte FALSE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_General - .4byte gTilesetPalettes_General - .4byte gMetatiles_General - .4byte InitTilesetAnim_General - .4byte gMetatileAttributes_General - - .align 2 -gTileset_PalletTown:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_PalletTown - .4byte gTilesetPalettes_PalletTown - .4byte gMetatiles_PalletTown - .4byte 0x0 - .4byte gMetatileAttributes_PalletTown - - .align 2 -gTileset_ViridianCity:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_ViridianCity - .4byte gTilesetPalettes_ViridianCity - .4byte gMetatiles_ViridianCity - .4byte 0x0 - .4byte gMetatileAttributes_ViridianCity - - .align 2 -gTileset_PewterCity:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_PewterCity - .4byte gTilesetPalettes_PewterCity - .4byte gMetatiles_PewterCity - .4byte 0x0 - .4byte gMetatileAttributes_PewterCity - - .align 2 -gTileset_CeruleanCity:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_CeruleanCity - .4byte gTilesetPalettes_CeruleanCity - .4byte gMetatiles_CeruleanCity - .4byte 0x0 - .4byte gMetatileAttributes_CeruleanCity - - .align 2 -gTileset_LavenderTown:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_LavenderTown - .4byte gTilesetPalettes_LavenderTown - .4byte gMetatiles_LavenderTown - .4byte 0x0 - .4byte gMetatileAttributes_LavenderTown - - .align 2 -gTileset_VermilionCity:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_VermilionCity - .4byte gTilesetPalettes_VermilionCity - .4byte gMetatiles_VermilionCity - .4byte 0x0 - .4byte gMetatileAttributes_VermilionCity - - .align 2 -gTileset_CeladonCity:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_CeladonCity - .4byte gTilesetPalettes_CeladonCity - .4byte gMetatiles_CeladonCity - .4byte InitTilesetAnim_CeladonCity - .4byte gMetatileAttributes_CeladonCity - - .align 2 -gTileset_FuchsiaCity:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_FuchsiaCity - .4byte gTilesetPalettes_FuchsiaCity - .4byte gMetatiles_FuchsiaCity - .4byte 0x0 - .4byte gMetatileAttributes_FuchsiaCity - - .align 2 -gTileset_CinnabarIsland:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_CinnabarIsland - .4byte gTilesetPalettes_CinnabarIsland - .4byte gMetatiles_CinnabarIsland - .4byte 0x0 - .4byte gMetatileAttributes_CinnabarIsland - - .align 2 -gTileset_IndigoPlateau:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_IndigoPlateau - .4byte gTilesetPalettes_IndigoPlateau - .4byte gMetatiles_IndigoPlateau - .4byte 0x0 - .4byte gMetatileAttributes_IndigoPlateau - - .align 2 -gTileset_SaffronCity:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_SaffronCity - .4byte gTilesetPalettes_SaffronCity - .4byte gMetatiles_SaffronCity - .4byte 0x0 - .4byte gMetatileAttributes_SaffronCity - - .align 2 -gTileset_Building:: - .byte TRUE @ is compressed - .byte FALSE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_Building - .4byte gTilesetPalettes_Building - .4byte gMetatiles_Building - .4byte 0x0 - .4byte gMetatileAttributes_Building - - .align 2 -gTileset_Mart:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_Mart - .4byte gTilesetPalettes_Mart - .4byte gMetatiles_Mart - .4byte 0x0 - .4byte gMetatileAttributes_Mart - - .align 2 -gTileset_PokemonCenter:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_PokemonCenter - .4byte gTilesetPalettes_PokemonCenter - .4byte gMetatiles_PokemonCenter - .4byte 0x0 - .4byte gMetatileAttributes_PokemonCenter - - .align 2 -gTileset_Cave:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_Cave - .4byte gTilesetPalettes_Cave - .4byte gMetatiles_Cave - .4byte 0x0 - .4byte gMetatileAttributes_Cave - - .align 2 -gTileset_Dummy1:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_Dummy1 - .4byte gTilesetPalettes_Dummy1 - .4byte gMetatiles_Dummy1 - .4byte 0x0 - .4byte gMetatileAttributes_Dummy1 - - .align 2 -gTileset_Museum:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_Museum - .4byte gTilesetPalettes_Museum - .4byte gMetatiles_Museum - .4byte 0x0 - .4byte gMetatileAttributes_Museum - - .align 2 -gTileset_CableClub:: - .byte FALSE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_CableClub - .4byte gTilesetPalettes_CableClub - .4byte gMetatiles_CableClub - .4byte 0x0 - .4byte gMetatileAttributes_CableClub - - .align 2 -gTileset_BikeShop:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_BikeShop - .4byte gTilesetPalettes_BikeShop - .4byte gMetatiles_BikeShop - .4byte 0x0 - .4byte gMetatileAttributes_BikeShop - - .align 2 -gTileset_GenericBuilding1:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_GenericBuilding1 - .4byte gTilesetPalettes_GenericBuilding1 - .4byte gMetatiles_GenericBuilding1 - .4byte 0x0 - .4byte gMetatileAttributes_GenericBuilding1 - - .align 2 -gTileset_Lab:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_Lab - .4byte gTilesetPalettes_Lab - .4byte gMetatiles_Lab - .4byte 0x0 - .4byte gMetatileAttributes_Lab - - .align 2 -gTileset_FuchsiaGym:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_FuchsiaGym - .4byte gTilesetPalettes_FuchsiaGym - .4byte gMetatiles_FuchsiaGym - .4byte 0x0 - .4byte gMetatileAttributes_FuchsiaGym - - .align 2 -gTileset_ViridianGym:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_ViridianGym - .4byte gTilesetPalettes_ViridianGym - .4byte gMetatiles_ViridianGym - .4byte 0x0 - .4byte gMetatileAttributes_ViridianGym - - .align 2 -gTileset_HoennBuilding:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_HoennBuilding - .4byte gTilesetPalettes_HoennBuilding - .4byte gMetatiles_HoennBuilding - .4byte 0x0 - .4byte gMetatileAttributes_HoennBuilding - - .align 2 -gTileset_GameCorner:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_GameCorner - .4byte gTilesetPalettes_GameCorner - .4byte gMetatiles_GameCorner - .4byte 0x0 - .4byte gMetatileAttributes_GameCorner - - .align 2 -gTileset_PewterGym:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_PewterGym - .4byte gTilesetPalettes_PewterGym - .4byte gMetatiles_PewterGym - .4byte 0x0 - .4byte gMetatileAttributes_PewterGym - - .align 2 -gTileset_CeruleanGym:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_CeruleanGym - .4byte gTilesetPalettes_CeruleanGym - .4byte gMetatiles_CeruleanGym - .4byte 0x0 - .4byte gMetatileAttributes_CeruleanGym - - .align 2 -gTileset_VermilionGym:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_VermilionGym - .4byte gTilesetPalettes_VermilionGym - .4byte gMetatiles_VermilionGym - .4byte InitTilesetAnim_VermilionGym - .4byte gMetatileAttributes_VermilionGym - - .align 2 -gTileset_CeladonGym:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_CeladonGym - .4byte gTilesetPalettes_CeladonGym - .4byte gMetatiles_CeladonGym - .4byte InitTilesetAnim_CeladonGym - .4byte gMetatileAttributes_CeladonGym - - .align 2 -gTileset_SaffronGym:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_SaffronGym - .4byte gTilesetPalettes_SaffronGym - .4byte gMetatiles_SaffronGym - .4byte 0x0 - .4byte gMetatileAttributes_SaffronGym - - .align 2 -gTileset_CinnabarGym:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_CinnabarGym - .4byte gTilesetPalettes_CinnabarGym - .4byte gMetatiles_CinnabarGym - .4byte 0x0 - .4byte gMetatileAttributes_CinnabarGym - - .align 2 -gTileset_SSAnne:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_SSAnne - .4byte gTilesetPalettes_SSAnne - .4byte gMetatiles_SSAnne - .4byte 0x0 - .4byte gMetatileAttributes_SSAnne - - .align 2 -gTileset_Dummy2:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_Dummy2 - .4byte gTilesetPalettes_Dummy2 - .4byte gMetatiles_Dummy2 - .4byte 0x0 - .4byte gMetatileAttributes_Dummy2 - - .align 2 -gTileset_ViridianForest:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_ViridianForest - .4byte gTilesetPalettes_ViridianForest - .4byte gMetatiles_ViridianForest - .4byte 0x0 - .4byte gMetatileAttributes_ViridianForest - - .align 2 -gTileset_UnusedGatehouse1:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_UnusedGatehouse1 - .4byte gTilesetPalettes_UnusedGatehouse1 - .4byte gMetatiles_UnusedGatehouse1 - .4byte 0x0 - .4byte gMetatileAttributes_UnusedGatehouse1 - - .align 2 -gTileset_RockTunnel:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_RockTunnel - .4byte gTilesetPalettes_RockTunnel - .4byte gMetatiles_RockTunnel - .4byte 0x0 - .4byte gMetatileAttributes_RockTunnel - - .align 2 -gTileset_DiglettsCave:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_DiglettsCave - .4byte gTilesetPalettes_DiglettsCave - .4byte gMetatiles_DiglettsCave - .4byte 0x0 - .4byte gMetatileAttributes_DiglettsCave - - .align 2 -gTileset_SeafoamIslands:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_SeafoamIslands - .4byte gTilesetPalettes_SeafoamIslands - .4byte gMetatiles_SeafoamIslands - .4byte 0x0 - .4byte gMetatileAttributes_SeafoamIslands - - .align 2 -gTileset_UnusedGatehouse2:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_UnusedGatehouse2 - .4byte gTilesetPalettes_UnusedGatehouse2 - .4byte gMetatiles_UnusedGatehouse2 - .4byte 0x0 - .4byte gMetatileAttributes_UnusedGatehouse2 - - .align 2 -gTileset_CeruleanCave:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_CeruleanCave - .4byte gTilesetPalettes_CeruleanCave - .4byte gMetatiles_CeruleanCave - .4byte 0x0 - .4byte gMetatileAttributes_CeruleanCave - - .align 2 -gTileset_DepartmentStore:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_DepartmentStore - .4byte gTilesetPalettes_DepartmentStore - .4byte gMetatiles_DepartmentStore - .4byte 0x0 - .4byte gMetatileAttributes_DepartmentStore - - .align 2 -gTileset_GenericBuilding2:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_GenericBuilding2 - .4byte gTilesetPalettes_GenericBuilding2 - .4byte gMetatiles_GenericBuilding2 - .4byte 0x0 - .4byte gMetatileAttributes_GenericBuilding2 - - .align 2 -gTileset_PowerPlant:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_PowerPlant - .4byte gTilesetPalettes_PowerPlant - .4byte gMetatiles_PowerPlant - .4byte 0x0 - .4byte gMetatileAttributes_PowerPlant - - .align 2 -gTileset_SeaCottage:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_SeaCottage - .4byte gTilesetPalettes_SeaCottage - .4byte gMetatiles_SeaCottage - .4byte 0x0 - .4byte gMetatileAttributes_SeaCottage - - .align 2 -gTileset_SilphCo:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_SilphCo - .4byte gTilesetPalettes_SilphCo - .4byte gMetatiles_SilphCo - .4byte InitTilesetAnim_SilphCo - .4byte gMetatileAttributes_SilphCo - - .align 2 -gTileset_UndergroundPath:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_UndergroundPath - .4byte gTilesetPalettes_UndergroundPath - .4byte gMetatiles_UndergroundPath - .4byte 0x0 - .4byte gMetatileAttributes_UndergroundPath - - .align 2 -gTileset_PokemonTower:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_PokemonTower - .4byte gTilesetPalettes_PokemonTower - .4byte gMetatiles_PokemonTower - .4byte 0x0 - .4byte gMetatileAttributes_PokemonTower - - .align 2 -gTileset_SafariZoneBuilding:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_SafariZoneBuilding - .4byte gTilesetPalettes_SafariZoneBuilding - .4byte gMetatiles_SafariZoneBuilding - .4byte 0x0 - .4byte gMetatileAttributes_SafariZoneBuilding - - .align 2 -gTileset_PokemonMansion:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_PokemonMansion - .4byte gTilesetPalettes_PokemonMansion - .4byte gMetatiles_PokemonMansion - .4byte 0x0 - .4byte gMetatileAttributes_PokemonMansion - - .align 2 -gTileset_RestaurantHotel:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_RestaurantHotel - .4byte gTilesetPalettes_RestaurantHotel - .4byte gMetatiles_RestaurantHotel - .4byte 0x0 - .4byte gMetatileAttributes_RestaurantHotel - - .align 2 -gTileset_School:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_School - .4byte gTilesetPalettes_School - .4byte gMetatiles_School - .4byte 0x0 - .4byte gMetatileAttributes_School - - .align 2 -gTileset_FanClubDaycare:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_FanClubDaycare - .4byte gTilesetPalettes_FanClubDaycare - .4byte gMetatiles_FanClubDaycare - .4byte 0x0 - .4byte gMetatileAttributes_FanClubDaycare - - .align 2 -gTileset_Condominiums:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_SilphCo - .4byte gTilesetPalettes_SilphCo - .4byte gMetatiles_Condominiums - .4byte 0x0 - .4byte gMetatileAttributes_Condominiums - - .align 2 -gTileset_BurgledHouse:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_BurgledHouse - .4byte gTilesetPalettes_BurgledHouse - .4byte gMetatiles_BurgledHouse - .4byte 0x0 - .4byte gMetatileAttributes_BurgledHouse - - .align 2 -gTileset_Dummy3:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_Dummy3 - .4byte gTilesetPalettes_Dummy3 - .4byte gMetatiles_Dummy3 - .4byte 0x0 - .4byte gMetatileAttributes_Dummy3 - - .align 2 -gTileset_Dummy4:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_Dummy4 - .4byte gTilesetPalettes_Dummy4 - .4byte gMetatiles_Dummy4 - .4byte 0x0 - .4byte gMetatileAttributes_Dummy4 - - .align 2 -gTileset_MtEmber:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_MtEmber - .4byte gTilesetPalettes_MtEmber - .4byte gMetatiles_MtEmber - .4byte InitTilesetAnim_MtEmber - .4byte gMetatileAttributes_MtEmber - - .align 2 -gTileset_BerryForest:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_BerryForest - .4byte gTilesetPalettes_BerryForest - .4byte gMetatiles_BerryForest - .4byte 0x0 - .4byte gMetatileAttributes_BerryForest - - .align 2 -gTileset_NavelRock:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_NavelRock - .4byte gTilesetPalettes_NavelRock - .4byte gMetatiles_NavelRock - .4byte 0x0 - .4byte gMetatileAttributes_NavelRock - - .align 2 -gTileset_TanobyRuins:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_TanobyRuins - .4byte gTilesetPalettes_TanobyRuins - .4byte gMetatiles_TanobyRuins - .4byte 0x0 - .4byte gMetatileAttributes_TanobyRuins - - .align 2 -gTileset_SeviiIslands123:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_SeviiIslands123 - .4byte gTilesetPalettes_SeviiIslands123 - .4byte gMetatiles_SeviiIslands123 - .4byte 0x0 - .4byte gMetatileAttributes_SeviiIslands123 - - .align 2 -gTileset_SeviiIslands45:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_SeviiIslands45 - .4byte gTilesetPalettes_SeviiIslands45 - .4byte gMetatiles_SeviiIslands45 - .4byte 0x0 - .4byte gMetatileAttributes_SeviiIslands45 - - .align 2 -gTileset_SeviiIslands67:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_SeviiIslands67 - .4byte gTilesetPalettes_SeviiIslands67 - .4byte gMetatiles_SeviiIslands67 - .4byte 0x0 - .4byte gMetatileAttributes_SeviiIslands67 - - .align 2 -gTileset_TrainerTower:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_TrainerTower - .4byte gTilesetPalettes_TrainerTower - .4byte gMetatiles_TrainerTower - .4byte 0x0 - .4byte gMetatileAttributes_TrainerTower - - .align 2 -gTileset_IslandHarbor:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_IslandHarbor - .4byte gTilesetPalettes_IslandHarbor - .4byte gMetatiles_IslandHarbor - .4byte 0x0 - .4byte gMetatileAttributes_IslandHarbor - - .align 2 -gTileset_PokemonLeague:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_PokemonLeague - .4byte gTilesetPalettes_PokemonLeague - .4byte gMetatiles_PokemonLeague - .4byte 0x0 - .4byte gMetatileAttributes_PokemonLeague - - .align 2 -gTileset_HallOfFame:: - .byte TRUE @ is compressed - .byte TRUE @ is secondary - .2byte 0 @ padding - .4byte gTilesetTiles_HallOfFame - .4byte gTilesetPalettes_HallOfFame - .4byte gMetatiles_HallOfFame - .4byte 0x0 - .4byte gMetatileAttributes_HallOfFame - diff --git a/data/tilesets/metatiles.inc b/data/tilesets/metatiles.inc deleted file mode 100644 index af9fe19a1..000000000 --- a/data/tilesets/metatiles.inc +++ /dev/null @@ -1,543 +0,0 @@ - .align 1 -gMetatiles_General:: - .incbin "data/tilesets/primary/general/metatiles.bin" - - .align 1 -gMetatileAttributes_General:: - .incbin "data/tilesets/primary/general/metatile_attributes.bin" - - .align 1 -gMetatiles_PalletTown:: - .incbin "data/tilesets/secondary/pallet_town/metatiles.bin" - - .align 1 -gMetatileAttributes_PalletTown:: - .incbin "data/tilesets/secondary/pallet_town/metatile_attributes.bin" - - .align 1 -gMetatiles_ViridianCity:: - .incbin "data/tilesets/secondary/viridian_city/metatiles.bin" - - .align 1 -gMetatileAttributes_ViridianCity:: - .incbin "data/tilesets/secondary/viridian_city/metatile_attributes.bin" - - .align 1 -gMetatiles_PewterCity:: - .incbin "data/tilesets/secondary/pewter_city/metatiles.bin" - - .align 1 -gMetatileAttributes_PewterCity:: - .incbin "data/tilesets/secondary/pewter_city/metatile_attributes.bin" - - .align 1 -gMetatiles_CeruleanCity:: - .incbin "data/tilesets/secondary/cerulean_city/metatiles.bin" - - .align 1 -gMetatileAttributes_CeruleanCity:: - .incbin "data/tilesets/secondary/cerulean_city/metatile_attributes.bin" - - .align 1 -gMetatiles_LavenderTown:: - .incbin "data/tilesets/secondary/lavender_town/metatiles.bin" - - .align 1 -gMetatileAttributes_LavenderTown:: - .incbin "data/tilesets/secondary/lavender_town/metatile_attributes.bin" - - .align 1 -gMetatiles_VermilionCity:: - .incbin "data/tilesets/secondary/vermilion_city/metatiles.bin" - - .align 1 -gMetatileAttributes_VermilionCity:: - .incbin "data/tilesets/secondary/vermilion_city/metatile_attributes.bin" - - .align 1 -gMetatiles_CeladonCity:: - .incbin "data/tilesets/secondary/celadon_city/metatiles.bin" - - .align 1 -gMetatileAttributes_CeladonCity:: - .incbin "data/tilesets/secondary/celadon_city/metatile_attributes.bin" - - .align 1 -gMetatiles_FuchsiaCity:: - .incbin "data/tilesets/secondary/fuchsia_city/metatiles.bin" - - .align 1 -gMetatileAttributes_FuchsiaCity:: - .incbin "data/tilesets/secondary/fuchsia_city/metatile_attributes.bin" - - .align 1 -gMetatiles_CinnabarIsland:: - .incbin "data/tilesets/secondary/cinnabar_island/metatiles.bin" - - .align 1 -gMetatileAttributes_CinnabarIsland:: - .incbin "data/tilesets/secondary/cinnabar_island/metatile_attributes.bin" - - .align 1 -gMetatiles_IndigoPlateau:: - .incbin "data/tilesets/secondary/indigo_plateau/metatiles.bin" - - .align 1 -gMetatileAttributes_IndigoPlateau:: - .incbin "data/tilesets/secondary/indigo_plateau/metatile_attributes.bin" - - .align 1 -gMetatiles_SaffronCity:: - .incbin "data/tilesets/secondary/saffron_city/metatiles.bin" - - .align 1 -gMetatileAttributes_SaffronCity:: - .incbin "data/tilesets/secondary/saffron_city/metatile_attributes.bin" - - .align 1 -gMetatiles_PewterGym:: - .incbin "data/tilesets/secondary/pewter_gym/metatiles.bin" - - .align 1 -gMetatileAttributes_PewterGym:: - .incbin "data/tilesets/secondary/pewter_gym/metatile_attributes.bin" - - .align 1 -gMetatiles_CeruleanGym:: - .incbin "data/tilesets/secondary/cerulean_gym/metatiles.bin" - - .align 1 -gMetatileAttributes_CeruleanGym:: - .incbin "data/tilesets/secondary/cerulean_gym/metatile_attributes.bin" - - .align 1 -gMetatiles_VermilionGym:: - .incbin "data/tilesets/secondary/vermilion_gym/metatiles.bin" - - .align 1 -gMetatileAttributes_VermilionGym:: - .incbin "data/tilesets/secondary/vermilion_gym/metatile_attributes.bin" - - .align 1 -gMetatiles_CeladonGym:: - .incbin "data/tilesets/secondary/celadon_gym/metatiles.bin" - - .align 1 -gMetatileAttributes_CeladonGym:: - .incbin "data/tilesets/secondary/celadon_gym/metatile_attributes.bin" - - .align 1 -gMetatiles_FuchsiaGym:: - .incbin "data/tilesets/secondary/fuchsia_gym/metatiles.bin" - - .align 1 -gMetatileAttributes_FuchsiaGym:: - .incbin "data/tilesets/secondary/fuchsia_gym/metatile_attributes.bin" - - .align 1 -gMetatiles_SaffronGym:: - .incbin "data/tilesets/secondary/saffron_gym/metatiles.bin" - - .align 1 -gMetatileAttributes_SaffronGym:: - .incbin "data/tilesets/secondary/saffron_gym/metatile_attributes.bin" - - .align 1 -gMetatiles_CinnabarGym:: - .incbin "data/tilesets/secondary/cinnabar_gym/metatiles.bin" - - .align 1 -gMetatileAttributes_CinnabarGym:: - .incbin "data/tilesets/secondary/cinnabar_gym/metatile_attributes.bin" - - .align 1 -gMetatiles_ViridianGym:: - .incbin "data/tilesets/secondary/viridian_gym/metatiles.bin" - - .align 1 -gMetatileAttributes_ViridianGym:: - .incbin "data/tilesets/secondary/viridian_gym/metatile_attributes.bin" - - .align 1 -gMetatiles_Building:: @ Building - .incbin "data/tilesets/primary/building/metatiles.bin" - - .align 1 -gMetatileAttributes_Building:: @ Building - .incbin "data/tilesets/primary/building/metatile_attributes.bin" - - .align 1 -gMetatiles_Dummy1:: - .incbin "data/tilesets/secondary/dummy_1/metatiles.bin" - - .align 1 -gMetatileAttributes_Dummy1:: - .incbin "data/tilesets/secondary/dummy_1/metatile_attributes.bin" - - .align 1 -gMetatiles_HoennBuilding:: - .incbin "data/tilesets/secondary/hoenn_building/metatiles.bin" - - .align 1 -gMetatileAttributes_HoennBuilding:: - .incbin "data/tilesets/secondary/hoenn_building/metatile_attributes.bin" - - .align 1 -gMetatiles_BikeShop:: - .incbin "data/tilesets/secondary/bike_shop/metatiles.bin" - - .align 1 -gMetatileAttributes_BikeShop:: - .incbin "data/tilesets/secondary/bike_shop/metatile_attributes.bin" - - .align 1 -gMetatiles_Mart:: - .incbin "data/tilesets/secondary/mart/metatiles.bin" - - .align 1 -gMetatileAttributes_Mart:: - .incbin "data/tilesets/secondary/mart/metatile_attributes.bin" - - .align 1 -gMetatiles_PokemonCenter:: - .incbin "data/tilesets/secondary/pokemon_center/metatiles.bin" - - .align 1 -gMetatileAttributes_PokemonCenter:: - .incbin "data/tilesets/secondary/pokemon_center/metatile_attributes.bin" - - .align 1 -gMetatiles_GenericBuilding1:: - .incbin "data/tilesets/secondary/generic_building_1/metatiles.bin" - - .align 1 -gMetatileAttributes_GenericBuilding1:: - .incbin "data/tilesets/secondary/generic_building_1/metatile_attributes.bin" - - .align 1 -gMetatiles_Cave:: - .incbin "data/tilesets/secondary/cave/metatiles.bin" - - .align 1 -gMetatileAttributes_Cave:: - .incbin "data/tilesets/secondary/cave/metatile_attributes.bin" - - .align 1 -gMetatiles_GameCorner:: - .incbin "data/tilesets/secondary/game_corner/metatiles.bin" - - .align 1 -gMetatileAttributes_GameCorner:: - .incbin "data/tilesets/secondary/game_corner/metatile_attributes.bin" - - .align 1 -gMetatiles_Lab:: - .incbin "data/tilesets/secondary/lab/metatiles.bin" - - .align 1 -gMetatileAttributes_Lab:: - .incbin "data/tilesets/secondary/lab/metatile_attributes.bin" - - .align 1 -gMetatiles_SSAnne:: - .incbin "data/tilesets/secondary/ss_anne/metatiles.bin" - - .align 1 -gMetatileAttributes_SSAnne:: - .incbin "data/tilesets/secondary/ss_anne/metatile_attributes.bin" - - .align 1 -gMetatiles_Dummy2:: - .incbin "data/tilesets/secondary/dummy_2/metatiles.bin" - - .align 1 -gMetatileAttributes_Dummy2:: - .incbin "data/tilesets/secondary/dummy_2/metatile_attributes.bin" - - .align 1 -gMetatiles_ViridianForest:: - .incbin "data/tilesets/secondary/viridian_forest/metatiles.bin" - - .align 1 -gMetatileAttributes_ViridianForest:: - .incbin "data/tilesets/secondary/viridian_forest/metatile_attributes.bin" - - .align 1 -gMetatiles_UnusedGatehouse1:: - .incbin "data/tilesets/secondary/unused_gatehouse_1/metatiles.bin" - - .align 1 -gMetatileAttributes_UnusedGatehouse1:: - .incbin "data/tilesets/secondary/unused_gatehouse_1/metatile_attributes.bin" - - .align 1 -gMetatiles_RockTunnel:: - .incbin "data/tilesets/secondary/rock_tunnel/metatiles.bin" - - .align 1 -gMetatileAttributes_RockTunnel:: - .incbin "data/tilesets/secondary/rock_tunnel/metatile_attributes.bin" - - .align 1 -gMetatiles_DiglettsCave:: - .incbin "data/tilesets/secondary/digletts_cave/metatiles.bin" - - .align 1 -gMetatileAttributes_DiglettsCave:: - .incbin "data/tilesets/secondary/digletts_cave/metatile_attributes.bin" - - .align 1 -gMetatiles_SeafoamIslands:: - .incbin "data/tilesets/secondary/seafoam_islands/metatiles.bin" - - .align 1 -gMetatileAttributes_SeafoamIslands:: - .incbin "data/tilesets/secondary/seafoam_islands/metatile_attributes.bin" - - .align 1 -gMetatiles_UnusedGatehouse2:: - .incbin "data/tilesets/secondary/unused_gatehouse_2/metatiles.bin" - - .align 1 -gMetatileAttributes_UnusedGatehouse2:: - .incbin "data/tilesets/secondary/unused_gatehouse_2/metatile_attributes.bin" - - .align 1 -gMetatiles_CeruleanCave:: - .incbin "data/tilesets/secondary/cerulean_cave/metatiles.bin" - - .align 1 -gMetatileAttributes_CeruleanCave:: - .incbin "data/tilesets/secondary/cerulean_cave/metatile_attributes.bin" - - .align 1 -gMetatiles_DepartmentStore:: - .incbin "data/tilesets/secondary/department_store/metatiles.bin" - - .align 1 -gMetatileAttributes_DepartmentStore:: - .incbin "data/tilesets/secondary/department_store/metatile_attributes.bin" - - .align 1 -gMetatiles_GenericBuilding2:: - .incbin "data/tilesets/secondary/generic_building_2/metatiles.bin" - - .align 1 -gMetatileAttributes_GenericBuilding2:: - .incbin "data/tilesets/secondary/generic_building_2/metatile_attributes.bin" - - .align 1 -gMetatiles_PowerPlant:: - .incbin "data/tilesets/secondary/power_plant/metatiles.bin" - - .align 1 -gMetatileAttributes_PowerPlant:: - .incbin "data/tilesets/secondary/power_plant/metatile_attributes.bin" - - .align 1 -gMetatiles_SeaCottage:: - .incbin "data/tilesets/secondary/sea_cottage/metatiles.bin" - - .align 1 -gMetatileAttributes_SeaCottage:: - .incbin "data/tilesets/secondary/sea_cottage/metatile_attributes.bin" - - .align 1 -gMetatiles_SilphCo:: - .incbin "data/tilesets/secondary/silph_co/metatiles.bin" - - .align 1 -gMetatileAttributes_SilphCo:: - .incbin "data/tilesets/secondary/silph_co/metatile_attributes.bin" - - .align 1 -gMetatiles_UndergroundPath:: - .incbin "data/tilesets/secondary/underground_path/metatiles.bin" - - .align 1 -gMetatileAttributes_UndergroundPath:: - .incbin "data/tilesets/secondary/underground_path/metatile_attributes.bin" - - .align 1 -gMetatiles_PokemonTower:: - .incbin "data/tilesets/secondary/pokemon_tower/metatiles.bin" - - .align 1 -gMetatileAttributes_PokemonTower:: - .incbin "data/tilesets/secondary/pokemon_tower/metatile_attributes.bin" - - .align 1 -gMetatiles_SafariZoneBuilding:: - .incbin "data/tilesets/secondary/safari_zone_building/metatiles.bin" - - .align 1 -gMetatileAttributes_SafariZoneBuilding:: - .incbin "data/tilesets/secondary/safari_zone_building/metatile_attributes.bin" - - .align 1 -gMetatiles_PokemonMansion:: - .incbin "data/tilesets/secondary/pokemon_mansion/metatiles.bin" - - .align 1 -gMetatileAttributes_PokemonMansion:: - .incbin "data/tilesets/secondary/pokemon_mansion/metatile_attributes.bin" - - .align 1 -gMetatiles_Museum:: - .incbin "data/tilesets/secondary/museum/metatiles.bin" - - .align 1 -gMetatileAttributes_Museum:: - .incbin "data/tilesets/secondary/museum/metatile_attributes.bin" - - .align 1 -gMetatiles_CableClub:: - .incbin "data/tilesets/secondary/cable_club/metatiles.bin" - - .align 1 -gMetatileAttributes_CableClub:: - .incbin "data/tilesets/secondary/cable_club/metatile_attributes.bin" - - .align 1 -gMetatiles_RestaurantHotel:: - .incbin "data/tilesets/secondary/restaurant_hotel/metatiles.bin" - - .align 1 -gMetatileAttributes_RestaurantHotel:: - .incbin "data/tilesets/secondary/restaurant_hotel/metatile_attributes.bin" - - .align 1 -gMetatiles_School:: - .incbin "data/tilesets/secondary/school/metatiles.bin" - - .align 1 -gMetatileAttributes_School:: - .incbin "data/tilesets/secondary/school/metatile_attributes.bin" - - .align 1 -gMetatiles_FanClubDaycare:: - .incbin "data/tilesets/secondary/fan_club_daycare/metatiles.bin" - - .align 1 -gMetatileAttributes_FanClubDaycare:: - .incbin "data/tilesets/secondary/fan_club_daycare/metatile_attributes.bin" - - .align 1 -gMetatiles_Condominiums:: - .incbin "data/tilesets/secondary/condominiums/metatiles.bin" - - .align 1 -gMetatileAttributes_Condominiums:: - .incbin "data/tilesets/secondary/condominiums/metatile_attributes.bin" - - .align 1 -gMetatiles_BurgledHouse:: - .incbin "data/tilesets/secondary/burgled_house/metatiles.bin" - - .align 1 -gMetatileAttributes_BurgledHouse:: - .incbin "data/tilesets/secondary/burgled_house/metatile_attributes.bin" - - .align 1 -gMetatiles_Dummy3:: - .incbin "data/tilesets/secondary/dummy_3/metatiles.bin" - - .align 1 -gMetatileAttributes_Dummy3:: - .incbin "data/tilesets/secondary/dummy_3/metatile_attributes.bin" - - .align 1 -gMetatiles_Dummy4:: - .incbin "data/tilesets/secondary/dummy_4/metatiles.bin" - - .align 1 -gMetatileAttributes_Dummy4:: - .incbin "data/tilesets/secondary/dummy_4/metatile_attributes.bin" - - .align 1 -gMetatiles_MtEmber:: - .incbin "data/tilesets/secondary/mt_ember/metatiles.bin" - - .align 1 -gMetatileAttributes_MtEmber:: - .incbin "data/tilesets/secondary/mt_ember/metatile_attributes.bin" - - .align 1 -gMetatiles_BerryForest:: - .incbin "data/tilesets/secondary/berry_forest/metatiles.bin" - - .align 1 -gMetatileAttributes_BerryForest:: - .incbin "data/tilesets/secondary/berry_forest/metatile_attributes.bin" - - .align 1 -gMetatiles_NavelRock:: - .incbin "data/tilesets/secondary/navel_rock/metatiles.bin" - - .align 1 -gMetatileAttributes_NavelRock:: - .incbin "data/tilesets/secondary/navel_rock/metatile_attributes.bin" - - .align 1 -gMetatiles_TanobyRuins:: - .incbin "data/tilesets/secondary/tanoby_ruins/metatiles.bin" - - .align 1 -gMetatileAttributes_TanobyRuins:: - .incbin "data/tilesets/secondary/tanoby_ruins/metatile_attributes.bin" - - .align 1 -gMetatiles_SeviiIslands123:: - .incbin "data/tilesets/secondary/sevii_islands_123/metatiles.bin" - - .align 1 -gMetatileAttributes_SeviiIslands123:: - .incbin "data/tilesets/secondary/sevii_islands_123/metatile_attributes.bin" - - .align 1 -gMetatiles_SeviiIslands45:: - .incbin "data/tilesets/secondary/sevii_islands_45/metatiles.bin" - - .align 1 -gMetatileAttributes_SeviiIslands45:: - .incbin "data/tilesets/secondary/sevii_islands_45/metatile_attributes.bin" - - .align 1 -gMetatiles_SeviiIslands67:: - .incbin "data/tilesets/secondary/sevii_islands_67/metatiles.bin" - - .align 1 -gMetatileAttributes_SeviiIslands67:: - .incbin "data/tilesets/secondary/sevii_islands_67/metatile_attributes.bin" - - .align 1 -gMetatiles_TrainerTower:: - .incbin "data/tilesets/secondary/trainer_tower/metatiles.bin" - - .align 1 -gMetatileAttributes_TrainerTower:: - .incbin "data/tilesets/secondary/trainer_tower/metatile_attributes.bin" - - .align 1 -gMetatiles_IslandHarbor:: - .incbin "data/tilesets/secondary/island_harbor/metatiles.bin" - - .align 1 -gMetatileAttributes_IslandHarbor:: - .incbin "data/tilesets/secondary/island_harbor/metatile_attributes.bin" - - .align 1 -gMetatiles_PokemonLeague:: - .incbin "data/tilesets/secondary/pokemon_league/metatiles.bin" - - .align 1 -gMetatileAttributes_PokemonLeague:: - .incbin "data/tilesets/secondary/pokemon_league/metatile_attributes.bin" - - .align 1 -gMetatiles_HallOfFame:: - .incbin "data/tilesets/secondary/hall_of_fame/metatiles.bin" - - .align 1 -gMetatileAttributes_HallOfFame:: - .incbin "data/tilesets/secondary/hall_of_fame/metatile_attributes.bin" diff --git a/graphics/help_system/msg_window.png b/graphics/help_system/msg_window.png new file mode 100644 index 000000000..b03b4096a Binary files /dev/null and b/graphics/help_system/msg_window.png differ diff --git a/graphics/interface/unk_8E84560.pal b/graphics/interface/bag.pal similarity index 100% rename from graphics/interface/unk_8E84560.pal rename to graphics/interface/bag.pal diff --git a/graphics/interface/unk_8E83DBC.png b/graphics/interface/bag_female.png similarity index 100% rename from graphics/interface/unk_8E83DBC.png rename to graphics/interface/bag_female.png diff --git a/graphics/interface/unk_8E8362C.png b/graphics/interface/bag_male.png similarity index 100% rename from graphics/interface/unk_8E8362C.png rename to graphics/interface/bag_male.png diff --git a/graphics/interface/pss_unk_83CDAB8.png b/graphics/interface/pss_unk_83CDAB8.png deleted file mode 100644 index 5b7d0a3b6..000000000 Binary files a/graphics/interface/pss_unk_83CDAB8.png and /dev/null differ diff --git a/graphics/interface/pss_unk_83CE2B8.png b/graphics/interface/pss_unk_83CE2B8.png deleted file mode 100644 index 18ac36e21..000000000 Binary files a/graphics/interface/pss_unk_83CE2B8.png and /dev/null differ diff --git a/graphics/interface/pss_unk_83CE438.png b/graphics/interface/pss_unk_83CE438.png deleted file mode 100644 index 8be861a26..000000000 Binary files a/graphics/interface/pss_unk_83CE438.png and /dev/null differ diff --git a/graphics/interface/pss_unk_83CE738.pal b/graphics/interface/pss_unk_83CE738.pal deleted file mode 100644 index 087a84a69..000000000 --- a/graphics/interface/pss_unk_83CE738.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -0 0 0 -148 148 172 -255 255 255 -0 0 0 -123 189 255 -0 123 255 -255 131 131 -172 24 24 -255 238 230 -255 230 213 -255 222 205 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 diff --git a/graphics/interface/pss_unk_83CE810.png b/graphics/interface/pss_unk_83CE810.png deleted file mode 100644 index d414dbc03..000000000 Binary files a/graphics/interface/pss_unk_83CE810.png and /dev/null differ diff --git a/graphics/interface/pss_unk_83CEA10.pal b/graphics/interface/pss_unk_83CEA10.pal deleted file mode 100644 index b9c6f46de..000000000 --- a/graphics/interface/pss_unk_83CEA10.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -0 0 0 -255 255 255 -98 98 98 -213 213 205 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 diff --git a/graphics/interface/pss_unk_83CEC80.png b/graphics/interface/pss_unk_83CEC80.png deleted file mode 100644 index 7307fc601..000000000 Binary files a/graphics/interface/pss_unk_83CEC80.png and /dev/null differ diff --git a/graphics/interface/pss_unk_83CF16C.png b/graphics/interface/pss_unk_83CF16C.png deleted file mode 100644 index baaff23a9..000000000 Binary files a/graphics/interface/pss_unk_83CF16C.png and /dev/null differ diff --git a/graphics/interface/pss_unk_83CF464.png b/graphics/interface/pss_unk_83CF464.png deleted file mode 100644 index 6de13c4b0..000000000 Binary files a/graphics/interface/pss_unk_83CF464.png and /dev/null differ diff --git a/graphics/interface/pss_unk_83CF874.png b/graphics/interface/pss_unk_83CF874.png deleted file mode 100644 index bacf96c2e..000000000 Binary files a/graphics/interface/pss_unk_83CF874.png and /dev/null differ diff --git a/graphics/interface/pss_unk_83CFBA0.png b/graphics/interface/pss_unk_83CFBA0.png deleted file mode 100644 index 6092d1665..000000000 Binary files a/graphics/interface/pss_unk_83CFBA0.png and /dev/null differ diff --git a/graphics/interface/pss_unk_83D0008.png b/graphics/interface/pss_unk_83D0008.png deleted file mode 100644 index 9724cf7fd..000000000 Binary files a/graphics/interface/pss_unk_83D0008.png and /dev/null differ diff --git a/graphics/interface/pss_unk_83D0454.png b/graphics/interface/pss_unk_83D0454.png deleted file mode 100644 index 48156edee..000000000 Binary files a/graphics/interface/pss_unk_83D0454.png and /dev/null differ diff --git a/graphics/interface/pss_unk_83D0818.png b/graphics/interface/pss_unk_83D0818.png deleted file mode 100644 index 6e42fd525..000000000 Binary files a/graphics/interface/pss_unk_83D0818.png and /dev/null differ diff --git a/graphics/interface/pss_unk_83D0C78.png b/graphics/interface/pss_unk_83D0C78.png deleted file mode 100644 index ad4389d88..000000000 Binary files a/graphics/interface/pss_unk_83D0C78.png and /dev/null differ diff --git a/graphics/interface/pss_unk_83D1124.png b/graphics/interface/pss_unk_83D1124.png deleted file mode 100644 index fe7810abb..000000000 Binary files a/graphics/interface/pss_unk_83D1124.png and /dev/null differ diff --git a/graphics/interface/pss_unk_83D14F4.png b/graphics/interface/pss_unk_83D14F4.png deleted file mode 100644 index 92ddac031..000000000 Binary files a/graphics/interface/pss_unk_83D14F4.png and /dev/null differ diff --git a/graphics/interface/pss_unk_83D18B4.png b/graphics/interface/pss_unk_83D18B4.png deleted file mode 100644 index 4444e6909..000000000 Binary files a/graphics/interface/pss_unk_83D18B4.png and /dev/null differ diff --git a/graphics/interface/pss_unk_83D1C8C.png b/graphics/interface/pss_unk_83D1C8C.png deleted file mode 100644 index 5554f6a51..000000000 Binary files a/graphics/interface/pss_unk_83D1C8C.png and /dev/null differ diff --git a/graphics/interface/pss_unk_83D1FD4.png b/graphics/interface/pss_unk_83D1FD4.png deleted file mode 100644 index c4cf6bd1e..000000000 Binary files a/graphics/interface/pss_unk_83D1FD4.png and /dev/null differ diff --git a/graphics/interface/pss_unk_83D23DC.png b/graphics/interface/pss_unk_83D23DC.png deleted file mode 100644 index 8fce05efa..000000000 Binary files a/graphics/interface/pss_unk_83D23DC.png and /dev/null differ diff --git a/graphics/interface/pss_unk_83D2654.png b/graphics/interface/pss_unk_83D2654.png deleted file mode 100644 index 00c506fc1..000000000 Binary files a/graphics/interface/pss_unk_83D2654.png and /dev/null differ diff --git a/graphics/interface/pss_unk_83D29D0.pal b/graphics/interface/pss_unk_83D29D0.pal deleted file mode 100644 index 7f2f9ae51..000000000 --- a/graphics/interface/pss_unk_83D29D0.pal +++ /dev/null @@ -1,35 +0,0 @@ -JASC-PAL -0100 -32 -57 57 57 -255 255 255 -57 57 57 -255 255 255 -57 57 57 -255 255 255 -57 57 57 -255 255 255 -57 57 57 -255 255 255 -57 57 57 -255 255 255 -57 57 57 -255 255 255 -57 57 57 -255 255 255 -57 57 57 -255 255 255 -57 57 57 -255 255 255 -57 57 57 -255 255 255 -57 57 57 -255 255 255 -57 57 57 -255 255 255 -57 57 57 -255 255 255 -57 57 57 -255 255 255 -57 57 57 -255 255 255 diff --git a/graphics/interface/pss_unk_83D2AD0.png b/graphics/interface/pss_unk_83D2AD0.png deleted file mode 100644 index f6bdaadb8..000000000 Binary files a/graphics/interface/pss_unk_83D2AD0.png and /dev/null differ diff --git a/graphics/interface/pss_unk_83D2BEC.png b/graphics/interface/pss_unk_83D2BEC.png deleted file mode 100644 index 3a6e35307..000000000 Binary files a/graphics/interface/pss_unk_83D2BEC.png and /dev/null differ diff --git a/graphics/interface/pss_unk_83D33EC.png b/graphics/interface/pss_unk_83D33EC.png deleted file mode 100644 index 9b1e8f850..000000000 Binary files a/graphics/interface/pss_unk_83D33EC.png and /dev/null differ diff --git a/graphics/interface/pss_unk_83D35DC.png b/graphics/interface/pss_unk_83D35DC.png deleted file mode 100644 index 53ecc7ca5..000000000 Binary files a/graphics/interface/pss_unk_83D35DC.png and /dev/null differ diff --git a/graphics/tm_case/unk_841F408.pal b/graphics/interface/std_menu.pal similarity index 100% rename from graphics/tm_case/unk_841F408.pal rename to graphics/interface/std_menu.pal diff --git a/graphics/interface/unk_8D2FBB4.pal b/graphics/interface/text_pp.pal similarity index 100% rename from graphics/interface/unk_8D2FBB4.pal rename to graphics/interface/text_pp.pal diff --git a/graphics/intro/unk_84024E4.bin b/graphics/intro/copyright.bin similarity index 100% rename from graphics/intro/unk_84024E4.bin rename to graphics/intro/copyright.bin diff --git a/graphics/intro/unk_8402260.pal b/graphics/intro/copyright.pal similarity index 100% rename from graphics/intro/unk_8402260.pal rename to graphics/intro/copyright.pal diff --git a/graphics/intro/copyright.png b/graphics/intro/copyright.png new file mode 100644 index 000000000..ff320806e Binary files /dev/null and b/graphics/intro/copyright.png differ diff --git a/graphics/intro/unk_8402668.bin b/graphics/intro/game_freak/bg.bin similarity index 100% rename from graphics/intro/unk_8402668.bin rename to graphics/intro/game_freak/bg.bin diff --git a/graphics/intro/unk_8402630.pal b/graphics/intro/game_freak/bg.pal similarity index 100% rename from graphics/intro/unk_8402630.pal rename to graphics/intro/game_freak/bg.pal diff --git a/graphics/intro/unk_8402650.png b/graphics/intro/game_freak/bg.png similarity index 100% rename from graphics/intro/unk_8402650.png rename to graphics/intro/game_freak/bg.png diff --git a/graphics/intro/unk_840272C.png b/graphics/intro/game_freak/game_freak.png similarity index 100% rename from graphics/intro/unk_840272C.png rename to graphics/intro/game_freak/game_freak.png diff --git a/graphics/intro/unk_84028F8.png b/graphics/intro/game_freak/logo.png similarity index 100% rename from graphics/intro/unk_84028F8.png rename to graphics/intro/game_freak/logo.png diff --git a/graphics/intro/unk_8402CD4.png b/graphics/intro/game_freak/presents.png similarity index 100% rename from graphics/intro/unk_8402CD4.png rename to graphics/intro/game_freak/presents.png diff --git a/graphics/intro/game_freak/sparkles.pal b/graphics/intro/game_freak/sparkles.pal new file mode 100644 index 000000000..ace266f9b --- /dev/null +++ b/graphics/intro/game_freak/sparkles.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +0 0 32 +0 0 74 +0 0 115 +24 24 123 +49 49 139 +82 82 156 +106 106 172 +139 139 189 +164 164 205 +197 197 222 +222 222 238 +255 255 255 +0 0 0 +0 0 0 diff --git a/graphics/intro/unk_8402B2C.png b/graphics/intro/game_freak/sparkles_big.png similarity index 100% rename from graphics/intro/unk_8402B2C.png rename to graphics/intro/game_freak/sparkles_big.png diff --git a/graphics/intro/unk_8402ADC.png b/graphics/intro/game_freak/sparkles_small.png similarity index 100% rename from graphics/intro/unk_8402ADC.png rename to graphics/intro/game_freak/sparkles_small.png diff --git a/graphics/intro/unk_8402A64.png b/graphics/intro/game_freak/star.png similarity index 100% rename from graphics/intro/unk_8402A64.png rename to graphics/intro/game_freak/star.png diff --git a/graphics/intro/unk_8405DA4.pal b/graphics/intro/gengar.pal similarity index 100% rename from graphics/intro/unk_8405DA4.pal rename to graphics/intro/gengar.pal diff --git a/graphics/intro/unk_84096AC.pal b/graphics/intro/nidorino.pal similarity index 100% rename from graphics/intro/unk_84096AC.pal rename to graphics/intro/nidorino.pal diff --git a/graphics/intro/unk_8404F7C.bin b/graphics/intro/scene_1/bg.bin similarity index 100% rename from graphics/intro/unk_8404F7C.bin rename to graphics/intro/scene_1/bg.bin diff --git a/graphics/intro/unk_84048EC.png b/graphics/intro/scene_1/bg.png similarity index 100% rename from graphics/intro/unk_84048EC.png rename to graphics/intro/scene_1/bg.png diff --git a/graphics/intro/unk_8403FE8.bin b/graphics/intro/scene_1/grass.bin similarity index 100% rename from graphics/intro/unk_8403FE8.bin rename to graphics/intro/scene_1/grass.bin diff --git a/graphics/intro/unk_8402D54.png b/graphics/intro/scene_1/grass.png similarity index 100% rename from graphics/intro/unk_8402D54.png rename to graphics/intro/scene_1/grass.png diff --git a/graphics/intro/unk_8405890.bin b/graphics/intro/scene_2/bg.bin similarity index 100% rename from graphics/intro/unk_8405890.bin rename to graphics/intro/scene_2/bg.bin diff --git a/graphics/intro/unk_84053B4.pal b/graphics/intro/scene_2/bg.pal similarity index 100% rename from graphics/intro/unk_84053B4.pal rename to graphics/intro/scene_2/bg.pal diff --git a/graphics/intro/unk_8405414.png b/graphics/intro/scene_2/bg.png similarity index 100% rename from graphics/intro/unk_8405414.png rename to graphics/intro/scene_2/bg.png diff --git a/graphics/intro/unk_840926C.png b/graphics/intro/scene_2/gengar.png similarity index 100% rename from graphics/intro/unk_840926C.png rename to graphics/intro/scene_2/gengar.png diff --git a/graphics/intro/unk_840644C.bin b/graphics/intro/scene_2/gengar_close.bin similarity index 100% rename from graphics/intro/unk_840644C.bin rename to graphics/intro/scene_2/gengar_close.bin diff --git a/graphics/intro/scene_2/gengar_close.png b/graphics/intro/scene_2/gengar_close.png new file mode 100644 index 000000000..9878b9bca Binary files /dev/null and b/graphics/intro/scene_2/gengar_close.png differ diff --git a/graphics/intro/unk_84096CC.png b/graphics/intro/scene_2/nidorino.png similarity index 100% rename from graphics/intro/unk_84096CC.png rename to graphics/intro/scene_2/nidorino.png diff --git a/graphics/intro/unk_84071D0.bin b/graphics/intro/scene_2/nidorino_close.bin similarity index 100% rename from graphics/intro/unk_84071D0.bin rename to graphics/intro/scene_2/nidorino_close.bin diff --git a/graphics/intro/unk_8406634.pal b/graphics/intro/scene_2/nidorino_close.pal similarity index 100% rename from graphics/intro/unk_8406634.pal rename to graphics/intro/scene_2/nidorino_close.pal diff --git a/graphics/intro/unk_8406654.png b/graphics/intro/scene_2/nidorino_close.png similarity index 100% rename from graphics/intro/unk_8406654.png rename to graphics/intro/scene_2/nidorino_close.png diff --git a/graphics/intro/unk_8405CDC.bin b/graphics/intro/scene_2/plants.bin similarity index 100% rename from graphics/intro/unk_8405CDC.bin rename to graphics/intro/scene_2/plants.bin diff --git a/graphics/intro/unk_8405B28.png b/graphics/intro/scene_2/plants.png similarity index 100% rename from graphics/intro/unk_8405B28.png rename to graphics/intro/scene_2/plants.png diff --git a/graphics/intro/unk_8407A50.bin b/graphics/intro/scene_3/bg.bin similarity index 100% rename from graphics/intro/unk_8407A50.bin rename to graphics/intro/scene_3/bg.bin diff --git a/graphics/intro/unk_8407430.pal b/graphics/intro/scene_3/bg.pal similarity index 100% rename from graphics/intro/unk_8407430.pal rename to graphics/intro/scene_3/bg.pal diff --git a/graphics/intro/unk_8407470.png b/graphics/intro/scene_3/bg.png similarity index 100% rename from graphics/intro/unk_8407470.png rename to graphics/intro/scene_3/bg.png diff --git a/graphics/intro/unk_8408D98.bin b/graphics/intro/scene_3/gengar_anim.bin similarity index 100% rename from graphics/intro/unk_8408D98.bin rename to graphics/intro/scene_3/gengar_anim.bin diff --git a/graphics/intro/scene_3/gengar_anim.png b/graphics/intro/scene_3/gengar_anim.png new file mode 100644 index 000000000..d339ca80f Binary files /dev/null and b/graphics/intro/scene_3/gengar_anim.png differ diff --git a/graphics/intro/unk_8409D20.png b/graphics/intro/scene_3/gengar_static.png similarity index 100% rename from graphics/intro/unk_8409D20.png rename to graphics/intro/scene_3/gengar_static.png diff --git a/graphics/intro/unk_8409A3C.png b/graphics/intro/scene_3/grass.png similarity index 100% rename from graphics/intro/unk_8409A3C.png rename to graphics/intro/scene_3/grass.png diff --git a/graphics/intro/unk_840A3E4.png b/graphics/intro/scene_3/nidorino.png similarity index 100% rename from graphics/intro/unk_840A3E4.png rename to graphics/intro/scene_3/nidorino.png diff --git a/graphics/intro/unk_840BAE0.png b/graphics/intro/scene_3/recoil_dust.png similarity index 100% rename from graphics/intro/unk_840BAE0.png rename to graphics/intro/scene_3/recoil_dust.png diff --git a/graphics/intro/unk_840B874.png b/graphics/intro/scene_3/swipe.png similarity index 100% rename from graphics/intro/unk_840B874.png rename to graphics/intro/scene_3/swipe.png diff --git a/graphics/intro/unk_8402280.png b/graphics/intro/unk_8402280.png deleted file mode 100644 index dccf33afa..000000000 Binary files a/graphics/intro/unk_8402280.png and /dev/null differ diff --git a/graphics/intro/unk_840270C.pal b/graphics/intro/unk_840270C.pal deleted file mode 100644 index 619aee6a0..000000000 --- a/graphics/intro/unk_840270C.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -24 41 74 -0 0 0 -139 123 16 -189 172 16 -131 164 65 -148 230 49 -255 0 255 -255 0 255 -255 0 255 -255 0 255 -255 0 255 -222 222 222 -24 41 74 -82 82 82 -180 180 180 -255 255 255 diff --git a/graphics/intro/unk_8402D34.pal b/graphics/intro/unk_8402D34.pal deleted file mode 100644 index 4be93ec3e..000000000 --- a/graphics/intro/unk_8402D34.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -255 255 255 -115 197 106 -41 164 8 -82 180 65 -139 222 131 -98 197 82 -255 0 255 -255 0 255 -255 0 255 -255 0 255 -255 0 255 -16 139 98 -16 115 98 -24 90 90 -32 74 90 -32 65 82 diff --git a/graphics/intro/unk_84048CC.pal b/graphics/intro/unk_84048CC.pal deleted file mode 100644 index ef08ae2fe..000000000 --- a/graphics/intro/unk_84048CC.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -0 0 255 -255 255 255 -255 0 255 -255 0 255 -255 0 255 -255 0 255 -255 0 255 -255 0 255 -238 246 246 -222 230 230 -180 189 197 -148 156 172 -106 123 139 -74 90 115 -41 57 90 -0 0 0 diff --git a/graphics/intro/unk_8405B08.pal b/graphics/intro/unk_8405B08.pal deleted file mode 100644 index 43cc9d949..000000000 --- a/graphics/intro/unk_8405B08.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -0 0 0 -131 238 115 -82 189 74 -57 164 57 -115 213 98 -16 123 16 -164 255 131 -255 0 255 -255 0 255 -255 0 255 -255 0 255 -255 0 255 -255 0 255 -255 0 255 -255 148 0 -164 222 98 diff --git a/graphics/intro/unk_8405DC4.png b/graphics/intro/unk_8405DC4.png deleted file mode 100644 index 8ae6ba691..000000000 Binary files a/graphics/intro/unk_8405DC4.png and /dev/null differ diff --git a/graphics/intro/unk_8407B9C.png b/graphics/intro/unk_8407B9C.png deleted file mode 100644 index 75528b3b6..000000000 Binary files a/graphics/intro/unk_8407B9C.png and /dev/null differ diff --git a/graphics/intro/unk_8409A1C.pal b/graphics/intro/unk_8409A1C.pal deleted file mode 100644 index 36cbbb9a0..000000000 --- a/graphics/intro/unk_8409A1C.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -0 0 0 -164 238 139 -57 148 57 -131 213 115 -156 230 156 -131 205 148 -106 180 131 -65 139 98 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -255 0 0 diff --git a/graphics/intro/unk_840B834.pal b/graphics/intro/unk_840B834.pal deleted file mode 100644 index 40bbce557..000000000 --- a/graphics/intro/unk_840B834.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -0 0 0 -238 246 189 -0 0 0 -0 0 0 -115 213 255 -156 222 255 -205 238 255 -255 255 255 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 diff --git a/graphics/intro/unk_840B854.pal b/graphics/intro/unk_840B854.pal deleted file mode 100644 index dcf29b92e..000000000 --- a/graphics/intro/unk_840B854.pal +++ /dev/null @@ -1,19 +0,0 @@ -JASC-PAL -0100 -16 -197 222 205 -255 255 255 -222 222 222 -123 123 123 -156 222 255 -189 230 255 -222 238 255 -255 255 255 -255 180 123 -238 98 74 -205 57 32 -197 131 180 -164 98 148 -131 65 123 -90 57 90 -16 16 16 diff --git a/graphics/mevent/gfx_46718C.png b/graphics/mevent/gfx_46718C.png deleted file mode 100644 index bf52445e6..000000000 Binary files a/graphics/mevent/gfx_46718C.png and /dev/null differ diff --git a/graphics/mevent/gfx_46737C.png b/graphics/mevent/gfx_46737C.png deleted file mode 100644 index 1a23f8b94..000000000 Binary files a/graphics/mevent/gfx_46737C.png and /dev/null differ diff --git a/graphics/mevent/gfx_467558.png b/graphics/mevent/gfx_467558.png deleted file mode 100644 index c28edd891..000000000 Binary files a/graphics/mevent/gfx_467558.png and /dev/null differ diff --git a/graphics/mevent/gfx_467700.png b/graphics/mevent/gfx_467700.png deleted file mode 100644 index f31385746..000000000 Binary files a/graphics/mevent/gfx_467700.png and /dev/null differ diff --git a/graphics/mevent/gfx_467A7C.png b/graphics/mevent/gfx_467A7C.png deleted file mode 100644 index f94b6c50f..000000000 Binary files a/graphics/mevent/gfx_467A7C.png and /dev/null differ diff --git a/graphics/mevent/gfx_467EF4.png b/graphics/mevent/gfx_467EF4.png deleted file mode 100644 index 51a1aeb0c..000000000 Binary files a/graphics/mevent/gfx_467EF4.png and /dev/null differ diff --git a/graphics/mevent/gfx_4680C0.png b/graphics/mevent/gfx_4680C0.png deleted file mode 100644 index 1a27f3213..000000000 Binary files a/graphics/mevent/gfx_4680C0.png and /dev/null differ diff --git a/graphics/mevent/gfx_46821C.png b/graphics/mevent/gfx_46821C.png deleted file mode 100644 index aab27d16c..000000000 Binary files a/graphics/mevent/gfx_46821C.png and /dev/null differ diff --git a/graphics/mevent/gfx_46830C.png b/graphics/mevent/gfx_46830C.png deleted file mode 100644 index 3c2b8e6d1..000000000 Binary files a/graphics/mevent/gfx_46830C.png and /dev/null differ diff --git a/graphics/mevent/gfx_468448.png b/graphics/mevent/gfx_468448.png deleted file mode 100644 index 137dbe9f3..000000000 Binary files a/graphics/mevent/gfx_468448.png and /dev/null differ diff --git a/graphics/mevent/gfx_4685B4.png b/graphics/mevent/gfx_4685B4.png deleted file mode 100644 index 137dbe9f3..000000000 Binary files a/graphics/mevent/gfx_4685B4.png and /dev/null differ diff --git a/graphics/misc/unk_8479688.png b/graphics/misc/minigame_digits.png similarity index 100% rename from graphics/misc/unk_8479688.png rename to graphics/misc/minigame_digits.png diff --git a/graphics/misc/unk_8479748.png b/graphics/misc/minigame_digits_unused.png similarity index 100% rename from graphics/misc/unk_8479748.png rename to graphics/misc/minigame_digits_unused.png diff --git a/graphics/pokemon_storage/box_scroll_arrow.png b/graphics/pokemon_storage/box_scroll_arrow.png new file mode 100644 index 000000000..c56139ea1 Binary files /dev/null and b/graphics/pokemon_storage/box_scroll_arrow.png differ diff --git a/graphics/pokemon_storage/choose_box_menu_center.png b/graphics/pokemon_storage/choose_box_menu_center.png new file mode 100644 index 000000000..81500fdf6 Binary files /dev/null and b/graphics/pokemon_storage/choose_box_menu_center.png differ diff --git a/graphics/pokemon_storage/choose_box_menu_corners.png b/graphics/pokemon_storage/choose_box_menu_corners.png new file mode 100644 index 000000000..5600b0462 Binary files /dev/null and b/graphics/pokemon_storage/choose_box_menu_corners.png differ diff --git a/graphics/pokemon_storage/close_box_button.bin b/graphics/pokemon_storage/close_box_button.bin new file mode 100644 index 000000000..8b130a481 --- /dev/null +++ b/graphics/pokemon_storage/close_box_button.bin @@ -0,0 +1 @@ +LMNOpqrst\]^_uvwxyz{|} \ No newline at end of file diff --git a/graphics/pokemon_storage/cursor.png b/graphics/pokemon_storage/cursor.png new file mode 100644 index 000000000..d64dc3bd8 Binary files /dev/null and b/graphics/pokemon_storage/cursor.png differ diff --git a/graphics/pokemon_storage/cursor_shadow.png b/graphics/pokemon_storage/cursor_shadow.png new file mode 100644 index 000000000..7b2e218e5 Binary files /dev/null and b/graphics/pokemon_storage/cursor_shadow.png differ diff --git a/graphics/interface/box_tiles_pal2.pal b/graphics/pokemon_storage/interface.pal similarity index 100% rename from graphics/interface/box_tiles_pal2.pal rename to graphics/pokemon_storage/interface.pal diff --git a/graphics/interface/box_tiles_pal3.pal b/graphics/pokemon_storage/interface_no_display_mon.pal similarity index 100% rename from graphics/interface/box_tiles_pal3.pal rename to graphics/pokemon_storage/interface_no_display_mon.pal diff --git a/graphics/pokemon_storage/item_info_frame.png b/graphics/pokemon_storage/item_info_frame.png new file mode 100644 index 000000000..dd5f52460 Binary files /dev/null and b/graphics/pokemon_storage/item_info_frame.png differ diff --git a/graphics/interface/pss_unk_83CE5FC.bin b/graphics/pokemon_storage/menu.bin similarity index 100% rename from graphics/interface/pss_unk_83CE5FC.bin rename to graphics/pokemon_storage/menu.bin diff --git a/graphics/interface/pss_unk_83CE5DC.pal b/graphics/pokemon_storage/menu.pal similarity index 100% rename from graphics/interface/pss_unk_83CE5DC.pal rename to graphics/pokemon_storage/menu.pal diff --git a/graphics/interface/box_tiles.png b/graphics/pokemon_storage/menu.png similarity index 100% rename from graphics/interface/box_tiles.png rename to graphics/pokemon_storage/menu.png diff --git a/graphics/interface/pss_unk_83D2BCC.pal b/graphics/pokemon_storage/misc1.pal similarity index 100% rename from graphics/interface/pss_unk_83D2BCC.pal rename to graphics/pokemon_storage/misc1.pal diff --git a/graphics/pokemon_storage/misc2.pal b/graphics/pokemon_storage/misc2.pal new file mode 100644 index 000000000..40bc5d1cb --- /dev/null +++ b/graphics/pokemon_storage/misc2.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +148 148 172 +82 82 90 +255 255 255 +205 255 255 +90 189 238 +90 164 205 +82 131 164 +82 106 123 +82 82 90 +0 0 0 +222 222 246 +164 164 180 +148 148 172 +115 115 123 +82 82 90 diff --git a/graphics/unknown/unknown_E9CAEC.bin b/graphics/pokemon_storage/party_menu.bin similarity index 100% rename from graphics/unknown/unknown_E9CAEC.bin rename to graphics/pokemon_storage/party_menu.bin diff --git a/graphics/interface/box_tiles_pal1.pal b/graphics/pokemon_storage/party_menu.pal similarity index 100% rename from graphics/interface/box_tiles_pal1.pal rename to graphics/pokemon_storage/party_menu.pal diff --git a/graphics/pokemon_storage/party_slot_empty.bin b/graphics/pokemon_storage/party_slot_empty.bin new file mode 100644 index 000000000..991c232f7 --- /dev/null +++ b/graphics/pokemon_storage/party_slot_empty.bin @@ -0,0 +1 @@ +CDDESTTUcdde \ No newline at end of file diff --git a/graphics/pokemon_storage/party_slot_filled.bin b/graphics/pokemon_storage/party_slot_filled.bin new file mode 100644 index 000000000..c0b93bf14 --- /dev/null +++ b/graphics/pokemon_storage/party_slot_filled.bin @@ -0,0 +1 @@ +@AABPQQR`aab \ No newline at end of file diff --git a/graphics/pokemon_storage/pkmn_data.bin b/graphics/pokemon_storage/pkmn_data.bin new file mode 100644 index 000000000..3336797aa --- /dev/null +++ b/graphics/pokemon_storage/pkmn_data.bin @@ -0,0 +1 @@ +!!!!!!!!!!!!!!!! \ No newline at end of file diff --git a/graphics/interface/pss_unk_83CE4D0.bin b/graphics/pokemon_storage/scrolling_bg.bin similarity index 100% rename from graphics/interface/pss_unk_83CE4D0.bin rename to graphics/pokemon_storage/scrolling_bg.bin diff --git a/graphics/pokemon_storage/scrolling_bg.png b/graphics/pokemon_storage/scrolling_bg.png new file mode 100644 index 000000000..7215fdb40 Binary files /dev/null and b/graphics/pokemon_storage/scrolling_bg.png differ diff --git a/graphics/interface/pss_unk_83CE758.pal b/graphics/pokemon_storage/scrolling_bg_move_items.pal similarity index 100% rename from graphics/interface/pss_unk_83CE758.pal rename to graphics/pokemon_storage/scrolling_bg_move_items.pal diff --git a/graphics/interface/pss_unk_83CE9D0.pal b/graphics/pokemon_storage/unused.pal similarity index 100% rename from graphics/interface/pss_unk_83CE9D0.pal rename to graphics/pokemon_storage/unused.pal diff --git a/graphics/interface/pss_unk_83CDA98.pal b/graphics/pokemon_storage/unused_choose_box_menu.pal similarity index 100% rename from graphics/interface/pss_unk_83CDA98.pal rename to graphics/pokemon_storage/unused_choose_box_menu.pal diff --git a/graphics/pokemon_storage/wallpapers/beach/box.pal b/graphics/pokemon_storage/wallpapers/beach/box.pal new file mode 100644 index 000000000..b7cb930c4 --- /dev/null +++ b/graphics/pokemon_storage/wallpapers/beach/box.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 255 255 +255 255 222 +246 238 180 +238 230 148 +238 222 131 +222 205 115 +213 189 98 +205 164 90 +197 172 65 +255 98 197 +255 148 172 +49 213 205 +164 230 213 +0 0 0 +82 98 255 +49 65 156 diff --git a/graphics/interface/pss_unk_83D0FFC.bin b/graphics/pokemon_storage/wallpapers/beach/tilemap.bin similarity index 100% rename from graphics/interface/pss_unk_83D0FFC.bin rename to graphics/pokemon_storage/wallpapers/beach/tilemap.bin diff --git a/graphics/pokemon_storage/wallpapers/beach/tiles.png b/graphics/pokemon_storage/wallpapers/beach/tiles.png new file mode 100644 index 000000000..f2594ae88 Binary files /dev/null and b/graphics/pokemon_storage/wallpapers/beach/tiles.png differ diff --git a/graphics/interface/pss_unk_83D0C38.pal b/graphics/pokemon_storage/wallpapers/beach/title.pal similarity index 52% rename from graphics/interface/pss_unk_83D0C38.pal rename to graphics/pokemon_storage/wallpapers/beach/title.pal index dfc1ab464..360d77bde 100644 --- a/graphics/interface/pss_unk_83D0C38.pal +++ b/graphics/pokemon_storage/wallpapers/beach/title.pal @@ -1,6 +1,6 @@ JASC-PAL 0100 -32 +16 255 255 255 156 106 57 197 230 255 @@ -17,19 +17,3 @@ JASC-PAL 255 255 255 82 98 255 49 65 156 -255 255 255 -255 255 222 -246 238 180 -238 230 148 -238 222 131 -222 205 115 -213 189 98 -205 164 90 -197 172 65 -255 98 197 -255 148 172 -49 213 205 -164 230 213 -0 0 0 -82 98 255 -49 65 156 diff --git a/graphics/interface/pss_unk_83D07D8.pal b/graphics/pokemon_storage/wallpapers/cave/box.pal similarity index 52% rename from graphics/interface/pss_unk_83D07D8.pal rename to graphics/pokemon_storage/wallpapers/cave/box.pal index ddbe3e302..6b783cdd5 100644 --- a/graphics/interface/pss_unk_83D07D8.pal +++ b/graphics/pokemon_storage/wallpapers/cave/box.pal @@ -1,22 +1,6 @@ JASC-PAL 0100 -32 -255 255 255 -230 197 123 -213 180 98 -180 148 65 -148 115 32 -115 82 0 -0 0 0 -0 0 0 -139 90 115 -156 106 131 -115 65 90 -0 0 0 -230 230 230 -255 255 255 -90 90 131 -49 49 90 +16 255 255 255 246 213 131 213 180 98 diff --git a/graphics/interface/pss_unk_83D0B5C.bin b/graphics/pokemon_storage/wallpapers/cave/tilemap.bin similarity index 100% rename from graphics/interface/pss_unk_83D0B5C.bin rename to graphics/pokemon_storage/wallpapers/cave/tilemap.bin diff --git a/graphics/pokemon_storage/wallpapers/cave/tiles.png b/graphics/pokemon_storage/wallpapers/cave/tiles.png new file mode 100644 index 000000000..8a1a6e81e Binary files /dev/null and b/graphics/pokemon_storage/wallpapers/cave/tiles.png differ diff --git a/graphics/pokemon_storage/wallpapers/cave/title.pal b/graphics/pokemon_storage/wallpapers/cave/title.pal new file mode 100644 index 000000000..f6e731395 --- /dev/null +++ b/graphics/pokemon_storage/wallpapers/cave/title.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 255 255 +230 197 123 +213 180 98 +180 148 65 +148 115 32 +115 82 0 +0 0 0 +0 0 0 +139 90 115 +156 106 131 +115 65 90 +0 0 0 +230 230 230 +255 255 255 +90 90 131 +49 49 90 diff --git a/graphics/pokemon_storage/wallpapers/city/box.pal b/graphics/pokemon_storage/wallpapers/city/box.pal new file mode 100644 index 000000000..ba67b3414 --- /dev/null +++ b/graphics/pokemon_storage/wallpapers/city/box.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 255 255 +255 255 246 +255 238 246 +230 213 222 +205 189 197 +164 148 156 +139 123 131 +0 0 0 +0 0 0 +180 164 172 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +156 123 82 +115 82 41 diff --git a/graphics/interface/pss_unk_83CF374.bin b/graphics/pokemon_storage/wallpapers/city/tilemap.bin similarity index 100% rename from graphics/interface/pss_unk_83CF374.bin rename to graphics/pokemon_storage/wallpapers/city/tilemap.bin diff --git a/graphics/pokemon_storage/wallpapers/city/tiles.png b/graphics/pokemon_storage/wallpapers/city/tiles.png new file mode 100644 index 000000000..f5684850a Binary files /dev/null and b/graphics/pokemon_storage/wallpapers/city/tiles.png differ diff --git a/graphics/interface/pss_unk_83CF12C.pal b/graphics/pokemon_storage/wallpapers/city/title.pal similarity index 55% rename from graphics/interface/pss_unk_83CF12C.pal rename to graphics/pokemon_storage/wallpapers/city/title.pal index b430df83e..a5387638a 100644 --- a/graphics/interface/pss_unk_83CF12C.pal +++ b/graphics/pokemon_storage/wallpapers/city/title.pal @@ -1,6 +1,6 @@ JASC-PAL 0100 -32 +16 255 255 255 246 246 246 90 131 197 @@ -17,19 +17,3 @@ JASC-PAL 189 213 213 156 123 82 106 74 32 -255 255 255 -255 255 246 -255 238 246 -230 213 222 -205 189 197 -164 148 156 -139 123 131 -0 0 0 -0 0 0 -180 164 172 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -156 123 82 -115 82 41 diff --git a/graphics/pokemon_storage/wallpapers/crag/box.pal b/graphics/pokemon_storage/wallpapers/crag/box.pal new file mode 100644 index 000000000..f72b27d13 --- /dev/null +++ b/graphics/pokemon_storage/wallpapers/crag/box.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 255 255 +222 222 222 +189 189 189 +156 156 156 +123 123 123 +90 90 90 +57 57 57 +41 41 41 +222 189 205 +197 164 180 +172 139 156 +246 213 230 +238 238 238 +255 255 255 +213 189 82 +172 148 41 diff --git a/graphics/interface/pss_unk_83CFEF0.bin b/graphics/pokemon_storage/wallpapers/crag/tilemap.bin similarity index 100% rename from graphics/interface/pss_unk_83CFEF0.bin rename to graphics/pokemon_storage/wallpapers/crag/tilemap.bin diff --git a/graphics/pokemon_storage/wallpapers/crag/tiles.png b/graphics/pokemon_storage/wallpapers/crag/tiles.png new file mode 100644 index 000000000..bfdc0a7e3 Binary files /dev/null and b/graphics/pokemon_storage/wallpapers/crag/tiles.png differ diff --git a/graphics/interface/pss_unk_83CFB60.pal b/graphics/pokemon_storage/wallpapers/crag/title.pal similarity index 52% rename from graphics/interface/pss_unk_83CFB60.pal rename to graphics/pokemon_storage/wallpapers/crag/title.pal index 292b6db72..c4f85c644 100644 --- a/graphics/interface/pss_unk_83CFB60.pal +++ b/graphics/pokemon_storage/wallpapers/crag/title.pal @@ -1,6 +1,6 @@ JASC-PAL 0100 -32 +16 255 255 255 222 222 222 189 189 189 @@ -17,19 +17,3 @@ JASC-PAL 255 255 255 213 189 82 172 148 41 -255 255 255 -222 222 222 -189 189 189 -156 156 156 -123 123 123 -90 90 90 -57 57 57 -41 41 41 -222 189 205 -197 164 180 -172 139 156 -246 213 230 -238 238 238 -255 255 255 -213 189 82 -172 148 41 diff --git a/graphics/pokemon_storage/wallpapers/desert/box.pal b/graphics/pokemon_storage/wallpapers/desert/box.pal new file mode 100644 index 000000000..c5ca027d2 --- /dev/null +++ b/graphics/pokemon_storage/wallpapers/desert/box.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 255 255 +255 238 189 +255 213 164 +230 189 139 +205 164 115 +180 139 90 +156 115 65 +131 90 41 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +164 139 82 +123 98 41 diff --git a/graphics/interface/pss_unk_83CF750.bin b/graphics/pokemon_storage/wallpapers/desert/tilemap.bin similarity index 100% rename from graphics/interface/pss_unk_83CF750.bin rename to graphics/pokemon_storage/wallpapers/desert/tilemap.bin diff --git a/graphics/pokemon_storage/wallpapers/desert/tiles.png b/graphics/pokemon_storage/wallpapers/desert/tiles.png new file mode 100644 index 000000000..373749994 Binary files /dev/null and b/graphics/pokemon_storage/wallpapers/desert/tiles.png differ diff --git a/graphics/interface/pss_unk_83CF424.pal b/graphics/pokemon_storage/wallpapers/desert/title.pal similarity index 55% rename from graphics/interface/pss_unk_83CF424.pal rename to graphics/pokemon_storage/wallpapers/desert/title.pal index a3a5cb4ea..4cf04f8ae 100644 --- a/graphics/interface/pss_unk_83CF424.pal +++ b/graphics/pokemon_storage/wallpapers/desert/title.pal @@ -1,6 +1,6 @@ JASC-PAL 0100 -32 +16 255 255 255 255 255 139 205 189 131 @@ -17,19 +17,3 @@ JASC-PAL 255 255 255 164 139 82 123 98 41 -255 255 255 -255 238 189 -255 213 164 -230 189 139 -205 164 115 -180 139 90 -156 115 65 -131 90 41 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -164 139 82 -123 98 41 diff --git a/graphics/pokemon_storage/wallpapers/forest/box.pal b/graphics/pokemon_storage/wallpapers/forest/box.pal new file mode 100644 index 000000000..946becabb --- /dev/null +++ b/graphics/pokemon_storage/wallpapers/forest/box.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 255 255 +230 255 172 +205 255 148 +180 230 123 +156 205 98 +131 180 74 +106 156 49 +82 131 24 +0 0 0 +205 213 172 +172 180 139 +0 0 0 +0 0 0 +0 0 0 +164 139 82 +123 98 41 diff --git a/graphics/interface/pss_unk_83CF050.bin b/graphics/pokemon_storage/wallpapers/forest/tilemap.bin similarity index 100% rename from graphics/interface/pss_unk_83CF050.bin rename to graphics/pokemon_storage/wallpapers/forest/tilemap.bin diff --git a/graphics/pokemon_storage/wallpapers/forest/tiles.png b/graphics/pokemon_storage/wallpapers/forest/tiles.png new file mode 100644 index 000000000..1c00feb82 Binary files /dev/null and b/graphics/pokemon_storage/wallpapers/forest/tiles.png differ diff --git a/graphics/interface/pss_unk_83CEC40.pal b/graphics/pokemon_storage/wallpapers/forest/title.pal similarity index 54% rename from graphics/interface/pss_unk_83CEC40.pal rename to graphics/pokemon_storage/wallpapers/forest/title.pal index d2663e710..1b4166087 100644 --- a/graphics/interface/pss_unk_83CEC40.pal +++ b/graphics/pokemon_storage/wallpapers/forest/title.pal @@ -1,6 +1,6 @@ JASC-PAL 0100 -32 +16 255 255 255 246 255 230 255 255 213 @@ -17,19 +17,3 @@ JASC-PAL 255 255 255 164 139 82 123 98 41 -255 255 255 -230 255 172 -205 255 148 -180 230 123 -156 205 98 -131 180 74 -106 156 49 -82 131 24 -0 0 0 -205 213 172 -172 180 139 -0 0 0 -0 0 0 -0 0 0 -164 139 82 -123 98 41 diff --git a/graphics/pokemon_storage/wallpapers/pokecenter/box.pal b/graphics/pokemon_storage/wallpapers/pokecenter/box.pal new file mode 100644 index 000000000..60b96bbd9 --- /dev/null +++ b/graphics/pokemon_storage/wallpapers/pokecenter/box.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 255 115 +41 82 82 +65 115 115 +115 164 156 +90 131 82 +131 172 123 +172 213 172 +189 230 197 +213 255 222 +255 164 139 +213 213 230 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +255 255 255 diff --git a/graphics/interface/pss_unk_83D22B8.bin b/graphics/pokemon_storage/wallpapers/pokecenter/tilemap.bin similarity index 100% rename from graphics/interface/pss_unk_83D22B8.bin rename to graphics/pokemon_storage/wallpapers/pokecenter/tilemap.bin diff --git a/graphics/pokemon_storage/wallpapers/pokecenter/tiles.png b/graphics/pokemon_storage/wallpapers/pokecenter/tiles.png new file mode 100644 index 000000000..e82b88e07 Binary files /dev/null and b/graphics/pokemon_storage/wallpapers/pokecenter/tiles.png differ diff --git a/graphics/interface/pss_unk_83D1F94.pal b/graphics/pokemon_storage/wallpapers/pokecenter/title.pal similarity index 52% rename from graphics/interface/pss_unk_83D1F94.pal rename to graphics/pokemon_storage/wallpapers/pokecenter/title.pal index 481d07b1e..332fff38b 100644 --- a/graphics/interface/pss_unk_83D1F94.pal +++ b/graphics/pokemon_storage/wallpapers/pokecenter/title.pal @@ -1,6 +1,6 @@ JASC-PAL 0100 -32 +16 255 255 115 41 82 82 65 115 115 @@ -17,19 +17,3 @@ JASC-PAL 164 205 172 230 230 230 255 255 255 -255 255 115 -41 82 82 -65 115 115 -115 164 156 -90 131 82 -131 172 123 -172 213 172 -189 230 197 -213 255 222 -255 164 139 -213 213 230 -0 0 255 -0 0 255 -0 0 255 -0 0 255 -255 255 255 diff --git a/graphics/interface/pss_unk_83D14B4.pal b/graphics/pokemon_storage/wallpapers/river/box.pal similarity index 53% rename from graphics/interface/pss_unk_83D14B4.pal rename to graphics/pokemon_storage/wallpapers/river/box.pal index 7a3f4656a..09d45090a 100644 --- a/graphics/interface/pss_unk_83D14B4.pal +++ b/graphics/pokemon_storage/wallpapers/river/box.pal @@ -1,22 +1,6 @@ JASC-PAL 0100 -32 -255 255 255 -238 255 255 -205 255 255 -164 255 255 -131 222 222 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -115 180 0 -148 213 24 -180 246 57 -230 230 230 -255 255 255 -180 148 106 -139 106 65 +16 255 255 255 230 255 156 197 255 123 diff --git a/graphics/interface/pss_unk_83D1788.bin b/graphics/pokemon_storage/wallpapers/river/tilemap.bin similarity index 100% rename from graphics/interface/pss_unk_83D1788.bin rename to graphics/pokemon_storage/wallpapers/river/tilemap.bin diff --git a/graphics/pokemon_storage/wallpapers/river/tiles.png b/graphics/pokemon_storage/wallpapers/river/tiles.png new file mode 100644 index 000000000..0a6d4d416 Binary files /dev/null and b/graphics/pokemon_storage/wallpapers/river/tiles.png differ diff --git a/graphics/pokemon_storage/wallpapers/river/title.pal b/graphics/pokemon_storage/wallpapers/river/title.pal new file mode 100644 index 000000000..9fcc4cbca --- /dev/null +++ b/graphics/pokemon_storage/wallpapers/river/title.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 255 255 +238 255 255 +205 255 255 +164 255 255 +131 222 222 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +115 180 0 +148 213 24 +180 246 57 +230 230 230 +255 255 255 +180 148 106 +139 106 65 diff --git a/graphics/pokemon_storage/wallpapers/savanna/box.pal b/graphics/pokemon_storage/wallpapers/savanna/box.pal new file mode 100644 index 000000000..d80816c35 --- /dev/null +++ b/graphics/pokemon_storage/wallpapers/savanna/box.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 255 255 +255 255 131 +222 222 98 +189 189 65 +156 156 32 +123 123 0 +90 90 0 +57 57 0 +189 189 65 +131 180 57 +115 164 41 +205 205 82 +238 238 238 +255 255 255 +189 156 82 +148 115 41 diff --git a/graphics/interface/pss_unk_83CFA94.bin b/graphics/pokemon_storage/wallpapers/savanna/tilemap.bin similarity index 100% rename from graphics/interface/pss_unk_83CFA94.bin rename to graphics/pokemon_storage/wallpapers/savanna/tilemap.bin diff --git a/graphics/pokemon_storage/wallpapers/savanna/tiles.png b/graphics/pokemon_storage/wallpapers/savanna/tiles.png new file mode 100644 index 000000000..ec1e4e8fd Binary files /dev/null and b/graphics/pokemon_storage/wallpapers/savanna/tiles.png differ diff --git a/graphics/interface/pss_unk_83CF834.pal b/graphics/pokemon_storage/wallpapers/savanna/title.pal similarity index 52% rename from graphics/interface/pss_unk_83CF834.pal rename to graphics/pokemon_storage/wallpapers/savanna/title.pal index a7789ddfe..1c1742cc2 100644 --- a/graphics/interface/pss_unk_83CF834.pal +++ b/graphics/pokemon_storage/wallpapers/savanna/title.pal @@ -1,6 +1,6 @@ JASC-PAL 0100 -32 +16 255 255 255 222 222 222 189 189 189 @@ -17,19 +17,3 @@ JASC-PAL 255 255 255 189 156 82 148 115 41 -255 255 255 -255 255 131 -222 222 98 -189 189 65 -156 156 32 -123 123 0 -90 90 0 -57 57 0 -189 189 65 -131 180 57 -115 164 41 -205 205 82 -238 238 238 -255 255 255 -189 156 82 -148 115 41 diff --git a/graphics/interface/pss_unk_83D10E4.pal b/graphics/pokemon_storage/wallpapers/seafloor/box.pal similarity index 52% rename from graphics/interface/pss_unk_83D10E4.pal rename to graphics/pokemon_storage/wallpapers/seafloor/box.pal index b91fdd173..43b2eecab 100644 --- a/graphics/interface/pss_unk_83D10E4.pal +++ b/graphics/pokemon_storage/wallpapers/seafloor/box.pal @@ -1,22 +1,6 @@ JASC-PAL 0100 -32 -255 255 255 -131 180 255 -98 148 222 -65 115 189 -32 82 156 -0 24 98 -0 0 0 -0 0 0 -139 90 115 -156 106 131 -115 65 90 -0 0 0 -230 230 230 -255 255 255 -148 180 41 -106 139 0 +16 255 255 255 164 213 255 131 180 255 diff --git a/graphics/interface/pss_unk_83D13D8.bin b/graphics/pokemon_storage/wallpapers/seafloor/tilemap.bin similarity index 100% rename from graphics/interface/pss_unk_83D13D8.bin rename to graphics/pokemon_storage/wallpapers/seafloor/tilemap.bin diff --git a/graphics/pokemon_storage/wallpapers/seafloor/tiles.png b/graphics/pokemon_storage/wallpapers/seafloor/tiles.png new file mode 100644 index 000000000..192f7126c Binary files /dev/null and b/graphics/pokemon_storage/wallpapers/seafloor/tiles.png differ diff --git a/graphics/pokemon_storage/wallpapers/seafloor/title.pal b/graphics/pokemon_storage/wallpapers/seafloor/title.pal new file mode 100644 index 000000000..79c7650b4 --- /dev/null +++ b/graphics/pokemon_storage/wallpapers/seafloor/title.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 255 255 +131 180 255 +98 148 222 +65 115 189 +32 82 156 +0 24 98 +0 0 0 +0 0 0 +139 90 115 +156 106 131 +115 65 90 +0 0 0 +230 230 230 +255 255 255 +148 180 41 +106 139 0 diff --git a/graphics/interface/pss_unk_83D2614.pal b/graphics/pokemon_storage/wallpapers/simple/box.pal similarity index 55% rename from graphics/interface/pss_unk_83D2614.pal rename to graphics/pokemon_storage/wallpapers/simple/box.pal index a508e7ba8..86596441a 100644 --- a/graphics/interface/pss_unk_83D2614.pal +++ b/graphics/pokemon_storage/wallpapers/simple/box.pal @@ -1,22 +1,6 @@ JASC-PAL 0100 -32 -255 156 213 -82 65 115 -106 90 139 -131 115 164 -172 172 255 -189 189 255 -0 0 255 -0 0 255 -0 0 255 -0 0 255 -0 0 255 -0 0 255 -0 0 255 -0 0 255 -0 0 255 -255 255 255 +16 255 156 213 82 65 115 106 90 139 diff --git a/graphics/interface/pss_unk_83D277C.bin b/graphics/pokemon_storage/wallpapers/simple/tilemap.bin similarity index 100% rename from graphics/interface/pss_unk_83D277C.bin rename to graphics/pokemon_storage/wallpapers/simple/tilemap.bin diff --git a/graphics/pokemon_storage/wallpapers/simple/tiles.png b/graphics/pokemon_storage/wallpapers/simple/tiles.png new file mode 100644 index 000000000..df046d843 Binary files /dev/null and b/graphics/pokemon_storage/wallpapers/simple/tiles.png differ diff --git a/graphics/pokemon_storage/wallpapers/simple/title.pal b/graphics/pokemon_storage/wallpapers/simple/title.pal new file mode 100644 index 000000000..9b4ffb97f --- /dev/null +++ b/graphics/pokemon_storage/wallpapers/simple/title.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 156 213 +82 65 115 +106 90 139 +131 115 164 +172 172 255 +189 189 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +0 0 255 +255 255 255 diff --git a/graphics/interface/pss_unk_83D1874.pal b/graphics/pokemon_storage/wallpapers/sky/box.pal similarity index 51% rename from graphics/interface/pss_unk_83D1874.pal rename to graphics/pokemon_storage/wallpapers/sky/box.pal index a529046e5..3d722ed6d 100644 --- a/graphics/interface/pss_unk_83D1874.pal +++ b/graphics/pokemon_storage/wallpapers/sky/box.pal @@ -1,22 +1,6 @@ JASC-PAL 0100 -32 -255 255 255 -238 255 255 -205 255 255 -164 255 255 -123 213 246 -90 180 213 -57 148 180 -24 115 148 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -230 230 230 -255 255 255 -205 139 41 -164 98 0 +16 255 255 255 238 255 255 205 255 255 diff --git a/graphics/interface/pss_unk_83D1B4C.bin b/graphics/pokemon_storage/wallpapers/sky/tilemap.bin similarity index 100% rename from graphics/interface/pss_unk_83D1B4C.bin rename to graphics/pokemon_storage/wallpapers/sky/tilemap.bin diff --git a/graphics/pokemon_storage/wallpapers/sky/tiles.png b/graphics/pokemon_storage/wallpapers/sky/tiles.png new file mode 100644 index 000000000..2b28d3897 Binary files /dev/null and b/graphics/pokemon_storage/wallpapers/sky/tiles.png differ diff --git a/graphics/pokemon_storage/wallpapers/sky/title.pal b/graphics/pokemon_storage/wallpapers/sky/title.pal new file mode 100644 index 000000000..951f59ecf --- /dev/null +++ b/graphics/pokemon_storage/wallpapers/sky/title.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 255 255 +238 255 255 +205 255 255 +164 255 255 +123 213 246 +90 180 213 +57 148 180 +24 115 148 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +230 230 230 +255 255 255 +205 139 41 +164 98 0 diff --git a/graphics/pokemon_storage/wallpapers/snow/box.pal b/graphics/pokemon_storage/wallpapers/snow/box.pal new file mode 100644 index 000000000..01e46d027 --- /dev/null +++ b/graphics/pokemon_storage/wallpapers/snow/box.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 255 255 +230 230 230 +205 205 205 +139 148 189 +106 115 156 +74 82 123 +41 49 90 +8 16 57 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +238 238 238 +255 255 255 +213 131 139 +172 90 98 diff --git a/graphics/interface/pss_unk_83D070C.bin b/graphics/pokemon_storage/wallpapers/snow/tilemap.bin similarity index 100% rename from graphics/interface/pss_unk_83D070C.bin rename to graphics/pokemon_storage/wallpapers/snow/tilemap.bin diff --git a/graphics/pokemon_storage/wallpapers/snow/tiles.png b/graphics/pokemon_storage/wallpapers/snow/tiles.png new file mode 100644 index 000000000..00225d6fc Binary files /dev/null and b/graphics/pokemon_storage/wallpapers/snow/tiles.png differ diff --git a/graphics/interface/pss_unk_83D0414.pal b/graphics/pokemon_storage/wallpapers/snow/title.pal similarity index 51% rename from graphics/interface/pss_unk_83D0414.pal rename to graphics/pokemon_storage/wallpapers/snow/title.pal index 64a768cb1..437ccb934 100644 --- a/graphics/interface/pss_unk_83D0414.pal +++ b/graphics/pokemon_storage/wallpapers/snow/title.pal @@ -1,6 +1,6 @@ JASC-PAL 0100 -32 +16 255 255 255 230 230 230 205 205 205 @@ -17,19 +17,3 @@ JASC-PAL 255 255 255 213 131 139 172 90 98 -255 255 255 -230 230 230 -205 205 205 -139 148 189 -106 115 156 -74 82 123 -41 49 90 -8 16 57 -0 0 0 -0 0 0 -0 0 0 -0 0 0 -238 238 238 -255 255 255 -213 131 139 -172 90 98 diff --git a/graphics/interface/pss_unk_83D1C2C.pal b/graphics/pokemon_storage/wallpapers/stars/box.pal similarity index 51% rename from graphics/interface/pss_unk_83D1C2C.pal rename to graphics/pokemon_storage/wallpapers/stars/box.pal index 0d9a33ee1..fc4215468 100644 --- a/graphics/interface/pss_unk_83D1C2C.pal +++ b/graphics/pokemon_storage/wallpapers/stars/box.pal @@ -1,22 +1,6 @@ JASC-PAL 0100 -32 -255 255 115 -106 8 115 -156 41 148 -205 74 180 -74 106 156 -98 123 205 -123 139 255 -238 238 57 -213 156 123 -156 230 82 -180 164 131 -213 106 189 -156 115 197 -139 180 164 -230 213 213 -255 255 255 +16 255 255 115 106 8 115 156 41 148 diff --git a/graphics/interface/pss_unk_83D1EC4.bin b/graphics/pokemon_storage/wallpapers/stars/tilemap.bin similarity index 100% rename from graphics/interface/pss_unk_83D1EC4.bin rename to graphics/pokemon_storage/wallpapers/stars/tilemap.bin diff --git a/graphics/pokemon_storage/wallpapers/stars/tiles.png b/graphics/pokemon_storage/wallpapers/stars/tiles.png new file mode 100644 index 000000000..51c9f8674 Binary files /dev/null and b/graphics/pokemon_storage/wallpapers/stars/tiles.png differ diff --git a/graphics/pokemon_storage/wallpapers/stars/title.pal b/graphics/pokemon_storage/wallpapers/stars/title.pal new file mode 100644 index 000000000..e7b45e524 --- /dev/null +++ b/graphics/pokemon_storage/wallpapers/stars/title.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 255 115 +106 8 115 +156 41 148 +205 74 180 +74 106 156 +98 123 205 +123 139 255 +238 238 57 +213 156 123 +156 230 82 +180 164 131 +213 106 189 +156 115 197 +139 180 164 +230 213 213 +255 255 255 diff --git a/graphics/interface/pss_unk_83D239C.pal b/graphics/pokemon_storage/wallpapers/tiles/box.pal similarity index 52% rename from graphics/interface/pss_unk_83D239C.pal rename to graphics/pokemon_storage/wallpapers/tiles/box.pal index 07d069629..9ff5c0789 100644 --- a/graphics/interface/pss_unk_83D239C.pal +++ b/graphics/pokemon_storage/wallpapers/tiles/box.pal @@ -1,22 +1,6 @@ JASC-PAL 0100 -32 -255 255 115 -156 90 41 -205 106 8 -230 156 8 -0 0 255 -0 0 255 -0 0 255 -164 156 139 -213 205 172 -0 0 255 -131 131 131 -164 164 164 -180 180 180 -197 197 197 -213 213 213 -255 255 255 +16 255 255 115 156 90 41 205 106 8 diff --git a/graphics/interface/pss_unk_83D256C.bin b/graphics/pokemon_storage/wallpapers/tiles/tilemap.bin similarity index 100% rename from graphics/interface/pss_unk_83D256C.bin rename to graphics/pokemon_storage/wallpapers/tiles/tilemap.bin diff --git a/graphics/pokemon_storage/wallpapers/tiles/tiles.png b/graphics/pokemon_storage/wallpapers/tiles/tiles.png new file mode 100644 index 000000000..1b3443a0a Binary files /dev/null and b/graphics/pokemon_storage/wallpapers/tiles/tiles.png differ diff --git a/graphics/pokemon_storage/wallpapers/tiles/title.pal b/graphics/pokemon_storage/wallpapers/tiles/title.pal new file mode 100644 index 000000000..efcd01fa6 --- /dev/null +++ b/graphics/pokemon_storage/wallpapers/tiles/title.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 255 115 +156 90 41 +205 106 8 +230 156 8 +0 0 255 +0 0 255 +0 0 255 +164 156 139 +213 205 172 +0 0 255 +131 131 131 +164 164 164 +180 180 180 +197 197 197 +213 213 213 +255 255 255 diff --git a/graphics/interface/pss_unk_83D2820.bin b/graphics/pokemon_storage/wallpapers/unused.bin similarity index 100% rename from graphics/interface/pss_unk_83D2820.bin rename to graphics/pokemon_storage/wallpapers/unused.bin diff --git a/graphics/interface/pss_unk_83CFFC8.pal b/graphics/pokemon_storage/wallpapers/volcano/box.pal similarity index 52% rename from graphics/interface/pss_unk_83CFFC8.pal rename to graphics/pokemon_storage/wallpapers/volcano/box.pal index e019bd6e9..8ea563b6e 100644 --- a/graphics/interface/pss_unk_83CFFC8.pal +++ b/graphics/pokemon_storage/wallpapers/volcano/box.pal @@ -1,22 +1,6 @@ JASC-PAL 0100 -32 -255 255 255 -222 222 222 -189 189 189 -139 148 189 -106 115 156 -74 82 123 -172 180 222 -0 0 0 -222 131 74 -205 115 57 -180 82 24 -0 0 0 -230 230 230 -255 255 255 -213 131 139 -172 90 98 +16 255 255 255 255 246 230 255 238 205 diff --git a/graphics/interface/pss_unk_83D033C.bin b/graphics/pokemon_storage/wallpapers/volcano/tilemap.bin similarity index 100% rename from graphics/interface/pss_unk_83D033C.bin rename to graphics/pokemon_storage/wallpapers/volcano/tilemap.bin diff --git a/graphics/pokemon_storage/wallpapers/volcano/tiles.png b/graphics/pokemon_storage/wallpapers/volcano/tiles.png new file mode 100644 index 000000000..812ce08c9 Binary files /dev/null and b/graphics/pokemon_storage/wallpapers/volcano/tiles.png differ diff --git a/graphics/pokemon_storage/wallpapers/volcano/title.pal b/graphics/pokemon_storage/wallpapers/volcano/title.pal new file mode 100644 index 000000000..0378aff29 --- /dev/null +++ b/graphics/pokemon_storage/wallpapers/volcano/title.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 255 255 +222 222 222 +189 189 189 +139 148 189 +106 115 156 +74 82 123 +172 180 222 +0 0 0 +222 131 74 +205 115 57 +180 82 24 +0 0 0 +230 230 230 +255 255 255 +213 131 139 +172 90 98 diff --git a/graphics/pokemon_storage/waveform.png b/graphics/pokemon_storage/waveform.png new file mode 100644 index 000000000..b8f101d61 Binary files /dev/null and b/graphics/pokemon_storage/waveform.png differ diff --git a/graphics/region_map/region_map.png b/graphics/region_map/region_map.png index 9413e86b1..0fc27d0b9 100644 Binary files a/graphics/region_map/region_map.png and b/graphics/region_map/region_map.png differ diff --git a/graphics/text_window/unk_841F1C8.png b/graphics/text_window/menu_message.png similarity index 100% rename from graphics/text_window/unk_841F1C8.png rename to graphics/text_window/menu_message.png diff --git a/graphics/text_window/unk_8471B6C.png b/graphics/text_window/quest_log.png similarity index 100% rename from graphics/text_window/unk_8471B6C.png rename to graphics/text_window/quest_log.png diff --git a/graphics/text_window/unk_8470B0C.png b/graphics/text_window/signpost.png similarity index 100% rename from graphics/text_window/unk_8470B0C.png rename to graphics/text_window/signpost.png diff --git a/graphics/text_window/unk_8471A4C.png b/graphics/text_window/std.png similarity index 100% rename from graphics/text_window/unk_8471A4C.png rename to graphics/text_window/std.png diff --git a/graphics/text_window/unk_8470D6C.png b/graphics/text_window/type1.png similarity index 100% rename from graphics/text_window/unk_8470D6C.png rename to graphics/text_window/type1.png diff --git a/graphics/text_window/unk_84717CC.png b/graphics/text_window/type10.png similarity index 100% rename from graphics/text_window/unk_84717CC.png rename to graphics/text_window/type10.png diff --git a/graphics/text_window/unk_8470E8C.png b/graphics/text_window/type2.png similarity index 100% rename from graphics/text_window/unk_8470E8C.png rename to graphics/text_window/type2.png diff --git a/graphics/text_window/unk_8470FCC.png b/graphics/text_window/type3.png similarity index 100% rename from graphics/text_window/unk_8470FCC.png rename to graphics/text_window/type3.png diff --git a/graphics/text_window/unk_84710EC.png b/graphics/text_window/type4.png similarity index 100% rename from graphics/text_window/unk_84710EC.png rename to graphics/text_window/type4.png diff --git a/graphics/text_window/unk_847120C.png b/graphics/text_window/type5.png similarity index 100% rename from graphics/text_window/unk_847120C.png rename to graphics/text_window/type5.png diff --git a/graphics/text_window/unk_847132C.png b/graphics/text_window/type6.png similarity index 100% rename from graphics/text_window/unk_847132C.png rename to graphics/text_window/type6.png diff --git a/graphics/text_window/unk_847144C.png b/graphics/text_window/type7.png similarity index 100% rename from graphics/text_window/unk_847144C.png rename to graphics/text_window/type7.png diff --git a/graphics/text_window/unk_847156C.png b/graphics/text_window/type8.png similarity index 100% rename from graphics/text_window/unk_847156C.png rename to graphics/text_window/type8.png diff --git a/graphics/text_window/unk_84716AC.png b/graphics/text_window/type9.png similarity index 100% rename from graphics/text_window/unk_84716AC.png rename to graphics/text_window/type9.png diff --git a/graphics/unknown/unk_841EF48.png b/graphics/text_window/unused.png similarity index 100% rename from graphics/unknown/unk_841EF48.png rename to graphics/text_window/unused.png diff --git a/graphics/unknown/unknown_84566a8.bin b/graphics/unknown/unknown_84566a8.bin deleted file mode 100644 index 2fc4a648a..000000000 Binary files a/graphics/unknown/unknown_84566a8.bin and /dev/null differ diff --git a/graphics/mevent/tilemap_467288.bin b/graphics/wonder_card/bg0.bin similarity index 100% rename from graphics/mevent/tilemap_467288.bin rename to graphics/wonder_card/bg0.bin diff --git a/graphics/mevent/pal_46708C.pal b/graphics/wonder_card/bg0.pal similarity index 100% rename from graphics/mevent/pal_46708C.pal rename to graphics/wonder_card/bg0.pal diff --git a/graphics/wonder_card/bg0.png b/graphics/wonder_card/bg0.png new file mode 100644 index 000000000..924a46dac Binary files /dev/null and b/graphics/wonder_card/bg0.png differ diff --git a/graphics/mevent/tilemap_467470.bin b/graphics/wonder_card/bg1.bin similarity index 100% rename from graphics/mevent/tilemap_467470.bin rename to graphics/wonder_card/bg1.bin diff --git a/graphics/mevent/pal_4670AC.pal b/graphics/wonder_card/bg1.pal similarity index 100% rename from graphics/mevent/pal_4670AC.pal rename to graphics/wonder_card/bg1.pal diff --git a/graphics/wonder_card/bg1.png b/graphics/wonder_card/bg1.png new file mode 100644 index 000000000..8ea8b1a41 Binary files /dev/null and b/graphics/wonder_card/bg1.png differ diff --git a/graphics/mevent/tilemap_46762C.bin b/graphics/wonder_card/bg2.bin similarity index 100% rename from graphics/mevent/tilemap_46762C.bin rename to graphics/wonder_card/bg2.bin diff --git a/graphics/mevent/pal_4670CC.pal b/graphics/wonder_card/bg2.pal similarity index 100% rename from graphics/mevent/pal_4670CC.pal rename to graphics/wonder_card/bg2.pal diff --git a/graphics/wonder_card/bg2.png b/graphics/wonder_card/bg2.png new file mode 100644 index 000000000..96a3252a4 Binary files /dev/null and b/graphics/wonder_card/bg2.png differ diff --git a/graphics/mevent/pal_4670EC.pal b/graphics/wonder_card/bg3.pal similarity index 100% rename from graphics/mevent/pal_4670EC.pal rename to graphics/wonder_card/bg3.pal diff --git a/graphics/mevent/pal_46710C.pal b/graphics/wonder_card/bg4.pal similarity index 100% rename from graphics/mevent/pal_46710C.pal rename to graphics/wonder_card/bg4.pal diff --git a/graphics/mevent/pal_46712C.pal b/graphics/wonder_card/bg5.pal similarity index 100% rename from graphics/mevent/pal_46712C.pal rename to graphics/wonder_card/bg5.pal diff --git a/graphics/mevent/tilemap_467934.bin b/graphics/wonder_card/bg6.bin similarity index 100% rename from graphics/mevent/tilemap_467934.bin rename to graphics/wonder_card/bg6.bin diff --git a/graphics/mevent/pal_46714C.pal b/graphics/wonder_card/bg6.pal similarity index 100% rename from graphics/mevent/pal_46714C.pal rename to graphics/wonder_card/bg6.pal diff --git a/graphics/wonder_card/bg6.png b/graphics/wonder_card/bg6.png new file mode 100644 index 000000000..f534b555e Binary files /dev/null and b/graphics/wonder_card/bg6.png differ diff --git a/graphics/mevent/tilemap_467CAC.bin b/graphics/wonder_card/bg7.bin similarity index 100% rename from graphics/mevent/tilemap_467CAC.bin rename to graphics/wonder_card/bg7.bin diff --git a/graphics/mevent/pal_46716C.pal b/graphics/wonder_card/bg7.pal similarity index 100% rename from graphics/mevent/pal_46716C.pal rename to graphics/wonder_card/bg7.pal diff --git a/graphics/wonder_card/bg7.png b/graphics/wonder_card/bg7.png new file mode 100644 index 000000000..90890ded9 Binary files /dev/null and b/graphics/wonder_card/bg7.png differ diff --git a/graphics/wonder_card/stamp_shadow.png b/graphics/wonder_card/stamp_shadow.png new file mode 100644 index 000000000..ae1c92a93 Binary files /dev/null and b/graphics/wonder_card/stamp_shadow.png differ diff --git a/graphics/mevent/pal_467DF4.pal b/graphics/wonder_card/stamp_shadow_0.pal similarity index 100% rename from graphics/mevent/pal_467DF4.pal rename to graphics/wonder_card/stamp_shadow_0.pal diff --git a/graphics/mevent/pal_467E14.pal b/graphics/wonder_card/stamp_shadow_1.pal similarity index 100% rename from graphics/mevent/pal_467E14.pal rename to graphics/wonder_card/stamp_shadow_1.pal diff --git a/graphics/mevent/pal_467E34.pal b/graphics/wonder_card/stamp_shadow_2.pal similarity index 100% rename from graphics/mevent/pal_467E34.pal rename to graphics/wonder_card/stamp_shadow_2.pal diff --git a/graphics/mevent/pal_467E54.pal b/graphics/wonder_card/stamp_shadow_3.pal similarity index 100% rename from graphics/mevent/pal_467E54.pal rename to graphics/wonder_card/stamp_shadow_3.pal diff --git a/graphics/mevent/pal_467E74.pal b/graphics/wonder_card/stamp_shadow_4.pal similarity index 100% rename from graphics/mevent/pal_467E74.pal rename to graphics/wonder_card/stamp_shadow_4.pal diff --git a/graphics/mevent/pal_467E94.pal b/graphics/wonder_card/stamp_shadow_5.pal similarity index 100% rename from graphics/mevent/pal_467E94.pal rename to graphics/wonder_card/stamp_shadow_5.pal diff --git a/graphics/mevent/pal_467EB4.pal b/graphics/wonder_card/stamp_shadow_6.pal similarity index 100% rename from graphics/mevent/pal_467EB4.pal rename to graphics/wonder_card/stamp_shadow_6.pal diff --git a/graphics/mevent/pal_467ED4.pal b/graphics/wonder_card/stamp_shadow_7.pal similarity index 100% rename from graphics/mevent/pal_467ED4.pal rename to graphics/wonder_card/stamp_shadow_7.pal diff --git a/graphics/mevent/tilemap_468140.bin b/graphics/wonder_news/bg0.bin similarity index 100% rename from graphics/mevent/tilemap_468140.bin rename to graphics/wonder_news/bg0.bin diff --git a/graphics/mevent/pal_468060.pal b/graphics/wonder_news/bg0.pal similarity index 100% rename from graphics/mevent/pal_468060.pal rename to graphics/wonder_news/bg0.pal diff --git a/graphics/wonder_news/bg0.png b/graphics/wonder_news/bg0.png new file mode 100644 index 000000000..1c227c7ec Binary files /dev/null and b/graphics/wonder_news/bg0.png differ diff --git a/graphics/mevent/tilemap_46824C.bin b/graphics/wonder_news/bg1.bin similarity index 100% rename from graphics/mevent/tilemap_46824C.bin rename to graphics/wonder_news/bg1.bin diff --git a/graphics/wonder_news/bg1.png b/graphics/wonder_news/bg1.png new file mode 100644 index 000000000..6a269f861 Binary files /dev/null and b/graphics/wonder_news/bg1.png differ diff --git a/graphics/mevent/tilemap_46837C.bin b/graphics/wonder_news/bg2.bin similarity index 100% rename from graphics/mevent/tilemap_46837C.bin rename to graphics/wonder_news/bg2.bin diff --git a/graphics/wonder_news/bg2.png b/graphics/wonder_news/bg2.png new file mode 100644 index 000000000..518283c86 Binary files /dev/null and b/graphics/wonder_news/bg2.png differ diff --git a/graphics/mevent/tilemap_4684D8.bin b/graphics/wonder_news/bg6.bin similarity index 100% rename from graphics/mevent/tilemap_4684D8.bin rename to graphics/wonder_news/bg6.bin diff --git a/graphics/mevent/pal_468080.pal b/graphics/wonder_news/bg6.pal similarity index 100% rename from graphics/mevent/pal_468080.pal rename to graphics/wonder_news/bg6.pal diff --git a/graphics/wonder_news/bg6.png b/graphics/wonder_news/bg6.png new file mode 100644 index 000000000..6e26cdc06 Binary files /dev/null and b/graphics/wonder_news/bg6.png differ diff --git a/graphics/mevent/tilemap_468644.bin b/graphics/wonder_news/bg7.bin similarity index 100% rename from graphics/mevent/tilemap_468644.bin rename to graphics/wonder_news/bg7.bin diff --git a/graphics/mevent/pal_4680A0.pal b/graphics/wonder_news/bg7.pal similarity index 100% rename from graphics/mevent/pal_4680A0.pal rename to graphics/wonder_news/bg7.pal diff --git a/graphics/wonder_news/bg7.png b/graphics/wonder_news/bg7.png new file mode 100644 index 000000000..f224e1845 Binary files /dev/null and b/graphics/wonder_news/bg7.png differ diff --git a/graphics_file_rules.mk b/graphics_file_rules.mk index d2f5ab5c6..271dd7670 100644 --- a/graphics_file_rules.mk +++ b/graphics_file_rules.mk @@ -30,6 +30,7 @@ BERRYPOUCHGFXDIR := graphics/berry_pouch HALLOFFAMEGFXDIR := graphics/hall_of_fame MAPPREVIEWGFXDIR := graphics/map_preview NAMINGGFXDIR := graphics/naming_screen +WALLPAPERGFXDIR := graphics/pokemon_storage/wallpapers types := normal fight flying poison ground rock bug ghost steel mystery fire water grass electric psychic ice dragon dark contest_types := cool beauty cute smart tough @@ -486,7 +487,7 @@ graphics/seagallop/water.4bpp: %.4bpp: %.png graphics/link/321start.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(TEXTWINDOWGFXDIR)/unk_8470B0C.4bpp: %.4bpp: %.png +$(TEXTWINDOWGFXDIR)/signpost.4bpp: %.4bpp: %.png $(GFX) $< $@ -num_tiles 19 $(SLOTMACHINEGFXDIR)/unk_8466620.4bpp: %.4bpp: %.png @@ -536,14 +537,20 @@ graphics/misc/emoticons.4bpp: %.4bpp: %.png $(ITEMMENUGFXDIR)/bag_tiles.4bpp: %.4bpp: %.png $(GFX) $< $@ -num_tiles 55 -$(INTROGFXDIR)/unk_8402D54.4bpp: %.4bpp: %.png +$(INTROGFXDIR)/scene_1/grass.4bpp: %.4bpp: %.png $(GFX) $< $@ -num_tiles 397 -$(INTROGFXDIR)/unk_8406654.4bpp: %.4bpp: %.png +$(INTROGFXDIR)/scene_2/plants.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 17 + +$(INTROGFXDIR)/scene_2/nidorino_close.4bpp: %.4bpp: %.png $(GFX) $< $@ -num_tiles 170 -$(INTROGFXDIR)/unk_8405B28.4bpp: %.4bpp: %.png - $(GFX) $< $@ -num_tiles 17 +$(INTROGFXDIR)/scene_2/gengar_close.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 114 + +$(INTROGFXDIR)/scene_3/gengar_anim.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 348 $(BATTLETERRAINGFXDIR)/building/terrain.4bpp: %.4bpp: %.png $(GFX) $< $@ -num_tiles 77 @@ -664,3 +671,52 @@ $(NAMINGGFXDIR)/cursor_squished.4bpp: %.4bpp: %.png $(NAMINGGFXDIR)/cursor_filled.4bpp: %.4bpp: %.png $(GFX) $< $@ -num_tiles 5 + + +$(WALLPAPERGFXDIR)/beach/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 60 + +$(WALLPAPERGFXDIR)/cave/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 61 + +$(WALLPAPERGFXDIR)/city/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 40 + +$(WALLPAPERGFXDIR)/crag/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 54 + +$(WALLPAPERGFXDIR)/desert/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 52 + +$(WALLPAPERGFXDIR)/forest/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 53 + +$(WALLPAPERGFXDIR)/pokecenter/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 57 + +$(WALLPAPERGFXDIR)/river/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 63 + +$(WALLPAPERGFXDIR)/savanna/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 45 + +$(WALLPAPERGFXDIR)/seafloor/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 53 + +$(WALLPAPERGFXDIR)/simple/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 25 + +$(WALLPAPERGFXDIR)/sky/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 52 + +$(WALLPAPERGFXDIR)/snow/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 51 + +$(WALLPAPERGFXDIR)/stars/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 37 + +$(WALLPAPERGFXDIR)/tiles/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 31 + +$(WALLPAPERGFXDIR)/volcano/tiles.4bpp: %.4bpp: %.png + $(GFX) $< $@ -num_tiles 57 diff --git a/include/battle.h b/include/battle.h index ec98208a9..2a7b636e4 100644 --- a/include/battle.h +++ b/include/battle.h @@ -29,11 +29,6 @@ (!(gBattleMons[battler].status2 & STATUS2_TRANSFORMED) \ && !(gDisableStructs[battler].mimickedMoves & gBitTable[moveSlot])) -#define TRAINER_OPPONENT_3FE 0x3FE -#define TRAINER_OPPONENT_C00 0xC00 -#define TRAINER_LINK_OPPONENT 0x800 -#define SECRET_BASE_OPPONENT 0x400 - // Battle Actions // These determine what each battler will do in a turn #define B_ACTION_USE_MOVE 0 @@ -402,8 +397,8 @@ struct BattleStruct u8 runTries; u8 caughtMonNick[POKEMON_NAME_LENGTH + 1]; u8 field_78; // unused - u8 safariGoNearCounter; - u8 safariPkblThrowCounter; + u8 safariRockThrowCounter; + u8 safariBaitThrowCounter; u8 safariEscapeFactor; u8 safariCatchFactor; u8 linkBattleVsSpriteId_V; @@ -521,16 +516,6 @@ struct BattleScripting u8 field_23; }; -enum -{ - BACK_PIC_RED, - BACK_PIC_LEAF, - BACK_PIC_RS_BRENDAN, - BACK_PIC_RS_MAY, - BACK_PIC_POKEDUDE, - BACK_PIC_OLDMAN -}; - struct BattleSpriteInfo { /*0x0*/ u16 invisible : 1; // 0x1 @@ -685,8 +670,8 @@ extern u8 *gBattleAnimBgTileBuffer; extern u8 *gBattleAnimBgTilemapBuffer; extern void (*gBattleMainFunc)(void); extern u8 gMoveSelectionCursor[MAX_BATTLERS_COUNT]; -extern u32 gUnknown_2022B54; -extern u8 gUnknown_2023DDC; +extern u32 gUnusedFirstBattleVar1; +extern u8 gUnusedFirstBattleVar2; extern u8 gBattlerAttacker; extern u8 gEffectBattler; extern u8 gMultiHitCounter; diff --git a/include/battle_ai_switch_items.h b/include/battle_ai_switch_items.h index d0461319d..461994d62 100644 --- a/include/battle_ai_switch_items.h +++ b/include/battle_ai_switch_items.h @@ -3,8 +3,7 @@ #include "global.h" -enum -{ +enum { AI_ITEM_FULL_RESTORE = 1, AI_ITEM_HEAL_HP, AI_ITEM_CURE_CONDITION, @@ -13,6 +12,15 @@ enum AI_ITEM_NOT_RECOGNIZABLE }; +enum { + AI_HEAL_CONFUSION, + AI_HEAL_PARALYSIS, + AI_HEAL_FREEZE, + AI_HEAL_BURN, + AI_HEAL_POISON, + AI_HEAL_SLEEP, +}; + void AI_TrySwitchOrUseItem(void); u8 GetMostSuitableMonToSwitchInto(void); diff --git a/include/battle_anim.h b/include/battle_anim.h index fc40e1373..120935880 100644 --- a/include/battle_anim.h +++ b/include/battle_anim.h @@ -17,6 +17,36 @@ enum BG_ANIM_SCREEN_BASE_BLOCK }; +enum +{ + BATTLER_COORD_X, + BATTLER_COORD_Y, + BATTLER_COORD_X_2, + BATTLER_COORD_Y_PIC_OFFSET, + BATTLER_COORD_Y_PIC_OFFSET_DEFAULT, +}; + +enum +{ + BATTLER_COORD_ATTR_HEIGHT, + BATTLER_COORD_ATTR_WIDTH, + BATTLER_COORD_ATTR_TOP, + BATTLER_COORD_ATTR_BOTTOM, + BATTLER_COORD_ATTR_LEFT, + BATTLER_COORD_ATTR_RIGHT, + BATTLER_COORD_ATTR_RAW_BOTTOM, +}; + +// battle_anim_status_effects.s +#define STAT_ANIM_PLUS1 15 +#define STAT_ANIM_PLUS2 39 +#define STAT_ANIM_MINUS1 22 +#define STAT_ANIM_MINUS2 46 +#define STAT_ANIM_MULTIPLE_PLUS1 55 +#define STAT_ANIM_MULTIPLE_PLUS2 56 +#define STAT_ANIM_MULTIPLE_MINUS1 57 +#define STAT_ANIM_MULTIPLE_MINUS2 58 + struct BattleAnimBgData { u8 *bgTiles; @@ -60,9 +90,8 @@ extern u8 gBattleAnimTarget; extern u8 gBattlerSpriteIds[MAX_BATTLERS_COUNT]; extern s32 gAnimMoveDmg; extern u16 gAnimBattlerSpecies[MAX_BATTLERS_COUNT]; -extern u8 gUnknown_2037F24; +extern u8 gAnimCustomPanning; -// battle_anim.c extern const struct OamData gOamData_AffineOff_ObjNormal_8x8; extern const struct OamData gOamData_AffineOff_ObjNormal_16x16; extern const struct OamData gOamData_AffineOff_ObjNormal_32x32; @@ -135,8 +164,27 @@ extern const struct OamData gOamData_AffineDouble_ObjBlend_8x16; extern const struct OamData gOamData_AffineDouble_ObjBlend_8x32; extern const struct OamData gOamData_AffineDouble_ObjBlend_16x32; extern const struct OamData gOamData_AffineDouble_ObjBlend_32x64; +extern const struct MonCoords gCastformFrontSpriteCoords[]; extern const struct CompressedSpriteSheet gBattleAnimPicTable[]; extern const struct CompressedSpritePalette gBattleAnimPaletteTable[]; +extern const struct SpriteTemplate gFlashingHitSplatSpriteTemplate; +extern const struct SpriteTemplate gBasicHitSplatSpriteTemplate; +extern const struct SpriteTemplate gWaterHitSplatSpriteTemplate; +extern const struct SpriteTemplate gWishStarSpriteTemplate; +extern const struct SpriteTemplate gMiniTwinklingStarSpriteTemplate; +extern const struct SpriteTemplate gThoughtBubbleSpriteTemplate; +extern const union AffineAnimCmd *const gAffineAnims_Bite[]; +extern const union AffineAnimCmd *const gAffineAnims_Droplet[]; +extern const union AffineAnimCmd *const gGrowingRingAffineAnimTable[]; +extern const union AnimCmd *const gAnims_SmallBubblePair[]; +extern const union AnimCmd *const gAnims_BasicFire[]; +extern const union AnimCmd *const gAnims_WaterMudOrb[]; +extern const union AnimCmd *const gAnims_WaterBubble[]; +extern const union AnimCmd *const gMusicNotesAnimTable[]; +extern const u8 *const gBattleAnims_StatusConditions[]; +extern const u8 *const gBattleAnims_Moves[]; +extern const u16 gMovesWithQuietBGM[]; + void MoveBattlerSpriteToBG(u8 battlerId, u8); void ResetBattleAnimBg(u8); void ClearBattleAnimationVars(void); @@ -152,209 +200,19 @@ s16 CalculatePanIncrement(s16 sourcePan, s16 targetPan, s16 incrementPan); bool8 IsBattlerSpriteVisible(u8 battlerId); s16 KeepPanInRange(s16 a, s32 oldPan); void RelocateBattleBgPal(u16 paletteNum, u16 *dest, s32 offset, u8 largeScreen); - -// battle_intro.c void SetAnimBgAttribute(u8 bgId, u8 attributeId, u8 value); s32 GetAnimBgAttribute(u8 bgId, u8 attributeId); void HandleIntroSlide(u8 terrain); void BattleIntroSlideEnd(u8 taskId); void CopyBattlerSpriteToBg(s32 bgId, u8 x, u8 y, u8 battlerPosition, u8 palno, u8 *tilesDest, u16 *tilemapDest, u16 tilesOffset); - -// battle_anim_effects_1.c -extern const union AnimCmd *const gMusicNotesAnimTable[]; -extern const struct SpriteTemplate gThoughtBubbleSpriteTemplate; -void AnimMovePowderParticle(struct Sprite *); -void AnimPowerAbsorptionOrb(struct Sprite *); -void AnimSolarBeamBigOrb(struct Sprite *); -void AnimSolarBeamSmallOrb(struct Sprite *); -void AnimAbsorptionOrb(struct Sprite *); -void AnimHyperBeamOrb(struct Sprite *); -void AnimSporeParticle(struct Sprite *); -void AnimPetalDanceBigFlower(struct Sprite *); -void AnimPetalDanceSmallFlower(struct Sprite *); -void AnimRazorLeafParticle(struct Sprite *); -void AnimLeechSeed(struct Sprite *); -void AnimTranslateLinearSingleSineWave(struct Sprite *); -void AnimMoveTwisterParticle(struct Sprite *); -void AnimConstrictBinding(struct Sprite *); -void AnimMimicOrb(struct Sprite *); -void AnimIngrainRoot(struct Sprite *); -void AnimFrenzyPlantRoot(struct Sprite *); -void AnimIngrainOrb(struct Sprite *); -void AnimPresent(struct Sprite *); -void AnimKnockOffItem(struct Sprite *); -void AnimPresentHealParticle(struct Sprite *); -void AnimItemSteal(struct Sprite *); -void AnimTrickBag(struct Sprite *); -void AnimFlyingParticle(struct Sprite *); -void AnimNeedleArmSpike(struct Sprite *); -void AnimSlidingHit(struct Sprite *); -void AnimWhipHit(struct Sprite *); -void AnimFlickeringPunch(struct Sprite *); -void AnimCuttingSlice(struct Sprite *); -void AnimAirCutterSlice(struct Sprite *); -void AnimCirclingMusicNote(struct Sprite *); -void AnimProtect(struct Sprite *); -void AnimMilkBottle(struct Sprite *); -void AnimGrantingStars(struct Sprite *); -void AnimSparkingStars(struct Sprite *); -void AnimBubbleBurst(struct Sprite *); -void AnimSleepLetterZ(struct Sprite *); -void AnimLockOnTarget(struct Sprite *); -void AnimLockOnMoveTarget(struct Sprite *); -void AnimBowMon(struct Sprite *); -void AnimTipMon(struct Sprite *); -void AnimSlashSlice(struct Sprite *); -void AnimFalseSwipeSlice(struct Sprite *); -void AnimFalseSwipePositionedSlice(struct Sprite *); -void AnimEndureEnergy(struct Sprite *); -void AnimSharpenSphere(struct Sprite *); -void AnimConversion(struct Sprite *); -void AnimConversion2(struct Sprite *); -void AnimMoon(struct Sprite *); -void AnimMoonlightSparkle(struct Sprite *); -void AnimHornHit(struct Sprite *); -void AnimSuperFang(struct Sprite *); -void AnimWavyMusicNotes(struct Sprite *); -void AnimFlyingMusicNotes(struct Sprite *); -void AnimBellyDrumHand(struct Sprite *); -void AnimSlowFlyingMusicNotes(struct Sprite *); -void AnimThoughtBubble(struct Sprite *); -void AnimMetronomeFinger(struct Sprite *); -void AnimFollowMeFinger(struct Sprite *); -void AnimTauntFinger(struct Sprite *); void SetSpriteNextToMonHead(u8 battler, struct Sprite* sprite); -void AnimTask_ShrinkTargetCopy(u8 taskId); - -// battle_anim_effects_2.c -extern const union AffineAnimCmd *const gGrowingRingAffineAnimTable[]; -void AnimCirclingFinger(struct Sprite *); -void AnimBouncingMusicNote(struct Sprite *); -void AnimVibrateBattlerBack(struct Sprite *); -void AnimMovingClamp(struct Sprite *); -void Anim_KinesisZapEnergy(struct Sprite *); -void Anim_SwordsDanceBlade(struct Sprite *); -void AnimSonicBoomProjectile(struct Sprite *); -void AnimAirWaveProjectile(struct Sprite *); -void AnimVoidLines(struct Sprite *); -void AnimCoinThrow(struct Sprite *); -void AnimFallingCoin(struct Sprite *); -void AnimBulletSeed(struct Sprite *); -void AnimRazorWindTornado(struct Sprite *); -void AnimViceGripPincer(struct Sprite *); -void AnimGuillotinePincer(struct Sprite *); -void AnimBreathPuff(struct Sprite *); -void AnimAngerMark(struct Sprite *); -void AnimPencil(struct Sprite *); -void AnimBlendThinRing(struct Sprite *); -void AnimHyperVoiceRing(struct Sprite *); -void AnimUproarRing(struct Sprite *); -void AnimSoftBoiledEgg(struct Sprite *); -void AnimSpeedDust(struct Sprite *); -void AnimHealBellMusicNote(struct Sprite *); -void AnimMagentaHeart(struct Sprite *); -void AnimRedHeartProjectile(struct Sprite *); -void AnimParticuleBurst(struct Sprite *); -void AnimRedHeartRising(struct Sprite *); -void AnimOrbitFast(struct Sprite *); -void AnimOrbitScatter(struct Sprite *); -void AnimSpitUpOrb(struct Sprite *); -void AnimEyeSparkle(struct Sprite *); -void AnimAngel(struct Sprite *); -void AnimPinkHeart(struct Sprite *); -void AnimDevil(struct Sprite *); -void AnimFurySwipes(struct Sprite *); -void AnimMovementWaves(struct Sprite *); -void AnimJaggedMusicNote(struct Sprite *); -void AnimPerishSongMusicNote2(struct Sprite *); -void AnimPerishSongMusicNote(struct Sprite *); -void AnimGuardRing(struct Sprite *); - -// battle_anim_effects_3.c -extern const struct SpriteTemplate gWishStarSpriteTemplate; -extern const struct SpriteTemplate gMiniTwinklingStarSpriteTemplate; -void AnimBlackSmoke(struct Sprite *); -void AnimWhiteHalo(struct Sprite *); -void AnimTealAlert(struct Sprite *); -void AnimMeanLookEye(struct Sprite *); -void AnimSpikes(struct Sprite *); -void AnimLeer(struct Sprite *); -void AnimLetterZ(struct Sprite *); -void AnimFang(struct Sprite *); -void AnimSpotlight(struct Sprite *); -void AnimClappingHand(struct Sprite *); -void AnimClappingHand2(struct Sprite *); -void AnimRapidSpin(struct Sprite *); -void AnimTriAttackTriangle(struct Sprite *); -void AnimBatonPassPokeball(struct Sprite *); -void AnimWishStar(struct Sprite *); -void AnimMiniTwinklingStar(struct Sprite *); -void AnimSwallowBlueOrb(struct Sprite *); -void AnimGreenStar(struct Sprite *); -void AnimWeakFrustrationAngerMark(struct Sprite *); -void AnimSweetScentPetal(struct Sprite *); -void AnimPainSplitProjectile(struct Sprite *); -void AnimFlatterConfetti(struct Sprite *); -void AnimFlatterSpotlight(struct Sprite *); -void AnimReversalOrb(struct Sprite *); -void AnimYawnCloud(struct Sprite *); -void AnimSmokeBallEscapeCloud(struct Sprite *); -void AnimFacadeSweatDrop(struct Sprite *); -void AnimRoarNoiseLine(struct Sprite *); -void AnimGlareEyeDot(struct Sprite *); -void AnimAssistPawprint(struct Sprite *); -void AnimSmellingSaltsHand(struct Sprite *); -void AnimSmellingSaltExclamation(struct Sprite *); -void AnimHelpingHandClap(struct Sprite *); -void AnimForesightMagnifyingGlass(struct Sprite *); -void AnimMeteorMashStar(struct Sprite *); -void AnimBlockX(struct Sprite *); -void AnimUnusedItemBagSteal(struct Sprite *); -void AnimParticuleBurst(struct Sprite *); -void AnimKnockOffStrike(struct Sprite *); -void AnimRecycle(struct Sprite *); - -// battle_anim_special.c void TryShinyAnimation(u8 battler, struct Pokemon *mon); u8 ItemIdToBallId(u16 itemId); u8 AnimateBallOpenParticles(u8 x, u8 y, u8 priority, u8 subpriority, u8 ballId); u8 LaunchBallFadeMonTask(bool8 unFadeLater, u8 battlerId, u32 arg2, u8 ballId); void DoLoadHealthboxPalsForLevelUp(u8 *, u8 *, u8 battlerId); void DoFreeHealthboxPalsForLevelUp(u8 batterId); - -enum -{ - BATTLER_COORD_X, - BATTLER_COORD_Y, - BATTLER_COORD_X_2, - BATTLER_COORD_Y_PIC_OFFSET, - BATTLER_COORD_Y_PIC_OFFSET_DEFAULT, -}; - -enum -{ - BATTLER_COORD_ATTR_HEIGHT, - BATTLER_COORD_ATTR_WIDTH, - BATTLER_COORD_ATTR_TOP, - BATTLER_COORD_ATTR_BOTTOM, - BATTLER_COORD_ATTR_LEFT, - BATTLER_COORD_ATTR_RIGHT, - BATTLER_COORD_ATTR_RAW_BOTTOM, -}; - -// battle_anim_status_effects.s -#define STAT_ANIM_PLUS1 15 -#define STAT_ANIM_PLUS2 39 -#define STAT_ANIM_MINUS1 22 -#define STAT_ANIM_MINUS2 46 -#define STAT_ANIM_MULTIPLE_PLUS1 55 -#define STAT_ANIM_MULTIPLE_PLUS2 56 -#define STAT_ANIM_MULTIPLE_MINUS1 57 -#define STAT_ANIM_MULTIPLE_MINUS2 58 void LaunchStatusAnimation(u8 battlerId, u8 statusAnimId); - -// battle_anim_mons.c -extern const struct MonCoords gCastformFrontSpriteCoords[]; u8 GetBattlerSpriteCoord(u8 battlerId, u8 coordType); u8 GetBattlerSpriteCoord2(u8 battlerId, u8 coordType); u8 GetBattlerSpriteDefault_Y(u8 battlerId); @@ -363,15 +221,15 @@ u8 GetGhostSpriteDefault_Y(u8 battlerId); u8 GetBattlerYCoordWithElevation(u8 battlerId); u8 GetAnimBattlerSpriteId(u8 animBattler); void StoreSpriteCallbackInData6(struct Sprite *sprite, SpriteCallback callback); -void TranslateSpriteInCircleOverDuration(struct Sprite *sprite); -void TranslateSpriteInGrowingCircleOverDuration(struct Sprite *sprite); -void TranslateSpriteInEllipseOverDuration(struct Sprite *sprite); +void TranslateSpriteInCircle(struct Sprite *sprite); +void TranslateSpriteInGrowingCircle(struct Sprite *sprite); +void TranslateSpriteInEllipse(struct Sprite *sprite); void WaitAnimForDuration(struct Sprite *sprite); -void SetupLinearTranslationWithFixedDuration(struct Sprite *sprite); +void ConvertPosDataToTranslateLinearData(struct Sprite *sprite); void TranslateSpriteLinear(struct Sprite *sprite); void TranslateSpriteLinearFixedPoint(struct Sprite *sprite); -void TranslateMonSpriteLinear(struct Sprite *sprite); -void TranslateMonSpriteLinearFixedPoint(struct Sprite *sprite); +void TranslateSpriteLinearById(struct Sprite *sprite); +void TranslateSpriteLinearByIdFixedPoint(struct Sprite *sprite); void TranslateSpriteLinearAndFlicker(struct Sprite *sprite); void DestroySpriteAndMatrix(struct Sprite *sprite); void RunStoredCallbackWhenAffineAnimEnds(struct Sprite *sprite); @@ -400,19 +258,19 @@ void InitAnimBgTilemapBuffer(u32 bgId, const void *src); void AnimLoadCompressedBgTilemap(u32 bgId, const u32 *src); u8 GetBattleBgPaletteNum(void); void ToggleBg3Mode(bool8 arg0); -void StartSpriteLinearTranslationFromCurrentPos(struct Sprite *sprite); +void TradeMenuBouncePartySprites(struct Sprite *sprite); void InitSpriteDataForLinearTranslation(struct Sprite *sprite); void InitAnimLinearTranslation(struct Sprite *sprite); void StartAnimLinearTranslation(struct Sprite *sprite); void PlayerThrowBall_StartAnimLinearTranslation(struct Sprite *sprite); bool8 AnimTranslateLinear(struct Sprite *sprite); -void RunLinearTranslation_ThenceSetCBtoStoredInData6(struct Sprite *sprite); -void BattleAnim_InitLinearTranslationWithDuration(struct Sprite *sprite); -void BattleAnim_InitAndRunLinearTranslationWithDuration(struct Sprite *sprite); +void AnimTranslateLinear_WithFollowup(struct Sprite *sprite); +void InitAnimLinearTranslationWithSpeed(struct Sprite *sprite); +void InitAnimLinearTranslationWithSpeedAndPos(struct Sprite *sprite); void InitAndRunAnimFastLinearTranslation(struct Sprite *sprite); bool8 AnimFastTranslateLinear(struct Sprite *sprite); void InitAnimFastLinearTranslationWithSpeed(struct Sprite *sprite); -void InitAndStartAnimFastLinearTranslationWithSpeed(struct Sprite *sprite); +void InitAnimFastLinearTranslationWithSpeedAndPos(struct Sprite *sprite); void SetSpriteRotScale(u8 spriteId, s16 xScale, s16 yScale, u16 rotation); void PrepareBattlerSpriteForRotScale(u8 spriteId, u8 objMode); void ResetSpriteRotScale(u8 spriteId); @@ -421,18 +279,15 @@ void TrySetSpriteRotScale(struct Sprite *sprite, bool8 recalcCenterVector, s16 x void TryResetSpriteAffineState(struct Sprite *sprite); u16 ArcTan2Neg(s16 a, s16 b); void SetGreyscaleOrOriginalPalette(u16 paletteNum, bool8 restoreOriginalColor); -u32 SelectBattleAnimSpriteAndBgPalettes(bool8 battleBackground, bool8 attacker, bool8 target, bool8 attackerPartner, bool8 targetPartner, bool8 a6, bool8 a7); -u32 SelectBattlerSpritePalettes(bool8 playerLeft, bool8 playerRight, bool8 foeLeft, bool8 foeRight); +u32 GetBattlePalettesMask(bool8 battleBackground, bool8 attacker, bool8 target, bool8 attackerPartner, bool8 targetPartner, bool8 a6, bool8 a7); +u32 GetBattleMonSpritePalettesMask(bool8 playerLeft, bool8 playerRight, bool8 foeLeft, bool8 foeRight); u8 GetSpritePalIdxByBattler(u8 a1); void AnimSpriteOnMonPos(struct Sprite *sprite); void TranslateAnimSpriteToTargetMonLocation(struct Sprite *sprite); void AnimThrowProjectile(struct Sprite *sprite); -void AnimSnoreZ(struct Sprite *sprite); +void AnimTravelDiagonally(struct Sprite *sprite); s16 CloneBattlerSpriteWithBlend(u8 animBattler); -void obj_delete_but_dont_free_vram(struct Sprite *sprite); -void AnimTask_AlphaFadeIn(u8 taskId); -void AnimTask_BlendMonInAndOut(u8 task); -void AnimTask_BlendPalInAndOutByTag(u8 taskId); +void DestroySpriteWithActiveSheet(struct Sprite *sprite); void PrepareAffineAnimInTaskData(struct Task *task, u8 spriteId, const union AffineAnimCmd *affineAnimCmds); bool8 RunAffineAnimFromTaskData(struct Task *task); void SetBattlerSpriteYOffsetFromYScale(u8 spriteId); @@ -441,173 +296,28 @@ void StorePointerInVars(s16 *lo, s16 *hi, const void *ptr); void *LoadPointerFromVars(s16 lo, s16 hi); void BattleAnimHelper_SetSpriteSquashParams(struct Task *task, u8 spriteId, s16 xScale0, s16 yScale0, s16 xScale1, s16 yScale1, u16 duration); u8 BattleAnimHelper_RunSpriteSquash(struct Task *task); -void AnimTask_GetFrustrationPowerLevel(u8 taskId); -void ResetSpritePriorityOfAllVisibleBattlers(void); +void InitPrioritiesForVisibleBattlers(void); u8 GetBattlerSpriteSubpriority(u8 battlerId); u8 GetBattlerSpriteBGPriority(u8 battlerId); - -// Returns 2 if player left or opp right -// Returns 1 if player right or opp left u8 GetBattlerSpriteBGPriorityRank(u8 battlerId); u8 CreateAdditionalMonSpriteForMoveAnim(u16 species, bool8 isBackpic, u8 templateId, s16 x, s16 y, u8 subpriority, u32 personality, u32 trainerId, u32 battlerId, u32 ignoreDeoxys); void DestroySpriteAndFreeResources_(struct Sprite *sprite); s16 GetBattlerSpriteCoordAttr(u8 battlerId, u8 attr); void SetAverageBattlerPositions(u8 battlerId, bool8 respectMonPicOffsets, s16 *x, s16 *y); -u8 CreateCloneOfSpriteInWindowMode(s32 battlerId, u8 spriteId, s32 species); -void SpriteCB_AnimTranslateSpriteLinearAndFlicker(struct Sprite *sprite); -void SpriteCB_AnimTranslateSpriteLinearAndFlicker2(struct Sprite *sprite); -void SpriteCB_TrackOffsetFromAttackerAndWaitAnim(struct Sprite *sprite); -void AnimTask_AttackerPunchWithTrace(u8 taskId); -void SpriteCB_WeatherBallUp(struct Sprite *sprite); +u8 CreateInvisibleSpriteCopy(s32 battlerId, u8 spriteId, s32 species); +void AnimTranslateLinearAndFlicker_Flipped(struct Sprite *sprite); +void AnimTranslateLinearAndFlicker(struct Sprite *sprite); +void AnimSpinningSparkle(struct Sprite *sprite); +void AnimWeatherBallUp(struct Sprite *sprite); void AnimWeatherBallDown(struct Sprite *sprite); - -// battle_anim_mon_movement.c -void AnimTask_ShakeMon(u8 taskId); -void AnimTask_ShakeMon2(u8 taskId); -void AnimTask_ShakeMonInPlace(u8 taskId); -void AnimTask_ShakeAndSinkMon(u8 taskId); -void AnimTask_TranslateMonElliptical(u8 taskId); -void AnimTask_TranslateMonEllipticalRespectSide(u8 taskId); -void AnimTask_WindUpLunge(u8 taskId); -void AnimTask_SlideOffScreen(u8 taskId); -void AnimTask_SwayMon(u8 taskId); -void AnimTask_ScaleMonAndRestore(u8 taskId); -void AnimTask_RotateMonSpriteToSide(u8 taskId); -void AnimTask_RotateMonToSideAndRestore(u8 taskId); -void AnimTask_ShakeTargetBasedOnMovePowerOrDmg(u8 taskId); - -// normal.c -extern const struct SpriteTemplate gFlashingHitSplatSpriteTemplate; -extern const struct SpriteTemplate gBasicHitSplatSpriteTemplate; -extern const struct SpriteTemplate gWaterHitSplatSpriteTemplate; -u32 UnpackSelectedBattleAnimPalettes(s16 selector); -void AnimTask_CurseBlendEffect(u8 taskId); -void AnimTask_BlendColorCycleExclude(u8 taskId); -void AnimTask_BlendColorCycleByTag(u8 taskId); -void AnimTask_FlashAnimTagWithColor(u8 taskId); -void AnimTask_InvertScreenColor(u8 taskId); -void AnimTask_ShakeBattleTerrain(u8 taskId); - -// ground.c -void AnimTask_DigDownMovement(u8 taskId); -void AnimTask_DigUpMovement(u8 taskId); +void AnimParticleBurst(struct Sprite *); +void AnimMoveTwisterParticle(struct Sprite *); +u32 UnpackSelectedBattlePalettes(s16 selector); void AnimTask_HorizontalShake(u8 taskId); -void AnimTask_IsPowerOver99(u8 taskId); -void AnimTask_PositionFissureBgOnBattler(u8 taskId); - -// dragon.c -void AnimTask_DragonDanceWaver(u8 taskId); - -// ghost.c -void AnimTask_NightShadeClone(u8 taskId); -void AnimTask_NightmareClone(u8 taskId); -void AnimTask_SpiteTargetShadow(u8 taskId); -void AnimTask_DestinyBondWhiteShadow(u8 taskId); -void AnimTask_CurseStretchingBlackBg(u8 taskId); -void AnimTask_GrudgeFlames(u8 taskId); -void sub_80B6BBC(u8 taskId); - -// rock.c -void AnimTask_LoadSandstormBackground(u8 taskId); -void AnimTask_Rollout(u8 taskId); -void AnimTask_GetSeismicTossDamageLevel(u8 taskId); -void AnimTask_MoveSeismicTossBg(u8 taskId); -void AnimTask_SeismicTossBgAccelerateDownAtEnd(u8 taskId); - -// psychic.c -void AnimTask_MeditateStretchAttacker(u8 taskId); -void AnimTask_Teleport(u8 taskId); -void AnimTask_ImprisonOrbs(u8 taskId); -void AnimTask_SkillSwap(u8 taskId); -void AnimTask_ExtrasensoryDistortion(u8 taskId); -void AnimTask_TransparentCloneGrowAndShrink(u8 taskId); - -// dark.c -extern const union AffineAnimCmd *const gAffineAnims_Bite[]; -void AnimTask_AttackerFadeToInvisible(u8 taskId); -void AnimTask_AttackerFadeFromInvisible(u8 taskId); -void AnimTask_InitAttackerFadeFromInvisible(u8 taskId); -void AnimTask_MoveAttackerMementoShadow(u8 taskId); -void AnimTask_MoveTargetMementoShadow(u8 taskId); -void AnimTask_InitMementoShadow(u8 taskId); -void sub_80B8664(u8 taskId); -void AnimTask_MetallicShine(u8 taskId); -void AnimTask_SetGreyscaleOrOriginalPal(u8 taskId); -void GetIsDoomDesireHitTurn(u8 taskId); - -// flying.c -void AnimTask_AnimateGustTornadoPalette(u8 taskId); void DestroyAnimSpriteAfterTimer(struct Sprite *sprite); -void AnimTask_DrillPeckHitSplats(u8 taskId); - -// poison.c -extern const union AffineAnimCmd *const gAffineAnims_Droplet[]; - -// fighting.c -void AnimTask_MoveSkyUppercutBg(u8 taskId); - -// ice.c -extern const union AnimCmd *const gAnims_SmallBubblePair[]; -void AnimTask_Haze1(u8 taskId); -void AnimTask_LoadMistTiles(u8 taskId); -void AnimTask_Hail1(u8 taskId); -void AnimTask_GetRolloutCounter(u8 taskId); - -// electric.c -void AnimTask_ElectricBolt(u8 taskId); -void AnimTask_ElectricChargingParticles(u8 taskId); -void AnimTask_VoltTackleAttackerReappear(u8 taskId); -void AnimTask_VoltTackleBolt(u8 taskId); -void AnimTask_ShockWaveProgressingBolt(u8 taskId); -void AnimTask_ShockWaveLightning(u8 taskId); - -// fire.c -extern const union AnimCmd *const gAnims_BasicFire[]; -void AnimTask_EruptionLaunchRocks(u8 taskId); -void AnimTask_ShakeTargetInPattern(u8 taskId); -void AnimTask_BlendBackground(u8 taskId); -void AnimTask_MoveHeatWaveTargets(u8 taskId); - -// water.c -extern const union AnimCmd *const gAnims_WaterMudOrb[]; -extern const union AnimCmd *const gAnims_WaterBubble[]; void AnimWaterPulseRing(struct Sprite *sprite); - -// smokescreen.c u8 SmokescreenImpact(s16 x, s16 y, u8 a3); - -// battle_anim_utility_funcs.c -void AnimTask_BlendSelected(u8 taskId); -void AnimTask_BlendExcept(u8 taskId); -void AnimTask_SetCamouflageBlend(u8 taskId); -void AnimTask_BlendParticle(u8 taskId); -void AnimTask_HardwarePaletteFade(u8 taskId); -void AnimTask_CloneBattlerSpriteWithBlend(u8 taskId); -void AnimTask_SetUpCurseBackground(u8 taskId); void InitStatsChangeAnimation(u8 taskId); -void AnimTask_BlendNonAttackerPalettes(u8 taskId); -void AnimTask_StartSlidingBg(u8 taskId); -void AnimTask_GetAttackerSide(u8 taskId); -void AnimTask_GetTargetSide(u8 taskId); -void AnimTask_GetTargetIsAttackerPartner(u8 taskId); -void AnimTask_SetAllNonAttackersInvisiblity(u8 taskId); void StartMonScrollingBgMask(u8 taskId, s32 unused, u16 arg2, u8 battler1, u8 arg4, u8 arg5, u8 arg6, u8 arg7, const u32 *gfx, const u32 *tilemap, const u32 *palette); -void AnimTask_GetBattleTerrain(u8 taskId); -void AnimTask_AllocBackupPalBuffer(u8 taskId); -void AnimTask_FreeBackupPalBuffer(u8 taskId); -void AnimTask_CopyPalUnfadedToBackup(u8 taskId); -void AnimTask_CopyPalUnfadedFromBackup(u8 taskId); -void AnimTask_CopyPalFadedToUnfaded(u8 taskId); -void AnimTask_IsContest(u8 taskId); -void AnimTask_SetAnimAttackerAndTargetForEffectTgt(u8 taskId); -void AnimTask_IsTargetSameSide(u8 taskId); -void AnimTask_SetAnimTargetToBattlerTarget(u8 taskId); -void AnimTask_SetAnimAttackerAndTargetForEffectAtk(u8 taskId); -void AnimTask_SetAttackerInvisibleWaitForSignal(u8 taskId); - -// battle_anim_scripts.s -extern const u8 *const gBattleAnims_StatusConditions[]; -extern const u16 gMovesWithQuietBGM[]; -extern const u8 *const gBattleAnims_Moves[]; #endif // GUARD_BATTLE_ANIM_H diff --git a/include/battle_controllers.h b/include/battle_controllers.h index b473f5022..7172ad793 100644 --- a/include/battle_controllers.h +++ b/include/battle_controllers.h @@ -108,8 +108,8 @@ enum { struct UnusedControllerStruct { - u8 field_0 : 7; - u8 flag_x80 : 1; + u8 unk:7; + u8 flag:1; }; struct HpAndStatus @@ -174,14 +174,14 @@ enum CONTROLLER_CHOSENMONRETURNVALUE, CONTROLLER_ONERETURNVALUE, CONTROLLER_ONERETURNVALUE_DUPLICATE, - CONTROLLER_37, - CONTROLLER_38, - CONTROLLER_39, - CONTROLLER_40, + CONTROLLER_CLEARUNKVAR, + CONTROLLER_SETUNKVAR, + CONTROLLER_CLEARUNKFLAG, + CONTROLLER_TOGGLEUNKFLAG, CONTROLLER_HITANIMATION, - CONTROLLER_42, - CONTROLLER_EFFECTIVENESSSOUND, - CONTROLLER_PLAYFANFAREORBGM, + CONTROLLER_CANTSWITCH, + CONTROLLER_PLAYSE, + CONTROLLER_PLAYFANFARE, CONTROLLER_FAINTINGCRY, CONTROLLER_INTROSLIDE, CONTROLLER_INTROTRAINERBALLTHROW, @@ -198,12 +198,12 @@ enum CONTROLLER_CMDS_COUNT }; -extern struct UnusedControllerStruct gUnknown_2022870; +extern struct UnusedControllerStruct gUnusedControllerStruct; // general functions void HandleLinkBattleSetup(void); void SetUpBattleVars(void); -void InitBtlControllers(void); +void InitBattleControllers(void); void TryReceiveLinkBattleData(void); void PrepareBufferDataTransferLink(u8 bufferId, u16 size, u8 *data); @@ -221,7 +221,7 @@ void BtlController_EmitBallThrowAnim(u8 bufferId, u8 caseId); void BtlController_EmitMoveAnimation(u8 bufferId, u16 move, u8 turnOfMove, u16 movePower, s32 dmg, u8 friendship, struct DisableStruct *disableStructPtr); void BtlController_EmitPrintString(u8 bufferId, u16 stringId); void BtlController_EmitPrintSelectionString(u8 bufferId, u16 stringId); -void BtlController_EmitChooseAction(u8 bufferId, u8 arg1, u16 arg2); +void BtlController_EmitChooseAction(u8 bufferId, u8 action, u16 itemId); void BtlController_EmitChooseMove(u8 bufferId, bool8 isDoubleBattle, bool8 NoPpNumber, struct ChooseMoveStruct *movePpData); void BtlController_EmitChooseItem(u8 bufferId, u8 *arg1); void BtlController_EmitChoosePokemon(u8 bufferId, u8 caseId, u8 arg2, u8 abilityId, u8 *arg4); @@ -251,7 +251,7 @@ void BtlController_EmitResetActionMoveSelection(u8 bufferId, u8 caseId); void BtlController_EmitEndLinkBattle(u8 bufferId, u8 battleOutcome); // player controller -void PlayerDummy(void); +void BattleControllerDummy(void); void SetControllerToPlayer(void); void PlayerHandleGetRawMonData(void); void SpriteCB_FreePlayerSpriteLoadMonSprite(struct Sprite *sprite); diff --git a/include/battle_gfx_sfx_util.h b/include/battle_gfx_sfx_util.h index 9d4f9c549..cb2add7eb 100644 --- a/include/battle_gfx_sfx_util.h +++ b/include/battle_gfx_sfx_util.h @@ -15,7 +15,7 @@ void BattleLoadPlayerMonSpriteGfx(struct Pokemon *mon, u8 battlerId); void DecompressGhostFrontPic(struct Pokemon *unused, u8 battlerId); void DecompressTrainerFrontPic(u16 frontPicId, u8 battlerId); void DecompressTrainerBackPalette(u16 a1, u8 a2); -void BattleGfxSfxDummy3(u8 a1); +void BattleGfxSfxDummy3(u8 gender); void FreeTrainerFrontPicPaletteAndTile(u16 frontPicId); bool8 BattleLoadAllHealthBoxesGfx(u8 state); void LoadBattleBarGfx(u8 arg0); diff --git a/include/battle_main.h b/include/battle_main.h index 009e0e562..d5866c57a 100644 --- a/include/battle_main.h +++ b/include/battle_main.h @@ -82,7 +82,7 @@ void DoBounceEffect(u8 battler, u8 which, s8 delta, s8 amplitude); void EndBounceEffect(u8 battler, u8 which); void SpriteCB_PlayerThrowInit(struct Sprite *sprite); void UpdatePlayerPosInThrowAnim(struct Sprite *sprite); -void BattleDummy(void); +void BeginBattleIntroDummy(void); void BeginBattleIntro(void); void SwitchInClearSetData(void); void FaintClearSetData(void); diff --git a/include/battle_message.h b/include/battle_message.h index 49d05b07d..ef5cbcd88 100644 --- a/include/battle_message.h +++ b/include/battle_message.h @@ -2,6 +2,7 @@ #define GUARD_BATTLE_MESSAGE_H #include "global.h" +#include "constants/battle_string_ids.h" // for 0xFD @@ -242,11 +243,11 @@ extern const u8 gText_Ice[]; extern const u8 gText_Confusion[]; extern const u8 gText_Love[]; -extern const u8 gUnknown_83FE859[]; -extern const u8 gUnknown_83FE85E[]; -extern const u8 gUnknown_83FE85C[]; -extern const u8 gUnknown_83FE860[]; -extern const u8 gUnknown_83FE864[]; +extern const u8 gText_BattleTowerBan_Space[]; +extern const u8 gText_BattleTowerBan_Newline1[]; +extern const u8 gText_BattleTowerBan_Newline2[]; +extern const u8 gText_BattleTowerBan_Is1[]; +extern const u8 gText_BattleTowerBan_Is2[]; extern const u8 gText_SafariBalls[]; extern const u8 gText_HighlightRed_Left[]; diff --git a/include/battle_records.h b/include/battle_records.h index b66fbd686..cb6cd3747 100644 --- a/include/battle_records.h +++ b/include/battle_records.h @@ -2,6 +2,6 @@ #define GUARD_BATTLE_RECORDS_H void ClearPlayerLinkBattleRecords(void); -void TryRecordLinkBattleOutcome(s32 battlerId); +void UpdatePlayerLinkBattleRecords(s32 battlerId); #endif // GUARD_BATTLE_RECORDS_H diff --git a/include/berry_fix_program.h b/include/berry_fix_program.h index fc0748fd9..b91a23553 100644 --- a/include/berry_fix_program.h +++ b/include/berry_fix_program.h @@ -1,6 +1,6 @@ #ifndef GUARD_BERRY_FIX_PROGRAM_H #define GUARD_BERRY_FIX_PROGRAM_H -void mb_berry_fix_serve(void); +void CB2_InitBerryFixProgram(void); #endif //GUARD_BERRY_FIX_PROGRAM_H diff --git a/include/box_party_pokemon_dropdown.h b/include/box_party_pokemon_dropdown.h deleted file mode 100644 index 795a22e67..000000000 --- a/include/box_party_pokemon_dropdown.h +++ /dev/null @@ -1,24 +0,0 @@ -#ifndef GUARD_BOX_PARTY_POKEMON_DROPDOWN_H -#define GUARD_BOX_PARTY_POKEMON_DROPDOWN_H - -enum -{ - BPPD_MOVE_INNER_LEFT = 0, - BPPD_MOVE_OUTER_LEFT, - BPPD_MOVE_INNER_TOP, - BPPD_MOVE_OUTER_TOP, - BPPD_MOVE_INNER_X, - BPPD_MOVE_INNER_Y -}; - -void AllocBoxPartyPokemonDropdowns(u8 num); -void FreeBoxPartyPokemonDropdowns(void); -void CopyAllBoxPartyPokemonDropdownsToVram(void); -void SetBoxPartyPokemonDropdownMap2(u8 idx, u8 bgId, const void *src, u16 width, u16 height); -void SetBoxPartyPokemonDropdownMap1Tiles(u8 idx, const void *src); -void SetBoxPartyPokemonDropdownMap2Pos(u8 idx, u16 x, u16 y); -void SetBoxPartyPokemonDropdownMap2Rect(u8 idx, u16 x, u16 y, u16 width, u16 height); -void AdjustBoxPartyPokemonDropdownPos(u8 a0, u8 a1, s8 a2); -void CopyBoxPartyPokemonDropdownToBgTilemapBuffer(u8 idx); - -#endif //GUARD_BOX_PARTY_POKEMON_DROPDOWN_H diff --git a/include/cable_club.h b/include/cable_club.h index d89e8222c..7a36c5767 100644 --- a/include/cable_club.h +++ b/include/cable_club.h @@ -1,15 +1,8 @@ #ifndef GUARD_CABLE_CLUB_H #define GUARD_CABLE_CLUB_H -#include "task.h" - -// Exported type declarations - -// Exported RAM declarations - -// Exported ROM declarations -void Task_WaitForReceivedRemoteLinkPlayers5SecondTimeout(u8 taskId); -u8 CreateTask_ReestablishLinkInCableClubRoom(void); +void Task_WaitForLinkPlayerConnection(u8 taskId); +u8 CreateTask_ReestablishCableClubLink(void); void CB2_ReturnFromCableClubBattle(void); bool32 GetSeeingLinkPlayerCardMsg(u8 who); diff --git a/include/cereader_tool.h b/include/cereader_tool.h index 5dd0a7589..5cb5a9ebc 100644 --- a/include/cereader_tool.h +++ b/include/cereader_tool.h @@ -46,7 +46,6 @@ struct EReaderTrainerTowerSet bool32 ValidateTrainerTowerData(struct EReaderTrainerTowerSet * ttdata); bool32 CEReaderTool_SaveTrainerTower(struct EReaderTrainerTowerSet * ttdata); bool32 CEReaderTool_LoadTrainerTower(struct EReaderTrainerTowerSet * ttdata); -u8 sub_815D654(void); bool32 ReadTrainerTowerAndValidate(void); #endif //GUARD_CEREADER_TOOL_H diff --git a/include/constants/battle.h b/include/constants/battle.h index f628e7fed..3000f033c 100644 --- a/include/constants/battle.h +++ b/include/constants/battle.h @@ -324,7 +324,7 @@ #define BATTLE_RUN_FORBIDDEN 1 #define BATTLE_RUN_FAILURE 2 -// Window Ids for sStandardBattleWindowTemplates +// Window Ids for sTextOnWindowsInfo_Normal #define B_WIN_MSG 0 #define B_WIN_ACTION_PROMPT 1 // "What will {x} do?" #define B_WIN_ACTION_MENU 2 // "Fight/Pokémon/Bag/Run" menu diff --git a/include/constants/battle_anim.h b/include/constants/battle_anim.h index 4363b7fca..4fc4e4407 100644 --- a/include/constants/battle_anim.h +++ b/include/constants/battle_anim.h @@ -237,7 +237,7 @@ #define ANIM_TAG_SPOTLIGHT (ANIM_SPRITES_START + 227) #define ANIM_TAG_LETTER_Z (ANIM_SPRITES_START + 228) #define ANIM_TAG_RAPID_SPIN (ANIM_SPRITES_START + 229) -#define ANIM_TAG_TRI_FORCE_TRIANGLE (ANIM_SPRITES_START + 230) +#define ANIM_TAG_TRI_ATTACK_TRIANGLE (ANIM_SPRITES_START + 230) #define ANIM_TAG_WISP_ORB (ANIM_SPRITES_START + 231) #define ANIM_TAG_WISP_FIRE (ANIM_SPRITES_START + 232) #define ANIM_TAG_GOLD_STARS (ANIM_SPRITES_START + 233) @@ -276,7 +276,7 @@ #define ANIM_TAG_GREEN_SPIKE (ANIM_SPRITES_START + 266) #define ANIM_TAG_WHITE_CIRCLE_OF_LIGHT (ANIM_SPRITES_START + 267) #define ANIM_TAG_GLOWY_BLUE_ORB (ANIM_SPRITES_START + 268) -#define ANIM_TAG_SAFARI_BAIT (ANIM_SPRITES_START + 269) +#define ANIM_TAG_SAFARI_BAIT (ANIM_SPRITES_START + 269) #define ANIM_TAG_WHITE_FEATHER (ANIM_SPRITES_START + 270) #define ANIM_TAG_SPARKLE_6 (ANIM_SPRITES_START + 271) #define ANIM_TAG_SPLASH (ANIM_SPRITES_START + 272) @@ -318,7 +318,7 @@ #define SOUND_PAN_TARGET 63 // move background ids -#define BG_DARK_ 0 // the same as BG_DARK but is unused +#define BG_NONE 0 // the same as BG_DARK #define BG_DARK 1 #define BG_GHOST 2 #define BG_PSYCHIC 3 @@ -346,59 +346,62 @@ #define BG_SOLAR_BEAM_PLAYER 25 #define BG_SOLAR_BEAM_CONTESTS 26 -// table ids for general animations -#define B_ANIM_CASTFORM_CHANGE 0x0 -#define B_ANIM_STATS_CHANGE 0x1 -#define B_ANIM_SUBSTITUTE_FADE 0x2 -#define B_ANIM_SUBSTITUTE_APPEAR 0x3 -#define B_ANIM_BAIT_THROW 0x4 -#define B_ANIM_ITEM_KNOCKOFF 0x5 -#define B_ANIM_TURN_TRAP 0x6 -#define B_ANIM_HELD_ITEM_EFFECT 0x7 -#define B_ANIM_SMOKEBALL_ESCAPE 0x8 -#define B_ANIM_FOCUS_BAND 0x9 -#define B_ANIM_RAIN_CONTINUES 0xA -#define B_ANIM_SUN_CONTINUES 0xB -#define B_ANIM_SANDSTORM_CONTINUES 0xC -#define B_ANIM_HAIL_CONTINUES 0xD -#define B_ANIM_LEECH_SEED_DRAIN 0xE -#define B_ANIM_MON_HIT 0xF -#define B_ANIM_ITEM_STEAL 0x10 -#define B_ANIM_SNATCH_MOVE 0x11 -#define B_ANIM_FUTURE_SIGHT_HIT 0x12 -#define B_ANIM_DOOM_DESIRE_HIT 0x13 -#define B_ANIM_FOCUS_PUNCH_SETUP 0x14 -#define B_ANIM_INGRAIN_HEAL 0x15 -#define B_ANIM_WISH_HEAL 0x16 -#define B_ANIM_MON_SCARED 0x17 -#define B_ANIM_GHOST_GET_OUT 0x18 -#define B_ANIM_SILPH_SCOPED 0x19 -#define B_ANIM_ROCK_THROW 0x1A -#define B_ANIM_SAFARI_REACTION 0x1B +// table ids for general animations (gBattleAnims_General) +#define B_ANIM_CASTFORM_CHANGE 0 +#define B_ANIM_STATS_CHANGE 1 +#define B_ANIM_SUBSTITUTE_FADE 2 +#define B_ANIM_SUBSTITUTE_APPEAR 3 +#define B_ANIM_BAIT_THROW 4 +#define B_ANIM_ITEM_KNOCKOFF 5 +#define B_ANIM_TURN_TRAP 6 +#define B_ANIM_HELD_ITEM_EFFECT 7 +#define B_ANIM_SMOKEBALL_ESCAPE 8 +#define B_ANIM_FOCUS_BAND 9 +#define B_ANIM_RAIN_CONTINUES 10 +#define B_ANIM_SUN_CONTINUES 11 +#define B_ANIM_SANDSTORM_CONTINUES 12 +#define B_ANIM_HAIL_CONTINUES 13 +#define B_ANIM_LEECH_SEED_DRAIN 14 +#define B_ANIM_MON_HIT 15 +#define B_ANIM_ITEM_STEAL 16 +#define B_ANIM_SNATCH_MOVE 17 +#define B_ANIM_FUTURE_SIGHT_HIT 18 +#define B_ANIM_DOOM_DESIRE_HIT 19 +#define B_ANIM_FOCUS_PUNCH_SETUP 20 +#define B_ANIM_INGRAIN_HEAL 21 +#define B_ANIM_WISH_HEAL 22 +#define B_ANIM_MON_SCARED 23 +#define B_ANIM_GHOST_GET_OUT 24 +#define B_ANIM_SILPH_SCOPED 25 +#define B_ANIM_ROCK_THROW 26 +#define B_ANIM_SAFARI_REACTION 27 -// special animations table -#define B_ANIM_LVL_UP 0x0 -#define B_ANIM_SWITCH_OUT_PLAYER_MON 0x1 -#define B_ANIM_SWITCH_OUT_OPPONENT_MON 0x2 -#define B_ANIM_BALL_THROW 0x3 -#define B_ANIM_SAFARI_BALL_THROW 0x4 -#define B_ANIM_SUBSTITUTE_TO_MON 0x5 -#define B_ANIM_MON_TO_SUBSTITUTE 0x6 +// special animations table (gBattleAnims_Special) +#define B_ANIM_LVL_UP 0 +#define B_ANIM_SWITCH_OUT_PLAYER_MON 1 +#define B_ANIM_SWITCH_OUT_OPPONENT_MON 2 +#define B_ANIM_BALL_THROW 3 +#define B_ANIM_BALL_THROW_WITH_TRAINER 4 +#define B_ANIM_SUBSTITUTE_TO_MON 5 +#define B_ANIM_MON_TO_SUBSTITUTE 6 -// status animation table -#define B_ANIM_STATUS_PSN 0x0 -#define B_ANIM_STATUS_CONFUSION 0x1 -#define B_ANIM_STATUS_BRN 0x2 -#define B_ANIM_STATUS_INFATUATION 0x3 -#define B_ANIM_STATUS_SLP 0x4 -#define B_ANIM_STATUS_PRZ 0x5 -#define B_ANIM_STATUS_FRZ 0x6 -#define B_ANIM_STATUS_CURSED 0x7 -#define B_ANIM_STATUS_NIGHTMARE 0x8 -#define B_ANIM_STATUS_WRAPPED 0x9 // does not actually exist +// status animation table (gBattleAnims_StatusConditions) +#define B_ANIM_STATUS_PSN 0 +#define B_ANIM_STATUS_CONFUSION 1 +#define B_ANIM_STATUS_BRN 2 +#define B_ANIM_STATUS_INFATUATION 3 +#define B_ANIM_STATUS_SLP 4 +#define B_ANIM_STATUS_PRZ 5 +#define B_ANIM_STATUS_FRZ 6 +#define B_ANIM_STATUS_CURSED 7 +#define B_ANIM_STATUS_NIGHTMARE 8 +#define B_ANIM_STATUS_WRAPPED 9 // does not actually exist // Most tasks return a value to gBattleAnimArgs[7]. -#define ARG_RET_ID 0x7 +#define ARG_RET_ID 7 + +// For createsprite macro to use internally +#define ANIMSPRITE_IS_TARGET (1 << 7) // Trapping Wrap-like moves end turn animation. #define TRAP_ANIM_BIND 0 @@ -415,6 +418,22 @@ #define ANIM_WEATHER_SANDSTORM 3 #define ANIM_WEATHER_HAIL 4 +// Flags given to various functions to indicate which palettes to consider. +// Handled by UnpackSelectedBattlePalettes +#define F_PAL_BG (1 << 0) +#define F_PAL_ATTACKER (1 << 1) +#define F_PAL_TARGET (1 << 2) +#define F_PAL_ATK_PARTNER (1 << 3) +#define F_PAL_DEF_PARTNER (1 << 4) +#define F_PAL_ANIM_1 (1 << 5) // Palette set for GetBattleAnimBg1Data/GetBattleAnimBgDataByPriorityRank. Only used (ineffectually?) by Aromatherapy. +#define F_PAL_ANIM_2 (1 << 6) // Palette set for GetBattleAnimBgData/GetBattleAnimBgDataByPriorityRank. Unused. +#define F_PAL_ATK_SIDE (F_PAL_ATTACKER | F_PAL_ATK_PARTNER) +#define F_PAL_DEF_SIDE (F_PAL_TARGET | F_PAL_DEF_PARTNER) +#define F_PAL_BATTLERS (F_PAL_ATK_SIDE | F_PAL_DEF_SIDE) +// The below are only used by AnimTask_BlendBattleAnimPal to get battler sprite palettes by position rather than by role. +// It's redundant with F_PAL_BATTLERS, because they're only ever used together to refer to all the battlers at once. +#define F_PAL_BATTLERS_2 (1 << 7 | 1 << 8 | 1 << 9 | 1 << 10) + // Battle mon back animations. #define BACK_ANIM_NONE 0x00 #define BACK_ANIM_H_SLIDE_QUICK 0x01 diff --git a/include/constants/battle_script_commands.h b/include/constants/battle_script_commands.h index 6856f4bf8..e08a9e400 100644 --- a/include/constants/battle_script_commands.h +++ b/include/constants/battle_script_commands.h @@ -87,7 +87,7 @@ #define VARIOUS_RESET_INTIMIDATE_TRACE_BITS 5 #define VARIOUS_UPDATE_CHOICE_MOVE_ON_LVL_UP 6 #define VARIOUS_RESET_PLAYER_FAINTED 7 -#define VARIOUS_CASE_8 8 +#define VARIOUS_GET_BATTLERS_FOR_RECALL 8 #define VARIOUS_RETURN_OPPONENT_MON1 9 #define VARIOUS_RETURN_OPPONENT_MON2 10 #define VARIOUS_CHECK_POKEFLUTE 11 diff --git a/include/battle_string_ids.h b/include/constants/battle_string_ids.h similarity index 98% rename from include/battle_string_ids.h rename to include/constants/battle_string_ids.h index 69086a626..24cc01ca6 100644 --- a/include/battle_string_ids.h +++ b/include/constants/battle_string_ids.h @@ -373,8 +373,8 @@ #define STRINGID_POKEFLUTECATCHY 372 #define STRINGID_POKEFLUTE 373 #define STRINGID_MONHEARINGFLUTEAWOKE 374 -#define STRINGID_TRAINER2CLASS 375 -#define STRINGID_TRAINER2NAME 376 +#define STRINGID_TRAINER2LOSETEXT 375 +#define STRINGID_TRAINER2WINTEXT 376 #define STRINGID_PLAYERWHITEDOUT 377 #define STRINGID_MONTOOSCAREDTOMOVE 378 #define STRINGID_GHOSTGETOUTGETOUT 379 @@ -385,7 +385,7 @@ #define STRINGID_TRAINER1MON2COMEBACK 384 #define STRINGID_TRAINER1MON1AND2COMEBACK 385 -#define BATTLESTRINGS_COUNT 374 +#define BATTLESTRINGS_COUNT 386 // This is the string id that gBattleStringsTable starts with. // String ids before this (e.g. STRINGID_INTROMSG) are not in the table, @@ -545,19 +545,17 @@ #define B_MSG_WONT_OBEY 1 #define B_MSG_TURNED_AWAY 2 #define B_MSG_PRETEND_NOT_NOTICE 3 -#define B_MSG_INCAPABLE_OF_POWER 4 -// For randomly selecting a disobey string -// Skips the one used for Battle Palace -#define NUM_LOAF_STRINGS 4 +#define NUM_LOAF_STRINGS 4 // For randomly selecting a disobey string // gSafariGetNearStringIds #define B_MSG_CREPT_CLOSER 0 #define B_MSG_CANT_GET_CLOSER 1 -// gSafariPokeblockResultStringIds -#define B_MSG_MON_CURIOUS 0 -#define B_MSG_MON_ENTHRALLED 1 -#define B_MSG_MON_IGNORED 2 +// gSafariReactionStringIds +#define B_MSG_MON_WATCHING 0 +#define B_MSG_MON_ANGRY 1 +#define B_MSG_MON_EATING 2 +#define NUM_SAFARI_REACTIONS 3 // gFlashFireStringIds #define B_MSG_FLASH_FIRE_BOOST 0 diff --git a/include/constants/cable_club.h b/include/constants/cable_club.h index f2aa4120c..7c2fedb42 100644 --- a/include/constants/cable_club.h +++ b/include/constants/cable_club.h @@ -12,4 +12,21 @@ #define USING_MINIGAME 8 #define USING_BATTLE_TOWER 9 +// Return states for the group of specials that use CreateLinkupTask +// A few also used by TryBecomeLinkLeader and TryJoinLinkGroup +#define LINKUP_ONGOING 0 +#define LINKUP_SUCCESS 1 +#define LINKUP_SOMEONE_NOT_READY 2 +#define LINKUP_DIFF_SELECTIONS 3 +#define LINKUP_WRONG_NUM_PLAYERS 4 +#define LINKUP_FAILED 5 +#define LINKUP_CONNECTION_ERROR 6 +#define LINKUP_PLAYER_NOT_READY 7 +#define LINKUP_RETRY_ROLE_ASSIGN 8 +#define LINKUP_PARTNER_NOT_READY 9 + +#define CABLE_SEAT_WAITING 0 +#define CABLE_SEAT_SUCCESS 1 +#define CABLE_SEAT_FAILED 2 + #endif //GUARD_CONSTANTS_CABLE_CLUB_H diff --git a/include/constants/event_bg.h b/include/constants/event_bg.h index 37fedf25b..64f3331b8 100644 --- a/include/constants/event_bg.h +++ b/include/constants/event_bg.h @@ -8,5 +8,6 @@ #define BG_EVENT_PLAYER_FACING_WEST 4 #define BG_EVENT_HIDDEN_ITEM 7 +#define BG_EVENT_SECRET_BASE 8 #endif // GUARD_CONSTANTS_EVENT_BG_H diff --git a/include/constants/event_object_movement.h b/include/constants/event_object_movement.h index 9ab0c7801..936ef4dfd 100644 --- a/include/constants/event_object_movement.h +++ b/include/constants/event_object_movement.h @@ -70,10 +70,10 @@ #define MOVEMENT_TYPE_WALK_IN_PLACE_UP 0x41 #define MOVEMENT_TYPE_WALK_IN_PLACE_LEFT 0x42 #define MOVEMENT_TYPE_WALK_IN_PLACE_RIGHT 0x43 -#define MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_DOWN 0x44 -#define MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_UP 0x45 -#define MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_LEFT 0x46 -#define MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_RIGHT 0x47 +#define MOVEMENT_TYPE_WALK_IN_PLACE_FAST_DOWN 0x44 +#define MOVEMENT_TYPE_WALK_IN_PLACE_FAST_UP 0x45 +#define MOVEMENT_TYPE_WALK_IN_PLACE_FAST_LEFT 0x46 +#define MOVEMENT_TYPE_WALK_IN_PLACE_FAST_RIGHT 0x47 #define MOVEMENT_TYPE_JOG_IN_PLACE_DOWN 0x48 #define MOVEMENT_TYPE_JOG_IN_PLACE_UP 0x49 #define MOVEMENT_TYPE_JOG_IN_PLACE_LEFT 0x4A @@ -260,6 +260,7 @@ #define MOVEMENT_ACTION_JUMP_SPECIAL_WITH_EFFECT_RIGHT 0xA9 #define MOVEMENT_ACTION_STEP_END 0xFE +#define MOVEMENT_ACTION_NONE 0xFF #define ANIM_STD_FACE_SOUTH 0 #define ANIM_STD_FACE_NORTH 1 diff --git a/include/constants/event_objects.h b/include/constants/event_objects.h index f1291b1ea..99d3e4209 100644 --- a/include/constants/event_objects.h +++ b/include/constants/event_objects.h @@ -192,4 +192,7 @@ #define OBJ_EVENT_ID_PLAYER 0xFF #define OBJ_EVENT_ID_CAMERA 0x7F +#define OBJ_KIND_NORMAL 0 +#define OBJ_KIND_CLONE 255 + #endif // GUARD_CONSTANTS_EVENT_OBJECTS_H diff --git a/include/constants/flags.h b/include/constants/flags.h index 3234d5385..5baa6c75c 100644 --- a/include/constants/flags.h +++ b/include/constants/flags.h @@ -3,37 +3,45 @@ #include "constants/trainers.h" -#define FLAG_TEMP_1 0x001 -#define FLAG_TEMP_2 0x002 -#define FLAG_TEMP_3 0x003 -#define FLAG_TEMP_4 0x004 -#define FLAG_TEMP_5 0x005 -#define FLAG_TEMP_6 0x006 -#define FLAG_TEMP_7 0x007 -#define FLAG_TEMP_8 0x008 -#define FLAG_TEMP_9 0x009 -#define FLAG_TEMP_A 0x00A -#define FLAG_TEMP_B 0x00B -#define FLAG_TEMP_C 0x00C -#define FLAG_TEMP_D 0x00D -#define FLAG_TEMP_E 0x00E -#define FLAG_TEMP_F 0x00F -#define FLAG_TEMP_10 0x010 -#define FLAG_TEMP_11 0x011 -#define FLAG_TEMP_12 0x012 -#define FLAG_TEMP_13 0x013 -#define FLAG_TEMP_14 0x014 -#define FLAG_TEMP_15 0x015 -#define FLAG_TEMP_16 0x016 -#define FLAG_TEMP_17 0x017 -#define FLAG_TEMP_18 0x018 -#define FLAG_TEMP_19 0x019 -#define FLAG_TEMP_1A 0x01A -#define FLAG_TEMP_1B 0x01B -#define FLAG_TEMP_1C 0x01C -#define FLAG_TEMP_1D 0x01D -#define FLAG_TEMP_1E 0x01E -#define FLAG_TEMP_1F 0x01F +// Temporary Flags +// These temporary flags are are cleared every time a map is loaded. They are used +// for things like shortening an NPCs introduction text if the player already spoke +// to them once. +#define TEMP_FLAGS_START 0x0 +#define FLAG_TEMP_1 (TEMP_FLAGS_START + 0x01) +#define FLAG_TEMP_2 (TEMP_FLAGS_START + 0x02) +#define FLAG_TEMP_3 (TEMP_FLAGS_START + 0x03) +#define FLAG_TEMP_4 (TEMP_FLAGS_START + 0x04) +#define FLAG_TEMP_5 (TEMP_FLAGS_START + 0x05) +#define FLAG_TEMP_6 (TEMP_FLAGS_START + 0x06) +#define FLAG_TEMP_7 (TEMP_FLAGS_START + 0x07) +#define FLAG_TEMP_8 (TEMP_FLAGS_START + 0x08) +#define FLAG_TEMP_9 (TEMP_FLAGS_START + 0x09) +#define FLAG_TEMP_A (TEMP_FLAGS_START + 0x0A) +#define FLAG_TEMP_B (TEMP_FLAGS_START + 0x0B) +#define FLAG_TEMP_C (TEMP_FLAGS_START + 0x0C) +#define FLAG_TEMP_D (TEMP_FLAGS_START + 0x0D) +#define FLAG_TEMP_E (TEMP_FLAGS_START + 0x0E) +#define FLAG_TEMP_F (TEMP_FLAGS_START + 0x0F) +#define FLAG_TEMP_10 (TEMP_FLAGS_START + 0x10) + +// Used for obstacles (e.g. cut trees and rock smash rocks) +#define FLAG_TEMP_11 (TEMP_FLAGS_START + 0x11) +#define FLAG_TEMP_12 (TEMP_FLAGS_START + 0x12) +#define FLAG_TEMP_13 (TEMP_FLAGS_START + 0x13) +#define FLAG_TEMP_14 (TEMP_FLAGS_START + 0x14) +#define FLAG_TEMP_15 (TEMP_FLAGS_START + 0x15) +#define FLAG_TEMP_16 (TEMP_FLAGS_START + 0x16) +#define FLAG_TEMP_17 (TEMP_FLAGS_START + 0x17) +#define FLAG_TEMP_18 (TEMP_FLAGS_START + 0x18) +#define FLAG_TEMP_19 (TEMP_FLAGS_START + 0x19) +#define FLAG_TEMP_1A (TEMP_FLAGS_START + 0x1A) +#define FLAG_TEMP_1B (TEMP_FLAGS_START + 0x1B) +#define FLAG_TEMP_1C (TEMP_FLAGS_START + 0x1C) +#define FLAG_TEMP_1D (TEMP_FLAGS_START + 0x1D) +#define FLAG_TEMP_1E (TEMP_FLAGS_START + 0x1E) +#define FLAG_TEMP_1F (TEMP_FLAGS_START + 0x1F) +#define TEMP_FLAGS_END FLAG_TEMP_1F #define FLAG_0x020 0x020 #define FLAG_0x021 0x021 @@ -1018,210 +1026,209 @@ #define FLAG_MYSTERY_GIFT_15 0x3E7 #define FLAG_HIDDEN_ITEMS_START 1000 // 0x3E8 -#define FLAG_HIDDEN_ITEM(map, item) (FLAG_HIDDEN_ITEMS_START + HIDDEN_ITEM_##map##_##item) -#define HIDDEN_ITEM_VIRIDIAN_FOREST_POTION 0 -#define HIDDEN_ITEM_VIRIDIAN_FOREST_ANTIDOTE 1 -#define HIDDEN_ITEM_MT_MOON_B2F_MOON_STONE 2 -#define HIDDEN_ITEM_MT_MOON_B2F_ETHER 3 -#define HIDDEN_ITEM_ROUTE25_ELIXIR 4 -#define HIDDEN_ITEM_ROUTE25_ETHER 5 -#define HIDDEN_ITEM_ROUTE9_ETHER 6 -#define HIDDEN_ITEM_UNUSED_0x07 7 -#define HIDDEN_ITEM_SSANNE_B1F_CORRIDOR_HYPER_POTION 8 -#define HIDDEN_ITEM_ROUTE10_SUPER_POTION 9 -#define HIDDEN_ITEM_ROUTE10_MAX_ETHER 10 -#define HIDDEN_ITEM_ROCKET_HIDEOUT_B1F_PP_UP 11 -#define HIDDEN_ITEM_ROCKET_HIDEOUT_B3F_NUGGET 12 -#define HIDDEN_ITEM_ROCKET_HIDEOUT_B4F_NEST_BALL 13 -#define HIDDEN_ITEM_POKEMON_TOWER_5F_BIG_MUSHROOM 14 -#define HIDDEN_ITEM_ROUTE13_PP_UP 15 -#define HIDDEN_ITEM_UNUSED_0x10 16 -#define HIDDEN_ITEM_ROUTE17_RARE_CANDY 17 -#define HIDDEN_ITEM_ROUTE17_FULL_RESTORE 18 -#define HIDDEN_ITEM_ROUTE17_PP_UP 19 -#define HIDDEN_ITEM_ROUTE17_MAX_REVIVE 20 -#define HIDDEN_ITEM_ROUTE17_MAX_ELIXIR 21 -#define HIDDEN_ITEM_SAFARI_ZONE_CENTER_LEAF_STONE 22 -#define HIDDEN_ITEM_SAFARI_ZONE_WEST_REVIVE 23 -#define HIDDEN_ITEM_SILPH_CO_5F_ELIXIR 24 -#define HIDDEN_ITEM_SILPH_CO_9F_MAX_POTION 25 -#define HIDDEN_ITEM_SAFFRON_CITY_COPYCATS_HOUSE_2F_NUGGET 26 -#define HIDDEN_ITEM_POWER_PLANT_MAX_ELIXIR 27 -#define HIDDEN_ITEM_POWER_PLANT_THUNDER_STONE 28 -#define HIDDEN_ITEM_SEAFOAM_ISLANDS_B3F_NUGGET 29 -#define HIDDEN_ITEM_SEAFOAM_ISLANDS_B4F_WATER_STONE 30 -#define HIDDEN_ITEM_POKEMON_MANSION_1F_MOON_STONE 31 -#define HIDDEN_ITEM_POKEMON_MANSION_3F_RARE_CANDY 32 -#define HIDDEN_ITEM_POKEMON_MANSION_B1F_ELIXIR 33 -#define HIDDEN_ITEM_ROUTE23_FULL_RESTORE 34 -#define HIDDEN_ITEM_ROUTE23_ULTRA_BALL 35 -#define HIDDEN_ITEM_ROUTE23_MAX_ETHER 36 -#define HIDDEN_ITEM_VICTORY_ROAD_1F_ULTRA_BALL 37 -#define HIDDEN_ITEM_VICTORY_ROAD_1F_FULL_RESTORE 38 -#define HIDDEN_ITEM_CERULEAN_CAVE_1F_ULTRA_BALL 39 -#define HIDDEN_ITEM_UNUSED_0x28 40 -#define HIDDEN_ITEM_ROUTE11_ESCAPE_ROPE 41 -#define HIDDEN_ITEM_ROUTE12_HYPER_POTION 42 -#define HIDDEN_ITEM_UNUSED_0x2B 43 -#define HIDDEN_ITEM_UNUSED_0x2C 44 -#define HIDDEN_ITEM_UNUSED_0x2D 45 -#define HIDDEN_ITEM_UNUSED_0x2E 46 -#define HIDDEN_ITEM_CELADON_CITY_PP_UP 47 -#define HIDDEN_ITEM_VERMILION_CITY_MAX_ETHER 48 -#define HIDDEN_ITEM_CERULEAN_CITY_RARE_CANDY 49 -#define HIDDEN_ITEM_ROUTE4_GREAT_BALL 50 -#define HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS 51 -#define HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_2 52 -#define HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_3 53 -#define HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_4 54 -#define HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_5 55 -#define HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_6 56 -#define HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_7 57 -#define HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_8 58 -#define HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_9 59 -#define HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_10 60 -#define HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_11 61 -#define HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_12 62 -#define HIDDEN_ITEM_SEVEN_ISLAND_SEVAULT_CANYON_CHERI_BERRY 63 -#define HIDDEN_ITEM_SEVEN_ISLAND_TANOBY_RUINS_HEART_SCALE_4 64 -#define HIDDEN_ITEM_SEVEN_ISLAND_TANOBY_RUINS_HEART_SCALE 65 -#define HIDDEN_ITEM_SEVEN_ISLAND_TANOBY_RUINS_HEART_SCALE_2 66 -#define HIDDEN_ITEM_SEVEN_ISLAND_TANOBY_RUINS_HEART_SCALE_3 67 -#define HIDDEN_ITEM_FIVE_ISLAND_ROCKET_WAREHOUSE_NEST_BALL 68 -#define HIDDEN_ITEM_FIVE_ISLAND_ROCKET_WAREHOUSE_NET_BALL 69 -#define HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_POTION 70 -#define HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_ANTIDOTE 71 -#define HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_PARALYZE_HEAL 72 -#define HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_AWAKENING 73 -#define HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_BURN_HEAL 74 -#define HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_ICE_HEAL 75 -#define HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_ETHER 76 -#define HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_POTION 77 -#define HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_ANTIDOTE 78 -#define HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_PARALYZE_HEAL 79 -#define HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_AWAKENING 80 -#define HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_BURN_HEAL 81 -#define HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_ICE_HEAL 82 -#define HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_ETHER 83 -#define HIDDEN_ITEM_MT_MOON_B1F_TINY_MUSHROOM 84 -#define HIDDEN_ITEM_MT_MOON_B1F_TINY_MUSHROOM_2 85 -#define HIDDEN_ITEM_MT_MOON_B1F_TINY_MUSHROOM_3 86 -#define HIDDEN_ITEM_MT_MOON_B1F_BIG_MUSHROOM 87 -#define HIDDEN_ITEM_MT_MOON_B1F_BIG_MUSHROOM_2 88 -#define HIDDEN_ITEM_MT_MOON_B1F_BIG_MUSHROOM_3 89 -#define HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_RAZZ_BERRY 90 -#define HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_BLUK_BERRY 91 -#define HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_NANAB_BERRY 92 -#define HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_WEPEAR_BERRY 93 -#define HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_ORAN_BERRY 94 -#define HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_CHERI_BERRY 95 -#define HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_CHESTO_BERRY 96 -#define HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_PECHA_BERRY 97 -#define HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_RAWST_BERRY 98 -#define HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_ASPEAR_BERRY 99 -#define HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_PERSIM_BERRY 100 -#define HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_PINAP_BERRY 101 -#define HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_LUM_BERRY 102 -#define HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_STARDUST 103 -#define HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_STARDUST_2 104 -#define HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_PEARL 105 -#define HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_PEARL_2 106 -#define HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_ULTRA_BALL 107 -#define HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_ULTRA_BALL_2 108 -#define HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_STAR_PIECE 109 -#define HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_BIG_PEARL 110 -#define HIDDEN_ITEM_TWO_ISLAND_CAPE_BRINK_RARE_CANDY 111 -#define HIDDEN_ITEM_PEWTER_CITY_POKE_BALL 112 -#define HIDDEN_ITEM_ROUTE3_ORAN_BERRY 113 -#define HIDDEN_ITEM_ROUTE4_PERSIM_BERRY 114 -#define HIDDEN_ITEM_ROUTE24_PECHA_BERRY 115 -#define HIDDEN_ITEM_ROUTE25_ORAN_BERRY 116 -#define HIDDEN_ITEM_ROUTE25_BLUK_BERRY 117 -#define HIDDEN_ITEM_ROUTE6_SITRUS_BERRY 118 -#define HIDDEN_ITEM_ROUTE6_RARE_CANDY 119 -#define HIDDEN_ITEM_SSANNE_KITCHEN_PECHA_BERRY 120 -#define HIDDEN_ITEM_SSANNE_KITCHEN_CHERI_BERRY 121 -#define HIDDEN_ITEM_SSANNE_KITCHEN_CHESTO_BERRY 122 -#define HIDDEN_ITEM_ROUTE9_RARE_CANDY 123 -#define HIDDEN_ITEM_UNUSED_0x7C 124 -#define HIDDEN_ITEM_ROUTE10_PERSIM_BERRY 125 -#define HIDDEN_ITEM_ROUTE10_CHERI_BERRY 126 -#define HIDDEN_ITEM_ROUTE8_RAWST_BERRY 127 -#define HIDDEN_ITEM_ROUTE8_LUM_BERRY 128 -#define HIDDEN_ITEM_ROUTE8_LEPPA_BERRY 129 -#define HIDDEN_ITEM_ROUTE12_RARE_CANDY 130 -#define HIDDEN_ITEM_ROUTE12_LEFTOVERS 131 -#define HIDDEN_ITEM_ROUTE16_LEFTOVERS 132 -#define HIDDEN_ITEM_FUCHSIA_CITY_MAX_REVIVE 133 -#define HIDDEN_ITEM_ROCKET_HIDEOUT_B4F_NET_BALL 134 -#define HIDDEN_ITEM_SILPH_CO_2F_ULTRA_BALL 135 -#define HIDDEN_ITEM_SILPH_CO_3F_PROTEIN 136 -#define HIDDEN_ITEM_SILPH_CO_4F_IRON 137 -#define HIDDEN_ITEM_SILPH_CO_5F_PP_UP 138 -#define HIDDEN_ITEM_SILPH_CO_6F_CARBOS 139 -#define HIDDEN_ITEM_SILPH_CO_7F_ZINC 140 -#define HIDDEN_ITEM_SILPH_CO_8F_NUGGET 141 -#define HIDDEN_ITEM_SILPH_CO_9F_CALCIUM 142 -#define HIDDEN_ITEM_SILPH_CO_10F_HP_UP 143 -#define HIDDEN_ITEM_SILPH_CO_11F_REVIVE 144 -#define HIDDEN_ITEM_ROUTE23_LUM_BERRY 145 -#define HIDDEN_ITEM_ROUTE23_SITRUS_BERRY 146 -#define HIDDEN_ITEM_ROUTE23_ASPEAR_BERRY 147 -#define HIDDEN_ITEM_ROUTE23_LEPPA_BERRY 148 -#define HIDDEN_ITEM_ROUTE14_ZINC 149 -#define HIDDEN_ITEM_ROUTE9_CHESTO_BERRY 150 -#define HIDDEN_ITEM_ROUTE10_NANAB_BERRY 151 -#define HIDDEN_ITEM_ROUTE7_WEPEAR_BERRY 152 -#define HIDDEN_ITEM_ROUTE20_STARDUST 153 -#define HIDDEN_ITEM_ROUTE21_NORTH_PEARL 154 -#define HIDDEN_ITEM_ROUTE23_MAX_ELIXIR 155 -#define HIDDEN_ITEM_ROUTE4_RAZZ_BERRY 156 -#define HIDDEN_ITEM_ROUTE14_PINAP_BERRY 157 -#define HIDDEN_ITEM_MT_EMBER_EXTERIOR_FIRE_STONE 158 -#define HIDDEN_ITEM_POKEMON_TOWER_7F_SOOTHE_BELL 159 -#define HIDDEN_ITEM_NAVEL_ROCK_SUMMIT_SACRED_ASH 160 -#define HIDDEN_ITEM_TWO_ISLAND_CAPE_BRINK_PP_MAX 161 -#define HIDDEN_ITEM_MT_EMBER_EXTERIOR_ULTRA_BALL 162 -#define HIDDEN_ITEM_THREE_ISLAND_DUNSPARCE_TUNNEL_NUGGET 163 -#define HIDDEN_ITEM_THREE_ISLAND_PP_UP 164 -#define HIDDEN_ITEM_THREE_ISLAND_BOND_BRIDGE_MAX_REPEL 165 -#define HIDDEN_ITEM_THREE_ISLAND_BOND_BRIDGE_PEARL 166 -#define HIDDEN_ITEM_THREE_ISLAND_BOND_BRIDGE_STARDUST 167 -#define HIDDEN_ITEM_FOUR_ISLAND_PEARL 168 -#define HIDDEN_ITEM_FOUR_ISLAND_ULTRA_BALL 169 -#define HIDDEN_ITEM_FIVE_ISLAND_MEMORIAL_PILLAR_BIG_PEARL 170 -#define HIDDEN_ITEM_FIVE_ISLAND_MEMORIAL_PILLAR_RAZZ_BERRY 171 -#define HIDDEN_ITEM_FIVE_ISLAND_MEMORIAL_PILLAR_SITRUS_BERRY 172 -#define HIDDEN_ITEM_FIVE_ISLAND_MEMORIAL_PILLAR_BLUK_BERRY 173 -#define HIDDEN_ITEM_FIVE_ISLAND_RESORT_GORGEOUS_NEST_BALL 174 -#define HIDDEN_ITEM_FIVE_ISLAND_RESORT_GORGEOUS_STARDUST 175 -#define HIDDEN_ITEM_FIVE_ISLAND_RESORT_GORGEOUS_STAR_PIECE 176 -#define HIDDEN_ITEM_FIVE_ISLAND_RESORT_GORGEOUS_STARDUST_2 177 -#define HIDDEN_ITEM_SIX_ISLAND_OUTCAST_ISLAND_STAR_PIECE 178 -#define HIDDEN_ITEM_SIX_ISLAND_OUTCAST_ISLAND_NET_BALL 179 -#define HIDDEN_ITEM_SIX_ISLAND_GREEN_PATH_ULTRA_BALL 180 -#define HIDDEN_ITEM_SIX_ISLAND_WATER_PATH_ASPEAR_BERRY 181 -#define HIDDEN_ITEM_SIX_ISLAND_WATER_PATH_ORAN_BERRY 182 -#define HIDDEN_ITEM_SIX_ISLAND_WATER_PATH_PINAP_BERRY 183 -#define HIDDEN_ITEM_SIX_ISLAND_LEPPA_BERRY 184 -#define HIDDEN_ITEM_SEVEN_ISLAND_TRAINER_TOWER_BIG_PEARL 185 -#define HIDDEN_ITEM_SEVEN_ISLAND_TRAINER_TOWER_PEARL 186 -#define HIDDEN_ITEM_SEVEN_ISLAND_TRAINER_TOWER_NANAB_BERRY 187 -#define HIDDEN_ITEM_SEVEN_ISLAND_SEVAULT_CANYON_ENTRANCE_RAWST_BERRY 188 -#define HIDDEN_ITEM_VIRIDIAN_CITY_GYM_MACHO_BRACE 189 -#define HIDDEN_ITEM_SSANNE_EXTERIOR_LAVA_COOKIE 190 +#define FLAG_HIDDEN_ITEM_VIRIDIAN_FOREST_POTION (FLAG_HIDDEN_ITEMS_START + 0) +#define FLAG_HIDDEN_ITEM_VIRIDIAN_FOREST_ANTIDOTE (FLAG_HIDDEN_ITEMS_START + 1) +#define FLAG_HIDDEN_ITEM_MT_MOON_B2F_MOON_STONE (FLAG_HIDDEN_ITEMS_START + 2) +#define FLAG_HIDDEN_ITEM_MT_MOON_B2F_ETHER (FLAG_HIDDEN_ITEMS_START + 3) +#define FLAG_HIDDEN_ITEM_ROUTE25_ELIXIR (FLAG_HIDDEN_ITEMS_START + 4) +#define FLAG_HIDDEN_ITEM_ROUTE25_ETHER (FLAG_HIDDEN_ITEMS_START + 5) +#define FLAG_HIDDEN_ITEM_ROUTE9_ETHER (FLAG_HIDDEN_ITEMS_START + 6) +#define FLAG_HIDDEN_ITEM_UNUSED_0x07 (FLAG_HIDDEN_ITEMS_START + 7) +#define FLAG_HIDDEN_ITEM_SSANNE_B1F_CORRIDOR_HYPER_POTION (FLAG_HIDDEN_ITEMS_START + 8) +#define FLAG_HIDDEN_ITEM_ROUTE10_SUPER_POTION (FLAG_HIDDEN_ITEMS_START + 9) +#define FLAG_HIDDEN_ITEM_ROUTE10_MAX_ETHER (FLAG_HIDDEN_ITEMS_START + 10) +#define FLAG_HIDDEN_ITEM_ROCKET_HIDEOUT_B1F_PP_UP (FLAG_HIDDEN_ITEMS_START + 11) +#define FLAG_HIDDEN_ITEM_ROCKET_HIDEOUT_B3F_NUGGET (FLAG_HIDDEN_ITEMS_START + 12) +#define FLAG_HIDDEN_ITEM_ROCKET_HIDEOUT_B4F_NEST_BALL (FLAG_HIDDEN_ITEMS_START + 13) +#define FLAG_HIDDEN_ITEM_POKEMON_TOWER_5F_BIG_MUSHROOM (FLAG_HIDDEN_ITEMS_START + 14) +#define FLAG_HIDDEN_ITEM_ROUTE13_PP_UP (FLAG_HIDDEN_ITEMS_START + 15) +#define FLAG_HIDDEN_ITEM_UNUSED_0x10 (FLAG_HIDDEN_ITEMS_START + 16) +#define FLAG_HIDDEN_ITEM_ROUTE17_RARE_CANDY (FLAG_HIDDEN_ITEMS_START + 17) +#define FLAG_HIDDEN_ITEM_ROUTE17_FULL_RESTORE (FLAG_HIDDEN_ITEMS_START + 18) +#define FLAG_HIDDEN_ITEM_ROUTE17_PP_UP (FLAG_HIDDEN_ITEMS_START + 19) +#define FLAG_HIDDEN_ITEM_ROUTE17_MAX_REVIVE (FLAG_HIDDEN_ITEMS_START + 20) +#define FLAG_HIDDEN_ITEM_ROUTE17_MAX_ELIXIR (FLAG_HIDDEN_ITEMS_START + 21) +#define FLAG_HIDDEN_ITEM_SAFARI_ZONE_CENTER_LEAF_STONE (FLAG_HIDDEN_ITEMS_START + 22) +#define FLAG_HIDDEN_ITEM_SAFARI_ZONE_WEST_REVIVE (FLAG_HIDDEN_ITEMS_START + 23) +#define FLAG_HIDDEN_ITEM_SILPH_CO_5F_ELIXIR (FLAG_HIDDEN_ITEMS_START + 24) +#define FLAG_HIDDEN_ITEM_SILPH_CO_9F_MAX_POTION (FLAG_HIDDEN_ITEMS_START + 25) +#define FLAG_HIDDEN_ITEM_SAFFRON_CITY_COPYCATS_HOUSE_2F_NUGGET (FLAG_HIDDEN_ITEMS_START + 26) +#define FLAG_HIDDEN_ITEM_POWER_PLANT_MAX_ELIXIR (FLAG_HIDDEN_ITEMS_START + 27) +#define FLAG_HIDDEN_ITEM_POWER_PLANT_THUNDER_STONE (FLAG_HIDDEN_ITEMS_START + 28) +#define FLAG_HIDDEN_ITEM_SEAFOAM_ISLANDS_B3F_NUGGET (FLAG_HIDDEN_ITEMS_START + 29) +#define FLAG_HIDDEN_ITEM_SEAFOAM_ISLANDS_B4F_WATER_STONE (FLAG_HIDDEN_ITEMS_START + 30) +#define FLAG_HIDDEN_ITEM_POKEMON_MANSION_1F_MOON_STONE (FLAG_HIDDEN_ITEMS_START + 31) +#define FLAG_HIDDEN_ITEM_POKEMON_MANSION_3F_RARE_CANDY (FLAG_HIDDEN_ITEMS_START + 32) +#define FLAG_HIDDEN_ITEM_POKEMON_MANSION_B1F_ELIXIR (FLAG_HIDDEN_ITEMS_START + 33) +#define FLAG_HIDDEN_ITEM_ROUTE23_FULL_RESTORE (FLAG_HIDDEN_ITEMS_START + 34) +#define FLAG_HIDDEN_ITEM_ROUTE23_ULTRA_BALL (FLAG_HIDDEN_ITEMS_START + 35) +#define FLAG_HIDDEN_ITEM_ROUTE23_MAX_ETHER (FLAG_HIDDEN_ITEMS_START + 36) +#define FLAG_HIDDEN_ITEM_VICTORY_ROAD_1F_ULTRA_BALL (FLAG_HIDDEN_ITEMS_START + 37) +#define FLAG_HIDDEN_ITEM_VICTORY_ROAD_1F_FULL_RESTORE (FLAG_HIDDEN_ITEMS_START + 38) +#define FLAG_HIDDEN_ITEM_CERULEAN_CAVE_1F_ULTRA_BALL (FLAG_HIDDEN_ITEMS_START + 39) +#define FLAG_HIDDEN_ITEM_UNUSED_0x28 (FLAG_HIDDEN_ITEMS_START + 40) +#define FLAG_HIDDEN_ITEM_ROUTE11_ESCAPE_ROPE (FLAG_HIDDEN_ITEMS_START + 41) +#define FLAG_HIDDEN_ITEM_ROUTE12_HYPER_POTION (FLAG_HIDDEN_ITEMS_START + 42) +#define FLAG_HIDDEN_ITEM_UNUSED_0x2B (FLAG_HIDDEN_ITEMS_START + 43) +#define FLAG_HIDDEN_ITEM_UNUSED_0x2C (FLAG_HIDDEN_ITEMS_START + 44) +#define FLAG_HIDDEN_ITEM_UNUSED_0x2D (FLAG_HIDDEN_ITEMS_START + 45) +#define FLAG_HIDDEN_ITEM_UNUSED_0x2E (FLAG_HIDDEN_ITEMS_START + 46) +#define FLAG_HIDDEN_ITEM_CELADON_CITY_PP_UP (FLAG_HIDDEN_ITEMS_START + 47) +#define FLAG_HIDDEN_ITEM_VERMILION_CITY_MAX_ETHER (FLAG_HIDDEN_ITEMS_START + 48) +#define FLAG_HIDDEN_ITEM_CERULEAN_CITY_RARE_CANDY (FLAG_HIDDEN_ITEMS_START + 49) +#define FLAG_HIDDEN_ITEM_ROUTE4_GREAT_BALL (FLAG_HIDDEN_ITEMS_START + 50) +#define FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS (FLAG_HIDDEN_ITEMS_START + 51) +#define FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_2 (FLAG_HIDDEN_ITEMS_START + 52) +#define FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_3 (FLAG_HIDDEN_ITEMS_START + 53) +#define FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_4 (FLAG_HIDDEN_ITEMS_START + 54) +#define FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_5 (FLAG_HIDDEN_ITEMS_START + 55) +#define FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_6 (FLAG_HIDDEN_ITEMS_START + 56) +#define FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_7 (FLAG_HIDDEN_ITEMS_START + 57) +#define FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_8 (FLAG_HIDDEN_ITEMS_START + 58) +#define FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_9 (FLAG_HIDDEN_ITEMS_START + 59) +#define FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_10 (FLAG_HIDDEN_ITEMS_START + 60) +#define FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_11 (FLAG_HIDDEN_ITEMS_START + 61) +#define FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_12 (FLAG_HIDDEN_ITEMS_START + 62) +#define FLAG_HIDDEN_ITEM_SEVEN_ISLAND_SEVAULT_CANYON_CHERI_BERRY (FLAG_HIDDEN_ITEMS_START + 63) +#define FLAG_HIDDEN_ITEM_SEVEN_ISLAND_TANOBY_RUINS_HEART_SCALE_4 (FLAG_HIDDEN_ITEMS_START + 64) +#define FLAG_HIDDEN_ITEM_SEVEN_ISLAND_TANOBY_RUINS_HEART_SCALE (FLAG_HIDDEN_ITEMS_START + 65) +#define FLAG_HIDDEN_ITEM_SEVEN_ISLAND_TANOBY_RUINS_HEART_SCALE_2 (FLAG_HIDDEN_ITEMS_START + 66) +#define FLAG_HIDDEN_ITEM_SEVEN_ISLAND_TANOBY_RUINS_HEART_SCALE_3 (FLAG_HIDDEN_ITEMS_START + 67) +#define FLAG_HIDDEN_ITEM_FIVE_ISLAND_ROCKET_WAREHOUSE_NEST_BALL (FLAG_HIDDEN_ITEMS_START + 68) +#define FLAG_HIDDEN_ITEM_FIVE_ISLAND_ROCKET_WAREHOUSE_NET_BALL (FLAG_HIDDEN_ITEMS_START + 69) +#define FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_POTION (FLAG_HIDDEN_ITEMS_START + 70) +#define FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_ANTIDOTE (FLAG_HIDDEN_ITEMS_START + 71) +#define FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_PARALYZE_HEAL (FLAG_HIDDEN_ITEMS_START + 72) +#define FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_AWAKENING (FLAG_HIDDEN_ITEMS_START + 73) +#define FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_BURN_HEAL (FLAG_HIDDEN_ITEMS_START + 74) +#define FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_ICE_HEAL (FLAG_HIDDEN_ITEMS_START + 75) +#define FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_ETHER (FLAG_HIDDEN_ITEMS_START + 76) +#define FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_POTION (FLAG_HIDDEN_ITEMS_START + 77) +#define FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_ANTIDOTE (FLAG_HIDDEN_ITEMS_START + 78) +#define FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_PARALYZE_HEAL (FLAG_HIDDEN_ITEMS_START + 79) +#define FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_AWAKENING (FLAG_HIDDEN_ITEMS_START + 80) +#define FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_BURN_HEAL (FLAG_HIDDEN_ITEMS_START + 81) +#define FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_ICE_HEAL (FLAG_HIDDEN_ITEMS_START + 82) +#define FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_ETHER (FLAG_HIDDEN_ITEMS_START + 83) +#define FLAG_HIDDEN_ITEM_MT_MOON_B1F_TINY_MUSHROOM (FLAG_HIDDEN_ITEMS_START + 84) +#define FLAG_HIDDEN_ITEM_MT_MOON_B1F_TINY_MUSHROOM_2 (FLAG_HIDDEN_ITEMS_START + 85) +#define FLAG_HIDDEN_ITEM_MT_MOON_B1F_TINY_MUSHROOM_3 (FLAG_HIDDEN_ITEMS_START + 86) +#define FLAG_HIDDEN_ITEM_MT_MOON_B1F_BIG_MUSHROOM (FLAG_HIDDEN_ITEMS_START + 87) +#define FLAG_HIDDEN_ITEM_MT_MOON_B1F_BIG_MUSHROOM_2 (FLAG_HIDDEN_ITEMS_START + 88) +#define FLAG_HIDDEN_ITEM_MT_MOON_B1F_BIG_MUSHROOM_3 (FLAG_HIDDEN_ITEMS_START + 89) +#define FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_RAZZ_BERRY (FLAG_HIDDEN_ITEMS_START + 90) +#define FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_BLUK_BERRY (FLAG_HIDDEN_ITEMS_START + 91) +#define FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_NANAB_BERRY (FLAG_HIDDEN_ITEMS_START + 92) +#define FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_WEPEAR_BERRY (FLAG_HIDDEN_ITEMS_START + 93) +#define FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_ORAN_BERRY (FLAG_HIDDEN_ITEMS_START + 94) +#define FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_CHERI_BERRY (FLAG_HIDDEN_ITEMS_START + 95) +#define FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_CHESTO_BERRY (FLAG_HIDDEN_ITEMS_START + 96) +#define FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_PECHA_BERRY (FLAG_HIDDEN_ITEMS_START + 97) +#define FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_RAWST_BERRY (FLAG_HIDDEN_ITEMS_START + 98) +#define FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_ASPEAR_BERRY (FLAG_HIDDEN_ITEMS_START + 99) +#define FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_PERSIM_BERRY (FLAG_HIDDEN_ITEMS_START + 100) +#define FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_PINAP_BERRY (FLAG_HIDDEN_ITEMS_START + 101) +#define FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_LUM_BERRY (FLAG_HIDDEN_ITEMS_START + 102) +#define FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_STARDUST (FLAG_HIDDEN_ITEMS_START + 103) +#define FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_STARDUST_2 (FLAG_HIDDEN_ITEMS_START + 104) +#define FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_PEARL (FLAG_HIDDEN_ITEMS_START + 105) +#define FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_PEARL_2 (FLAG_HIDDEN_ITEMS_START + 106) +#define FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_ULTRA_BALL (FLAG_HIDDEN_ITEMS_START + 107) +#define FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_ULTRA_BALL_2 (FLAG_HIDDEN_ITEMS_START + 108) +#define FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_STAR_PIECE (FLAG_HIDDEN_ITEMS_START + 109) +#define FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_BIG_PEARL (FLAG_HIDDEN_ITEMS_START + 110) +#define FLAG_HIDDEN_ITEM_TWO_ISLAND_CAPE_BRINK_RARE_CANDY (FLAG_HIDDEN_ITEMS_START + 111) +#define FLAG_HIDDEN_ITEM_PEWTER_CITY_POKE_BALL (FLAG_HIDDEN_ITEMS_START + 112) +#define FLAG_HIDDEN_ITEM_ROUTE3_ORAN_BERRY (FLAG_HIDDEN_ITEMS_START + 113) +#define FLAG_HIDDEN_ITEM_ROUTE4_PERSIM_BERRY (FLAG_HIDDEN_ITEMS_START + 114) +#define FLAG_HIDDEN_ITEM_ROUTE24_PECHA_BERRY (FLAG_HIDDEN_ITEMS_START + 115) +#define FLAG_HIDDEN_ITEM_ROUTE25_ORAN_BERRY (FLAG_HIDDEN_ITEMS_START + 116) +#define FLAG_HIDDEN_ITEM_ROUTE25_BLUK_BERRY (FLAG_HIDDEN_ITEMS_START + 117) +#define FLAG_HIDDEN_ITEM_ROUTE6_SITRUS_BERRY (FLAG_HIDDEN_ITEMS_START + 118) +#define FLAG_HIDDEN_ITEM_ROUTE6_RARE_CANDY (FLAG_HIDDEN_ITEMS_START + 119) +#define FLAG_HIDDEN_ITEM_SSANNE_KITCHEN_PECHA_BERRY (FLAG_HIDDEN_ITEMS_START + 120) +#define FLAG_HIDDEN_ITEM_SSANNE_KITCHEN_CHERI_BERRY (FLAG_HIDDEN_ITEMS_START + 121) +#define FLAG_HIDDEN_ITEM_SSANNE_KITCHEN_CHESTO_BERRY (FLAG_HIDDEN_ITEMS_START + 122) +#define FLAG_HIDDEN_ITEM_ROUTE9_RARE_CANDY (FLAG_HIDDEN_ITEMS_START + 123) +#define FLAG_HIDDEN_ITEM_UNUSED_0x7C (FLAG_HIDDEN_ITEMS_START + 124) +#define FLAG_HIDDEN_ITEM_ROUTE10_PERSIM_BERRY (FLAG_HIDDEN_ITEMS_START + 125) +#define FLAG_HIDDEN_ITEM_ROUTE10_CHERI_BERRY (FLAG_HIDDEN_ITEMS_START + 126) +#define FLAG_HIDDEN_ITEM_ROUTE8_RAWST_BERRY (FLAG_HIDDEN_ITEMS_START + 127) +#define FLAG_HIDDEN_ITEM_ROUTE8_LUM_BERRY (FLAG_HIDDEN_ITEMS_START + 128) +#define FLAG_HIDDEN_ITEM_ROUTE8_LEPPA_BERRY (FLAG_HIDDEN_ITEMS_START + 129) +#define FLAG_HIDDEN_ITEM_ROUTE12_RARE_CANDY (FLAG_HIDDEN_ITEMS_START + 130) +#define FLAG_HIDDEN_ITEM_ROUTE12_LEFTOVERS (FLAG_HIDDEN_ITEMS_START + 131) +#define FLAG_HIDDEN_ITEM_ROUTE16_LEFTOVERS (FLAG_HIDDEN_ITEMS_START + 132) +#define FLAG_HIDDEN_ITEM_FUCHSIA_CITY_MAX_REVIVE (FLAG_HIDDEN_ITEMS_START + 133) +#define FLAG_HIDDEN_ITEM_ROCKET_HIDEOUT_B4F_NET_BALL (FLAG_HIDDEN_ITEMS_START + 134) +#define FLAG_HIDDEN_ITEM_SILPH_CO_2F_ULTRA_BALL (FLAG_HIDDEN_ITEMS_START + 135) +#define FLAG_HIDDEN_ITEM_SILPH_CO_3F_PROTEIN (FLAG_HIDDEN_ITEMS_START + 136) +#define FLAG_HIDDEN_ITEM_SILPH_CO_4F_IRON (FLAG_HIDDEN_ITEMS_START + 137) +#define FLAG_HIDDEN_ITEM_SILPH_CO_5F_PP_UP (FLAG_HIDDEN_ITEMS_START + 138) +#define FLAG_HIDDEN_ITEM_SILPH_CO_6F_CARBOS (FLAG_HIDDEN_ITEMS_START + 139) +#define FLAG_HIDDEN_ITEM_SILPH_CO_7F_ZINC (FLAG_HIDDEN_ITEMS_START + 140) +#define FLAG_HIDDEN_ITEM_SILPH_CO_8F_NUGGET (FLAG_HIDDEN_ITEMS_START + 141) +#define FLAG_HIDDEN_ITEM_SILPH_CO_9F_CALCIUM (FLAG_HIDDEN_ITEMS_START + 142) +#define FLAG_HIDDEN_ITEM_SILPH_CO_10F_HP_UP (FLAG_HIDDEN_ITEMS_START + 143) +#define FLAG_HIDDEN_ITEM_SILPH_CO_11F_REVIVE (FLAG_HIDDEN_ITEMS_START + 144) +#define FLAG_HIDDEN_ITEM_ROUTE23_LUM_BERRY (FLAG_HIDDEN_ITEMS_START + 145) +#define FLAG_HIDDEN_ITEM_ROUTE23_SITRUS_BERRY (FLAG_HIDDEN_ITEMS_START + 146) +#define FLAG_HIDDEN_ITEM_ROUTE23_ASPEAR_BERRY (FLAG_HIDDEN_ITEMS_START + 147) +#define FLAG_HIDDEN_ITEM_ROUTE23_LEPPA_BERRY (FLAG_HIDDEN_ITEMS_START + 148) +#define FLAG_HIDDEN_ITEM_ROUTE14_ZINC (FLAG_HIDDEN_ITEMS_START + 149) +#define FLAG_HIDDEN_ITEM_ROUTE9_CHESTO_BERRY (FLAG_HIDDEN_ITEMS_START + 150) +#define FLAG_HIDDEN_ITEM_ROUTE10_NANAB_BERRY (FLAG_HIDDEN_ITEMS_START + 151) +#define FLAG_HIDDEN_ITEM_ROUTE7_WEPEAR_BERRY (FLAG_HIDDEN_ITEMS_START + 152) +#define FLAG_HIDDEN_ITEM_ROUTE20_STARDUST (FLAG_HIDDEN_ITEMS_START + 153) +#define FLAG_HIDDEN_ITEM_ROUTE21_NORTH_PEARL (FLAG_HIDDEN_ITEMS_START + 154) +#define FLAG_HIDDEN_ITEM_ROUTE23_MAX_ELIXIR (FLAG_HIDDEN_ITEMS_START + 155) +#define FLAG_HIDDEN_ITEM_ROUTE4_RAZZ_BERRY (FLAG_HIDDEN_ITEMS_START + 156) +#define FLAG_HIDDEN_ITEM_ROUTE14_PINAP_BERRY (FLAG_HIDDEN_ITEMS_START + 157) +#define FLAG_HIDDEN_ITEM_MT_EMBER_EXTERIOR_FIRE_STONE (FLAG_HIDDEN_ITEMS_START + 158) +#define FLAG_HIDDEN_ITEM_POKEMON_TOWER_7F_SOOTHE_BELL (FLAG_HIDDEN_ITEMS_START + 159) +#define FLAG_HIDDEN_ITEM_NAVEL_ROCK_SUMMIT_SACRED_ASH (FLAG_HIDDEN_ITEMS_START + 160) +#define FLAG_HIDDEN_ITEM_TWO_ISLAND_CAPE_BRINK_PP_MAX (FLAG_HIDDEN_ITEMS_START + 161) +#define FLAG_HIDDEN_ITEM_MT_EMBER_EXTERIOR_ULTRA_BALL (FLAG_HIDDEN_ITEMS_START + 162) +#define FLAG_HIDDEN_ITEM_THREE_ISLAND_DUNSPARCE_TUNNEL_NUGGET (FLAG_HIDDEN_ITEMS_START + 163) +#define FLAG_HIDDEN_ITEM_THREE_ISLAND_PP_UP (FLAG_HIDDEN_ITEMS_START + 164) +#define FLAG_HIDDEN_ITEM_THREE_ISLAND_BOND_BRIDGE_MAX_REPEL (FLAG_HIDDEN_ITEMS_START + 165) +#define FLAG_HIDDEN_ITEM_THREE_ISLAND_BOND_BRIDGE_PEARL (FLAG_HIDDEN_ITEMS_START + 166) +#define FLAG_HIDDEN_ITEM_THREE_ISLAND_BOND_BRIDGE_STARDUST (FLAG_HIDDEN_ITEMS_START + 167) +#define FLAG_HIDDEN_ITEM_FOUR_ISLAND_PEARL (FLAG_HIDDEN_ITEMS_START + 168) +#define FLAG_HIDDEN_ITEM_FOUR_ISLAND_ULTRA_BALL (FLAG_HIDDEN_ITEMS_START + 169) +#define FLAG_HIDDEN_ITEM_FIVE_ISLAND_MEMORIAL_PILLAR_BIG_PEARL (FLAG_HIDDEN_ITEMS_START + 170) +#define FLAG_HIDDEN_ITEM_FIVE_ISLAND_MEMORIAL_PILLAR_RAZZ_BERRY (FLAG_HIDDEN_ITEMS_START + 171) +#define FLAG_HIDDEN_ITEM_FIVE_ISLAND_MEMORIAL_PILLAR_SITRUS_BERRY (FLAG_HIDDEN_ITEMS_START + 172) +#define FLAG_HIDDEN_ITEM_FIVE_ISLAND_MEMORIAL_PILLAR_BLUK_BERRY (FLAG_HIDDEN_ITEMS_START + 173) +#define FLAG_HIDDEN_ITEM_FIVE_ISLAND_RESORT_GORGEOUS_NEST_BALL (FLAG_HIDDEN_ITEMS_START + 174) +#define FLAG_HIDDEN_ITEM_FIVE_ISLAND_RESORT_GORGEOUS_STARDUST (FLAG_HIDDEN_ITEMS_START + 175) +#define FLAG_HIDDEN_ITEM_FIVE_ISLAND_RESORT_GORGEOUS_STAR_PIECE (FLAG_HIDDEN_ITEMS_START + 176) +#define FLAG_HIDDEN_ITEM_FIVE_ISLAND_RESORT_GORGEOUS_STARDUST_2 (FLAG_HIDDEN_ITEMS_START + 177) +#define FLAG_HIDDEN_ITEM_SIX_ISLAND_OUTCAST_ISLAND_STAR_PIECE (FLAG_HIDDEN_ITEMS_START + 178) +#define FLAG_HIDDEN_ITEM_SIX_ISLAND_OUTCAST_ISLAND_NET_BALL (FLAG_HIDDEN_ITEMS_START + 179) +#define FLAG_HIDDEN_ITEM_SIX_ISLAND_GREEN_PATH_ULTRA_BALL (FLAG_HIDDEN_ITEMS_START + 180) +#define FLAG_HIDDEN_ITEM_SIX_ISLAND_WATER_PATH_ASPEAR_BERRY (FLAG_HIDDEN_ITEMS_START + 181) +#define FLAG_HIDDEN_ITEM_SIX_ISLAND_WATER_PATH_ORAN_BERRY (FLAG_HIDDEN_ITEMS_START + 182) +#define FLAG_HIDDEN_ITEM_SIX_ISLAND_WATER_PATH_PINAP_BERRY (FLAG_HIDDEN_ITEMS_START + 183) +#define FLAG_HIDDEN_ITEM_SIX_ISLAND_LEPPA_BERRY (FLAG_HIDDEN_ITEMS_START + 184) +#define FLAG_HIDDEN_ITEM_SEVEN_ISLAND_TRAINER_TOWER_BIG_PEARL (FLAG_HIDDEN_ITEMS_START + 185) +#define FLAG_HIDDEN_ITEM_SEVEN_ISLAND_TRAINER_TOWER_PEARL (FLAG_HIDDEN_ITEMS_START + 186) +#define FLAG_HIDDEN_ITEM_SEVEN_ISLAND_TRAINER_TOWER_NANAB_BERRY (FLAG_HIDDEN_ITEMS_START + 187) +#define FLAG_HIDDEN_ITEM_SEVEN_ISLAND_SEVAULT_CANYON_ENTRANCE_RAWST_BERRY (FLAG_HIDDEN_ITEMS_START + 188) +#define FLAG_HIDDEN_ITEM_VIRIDIAN_CITY_GYM_MACHO_BRACE (FLAG_HIDDEN_ITEMS_START + 189) +#define FLAG_HIDDEN_ITEM_SSANNE_EXTERIOR_LAVA_COOKIE (FLAG_HIDDEN_ITEMS_START + 190) -// Unused? -#define FLAG_0x4A7 0x4A7 -#define FLAG_0x4A8 0x4A8 -#define FLAG_0x4A9 0x4A9 -#define FLAG_0x4AA 0x4AA -#define FLAG_0x4AB 0x4AB -#define FLAG_0x4AC 0x4AC -#define FLAG_0x4AD 0x4AD -#define FLAG_0x4AE 0x4AE -#define FLAG_0x4AF 0x4AF +// Unused hidden item flags +#define FLAG_UNUSED_0x4A7 0x4A7 // Unused Flag +#define FLAG_UNUSED_0x4A8 0x4A8 // Unused Flag +#define FLAG_UNUSED_0x4A9 0x4A9 // Unused Flag +#define FLAG_UNUSED_0x4AA 0x4AA // Unused Flag +#define FLAG_UNUSED_0x4AB 0x4AB // Unused Flag +#define FLAG_UNUSED_0x4AC 0x4AC // Unused Flag +#define FLAG_UNUSED_0x4AD 0x4AD // Unused Flag +#define FLAG_UNUSED_0x4AE 0x4AE // Unused Flag +#define FLAG_UNUSED_0x4AF 0x4AF // Unused Flag // Boss clear flags, 1200 #define FLAG_DEFEATED_BROCK 0x4B0 @@ -1377,8 +1384,8 @@ #define FLAG_SYS_NOT_SOMEONES_PC (SYS_FLAGS + 0x34) #define FLAG_0x835 (SYS_FLAGS + 0x35) #define FLAG_0x836 (SYS_FLAGS + 0x36) -#define FLAG_0x837 (SYS_FLAGS + 0x37) -#define FLAG_0x838 (SYS_FLAGS + 0x38) +#define FLAG_SYS_RESET_RTC_ENABLE (SYS_FLAGS + 0x37) +#define FLAG_0x838 (SYS_FLAGS + 0x38) // Set, never read #define FLAG_SYS_MYSTERY_GIFT_ENABLED (SYS_FLAGS + 0x39) #define FLAG_0x83A (SYS_FLAGS + 0x3A) #define FLAG_SYS_RIBBON_GET (SYS_FLAGS + 0x3B) @@ -1516,13 +1523,11 @@ #define FLAGS_COUNT (FLAG_0x8FF + 1) -// SPECIAL FLAGS (unknown purpose) -#define SPECIAL_FLAGS_START 0x4000 -#define SPECIAL_FLAGS_COUNT 16 -#define FLAG_DONT_SHOW_MAP_NAME_POPUP 0x4000 -#define FLAG_DONT_TRANSITION_MUSIC 0x4001 -#define FLAG_SPECIAL_FLAG_0x4002 0x4002 -#define FLAG_SPECIAL_FLAG_0x4003 0x4003 -#define FLAG_SPECIAL_FLAG_0x4004 0x4004 +// Special Flags (Stored in EWRAM (sSpecialFlags, not in the SaveBlock) +#define SPECIAL_FLAGS_START 0x4000 +#define FLAG_DONT_SHOW_MAP_NAME_POPUP (SPECIAL_FLAGS_START + 0x0) +#define FLAG_DONT_TRANSITION_MUSIC (SPECIAL_FLAGS_START + 0x1) +// FLAG_SPECIAL_FLAG_0x4002 - 0x407F also exist and are unused +#define SPECIAL_FLAGS_END (SPECIAL_FLAGS_START + 0x7F) #endif // GUARD_CONSTANTS_FLAGS_H diff --git a/include/constants/global.h b/include/constants/global.h index fff17a8b6..d83b878d9 100644 --- a/include/constants/global.h +++ b/include/constants/global.h @@ -115,4 +115,13 @@ #define DIR_NORTHWEST 7 #define DIR_NORTHEAST 8 +#define CONNECTION_INVALID -1 +#define CONNECTION_NONE 0 +#define CONNECTION_SOUTH 1 +#define CONNECTION_NORTH 2 +#define CONNECTION_WEST 3 +#define CONNECTION_EAST 4 +#define CONNECTION_DIVE 5 +#define CONNECTION_EMERGE 6 + #endif //GUARD_CONSTANTS_GLOBAL_H diff --git a/include/constants/items.h b/include/constants/items.h index 4ee7e3014..a3242c13e 100644 --- a/include/constants/items.h +++ b/include/constants/items.h @@ -438,11 +438,7 @@ #define ITEM_RUBY 373 #define ITEM_SAPPHIRE 374 -#define ITEM_N_A 375 - -// Emerald -#define ITEM_MAGMA_EMBLEM 375 -#define ITEM_OLD_SEA_MAP 376 +#define ITEMS_COUNT 375 #define FIRST_BERRY_INDEX ITEM_CHERI_BERRY #define LAST_BERRY_INDEX ITEM_ENIGMA_BERRY @@ -452,6 +448,11 @@ #define NUM_TECHNICAL_MACHINES 50 #define NUM_HIDDEN_MACHINES 8 +// Secondary IDs for rods +#define OLD_ROD 0 +#define GOOD_ROD 1 +#define SUPER_ROD 2 + // Check if the item is one that can be used on a Pokemon. #define IS_POKEMON_ITEM(item) ((item) >= ITEM_POTION && (item) <= ITEM_0B2) diff --git a/include/constants/maps.h b/include/constants/maps.h index 57cc1d078..0452a6666 100644 --- a/include/constants/maps.h +++ b/include/constants/maps.h @@ -4,7 +4,10 @@ #include "constants/map_groups.h" #include "constants/map_types.h" -#define MAP_NONE (0x7F | (0x7F << 8)) +// Warps using this map will instead use the warp data stored in gSaveBlock1Ptr->dynamicWarp. +// Used for warps that need to change destinations, e.g. when stepping off an elevator. +#define MAP_DYNAMIC (0x7F | (0x7F << 8)) + #define MAP_UNDEFINED (0xFF | (0xFF << 8)) #define MAP_GROUP(map) (MAP_##map >> 8) @@ -12,6 +15,12 @@ #define MAP(map) MAP_GROUP(map), MAP_NUM(map) +// ID for dynamic warps. Used in the dest_warp_id field for warp events, but it's never +// read in practice. A dest_map of MAP_DYNAMIC is used to indicate that a dynamic warp +// should be used, at which point the warp id is ignored. It can be passed to SetDynamicWarp +// or SetDynamicWarpWithCoords as the first argument, but this argument is unused. +#define WARP_ID_DYNAMIC 0x7F + // Used to indicate an invalid warp id, for dummy warps or when a warp should // use the given coordinates rather than the coordinates of a target warp. #define WARP_ID_NONE (-1) diff --git a/include/constants/mystery_gift.h b/include/constants/mystery_gift.h new file mode 100644 index 000000000..8ff71c3aa --- /dev/null +++ b/include/constants/mystery_gift.h @@ -0,0 +1,47 @@ +#ifndef GUARD_CONSTANTS_MYSTERY_GIFT_H +#define GUARD_CONSTANTS_MYSTERY_GIFT_H + +#define GET_NUM_STAMPS 0 +#define GET_MAX_STAMPS 1 +#define GET_CARD_BATTLES_WON 2 +#define GET_CARD_BATTLES_LOST 3 +#define GET_CARD_NUM_TRADES 4 + +#define CARD_STAT_BATTLES_WON 0 +#define CARD_STAT_BATTLES_LOST 1 +#define CARD_STAT_NUM_TRADES 2 +#define CARD_STAT_NUM_STAMPS 3 +#define CARD_STAT_MAX_STAMPS 4 + +// Values for the type field of Wonder Card +#define CARD_TYPE_GIFT 0 // Normal "Wonder Card" +#define CARD_TYPE_STAMP 1 // "Stamp Card" +#define CARD_TYPE_LINK_STAT 2 // Referred to as the "Battle Card", shows battle and trade stats +#define CARD_TYPE_COUNT 3 + +// Values for the sendType field of Wonder Card/News +#define SEND_TYPE_DISALLOWED 0 +#define SEND_TYPE_ALLOWED 1 +#define SEND_TYPE_ALLOWED_ALWAYS 2 + +// Return values for MysteryGift_CompareCardFlags, handled by gMysteryGiftServerScript_SendWonderCard +#define HAS_NO_CARD 0 +#define HAS_SAME_CARD 1 +#define HAS_DIFF_CARD 2 + +// The number of battles needed to be recorded on a Battle Card to win a prize +#define REQUIRED_CARD_BATTLES 3 + +// Stamps are 32 bits. The first 16 bits are the species +// and the second 16 bits are a number (presumably an ID of some kind) +#define STAMP_SPECIES 0 +#define STAMP_ID 1 + +// Number of different types/colors of Wonder Card and News backgrounds +#define NUM_WONDER_BGS 8 + +#define MAX_WONDER_CARD_STAT 999 + +#define WONDER_CARD_FLAG_OFFSET 1000 + +#endif //GUARD_CONSTANTS_MYSTERY_GIFT_H diff --git a/include/constants/party_menu.h b/include/constants/party_menu.h index 0c958ccc5..1321a4ced 100644 --- a/include/constants/party_menu.h +++ b/include/constants/party_menu.h @@ -55,8 +55,8 @@ #define PARTY_MENU_TYPE_FIELD 0 #define PARTY_MENU_TYPE_IN_BATTLE 1 #define PARTY_MENU_TYPE_CONTEST 2 -#define PARTY_MENU_TYPE_CHOOSE_MON 3 -#define PARTY_MENU_TYPE_CHOOSE_HALF 4 // multi battles, eReader battles, and some battle facilities +#define PARTY_MENU_TYPE_CHOOSE_SINGLE_MON 3 +#define PARTY_MENU_TYPE_CHOOSE_MULTIPLE_MONS 4 // multi battles, eReader battles, and some battle facilities #define PARTY_MENU_TYPE_MULTI_SHOWCASE 5 #define PARTY_MENU_TYPE_DAYCARE 6 #define PARTY_MENU_TYPE_MOVE_RELEARNER 7 @@ -128,4 +128,11 @@ #define SELECTWINDOW_MAIL 2 #define SELECTWINDOW_MOVES 3 +enum +{ + CHOOSE_MONS_FOR_CABLE_CLUB_BATTLE, + CHOOSE_MONS_FOR_BATTLE_TOWER, + CHOOSE_MONS_FOR_UNION_ROOM_BATTLE, +}; + #endif // GUARD_CONSTANTS_PARTY_MENU_H diff --git a/include/constants/pokedex.h b/include/constants/pokedex.h new file mode 100644 index 000000000..7ee1b3760 --- /dev/null +++ b/include/constants/pokedex.h @@ -0,0 +1,848 @@ +#ifndef GUARD_CONSTANTS_POKEDEX_H +#define GUARD_CONSTANTS_POKEDEX_H + +// National Pokedex order +enum { + NATIONAL_DEX_NONE, + // Kanto + NATIONAL_DEX_BULBASAUR, + NATIONAL_DEX_IVYSAUR, + NATIONAL_DEX_VENUSAUR, + NATIONAL_DEX_CHARMANDER, + NATIONAL_DEX_CHARMELEON, + NATIONAL_DEX_CHARIZARD, + NATIONAL_DEX_SQUIRTLE, + NATIONAL_DEX_WARTORTLE, + NATIONAL_DEX_BLASTOISE, + NATIONAL_DEX_CATERPIE, + NATIONAL_DEX_METAPOD, + NATIONAL_DEX_BUTTERFREE, + NATIONAL_DEX_WEEDLE, + NATIONAL_DEX_KAKUNA, + NATIONAL_DEX_BEEDRILL, + NATIONAL_DEX_PIDGEY, + NATIONAL_DEX_PIDGEOTTO, + NATIONAL_DEX_PIDGEOT, + NATIONAL_DEX_RATTATA, + NATIONAL_DEX_RATICATE, + NATIONAL_DEX_SPEAROW, + NATIONAL_DEX_FEAROW, + NATIONAL_DEX_EKANS, + NATIONAL_DEX_ARBOK, + NATIONAL_DEX_PIKACHU, + NATIONAL_DEX_RAICHU, + NATIONAL_DEX_SANDSHREW, + NATIONAL_DEX_SANDSLASH, + NATIONAL_DEX_NIDORAN_F, + NATIONAL_DEX_NIDORINA, + NATIONAL_DEX_NIDOQUEEN, + NATIONAL_DEX_NIDORAN_M, + NATIONAL_DEX_NIDORINO, + NATIONAL_DEX_NIDOKING, + NATIONAL_DEX_CLEFAIRY, + NATIONAL_DEX_CLEFABLE, + NATIONAL_DEX_VULPIX, + NATIONAL_DEX_NINETALES, + NATIONAL_DEX_JIGGLYPUFF, + NATIONAL_DEX_WIGGLYTUFF, + NATIONAL_DEX_ZUBAT, + NATIONAL_DEX_GOLBAT, + NATIONAL_DEX_ODDISH, + NATIONAL_DEX_GLOOM, + NATIONAL_DEX_VILEPLUME, + NATIONAL_DEX_PARAS, + NATIONAL_DEX_PARASECT, + NATIONAL_DEX_VENONAT, + NATIONAL_DEX_VENOMOTH, + NATIONAL_DEX_DIGLETT, + NATIONAL_DEX_DUGTRIO, + NATIONAL_DEX_MEOWTH, + NATIONAL_DEX_PERSIAN, + NATIONAL_DEX_PSYDUCK, + NATIONAL_DEX_GOLDUCK, + NATIONAL_DEX_MANKEY, + NATIONAL_DEX_PRIMEAPE, + NATIONAL_DEX_GROWLITHE, + NATIONAL_DEX_ARCANINE, + NATIONAL_DEX_POLIWAG, + NATIONAL_DEX_POLIWHIRL, + NATIONAL_DEX_POLIWRATH, + NATIONAL_DEX_ABRA, + NATIONAL_DEX_KADABRA, + NATIONAL_DEX_ALAKAZAM, + NATIONAL_DEX_MACHOP, + NATIONAL_DEX_MACHOKE, + NATIONAL_DEX_MACHAMP, + NATIONAL_DEX_BELLSPROUT, + NATIONAL_DEX_WEEPINBELL, + NATIONAL_DEX_VICTREEBEL, + NATIONAL_DEX_TENTACOOL, + NATIONAL_DEX_TENTACRUEL, + NATIONAL_DEX_GEODUDE, + NATIONAL_DEX_GRAVELER, + NATIONAL_DEX_GOLEM, + NATIONAL_DEX_PONYTA, + NATIONAL_DEX_RAPIDASH, + NATIONAL_DEX_SLOWPOKE, + NATIONAL_DEX_SLOWBRO, + NATIONAL_DEX_MAGNEMITE, + NATIONAL_DEX_MAGNETON, + NATIONAL_DEX_FARFETCHD, + NATIONAL_DEX_DODUO, + NATIONAL_DEX_DODRIO, + NATIONAL_DEX_SEEL, + NATIONAL_DEX_DEWGONG, + NATIONAL_DEX_GRIMER, + NATIONAL_DEX_MUK, + NATIONAL_DEX_SHELLDER, + NATIONAL_DEX_CLOYSTER, + NATIONAL_DEX_GASTLY, + NATIONAL_DEX_HAUNTER, + NATIONAL_DEX_GENGAR, + NATIONAL_DEX_ONIX, + NATIONAL_DEX_DROWZEE, + NATIONAL_DEX_HYPNO, + NATIONAL_DEX_KRABBY, + NATIONAL_DEX_KINGLER, + NATIONAL_DEX_VOLTORB, + NATIONAL_DEX_ELECTRODE, + NATIONAL_DEX_EXEGGCUTE, + NATIONAL_DEX_EXEGGUTOR, + NATIONAL_DEX_CUBONE, + NATIONAL_DEX_MAROWAK, + NATIONAL_DEX_HITMONLEE, + NATIONAL_DEX_HITMONCHAN, + NATIONAL_DEX_LICKITUNG, + NATIONAL_DEX_KOFFING, + NATIONAL_DEX_WEEZING, + NATIONAL_DEX_RHYHORN, + NATIONAL_DEX_RHYDON, + NATIONAL_DEX_CHANSEY, + NATIONAL_DEX_TANGELA, + NATIONAL_DEX_KANGASKHAN, + NATIONAL_DEX_HORSEA, + NATIONAL_DEX_SEADRA, + NATIONAL_DEX_GOLDEEN, + NATIONAL_DEX_SEAKING, + NATIONAL_DEX_STARYU, + NATIONAL_DEX_STARMIE, + NATIONAL_DEX_MR_MIME, + NATIONAL_DEX_SCYTHER, + NATIONAL_DEX_JYNX, + NATIONAL_DEX_ELECTABUZZ, + NATIONAL_DEX_MAGMAR, + NATIONAL_DEX_PINSIR, + NATIONAL_DEX_TAUROS, + NATIONAL_DEX_MAGIKARP, + NATIONAL_DEX_GYARADOS, + NATIONAL_DEX_LAPRAS, + NATIONAL_DEX_DITTO, + NATIONAL_DEX_EEVEE, + NATIONAL_DEX_VAPOREON, + NATIONAL_DEX_JOLTEON, + NATIONAL_DEX_FLAREON, + NATIONAL_DEX_PORYGON, + NATIONAL_DEX_OMANYTE, + NATIONAL_DEX_OMASTAR, + NATIONAL_DEX_KABUTO, + NATIONAL_DEX_KABUTOPS, + NATIONAL_DEX_AERODACTYL, + NATIONAL_DEX_SNORLAX, + NATIONAL_DEX_ARTICUNO, + NATIONAL_DEX_ZAPDOS, + NATIONAL_DEX_MOLTRES, + NATIONAL_DEX_DRATINI, + NATIONAL_DEX_DRAGONAIR, + NATIONAL_DEX_DRAGONITE, + NATIONAL_DEX_MEWTWO, + NATIONAL_DEX_MEW, + // Johto + NATIONAL_DEX_CHIKORITA, + NATIONAL_DEX_BAYLEEF, + NATIONAL_DEX_MEGANIUM, + NATIONAL_DEX_CYNDAQUIL, + NATIONAL_DEX_QUILAVA, + NATIONAL_DEX_TYPHLOSION, + NATIONAL_DEX_TOTODILE, + NATIONAL_DEX_CROCONAW, + NATIONAL_DEX_FERALIGATR, + NATIONAL_DEX_SENTRET, + NATIONAL_DEX_FURRET, + NATIONAL_DEX_HOOTHOOT, + NATIONAL_DEX_NOCTOWL, + NATIONAL_DEX_LEDYBA, + NATIONAL_DEX_LEDIAN, + NATIONAL_DEX_SPINARAK, + NATIONAL_DEX_ARIADOS, + NATIONAL_DEX_CROBAT, + NATIONAL_DEX_CHINCHOU, + NATIONAL_DEX_LANTURN, + NATIONAL_DEX_PICHU, + NATIONAL_DEX_CLEFFA, + NATIONAL_DEX_IGGLYBUFF, + NATIONAL_DEX_TOGEPI, + NATIONAL_DEX_TOGETIC, + NATIONAL_DEX_NATU, + NATIONAL_DEX_XATU, + NATIONAL_DEX_MAREEP, + NATIONAL_DEX_FLAAFFY, + NATIONAL_DEX_AMPHAROS, + NATIONAL_DEX_BELLOSSOM, + NATIONAL_DEX_MARILL, + NATIONAL_DEX_AZUMARILL, + NATIONAL_DEX_SUDOWOODO, + NATIONAL_DEX_POLITOED, + NATIONAL_DEX_HOPPIP, + NATIONAL_DEX_SKIPLOOM, + NATIONAL_DEX_JUMPLUFF, + NATIONAL_DEX_AIPOM, + NATIONAL_DEX_SUNKERN, + NATIONAL_DEX_SUNFLORA, + NATIONAL_DEX_YANMA, + NATIONAL_DEX_WOOPER, + NATIONAL_DEX_QUAGSIRE, + NATIONAL_DEX_ESPEON, + NATIONAL_DEX_UMBREON, + NATIONAL_DEX_MURKROW, + NATIONAL_DEX_SLOWKING, + NATIONAL_DEX_MISDREAVUS, + NATIONAL_DEX_UNOWN, + NATIONAL_DEX_WOBBUFFET, + NATIONAL_DEX_GIRAFARIG, + NATIONAL_DEX_PINECO, + NATIONAL_DEX_FORRETRESS, + NATIONAL_DEX_DUNSPARCE, + NATIONAL_DEX_GLIGAR, + NATIONAL_DEX_STEELIX, + NATIONAL_DEX_SNUBBULL, + NATIONAL_DEX_GRANBULL, + NATIONAL_DEX_QWILFISH, + NATIONAL_DEX_SCIZOR, + NATIONAL_DEX_SHUCKLE, + NATIONAL_DEX_HERACROSS, + NATIONAL_DEX_SNEASEL, + NATIONAL_DEX_TEDDIURSA, + NATIONAL_DEX_URSARING, + NATIONAL_DEX_SLUGMA, + NATIONAL_DEX_MAGCARGO, + NATIONAL_DEX_SWINUB, + NATIONAL_DEX_PILOSWINE, + NATIONAL_DEX_CORSOLA, + NATIONAL_DEX_REMORAID, + NATIONAL_DEX_OCTILLERY, + NATIONAL_DEX_DELIBIRD, + NATIONAL_DEX_MANTINE, + NATIONAL_DEX_SKARMORY, + NATIONAL_DEX_HOUNDOUR, + NATIONAL_DEX_HOUNDOOM, + NATIONAL_DEX_KINGDRA, + NATIONAL_DEX_PHANPY, + NATIONAL_DEX_DONPHAN, + NATIONAL_DEX_PORYGON2, + NATIONAL_DEX_STANTLER, + NATIONAL_DEX_SMEARGLE, + NATIONAL_DEX_TYROGUE, + NATIONAL_DEX_HITMONTOP, + NATIONAL_DEX_SMOOCHUM, + NATIONAL_DEX_ELEKID, + NATIONAL_DEX_MAGBY, + NATIONAL_DEX_MILTANK, + NATIONAL_DEX_BLISSEY, + NATIONAL_DEX_RAIKOU, + NATIONAL_DEX_ENTEI, + NATIONAL_DEX_SUICUNE, + NATIONAL_DEX_LARVITAR, + NATIONAL_DEX_PUPITAR, + NATIONAL_DEX_TYRANITAR, + NATIONAL_DEX_LUGIA, + NATIONAL_DEX_HO_OH, + NATIONAL_DEX_CELEBI, + // Hoenn + NATIONAL_DEX_TREECKO, + NATIONAL_DEX_GROVYLE, + NATIONAL_DEX_SCEPTILE, + NATIONAL_DEX_TORCHIC, + NATIONAL_DEX_COMBUSKEN, + NATIONAL_DEX_BLAZIKEN, + NATIONAL_DEX_MUDKIP, + NATIONAL_DEX_MARSHTOMP, + NATIONAL_DEX_SWAMPERT, + NATIONAL_DEX_POOCHYENA, + NATIONAL_DEX_MIGHTYENA, + NATIONAL_DEX_ZIGZAGOON, + NATIONAL_DEX_LINOONE, + NATIONAL_DEX_WURMPLE, + NATIONAL_DEX_SILCOON, + NATIONAL_DEX_BEAUTIFLY, + NATIONAL_DEX_CASCOON, + NATIONAL_DEX_DUSTOX, + NATIONAL_DEX_LOTAD, + NATIONAL_DEX_LOMBRE, + NATIONAL_DEX_LUDICOLO, + NATIONAL_DEX_SEEDOT, + NATIONAL_DEX_NUZLEAF, + NATIONAL_DEX_SHIFTRY, + NATIONAL_DEX_TAILLOW, + NATIONAL_DEX_SWELLOW, + NATIONAL_DEX_WINGULL, + NATIONAL_DEX_PELIPPER, + NATIONAL_DEX_RALTS, + NATIONAL_DEX_KIRLIA, + NATIONAL_DEX_GARDEVOIR, + NATIONAL_DEX_SURSKIT, + NATIONAL_DEX_MASQUERAIN, + NATIONAL_DEX_SHROOMISH, + NATIONAL_DEX_BRELOOM, + NATIONAL_DEX_SLAKOTH, + NATIONAL_DEX_VIGOROTH, + NATIONAL_DEX_SLAKING, + NATIONAL_DEX_NINCADA, + NATIONAL_DEX_NINJASK, + NATIONAL_DEX_SHEDINJA, + NATIONAL_DEX_WHISMUR, + NATIONAL_DEX_LOUDRED, + NATIONAL_DEX_EXPLOUD, + NATIONAL_DEX_MAKUHITA, + NATIONAL_DEX_HARIYAMA, + NATIONAL_DEX_AZURILL, + NATIONAL_DEX_NOSEPASS, + NATIONAL_DEX_SKITTY, + NATIONAL_DEX_DELCATTY, + NATIONAL_DEX_SABLEYE, + NATIONAL_DEX_MAWILE, + NATIONAL_DEX_ARON, + NATIONAL_DEX_LAIRON, + NATIONAL_DEX_AGGRON, + NATIONAL_DEX_MEDITITE, + NATIONAL_DEX_MEDICHAM, + NATIONAL_DEX_ELECTRIKE, + NATIONAL_DEX_MANECTRIC, + NATIONAL_DEX_PLUSLE, + NATIONAL_DEX_MINUN, + NATIONAL_DEX_VOLBEAT, + NATIONAL_DEX_ILLUMISE, + NATIONAL_DEX_ROSELIA, + NATIONAL_DEX_GULPIN, + NATIONAL_DEX_SWALOT, + NATIONAL_DEX_CARVANHA, + NATIONAL_DEX_SHARPEDO, + NATIONAL_DEX_WAILMER, + NATIONAL_DEX_WAILORD, + NATIONAL_DEX_NUMEL, + NATIONAL_DEX_CAMERUPT, + NATIONAL_DEX_TORKOAL, + NATIONAL_DEX_SPOINK, + NATIONAL_DEX_GRUMPIG, + NATIONAL_DEX_SPINDA, + NATIONAL_DEX_TRAPINCH, + NATIONAL_DEX_VIBRAVA, + NATIONAL_DEX_FLYGON, + NATIONAL_DEX_CACNEA, + NATIONAL_DEX_CACTURNE, + NATIONAL_DEX_SWABLU, + NATIONAL_DEX_ALTARIA, + NATIONAL_DEX_ZANGOOSE, + NATIONAL_DEX_SEVIPER, + NATIONAL_DEX_LUNATONE, + NATIONAL_DEX_SOLROCK, + NATIONAL_DEX_BARBOACH, + NATIONAL_DEX_WHISCASH, + NATIONAL_DEX_CORPHISH, + NATIONAL_DEX_CRAWDAUNT, + NATIONAL_DEX_BALTOY, + NATIONAL_DEX_CLAYDOL, + NATIONAL_DEX_LILEEP, + NATIONAL_DEX_CRADILY, + NATIONAL_DEX_ANORITH, + NATIONAL_DEX_ARMALDO, + NATIONAL_DEX_FEEBAS, + NATIONAL_DEX_MILOTIC, + NATIONAL_DEX_CASTFORM, + NATIONAL_DEX_KECLEON, + NATIONAL_DEX_SHUPPET, + NATIONAL_DEX_BANETTE, + NATIONAL_DEX_DUSKULL, + NATIONAL_DEX_DUSCLOPS, + NATIONAL_DEX_TROPIUS, + NATIONAL_DEX_CHIMECHO, + NATIONAL_DEX_ABSOL, + NATIONAL_DEX_WYNAUT, + NATIONAL_DEX_SNORUNT, + NATIONAL_DEX_GLALIE, + NATIONAL_DEX_SPHEAL, + NATIONAL_DEX_SEALEO, + NATIONAL_DEX_WALREIN, + NATIONAL_DEX_CLAMPERL, + NATIONAL_DEX_HUNTAIL, + NATIONAL_DEX_GOREBYSS, + NATIONAL_DEX_RELICANTH, + NATIONAL_DEX_LUVDISC, + NATIONAL_DEX_BAGON, + NATIONAL_DEX_SHELGON, + NATIONAL_DEX_SALAMENCE, + NATIONAL_DEX_BELDUM, + NATIONAL_DEX_METANG, + NATIONAL_DEX_METAGROSS, + NATIONAL_DEX_REGIROCK, + NATIONAL_DEX_REGICE, + NATIONAL_DEX_REGISTEEL, + NATIONAL_DEX_LATIAS, + NATIONAL_DEX_LATIOS, + NATIONAL_DEX_KYOGRE, + NATIONAL_DEX_GROUDON, + NATIONAL_DEX_RAYQUAZA, + NATIONAL_DEX_JIRACHI, + NATIONAL_DEX_DEOXYS, + // Old Unown + NATIONAL_DEX_OLD_UNOWN_B, + NATIONAL_DEX_OLD_UNOWN_C, + NATIONAL_DEX_OLD_UNOWN_D, + NATIONAL_DEX_OLD_UNOWN_E, + NATIONAL_DEX_OLD_UNOWN_F, + NATIONAL_DEX_OLD_UNOWN_G, + NATIONAL_DEX_OLD_UNOWN_H, + NATIONAL_DEX_OLD_UNOWN_I, + NATIONAL_DEX_OLD_UNOWN_J, + NATIONAL_DEX_OLD_UNOWN_K, + NATIONAL_DEX_OLD_UNOWN_L, + NATIONAL_DEX_OLD_UNOWN_M, + NATIONAL_DEX_OLD_UNOWN_N, + NATIONAL_DEX_OLD_UNOWN_O, + NATIONAL_DEX_OLD_UNOWN_P, + NATIONAL_DEX_OLD_UNOWN_Q, + NATIONAL_DEX_OLD_UNOWN_R, + NATIONAL_DEX_OLD_UNOWN_S, + NATIONAL_DEX_OLD_UNOWN_T, + NATIONAL_DEX_OLD_UNOWN_U, + NATIONAL_DEX_OLD_UNOWN_V, + NATIONAL_DEX_OLD_UNOWN_W, + NATIONAL_DEX_OLD_UNOWN_X, + NATIONAL_DEX_OLD_UNOWN_Y, + NATIONAL_DEX_OLD_UNOWN_Z, +}; + +#define KANTO_DEX_COUNT NATIONAL_DEX_MEW +#define JOHTO_DEX_COUNT NATIONAL_DEX_CELEBI +#define NATIONAL_DEX_COUNT NATIONAL_DEX_DEOXYS + +// Hoenn Pokedex order +enum { + HOENN_DEX_NONE, + HOENN_DEX_TREECKO, + HOENN_DEX_GROVYLE, + HOENN_DEX_SCEPTILE, + HOENN_DEX_TORCHIC, + HOENN_DEX_COMBUSKEN, + HOENN_DEX_BLAZIKEN, + HOENN_DEX_MUDKIP, + HOENN_DEX_MARSHTOMP, + HOENN_DEX_SWAMPERT, + HOENN_DEX_POOCHYENA, + HOENN_DEX_MIGHTYENA, + HOENN_DEX_ZIGZAGOON, + HOENN_DEX_LINOONE, + HOENN_DEX_WURMPLE, + HOENN_DEX_SILCOON, + HOENN_DEX_BEAUTIFLY, + HOENN_DEX_CASCOON, + HOENN_DEX_DUSTOX, + HOENN_DEX_LOTAD, + HOENN_DEX_LOMBRE, + HOENN_DEX_LUDICOLO, + HOENN_DEX_SEEDOT, + HOENN_DEX_NUZLEAF, + HOENN_DEX_SHIFTRY, + HOENN_DEX_TAILLOW, + HOENN_DEX_SWELLOW, + HOENN_DEX_WINGULL, + HOENN_DEX_PELIPPER, + HOENN_DEX_RALTS, + HOENN_DEX_KIRLIA, + HOENN_DEX_GARDEVOIR, + HOENN_DEX_SURSKIT, + HOENN_DEX_MASQUERAIN, + HOENN_DEX_SHROOMISH, + HOENN_DEX_BRELOOM, + HOENN_DEX_SLAKOTH, + HOENN_DEX_VIGOROTH, + HOENN_DEX_SLAKING, + HOENN_DEX_ABRA, + HOENN_DEX_KADABRA, + HOENN_DEX_ALAKAZAM, + HOENN_DEX_NINCADA, + HOENN_DEX_NINJASK, + HOENN_DEX_SHEDINJA, + HOENN_DEX_WHISMUR, + HOENN_DEX_LOUDRED, + HOENN_DEX_EXPLOUD, + HOENN_DEX_MAKUHITA, + HOENN_DEX_HARIYAMA, + HOENN_DEX_GOLDEEN, + HOENN_DEX_SEAKING, + HOENN_DEX_MAGIKARP, + HOENN_DEX_GYARADOS, + HOENN_DEX_AZURILL, + HOENN_DEX_MARILL, + HOENN_DEX_AZUMARILL, + HOENN_DEX_GEODUDE, + HOENN_DEX_GRAVELER, + HOENN_DEX_GOLEM, + HOENN_DEX_NOSEPASS, + HOENN_DEX_SKITTY, + HOENN_DEX_DELCATTY, + HOENN_DEX_ZUBAT, + HOENN_DEX_GOLBAT, + HOENN_DEX_CROBAT, + HOENN_DEX_TENTACOOL, + HOENN_DEX_TENTACRUEL, + HOENN_DEX_SABLEYE, + HOENN_DEX_MAWILE, + HOENN_DEX_ARON, + HOENN_DEX_LAIRON, + HOENN_DEX_AGGRON, + HOENN_DEX_MACHOP, + HOENN_DEX_MACHOKE, + HOENN_DEX_MACHAMP, + HOENN_DEX_MEDITITE, + HOENN_DEX_MEDICHAM, + HOENN_DEX_ELECTRIKE, + HOENN_DEX_MANECTRIC, + HOENN_DEX_PLUSLE, + HOENN_DEX_MINUN, + HOENN_DEX_MAGNEMITE, + HOENN_DEX_MAGNETON, + HOENN_DEX_VOLTORB, + HOENN_DEX_ELECTRODE, + HOENN_DEX_VOLBEAT, + HOENN_DEX_ILLUMISE, + HOENN_DEX_ODDISH, + HOENN_DEX_GLOOM, + HOENN_DEX_VILEPLUME, + HOENN_DEX_BELLOSSOM, + HOENN_DEX_DODUO, + HOENN_DEX_DODRIO, + HOENN_DEX_ROSELIA, + HOENN_DEX_GULPIN, + HOENN_DEX_SWALOT, + HOENN_DEX_CARVANHA, + HOENN_DEX_SHARPEDO, + HOENN_DEX_WAILMER, + HOENN_DEX_WAILORD, + HOENN_DEX_NUMEL, + HOENN_DEX_CAMERUPT, + HOENN_DEX_SLUGMA, + HOENN_DEX_MAGCARGO, + HOENN_DEX_TORKOAL, + HOENN_DEX_GRIMER, + HOENN_DEX_MUK, + HOENN_DEX_KOFFING, + HOENN_DEX_WEEZING, + HOENN_DEX_SPOINK, + HOENN_DEX_GRUMPIG, + HOENN_DEX_SANDSHREW, + HOENN_DEX_SANDSLASH, + HOENN_DEX_SPINDA, + HOENN_DEX_SKARMORY, + HOENN_DEX_TRAPINCH, + HOENN_DEX_VIBRAVA, + HOENN_DEX_FLYGON, + HOENN_DEX_CACNEA, + HOENN_DEX_CACTURNE, + HOENN_DEX_SWABLU, + HOENN_DEX_ALTARIA, + HOENN_DEX_ZANGOOSE, + HOENN_DEX_SEVIPER, + HOENN_DEX_LUNATONE, + HOENN_DEX_SOLROCK, + HOENN_DEX_BARBOACH, + HOENN_DEX_WHISCASH, + HOENN_DEX_CORPHISH, + HOENN_DEX_CRAWDAUNT, + HOENN_DEX_BALTOY, + HOENN_DEX_CLAYDOL, + HOENN_DEX_LILEEP, + HOENN_DEX_CRADILY, + HOENN_DEX_ANORITH, + HOENN_DEX_ARMALDO, + HOENN_DEX_IGGLYBUFF, + HOENN_DEX_JIGGLYPUFF, + HOENN_DEX_WIGGLYTUFF, + HOENN_DEX_FEEBAS, + HOENN_DEX_MILOTIC, + HOENN_DEX_CASTFORM, + HOENN_DEX_STARYU, + HOENN_DEX_STARMIE, + HOENN_DEX_KECLEON, + HOENN_DEX_SHUPPET, + HOENN_DEX_BANETTE, + HOENN_DEX_DUSKULL, + HOENN_DEX_DUSCLOPS, + HOENN_DEX_TROPIUS, + HOENN_DEX_CHIMECHO, + HOENN_DEX_ABSOL, + HOENN_DEX_VULPIX, + HOENN_DEX_NINETALES, + HOENN_DEX_PICHU, + HOENN_DEX_PIKACHU, + HOENN_DEX_RAICHU, + HOENN_DEX_PSYDUCK, + HOENN_DEX_GOLDUCK, + HOENN_DEX_WYNAUT, + HOENN_DEX_WOBBUFFET, + HOENN_DEX_NATU, + HOENN_DEX_XATU, + HOENN_DEX_GIRAFARIG, + HOENN_DEX_PHANPY, + HOENN_DEX_DONPHAN, + HOENN_DEX_PINSIR, + HOENN_DEX_HERACROSS, + HOENN_DEX_RHYHORN, + HOENN_DEX_RHYDON, + HOENN_DEX_SNORUNT, + HOENN_DEX_GLALIE, + HOENN_DEX_SPHEAL, + HOENN_DEX_SEALEO, + HOENN_DEX_WALREIN, + HOENN_DEX_CLAMPERL, + HOENN_DEX_HUNTAIL, + HOENN_DEX_GOREBYSS, + HOENN_DEX_RELICANTH, + HOENN_DEX_CORSOLA, + HOENN_DEX_CHINCHOU, + HOENN_DEX_LANTURN, + HOENN_DEX_LUVDISC, + HOENN_DEX_HORSEA, + HOENN_DEX_SEADRA, + HOENN_DEX_KINGDRA, + HOENN_DEX_BAGON, + HOENN_DEX_SHELGON, + HOENN_DEX_SALAMENCE, + HOENN_DEX_BELDUM, + HOENN_DEX_METANG, + HOENN_DEX_METAGROSS, + HOENN_DEX_REGIROCK, + HOENN_DEX_REGICE, + HOENN_DEX_REGISTEEL, + HOENN_DEX_LATIAS, + HOENN_DEX_LATIOS, + HOENN_DEX_KYOGRE, + HOENN_DEX_GROUDON, + HOENN_DEX_RAYQUAZA, + HOENN_DEX_JIRACHI, + HOENN_DEX_DEOXYS, + // End of Hoenn Dex (see HOENN_DEX_COUNT) + // Here below have values but are excluded from the Pokedex + HOENN_DEX_BULBASAUR, + HOENN_DEX_IVYSAUR, + HOENN_DEX_VENUSAUR, + HOENN_DEX_CHARMANDER, + HOENN_DEX_CHARMELEON, + HOENN_DEX_CHARIZARD, + HOENN_DEX_SQUIRTLE, + HOENN_DEX_WARTORTLE, + HOENN_DEX_BLASTOISE, + HOENN_DEX_CATERPIE, + HOENN_DEX_METAPOD, + HOENN_DEX_BUTTERFREE, + HOENN_DEX_WEEDLE, + HOENN_DEX_KAKUNA, + HOENN_DEX_BEEDRILL, + HOENN_DEX_PIDGEY, + HOENN_DEX_PIDGEOTTO, + HOENN_DEX_PIDGEOT, + HOENN_DEX_RATTATA, + HOENN_DEX_RATICATE, + HOENN_DEX_SPEAROW, + HOENN_DEX_FEAROW, + HOENN_DEX_EKANS, + HOENN_DEX_ARBOK, + HOENN_DEX_NIDORAN_F, + HOENN_DEX_NIDORINA, + HOENN_DEX_NIDOQUEEN, + HOENN_DEX_NIDORAN_M, + HOENN_DEX_NIDORINO, + HOENN_DEX_NIDOKING, + HOENN_DEX_CLEFAIRY, + HOENN_DEX_CLEFABLE, + HOENN_DEX_PARAS, + HOENN_DEX_PARASECT, + HOENN_DEX_VENONAT, + HOENN_DEX_VENOMOTH, + HOENN_DEX_DIGLETT, + HOENN_DEX_DUGTRIO, + HOENN_DEX_MEOWTH, + HOENN_DEX_PERSIAN, + HOENN_DEX_MANKEY, + HOENN_DEX_PRIMEAPE, + HOENN_DEX_GROWLITHE, + HOENN_DEX_ARCANINE, + HOENN_DEX_POLIWAG, + HOENN_DEX_POLIWHIRL, + HOENN_DEX_POLIWRATH, + HOENN_DEX_BELLSPROUT, + HOENN_DEX_WEEPINBELL, + HOENN_DEX_VICTREEBEL, + HOENN_DEX_PONYTA, + HOENN_DEX_RAPIDASH, + HOENN_DEX_SLOWPOKE, + HOENN_DEX_SLOWBRO, + HOENN_DEX_FARFETCHD, + HOENN_DEX_SEEL, + HOENN_DEX_DEWGONG, + HOENN_DEX_SHELLDER, + HOENN_DEX_CLOYSTER, + HOENN_DEX_GASTLY, + HOENN_DEX_HAUNTER, + HOENN_DEX_GENGAR, + HOENN_DEX_ONIX, + HOENN_DEX_DROWZEE, + HOENN_DEX_HYPNO, + HOENN_DEX_KRABBY, + HOENN_DEX_KINGLER, + HOENN_DEX_EXEGGCUTE, + HOENN_DEX_EXEGGUTOR, + HOENN_DEX_CUBONE, + HOENN_DEX_MAROWAK, + HOENN_DEX_HITMONLEE, + HOENN_DEX_HITMONCHAN, + HOENN_DEX_LICKITUNG, + HOENN_DEX_CHANSEY, + HOENN_DEX_TANGELA, + HOENN_DEX_KANGASKHAN, + HOENN_DEX_MR_MIME, + HOENN_DEX_SCYTHER, + HOENN_DEX_JYNX, + HOENN_DEX_ELECTABUZZ, + HOENN_DEX_MAGMAR, + HOENN_DEX_TAUROS, + HOENN_DEX_LAPRAS, + HOENN_DEX_DITTO, + HOENN_DEX_EEVEE, + HOENN_DEX_VAPOREON, + HOENN_DEX_JOLTEON, + HOENN_DEX_FLAREON, + HOENN_DEX_PORYGON, + HOENN_DEX_OMANYTE, + HOENN_DEX_OMASTAR, + HOENN_DEX_KABUTO, + HOENN_DEX_KABUTOPS, + HOENN_DEX_AERODACTYL, + HOENN_DEX_SNORLAX, + HOENN_DEX_ARTICUNO, + HOENN_DEX_ZAPDOS, + HOENN_DEX_MOLTRES, + HOENN_DEX_DRATINI, + HOENN_DEX_DRAGONAIR, + HOENN_DEX_DRAGONITE, + HOENN_DEX_MEWTWO, + HOENN_DEX_MEW, + HOENN_DEX_CHIKORITA, + HOENN_DEX_BAYLEEF, + HOENN_DEX_MEGANIUM, + HOENN_DEX_CYNDAQUIL, + HOENN_DEX_QUILAVA, + HOENN_DEX_TYPHLOSION, + HOENN_DEX_TOTODILE, + HOENN_DEX_CROCONAW, + HOENN_DEX_FERALIGATR, + HOENN_DEX_SENTRET, + HOENN_DEX_FURRET, + HOENN_DEX_HOOTHOOT, + HOENN_DEX_NOCTOWL, + HOENN_DEX_LEDYBA, + HOENN_DEX_LEDIAN, + HOENN_DEX_SPINARAK, + HOENN_DEX_ARIADOS, + HOENN_DEX_CLEFFA, + HOENN_DEX_TOGEPI, + HOENN_DEX_TOGETIC, + HOENN_DEX_MAREEP, + HOENN_DEX_FLAAFFY, + HOENN_DEX_AMPHAROS, + HOENN_DEX_SUDOWOODO, + HOENN_DEX_POLITOED, + HOENN_DEX_HOPPIP, + HOENN_DEX_SKIPLOOM, + HOENN_DEX_JUMPLUFF, + HOENN_DEX_AIPOM, + HOENN_DEX_SUNKERN, + HOENN_DEX_SUNFLORA, + HOENN_DEX_YANMA, + HOENN_DEX_WOOPER, + HOENN_DEX_QUAGSIRE, + HOENN_DEX_ESPEON, + HOENN_DEX_UMBREON, + HOENN_DEX_MURKROW, + HOENN_DEX_SLOWKING, + HOENN_DEX_MISDREAVUS, + HOENN_DEX_UNOWN, + HOENN_DEX_PINECO, + HOENN_DEX_FORRETRESS, + HOENN_DEX_DUNSPARCE, + HOENN_DEX_GLIGAR, + HOENN_DEX_STEELIX, + HOENN_DEX_SNUBBULL, + HOENN_DEX_GRANBULL, + HOENN_DEX_QWILFISH, + HOENN_DEX_SCIZOR, + HOENN_DEX_SHUCKLE, + HOENN_DEX_SNEASEL, + HOENN_DEX_TEDDIURSA, + HOENN_DEX_URSARING, + HOENN_DEX_SWINUB, + HOENN_DEX_PILOSWINE, + HOENN_DEX_REMORAID, + HOENN_DEX_OCTILLERY, + HOENN_DEX_DELIBIRD, + HOENN_DEX_MANTINE, + HOENN_DEX_HOUNDOUR, + HOENN_DEX_HOUNDOOM, + HOENN_DEX_PORYGON2, + HOENN_DEX_STANTLER, + HOENN_DEX_SMEARGLE, + HOENN_DEX_TYROGUE, + HOENN_DEX_HITMONTOP, + HOENN_DEX_SMOOCHUM, + HOENN_DEX_ELEKID, + HOENN_DEX_MAGBY, + HOENN_DEX_MILTANK, + HOENN_DEX_BLISSEY, + HOENN_DEX_RAIKOU, + HOENN_DEX_ENTEI, + HOENN_DEX_SUICUNE, + HOENN_DEX_LARVITAR, + HOENN_DEX_PUPITAR, + HOENN_DEX_TYRANITAR, + HOENN_DEX_LUGIA, + HOENN_DEX_HO_OH, + HOENN_DEX_CELEBI, + HOENN_DEX_OLD_UNOWN_B, + HOENN_DEX_OLD_UNOWN_C, + HOENN_DEX_OLD_UNOWN_D, + HOENN_DEX_OLD_UNOWN_E, + HOENN_DEX_OLD_UNOWN_F, + HOENN_DEX_OLD_UNOWN_G, + HOENN_DEX_OLD_UNOWN_H, + HOENN_DEX_OLD_UNOWN_I, + HOENN_DEX_OLD_UNOWN_J, + HOENN_DEX_OLD_UNOWN_K, + HOENN_DEX_OLD_UNOWN_L, + HOENN_DEX_OLD_UNOWN_M, + HOENN_DEX_OLD_UNOWN_N, + HOENN_DEX_OLD_UNOWN_O, + HOENN_DEX_OLD_UNOWN_P, + HOENN_DEX_OLD_UNOWN_Q, + HOENN_DEX_OLD_UNOWN_R, + HOENN_DEX_OLD_UNOWN_S, + HOENN_DEX_OLD_UNOWN_T, + HOENN_DEX_OLD_UNOWN_U, + HOENN_DEX_OLD_UNOWN_V, + HOENN_DEX_OLD_UNOWN_W, + HOENN_DEX_OLD_UNOWN_X, + HOENN_DEX_OLD_UNOWN_Y, + HOENN_DEX_OLD_UNOWN_Z, +}; + +#define HOENN_DEX_COUNT HOENN_DEX_DEOXYS + +#endif // GUARD_CONSTANTS_POKEDEX_H diff --git a/include/constants/pokemon.h b/include/constants/pokemon.h index 8e59604d7..83d7ecb2d 100644 --- a/include/constants/pokemon.h +++ b/include/constants/pokemon.h @@ -93,25 +93,26 @@ #define MON_DATA_SPDEF2 88 // Pokemon types -#define TYPE_NORMAL 0x00 -#define TYPE_FIGHTING 0x01 -#define TYPE_FLYING 0x02 -#define TYPE_POISON 0x03 -#define TYPE_GROUND 0x04 -#define TYPE_ROCK 0x05 -#define TYPE_BUG 0x06 -#define TYPE_GHOST 0x07 -#define TYPE_STEEL 0x08 -#define TYPE_MYSTERY 0x09 -#define TYPE_FIRE 0x0a -#define TYPE_WATER 0x0b -#define TYPE_GRASS 0x0c -#define TYPE_ELECTRIC 0x0d -#define TYPE_PSYCHIC 0x0e -#define TYPE_ICE 0x0f -#define TYPE_DRAGON 0x10 -#define TYPE_DARK 0x11 -#define NUMBER_OF_MON_TYPES 0x12 +#define TYPE_NONE 255 +#define TYPE_NORMAL 0 +#define TYPE_FIGHTING 1 +#define TYPE_FLYING 2 +#define TYPE_POISON 3 +#define TYPE_GROUND 4 +#define TYPE_ROCK 5 +#define TYPE_BUG 6 +#define TYPE_GHOST 7 +#define TYPE_STEEL 8 +#define TYPE_MYSTERY 9 +#define TYPE_FIRE 10 +#define TYPE_WATER 11 +#define TYPE_GRASS 12 +#define TYPE_ELECTRIC 13 +#define TYPE_PSYCHIC 14 +#define TYPE_ICE 15 +#define TYPE_DRAGON 16 +#define TYPE_DARK 17 +#define NUMBER_OF_MON_TYPES 18 // Pokemon egg groups #define EGG_GROUP_NONE 0 diff --git a/include/constants/rgb.h b/include/constants/rgb.h new file mode 100644 index 000000000..be3049d3c --- /dev/null +++ b/include/constants/rgb.h @@ -0,0 +1,25 @@ +#ifndef GUARD_RGB_H +#define GUARD_RGB_H + +#define GET_R(color) ((color) & 0x1F) +#define GET_G(color) (((color) >> 5) & 0x1F) +#define GET_B(color) (((color) >> 10) & 0x1F) + +#define RGB(r, g, b) ((r) | ((g) << 5) | ((b) << 10)) +#define RGB2(r, g, b) (((b) << 10) | ((g) << 5) | (r)) +#define _RGB(r, g, b) ((((b) & 0x1F) << 10) + (((g) & 0x1F) << 5) + ((r) & 0x1F)) + +#define RGB_ALPHA (1 << 15) +#define IS_ALPHA(color) ((color) & RGB_ALPHA) + +#define RGB_BLACK RGB(0, 0, 0) +#define RGB_WHITE RGB(31, 31, 31) +#define RGB_RED RGB(31, 0, 0) +#define RGB_GREEN RGB(0, 31, 0) +#define RGB_BLUE RGB(0, 0, 31) +#define RGB_YELLOW RGB(31, 31, 0) +#define RGB_MAGENTA RGB(31, 0, 31) +#define RGB_CYAN RGB(0, 31, 31) +#define RGB_WHITEALPHA (RGB_WHITE | RGB_ALPHA) + +#endif // GUARD_RGB_H diff --git a/include/constants/species.h b/include/constants/species.h index 89da836f7..7446cc138 100644 --- a/include/constants/species.h +++ b/include/constants/species.h @@ -153,6 +153,9 @@ #define SPECIES_DRAGONITE 149 #define SPECIES_MEWTWO 150 #define SPECIES_MEW 151 + +#define KANTO_SPECIES_END SPECIES_MEW + #define SPECIES_CHIKORITA 152 #define SPECIES_BAYLEEF 153 #define SPECIES_MEGANIUM 154 @@ -417,870 +420,34 @@ #define SPECIES_CHIMECHO 411 #define SPECIES_EGG 412 -#define SPECIES_UNOWN_B 413 -#define SPECIES_UNOWN_C 414 -#define SPECIES_UNOWN_D 415 -#define SPECIES_UNOWN_E 416 -#define SPECIES_UNOWN_F 417 -#define SPECIES_UNOWN_G 418 -#define SPECIES_UNOWN_H 419 -#define SPECIES_UNOWN_I 420 -#define SPECIES_UNOWN_J 421 -#define SPECIES_UNOWN_K 422 -#define SPECIES_UNOWN_L 423 -#define SPECIES_UNOWN_M 424 -#define SPECIES_UNOWN_N 425 -#define SPECIES_UNOWN_O 426 -#define SPECIES_UNOWN_P 427 -#define SPECIES_UNOWN_Q 428 -#define SPECIES_UNOWN_R 429 -#define SPECIES_UNOWN_S 430 -#define SPECIES_UNOWN_T 431 -#define SPECIES_UNOWN_U 432 -#define SPECIES_UNOWN_V 433 -#define SPECIES_UNOWN_W 434 -#define SPECIES_UNOWN_X 435 -#define SPECIES_UNOWN_Y 436 -#define SPECIES_UNOWN_Z 437 -#define SPECIES_UNOWN_EMARK 438 -#define SPECIES_UNOWN_QMARK 439 - -#define SPECIES_OLD_UNOWN_EMARK 412 -#define SPECIES_OLD_UNOWN_QMARK 413 - #define NUM_SPECIES SPECIES_EGG -// National Dex Index Defines - -#define NATIONAL_DEX_NONE 0 -#define NATIONAL_DEX_BULBASAUR 1 -#define NATIONAL_DEX_IVYSAUR 2 -#define NATIONAL_DEX_VENUSAUR 3 -#define NATIONAL_DEX_CHARMANDER 4 -#define NATIONAL_DEX_CHARMELEON 5 -#define NATIONAL_DEX_CHARIZARD 6 -#define NATIONAL_DEX_SQUIRTLE 7 -#define NATIONAL_DEX_WARTORTLE 8 -#define NATIONAL_DEX_BLASTOISE 9 -#define NATIONAL_DEX_CATERPIE 10 -#define NATIONAL_DEX_METAPOD 11 -#define NATIONAL_DEX_BUTTERFREE 12 -#define NATIONAL_DEX_WEEDLE 13 -#define NATIONAL_DEX_KAKUNA 14 -#define NATIONAL_DEX_BEEDRILL 15 -#define NATIONAL_DEX_PIDGEY 16 -#define NATIONAL_DEX_PIDGEOTTO 17 -#define NATIONAL_DEX_PIDGEOT 18 -#define NATIONAL_DEX_RATTATA 19 -#define NATIONAL_DEX_RATICATE 20 -#define NATIONAL_DEX_SPEAROW 21 -#define NATIONAL_DEX_FEAROW 22 -#define NATIONAL_DEX_EKANS 23 -#define NATIONAL_DEX_ARBOK 24 -#define NATIONAL_DEX_PIKACHU 25 -#define NATIONAL_DEX_RAICHU 26 -#define NATIONAL_DEX_SANDSHREW 27 -#define NATIONAL_DEX_SANDSLASH 28 -#define NATIONAL_DEX_NIDORAN_F 29 -#define NATIONAL_DEX_NIDORINA 30 -#define NATIONAL_DEX_NIDOQUEEN 31 -#define NATIONAL_DEX_NIDORAN_M 32 -#define NATIONAL_DEX_NIDORINO 33 -#define NATIONAL_DEX_NIDOKING 34 -#define NATIONAL_DEX_CLEFAIRY 35 -#define NATIONAL_DEX_CLEFABLE 36 -#define NATIONAL_DEX_VULPIX 37 -#define NATIONAL_DEX_NINETALES 38 -#define NATIONAL_DEX_JIGGLYPUFF 39 -#define NATIONAL_DEX_WIGGLYTUFF 40 -#define NATIONAL_DEX_ZUBAT 41 -#define NATIONAL_DEX_GOLBAT 42 -#define NATIONAL_DEX_ODDISH 43 -#define NATIONAL_DEX_GLOOM 44 -#define NATIONAL_DEX_VILEPLUME 45 -#define NATIONAL_DEX_PARAS 46 -#define NATIONAL_DEX_PARASECT 47 -#define NATIONAL_DEX_VENONAT 48 -#define NATIONAL_DEX_VENOMOTH 49 -#define NATIONAL_DEX_DIGLETT 50 -#define NATIONAL_DEX_DUGTRIO 51 -#define NATIONAL_DEX_MEOWTH 52 -#define NATIONAL_DEX_PERSIAN 53 -#define NATIONAL_DEX_PSYDUCK 54 -#define NATIONAL_DEX_GOLDUCK 55 -#define NATIONAL_DEX_MANKEY 56 -#define NATIONAL_DEX_PRIMEAPE 57 -#define NATIONAL_DEX_GROWLITHE 58 -#define NATIONAL_DEX_ARCANINE 59 -#define NATIONAL_DEX_POLIWAG 60 -#define NATIONAL_DEX_POLIWHIRL 61 -#define NATIONAL_DEX_POLIWRATH 62 -#define NATIONAL_DEX_ABRA 63 -#define NATIONAL_DEX_KADABRA 64 -#define NATIONAL_DEX_ALAKAZAM 65 -#define NATIONAL_DEX_MACHOP 66 -#define NATIONAL_DEX_MACHOKE 67 -#define NATIONAL_DEX_MACHAMP 68 -#define NATIONAL_DEX_BELLSPROUT 69 -#define NATIONAL_DEX_WEEPINBELL 70 -#define NATIONAL_DEX_VICTREEBEL 71 -#define NATIONAL_DEX_TENTACOOL 72 -#define NATIONAL_DEX_TENTACRUEL 73 -#define NATIONAL_DEX_GEODUDE 74 -#define NATIONAL_DEX_GRAVELER 75 -#define NATIONAL_DEX_GOLEM 76 -#define NATIONAL_DEX_PONYTA 77 -#define NATIONAL_DEX_RAPIDASH 78 -#define NATIONAL_DEX_SLOWPOKE 79 -#define NATIONAL_DEX_SLOWBRO 80 -#define NATIONAL_DEX_MAGNEMITE 81 -#define NATIONAL_DEX_MAGNETON 82 -#define NATIONAL_DEX_FARFETCHD 83 -#define NATIONAL_DEX_DODUO 84 -#define NATIONAL_DEX_DODRIO 85 -#define NATIONAL_DEX_SEEL 86 -#define NATIONAL_DEX_DEWGONG 87 -#define NATIONAL_DEX_GRIMER 88 -#define NATIONAL_DEX_MUK 89 -#define NATIONAL_DEX_SHELLDER 90 -#define NATIONAL_DEX_CLOYSTER 91 -#define NATIONAL_DEX_GASTLY 92 -#define NATIONAL_DEX_HAUNTER 93 -#define NATIONAL_DEX_GENGAR 94 -#define NATIONAL_DEX_ONIX 95 -#define NATIONAL_DEX_DROWZEE 96 -#define NATIONAL_DEX_HYPNO 97 -#define NATIONAL_DEX_KRABBY 98 -#define NATIONAL_DEX_KINGLER 99 -#define NATIONAL_DEX_VOLTORB 100 -#define NATIONAL_DEX_ELECTRODE 101 -#define NATIONAL_DEX_EXEGGCUTE 102 -#define NATIONAL_DEX_EXEGGUTOR 103 -#define NATIONAL_DEX_CUBONE 104 -#define NATIONAL_DEX_MAROWAK 105 -#define NATIONAL_DEX_HITMONLEE 106 -#define NATIONAL_DEX_HITMONCHAN 107 -#define NATIONAL_DEX_LICKITUNG 108 -#define NATIONAL_DEX_KOFFING 109 -#define NATIONAL_DEX_WEEZING 110 -#define NATIONAL_DEX_RHYHORN 111 -#define NATIONAL_DEX_RHYDON 112 -#define NATIONAL_DEX_CHANSEY 113 -#define NATIONAL_DEX_TANGELA 114 -#define NATIONAL_DEX_KANGASKHAN 115 -#define NATIONAL_DEX_HORSEA 116 -#define NATIONAL_DEX_SEADRA 117 -#define NATIONAL_DEX_GOLDEEN 118 -#define NATIONAL_DEX_SEAKING 119 -#define NATIONAL_DEX_STARYU 120 -#define NATIONAL_DEX_STARMIE 121 -#define NATIONAL_DEX_MR_MIME 122 -#define NATIONAL_DEX_SCYTHER 123 -#define NATIONAL_DEX_JYNX 124 -#define NATIONAL_DEX_ELECTABUZZ 125 -#define NATIONAL_DEX_MAGMAR 126 -#define NATIONAL_DEX_PINSIR 127 -#define NATIONAL_DEX_TAUROS 128 -#define NATIONAL_DEX_MAGIKARP 129 -#define NATIONAL_DEX_GYARADOS 130 -#define NATIONAL_DEX_LAPRAS 131 -#define NATIONAL_DEX_DITTO 132 -#define NATIONAL_DEX_EEVEE 133 -#define NATIONAL_DEX_VAPOREON 134 -#define NATIONAL_DEX_JOLTEON 135 -#define NATIONAL_DEX_FLAREON 136 -#define NATIONAL_DEX_PORYGON 137 -#define NATIONAL_DEX_OMANYTE 138 -#define NATIONAL_DEX_OMASTAR 139 -#define NATIONAL_DEX_KABUTO 140 -#define NATIONAL_DEX_KABUTOPS 141 -#define NATIONAL_DEX_AERODACTYL 142 -#define NATIONAL_DEX_SNORLAX 143 -#define NATIONAL_DEX_ARTICUNO 144 -#define NATIONAL_DEX_ZAPDOS 145 -#define NATIONAL_DEX_MOLTRES 146 -#define NATIONAL_DEX_DRATINI 147 -#define NATIONAL_DEX_DRAGONAIR 148 -#define NATIONAL_DEX_DRAGONITE 149 -#define NATIONAL_DEX_MEWTWO 150 -#define NATIONAL_DEX_MEW 151 -#define NATIONAL_DEX_CHIKORITA 152 -#define NATIONAL_DEX_BAYLEEF 153 -#define NATIONAL_DEX_MEGANIUM 154 -#define NATIONAL_DEX_CYNDAQUIL 155 -#define NATIONAL_DEX_QUILAVA 156 -#define NATIONAL_DEX_TYPHLOSION 157 -#define NATIONAL_DEX_TOTODILE 158 -#define NATIONAL_DEX_CROCONAW 159 -#define NATIONAL_DEX_FERALIGATR 160 -#define NATIONAL_DEX_SENTRET 161 -#define NATIONAL_DEX_FURRET 162 -#define NATIONAL_DEX_HOOTHOOT 163 -#define NATIONAL_DEX_NOCTOWL 164 -#define NATIONAL_DEX_LEDYBA 165 -#define NATIONAL_DEX_LEDIAN 166 -#define NATIONAL_DEX_SPINARAK 167 -#define NATIONAL_DEX_ARIADOS 168 -#define NATIONAL_DEX_CROBAT 169 -#define NATIONAL_DEX_CHINCHOU 170 -#define NATIONAL_DEX_LANTURN 171 -#define NATIONAL_DEX_PICHU 172 -#define NATIONAL_DEX_CLEFFA 173 -#define NATIONAL_DEX_IGGLYBUFF 174 -#define NATIONAL_DEX_TOGEPI 175 -#define NATIONAL_DEX_TOGETIC 176 -#define NATIONAL_DEX_NATU 177 -#define NATIONAL_DEX_XATU 178 -#define NATIONAL_DEX_MAREEP 179 -#define NATIONAL_DEX_FLAAFFY 180 -#define NATIONAL_DEX_AMPHAROS 181 -#define NATIONAL_DEX_BELLOSSOM 182 -#define NATIONAL_DEX_MARILL 183 -#define NATIONAL_DEX_AZUMARILL 184 -#define NATIONAL_DEX_SUDOWOODO 185 -#define NATIONAL_DEX_POLITOED 186 -#define NATIONAL_DEX_HOPPIP 187 -#define NATIONAL_DEX_SKIPLOOM 188 -#define NATIONAL_DEX_JUMPLUFF 189 -#define NATIONAL_DEX_AIPOM 190 -#define NATIONAL_DEX_SUNKERN 191 -#define NATIONAL_DEX_SUNFLORA 192 -#define NATIONAL_DEX_YANMA 193 -#define NATIONAL_DEX_WOOPER 194 -#define NATIONAL_DEX_QUAGSIRE 195 -#define NATIONAL_DEX_ESPEON 196 -#define NATIONAL_DEX_UMBREON 197 -#define NATIONAL_DEX_MURKROW 198 -#define NATIONAL_DEX_SLOWKING 199 -#define NATIONAL_DEX_MISDREAVUS 200 -#define NATIONAL_DEX_UNOWN 201 -#define NATIONAL_DEX_WOBBUFFET 202 -#define NATIONAL_DEX_GIRAFARIG 203 -#define NATIONAL_DEX_PINECO 204 -#define NATIONAL_DEX_FORRETRESS 205 -#define NATIONAL_DEX_DUNSPARCE 206 -#define NATIONAL_DEX_GLIGAR 207 -#define NATIONAL_DEX_STEELIX 208 -#define NATIONAL_DEX_SNUBBULL 209 -#define NATIONAL_DEX_GRANBULL 210 -#define NATIONAL_DEX_QWILFISH 211 -#define NATIONAL_DEX_SCIZOR 212 -#define NATIONAL_DEX_SHUCKLE 213 -#define NATIONAL_DEX_HERACROSS 214 -#define NATIONAL_DEX_SNEASEL 215 -#define NATIONAL_DEX_TEDDIURSA 216 -#define NATIONAL_DEX_URSARING 217 -#define NATIONAL_DEX_SLUGMA 218 -#define NATIONAL_DEX_MAGCARGO 219 -#define NATIONAL_DEX_SWINUB 220 -#define NATIONAL_DEX_PILOSWINE 221 -#define NATIONAL_DEX_CORSOLA 222 -#define NATIONAL_DEX_REMORAID 223 -#define NATIONAL_DEX_OCTILLERY 224 -#define NATIONAL_DEX_DELIBIRD 225 -#define NATIONAL_DEX_MANTINE 226 -#define NATIONAL_DEX_SKARMORY 227 -#define NATIONAL_DEX_HOUNDOUR 228 -#define NATIONAL_DEX_HOUNDOOM 229 -#define NATIONAL_DEX_KINGDRA 230 -#define NATIONAL_DEX_PHANPY 231 -#define NATIONAL_DEX_DONPHAN 232 -#define NATIONAL_DEX_PORYGON2 233 -#define NATIONAL_DEX_STANTLER 234 -#define NATIONAL_DEX_SMEARGLE 235 -#define NATIONAL_DEX_TYROGUE 236 -#define NATIONAL_DEX_HITMONTOP 237 -#define NATIONAL_DEX_SMOOCHUM 238 -#define NATIONAL_DEX_ELEKID 239 -#define NATIONAL_DEX_MAGBY 240 -#define NATIONAL_DEX_MILTANK 241 -#define NATIONAL_DEX_BLISSEY 242 -#define NATIONAL_DEX_RAIKOU 243 -#define NATIONAL_DEX_ENTEI 244 -#define NATIONAL_DEX_SUICUNE 245 -#define NATIONAL_DEX_LARVITAR 246 -#define NATIONAL_DEX_PUPITAR 247 -#define NATIONAL_DEX_TYRANITAR 248 -#define NATIONAL_DEX_LUGIA 249 -#define NATIONAL_DEX_HO_OH 250 -#define NATIONAL_DEX_CELEBI 251 - -#define NATIONAL_DEX_TREECKO 252 -#define NATIONAL_DEX_GROVYLE 253 -#define NATIONAL_DEX_SCEPTILE 254 -#define NATIONAL_DEX_TORCHIC 255 -#define NATIONAL_DEX_COMBUSKEN 256 -#define NATIONAL_DEX_BLAZIKEN 257 -#define NATIONAL_DEX_MUDKIP 258 -#define NATIONAL_DEX_MARSHTOMP 259 -#define NATIONAL_DEX_SWAMPERT 260 -#define NATIONAL_DEX_POOCHYENA 261 -#define NATIONAL_DEX_MIGHTYENA 262 -#define NATIONAL_DEX_ZIGZAGOON 263 -#define NATIONAL_DEX_LINOONE 264 -#define NATIONAL_DEX_WURMPLE 265 -#define NATIONAL_DEX_SILCOON 266 -#define NATIONAL_DEX_BEAUTIFLY 267 -#define NATIONAL_DEX_CASCOON 268 -#define NATIONAL_DEX_DUSTOX 269 -#define NATIONAL_DEX_LOTAD 270 -#define NATIONAL_DEX_LOMBRE 271 -#define NATIONAL_DEX_LUDICOLO 272 -#define NATIONAL_DEX_SEEDOT 273 -#define NATIONAL_DEX_NUZLEAF 274 -#define NATIONAL_DEX_SHIFTRY 275 -#define NATIONAL_DEX_TAILLOW 276 -#define NATIONAL_DEX_SWELLOW 277 -#define NATIONAL_DEX_WINGULL 278 -#define NATIONAL_DEX_PELIPPER 279 -#define NATIONAL_DEX_RALTS 280 -#define NATIONAL_DEX_KIRLIA 281 -#define NATIONAL_DEX_GARDEVOIR 282 -#define NATIONAL_DEX_SURSKIT 283 -#define NATIONAL_DEX_MASQUERAIN 284 -#define NATIONAL_DEX_SHROOMISH 285 -#define NATIONAL_DEX_BRELOOM 286 -#define NATIONAL_DEX_SLAKOTH 287 -#define NATIONAL_DEX_VIGOROTH 288 -#define NATIONAL_DEX_SLAKING 289 -#define NATIONAL_DEX_NINCADA 290 -#define NATIONAL_DEX_NINJASK 291 -#define NATIONAL_DEX_SHEDINJA 292 -#define NATIONAL_DEX_WHISMUR 293 -#define NATIONAL_DEX_LOUDRED 294 -#define NATIONAL_DEX_EXPLOUD 295 -#define NATIONAL_DEX_MAKUHITA 296 -#define NATIONAL_DEX_HARIYAMA 297 -#define NATIONAL_DEX_AZURILL 298 -#define NATIONAL_DEX_NOSEPASS 299 -#define NATIONAL_DEX_SKITTY 300 -#define NATIONAL_DEX_DELCATTY 301 -#define NATIONAL_DEX_SABLEYE 302 -#define NATIONAL_DEX_MAWILE 303 -#define NATIONAL_DEX_ARON 304 -#define NATIONAL_DEX_LAIRON 305 -#define NATIONAL_DEX_AGGRON 306 -#define NATIONAL_DEX_MEDITITE 307 -#define NATIONAL_DEX_MEDICHAM 308 -#define NATIONAL_DEX_ELECTRIKE 309 -#define NATIONAL_DEX_MANECTRIC 310 -#define NATIONAL_DEX_PLUSLE 311 -#define NATIONAL_DEX_MINUN 312 -#define NATIONAL_DEX_VOLBEAT 313 -#define NATIONAL_DEX_ILLUMISE 314 -#define NATIONAL_DEX_ROSELIA 315 -#define NATIONAL_DEX_GULPIN 316 -#define NATIONAL_DEX_SWALOT 317 -#define NATIONAL_DEX_CARVANHA 318 -#define NATIONAL_DEX_SHARPEDO 319 -#define NATIONAL_DEX_WAILMER 320 -#define NATIONAL_DEX_WAILORD 321 -#define NATIONAL_DEX_NUMEL 322 -#define NATIONAL_DEX_CAMERUPT 323 -#define NATIONAL_DEX_TORKOAL 324 -#define NATIONAL_DEX_SPOINK 325 -#define NATIONAL_DEX_GRUMPIG 326 -#define NATIONAL_DEX_SPINDA 327 -#define NATIONAL_DEX_TRAPINCH 328 -#define NATIONAL_DEX_VIBRAVA 329 -#define NATIONAL_DEX_FLYGON 330 -#define NATIONAL_DEX_CACNEA 331 -#define NATIONAL_DEX_CACTURNE 332 -#define NATIONAL_DEX_SWABLU 333 -#define NATIONAL_DEX_ALTARIA 334 -#define NATIONAL_DEX_ZANGOOSE 335 -#define NATIONAL_DEX_SEVIPER 336 -#define NATIONAL_DEX_LUNATONE 337 -#define NATIONAL_DEX_SOLROCK 338 -#define NATIONAL_DEX_BARBOACH 339 -#define NATIONAL_DEX_WHISCASH 340 -#define NATIONAL_DEX_CORPHISH 341 -#define NATIONAL_DEX_CRAWDAUNT 342 -#define NATIONAL_DEX_BALTOY 343 -#define NATIONAL_DEX_CLAYDOL 344 -#define NATIONAL_DEX_LILEEP 345 -#define NATIONAL_DEX_CRADILY 346 -#define NATIONAL_DEX_ANORITH 347 -#define NATIONAL_DEX_ARMALDO 348 -#define NATIONAL_DEX_FEEBAS 349 -#define NATIONAL_DEX_MILOTIC 350 -#define NATIONAL_DEX_CASTFORM 351 -#define NATIONAL_DEX_KECLEON 352 -#define NATIONAL_DEX_SHUPPET 353 -#define NATIONAL_DEX_BANETTE 354 -#define NATIONAL_DEX_DUSKULL 355 -#define NATIONAL_DEX_DUSCLOPS 356 -#define NATIONAL_DEX_TROPIUS 357 -#define NATIONAL_DEX_CHIMECHO 358 -#define NATIONAL_DEX_ABSOL 359 -#define NATIONAL_DEX_WYNAUT 360 -#define NATIONAL_DEX_SNORUNT 361 -#define NATIONAL_DEX_GLALIE 362 -#define NATIONAL_DEX_SPHEAL 363 -#define NATIONAL_DEX_SEALEO 364 -#define NATIONAL_DEX_WALREIN 365 -#define NATIONAL_DEX_CLAMPERL 366 -#define NATIONAL_DEX_HUNTAIL 367 -#define NATIONAL_DEX_GOREBYSS 368 -#define NATIONAL_DEX_RELICANTH 369 -#define NATIONAL_DEX_LUVDISC 370 -#define NATIONAL_DEX_BAGON 371 -#define NATIONAL_DEX_SHELGON 372 -#define NATIONAL_DEX_SALAMENCE 373 -#define NATIONAL_DEX_BELDUM 374 -#define NATIONAL_DEX_METANG 375 -#define NATIONAL_DEX_METAGROSS 376 -#define NATIONAL_DEX_REGIROCK 377 -#define NATIONAL_DEX_REGICE 378 -#define NATIONAL_DEX_REGISTEEL 379 -#define NATIONAL_DEX_LATIAS 380 -#define NATIONAL_DEX_LATIOS 381 -#define NATIONAL_DEX_KYOGRE 382 -#define NATIONAL_DEX_GROUDON 383 -#define NATIONAL_DEX_RAYQUAZA 384 -#define NATIONAL_DEX_JIRACHI 385 -#define NATIONAL_DEX_DEOXYS 386 - -#define NATIONAL_DEX_OLD_UNOWN_B 387 -#define NATIONAL_DEX_OLD_UNOWN_C 388 -#define NATIONAL_DEX_OLD_UNOWN_D 389 -#define NATIONAL_DEX_OLD_UNOWN_E 390 -#define NATIONAL_DEX_OLD_UNOWN_F 391 -#define NATIONAL_DEX_OLD_UNOWN_G 392 -#define NATIONAL_DEX_OLD_UNOWN_H 393 -#define NATIONAL_DEX_OLD_UNOWN_I 394 -#define NATIONAL_DEX_OLD_UNOWN_J 395 -#define NATIONAL_DEX_OLD_UNOWN_K 396 -#define NATIONAL_DEX_OLD_UNOWN_L 397 -#define NATIONAL_DEX_OLD_UNOWN_M 398 -#define NATIONAL_DEX_OLD_UNOWN_N 399 -#define NATIONAL_DEX_OLD_UNOWN_O 400 -#define NATIONAL_DEX_OLD_UNOWN_P 401 -#define NATIONAL_DEX_OLD_UNOWN_Q 402 -#define NATIONAL_DEX_OLD_UNOWN_R 403 -#define NATIONAL_DEX_OLD_UNOWN_S 404 -#define NATIONAL_DEX_OLD_UNOWN_T 405 -#define NATIONAL_DEX_OLD_UNOWN_U 406 -#define NATIONAL_DEX_OLD_UNOWN_V 407 -#define NATIONAL_DEX_OLD_UNOWN_W 408 -#define NATIONAL_DEX_OLD_UNOWN_X 409 -#define NATIONAL_DEX_OLD_UNOWN_Y 410 -#define NATIONAL_DEX_OLD_UNOWN_Z 411 - -// Hoenn Dex Index Defines -#define HOENN_DEX_NONE 0 -#define HOENN_DEX_TREECKO 1 -#define HOENN_DEX_GROVYLE 2 -#define HOENN_DEX_SCEPTILE 3 -#define HOENN_DEX_TORCHIC 4 -#define HOENN_DEX_COMBUSKEN 5 -#define HOENN_DEX_BLAZIKEN 6 -#define HOENN_DEX_MUDKIP 7 -#define HOENN_DEX_MARSHTOMP 8 -#define HOENN_DEX_SWAMPERT 9 -#define HOENN_DEX_POOCHYENA 10 -#define HOENN_DEX_MIGHTYENA 11 -#define HOENN_DEX_ZIGZAGOON 12 -#define HOENN_DEX_LINOONE 13 -#define HOENN_DEX_WURMPLE 14 -#define HOENN_DEX_SILCOON 15 -#define HOENN_DEX_BEAUTIFLY 16 -#define HOENN_DEX_CASCOON 17 -#define HOENN_DEX_DUSTOX 18 -#define HOENN_DEX_LOTAD 19 -#define HOENN_DEX_LOMBRE 20 -#define HOENN_DEX_LUDICOLO 21 -#define HOENN_DEX_SEEDOT 22 -#define HOENN_DEX_NUZLEAF 23 -#define HOENN_DEX_SHIFTRY 24 -#define HOENN_DEX_TAILLOW 25 -#define HOENN_DEX_SWELLOW 26 -#define HOENN_DEX_WINGULL 27 -#define HOENN_DEX_PELIPPER 28 -#define HOENN_DEX_RALTS 29 -#define HOENN_DEX_KIRLIA 30 -#define HOENN_DEX_GARDEVOIR 31 -#define HOENN_DEX_SURSKIT 32 -#define HOENN_DEX_MASQUERAIN 33 -#define HOENN_DEX_SHROOMISH 34 -#define HOENN_DEX_BRELOOM 35 -#define HOENN_DEX_SLAKOTH 36 -#define HOENN_DEX_VIGOROTH 37 -#define HOENN_DEX_SLAKING 38 -#define HOENN_DEX_ABRA 39 -#define HOENN_DEX_KADABRA 40 -#define HOENN_DEX_ALAKAZAM 41 -#define HOENN_DEX_NINCADA 42 -#define HOENN_DEX_NINJASK 43 -#define HOENN_DEX_SHEDINJA 44 -#define HOENN_DEX_WHISMUR 45 -#define HOENN_DEX_LOUDRED 46 -#define HOENN_DEX_EXPLOUD 47 -#define HOENN_DEX_MAKUHITA 48 -#define HOENN_DEX_HARIYAMA 49 -#define HOENN_DEX_GOLDEEN 50 -#define HOENN_DEX_SEAKING 51 -#define HOENN_DEX_MAGIKARP 52 -#define HOENN_DEX_GYARADOS 53 -#define HOENN_DEX_AZURILL 54 -#define HOENN_DEX_MARILL 55 -#define HOENN_DEX_AZUMARILL 56 -#define HOENN_DEX_GEODUDE 57 -#define HOENN_DEX_GRAVELER 58 -#define HOENN_DEX_GOLEM 59 -#define HOENN_DEX_NOSEPASS 60 -#define HOENN_DEX_SKITTY 61 -#define HOENN_DEX_DELCATTY 62 -#define HOENN_DEX_ZUBAT 63 -#define HOENN_DEX_GOLBAT 64 -#define HOENN_DEX_CROBAT 65 -#define HOENN_DEX_TENTACOOL 66 -#define HOENN_DEX_TENTACRUEL 67 -#define HOENN_DEX_SABLEYE 68 -#define HOENN_DEX_MAWILE 69 -#define HOENN_DEX_ARON 70 -#define HOENN_DEX_LAIRON 71 -#define HOENN_DEX_AGGRON 72 -#define HOENN_DEX_MACHOP 73 -#define HOENN_DEX_MACHOKE 74 -#define HOENN_DEX_MACHAMP 75 -#define HOENN_DEX_MEDITITE 76 -#define HOENN_DEX_MEDICHAM 77 -#define HOENN_DEX_ELECTRIKE 78 -#define HOENN_DEX_MANECTRIC 79 -#define HOENN_DEX_PLUSLE 80 -#define HOENN_DEX_MINUN 81 -#define HOENN_DEX_MAGNEMITE 82 -#define HOENN_DEX_MAGNETON 83 -#define HOENN_DEX_VOLTORB 84 -#define HOENN_DEX_ELECTRODE 85 -#define HOENN_DEX_VOLBEAT 86 -#define HOENN_DEX_ILLUMISE 87 -#define HOENN_DEX_ODDISH 88 -#define HOENN_DEX_GLOOM 89 -#define HOENN_DEX_VILEPLUME 90 -#define HOENN_DEX_BELLOSSOM 91 -#define HOENN_DEX_DODUO 92 -#define HOENN_DEX_DODRIO 93 -#define HOENN_DEX_ROSELIA 94 -#define HOENN_DEX_GULPIN 95 -#define HOENN_DEX_SWALOT 96 -#define HOENN_DEX_CARVANHA 97 -#define HOENN_DEX_SHARPEDO 98 -#define HOENN_DEX_WAILMER 99 -#define HOENN_DEX_WAILORD 100 -#define HOENN_DEX_NUMEL 101 -#define HOENN_DEX_CAMERUPT 102 -#define HOENN_DEX_SLUGMA 103 -#define HOENN_DEX_MAGCARGO 104 -#define HOENN_DEX_TORKOAL 105 -#define HOENN_DEX_GRIMER 106 -#define HOENN_DEX_MUK 107 -#define HOENN_DEX_KOFFING 108 -#define HOENN_DEX_WEEZING 109 -#define HOENN_DEX_SPOINK 110 -#define HOENN_DEX_GRUMPIG 111 -#define HOENN_DEX_SANDSHREW 112 -#define HOENN_DEX_SANDSLASH 113 -#define HOENN_DEX_SPINDA 114 -#define HOENN_DEX_SKARMORY 115 -#define HOENN_DEX_TRAPINCH 116 -#define HOENN_DEX_VIBRAVA 117 -#define HOENN_DEX_FLYGON 118 -#define HOENN_DEX_CACNEA 119 -#define HOENN_DEX_CACTURNE 120 -#define HOENN_DEX_SWABLU 121 -#define HOENN_DEX_ALTARIA 122 -#define HOENN_DEX_ZANGOOSE 123 -#define HOENN_DEX_SEVIPER 124 -#define HOENN_DEX_LUNATONE 125 -#define HOENN_DEX_SOLROCK 126 -#define HOENN_DEX_BARBOACH 127 -#define HOENN_DEX_WHISCASH 128 -#define HOENN_DEX_CORPHISH 129 -#define HOENN_DEX_CRAWDAUNT 130 -#define HOENN_DEX_BALTOY 131 -#define HOENN_DEX_CLAYDOL 132 -#define HOENN_DEX_LILEEP 133 -#define HOENN_DEX_CRADILY 134 -#define HOENN_DEX_ANORITH 135 -#define HOENN_DEX_ARMALDO 136 -#define HOENN_DEX_IGGLYBUFF 137 -#define HOENN_DEX_JIGGLYPUFF 138 -#define HOENN_DEX_WIGGLYTUFF 139 -#define HOENN_DEX_FEEBAS 140 -#define HOENN_DEX_MILOTIC 141 -#define HOENN_DEX_CASTFORM 142 -#define HOENN_DEX_STARYU 143 -#define HOENN_DEX_STARMIE 144 -#define HOENN_DEX_KECLEON 145 -#define HOENN_DEX_SHUPPET 146 -#define HOENN_DEX_BANETTE 147 -#define HOENN_DEX_DUSKULL 148 -#define HOENN_DEX_DUSCLOPS 149 -#define HOENN_DEX_TROPIUS 150 -#define HOENN_DEX_CHIMECHO 151 -#define HOENN_DEX_ABSOL 152 -#define HOENN_DEX_VULPIX 153 -#define HOENN_DEX_NINETALES 154 -#define HOENN_DEX_PICHU 155 -#define HOENN_DEX_PIKACHU 156 -#define HOENN_DEX_RAICHU 157 -#define HOENN_DEX_PSYDUCK 158 -#define HOENN_DEX_GOLDUCK 159 -#define HOENN_DEX_WYNAUT 160 -#define HOENN_DEX_WOBBUFFET 161 -#define HOENN_DEX_NATU 162 -#define HOENN_DEX_XATU 163 -#define HOENN_DEX_GIRAFARIG 164 -#define HOENN_DEX_PHANPY 165 -#define HOENN_DEX_DONPHAN 166 -#define HOENN_DEX_PINSIR 167 -#define HOENN_DEX_HERACROSS 168 -#define HOENN_DEX_RHYHORN 169 -#define HOENN_DEX_RHYDON 170 -#define HOENN_DEX_SNORUNT 171 -#define HOENN_DEX_GLALIE 172 -#define HOENN_DEX_SPHEAL 173 -#define HOENN_DEX_SEALEO 174 -#define HOENN_DEX_WALREIN 175 -#define HOENN_DEX_CLAMPERL 176 -#define HOENN_DEX_HUNTAIL 177 -#define HOENN_DEX_GOREBYSS 178 -#define HOENN_DEX_RELICANTH 179 -#define HOENN_DEX_CORSOLA 180 -#define HOENN_DEX_CHINCHOU 181 -#define HOENN_DEX_LANTURN 182 -#define HOENN_DEX_LUVDISC 183 -#define HOENN_DEX_HORSEA 184 -#define HOENN_DEX_SEADRA 185 -#define HOENN_DEX_KINGDRA 186 -#define HOENN_DEX_BAGON 187 -#define HOENN_DEX_SHELGON 188 -#define HOENN_DEX_SALAMENCE 189 -#define HOENN_DEX_BELDUM 190 -#define HOENN_DEX_METANG 191 -#define HOENN_DEX_METAGROSS 192 -#define HOENN_DEX_REGIROCK 193 -#define HOENN_DEX_REGICE 194 -#define HOENN_DEX_REGISTEEL 195 -#define HOENN_DEX_LATIAS 196 -#define HOENN_DEX_LATIOS 197 -#define HOENN_DEX_KYOGRE 198 -#define HOENN_DEX_GROUDON 199 -#define HOENN_DEX_RAYQUAZA 200 -#define HOENN_DEX_JIRACHI 201 -#define HOENN_DEX_DEOXYS 202 - -#define HOENN_DEX_BULBASAUR 203 -#define HOENN_DEX_IVYSAUR 204 -#define HOENN_DEX_VENUSAUR 205 -#define HOENN_DEX_CHARMANDER 206 -#define HOENN_DEX_CHARMELEON 207 -#define HOENN_DEX_CHARIZARD 208 -#define HOENN_DEX_SQUIRTLE 209 -#define HOENN_DEX_WARTORTLE 210 -#define HOENN_DEX_BLASTOISE 211 -#define HOENN_DEX_CATERPIE 212 -#define HOENN_DEX_METAPOD 213 -#define HOENN_DEX_BUTTERFREE 214 -#define HOENN_DEX_WEEDLE 215 -#define HOENN_DEX_KAKUNA 216 -#define HOENN_DEX_BEEDRILL 217 -#define HOENN_DEX_PIDGEY 218 -#define HOENN_DEX_PIDGEOTTO 219 -#define HOENN_DEX_PIDGEOT 220 -#define HOENN_DEX_RATTATA 221 -#define HOENN_DEX_RATICATE 222 -#define HOENN_DEX_SPEAROW 223 -#define HOENN_DEX_FEAROW 224 -#define HOENN_DEX_EKANS 225 -#define HOENN_DEX_ARBOK 226 -#define HOENN_DEX_NIDORAN_F 227 -#define HOENN_DEX_NIDORINA 228 -#define HOENN_DEX_NIDOQUEEN 229 -#define HOENN_DEX_NIDORAN_M 230 -#define HOENN_DEX_NIDORINO 231 -#define HOENN_DEX_NIDOKING 232 -#define HOENN_DEX_CLEFAIRY 233 -#define HOENN_DEX_CLEFABLE 234 -#define HOENN_DEX_PARAS 235 -#define HOENN_DEX_PARASECT 236 -#define HOENN_DEX_VENONAT 237 -#define HOENN_DEX_VENOMOTH 238 -#define HOENN_DEX_DIGLETT 239 -#define HOENN_DEX_DUGTRIO 240 -#define HOENN_DEX_MEOWTH 241 -#define HOENN_DEX_PERSIAN 242 -#define HOENN_DEX_MANKEY 243 -#define HOENN_DEX_PRIMEAPE 244 -#define HOENN_DEX_GROWLITHE 245 -#define HOENN_DEX_ARCANINE 246 -#define HOENN_DEX_POLIWAG 247 -#define HOENN_DEX_POLIWHIRL 248 -#define HOENN_DEX_POLIWRATH 249 -#define HOENN_DEX_BELLSPROUT 250 -#define HOENN_DEX_WEEPINBELL 251 -#define HOENN_DEX_VICTREEBEL 252 -#define HOENN_DEX_PONYTA 253 -#define HOENN_DEX_RAPIDASH 254 -#define HOENN_DEX_SLOWPOKE 255 -#define HOENN_DEX_SLOWBRO 256 -#define HOENN_DEX_FARFETCHD 257 -#define HOENN_DEX_SEEL 258 -#define HOENN_DEX_DEWGONG 259 -#define HOENN_DEX_SHELLDER 260 -#define HOENN_DEX_CLOYSTER 261 -#define HOENN_DEX_GASTLY 262 -#define HOENN_DEX_HAUNTER 263 -#define HOENN_DEX_GENGAR 264 -#define HOENN_DEX_ONIX 265 -#define HOENN_DEX_DROWZEE 266 -#define HOENN_DEX_HYPNO 267 -#define HOENN_DEX_KRABBY 268 -#define HOENN_DEX_KINGLER 269 -#define HOENN_DEX_EXEGGCUTE 270 -#define HOENN_DEX_EXEGGUTOR 271 -#define HOENN_DEX_CUBONE 272 -#define HOENN_DEX_MAROWAK 273 -#define HOENN_DEX_HITMONLEE 274 -#define HOENN_DEX_HITMONCHAN 275 -#define HOENN_DEX_LICKITUNG 276 -#define HOENN_DEX_CHANSEY 277 -#define HOENN_DEX_TANGELA 278 -#define HOENN_DEX_KANGASKHAN 279 -#define HOENN_DEX_MR_MIME 280 -#define HOENN_DEX_SCYTHER 281 -#define HOENN_DEX_JYNX 282 -#define HOENN_DEX_ELECTABUZZ 283 -#define HOENN_DEX_MAGMAR 284 -#define HOENN_DEX_TAUROS 285 -#define HOENN_DEX_LAPRAS 286 -#define HOENN_DEX_DITTO 287 -#define HOENN_DEX_EEVEE 288 -#define HOENN_DEX_VAPOREON 289 -#define HOENN_DEX_JOLTEON 290 -#define HOENN_DEX_FLAREON 291 -#define HOENN_DEX_PORYGON 292 -#define HOENN_DEX_OMANYTE 293 -#define HOENN_DEX_OMASTAR 294 -#define HOENN_DEX_KABUTO 295 -#define HOENN_DEX_KABUTOPS 296 -#define HOENN_DEX_AERODACTYL 297 -#define HOENN_DEX_SNORLAX 298 -#define HOENN_DEX_ARTICUNO 299 -#define HOENN_DEX_ZAPDOS 300 -#define HOENN_DEX_MOLTRES 301 -#define HOENN_DEX_DRATINI 302 -#define HOENN_DEX_DRAGONAIR 303 -#define HOENN_DEX_DRAGONITE 304 -#define HOENN_DEX_MEWTWO 305 -#define HOENN_DEX_MEW 306 -#define HOENN_DEX_CHIKORITA 307 -#define HOENN_DEX_BAYLEEF 308 -#define HOENN_DEX_MEGANIUM 309 -#define HOENN_DEX_CYNDAQUIL 310 -#define HOENN_DEX_QUILAVA 311 -#define HOENN_DEX_TYPHLOSION 312 -#define HOENN_DEX_TOTODILE 313 -#define HOENN_DEX_CROCONAW 314 -#define HOENN_DEX_FERALIGATR 315 -#define HOENN_DEX_SENTRET 316 -#define HOENN_DEX_FURRET 317 -#define HOENN_DEX_HOOTHOOT 318 -#define HOENN_DEX_NOCTOWL 319 -#define HOENN_DEX_LEDYBA 320 -#define HOENN_DEX_LEDIAN 321 -#define HOENN_DEX_SPINARAK 322 -#define HOENN_DEX_ARIADOS 323 -#define HOENN_DEX_CLEFFA 324 -#define HOENN_DEX_TOGEPI 325 -#define HOENN_DEX_TOGETIC 326 -#define HOENN_DEX_MAREEP 327 -#define HOENN_DEX_FLAAFFY 328 -#define HOENN_DEX_AMPHAROS 329 -#define HOENN_DEX_SUDOWOODO 330 -#define HOENN_DEX_POLITOED 331 -#define HOENN_DEX_HOPPIP 332 -#define HOENN_DEX_SKIPLOOM 333 -#define HOENN_DEX_JUMPLUFF 334 -#define HOENN_DEX_AIPOM 335 -#define HOENN_DEX_SUNKERN 336 -#define HOENN_DEX_SUNFLORA 337 -#define HOENN_DEX_YANMA 338 -#define HOENN_DEX_WOOPER 339 -#define HOENN_DEX_QUAGSIRE 340 -#define HOENN_DEX_ESPEON 341 -#define HOENN_DEX_UMBREON 342 -#define HOENN_DEX_MURKROW 343 -#define HOENN_DEX_SLOWKING 344 -#define HOENN_DEX_MISDREAVUS 345 -#define HOENN_DEX_UNOWN 346 -#define HOENN_DEX_PINECO 347 -#define HOENN_DEX_FORRETRESS 348 -#define HOENN_DEX_DUNSPARCE 349 -#define HOENN_DEX_GLIGAR 350 -#define HOENN_DEX_STEELIX 351 -#define HOENN_DEX_SNUBBULL 352 -#define HOENN_DEX_GRANBULL 353 -#define HOENN_DEX_QWILFISH 354 -#define HOENN_DEX_SCIZOR 355 -#define HOENN_DEX_SHUCKLE 356 -#define HOENN_DEX_SNEASEL 357 -#define HOENN_DEX_TEDDIURSA 358 -#define HOENN_DEX_URSARING 359 -#define HOENN_DEX_SWINUB 360 -#define HOENN_DEX_PILOSWINE 361 -#define HOENN_DEX_REMORAID 362 -#define HOENN_DEX_OCTILLERY 363 -#define HOENN_DEX_DELIBIRD 364 -#define HOENN_DEX_MANTINE 365 -#define HOENN_DEX_HOUNDOUR 366 -#define HOENN_DEX_HOUNDOOM 367 -#define HOENN_DEX_PORYGON2 368 -#define HOENN_DEX_STANTLER 369 -#define HOENN_DEX_SMEARGLE 370 -#define HOENN_DEX_TYROGUE 371 -#define HOENN_DEX_HITMONTOP 372 -#define HOENN_DEX_SMOOCHUM 373 -#define HOENN_DEX_ELEKID 374 -#define HOENN_DEX_MAGBY 375 -#define HOENN_DEX_MILTANK 376 -#define HOENN_DEX_BLISSEY 377 -#define HOENN_DEX_RAIKOU 378 -#define HOENN_DEX_ENTEI 379 -#define HOENN_DEX_SUICUNE 380 -#define HOENN_DEX_LARVITAR 381 -#define HOENN_DEX_PUPITAR 382 -#define HOENN_DEX_TYRANITAR 383 -#define HOENN_DEX_LUGIA 384 -#define HOENN_DEX_HO_OH 385 -#define HOENN_DEX_CELEBI 386 - -#define HOENN_DEX_OLD_UNOWN_B 387 -#define HOENN_DEX_OLD_UNOWN_C 388 -#define HOENN_DEX_OLD_UNOWN_D 389 -#define HOENN_DEX_OLD_UNOWN_E 390 -#define HOENN_DEX_OLD_UNOWN_F 391 -#define HOENN_DEX_OLD_UNOWN_G 392 -#define HOENN_DEX_OLD_UNOWN_H 393 -#define HOENN_DEX_OLD_UNOWN_I 394 -#define HOENN_DEX_OLD_UNOWN_J 395 -#define HOENN_DEX_OLD_UNOWN_K 396 -#define HOENN_DEX_OLD_UNOWN_L 397 -#define HOENN_DEX_OLD_UNOWN_M 398 -#define HOENN_DEX_OLD_UNOWN_N 399 -#define HOENN_DEX_OLD_UNOWN_O 400 -#define HOENN_DEX_OLD_UNOWN_P 401 -#define HOENN_DEX_OLD_UNOWN_Q 402 -#define HOENN_DEX_OLD_UNOWN_R 403 -#define HOENN_DEX_OLD_UNOWN_S 404 -#define HOENN_DEX_OLD_UNOWN_T 405 -#define HOENN_DEX_OLD_UNOWN_U 406 -#define HOENN_DEX_OLD_UNOWN_V 407 -#define HOENN_DEX_OLD_UNOWN_W 408 -#define HOENN_DEX_OLD_UNOWN_X 409 -#define HOENN_DEX_OLD_UNOWN_Y 410 -#define HOENN_DEX_OLD_UNOWN_Z 411 +#define SPECIES_UNOWN_B (NUM_SPECIES + 1) +#define SPECIES_UNOWN_C (NUM_SPECIES + 2) +#define SPECIES_UNOWN_D (NUM_SPECIES + 3) +#define SPECIES_UNOWN_E (NUM_SPECIES + 4) +#define SPECIES_UNOWN_F (NUM_SPECIES + 5) +#define SPECIES_UNOWN_G (NUM_SPECIES + 6) +#define SPECIES_UNOWN_H (NUM_SPECIES + 7) +#define SPECIES_UNOWN_I (NUM_SPECIES + 8) +#define SPECIES_UNOWN_J (NUM_SPECIES + 9) +#define SPECIES_UNOWN_K (NUM_SPECIES + 10) +#define SPECIES_UNOWN_L (NUM_SPECIES + 11) +#define SPECIES_UNOWN_M (NUM_SPECIES + 12) +#define SPECIES_UNOWN_N (NUM_SPECIES + 13) +#define SPECIES_UNOWN_O (NUM_SPECIES + 14) +#define SPECIES_UNOWN_P (NUM_SPECIES + 15) +#define SPECIES_UNOWN_Q (NUM_SPECIES + 16) +#define SPECIES_UNOWN_R (NUM_SPECIES + 17) +#define SPECIES_UNOWN_S (NUM_SPECIES + 18) +#define SPECIES_UNOWN_T (NUM_SPECIES + 19) +#define SPECIES_UNOWN_U (NUM_SPECIES + 20) +#define SPECIES_UNOWN_V (NUM_SPECIES + 21) +#define SPECIES_UNOWN_W (NUM_SPECIES + 22) +#define SPECIES_UNOWN_X (NUM_SPECIES + 23) +#define SPECIES_UNOWN_Y (NUM_SPECIES + 24) +#define SPECIES_UNOWN_Z (NUM_SPECIES + 25) +#define SPECIES_UNOWN_EMARK (NUM_SPECIES + 26) +#define SPECIES_UNOWN_QMARK (NUM_SPECIES + 27) #endif // GUARD_CONSTANTS_SPECIES_H diff --git a/include/constants/trainers.h b/include/constants/trainers.h index 9563bf8b4..70e8b4bc7 100644 --- a/include/constants/trainers.h +++ b/include/constants/trainers.h @@ -167,8 +167,18 @@ #define TRAINER_PIC_LADY 146 #define TRAINER_PIC_PAINTER 147 -// Leftover from R/S -#define TRAINER_SECRET_BASE 1024 +// The player back pics are assumed to alternate according to the gender values (MALE/FEMALE) +#define TRAINER_BACK_PIC_RED 0 +#define TRAINER_BACK_PIC_LEAF 1 +#define TRAINER_BACK_PIC_RUBY_SAPPHIRE_BRENDAN 2 +#define TRAINER_BACK_PIC_RUBY_SAPPHIRE_MAY 3 +#define TRAINER_BACK_PIC_POKEDUDE 4 +#define TRAINER_BACK_PIC_OLD_MAN 5 + +// Special Trainer Ids. +#define TRAINER_UNION_ROOM 0xC00 +#define TRAINER_LINK_OPPONENT 0x800 +#define TRAINER_SECRET_BASE 0x400 #define TRAINER_CLASS_NONE 0 #define TRAINER_CLASS_PKMN_TRAINER_UNUSED 1 diff --git a/include/constants/vars.h b/include/constants/vars.h index 0db01238c..56dafee12 100644 --- a/include/constants/vars.h +++ b/include/constants/vars.h @@ -3,23 +3,25 @@ #define VARS_START 0x4000 -// Temporary variables. Reset on map load. -#define VAR_TEMP_0 0x4000 -#define VAR_TEMP_1 0x4001 -#define VAR_TEMP_2 0x4002 -#define VAR_TEMP_3 0x4003 -#define VAR_TEMP_4 0x4004 -#define VAR_TEMP_5 0x4005 -#define VAR_TEMP_6 0x4006 -#define VAR_TEMP_7 0x4007 -#define VAR_TEMP_8 0x4008 -#define VAR_TEMP_9 0x4009 -#define VAR_TEMP_A 0x400A -#define VAR_TEMP_B 0x400B -#define VAR_TEMP_C 0x400C -#define VAR_TEMP_D 0x400D -#define VAR_TEMP_E 0x400E -#define VAR_TEMP_F 0x400F +// Temporary variables. Temp vars are cleared every time a map is loaded. +#define TEMP_VARS_START 0x4000 +#define VAR_TEMP_0 (TEMP_VARS_START + 0x0) +#define VAR_TEMP_1 (TEMP_VARS_START + 0x1) +#define VAR_TEMP_2 (TEMP_VARS_START + 0x2) +#define VAR_TEMP_3 (TEMP_VARS_START + 0x3) +#define VAR_TEMP_4 (TEMP_VARS_START + 0x4) +#define VAR_TEMP_5 (TEMP_VARS_START + 0x5) +#define VAR_TEMP_6 (TEMP_VARS_START + 0x6) +#define VAR_TEMP_7 (TEMP_VARS_START + 0x7) +#define VAR_TEMP_8 (TEMP_VARS_START + 0x8) +#define VAR_TEMP_9 (TEMP_VARS_START + 0x9) +#define VAR_TEMP_A (TEMP_VARS_START + 0xA) +#define VAR_TEMP_B (TEMP_VARS_START + 0xB) +#define VAR_TEMP_C (TEMP_VARS_START + 0xC) +#define VAR_TEMP_D (TEMP_VARS_START + 0xD) +#define VAR_TEMP_E (TEMP_VARS_START + 0xE) +#define VAR_TEMP_F (TEMP_VARS_START + 0xF) +#define TEMP_VARS_END VAR_TEMP_F // Object event graphics IDs which can be changed by // script commands. @@ -86,7 +88,7 @@ #define VAR_0x4029 0x4029 #define VAR_0x402A 0x402A #define VAR_0x402B 0x402B -#define VAR_RESET_RTC_ENABLE 0x402C +#define VAR_0x402C 0x402C #define VAR_0x402D 0x402D #define VAR_0x402E 0x402E @@ -94,7 +96,7 @@ #define VAR_ICE_STEP_COUNT 0x4030 #define VAR_STARTER_MON 0x4031 // 0: Bulbasaur, 1: Squirtle, 2: Charmander -#define VAR_0x4032 0x4032 +#define VAR_RESET_RTC_ENABLE 0x4032 #define VAR_ENIGMA_BERRY_AVAILABLE 0x4033 #define VAR_0x4034 0x4034 @@ -105,7 +107,7 @@ #define VAR_FANCLUB_LOSE_FAN_TIMER 0x4039 #define VAR_ELEVATOR_FLOOR 0x403A #define VAR_RESORT_GORGEOUS_REWARD 0x403B -#define VAR_0x403C 0x403C +#define VAR_0x403C 0x403C // Set to 0x0302, never read #define VAR_HERACROSS_SIZE_RECORD 0x403D #define VAR_DEOXYS_INTERACTION_NUM 0x403E #define VAR_0x403F 0x403F @@ -158,7 +160,7 @@ #define VAR_MAP_SCENE_PEWTER_CITY 0x406C #define VAR_0x406D 0x406D #define VAR_MAP_SCENE_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE 0x406E -#define VAR_CABLE_CLUB_STATE 0x406F +#define VAR_CABLE_CLUB_STATE 0x406F #define VAR_MAP_SCENE_PALLET_TOWN_SIGN_LADY 0x4070 #define VAR_MAP_SCENE_CINNABAR_ISLAND 0x4071 #define VAR_0x4072 0x4072 @@ -230,13 +232,13 @@ #define VAR_0x40B3 0x40B3 #define VAR_PORTHOLE 0x40B4 #define VAR_EVENT_PICHU_SLOT 0x40B5 -#define VAR_0x40B6 0x40B6 -#define VAR_0x40B7 0x40B7 -#define VAR_0x40B8 0x40B8 -#define VAR_0x40B9 0x40B9 -#define VAR_0x40BA 0x40BA -#define VAR_0x40BB 0x40BB -#define VAR_0x40BC 0x40BC +#define VAR_MYSTERY_GIFT_1 0x40B6 +#define VAR_MYSTERY_GIFT_2 0x40B7 +#define VAR_MYSTERY_GIFT_3 0x40B8 +#define VAR_MYSTERY_GIFT_4 0x40B9 +#define VAR_MYSTERY_GIFT_5 0x40BA +#define VAR_MYSTERY_GIFT_6 0x40BB +#define VAR_MYSTERY_GIFT_7 0x40BC #define VAR_0x40BD 0x40BD #define VAR_0x40BE 0x40BE #define VAR_0x40BF 0x40BF diff --git a/include/constants/weather.h b/include/constants/weather.h index 241dc5e2a..d7572f91b 100644 --- a/include/constants/weather.h +++ b/include/constants/weather.h @@ -16,7 +16,25 @@ #define WEATHER_DROUGHT 12 // unused and broken in overworld #define WEATHER_DOWNPOUR 13 // unused #define WEATHER_UNDERWATER_BUBBLES 14 // unused +#define WEATHER_ABNORMAL 15 // unused #define WEATHER_ROUTE119_CYCLE 20 // unused #define WEATHER_ROUTE123_CYCLE 21 // unused +// These are used in maps' coord_weather_event entries. +// They are not a one-to-one mapping with the engine's +// internal weather constants above. +#define COORD_EVENT_WEATHER_SUNNY_CLOUDS 1 +#define COORD_EVENT_WEATHER_SUNNY 2 +#define COORD_EVENT_WEATHER_RAIN 3 +#define COORD_EVENT_WEATHER_SNOW 4 +#define COORD_EVENT_WEATHER_RAIN_THUNDERSTORM 5 +#define COORD_EVENT_WEATHER_FOG_HORIZONTAL 6 +#define COORD_EVENT_WEATHER_FOG_DIAGONAL 7 +#define COORD_EVENT_WEATHER_VOLCANIC_ASH 8 +#define COORD_EVENT_WEATHER_SANDSTORM 9 +#define COORD_EVENT_WEATHER_SHADE 10 +#define COORD_EVENT_WEATHER_DROUGHT 11 +#define COORD_EVENT_WEATHER_ROUTE119_CYCLE 20 +#define COORD_EVENT_WEATHER_ROUTE123_CYCLE 21 + #endif // GUARD_CONSTANTS_WEATHER_H diff --git a/include/data.h b/include/data.h index 6fb3bcab2..cf98e1572 100644 --- a/include/data.h +++ b/include/data.h @@ -14,6 +14,10 @@ struct MonCoords u8 y_offset; }; +#define MON_COORDS_SIZE(width, height)(DIV_ROUND_UP(width, 8) << 4 | DIV_ROUND_UP(height, 8)) +#define GET_MON_COORDS_WIDTH(size)((size >> 4) * 8) +#define GET_MON_COORDS_HEIGHT(size)((size & 0xF) * 8) + extern const u8 gSpeciesNames[][POKEMON_NAME_LENGTH + 1]; extern const u8 gMoveNames[][13]; diff --git a/include/digit_obj_util.h b/include/digit_obj_util.h index 5674f201f..e2a445320 100644 --- a/include/digit_obj_util.h +++ b/include/digit_obj_util.h @@ -19,9 +19,8 @@ struct DigitObjUtilTemplate const struct SpritePalette * spritePal; }; -extern const u16 gUnknown_8479668[]; -extern const u32 gUnknown_8479688[]; -extern const u32 gUnknown_8479748[]; +extern const u16 gMinigameDigits_Pal[]; +extern const u32 gMinigameDigits_Gfx[]; bool32 DigitObjUtil_Init(u32 count); void DigitObjUtil_Free(void); diff --git a/include/event_data.h b/include/event_data.h index fcad84b6a..5a6f98c6c 100644 --- a/include/event_data.h +++ b/include/event_data.h @@ -52,7 +52,7 @@ void ResetSpecialVars(void); void ResetMysteryEventFlags(void); void ResetMysteryEventVars(void); bool32 IsNationalPokedexEnabled(void); -void sub_806E190(void); +void EnableNationalPokedex_RSE(void); void ClearTempFieldEventData(void); #endif // GUARD_EVENT_DATA_H diff --git a/include/event_object_movement.h b/include/event_object_movement.h index b59fb209b..814c7b1ad 100644 --- a/include/event_object_movement.h +++ b/include/event_object_movement.h @@ -1,9 +1,27 @@ #ifndef GUARD_EVENT_OBJECT_MOVEMENT_H #define GUARD_EVENT_OBJECT_MOVEMENT_H -#include "global.h" - -// Exported struct declarations +// Palette slots for overworld NPCs. +// The same standard set of palettes for overworld objects are normally always loaded at the same +// time while walking around the overworld. The only exceptions are the palettes for the player and +// the "special" NPC, which can be swapped out. This also means that e.g. two "special" NPCs +// with competing palettes cannot be properly loaded at the same time. +enum { + PALSLOT_PLAYER, + PALSLOT_PLAYER_REFLECTION, + PALSLOT_NPC_1, + PALSLOT_NPC_2, + PALSLOT_NPC_3, + PALSLOT_NPC_4, + PALSLOT_NPC_1_REFLECTION, + PALSLOT_NPC_2_REFLECTION, + PALSLOT_NPC_3_REFLECTION, + PALSLOT_NPC_4_REFLECTION, + PALSLOT_NPC_SPECIAL, + PALSLOT_NPC_SPECIAL_REFLECTION, + OBJ_PALSLOT_COUNT + // the remaining sprite palette slots (12-15) are used by field effects, the interface, etc. +}; enum SpinnerRunnerFollowPatterns { @@ -69,15 +87,14 @@ void LoadPlayerObjectReflectionPalette(u16, u8); void LoadSpecialObjectReflectionPalette(u16, u8); void TryMoveObjectEventToMapCoords(u8, u8, u8, s16, s16); void PatchObjectPalette(u16, u8); -void ReloadMapObjectsWithOffset(s16 x, s16 y); +void SpawnObjectEventsOnReturnToField(s16 x, s16 y); void GetMapCoordsFromSpritePos(s16, s16, s16 *, s16 *); u8 GetFaceDirectionAnimNum(u8); void SetSpritePosToOffsetMapCoords(s16 *, s16 *, s16, s16); void ObjectEventClearHeldMovement(struct ObjectEvent *); void ObjectEventClearHeldMovementIfActive(struct ObjectEvent *); -void SpawnObjectEventsInView(s16, s16); -u8 CreateVirtualObject(u8, u8, s16, s16, u8, u8); -u8 AddPseudoObjectEvent(u16, SpriteCallback, s16, s16, u8); +u8 CreateVirtualObject(u8 graphicsId, u8 virtualObjId, s16 x, s16 y, u8 elevation, u8 direction); +u8 CreateObjectGraphicsSprite(u16 graphicsId, SpriteCallback callback, s16 x, s16 y, u8 subpriority); u8 TrySpawnObjectEvent(u8 localId, u8 mapNum, u8 mapGroup); int SpawnSpecialObjectEventParameterized(u8, u8, u8, s16, s16, u8); u8 SpawnSpecialObjectEvent(struct ObjectEventTemplate *); @@ -99,17 +116,17 @@ void TryOverrideObjectEventTemplateCoords(u8, u8, u8); void UpdateObjectEventCurrentMovement(struct ObjectEvent *, struct Sprite *, bool8(struct ObjectEvent *, struct Sprite *)); u8 ObjectEventFaceOppositeDirection(struct ObjectEvent *, u8); u8 GetOppositeDirection(u8); -u8 GetWalkInPlaceFastMovementAction(u32); +u8 GetWalkInPlaceFasterMovementAction(u32); u8 GetStepInPlaceDelay8AnimId(u32); u8 GetWalkInPlaceNormalMovementAction(u32); u8 GetWalkInPlaceSlowMovementAction(u32); -u8 GetStepInPlaceDelay32AnimId(u32); +u8 GetWalkInPlaceFastMovementAction(u32); u8 GetCollisionAtCoords(struct ObjectEvent *, s16, s16, u32); void MoveCoords(u8, s16 *, s16 *); bool8 ObjectEventIsHeldMovementActive(struct ObjectEvent *); u8 ObjectEventClearHeldMovementIfFinished(struct ObjectEvent *); -u8 GetObjectEventIdByXYZ(u16 x, u16 y, u8 z); -void sub_8063E28(struct ObjectEvent *, struct Sprite *); +u8 GetObjectEventIdByPosition(u16 x, u16 y, u8 elevation); +void UpdateQuestLogObjectEventCurrentMovement(struct ObjectEvent *, struct Sprite *); bool8 ObjectEventSetHeldMovement(struct ObjectEvent *, u8); void ShiftStillObjectEventCoords(struct ObjectEvent *); void OverrideMovementTypeForObjectEvent(const struct ObjectEvent *, u8); @@ -117,13 +134,13 @@ void SetTrainerMovementType(struct ObjectEvent *, u8); u8 GetFishingDirectionAnimNum(u8 direction); u8 GetFishingNoCatchDirectionAnimNum(u8 a0); void ObjectEventSetGraphicsId(struct ObjectEvent *objectEvent, u8 a1); -u8 sub_805EB44(u8, u8, s16, s16); +u8 CreateFameCheckerObject(u8 graphicsId, u8 localId, s16 x, s16 y); void InitObjectEventPalettes(u8 mode); bool8 ObjectEventIsMovementOverridden(struct ObjectEvent *objectEvent); u8 ObjectEventCheckHeldMovementStatus(struct ObjectEvent *objectEvent); u8 GetWalkNormalMovementAction(u32); u8 GetWalkFastMovementAction(u32); -u8 GetWalkFastestMovementAction(u32); +u8 GetWalkFasterMovementAction(u32); u8 GetWalkSlowerMovementAction(u32 direction); u8 GetTrainerFacingDirectionMovementType(u8 direction); u8 GetFaceDirectionMovementAction(u32); @@ -138,7 +155,7 @@ bool8 UpdateWalkSlowerAnim(struct Sprite *sprite); void SetJumpSpriteData(struct Sprite *, u8, u8, u8); u8 DoJumpSpriteMovement(struct Sprite *); u8 DoJumpSpecialSpriteMovement(struct Sprite *); -void TurnVirtualObject(u8, u8); +void TurnVirtualObject(u8 virtualObjId, u8 direction); const u8 *GetObjectEventScriptPointerByObjectEventId(u8 objectEventId); u8 GetFirstInactiveObjectEventId(void); u8 GetCollisionFlagsAtCoords(struct ObjectEvent * objectEvent, s16 x, s16 y, u8 direction); @@ -148,27 +165,25 @@ void FreezeObjectEvents(void); bool8 FreezeObjectEvent(struct ObjectEvent *); void UnfreezeObjectEvent(struct ObjectEvent *); void FreezeObjectEventsExceptOne(u8 objEventId); -void RfuUnionObjectSetFacingDirection(u8 objectEventId, u8 direction); -void RfuUnionObjectToggleInvisibility(u8 objectEventId, bool32 invisible); -bool32 RfuUnionObjectIsInvisible(u8 objectEventId); -void RfuUnionObjectStartWarp(u8 objectEventId, u8 animNo); -bool32 RfuUnionObjectIsWarping(u8 objectEventId); +void SetVirtualObjectGraphics(u8 virtualObjId, u8 direction); +void SetVirtualObjectInvisibility(u8 virtualObjId, bool32 invisible); +bool32 IsVirtualObjectInvisible(u8 virtualObjId); +void SetVirtualObjectSpriteAnim(u8 virtualObjId, u8 animNo); +bool32 IsVirtualObjectAnimating(u8 virtualObjId); u8 GetJumpSpecialMovementAction(u32 direction); void EnableObjectGroundEffectsByXY(s16 x, s16 y); void MoveObjectEventToMapCoords(struct ObjectEvent *objectEvent, s16 x, s16 y); u8 CreateCopySpriteAt(struct Sprite *sprite, s16 x, s16 y, u8 subpriority); u16 GetObjectPaletteTag(u8 paletteIndex); void SetSpritePosToMapCoords(s16 x, s16 y, s16 *x2, s16 *y2); -void UpdateObjectEventSpriteVisibility(struct Sprite *sprite, bool8 invisible); -bool8 AreZCoordsCompatible(u8, u8); -u8 ZCoordToPriority(u8 z); -void ObjectEventUpdateZCoord(struct ObjectEvent *pObject); -void SetObjectSubpriorityByZCoord(u8 z, struct Sprite *sprite, u8 offset); -bool8 IsZCoordMismatchAt(u8, s16, s16); -void MakeObjectTemplateFromObjectEventGraphicsInfo(u16 graphicsId, void (*callback)(struct Sprite *), struct SpriteTemplate *spriteTemplate, const struct SubspriteTable **subspriteTables); +void UpdateObjectEventSpriteInvisibility(struct Sprite *sprite, bool8 invisible); +u8 ElevationToPriority(u8 elevation); +void ObjectEventUpdateElevation(struct ObjectEvent *pObject); +void SetObjectSubpriorityByElevation(u8 elevation, struct Sprite *sprite, u8 offset); +void CopyObjectGraphicsInfoToSpriteTemplate(u16 graphicsId, void (*callback)(struct Sprite *), struct SpriteTemplate *spriteTemplate, const struct SubspriteTable **subspriteTables); u8 AddCameraObject(u8 trackedSpriteId); void UpdateObjectEventsForCameraUpdate(s16 x, s16 y); -void UpdateObjectEventSpriteSubpriorityAndVisibility(struct Sprite *); +void SpriteCB_VirtualObject(struct Sprite *); void SetMovementDelay(struct Sprite *, s16); bool8 WaitForMovementDelay(struct Sprite *); void SetSpriteDataForNormalStep(struct Sprite *, u8, u8); @@ -192,11 +207,11 @@ extern const struct SpriteTemplate *const gFieldEffectObjectTemplatePointers[]; extern const struct SpritePalette gSpritePalette_GeneralFieldEffect1; extern const struct SpriteTemplate * const gFieldEffectObjectTemplatePointers[]; extern const struct OamData gObjectEventBaseOam_32x32; -extern const u16 gUnknown_8398648[]; -extern const u16 gUnknown_8398688[]; +extern const u16 gFieldEffectObjectPic_CutGrass[]; +extern const u16 gFieldEffectPal_CutGrass[]; extern const u8 gReflectionEffectPaletteMap[]; -u8 GetLedgeJumpDirection(s16 x, s16 y, u8 z); -u8 sub_8063FDC(u32 direction); +u8 GetLedgeJumpDirection(s16 x, s16 y, u8 direction); +u8 GetGlideMovementAction(u32 direction); u8 GetRideWaterCurrentMovementAction(u32 direction); u8 GetPlayerRunMovementAction(u32 direction); u8 GetPlayerRunSlowMovementAction(u32 direction); @@ -206,12 +221,13 @@ u8 GetAcroWheelieFaceDirectionMovementAction(u32 direction); u8 GetAcroPopWheelieFaceDirectionMovementAction(u32 direction); u8 GetAcroEndWheelieFaceDirectionMovementAction(u32 direction); u8 GetAcroWheelieHopFaceDirectionMovementAction(u32 direction); -u8 GetAcroWheelieHopDirectionMovementAction(u32 direction); -u8 GetAcroWheelieJumpDirectionMovementAction(u32 direction); +u8 GetAcroWheelieHopMovementAction(u32 direction); +u8 GetAcroPopWheelieMoveMovementAction(u32 direction); +u8 GetAcroWheelieJumpMovementAction(u32 direction); u8 GetJumpInPlaceTurnAroundMovementAction(u32 direction); -u8 GetAcroWheelieInPlaceDirectionMovementAction(u32 direction); -u8 GetAcroPopWheelieMoveDirectionMovementAction(u32 direction); -u8 GetAcroWheelieMoveDirectionMovementAction(u32 direction); +u8 GetAcroWheelieInPlaceMovementAction(u32 direction); +u8 GetAcroPopWheelieMoveMovementAction(u32 direction); +u8 GetAcroWheelieMoveMovementAction(u32 direction); u8 GetJumpSpecialWithEffectMovementAction(u32 direction); u8 GetFishingBiteDirectionAnimNum(u8 direction); void TrySpawnObjectEvents(s16 cameraX, s16 cameraY); diff --git a/include/event_scripts.h b/include/event_scripts.h index 3a25a5fc9..49857a76b 100644 --- a/include/event_scripts.h +++ b/include/event_scripts.h @@ -1257,7 +1257,7 @@ extern const u8 EventScript_CantUseWaterfall[]; extern const u8 EventScript_VsSeekerChargingDone[]; extern const u8 EventScript_FieldPoison[]; extern const u8 EventScript_EggHatch[]; -extern const u8 EventScript_1C1361[]; +extern const u8 EventScript_DoFallWarp[]; // overworld diff --git a/include/field_message_box.h b/include/field_message_box.h index 0f81efb20..430f2baf0 100644 --- a/include/field_message_box.h +++ b/include/field_message_box.h @@ -3,6 +3,13 @@ #include "global.h" +enum { + FIELD_MESSAGE_BOX_HIDDEN, + FIELD_MESSAGE_BOX_UNUSED, + FIELD_MESSAGE_BOX_NORMAL, + FIELD_MESSAGE_BOX_AUTO_SCROLL, +}; + bool8 ShowFieldMessage(const u8 *message); bool8 ShowFieldAutoScrollMessage(const u8 *message); void HideFieldMessageBox(void); diff --git a/include/field_player_avatar.h b/include/field_player_avatar.h index 9f726cf99..0c078fc6e 100644 --- a/include/field_player_avatar.h +++ b/include/field_player_avatar.h @@ -26,7 +26,7 @@ void SetPlayerAvatarTransitionFlags(u16 flags); bool8 IsPlayerFacingSurfableFishableWater(void); void StartFishing(u8 secondaryId); u8 GetPlayerAvatarObjectId(void); -u8 PlayerGetZCoord(void); +u8 PlayerGetElevation(void); u8 GetPlayerAvatarGraphicsIdByCurrentState(void); void StartPlayerAvatarSummonMonForFieldMoveAnim(void); void SetPlayerInvisibility(bool8); @@ -41,13 +41,13 @@ void StartPlayerAvatarVsSeekerAnim(void); u8 GetRivalAvatarGraphicsIdByStateIdAndGender(u8 state, u8 gender); u8 GetPlayerAvatarGraphicsIdByStateIdAndGender(u8 state, u8 gender); u8 CheckForObjectEventCollision(struct ObjectEvent *objectEvent, s16 x, s16 y, u8 direction, u8 metatileBehavior); -void PlayerGoSlowest(u8 direction); -void PlayerGoSlow(u8 direction); -void PlayerGoSpeed1(u8 direction); -void PlayerGoSpeed2(u8 direction); -void sub_805C134(u8 direction); +void PlayerWalkSlower(u8 direction); +void PlayerWalkSlow(u8 direction); +void PlayerWalkNormal(u8 direction); +void PlayerWalkFast(u8 direction); +void PlayerGlide(u8 direction); void PlayerRideWaterCurrent(u8 direction); -void PlayerGoSpeed4(u8 direction); +void PlayerWalkFaster(u8 direction); void PlayerRun(u8 direction); void PlayerRunSlow(u8 direction); void PlayerOnBikeCollide(u8 direction); diff --git a/include/field_specials.h b/include/field_specials.h index 08518da03..7bc1e6ad1 100644 --- a/include/field_specials.h +++ b/include/field_specials.h @@ -16,8 +16,7 @@ s32 CountDigits(s32 number); void TV_PrintIntToStringVar(u8 varidx, s32 number); u16 GetStarterSpecies(void); void StopPokemonLeagueLightingEffectTask(void); -void nullsub_60(void); -void nullsub_61(void); +void FieldCB_ShowPortholeView(void); u8 ContextNpcGetTextColor(void); void SetPCBoxToSendMon(u8); u16 GetPCBoxToSendMon(void); diff --git a/include/field_weather.h b/include/field_weather.h index 77308d135..c3c07d10d 100644 --- a/include/field_weather.h +++ b/include/field_weather.h @@ -4,6 +4,20 @@ #include "global.h" #include "constants/field_weather.h" +#define TAG_WEATHER_START 0x1200 +enum { + GFXTAG_CLOUD = TAG_WEATHER_START, + GFXTAG_FOG_H, + GFXTAG_ASH, + GFXTAG_FOG_D, + GFXTAG_SANDSTORM, + GFXTAG_BUBBLE, + GFXTAG_RAIN, +}; +enum { + PALTAG_WEATHER = TAG_WEATHER_START, +}; + struct Weather { union @@ -54,14 +68,14 @@ struct Weather u8 rainStrength; bool8 cloudSpritesCreated; u16 snowflakeVisibleCounter; - u16 unknown_6E2; + u16 snowflakeTimer; u8 snowflakeSpriteCount; u8 targetSnowflakeSpriteCount; - u16 unknown_6E6; + u16 thunderDelay; u16 thunderCounter; - u8 unknown_6EA; - u8 unknown_6EB; - u8 unknown_6EC; + bool8 thunderAllowEnd; + bool8 thunderSkipShort; + u8 thunderShortRetries; bool8 thunderTriggered; u16 fogHScrollPosX; u16 fogHScrollCounter; @@ -70,7 +84,7 @@ struct Weather u8 lightenedFogSpritePalsCount; bool8 fogHSpritesCreated; u16 ashBaseSpritesX; - u16 unknown_6FE; + u16 ashUnused; bool8 ashSpritesCreated; u32 sandstormXOffset; u32 sandstormYOffset; diff --git a/include/fieldmap.h b/include/fieldmap.h index 91e976294..65ab57a1e 100644 --- a/include/fieldmap.h +++ b/include/fieldmap.h @@ -28,14 +28,14 @@ u32 MapGridGetMetatileBehaviorAt(s16, s16); u8 MapGridGetMetatileLayerTypeAt(s16 x, s16 y); void MapGridSetMetatileIdAt(s32, s32, u16); void MapGridSetMetatileEntryAt(s32, s32, u16); -u8 MapGridGetZCoordAt(s32 x, s32 y); +u8 MapGridGetElevationAt(s32 x, s32 y); void GetCameraCoords(u16 *, u16 *); -bool8 MapGridIsImpassableAt(s32, s32); +bool8 MapGridGetCollisionAt(s32, s32); s32 GetMapBorderIdAt(s32, s32); bool32 CanCameraMoveInDirection(s32); const struct MapHeader * GetMapHeaderFromConnection(struct MapConnection * connection); struct MapConnection * GetMapConnectionAtPos(s16 x, s16 y); -void Fieldmap_ApplyGlobalTintToPaletteSlot(u8 slot, u8 count); +void ApplyGlobalTintToPaletteSlot(u8 slot, u8 count); void SaveMapView(void); u32 ExtractMetatileAttribute(u32 attributes, u8 attributeType); u32 MapGridGetMetatileAttributeAt(s16 x, s16 y, u8 attributeType); diff --git a/include/gba/defines.h b/include/gba/defines.h index f0fce824e..860ae5f08 100644 --- a/include/gba/defines.h +++ b/include/gba/defines.h @@ -79,20 +79,6 @@ #define TOTAL_OBJ_TILE_COUNT 1024 -#define RGB(r, g, b) ((r) | ((g) << 5) | ((b) << 10)) -#define RGB2(r, g, b) (((b) << 10) | ((g) << 5) | (r)) -#define _RGB(r, g, b) ((((b) & 0x1F) << 10) + (((g) & 0x1F) << 5) + ((r) & 0x1F)) - -#define RGB_BLACK RGB(0, 0, 0) -#define RGB_WHITE RGB(31, 31, 31) -#define RGB_RED RGB(31, 0, 0) -#define RGB_GREEN RGB(0, 31, 0) -#define RGB_BLUE RGB(0, 0, 31) -#define RGB_YELLOW RGB(31, 31, 0) -#define RGB_MAGENTA RGB(31, 0, 31) -#define RGB_CYAN RGB(0, 31, 31) -#define RGB_WHITEALPHA (RGB_WHITE | 0x8000) - // Some functions are strictly inline asm #define NAKED __attribute__((naked)) #define UNUSED __attribute__((unused)) diff --git a/include/gba/io_reg.h b/include/gba/io_reg.h index 548e27163..53b60d5b6 100644 --- a/include/gba/io_reg.h +++ b/include/gba/io_reg.h @@ -552,6 +552,7 @@ #define WININ_WIN0_BG_ALL (WININ_WIN0_BG0 | WININ_WIN0_BG1 | WININ_WIN0_BG2 | WININ_WIN0_BG3) #define WININ_WIN0_OBJ (1 << 4) #define WININ_WIN0_CLR (1 << 5) +#define WININ_WIN0_ALL (WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR) #define WININ_WIN1_BG0 (1 << 8) #define WININ_WIN1_BG1 (1 << 9) #define WININ_WIN1_BG2 (1 << 10) @@ -559,6 +560,7 @@ #define WININ_WIN1_BG_ALL (WININ_WIN1_BG0 | WININ_WIN1_BG1 | WININ_WIN1_BG2 | WININ_WIN1_BG3) #define WININ_WIN1_OBJ (1 << 12) #define WININ_WIN1_CLR (1 << 13) +#define WININ_WIN1_ALL (WININ_WIN1_BG_ALL | WININ_WIN1_OBJ | WININ_WIN1_CLR) #define WINOUT_WIN01_BG0 (1 << 0) #define WINOUT_WIN01_BG1 (1 << 1) @@ -567,6 +569,7 @@ #define WINOUT_WIN01_BG_ALL (WINOUT_WIN01_BG0 | WINOUT_WIN01_BG1 | WINOUT_WIN01_BG2 | WINOUT_WIN01_BG3) #define WINOUT_WIN01_OBJ (1 << 4) #define WINOUT_WIN01_CLR (1 << 5) +#define WINOUT_WIN01_ALL (WINOUT_WIN01_BG_ALL | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR) #define WINOUT_WINOBJ_BG0 (1 << 8) #define WINOUT_WINOBJ_BG1 (1 << 9) #define WINOUT_WINOBJ_BG2 (1 << 10) @@ -574,6 +577,7 @@ #define WINOUT_WINOBJ_BG_ALL (WINOUT_WINOBJ_BG0 | WINOUT_WINOBJ_BG1 | WINOUT_WINOBJ_BG2 | WINOUT_WINOBJ_BG3) #define WINOUT_WINOBJ_OBJ (1 << 12) #define WINOUT_WINOBJ_CLR (1 << 13) +#define WINOUT_WINOBJ_ALL (WINOUT_WINOBJ_BG_ALL | WINOUT_WINOBJ_OBJ | WINOUT_WINOBJ_CLR) #define WIN_RANGE(a, b) (((a) << 8) | (b)) #define WIN_RANGE2(a, b) ((b) | ((a) << 8)) @@ -584,8 +588,10 @@ #define BLDCNT_TGT1_BG1 (1 << 1) #define BLDCNT_TGT1_BG2 (1 << 2) #define BLDCNT_TGT1_BG3 (1 << 3) +#define BLDCNT_TGT1_BG_ALL (BLDCNT_TGT1_BG0 | BLDCNT_TGT1_BG1 | BLDCNT_TGT1_BG2 | BLDCNT_TGT1_BG3) #define BLDCNT_TGT1_OBJ (1 << 4) #define BLDCNT_TGT1_BD (1 << 5) +#define BLDCNT_TGT1_ALL (BLDCNT_TGT1_BG_ALL | BLDCNT_TGT1_OBJ | BLDCNT_TGT1_BD) // Bits 6-7 select the special effect #define BLDCNT_EFFECT_NONE (0 << 6) // no special effect #define BLDCNT_EFFECT_BLEND (1 << 6) // 1st+2nd targets mixed (controlled by BLDALPHA) @@ -596,9 +602,10 @@ #define BLDCNT_TGT2_BG1 (1 << 9) #define BLDCNT_TGT2_BG2 (1 << 10) #define BLDCNT_TGT2_BG3 (1 << 11) +#define BLDCNT_TGT2_BG_ALL (BLDCNT_TGT2_BG0 | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_BG2 | BLDCNT_TGT2_BG3) #define BLDCNT_TGT2_OBJ (1 << 12) #define BLDCNT_TGT2_BD (1 << 13) -#define BLDCNT_TGT2_ALL (BLDCNT_TGT2_BG0 | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_BG2 | BLDCNT_TGT2_BG3 | BLDCNT_TGT2_OBJ | BLDCNT_TGT2_BD) +#define BLDCNT_TGT2_ALL (BLDCNT_TGT2_BG_ALL | BLDCNT_TGT2_OBJ | BLDCNT_TGT2_BD) // BLDALPHA #define BLDALPHA_BLEND(target1, target2) (((target2) << 8) | (target1)) diff --git a/include/global.fieldmap.h b/include/global.fieldmap.h index 7ab2c12e4..079b0a4b6 100644 --- a/include/global.fieldmap.h +++ b/include/global.fieldmap.h @@ -1,13 +1,23 @@ #ifndef GUARD_GLOBAL_FIELDMAP_H #define GUARD_GLOBAL_FIELDMAP_H -#define METATILE_BEHAVIOR_MASK 0x00FF -#define METATILE_COLLISION_MASK 0x0C00 -#define METATILE_ID_MASK 0x03FF -#define METATILE_ID_UNDEFINED 0x03FF -#define METATILE_ELEVATION_SHIFT 12 -#define METATILE_COLLISION_SHIFT 10 -#define METATILE_ELEVATION_MASK 0xF000 +// Masks/shifts for blocks in the map grid +// Map grid blocks consist of a 10 bit metatile id, a 2 bit collision value, and a 4 bit elevation value +// This is the data stored in each data/layouts/*/map.bin file +#define MAPGRID_METATILE_ID_MASK 0x03FF // Bits 0-9 +#define MAPGRID_COLLISION_MASK 0x0C00 // Bits 10-11 +#define MAPGRID_ELEVATION_MASK 0xF000 // Bits 12-15 +#define MAPGRID_COLLISION_SHIFT 10 +#define MAPGRID_ELEVATION_SHIFT 12 + +// An undefined map grid block has all metatile id bits set and nothing else +#define MAPGRID_UNDEFINED MAPGRID_METATILE_ID_MASK + +enum { + METATILE_LAYER_TYPE_NORMAL, // Metatile uses middle and top bg layers + METATILE_LAYER_TYPE_COVERED, // Metatile uses bottom and middle bg layers + METATILE_LAYER_TYPE_SPLIT, // Metatile uses bottom and top bg layers +}; #define METATILE_ID(tileset, name) (METATILE_##tileset##_##name) @@ -22,6 +32,7 @@ enum METATILE_ATTRIBUTE_LAYER_TYPE, METATILE_ATTRIBUTE_7, METATILE_ATTRIBUTE_COUNT, + METATILE_ATTRIBUTES_ALL = 255 // Special id to get the full attributes value }; enum @@ -39,29 +50,17 @@ enum TILE_TERRAIN_WATERFALL, }; -enum -{ - CONNECTION_INVALID = -1, - CONNECTION_NONE, - CONNECTION_SOUTH, - CONNECTION_NORTH, - CONNECTION_WEST, - CONNECTION_EAST, - CONNECTION_DIVE, - CONNECTION_EMERGE -}; - typedef void (*TilesetCB)(void); struct Tileset { /*0x00*/ bool8 isCompressed; /*0x01*/ bool8 isSecondary; - /*0x04*/ void *tiles; - /*0x08*/ void *palettes; - /*0x0c*/ void *metatiles; + /*0x04*/ const u32 *tiles; + /*0x08*/ const u16 (*palettes)[16]; + /*0x0c*/ const u16 *metatiles; /*0x10*/ TilesetCB callback; - /*0x14*/ u32 *metatileAttributes; + /*0x14*/ const u32 *metatileAttributes; }; struct MapLayout @@ -85,19 +84,28 @@ struct BackupMapLayout struct ObjectEventTemplate { - /*0x00*/ u8 localId; - /*0x01*/ u8 graphicsId; - /*0x02*/ u8 inConnection; - /*0x04*/ s16 x; - /*0x06*/ s16 y; - /*0x08*/ u8 elevation; - /*0x09*/ u8 movementType; - /*0x0A*/ u16 movementRangeX:4; - u16 movementRangeY:4; - /*0x0C*/ u16 trainerType; - /*0x0E*/ u16 trainerRange_berryTreeId; - /*0x10*/ const u8 *script; - /*0x14*/ u16 flagId; + u8 localId; + u8 graphicsId; + u8 kind; // The "kind" field determines how to access objUnion union below. + s16 x, y; + union { + struct { + u8 elevation; + u8 movementType; + u16 movementRangeX:4; + u16 movementRangeY:4; + u16 trainerType; + u16 trainerRange_berryTreeId; + } normal; + struct { + u8 targetLocalId; + u8 padding[3]; + u16 targetMapNum; + u16 targetMapGroup; + } clone; + } objUnion; + const u8 *script; + u16 flagId; }; /*size = 0x18*/ struct WarpEvent diff --git a/include/global.h b/include/global.h index e474e1eaa..79dedcdc2 100644 --- a/include/global.h +++ b/include/global.h @@ -8,7 +8,9 @@ #include "constants/flags.h" #include "constants/vars.h" #include "constants/species.h" +#include "constants/pokedex.h" #include "constants/easy_chat.h" +#include "constants/rgb.h" // Prevent cross-jump optimization. #define BLOCK_CROSS_JUMP asm(""); @@ -181,8 +183,8 @@ struct Pokedex { /*0x00*/ u8 order; /*0x01*/ u8 mode; - /*0x02*/ u8 nationalMagic; // must equal 0xDA in order to have National mode - /*0x03*/ u8 unknown2; // set to 0xB9 when national dex is first enabled + /*0x02*/ u8 unused; // set to 0xDA, never read + /*0x03*/ u8 nationalMagic; // set to 0xB9 when national dex is first enabled /*0x04*/ u32 unownPersonality; // set when you first see Unown /*0x08*/ u32 spindaPersonality; // set when you first see Spinda /*0x0C*/ u32 unknown3; @@ -813,7 +815,7 @@ struct MapPosition { s16 x; s16 y; - s8 height; + s8 elevation; }; extern struct SaveBlock1* gSaveBlock1Ptr; diff --git a/include/graphics.h b/include/graphics.h index f26373307..cad6b7241 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -2875,7 +2875,7 @@ extern const u32 gTMCase_TMSpriteGfx[]; extern const u32 gUnknown_8E84F20[]; extern const u32 gUnknown_8E85068[]; extern const u8 gUnknown_8E99118[]; -extern const u16 gTMCaseMainWindowPalette[]; +extern const u16 gStandardMenuPalette[]; // egg_hatch extern const u32 gBattleTextboxTiles[]; @@ -2916,11 +2916,11 @@ extern const u32 gItemPcBgPals[]; extern const u8 gItemPcTilemap[]; // item_menu_icons -extern const u32 gUnknown_8E8362C[]; -extern const u32 gUnknown_8E83DBC[]; -extern const u32 gUnknown_8E84560[]; -extern const u32 gFile_graphics_interface_bag_swap_sheet[]; -extern const u32 gFile_graphics_interface_bag_swap_palette[]; +extern const u32 gBagMale_Gfx[]; +extern const u32 gBagFemale_Gfx[]; +extern const u32 gBag_Pal[]; +extern const u32 gSwapLine_Gfx[]; +extern const u32 gSwapLine_Pal[]; extern const u8 gFile_graphics_items_icons_question_mark_sheet[]; extern const u8 gFile_graphics_items_icon_palettes_question_mark_palette[]; extern const u8 gFile_graphics_items_icons_master_ball_sheet[]; @@ -3687,6 +3687,10 @@ extern const u32 gBattleStatMask8_Pal[]; extern const u32 gBattleStatMask1_Tilemap[]; extern const u32 gBattleStatMask2_Tilemap[]; +extern const u32 gSmokescreenImpactTiles[]; +extern const u32 gSmokescreenImpactPalette[]; +extern const u32 gEnemyMonShadow_Gfx[]; + // battle anim particle gfx extern const u32 gBattleAnimSpriteGfx_Bone[]; extern const u32 gBattleAnimSpriteGfx_Spark[]; @@ -3908,7 +3912,7 @@ extern const u32 gBattleAnimSpriteGfx_Pokeball[]; extern const u32 gBattleAnimSpriteGfx_Spotlight[]; extern const u32 gBattleAnimSpriteGfx_LetterZ[]; extern const u32 gBattleAnimSpriteGfx_RapidSpin[]; -extern const u32 gBattleAnimSpriteGfx_TriForceTriangle[]; +extern const u32 gBattleAnimSpriteGfx_TriAttackTriangle[]; extern const u32 gBattleAnimSpriteGfx_WispOrb[]; extern const u32 gBattleAnimSpriteGfx_WispFire[]; extern const u32 gBattleAnimSpriteGfx_GoldStars[]; @@ -4161,7 +4165,7 @@ extern const u32 gBattleAnimSpritePal_JaggedMusicNote[]; extern const u32 gBattleAnimSpritePal_Pokeball[]; extern const u32 gBattleAnimSpritePal_LetterZ[]; extern const u32 gBattleAnimSpritePal_RapidSpin[]; -extern const u32 gBattleAnimSpritePal_TriForceTriangle[]; +extern const u32 gBattleAnimSpritePal_TriAttackTriangle[]; extern const u32 gBattleAnimSpritePal_WispOrb[]; extern const u32 gBattleAnimSpritePal_GoldStars[]; extern const u32 gBattleAnimSpritePal_EclipsingOrb[]; @@ -4215,8 +4219,8 @@ extern const u32 gBattleAnimSpritePal_WhipHit[]; extern const u32 gBattleAnimSpritePal_BlueRing2[]; // battle anim task -extern const u32 gUnknown_D2EC24_Gfx[]; -extern const u32 gUnknown_D2EC24_Tilemap[]; +extern const u32 gUnusedLevelupAnimationGfx[]; +extern const u32 gUnusedLevelupAnimationTilemap[]; extern const u32 gCureBubblesGfx[]; extern const u32 gCureBubblesPal[]; extern const u32 gCureBubblesTilemap[]; @@ -4848,7 +4852,7 @@ extern const u32 gBuyMenuFrame_TmHmTilemap[]; extern const u32 gBuyMenuFrame_Pal[]; // battle_message -extern const u16 gUnknown_8D2FBB4[]; +extern const u16 gPPTextPalette[]; // trainer card extern const u16 gKantoTrainerCard_Pal[]; @@ -4924,11 +4928,11 @@ extern const u16 gNamingScreenInputArrow_Gfx[]; extern const u16 gNamingScreenUnderscore_Gfx[]; // pokemon_storage_system -extern const u32 gPSSMenu_Gfx[]; -extern const u32 gUnknown_8E9CAEC[]; -extern const u16 gPSSMenu_Pal[]; -extern const u16 gUnknown_8E9C3F8[]; -extern const u16 gUnknown_8E9C418[]; +extern const u32 gPokeStorageMenu_Gfx[]; +extern const u32 gPokeStoragePartyMenu_Tilemap[]; +extern const u16 gPokeStoragePartyMenu_Pal[]; +extern const u16 gPokeStorageInterface_Pal[]; +extern const u16 gPokeStorageInterface_NoDisplayMon_Pal[]; // pokedex_screen extern const u16 gDexScreen_TopMenuIconPals_AtoZ[]; diff --git a/include/help_message.h b/include/help_message.h index df387c560..b75abc77e 100644 --- a/include/help_message.h +++ b/include/help_message.h @@ -1,10 +1,12 @@ #ifndef GUARD_HELP_MESSAGE_H #define GUARD_HELP_MESSAGE_H +extern const u8 gHelpMessageWindow_Gfx[]; + void DestroyHelpMessageWindow(u8 a0); u8 CreateHelpMessageWindow(void); void PrintTextOnHelpMessageWindow(const u8 * text, u8 mode); void MapNamePopupWindowIdSetDummy(void); -void sub_8112F18(u8 windowId); +void DrawHelpMessageWindowTilesById(u8 windowId); #endif //GUARD_HELP_MESSAGE_H diff --git a/include/intro.h b/include/intro.h index 1630b845e..7ed777ad6 100644 --- a/include/intro.h +++ b/include/intro.h @@ -1,7 +1,7 @@ #ifndef GUARD_INTRO_H #define GUARD_INTRO_H -void CB2_CopyrightScreen(void); -void c2_copyright_1(void); +void CB2_InitCopyrightScreenAfterTitleScreen(void); +void CB2_InitCopyrightScreenAfterBootup(void); #endif //GUARD_INTRO_H diff --git a/include/item.h b/include/item.h index 5496bc869..e58348a78 100644 --- a/include/item.h +++ b/include/item.h @@ -16,11 +16,11 @@ struct Item u8 importance; u8 exitsBagOnUse; u8 pocket; - u8 type; + u8 type; // unused for balls ItemUseFunc fieldUseFunc; u8 battleUsage; ItemUseFunc battleUseFunc; - u8 secondaryId; + u8 secondaryId; // only used for fishing rods }; struct BagPocket @@ -29,6 +29,15 @@ struct BagPocket u8 capacity; }; +// Item type IDs (used to determine the exit callback) +enum { + ITEM_TYPE_MAIL, + ITEM_TYPE_PARTY_MENU, + ITEM_TYPE_FIELD, + ITEM_TYPE_UNUSED, // Used for Pokeblock case in RSE + ITEM_TYPE_BAG_MENU, // No exit callback, stays in bag menu +}; + extern const struct Item gItems[]; extern struct BagPocket gBagPockets[]; diff --git a/include/item_menu_icons.h b/include/item_menu_icons.h index 01e481080..57f03422a 100644 --- a/include/item_menu_icons.h +++ b/include/item_menu_icons.h @@ -3,26 +3,26 @@ #include "global.h" -extern const struct CompressedSpriteSheet gSpriteSheet_Backpack; -extern const struct CompressedSpriteSheet gSpriteSheet_Satchel; -extern const struct CompressedSpritePalette gSpritePalette_BagOrSatchel; +extern const struct CompressedSpriteSheet gSpriteSheet_BagMale; +extern const struct CompressedSpriteSheet gSpriteSheet_BagFemale; +extern const struct CompressedSpritePalette gSpritePalette_Bag; extern const struct CompressedSpriteSheet gBagSwapSpriteSheet; extern const struct CompressedSpritePalette gBagSwapSpritePalette; void ResetItemMenuIconState(void); -void ItemMenuIcons_CreateInsertIndicatorBarHidden(void); +void CreateSwapLine(void); void DestroyItemMenuIcon(bool8 a0); void CreateItemMenuIcon(u16 itemId, bool8 a0); void CopyItemIconPicTo4x4Buffer(const void *src, void *dest); u8 AddItemIconObject(u16 tilesTag, u16 paletteTag, u16 itemId); u8 AddItemIconObjectWithCustomObjectTemplate(const struct SpriteTemplate * origTemplate, u16 tilesTag, u16 paletteTag, u16 itemId); -void sub_80989A0(u16 itemId, u8 idx); -void ItemMenuIcons_MoveInsertIndicatorBar(s16 x, u16 y); -void ItemMenuIcons_ToggleInsertIndicatorBarVisibility(bool8 invisible); +void CreateBerryPouchItemIcon(u16 itemId, u8 idx); +void UpdateSwapLinePos(s16 x, u16 y); +void SetSwapLineInvisibility(bool8 invisible); void SetBagVisualPocketId(u8); void ShakeBagSprite(void); const void *GetItemIconGfxPtr(u16 itemId, u8 ptrId); -void CreateBagOrSatchelSprite(u8 animNum); +void CreateBagSprite(u8 animNum); #endif // GUARD_ITEM_MENU_ICONS diff --git a/include/item_use.h b/include/item_use.h index d08878f72..77aed7820 100644 --- a/include/item_use.h +++ b/include/item_use.h @@ -6,9 +6,9 @@ void Task_ItemUse_CloseMessageBoxAndReturnToField_VsSeeker(u8); void ItemUse_SetQuestLogEvent(u8, struct Pokemon *, u16, u16); -void FieldUseFunc_OrangeMail(u8 taskId); -void FieldUseFunc_MachBike(u8 taskId); -void FieldUseFunc_OldRod(u8 taskId); +void FieldUseFunc_Mail(u8 taskId); +void FieldUseFunc_Bike(u8 taskId); +void FieldUseFunc_Rod(u8 taskId); void FieldUseFunc_CoinCase(u8 taskId); void FieldUseFunc_PowderJar(u8 taskId); void FieldUseFunc_PokeFlute(u8 taskId); @@ -22,14 +22,14 @@ void FieldUseFunc_TmCase(u8 taskId); void FieldUseFunc_BerryPouch(u8 taskId); void BattleUseFunc_BerryPouch(u8 taskId); void FieldUseFunc_TeachyTv(u8 taskId); -void FieldUseFunc_SuperRepel(u8 taskId); -void FieldUseFunc_BlackFlute(u8 taskId); +void FieldUseFunc_Repel(u8 taskId); +void FieldUseFunc_BlackWhiteFlute(u8 taskId); void FieldUseFunc_TownMap(u8 taskId); void FieldUseFunc_FameChecker(u8 taskId); void FieldUseFunc_VsSeeker(u8 taskId); void BattleUseFunc_PokeBallEtc(u8 taskId); void BattleUseFunc_PokeFlute(u8 taskId); -void BattleUseFunc_GuardSpec(u8 taskId); +void BattleUseFunc_StatBooster(u8 taskId); void BattleUseFunc_Medicine(u8 taskId); void BattleUseFunc_Ether(u8 taskId); void BattleUseFunc_PokeDoll(u8 taskId); @@ -38,7 +38,7 @@ void ItemUseOutOfBattle_EscapeRope(u8 taskId); void ItemUseOutOfBattle_EnigmaBerry(u8 taskId); void ItemUseInBattle_EnigmaBerry(u8 taskId); void ItemUseOutOfBattle_Itemfinder(u8 taskId); -void sub_80A1C44(u8 taskId); +void Task_UseDigEscapeRopeOnField(u8 taskId); u8 CanUseEscapeRopeOnCurrMap(void); u8 CheckIfItemIsTMHMOrEvolutionStone(u16 itemId); diff --git a/include/keyboard_text.h b/include/keyboard_text.h index cc436c2d3..2a6a7e572 100644 --- a/include/keyboard_text.h +++ b/include/keyboard_text.h @@ -32,10 +32,10 @@ extern const u8 gText_UnionRoomChatKeyboard_Emoji8[]; extern const u8 gText_UnionRoomChatKeyboard_Emoji9[]; extern const u8 gText_UnionRoomChatKeyboard_Emoji10[]; -extern const u8 gUnknown_847A8D8[]; -extern const u8 gUnknown_847A8FA[]; -extern const u8 gUnknown_847A913[]; -extern const u8 gUnknown_847A934[]; +extern const u8 gText_EasyChatKeyboard_ABCDEFothers[]; +extern const u8 gText_EasyChatKeyboard_GHIJKL[]; +extern const u8 gText_EasyChatKeyboard_MNOPQRS[]; +extern const u8 gText_EasyChatKeyboard_TUVWXYZ[]; extern const u8 gText_NamingScreenKeyboard_abcdef[]; extern const u8 gText_NamingScreenKeyboard_ghijkl[]; diff --git a/include/link.h b/include/link.h index 47f85bb9d..74a94920c 100644 --- a/include/link.h +++ b/include/link.h @@ -68,7 +68,7 @@ #define LINKTYPE_TRADE 0x1111 // trade #define LINKTYPE_0x1122 0x1122 // trade -#define LINKTYPE_0x1133 0x1133 // trade +#define LINKTYPE_TRADE_SETUP 0x1133 #define LINKTYPE_0x1144 0x1144 // trade #define LINKTYPE_BATTLE 0x2211 #define LINKTYPE_0x2222 0x2222 // unused battle? @@ -78,11 +78,19 @@ #define LINKTYPE_BATTLE_TOWER_50 0x2266 #define LINKTYPE_BATTLE_TOWER_OPEN 0x2277 #define LINKTYPE_BATTLE_TOWER 0x2288 -#define LINKTYPE_0x3311 0x3311 -#define LINKTYPE_0x3322 0x3322 +#define LINKTYPE_RECORD_MIX_BEFORE 0x3311 +#define LINKTYPE_RECORD_MIX_AFTER 0x3322 #define LINKTYPE_BERRY_BLENDER_SETUP 0x4411 #define LINKTYPE_CONTEST_GMODE 0x6601 +enum { + BLOCK_REQ_SIZE_NONE, // Identical to 200 + BLOCK_REQ_SIZE_200, + BLOCK_REQ_SIZE_100, + BLOCK_REQ_SIZE_220, + BLOCK_REQ_SIZE_40, +}; + #define MASTER_HANDSHAKE 0x8FFF #define SLAVE_HANDSHAKE 0xB9A0 @@ -102,11 +110,10 @@ enum EXCHANGE_NOT_STARTED, EXCHANGE_COMPLETE, EXCHANGE_TIMED_OUT, - EXCHANGE_IN_PROGRESS, - EXCHANGE_STAT_4, - EXCHANGE_STAT_5, - EXCHANGE_STAT_6, - EXCHANGE_STAT_7 + EXCHANGE_DIFF_SELECTIONS, + EXCHANGE_PLAYER_NOT_READY, + EXCHANGE_PARTNER_NOT_READY, + EXCHANGE_WRONG_NUM_PLAYERS, }; enum @@ -227,7 +234,7 @@ bool8 IsLinkPlayerDataExchangeComplete(void); u32 GetLinkPlayerTrainerId(u8); void ResetLinkPlayers(void); u8 GetMultiplayerId(void); -u8 bitmask_all_link_players_but_self(void); +u8 BitmaskAllOtherLinkPlayers(void); bool8 SendBlock(u8, const void *, u16); u8 GetBlockReceivedStatus(void); void ResetBlockReceivedFlags(void); @@ -269,17 +276,17 @@ void ClearLinkCallback_2(void); void Rfu_SetLinkStandbyCallback(void); void ConvertLinkPlayerName(struct LinkPlayer * linkPlayer); bool8 IsWirelessAdapterConnected(void); -bool8 Link_PrepareCmd0xCCCC_Rfu0xA100(u8 blockRequestType); +bool8 SendBlockRequest(u8 blockRequestType); void LinkVSync(void); bool8 HandleLinkConnection(void); void LocalLinkPlayerToBlock(void); void LinkPlayerFromBlock(u32 who); void SetLinkErrorFromRfu(u32 status, u8 lastSendQueueCount, u8 lastRecvQueueCount, u8 isConnectionError); -u8 sub_800A8D4(void); -void sub_800AA24(void); -void sub_800A900(u8 a0); -u8 sub_800A8A4(void); -void sub_800A9A4(void); +u8 GetLinkPlayerCountAsBitFlags(void); +void ResetLinkPlayerCount(void); +void SaveLinkPlayers(u8 numPlayers); +u8 GetSavedLinkPlayerCountAsBitFlags(void); +void CheckLinkPlayersMatchSaved(void); void SetLocalLinkPlayerId(u8 playerId); bool32 IsSendingKeysToLink(void); u32 GetLinkRecvQueueLength(void); diff --git a/include/link_rfu.h b/include/link_rfu.h index 1e4a72c6c..e22414786 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -303,6 +303,6 @@ void sub_80FB030(u32 a0); void ClearRecvCommands(void); #include "mevent_server.h" -extern const struct mevent_server_cmd gMEventSrvScript_OtherTrainerCanceled[]; +extern const struct mevent_server_cmd gServerScript_ClientCanceledCard[]; #endif //GUARD_LINK_RFU_H diff --git a/include/mevent.h b/include/mevent.h index 3dc1621b0..9a273a872 100644 --- a/include/mevent.h +++ b/include/mevent.h @@ -3,6 +3,20 @@ #include "global.h" +#define CARD_STAT_BATTLES_WON 0 +#define CARD_STAT_BATTLES_LOST 1 +#define CARD_STAT_NUM_TRADES 2 +#define CARD_STAT_NUM_STAMPS 3 +#define CARD_STAT_MAX_STAMPS 4 + +enum { + NEWS_INPUT_A, + NEWS_INPUT_B, + NEWS_INPUT_SCROLL_UP, + NEWS_INPUT_SCROLL_DOWN, + NEWS_INPUT_NONE = 0xFF +}; + struct MEventClientHeaderStruct { u32 unk_00; @@ -33,12 +47,12 @@ struct MEvent_Str_2 u8 fill_00[0x40]; }; -struct UnkStruct_8467FB8 +struct WonderGraphics { - u8 textPal1:4; - u8 textPal2:4; - u8 textPal3:4; - u8 index:4; + u8 titleTextPal:4; + u8 bodyTextPal:4; + u8 footerTextPal:4; + u8 stampShadowPal:4; const u8 * tiles; const u8 * map; const u16 * pal; @@ -67,25 +81,25 @@ u32 sub_8144418(const u16 * a0, const struct MEventClientHeaderStruct * a1, void u32 MEvent_CanPlayerReceiveDistributionMon(const u16 * a0, const struct MEventClientHeaderStruct * a1, void *unused); bool32 sub_8144474(const struct MEventClientHeaderStruct * a0, const u16 * a1); u16 sub_81444B0(const struct MEventClientHeaderStruct * a0, u32 command); -bool32 InitWonderCardResources(struct WonderCard * r5, struct WonderCardMetadata * r6); -bool32 InitWonderNewsResources(const struct WonderNews * a0); -s32 FadeToWonderCardMenu(void); -s32 FadeToWonderNewsMenu(void); +bool32 WonderCard_Init(struct WonderCard * card, struct WonderCardMetadata * metadata); +bool32 WonderNews_Init(const struct WonderNews * news); +s32 WonderCard_Enter(void); +s32 WonderNews_Enter(void); void DestroyWonderCard(void); void DestroyWonderNews(void); -void DestroyWonderCardResources(void); -void DestroyWonderNewsResources(void); -s32 FadeOutFromWonderCard(bool32 flag); -s32 FadeOutFromWonderNews(bool32 flag); +void WonderCard_Destroy(void); +void WonderNews_Destroy(void); +s32 WonderCard_Exit(bool32 flag); +s32 WonderNews_Exit(bool32 flag); bool32 CheckReceivedGiftFromWonderCard(void); -void MENews_AddScrollIndicatorArrowPair(void); -void MENews_RemoveScrollIndicatorArrowPair(void); +void WonderNews_AddScrollIndicatorArrowPair(void); +void WonderNews_RemoveScrollIndicatorArrowPair(void); bool32 WonderNews_Test_Unk_02(void); bool32 WonderCard_Test_Unk_08_6(void); -u32 MENews_GetInput(u16 input); +u32 WonderNews_GetInput(u16 input); void InitMEventData(void); u16 MEvent_GetBattleCardCount(u32 command); -void MEvent_RecordIdOfWonderCardSenderByEventType(u32 eventId, u32 trainerId); +void MysteryGift_TryIncrementStat(u32 eventId, u32 trainerId); u16 *GetMEventProfileECWordsMaybe(void); void ResetReceivedWonderCardFlag(void); bool32 MEventHandleReceivedWonderCard(u16 flagId); diff --git a/include/new_menu_helpers.h b/include/new_menu_helpers.h index 99a8e1400..3f1f074a7 100644 --- a/include/new_menu_helpers.h +++ b/include/new_menu_helpers.h @@ -5,6 +5,8 @@ #include "text.h" #include "task.h" +extern const u16 gMenuMessageWindow_Gfx[]; + void ClearScheduledBgCopiesToVram(void); void ScheduleBgCopyTilemapToVram(u8 bgId); void DoScheduledBgTilemapCopiesToVram(void); @@ -31,9 +33,9 @@ void DrawDialogueFrame(u8 windowId, bool8 transfer); void DrawStdWindowFrame(u8 windowId, bool8 copyNow); void ClearDialogWindowAndFrame(u8 windowId, bool8 copyToVram); void ClearStdWindowAndFrame(u8 windowId, bool8 copyNow); -void sub_80F771C(bool8 copyToVram); +void EraseFieldMessageBox(bool8 copyToVram); void SetStdWindowBorderStyle(u8 windowId, bool8 copyToVram); -void sub_80F7768(u8 windowId, bool8 copyToVram); +void LoadMessageBoxAndFrameGfx(u8 windowId, bool8 copyToVram); void Menu_LoadStdPal(void); void Menu_LoadStdPalAt(u16 offset); void DisplayItemMessageOnField(u8 taskId, u8 fontId, const u8 *src, TaskFunc callback); @@ -46,7 +48,7 @@ void RemoveStartMenuWindow(void); u16 GetStdWindowBaseTileNum(void); void DrawHelpMessageWindowWithText(const u8 * text); void DestroyHelpMessageWindow_(void); -void LoadSignPostWindowFrameGfx(void); +void LoadSignpostWindowFrameGfx(void); void SetDefaultFontsPointer(void); #endif // GUARD_NEW_MENU_HELPERS_H diff --git a/include/palette.h b/include/palette.h index 55054b63d..4d4477b13 100644 --- a/include/palette.h +++ b/include/palette.h @@ -74,11 +74,10 @@ void TintPalette_GrayScale(u16 *palette, u16 count); void TintPalette_GrayScale2(u16 *palette, u16 count); void TintPalette_SepiaTone(u16 *palette, u16 count); void TintPalette_CustomTone(u16 *palette, u16 count, u16 rTone, u16 gTone, u16 bTone); -void sub_80716F8(const u16 *src, u16 *dst, u16 count, u8 a4); -void sub_80717A8(u32 a1, s8 a2, u8 a3, u8 a4, u16 a5, u8 a6, u8 a7); -bool32 sub_807185C(u8 var); -void sub_8071898(void); -void ResetPaletteStructByUid(u16 a1); -void ResetPaletteStruct(u8 paletteNum); +void PaletteStruct_ResetById(u16 id); +void CopyPaletteInvertedTint(const u16 *src, u16 *dst, u16 count, u8 tone); +void BlendPalettesGradually(u32 selectedPalettes, s8 delay, u8 coeff, u8 coeffTarget, u16 color, u8 priority, u8 id); +bool32 IsBlendPalettesGraduallyTaskActive(u8 var); +void DestroyBlendPalettesGraduallyTask(void); #endif // GUARD_PALETTE_H diff --git a/include/palette_util.h b/include/palette_util.h new file mode 100644 index 000000000..b33d60f79 --- /dev/null +++ b/include/palette_util.h @@ -0,0 +1,83 @@ +#ifndef GUARD_PALETTE_UTIL_H +#define GUARD_PALETTE_UTIL_H + +struct PulseBlendSettings +{ + u16 blendColor; + u16 paletteOffset; + u8 numColors; + u8 delay; + u8 numFadeCycles; + s8 maxBlendCoeff:4; + s8 fadeType:2; + s8 restorePaletteOnUnload:1; + s8 unk7_7:1; +}; + +struct PulseBlendPalette +{ + u8 paletteSelector; + u8 blendCoeff:4; + u8 fadeDirection:1; + s8 unk1_5:1; + s8 available:1; + u32 inUse:1; + u8 delayCounter; + u8 fadeCycleCounter; + struct PulseBlendSettings pulseBlendSettings; +}; + +struct PulseBlend +{ + u16 usedPulseBlendPalettes; + struct PulseBlendPalette pulseBlendPalettes[16]; +}; + +#define FLASHUTIL_USE_EXISTING_COLOR (1 << 15) + +struct RouletteFlashSettings +{ + u16 color; + u16 paletteOffset; + u8 numColors; + u8 delay; + u8 unk6; // Set but never used + s8 numFadeCycles:5; + s8 unk7_5:2; // Set but never used + s8 colorDeltaDir:1; +}; + +struct RouletteFlashPalette +{ + u8 state:7; + u8 available:1; + u8 delayCounter; + s8 fadeCycleCounter; + s8 colorDelta; + struct RouletteFlashSettings settings; +}; + +struct RouletteFlashUtil +{ + u8 enabled; + u8 unused; + u16 flags; + struct RouletteFlashPalette palettes[16]; +}; + +void RouletteFlash_Reset(struct RouletteFlashUtil *); +u8 RouletteFlash_Add(struct RouletteFlashUtil *, u8, const struct RouletteFlashSettings *); +void RouletteFlash_Run(struct RouletteFlashUtil *); +void RouletteFlash_Enable(struct RouletteFlashUtil *, u16); +void RouletteFlash_Stop(struct RouletteFlashUtil *, u16); +void InitPulseBlend(struct PulseBlend *); +int InitPulseBlendPaletteSettings(struct PulseBlend *, const struct PulseBlendSettings *); +static void ClearPulseBlendPalettesSettings(struct PulseBlendPalette *); +void UnloadUsedPulseBlendPalettes(struct PulseBlend *, u16, u8); +void MarkUsedPulseBlendPalettes(struct PulseBlend *, u16, u8); +void UnmarkUsedPulseBlendPalettes(struct PulseBlend *, u16, u8); +void UpdatePulseBlend(struct PulseBlend *); +void FillTilemapRect(u16 *dest, u16 src, u8 left, u8 top, u8 width, u8 height); +void SetTilemapRect(u16 *dest, u16 *src, u8 left, u8 top, u8 width, u8 height); + +#endif // GUARD_PALETTE_UTIL_H diff --git a/include/party_menu.h b/include/party_menu.h index 69f25e319..97379910f 100644 --- a/include/party_menu.h +++ b/include/party_menu.h @@ -11,13 +11,12 @@ struct PartyMenu TaskFunc task; u8 menuType:4; u8 layout:2; - u8 unk_8_6:2; + u8 chooseMonsBattleType:2; s8 slotId; s8 slotId2; u8 action; u16 bagItem; - s16 data1; // used variously as a moveId, counter, moveSlotId, or cursorPos - s16 learnMoveState; + s16 data[2]; }; extern struct PartyMenu gPartyMenu; @@ -53,20 +52,20 @@ void SetUsedFlyQuestLogEvent(const u8 *healLocCtrlData); void CB2_ShowPartyMenuForItemUse(void); void ItemUseCB_Medicine(u8 taskId, TaskFunc func); void ItemUseCB_MedicineStep(u8 taskId, TaskFunc func); -void ItemUseCB_PPRecovery(u8 taskId, UNUSED TaskFunc func); -void ItemUseCB_PPUp(u8 taskId, UNUSED TaskFunc func); +void ItemUseCB_TryRestorePP(u8 taskId, TaskFunc func); +void ItemUseCB_PPUp(u8 taskId, TaskFunc func); u16 ItemIdToBattleMoveId(u16 item); bool8 IsMoveHm(u16 move); bool8 MonKnowsMove(struct Pokemon *mon, u16 move); -void ItemUseCB_TMHM(u8 taskId, UNUSED TaskFunc func); +void ItemUseCB_TMHM(u8 taskId, TaskFunc func); void ItemUseCB_RareCandy(u8 taskId, TaskFunc func); -void ItemUseCB_SacredAsh(u8 taskId, UNUSED TaskFunc func); +void ItemUseCB_SacredAsh(u8 taskId, TaskFunc func); void ItemUseCB_EvolutionStone(u8 taskId, TaskFunc func); u8 GetItemEffectType(u16 item); void CB2_PartyMenuFromStartMenu(void); void CB2_ChooseMonToGiveItem(void); void ChooseMonToGiveMailFromMailbox(void); -void InitChooseHalfPartyForBattle(u8 a1); +void InitChooseMonsForBattle(u8 chooseMonsBattleType); void ClearSelectedPartyOrder(void); void ChooseMonForTradingBoard(u8 menuType, MainCallback callback); void ChooseMonForMoveTutor(void); diff --git a/include/pokedex.h b/include/pokedex.h index 8c2281702..0e20648f7 100644 --- a/include/pokedex.h +++ b/include/pokedex.h @@ -1,10 +1,6 @@ #ifndef GUARD_POKEDEX_H #define GUARD_POKEDEX_H -#define KANTO_DEX_COUNT 151 -#define HOENN_DEX_COUNT 202 -#define NATIONAL_DEX_COUNT 386 - enum { DEX_MODE_KANTO, diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h index f111796d8..388d3dba5 100644 --- a/include/pokemon_storage_system.h +++ b/include/pokemon_storage_system.h @@ -4,7 +4,18 @@ #include "global.h" #define TOTAL_BOXES_COUNT 14 -#define IN_BOX_COUNT 30 +#define IN_BOX_ROWS 5 // Number of rows, 6 Pokémon per row +#define IN_BOX_COLUMNS 6 // Number of columns, 5 Pokémon per column +#define IN_BOX_COUNT (IN_BOX_ROWS * IN_BOX_COLUMNS) + +/* + COLUMNS +ROWS 0 1 2 3 4 5 + 6 7 8 9 10 11 + 12 13 14 15 16 17 + 18 19 20 21 22 23 + 24 25 26 27 28 29 +*/ enum { @@ -20,10 +31,10 @@ enum WALLPAPER_SEAFLOOR, WALLPAPER_RIVER, WALLPAPER_SKY, - WALLPAPER_POLKADOT, + WALLPAPER_STARS, WALLPAPER_POKECENTER, - WALLPAPER_MACHINE, - WALLPAPER_PLAIN, + WALLPAPER_TILES, + WALLPAPER_SIMPLE, WALLPAPER_COUNT }; #define MAX_DEFAULT_WALLPAPER WALLPAPER_SAVANNA @@ -34,7 +45,7 @@ void SetBoxMonNickAt(u8 boxId, u8 monPosition, const u8 *newNick); s16 CompactPartySlots(void); u32 GetBoxMonDataAt(u8 boxId, u8 monPosition, s32 request); void ZeroBoxMonAt(u8 boxId, u8 monPosition); -void Cb2_ReturnToPSS(void); +void CB2_ReturnToPokeStorage(void); void ResetPokemonStorageSystem(void); u8 StorageGetCurrentBox(void); void DrawTextWindowAndBufferTiles(const u8 *string, void *dst, u8 zero1, u8 zero2, u8 *buffer, s32 bytesToBuffer); diff --git a/include/pokemon_storage_system_internal.h b/include/pokemon_storage_system_internal.h index 3582d1f32..9c1984825 100644 --- a/include/pokemon_storage_system_internal.h +++ b/include/pokemon_storage_system_internal.h @@ -4,9 +4,6 @@ #include "pokemon_storage_system.h" #include "mon_markings.h" -#define IN_BOX_COLUMNS 5 -#define IN_BOX_ROWS 6 - // The maximum number of Pokémon icons that can appear on-screen. // By default the limit is 40 (though in practice only 37 can be). #define MAX_MON_ICONS (IN_BOX_COUNT + PARTY_SIZE + 1 >= 40 ? IN_BOX_COUNT + PARTY_SIZE + 1 : 40) @@ -16,13 +13,6 @@ // between 2 Pokémon with held items #define MAX_ITEM_ICONS 3 -enum -{ - MODE_PARTY, - MODE_BOX, - MODE_2, -}; - enum { OPTION_WITHDRAW, @@ -35,139 +25,200 @@ enum enum { - PC_TEXT_EXIT_BOX, - PC_TEXT_WHAT_YOU_DO, - PC_TEXT_PICK_A_THEME, - PC_TEXT_PICK_A_WALLPAPER, - PC_TEXT_IS_SELECTED, - PC_TEXT_JUMP_TO_WHICH_BOX, - PC_TEXT_DEPOSIT_IN_WHICH_BOX, - PC_TEXT_WAS_DEPOSITED, - PC_TEXT_BOX_IS_FULL, - PC_TEXT_RELEASE_POKE, - PC_TEXT_WAS_RELEASED, - PC_TEXT_BYE_BYE, - PC_TEXT_MARK_POKE, - PC_TEXT_LAST_POKE, - PC_TEXT_PARTY_FULL, - PC_TEXT_HOLDING_POKE, - PC_TEXT_WHICH_ONE_WILL_TAKE, - PC_TEXT_CANT_RELEASE_EGG, - PC_TEXT_CONTINUE_BOX, - PC_TEXT_CAME_BACK, - PC_TEXT_WORRIED, - PC_TEXT_SURPRISE, - PC_TEXT_PLEASE_REMOVE_MAIL, - PC_TEXT_IS_SELECTED2, - PC_TEXT_GIVE_TO_MON, - PC_TEXT_PLACED_IN_BAG, - PC_TEXT_BAG_FULL, - PC_TEXT_PUT_IN_BAG, - PC_TEXT_ITEM_IS_HELD, - PC_TEXT_CHANGED_TO_ITEM, - PC_TEXT_CANT_STORE_MAIL, + MENU_TEXT_CANCEL, + MENU_TEXT_STORE, + MENU_TEXT_WITHDRAW, + MENU_TEXT_MOVE, + MENU_TEXT_SHIFT, + MENU_TEXT_PLACE, + MENU_TEXT_SUMMARY, + MENU_TEXT_RELEASE, + MENU_TEXT_MARK, + MENU_TEXT_JUMP, + MENU_TEXT_WALLPAPER, + MENU_TEXT_NAME, + MENU_TEXT_TAKE, + MENU_TEXT_GIVE, + MENU_TEXT_GIVE2, + MENU_TEXT_SWITCH, + MENU_TEXT_BAG, + MENU_TEXT_INFO, + MENU_TEXT_SCENERY_1, + MENU_TEXT_SCENERY_2, + MENU_TEXT_SCENERY_3, + MENU_TEXT_ETCETERA, + MENU_TEXT_FOREST, + MENU_TEXT_CITY, + MENU_TEXT_DESERT, + MENU_TEXT_SAVANNA, + MENU_TEXT_CRAG, + MENU_TEXT_VOLCANO, + MENU_TEXT_SNOW, + MENU_TEXT_CAVE, + MENU_TEXT_BEACH, + MENU_TEXT_SEAFLOOR, + MENU_TEXT_RIVER, + MENU_TEXT_SKY, + MENU_TEXT_POLKADOT, + MENU_TEXT_POKECENTER, + MENU_TEXT_MACHINE, + MENU_TEXT_SIMPLE, +}; + +// Return IDs for input handlers +enum { + INPUT_NONE, + INPUT_MOVE_CURSOR, + INPUT_2, // Unused + INPUT_3, // Unused + INPUT_CLOSE_BOX, + INPUT_SHOW_PARTY, + INPUT_HIDE_PARTY, + INPUT_BOX_OPTIONS, + INPUT_IN_MENU, + INPUT_SCROLL_RIGHT, + INPUT_SCROLL_LEFT, + INPUT_DEPOSIT, + INPUT_WITHDRAW, + INPUT_MOVE_MON, + INPUT_SHIFT_MON, + INPUT_PLACE_MON, + INPUT_TAKE_ITEM, + INPUT_GIVE_ITEM, + INPUT_SWITCH_ITEMS, + INPUT_PRESSED_B, + INPUT_MULTIMOVE_START, + INPUT_MULTIMOVE_CHANGE_SELECTION, + INPUT_MULTIMOVE_SINGLE, + INPUT_MULTIMOVE_GRAB_SELECTION, + INPUT_MULTIMOVE_UNABLE, + INPUT_MULTIMOVE_MOVE_MONS, + INPUT_MULTIMOVE_PLACE_MONS, }; enum { - PC_TEXT_FMT_NORMAL, - PC_TEXT_FMT_MON_NAME_1, - PC_TEXT_FMT_MON_NAME_2, - PC_TEXT_FMT_MON_NAME_3, - PC_TEXT_FMT_MON_NAME_4, - PC_TEXT_FMT_MON_NAME_5, - PC_TEXT_FMT_MON_NAME_6, - PC_TEXT_FMT_ITEM_NAME, + RELEASE_MON_NOT_ALLOWED, + RELEASE_MON_ALLOWED, + RELEASE_MON_UNDETERMINED = -1, }; enum { - PC_TEXT_CANCEL, - PC_TEXT_STORE, - PC_TEXT_WITHDRAW, - PC_TEXT_MOVE, - PC_TEXT_SHIFT, - PC_TEXT_PLACE, - PC_TEXT_SUMMARY, - PC_TEXT_RELEASE, - PC_TEXT_MARK, - PC_TEXT_JUMP, - PC_TEXT_WALLPAPER, - PC_TEXT_NAME, - PC_TEXT_TAKE, - PC_TEXT_GIVE, - PC_TEXT_GIVE2, - PC_TEXT_SWITCH, - PC_TEXT_BAG, - PC_TEXT_INFO, - PC_TEXT_SCENERY1, - PC_TEXT_SCENERY2, - PC_TEXT_SCENERY3, - PC_TEXT_ETCETERA, - PC_TEXT_FOREST, - PC_TEXT_CITY, - PC_TEXT_DESERT, - PC_TEXT_SAVANNA, - PC_TEXT_CRAG, - PC_TEXT_VOLCANO, - PC_TEXT_SNOW, - PC_TEXT_CAVE, - PC_TEXT_BEACH, - PC_TEXT_SEAFLOOR, - PC_TEXT_RIVER, - PC_TEXT_SKY, - PC_TEXT_POLKADOT, - PC_TEXT_POKECENTER, - PC_TEXT_MACHINE, - PC_TEXT_SIMPLE, + MODE_PARTY, + MODE_BOX, + MODE_MOVE, }; enum { CURSOR_AREA_IN_BOX, CURSOR_AREA_IN_PARTY, - CURSOR_AREA_BOX, + CURSOR_AREA_BOX_TITLE, CURSOR_AREA_BUTTONS, // Party Pokemon and Close Box }; +#define CURSOR_AREA_IN_HAND CURSOR_AREA_BOX_TITLE // Alt name for cursor area used by Move Items + +// IDs for InitMonPlaceChange +enum +{ + CHANGE_GRAB, + CHANGE_PLACE, + CHANGE_SHIFT, +}; + +// IDs for the main functions for moving multiple Pokémon. +// Given as arguments to MultiMove_SetFunction +enum +{ + MULTIMOVE_START, + MULTIMOVE_SINGLE, + MULTIMOVE_CHANGE_SELECTION, + MULTIMOVE_GRAB_SELECTION, + MULTIMOVE_MOVE_MONS, + MULTIMOVE_PLACE_MONS, +}; enum { - SCREEN_CHANGE_EXIT_BOX, - SCREEN_CHANGE_SUMMARY_SCREEN, - SCREEN_CHANGE_NAME_BOX, - SCREEN_CHANGE_ITEM_FROM_BAG, + PALTAG_MON_ICON_0 = 56000, + PALTAG_MON_ICON_1, // Used implicitly in CreateMonIconSprite + PALTAG_MON_ICON_2, // Used implicitly in CreateMonIconSprite + PALTAG_3, // Unused + PALTAG_4, // Unused + PALTAG_5, // Unused + PALTAG_DISPLAY_MON, + PALTAG_MISC_1, // Used by cursor in multimove mode, choose box menu popup + PALTAG_MARKING_COMBO, + PALTAG_BOX_TITLE, + PALTAG_MISC_2, // Used by waveforms, cursor in normal mode, cursor shadow, box scroll arrows + PALTAG_ITEM_ICON_0, + PALTAG_ITEM_ICON_1, // Used implicitly in CreateItemIconSprites + PALTAG_ITEM_ICON_2, // Used implicitly in CreateItemIconSprites + PALTAG_MARKING_MENU, }; -#define TAG_PAL_WAVEFORM 0xDACA -#define TAG_PAL_DAC8 0xDAC8 -#define TAG_PAL_DAC6 0xDAC6 -#define TAG_PAL_DACE 0xDACE -#define TAG_PAL_DAC7 0xDAC7 -#define TAG_PAL_DAC9 0xDAC9 -#define TAG_PAL_DAC0 0xDAC0 -#define TAG_PAL_DACB 0xDACB +enum +{ + GFXTAG_CURSOR, + GFXTAG_CURSOR_SHADOW, + GFXTAG_DISPLAY_MON, + GFXTAG_BOX_TITLE, + GFXTAG_BOX_TITLE_ALT, + GFXTAG_WAVEFORM, + GFXTAG_BOX_SCROLL_ARROW, + GFXTAG_ITEM_ICON_0, + GFXTAG_ITEM_ICON_1, // Used implicitly in CreateItemIconSprites + GFXTAG_ITEM_ICON_2, // Used implicitly in CreateItemIconSprites + GFXTAG_CHOOSE_BOX_MENU_CENTER, + GFXTAG_CHOOSE_BOX_MENU_CORNERS, // Used implicitly in LoadChooseBoxMenuGfx + GFXTAG_12, // Unused + GFXTAG_MARKING_MENU, + GFXTAG_14, // Unused + GFXTAG_15, // Unused + GFXTAG_MARKING_COMBO, + GFXTAG_17, // Unused + GFXTAG_MON_ICON, +}; -#define TAG_TILE_WAVEFORM 0x5 -#define TAG_TILE_10 0x10 -#define TAG_TILE_2 0x2 -#define TAG_TILE_D 0xD -#define TAG_TILE_A 0xA -#define TAG_TILE_3 0x3 -#define TAG_TILE_4 0x4 -#define TAG_TILE_12 0x12 -#define TAG_TILE_7 0x7 -#define TAG_TILE_0 0x0 -#define TAG_TILE_1 0x1 -#define TAG_TILE_6 0x6 +// Special box ids for the choose box menu +#define BOXID_NONE_CHOSEN 200 +#define BOXID_CANCELED 201 -struct WallpaperTable + +enum { + CURSOR_ANIM_BOUNCE, + CURSOR_ANIM_STILL, + CURSOR_ANIM_OPEN, + CURSOR_ANIM_FIST, +}; + +enum +{ + RELEASE_ANIM_RELEASE, + RELEASE_ANIM_COME_BACK, +}; + +// IDs for the item icons affine anims +enum +{ + ITEM_ANIM_NONE, + ITEM_ANIM_APPEAR, + ITEM_ANIM_DISAPPEAR, + ITEM_ANIM_PICK_UP, + ITEM_ANIM_PUT_DOWN, + ITEM_ANIM_PUT_AWAY, + ITEM_ANIM_LARGE, +}; + +struct Wallpaper { const u32 *tiles; const u32 *tileMap; const u16 *palettes; }; -struct StorageAction +struct StorageMessage { const u8 *text; u8 format; @@ -176,7 +227,7 @@ struct StorageAction struct ChooseBoxMenu { struct Sprite *menuSprite; - struct Sprite *menuSideSprites[4]; + struct Sprite *menuCornerSprites[4]; u32 unused1[3]; struct Sprite *arrowSprites[2]; u8 buffer[0x200]; // passed but not used @@ -212,7 +263,7 @@ struct UnkUtil u8 max; }; -struct PSS_ItemIconSprite +struct PokeStorageItemIcon { struct Sprite *sprite; u8 *tiles; @@ -222,12 +273,12 @@ struct PSS_ItemIconSprite u8 active; }; -struct PssQuestLogBuffer +struct PokeStorageQuestLogData { - u16 species; + u16 species1; u16 species2; - u8 fromBox; - u8 toBox; + u8 box1; + u8 box2; }; struct PokemonStorageSystemData @@ -235,7 +286,7 @@ struct PokemonStorageSystemData u8 state; u8 boxOption; u8 screenChangeType; - bool8 isReshowingPSS; + bool8 isReopening; u8 taskId; struct UnkUtil unkUtil; struct UnkUtilData unkUtilData[8]; @@ -262,8 +313,8 @@ struct PokemonStorageSystemData u16 scrollUnused5; // Never read u16 scrollUnused6; // Never read u8 filler1[22]; - u8 field_2F8[512]; - u8 field_4F8[512]; + u8 boxTitleTiles[512]; + u8 boxTitleUnused[512]; u8 boxTitleCycleId; u8 wallpaperLoadState; // Written to, but never read. u8 wallpaperLoadBoxId; @@ -276,7 +327,7 @@ struct PokemonStorageSystemData struct Sprite *arrowSprites[2]; u32 wallpaperPalBits; u8 filler2[80]; // Unused - u16 unkUnused1; // Never read. + u16 unusedField1; // Never read. s16 wallpaperSetId; s16 wallpaperId; u16 wallpaperTilemap[360]; @@ -285,112 +336,114 @@ struct PokemonStorageSystemData u8 scrollToBoxId; s8 scrollDirection; // u8 *wallpaperTiles; // used only in Emerald for Walda - /* 0a68 */ struct Sprite *movingMonSprite; - /* 0a6c */ struct Sprite *partySprites[PARTY_SIZE]; - /* 0a84 */ struct Sprite *boxMonsSprites[IN_BOX_COUNT]; - /* 0afc */ struct Sprite **shiftMonSpritePtr; - /* 0b00 */ struct Sprite **releaseMonSpritePtr; - /* 0b04 */ u16 numIconsPerSpecies[MAX_MON_ICONS]; - /* 0b54 */ u16 iconSpeciesList[MAX_MON_ICONS]; - /* 0ba4 */ u16 boxSpecies[IN_BOX_COUNT]; - /* 0be0 */ u32 boxPersonalities[IN_BOX_COUNT]; - /* 0c58 */ u8 incomingBoxId; - /* 0c59 */ u8 shiftTimer; - /* 0c5a */ u8 numPartyToCompact; - /* 0c5c */ u16 iconScrollDistance; - /* 0c5e */ s16 iconScrollPos; - /* 0c60 */ s16 iconScrollSpeed; - /* 0c62 */ u16 iconScrollNumIncoming; - /* 0c64 */ u8 iconScrollCurColumn; - /* 0c65 */ s8 iconScrollDirection; // Unnecessary duplicate of scrollDirection - /* 0c66 */ u8 iconScrollState; - /* 0c67 */ u8 iconScrollToBoxId; // Unused duplicate of scrollToBoxId - /* 0c68 */ struct WindowTemplate menuWindow; - /* 0c70 */ struct StorageMenu menuItems[7]; - /* 0ca8 */ u8 menuItemsCount; - /* 0ca9 */ u8 menuWidth; - /* 0caa */ u8 menuUnusedField; // Never read. - /* 0cac */ u16 menuWindowId; - /* 0cb0 */ struct Sprite *cursorSprite; - /* 0cb4 */ struct Sprite *cursorShadowSprite; - /* 0cb8 */ s32 cursorNewX; - /* 0cbc */ s32 cursorNewY; - /* 0cc0 */ u32 cursorSpeedX; - /* 0cc4 */ u32 cursorSpeedY; - /* 0cc8 */ s16 cursorTargetX; - /* 0cca */ s16 cursorTargetY; - /* 0ccc */ u16 cursorMoveSteps; - /* 0cce */ s8 cursorVerticalWrap; - /* 0ccf */ s8 cursorHorizontalWrap; - /* 0cd0 */ u8 newCursorArea; - /* 0cd1 */ u8 newCursorPosition; - /* 0cd2 */ u8 cursorPrevHorizPos; - /* 0cd3 */ u8 cursorFlipTimer; - /* 0cd4 */ u8 cursorPalNums[2]; - /* 0cd8 */ const u32 *displayMonPalette; - /* 0cdc */ u32 displayMonPersonality; - /* 0ce0 */ u16 displayMonSpecies; - /* 0ce2 */ u16 displayMonItemId; - /* 0ce4 */ u16 displayUnusedVar; - /* 0ce6 */ bool8 setMosaic; - /* 0ce7 */ u8 displayMonMarkings; - /* 0ce8 */ u8 displayMonLevel; - /* 0ce9 */ bool8 displayMonIsEgg; - /* 0cea */ u8 displayMonName[POKEMON_NAME_LENGTH + 1]; - /* 0cf5 */ u8 displayMonTexts[4][36]; - /* 0d88 */ bool8 (*monPlaceChangeFunc)(void); - /* 0d8c */ u8 monPlaceChangeState; - /* 0d8d */ u8 shiftBoxId; - /* 0d90 */ struct Sprite *markingComboSprite; - /* 0d94 */ struct Sprite *waveformSprites[2]; - /* 0d9c */ u16 *markingComboTilesPtr; - /* 0da0 */ struct MonMarkingsMenu markMenu; - /* 1e58 */ struct ChooseBoxMenu field_1E5C; - /* 20a0 */ struct Pokemon movingMon; - /* 2104 */ struct Pokemon field_2108; - /* 2168 */ u8 field_216C; - /* 2169 */ u8 field_216D; - /* 216c */ bool8 isSurfMon; - /* 216d */ bool8 isDiveMon; - /* 216a */ s8 field_216E; - /* 216b */ s8 field_216F; - /* 216e */ s8 field_2170; - /* 216f */ s8 field_2171; - /* 2170 */ u16 field_2172; - /* 2172 */ u16 field_2176[3]; - /* 2178 */ u8 field_2186; - /* 2179 */ u8 field_2187; - /* 217a */ u8 summaryScreenMode; - /* 217c */ union + struct Sprite *movingMonSprite; + struct Sprite *partySprites[PARTY_SIZE]; + struct Sprite *boxMonsSprites[IN_BOX_COUNT]; + struct Sprite **shiftMonSpritePtr; + struct Sprite **releaseMonSpritePtr; + u16 numIconsPerSpecies[MAX_MON_ICONS]; + u16 iconSpeciesList[MAX_MON_ICONS]; + u16 boxSpecies[IN_BOX_COUNT]; + u32 boxPersonalities[IN_BOX_COUNT]; + u8 incomingBoxId; + u8 shiftTimer; + u8 numPartySpritesToCompact; + u16 iconScrollDistance; + s16 iconScrollPos; + s16 iconScrollSpeed; + u16 iconScrollNumIncoming; + u8 iconScrollCurColumn; + s8 iconScrollDirection; // Unnecessary duplicate of scrollDirection + u8 iconScrollState; + u8 iconScrollToBoxId; // Unused duplicate of scrollToBoxId + struct WindowTemplate menuWindow; + struct StorageMenu menuItems[7]; + u8 menuItemsCount; + u8 menuWidth; + u8 menuUnusedField; // Never read. + u16 menuWindowId; + struct Sprite *cursorSprite; + struct Sprite *cursorShadowSprite; + s32 cursorNewX; + s32 cursorNewY; + u32 cursorSpeedX; + u32 cursorSpeedY; + s16 cursorTargetX; + s16 cursorTargetY; + u16 cursorMoveSteps; + s8 cursorVerticalWrap; + s8 cursorHorizontalWrap; + u8 newCursorArea; + u8 newCursorPosition; + u8 cursorPrevPartyPos; + u8 cursorFlipTimer; + u8 cursorPalNums[2]; + const u32 *displayMonPalette; + u32 displayMonPersonality; + u16 displayMonSpecies; + u16 displayMonItemId; + u16 displayUnusedVar; + bool8 setMosaic; + u8 displayMonMarkings; + u8 displayMonLevel; + bool8 displayMonIsEgg; + u8 displayMonNickname[POKEMON_NAME_LENGTH + 1]; + u8 displayMonTexts[4][36]; // nickname, species name, gender and level, item name + bool8 (*monPlaceChangeFunc)(void); + u8 monPlaceChangeState; + u8 shiftBoxId; + struct Sprite *markingComboSprite; + struct Sprite *waveformSprites[2]; + u16 *markingComboTilesPtr; + struct MonMarkingsMenu markMenu; + struct ChooseBoxMenu chooseBoxMenu; + struct Pokemon movingMon; + struct Pokemon tempMon; + s8 releaseMonStatus; + bool8 releaseMonStatusResolved; + bool8 isSurfMon; + bool8 isDiveMon; + s8 releaseCheckBoxId; + s8 releaseCheckBoxPos; + s8 releaseBoxId; + s8 releaseBoxPos; + u16 releaseCheckState; + u16 restrictedMoveList[3]; + u8 summaryLastIndex; + u8 summaryCursorPos; + u8 summaryScreenMode; + union { struct Pokemon *mon; struct BoxPokemon *box; - } field_218C; - /* 2180 */ u8 field_2190[40]; - /* 21a8 */ u8 field_21B8[40]; - /* 21d0 */ u8 field_21E0[POKEMON_NAME_LENGTH + 1]; - /* 21db */ u8 itemName[20]; - /* 21ef */ u8 inBoxMovingMode; - /* 21f0 */ u16 field_2200; - /* 21f4 */ struct PSS_ItemIconSprite itemIcons[MAX_ITEM_ICONS]; - /* 2224 */ u16 movingItemId; - /* 2226 */ u16 itemInfoWindowOffset; - /* 2228 */ struct PssQuestLogBuffer qlogBuffer; - /* 2230 */ u16 field_2238; - /* 2232 */ u16 field_223A; - /* 2234 */ u16 *field_223C; - /* 2238 */ struct Sprite *cursorMonSprite; - /* 223c */ u16 field_2244[0x40]; - /* 22bc */ u8 field_22C4[0x800]; - /* 2abc */ u8 field_2AC4[0x1800]; - /* 42bc */ u8 itemIconBuffer[0x800]; - /* 4abc */ u8 field_4AC4[0x1000]; - /* 5abc */ u8 field_5AC4[0x800]; -}; // size=62bc + } summaryMonPtr; + u8 actionText[40]; + u8 boxTitleText[40]; + u8 releaseMonName[POKEMON_NAME_LENGTH + 1]; + u8 itemName[20]; + u8 inBoxMovingMode; + u16 multiMoveWindowId; + struct PokeStorageItemIcon itemIcons[MAX_ITEM_ICONS]; + u16 movingItemId; + u16 itemInfoWindowOffset; + struct PokeStorageQuestLogData pokeStorageQuestLogData; + u16 unusedField2; + u16 displayMonPalOffset; + u16 *displayMonTilePtr; + struct Sprite *displayMonSprite; + u16 displayMonPalBuffer[0x20]; + u8 unusedBuffer1[0x40]; + u8 tileBuffer[0x800]; + u8 unusedBuffer2[0x1800]; + u8 itemIconBuffer[0x200]; + u8 unusedBuffer3[0x600]; + u8 wallpaperBgTilemapBuffer[0x1000]; + u8 menuTilemapBuffer[0x800]; +}; -extern struct PokemonStorageSystemData *gPSSData; +extern struct PokemonStorageSystemData *gStorage; -void Cb2_EnterPSS(u8 a0); +void EnterPokeStorage(u8 boxOption); u8 GetCurrentBoxOption(void); struct Sprite *CreateChooseBoxArrows(u16 x, u16 y, u8 animId, u8 priority, u8 subpriority); void SetBoxWallpaper(u8 boxId, u8 wallpaperId); @@ -400,46 +453,46 @@ void SetBoxMonAt(u8 boxId, u8 boxPosition, struct BoxPokemon * src); void CB2_ExitPokeStorage(void); void FreeBoxSelectionPopupSpriteGfx(void); -void sub_808C940(u8 curBox); -void sub_808C950(void); +void CreateChooseBoxMenuSprites(u8 curBox); +void DestroyChooseBoxMenuSprites(void); u8 HandleBoxChooseSelectionInput(void); -void LoadChooseBoxMenuGfx(struct ChooseBoxMenu *a0, u16 tileTag, u16 palTag, u8 a3, bool32 loadPal); +void LoadChooseBoxMenuGfx(struct ChooseBoxMenu *menu, u16 tileTag, u16 palTag, u8 subpriority, bool32 loadPal); void SetCurrentBoxMonData(u8 boxPosition, s32 request, const void *value); u32 GetCurrentBoxMonData(u8 boxPosition, s32 request); u32 GetAndCopyBoxMonDataAt(u8 boxId, u8 boxPosition, s32 request, void *dst); -void sub_80922C0(void); -void sub_8092340(void); -bool8 sub_80924A8(void); -void sub_8092AE4(void); -void sub_8092B3C(u8 a0); -void sub_8092B50(void); -void sub_8092B5C(void); -u8 sub_8092B70(void); -void sub_8092F54(void); -void sub_8093174(void); -void sub_8093194(void); -bool8 sub_80931EC(void); -void sub_8093264(void); -void sub_8093630(void); -void sub_8093660(void); -void sub_80936B8(void); -void sub_80937B4(void); -void sub_8094D14(u8 a0); -u8 sub_8094D34(void); -void sub_8094D60(void); -void sub_8094D84(void); -bool8 sub_8094F90(void); -s16 sub_8094F94(void); -void sub_8095024(void); -bool8 sub_8095050(void); -void sub_80950A4(void); -void sub_80950BC(u8 a0); -bool8 sub_80950D0(void); +void InitCursor(void); +void InitCursorOnReopen(void); +bool8 UpdateCursorPos(void); +void SetCursorInParty(void); +void SetCursorBoxPosition(u8 cursorBoxPosition); +void ClearSavedCursorPos(void); +void SaveCursorPos(void); +u8 GetSavedCursorPos(void); +void DoTrySetDisplayMonData(void); +void ResetSelectionAfterDeposit(void); +void InitReleaseMon(void); +bool8 TryHideReleaseMon(void); +void TrySetCursorFistAnim(void); +void SaveMovingMon(void); +void LoadSavedMovingMon(void); +void InitSummaryScreenData(void); +void SetSelectionAfterSummaryScreen(void); +void StartCursorAnim(u8 animNum); +u8 GetMovingMonOriginalBoxId(void); +void TryHideItemAtCursor(void); +void TryShowItemAtCursor(void); +bool8 IsMenuLoading(void); +s16 HandleMenuInput(void); +void RemoveMenu(void); +bool8 MultiMove_Init(void); +void MultiMove_Free(void); +void MultiMove_SetFunction(u8 funcId); +bool8 MultiMove_RunFunction(void); void CreateItemIconSprites(void); -void sub_8096088(void); -void sub_80960C0(void); -bool8 sub_809610C(void); +void MoveItemFromCursorToBag(void); +void MoveHeldItemWithPartyMenu(void); +bool8 IsItemIconAnimActive(void); const u8 *GetMovingItemName(void); void InitItemInfoWindow(void); bool8 UpdateItemInfoWindowSlideIn(void); @@ -455,7 +508,7 @@ u8 GetBoxCursorPosition(void); u16 GetMovingItem(void); u8 HandleInput(void); void InitCanReleaseMonVars(void); -void InitMonPlaceChange(u8 a0); +void InitMonPlaceChange(u8 type); bool8 IsActiveItemMoving(void); bool8 IsCursorOnCloseBox(void); bool8 IsMonBeingMoved(void); @@ -474,47 +527,47 @@ void SetWallpaperForCurrentBox(u8 wallpaper); bool8 TryStorePartyMonInBox(u8 boxId); void InitMenu(void); void SetMenuText(u8 textId); -void sub_8095C84(u8 cursorArea, u8 cursorPos); -void sub_8095E2C(u16 itemId); +void TryLoadItemIconAtPos(u8 cursorArea, u8 cursorPos); +void InitItemIconInCursor(u16 itemId); u8 GetBoxWallpaper(u8 boxId); bool8 IsCursorOnBoxTitle(void); bool8 IsCursorInBox(void); -void sub_808FFAC(void); +void InitMonIconFields(void); struct Sprite *CreateMonIconSprite(u16 species, u32 pid, s16 x, s16 y, u8 priority, u8 subpriority); void CreatePartyMonsSprites(bool8 species); -void sub_80909F4(void); -bool8 sub_8090A60(void); -void sub_8090B98(s16 yDelta); +void CompactPartySprites(void); +u8 GetNumPartySpritesCompacting(void); +void MovePartySprites(s16 yDelta); void DestroyAllPartyMonIcons(void); -void sub_8091114(void); -bool8 sub_8091150(void); -void sub_80913DC(u8 box); -bool8 sub_809140C(void); +void DoReleaseMonComeBackAnim(void); +bool8 ResetReleaseMonSpritePtr(void); +void CreateInitBoxTask(u8 boxId); +bool8 IsInitBoxActive(void); void AnimateBoxScrollArrows(bool8 species); void CreateMovingMonIcon(void); -void sub_8090E08(u8 boxId, u8 cursorPos); -bool8 sub_8090E74(void); -void sub_8090CC0(u8 cursorArea, u8 cursorPos); -void sub_8090D58(u8 cursorArea, u8 cursorPos); +void SetShiftMonSpritePtr(u8 boxId, u8 position); +bool8 ShiftMons(void); +void SetMovingMonSprite(u8 cursorArea, u8 cursorPos); +void SetPlacedMonSprite(u8 cursorArea, u8 cursorPos); void DestroyPartyMonIcon(u8 partyId); void DestroyMovingMonIcon(void); s16 GetFirstFreeBoxSpot(u8 boxId); -void sub_80901EC(u8 boxPosition); -void sub_8090FC4(u8 mode, u8 position); -bool8 sub_8091084(void); -void sub_80910CC(void); +void CreateBoxMonIconAtPos(u8 boxPosition); +void DoReleaseMonAnim(u8 mode, u8 position); +bool8 TryHideReleaseMonSprite(void); +void DestroyReleaseMonIcon(void); u8 CountPartyMons(void); u8 CountPartyAliveNonEggMonsExcept(u8 slotToIgnore); -s8 sub_8094E50(u8 a0); -bool8 sub_8095474(u8 action); -u8 sub_8095AA0(void); -bool8 sub_8095ABC(void); -void sub_8095D44(u8 cursorArea, u8 cursorPos); -void sub_8094CD4(u8 *arg0, u8 *arg1); -void sub_8094D40(void); -void sub_8092BAC(bool8 arg0); +s8 GetMenuItemTextId(u8 menuIndex); +bool8 MultiMove_TryMoveGroup(u8 dir); +u8 MultiMove_GetOriginPosition(void); +bool8 MultiMove_CanPlaceSelection(void); +void TryHideItemIconAtPos(u8 cursorArea, u8 cursorPos); +void GetCursorBoxColumnAndRow(u8 *column, u8 *row); +void SetCursorPriorityTo1(void); +void InitMultiMonPlaceChange(bool8 moveCursorUp); void DestroyBoxMonIconAtPosition(u8 boxPosition); void SetBoxMonIconObjMode(u8 cursorPos, u8 objMode); void SetPartyMonIconObjMode(u8 cursorPos, u8 objMode); diff --git a/include/quest_log.h b/include/quest_log.h index 21801e45a..4d3852618 100644 --- a/include/quest_log.h +++ b/include/quest_log.h @@ -30,7 +30,6 @@ struct UnkStruct_203B044 extern u8 gQuestLogState; extern u8 gQuestLogPlaybackState; -extern const u8 gUnknown_84566A8[]; extern struct FieldInput gQuestLogFieldInput; extern struct UnkStruct_203B044 gUnknown_203B044; extern u16 *gUnknown_203AE04; diff --git a/include/random.h b/include/random.h index bf4af42d0..fd6b88ad0 100644 --- a/include/random.h +++ b/include/random.h @@ -15,8 +15,9 @@ u16 Random2(void); // The number 1103515245 comes from the example implementation of rand and srand // in the ISO C standard. -#define ISO_RANDOMIZE1(val)(1103515245 * (val) + 24691) -#define ISO_RANDOMIZE2(val)(1103515245 * (val) + 12345) +#define RAND_MULT 1103515245 +#define ISO_RANDOMIZE1(val)(RAND_MULT * (val) + 24691) +#define ISO_RANDOMIZE2(val)(RAND_MULT * (val) + 12345) //Sets the initial seed value of the pseudorandom number generator void SeedRng(u16 seed); diff --git a/include/roulette_util.h b/include/roulette_util.h deleted file mode 100644 index 764a3df10..000000000 --- a/include/roulette_util.h +++ /dev/null @@ -1,84 +0,0 @@ -#ifndef GUARD_ROULETTE_H -#define GUARD_ROULETTE_H - -struct UnkStruct1 -{ - u16 var00; - u16 var02; - u8 var04; - u8 var05; - u8 var06; - s8 var07_0:5; - s8 var07_5:2; - s8 var07_7:1; -}; - -struct UnkStruct3 -{ - u8 var00_0:7; - u8 var00_7:1; - u8 var01; - s8 var02; - s8 var03; - struct UnkStruct1 var04; -}; - -struct UnkStruct0 -{ - u8 var00; - u8 var01; - u16 var02; //flag for each UnkStruct3 - struct UnkStruct3 var04[0x10]; -}; - -struct PulseBlendSettings -{ - u16 blendColor; - u16 paletteOffset; - u8 numColors; - u8 delay; - u8 numFadeCycles; - s8 maxBlendCoeff:4; - s8 fadeType:2; - s8 restorePaletteOnUnload:1; - s8 unk7_7:1; -}; - -struct PulseBlendPalette -{ - u8 paletteSelector; - u8 blendCoeff:4; - u8 fadeDirection:1; - s8 unk1_5:1; - s8 available:1; - u32 inUse:1; - u8 delayCounter; - u8 fadeCycleCounter; - struct PulseBlendSettings pulseBlendSettings; -}; - -struct PulseBlend -{ - u16 usedPulseBlendPalettes; - struct PulseBlendPalette pulseBlendPalettes[16]; -}; - -void sub_80D8BE4(struct UnkStruct0 *); -u8 sub_80D8BF8(struct UnkStruct0 *, u8, const struct UnkStruct1 *); -u8 sub_80D8C7C(struct UnkStruct0 *, u8); -u8 sub_80D8CB0(struct UnkStruct3 *); -u8 sub_80D8EB8(struct UnkStruct3 *); -void task_tutorial_controls_fadein(struct UnkStruct0 *); -void sub_80D8FB4(struct UnkStruct0 *, u16); -void sub_80D9008(struct UnkStruct0 *, u16); -void InitPulseBlend(struct PulseBlend *); -int InitPulseBlendPaletteSettings(struct PulseBlend *, const struct PulseBlendSettings *); -static void ClearPulseBlendPalettesSettings(struct PulseBlendPalette *); -void UnloadUsedPulseBlendPalettes(struct PulseBlend *, u16, u8); -void MarkUsedPulseBlendPalettes(struct PulseBlend *, u16, u8); -void UnmarkUsedPulseBlendPalettes(struct PulseBlend *, u16, u8); -void UpdatePulseBlend(struct PulseBlend *); -void sub_80D9574(u16 *dest, u16 src, u8 left, u8 top, u8 width, u8 height); -void sub_80D95C4(u16 *dest, u16 *src, u8 left, u8 top, u8 width, u8 height); - -#endif // GUARD_ROULETTE_H diff --git a/include/script.h b/include/script.h index cd3268181..ce10c8726 100644 --- a/include/script.h +++ b/include/script.h @@ -28,26 +28,21 @@ u8 SetupBytecodeScript(struct ScriptContext *ctx, const u8 *ptr); void SetupNativeScript(struct ScriptContext *ctx, bool8 (*ptr)(void)); void StopScript(struct ScriptContext *ctx); bool8 RunScriptCommand(struct ScriptContext *ctx); -u8 ScriptPush(struct ScriptContext *ctx, const u8 *ptr); -const u8 *ScriptPop(struct ScriptContext *ctx); void ScriptJump(struct ScriptContext *ctx, const u8 *ptr); void ScriptCall(struct ScriptContext *ctx, const u8 *ptr); void ScriptReturn(struct ScriptContext *ctx); u16 ScriptReadHalfword(struct ScriptContext *ctx); u32 ScriptReadWord(struct ScriptContext *ctx); -void ScriptContext2_Enable(void); -void ScriptContext2_Disable(void); -bool8 ScriptContext2_IsEnabled(void); -void ScriptContext1_Init(void); -bool8 ScriptContext1_IsScriptSetUp(void); -bool8 ScriptContext2_RunScript(void); -void ScriptContext1_SetupScript(const u8 *ptr); -void ScriptContext1_Stop(void); -void EnableBothScriptContexts(void); -void ScriptContext2_RunNewScript(const u8 *ptr); -u8 *mapheader_get_tagged_pointer(u8 tag); -void mapheader_run_script_by_tag(u8 tag); -u8 *mapheader_get_first_match_from_tagged_ptr_list(u8 tag); +void LockPlayerFieldControls(void); +void UnlockPlayerFieldControls(void); +bool8 ArePlayerFieldControlsLocked(void); +void ScriptContext_Init(void); +bool8 ScriptContext_IsEnabled(void); +bool8 ScriptContext_RunScript(void); +void ScriptContext_SetupScript(const u8 *ptr); +void ScriptContext_Stop(void); +void ScriptContext_Enable(void); +void RunScriptImmediately(const u8 *ptr); void RunOnLoadMapScript(void); void RunOnTransitionMapScript(void); void RunOnResumeMapScript(void); @@ -60,24 +55,24 @@ void ClearRamScript(void); bool8 InitRamScript(u8 *script, u16 scriptSize, u8 mapGroup, u8 mapNum, u8 objectId); const u8 *GetRamScript(u8 objectId, const u8 *script); bool32 ValidateRamScript(void); -void MEventSetRamScript(u8 * script, u16 scriptSize); +void InitRamScript_NoObjectEvent(u8 * script, u16 scriptSize); u8 * GetSavedRamScriptIfValid(void); void RegisterQuestLogInput(u8 var); void ClearMsgBoxCancelableState(void); void SetQuestLogInputIsDpadFlag(void); void ClearQuestLogInput(void); void ClearQuestLogInputIsDpadFlag(void); -void MsgSetSignPost(void); -void MsgSetNotSignPost(void); -bool8 IsMsgSignPost(void); +void MsgSetSignpost(void); +void MsgSetNotSignpost(void); +bool8 IsMsgSignpost(void); bool8 IsQuestLogInputDpad(void); u8 GetRegisteredQuestLogInput(void); -void ResetFacingNpcOrSignPostVars(void); +void ResetFacingNpcOrSignpostVars(void); bool8 CanWalkAwayToCancelMsgBox(void); void SetWalkingIntoSignVars(void); bool8 IsMsgBoxWalkawayDisabled(void); -extern const u8 *gRAMScriptPtr; +extern const u8 *gRamScriptRetAddr; extern u8 gWalkAwayFromSignInhibitTimer; #endif // GUARD_SCRIPT_H diff --git a/include/sprite.h b/include/sprite.h index 9fa6280dc..6a1b27211 100644 --- a/include/sprite.h +++ b/include/sprite.h @@ -4,8 +4,12 @@ #include "global.h" #define MAX_SPRITES 64 +#define SPRITE_NONE 0xFF #define TAG_NONE 0xFFFF +// Given to SetSpriteMatrixAnchor to skip anchoring one of the coords. +#define NO_ANCHOR 0x800 + struct SpriteSheet { const void *data; // Raw uncompressed pixel data @@ -227,7 +231,7 @@ struct Sprite u16 animEnded:1; //0x10 u16 affineAnimEnded:1; //0x20 u16 usingSheet:1; //0x40 - u16 flags_f:1; //0x80 + u16 anchored:1; //0x80 /*0x40*/ u16 sheetTileStart; @@ -315,6 +319,6 @@ void ClearSpriteCopyRequests(void); void ResetAffineAnimData(void); void FreeSpriteTilesIfNotUsingSheet(struct Sprite *sprite); s16 AllocSpriteTiles(u16 tileCount); -void obj_pos2_update_enable(struct Sprite* sprite, s16 xmod, s16 ymod); +void SetSpriteMatrixAnchor(struct Sprite* sprite, s16 xmod, s16 ymod); #endif //GUARD_SPRITE_H diff --git a/include/string_util.h b/include/string_util.h index 65511b5c4..5f052d9f9 100644 --- a/include/string_util.h +++ b/include/string_util.h @@ -11,8 +11,8 @@ enum StringConvertMode }; u8 *StringCopy_Nickname(u8 *dest, const u8 *src); -u8 *StringGetEnd10(u8 *str); -u8 *StringCopy7(u8 *dest, const u8 *src); +u8 *StringGet_Nickname(u8 *str); +u8 *StringCopy_PlayerName(u8 *dest, const u8 *src); u8 *StringCopy(u8 *dest, const u8 *src); u8 *StringAppend(u8 *dest, const u8 *src); u8 *StringCopyN(u8 *dest, const u8 *src, u8 n); diff --git a/include/strings.h b/include/strings.h index c7663fef9..28d425cb0 100644 --- a/include/strings.h +++ b/include/strings.h @@ -76,8 +76,6 @@ extern const u8 gText_Ferry[]; extern const u8 gText_SecretBase[]; extern const u8 gText_Hideout[]; extern const u8 gText_FlyToWhere[]; -extern const u8 gStartMenuText_PokemonLeague[]; -extern const u8 gStartMenuText_PokemonCenter[]; extern const u8 gText_ApostropheSBase[]; extern const u8 gText_NoRegistry[]; extern const u8 gText_OkayToDeleteFromRegistry[]; @@ -89,7 +87,7 @@ extern const u8 gText_IsThisTheCorrectTime[]; extern const u8 gText_PkmnFainted3[]; extern const u8 gText_Coins[]; extern const u8 gText_EggNickname[]; -extern const u8 gStartMenuText_Pokemon[]; +extern const u8 gText_MenuPokemon[]; extern const u8 gOtherText_Use[]; extern const u8 gOtherText_Toss[]; @@ -97,7 +95,7 @@ extern const u8 gOtherText_Give[]; extern const u8 gOtherText_Exit[]; extern const u8 gText_ThreeHyphens[]; extern const u8 gText_SevenHyphens[]; -extern const u8 gOtherText_UnkF9_08_Clear_01[]; +extern const u8 gText_NumberClear01[]; extern const u8 gText_TimesStrVar1[]; extern const u8 gText_IsSelected[]; extern const u8 gText_ThereIsNoPokemon[]; @@ -170,20 +168,20 @@ extern const u8 gText_Withdraw[]; extern const u8 gText_ReturnToPC[]; extern const u8 gText_OakForbidsUseOfItemHere[]; -extern const u8 gUnknown_8416451[]; -extern const u8 gUnknown_8416537[]; -extern const u8 gUnknown_841658C[]; -extern const u8 gUnknown_841659E[]; -extern const u8 gUnknown_84165D2[]; -extern const u8 gUnknown_8416600[]; -extern const u8 gUnknown_8416631[]; -extern const u8 gUnknown_8416644[]; -extern const u8 gUnknown_841665C[]; -extern const u8 gUnknown_8416690[]; -extern const u8 gUnknown_84166A7[]; +extern const u8 gText_CantDismountBike[]; +extern const u8 gText_CoinCase[]; +extern const u8 gText_PlayerUsedVar2[]; +extern const u8 gText_RepelEffectsLingered[]; +extern const u8 gText_UsedVar2WildLured[]; +extern const u8 gText_UsedVar2WildRepelled[]; +extern const u8 gText_BoxFull[]; +extern const u8 gText_PowderQty[]; +extern const u8 gText_PlayedPokeFluteCatchy[]; +extern const u8 gText_PlayedPokeFlute[]; +extern const u8 gText_PokeFluteAwakenedMon[]; extern const u8 gText_WontHaveEffect[]; -extern const u8 gUnknown_841623D[]; -extern const u8 gUnknown_84162BD[]; +extern const u8 gText_YesNo[]; +extern const u8 gText_Berry[]; extern const u8 gText_Ghost[]; // pokemon @@ -196,11 +194,11 @@ extern const u8 gText_PkmnsXPreventsSwitching[]; extern const u8 *const gStatNamesTable[]; // diploma -extern const u8 gUnknown_841B60E[]; -extern const u8 gUnknown_841B619[]; -extern const u8 gUnknown_841B684[]; -extern const u8 gUnknown_841B68F[]; -extern const u8 gUnknown_841B698[]; +extern const u8 gText_Diploma_Player[]; +extern const u8 gText_Diploma_ThisDocument[]; +extern const u8 gText_Diploma_GameFreak[]; +extern const u8 gText_Diploma_National[]; +extern const u8 gText_Diploma_Kanto[]; // battle_records extern const u8 gString_BattleRecords_PlayersBattleResults[]; @@ -216,12 +214,12 @@ extern const u8 gString_SlotMachineControls[]; // battle_controller_safari extern const u8 gText_EmptyString3[]; -extern const u8 gUnknown_83FE747[]; +extern const u8 gText_SafariZoneMenu[]; extern const u8 gText_WhatWillPlayerThrow[]; // battle_controller_player extern const u8 gText_BattleSwitchWhich[]; -extern const u8 gUnknown_83FE770[]; +extern const u8 gText_MoveInterfaceDynamicColors[]; extern const u8 gText_MoveInterfacePP[]; extern const u8 gText_MoveInterfaceType[]; extern const u8 gText_LinkStandby[]; @@ -330,7 +328,7 @@ extern const u8 gText_NotPkmnOtherTrainerWants[]; extern const u8 gText_ThatIsntAnEgg[]; extern const u8 gText_OtherTrainerCantAcceptPkmn[]; extern const u8 gText_CantTradeWithTrainer[]; -extern const u8 gUnknown_84176CF[]; +extern const u8 gText_CancelBattle[]; extern const u8 gText_PkmnWasGivenItem[]; extern const u8 gText_ReceivedItemFromPkmn[]; extern const u8 gText_PkmnAlreadyHoldingItemSwitch[]; @@ -339,7 +337,7 @@ extern const u8 gText_BagFullCouldNotRemoveItem[]; extern const u8 gText_PkmnCantParticipate[]; extern const u8 gText_CancelParticipation[]; extern const u8 gText_OakThisIsListOfPokemon[]; -extern const u8 gMenuText_Confirm[]; +extern const u8 gText_PartyMenu_OK[]; extern const u8 gText_MaleSymbol[]; extern const u8 gText_FemaleSymbol[]; extern const u8 gText_Slash[]; @@ -350,8 +348,8 @@ extern const u8 gText_MailSentToPC[]; extern const u8 gText_MailMessageWillBeLost[]; extern const u8 gText_SendMailToPC[]; extern const u8 gText_MailTakenFromPkmn[]; -extern const u8 gUnknown_8416B3E[]; -extern const u8 gUnknown_8416B16[]; +extern const u8 gText_NoMoreThanTwoMayEnter[]; +extern const u8 gText_NoMoreThanThreeMayEnter[]; extern const u8 gText_PauseUntilPress[]; extern const u8 gText_CantUseUntilNewBadge[]; extern const u8 gText_ReturnToHealingSpot[]; @@ -364,12 +362,12 @@ extern const u8 gText_PkmnCuredOfParalysis[]; extern const u8 gText_PkmnSnappedOutOfConfusion[]; extern const u8 gText_PkmnGotOverInfatuation[]; extern const u8 gText_PkmnBecameHealthy[]; -extern const u8 gText_HP3[]; -extern const u8 gText_Attack3[]; -extern const u8 gText_Defense3[]; -extern const u8 gText_Speed2[]; -extern const u8 gText_SpAtk3[]; -extern const u8 gText_SpDef3[]; +extern const u8 gText_ItemEffect_HP[]; +extern const u8 gText_ItemEffect_Attack[]; +extern const u8 gText_ItemEffect_Defense[]; +extern const u8 gText_ItemEffect_Speed[]; +extern const u8 gText_ItemEffect_SpAtk[]; +extern const u8 gText_ItemEffect_SpDef[]; extern const u8 gText_PkmnBaseVar2StatIncreased[]; extern const u8 gText_MovesPPIncreased[]; extern const u8 gText_PPWasRestored[]; @@ -503,14 +501,14 @@ extern const u8 gText_ABtnTitleScreen[]; extern const u8 gText_ABtnRegistrationCounter[]; // main_menu -extern const u8 gText_SaveFileCorruptedPrevWillBeLoaded[]; +extern const u8 gText_SaveFileCorrupted[]; extern const u8 gText_SaveFileHasBeenDeleted[]; extern const u8 gText_1MSubCircuitBoardNotInstalled[]; extern const u8 gText_NewGame[]; extern const u8 gText_Continue[]; extern const u8 gText_MysteryGift[]; -extern const u8 gText_WirelessAdapterIsNotConnected[]; -extern const u8 gText_MysteryGiftCantBeUsedWhileWirelessAdapterIsAttached[]; +extern const u8 gText_WirelessNotConnected[]; +extern const u8 gText_MysteryGiftCantUse[]; extern const u8 gText_Player[]; extern const u8 gText_Time[]; extern const u8 gText_Colon[]; @@ -626,14 +624,14 @@ extern const u8 gText_BagIsFull[]; extern const u8 gText_MailReturnedToBagMessageErased[]; // start_menu -extern const u8 gStartMenuText_Pokedex[]; -extern const u8 gStartMenuText_Bag[]; -extern const u8 gStartMenuText_Player[]; -extern const u8 gStartMenuText_Save[]; -extern const u8 gStartMenuText_Option[]; -extern const u8 gStartMenuText_Exit[]; -extern const u8 gStartMenuText_Retire[]; -extern const u8 gUnknown_84162A9[]; +extern const u8 gText_MenuPokedex[]; +extern const u8 gText_MenuBag[]; +extern const u8 gText_MenuPlayer[]; +extern const u8 gText_MenuSave[]; +extern const u8 gText_MenuOption[]; +extern const u8 gText_MenuExit[]; +extern const u8 gText_MenuRetire[]; +extern const u8 gText_MenuSafariStats[]; extern const u8 gStartMenuDesc_Pokedex[]; extern const u8 gStartMenuDesc_Pokemon[]; extern const u8 gStartMenuDesc_Bag[]; @@ -763,7 +761,7 @@ extern const u8 gText_QuitLooking[]; extern const u8 gText_FreshWater[]; extern const u8 gText_SodaPop[]; extern const u8 gText_Lemonade[]; -extern const u8 gText_Bicycle_1000000[]; +extern const u8 gText_Bicycle_Price[]; extern const u8 gText_NoThanks[]; extern const u8 gText_Abra_180Coins[]; extern const u8 gText_Clefairy_500Coins[]; @@ -789,9 +787,9 @@ extern const u8 gText_ThreeIsland[]; extern const u8 gText_Vermilion[]; extern const u8 gText_Colosseum_2[]; extern const u8 gText_BerryCrush[]; -extern const u8 gText_Dummy_8417E66[]; -extern const u8 gText_Dummy_8417E67[]; -extern const u8 gText_Dummy_8417E71[]; +extern const u8 gText_EmptyLinkService1[]; +extern const u8 gText_EmptyLinkService2[]; +extern const u8 gText_RecordCorner[]; extern const u8 gText_PokemonJump[]; extern const u8 gText_DodrioBerryPicking[]; extern const u8 gText_2Tinymushrooms[]; @@ -804,8 +802,8 @@ extern const u8 gText_Charcoal_1000Coins[]; extern const u8 gText_MysticWater_1000Coins[]; extern const u8 gText_YellowFlute_1600Coins[]; extern const u8 gText_SmokeBall_800Coins[]; -extern const u8 gText_Dummy_8417F67[]; -extern const u8 gText_Dummy_8417F68[]; +extern const u8 gText_Multichoice_Empty1[]; +extern const u8 gText_Multichoice_Empty2[]; extern const u8 gText_BecomeLeader[]; extern const u8 gText_JoinGroup[]; extern const u8 gText_Cool_2[]; @@ -848,16 +846,16 @@ extern const u8 gTradeText_Cancel[]; extern const u8 gTradeText_ChooseAPokemon[]; extern const u8 gTradeText_Summary[]; extern const u8 gTradeText_Trade[]; -extern const u8 gTradeText_CancelTrade[]; +extern const u8 gText_CancelTrade[]; extern const u8 gTradeText_PressBButtonToExit[]; -extern const u8 gUnknown_841E10A[]; -extern const u8 gUnknown_841E112[]; -extern const u8 gUnknown_841E118[]; -extern const u8 gUnknown_841E145[]; -extern const u8 gUnknown_841E16B[]; -extern const u8 gUnknown_8417094[]; -extern const u8 gUnknown_841E199[]; -extern const u8 gUnknown_841E1C5[]; +extern const u8 gText_TradeAction_Summary[]; +extern const u8 gText_TradeAction_Trade[]; +extern const u8 gText_Trade_CommunicationStandby[]; +extern const u8 gText_TradeHasBeenCanceled[]; +extern const u8 gText_Trade_OnlyPkmnForBattle[]; +extern const u8 gText_OnlyPkmnForBattle[]; +extern const u8 gText_WaitingForFriendToFinish[]; +extern const u8 gText_FriendWantsToTrade[]; extern const u8 gText_PkmnCantBeTradedNow[]; extern const u8 gText_EggCantBeTradedNow[]; extern const u8 gText_OtherTrainersPkmnCantBeTraded[]; @@ -938,7 +936,7 @@ extern const u8 gText_SoundStereo[]; extern const u8 gText_ButtonTypeHelp[]; extern const u8 gText_ButtonTypeLR[]; extern const u8 gText_ButtonTypeLEqualsA[]; -extern const u8 gText_MenuOption[]; +extern const u8 gText_Option[]; extern const u8 gText_FrameType[]; extern const u8 gTextJP_Type[]; extern const u8 gText_PickSwitchCancel[]; @@ -953,7 +951,7 @@ extern const u8 gText_PkmnStoppedEvolving[]; extern const u8 gText_ShopBuy[]; extern const u8 gText_ShopSell[]; extern const u8 gText_ShopQuit[]; -extern const u8 gText_CanIHelpWithAnythingElse[]; +extern const u8 gText_AnythingElseICanHelp[]; extern const u8 gText_QuitShopping[]; extern const u8 gText_PokedollarVar1[]; extern const u8 gText_YouDontHaveMoney[]; @@ -1073,9 +1071,9 @@ extern const u8 gText_PlayerScurriedToCenter[]; extern const u8 gText_PlayerScurriedBackHome[]; // save_failed_screen -extern const u8 gText_SaveFailedScreen_CheckingBackupMemory[]; -extern const u8 gText_SaveFailedScreen_BackupMemoryDamaged[]; -extern const u8 gText_SaveFailedScreen_SaveCompleted[]; +extern const u8 gText_SaveFailedCheckingBackup[]; +extern const u8 gText_BackupMemoryDamaged[]; +extern const u8 gText_SaveCompletePressA[]; // bag extern const u8 gText_DepositItem[]; @@ -1133,10 +1131,10 @@ extern const u8 gText_Register2[]; extern const u8 gText_Exit[]; // wireless_communication_status_screen -extern const u8 gUnknown_841E2B4[]; -extern const u8 gUnknown_841E2BF[]; -extern const u8 gUnknown_841E2C9[]; -extern const u8 gUnknown_841E2D4[]; +extern const u8 gText_Dynamic0Players[]; +extern const u8 gText_Dynamic1Players[]; +extern const u8 gText_Dynamic2Players[]; +extern const u8 gText_Dynamic3Players[]; extern const u8 gText_WirelessCommunicationStatus[]; extern const u8 gText_PeopleTrading[]; extern const u8 gText_PeopleBattling[]; @@ -1174,11 +1172,11 @@ extern const u8 gText_ExcellentsInARow[]; extern const u8 gText_PkmnJumpRecords[]; // cable_club -extern const u8 gUnknown_841DF82[]; -extern const u8 gUnknown_841DF8B[]; -extern const u8 gUnknown_841DF92[]; -extern const u8 gUnknown_841DF99[]; -extern const u8 gUnknown_841DFA0[]; +extern const u8 gText_NumPlayerLink[]; +extern const u8 gText_BronzeCard[]; +extern const u8 gText_CopperCard[]; +extern const u8 gText_SilverCard[]; +extern const u8 gText_GoldCard[]; // berry_crush extern const u8 gText_BerryCrush_AreYouReady[]; @@ -1192,7 +1190,7 @@ extern const u8 gText_BerryCrush_TimeUp[]; extern const u8 gText_BerryCrush_CommunicationStandby[]; extern const u8 gText_1_ClrBluShdwLtBlu_Dynamic0[]; extern const u8 gText_1_Dynamic0[]; -extern const u8 gText_SpaceTimes[]; +extern const u8 gText_SpaceTimes2[]; extern const u8 gText_XDotY[]; extern const u8 gText_StrVar1Berry[]; extern const u8 gText_TimeColon[]; @@ -1342,45 +1340,45 @@ extern const u8 gText_QuestLog_PokemonLeague[]; extern const u8 gText_QuestLog_CeruleanCave[]; // clear_save_data_screen -extern const u8 gUnknown_841B69E[]; -extern const u8 gUnknown_841B6B9[]; +extern const u8 gText_ClearAllSaveData[]; +extern const u8 gText_ClearingData[]; // easy_chat_2 -extern const u8 gUnknown_84186D1[]; -extern const u8 gUnknown_84186EF[]; -extern const u8 gUnknown_8418706[]; -extern const u8 gUnknown_8418725[]; -extern const u8 gUnknown_8418745[]; -extern const u8 gUnknown_8418763[]; -extern const u8 gUnknown_8418780[]; -extern const u8 gUnknown_841879E[]; -extern const u8 gUnknown_84187B2[]; -extern const u8 gUnknown_84187D1[]; -extern const u8 gUnknown_84187EE[]; -extern const u8 gUnknown_841880E[]; -extern const u8 gUnknown_841881B[]; -extern const u8 gUnknown_841883E[]; -extern const u8 gUnknown_841885F[]; -extern const u8 gUnknown_8418881[]; -extern const u8 gUnknown_841888C[]; -extern const u8 gUnknown_84188AC[]; -extern const u8 gUnknown_84188B9[]; -extern const u8 gUnknown_84188D6[]; -extern const u8 gUnknown_84188F0[]; -extern const u8 gUnknown_8418902[]; -extern const u8 gUnknown_8418937[]; -extern const u8 gUnknown_8418956[]; -extern const u8 gUnknown_84189E0[]; -extern const u8 gUnknown_84189EE[]; -extern const u8 gUnknown_8418A2B[]; -extern const u8 gUnknown_8418A33[]; -extern const u8 gUnknown_8418A4A[]; -extern const u8 gUnknown_8418A61[]; -extern const u8 gUnknown_8418A77[]; -extern const u8 gUnknown_8418A87[]; -extern const u8 gUnknown_8418AA1[]; -extern const u8 gUnknown_8418AB2[]; -extern const u8 gUnknown_841EE2B[]; +extern const u8 gText_CombineFourWordsOrPhrases[]; +extern const u8 gText_AndMakeYourProfile[]; +extern const u8 gText_MakeMessageSixPhrases[]; +extern const u8 gText_MaxTwoTwelveLetterPhrases[]; +extern const u8 gText_FindWordsThatDescribeYour[]; +extern const u8 gText_FeelingsRightNow[]; +extern const u8 gText_CombineNineWordsOrPhrases[]; +extern const u8 gText_AndMakeAMessage[]; +extern const u8 gText_ChangeJustOneWordOrPhrase[]; +extern const u8 gText_AndImproveTheBardsSong[]; +extern const u8 gText_AndFillOutTheQuestionnaire[]; +extern const u8 gText_YourProfile[]; +extern const u8 gText_YourFeelingAtTheBattlesStart[]; +extern const u8 gText_WhatYouSayIfYouWin[]; +extern const u8 gText_WhatYouSayIfYouLose[]; +extern const u8 gText_TheAnswer[]; +extern const u8 gText_TheMailMessage[]; +extern const u8 gText_TheNewSong[]; +extern const u8 gText_CombineTwoWordsOrPhrases[]; +extern const u8 gText_AndMakeATrendySaying[]; +extern const u8 gText_TheTrendySaying[]; +extern const u8 gText_IsAsShownOkay[]; +extern const u8 gText_AllTextBeingEditedWill[]; +extern const u8 gText_BeDeletedThatOkay[]; +extern const u8 gText_QuitEditing[]; +extern const u8 gText_StopGivingPkmnMail[]; +extern const u8 gText_Profile[]; +extern const u8 gText_AtTheBattlesStart[]; +extern const u8 gText_UponWinningABattle[]; +extern const u8 gText_UponLosingABattle[]; +extern const u8 gText_TheBardsSong[]; +extern const u8 gText_WhatsHipAndHappening[]; +extern const u8 gText_Interview[]; +extern const u8 gText_Questionnaire[]; +extern const u8 gText_DelAllCancelOk[]; // naming_screen extern const u8 gText_MoveOkBack[]; @@ -1474,26 +1472,26 @@ extern const u8 gPCText_Machine[]; extern const u8 gPCText_Simple[]; // pokemon_special_anim -extern const u8 gUnknown_841B2ED[]; -extern const u8 gUnknown_841B2F1[]; -extern const u8 gUnknown_841B2FF[]; -extern const u8 gUnknown_841B285[]; -extern const u8 gUnknown_841B293[]; -extern const u8 gUnknown_841B295[]; -extern const u8 gUnknown_841B2A7[]; -extern const u8 gUnknown_841B32E[]; -extern const u8 gUnknown_841B306[]; -extern const u8 gUnknown_841B315[]; -extern const u8 gUnknown_841B31B[]; -extern const u8 gUnknown_841B329[]; -extern const u8 gUnknown_841B2A9[]; -extern const u8 gUnknown_841B2B7[]; -extern const u8 gUnknown_841B2BE[]; -extern const u8 gUnknown_841B2CC[]; -extern const u8 gUnknown_841B2D4[]; -extern const u8 gUnknown_841B2C6[]; -extern const u8 gUnknown_841B2E5[]; -extern const u8 gUnknown_841B2DC[]; +extern const u8 gText_Counting_1[]; +extern const u8 gText_Counting_2And[]; +extern const u8 gText_Poof[]; +extern const u8 gText_WasUsedOn[]; +extern const u8 gText_Period[]; +extern const u8 gText_LevelRoseTo[]; +extern const u8 gText_Period2[]; +extern const u8 gText_MonLearnedTMHM[]; +extern const u8 gText_MonForgotMove[]; +extern const u8 gText_And[]; +extern const u8 gText_MachineSet[]; +extern const u8 gText_Huh[]; +extern const u8 gText_LevelUp_MaxHP[]; +extern const u8 gText_LevelUp_Attack[]; +extern const u8 gText_LevelUp_Defense[]; +extern const u8 gText_LevelUp_SpAtk[]; +extern const u8 gText_LevelUp_SpDef[]; +extern const u8 gText_LevelUp_Speed[]; +extern const u8 gText_LevelUp_Minus[]; +extern const u8 gText_LevelUp_Plus[]; // field_player_avatar extern const u8 gText_PokemonOnHook[]; diff --git a/include/text_window.h b/include/text_window.h index ad5d68918..4064028a5 100644 --- a/include/text_window.h +++ b/include/text_window.h @@ -10,18 +10,18 @@ struct TilesPal }; void rbox_fill_rectangle(u8 windowId); -const u16 *stdpal_get(u8 id); +const u16 *GetTextWindowPalette(u8 id); const u16 *GetOverworldTextboxPalettePtr(void); -void TextWindow_LoadResourcesStdFrame0(u8 windowId, u16 tileStart, u8 palette); -void TextWindow_SetStdFrame0_WithPal(u8 windowId, u16 tileStart, u8 palette); -void TextWindow_SetUserSelectedFrame(u8 windowId, u16 tileStart, u8 palette); -void LoadUserWindowBorderGfx(u8 windowId, u16 tileStart, u8 palette); -void DrawWindowBorderWithStdpal3(u8 bgId, u16 tileStart, u8 palette); +void LoadMenuMessageWindowGfx(u8 windowId, u16 tileStart, u8 palette); +void LoadStdWindowGfx(u8 windowId, u16 tileStart, u8 palette); +void LoadUserWindowGfx(u8 windowId, u16 tileStart, u8 palette); +void LoadUserWindowGfx2(u8 windowId, u16 tileStart, u8 palette); +void LoadStdWindowGfxOnBg(u8 bgId, u16 tileStart, u8 palette); void DrawTextBorderOuter(u8 windowId, u16 tileStart, u8 palette); void DrawTextBorderInner(u8 windowId, u16 tileNum, u8 palNum); -void TextWindow_LoadTilesStdFrame1(u8 windowId, u16 destOffset); -void sub_814FE6C(u8 windowId, u16 destOffset, u8 palIdx); -void sub_814FEEC(u8 windowId, u16 destOffset, u8 palIdx); -void sub_814FF6C(u8 windowId, u16 destOffset); +void LoadHelpMessageWindowGfx(u8 windowId, u16 destOffset, u8 palIdx); +void LoadSignpostWindowGfx(u8 windowId, u16 destOffset, u8 palIdx); +void LoadStdWindowTiles(u8 windowId, u16 destOffset); +void LoadQuestLogWindowTiles(u8 windowId, u16 destOffset); #endif // GUARD_TEXT_WINDOW_H diff --git a/include/text_window_graphics.h b/include/text_window_graphics.h index c57143661..b94f73abb 100644 --- a/include/text_window_graphics.h +++ b/include/text_window_graphics.h @@ -7,13 +7,13 @@ struct TextWindowGraphics const void *palette; }; -extern const u16 gUnknown_8470B0C[]; -extern const u16 gStdFrame0[]; -extern const u16 gStdFrame1[]; -extern const u16 gUnknown_8471DEC[][16]; +extern const u16 gSignpostWindow_Gfx[]; +extern const u16 gStdTextWindow_Gfx[]; +extern const u16 gQuestLogWindow_Gfx[]; +extern const u16 gTextWindowPalettes[][16]; extern const struct TextWindowGraphics gUserFrames[]; -const struct TextWindowGraphics *GetWindowFrameTilesPal(u8 idx); +const struct TextWindowGraphics *GetUserWindowGraphics(u8 idx); #endif //GUARD_TEXT_WINDOW_GRAPHICS_H diff --git a/include/tilemap_util.h b/include/tilemap_util.h new file mode 100644 index 000000000..b8388c6f5 --- /dev/null +++ b/include/tilemap_util.h @@ -0,0 +1,12 @@ +#ifndef GUARD_TILEMAP_UTIL_H +#define GUARD_TILEMAP_UTIL_H + +void TilemapUtil_Init(u8 numTilemapIds); +void TilemapUtil_Free(void); +void TilemapUtil_SetTilemap(u8 tilemapId, u8 bg, const void *tilemap, u16 width, u16 height); +void TilemapUtil_SetPos(u8 tilemapId, u16 destX, u16 destY); +void TilemapUtil_SetRect(u8 tilemapId, u16 x, u16 y, u16 width, u16 height); +void TilemapUtil_Move(u8 tilemapId, u8 mode, s8 param); +void TilemapUtil_Update(u8 tilemapId); + +#endif //GUARD_TILEMAP_UTIL_H diff --git a/include/tileset_anims.h b/include/tileset_anims.h index 0e515f044..b85f6ecd5 100644 --- a/include/tileset_anims.h +++ b/include/tileset_anims.h @@ -6,4 +6,11 @@ void InitSecondaryTilesetAnimation(void); void UpdateTilesetAnimations(void); void TransferTilesetAnimsBuffer(void); +void InitTilesetAnim_General(void); +void InitTilesetAnim_CeladonCity(void); +void InitTilesetAnim_VermilionGym(void); +void InitTilesetAnim_CeladonGym(void); +void InitTilesetAnim_SilphCo(void); +void InitTilesetAnim_MtEmber(void); + #endif // GUARD_TILESET_ANIMS_H diff --git a/include/tilesets.h b/include/tilesets.h index 03274be60..855599d89 100644 --- a/include/tilesets.h +++ b/include/tilesets.h @@ -1,15 +1,13 @@ -#ifndef GUARD_tilesets_H -#define GUARD_tilesets_H +#ifndef GUARD_TILESETS_H +#define GUARD_TILESETS_H -#include "global.h" +extern const u32 gTilesetTiles_General[]; +extern const u16 gTilesetPalettes_General[][16]; -// Exported type declarations +extern const u32 gTilesetTiles_GenericBuilding1[]; +extern const u16 gTilesetPalettes_GenericBuilding1[][16]; -// Exported RAM declarations +extern const u32 gTilesetTiles_DepartmentStore[]; +extern const u16 gTilesetPalettes_DepartmentStore[][16]; -// Exported ROM declarations - -extern struct Tileset *gTilesetPointer_SecretBase; -extern struct Tileset *gTilesetPointer_SecretBaseRedCave; - -#endif //GUARD_tilesets_H +#endif // GUARD_TILESETS_H diff --git a/include/union_room_message.h b/include/union_room_message.h index db24aca15..961b25bc1 100644 --- a/include/union_room_message.h +++ b/include/union_room_message.h @@ -3,112 +3,112 @@ #include "global.h" -extern const u8 gUnionRoomActivity_Blank[]; -extern const u8 gUnknown_84571B0[]; -extern const u8 gUnknown_84571B4[]; -extern const u8 gUnknown_84571B8[]; -extern const u8 gUnknown_84571E0[]; -extern const u8 gUnknown_8457234[]; -extern const u8 gUnknown_8457264[]; -extern const u8 *const gUnknown_845742C[][5]; -extern const u8 gUnknown_845747C[]; -extern const u8 gUnknown_84574A0[]; -extern const u8 gUnknown_84574C4[]; -extern const u8 gUnknown_84574EC[]; -extern const u8 gUnknown_8457514[]; -extern const u8 gUnknown_8457530[]; -extern const u8 gUnknown_8457554[]; -extern const u8 *const gUnknown_8457608[]; -extern const u8 gUnknown_8457610[]; -extern const u8 *const gUnknown_845767C[]; -extern const u8 gUnknown_84576AC[]; -extern const u8 gUnknown_84576C4[]; -extern const u8 gUnknown_8457700[]; -extern const u8 gUnknown_845771C[]; -extern const u8 *const gUnknown_8457754[]; -extern const u8 gUnknown_845777C[]; -extern const u8 gUnknown_84577BC[]; -extern const u8 gUnknown_84577F8[]; -extern const u8 *const gUnknown_8457838[]; -extern const u8 gUnknown_84578BC[]; -extern const u8 *const gURText_PleaseWaitMsgs[]; -extern const u8 *const gURText_FriendPromptsForActivity[][2]; -extern const u8 *const gUnknown_8457BCC[]; -extern const u8 *const gUnknown_8457C20[]; -extern const u8 gUnknown_8457C48[]; -extern const u8 gUnknown_8457CA4[]; -extern const u8 gUnknown_8457CF8[]; -extern const u8 gUnknown_8457D44[]; -extern const u8 gUnknown_8457DB8[]; -extern const u8 gUnknown_8457E0C[]; -extern const u8 gUnknown_8457E28[]; -extern const u8 gUnknown_8457E44[]; -extern const u8 gUnknown_8457E60[]; -extern const u8 *const gUnknown_8457F80[][2]; -extern const u8 gUnknown_8457F90[]; -extern const u8 *const gResponseToURoomActivityInviteStringPtrs[][4]; -extern const u8 *const gUnknown_8458230[][2][3]; -extern const u8 *const gUnknown_8458314[]; -extern const u8 *const gUnknown_84583B4[]; -extern const u8 *const gUnknown_845842C[]; -extern const u8 gUnknown_8458434[]; -extern const u8 gUnknown_845847C[]; -extern const u8 gUnknown_84584C0[]; -extern const u8 *const gUnknown_8458548[]; -extern const u8 *const gUnknown_84585E8[]; -extern const u8 *const gUnknown_8458758[2][4]; -extern const u8 *const gUnknown_84588BC[2][4]; -extern const u8 *const gUnknown_84589AC[2][2]; -extern const u8 *const gUnknown_8458A78[2][4]; -extern const u8 gUnknown_8458A98[]; -extern const u8 gUnknown_8458AB8[]; -extern const u8 gUnknown_8458B44[]; -extern const u8 gURText_PleaseChooseTypeOfMon[]; -extern const u8 gUnknown_8458D1C[]; -extern const u8 gUnknown_8458D54[]; -extern const u8 gUnknown_8458D78[]; -extern const u8 gUnknown_8458D9C[]; -extern const u8 gUnknown_8458DBC[]; -extern const u8 gUnknown_8458DE8[]; -extern const u8 gUnknown_8458E10[]; -extern const u8 gUnknown_8458E70[]; -extern const u8 gUnknown_8458ED0[]; -extern const u8 gUnknown_8458F04[]; -extern const u8 gUnknown_8458F9C[]; -extern const u8 gText_EggTrade[]; -extern const u8 gUnknown_8458FC8[]; -extern const u8 gUnknown_8458FE4[]; -extern const u8 gUnknown_84591DC[]; -extern const u8 *const gUnknown_84591B8[]; -extern const u8 gUnknown_8459238[]; -extern const u8 gUnknown_8459250[]; -extern const u8 gUnknown_845928C[]; -extern const u8 *const gUnknown_845933C[]; -extern const u8 gUnknown_8459344[]; -extern const u8 gUnknown_845934C[]; -extern const u8 gUnknown_8459354[]; -extern const u8 gUnknown_8459360[]; -extern const u8 gUnknown_8459368[]; -extern const u8 gUnknown_8459370[]; -extern const u8 gUnknown_8459378[]; -extern const u8 gUnionRoomActivity_SingleBattle[]; -extern const u8 gUnionRoomActivity_DoubleBattle[]; -extern const u8 gUnionRoomActivity_MultiBattle[]; -extern const u8 gUnionRoomActivity_PokemonTrades[]; -extern const u8 gUnionRoomActivity_Chat[]; -extern const u8 gUnionRoomActivity_WonderCards[]; -extern const u8 gunionRoomActivity_WonderNews[]; -extern const u8 gUnionRoomActivity_Cards[]; -extern const u8 gUnionRoomActivity_PokemonJump[]; -extern const u8 gUnionRoomActivity_BerryCrush[]; -extern const u8 gUnionRoomActivity_BerryPicking[]; -extern const u8 gUnionRoomActivity_Search[]; -extern const u8 gUnionRoomActivity_SpinTradeJP[]; -extern const u8 gUnionRoomActivity_ItemTradeJP[]; -extern const u8 *const gUnknown_84594B0[]; -extern const u8 gUnknown_84594C4[]; -extern const u8 gUnknown_8459504[]; -extern const u8 *const gUnknown_8459580[]; -extern const u8 gUnknown_8459588[]; +extern const u8 gText_UR_EmptyString[]; +extern const u8 gText_UR_Colon[]; +extern const u8 gText_UR_ID[]; +extern const u8 gText_UR_PleaseStartOver[]; +extern const u8 gText_UR_WirelessSearchCanceled[]; +extern const u8 gText_UR_AwaitingCommunication[]; +extern const u8 gText_UR_AwaitingLinkPressStart[]; +extern const u8 *const gTexts_UR_PlayersNeededOrMode[][5]; +extern const u8 gText_UR_BButtonCancel[]; +extern const u8 gText_UR_PlayerContactedYouForXAccept[]; +extern const u8 gText_UR_PlayerContactedYouShareX[]; +extern const u8 gText_UR_PlayerContactedYouAddToMembers[]; +extern const u8 gText_UR_AreTheseMembersOK[]; +extern const u8 gText_UR_CancelModeWithTheseMembers[]; +extern const u8 gText_UR_AnOKWasSentToPlayer[]; +extern const u8 *const gTexts_UR_CantTransmitToTrainer[]; +extern const u8 gText_UR_ModeWithTheseMembersWillBeCanceled[]; +extern const u8 *const gTexts_UR_PlayerUnavailable[]; +extern const u8 gText_UR_PlayerSentBackOK[]; +extern const u8 gText_UR_PlayerOKdRegistration[]; +extern const u8 gText_UR_AwaitingOtherMembers[]; +extern const u8 gText_UR_QuitBeingMember[]; +extern const u8 *const gTexts_UR_PlayerDisconnected[]; +extern const u8 gText_UR_WirelessLinkEstablished[]; +extern const u8 gText_UR_WirelessLinkDropped[]; +extern const u8 gText_UR_LinkWithFriendDropped[]; +extern const u8 *const gTexts_UR_LinkDropped[]; +extern const u8 gText_UR_AwaitingPlayersResponseAboutTrade[]; +extern const u8 *const gTexts_UR_CommunicatingWait[]; +extern const u8 *const gTexts_UR_HiDoSomething[][GENDER_COUNT]; +extern const u8 *const gTexts_UR_PlayerContactedYou[]; +extern const u8 *const gTexts_UR_AwaitingResponse[]; +extern const u8 gText_UR_ShowTrainerCard[]; +extern const u8 gText_UR_BattleChallenge[]; +extern const u8 gText_UR_ChatInvitation[]; +extern const u8 gText_UR_OfferToTradeMon[]; +extern const u8 gText_UR_OfferToTradeEgg[]; +extern const u8 gText_UR_ChatDropped[]; +extern const u8 gText_UR_OfferDeclined1[]; +extern const u8 gText_UR_OfferDeclined2[]; +extern const u8 gText_UR_ChatEnded[]; +extern const u8 *const gTexts_UR_JoinChat[][GENDER_COUNT]; +extern const u8 gText_UR_TrainerAppearsBusy[]; +extern const u8 *const gTexts_UR_WaitOrShowCard[GENDER_COUNT][4]; +extern const u8 *const gTexts_UR_StartActivity[][GENDER_COUNT][3]; +extern const u8 *const gTexts_UR_BattleDeclined[GENDER_COUNT]; +extern const u8 *const gTexts_UR_ShowTrainerCardDeclined[GENDER_COUNT]; +extern const u8 *const gTexts_UR_IfYouWantToDoSomething[GENDER_COUNT]; +extern const u8 gText_UR_TrainerBattleBusy[]; +extern const u8 gText_UR_NeedTwoMonsOfLevel30OrLower1[]; +extern const u8 gText_UR_NeedTwoMonsOfLevel30OrLower2[]; +extern const u8 *const gTexts_UR_DeclineChat[GENDER_COUNT]; +extern const u8 *const gTexts_UR_ChatDeclined[GENDER_COUNT]; +extern const u8 *const gTexts_UR_BattleReaction[GENDER_COUNT][4]; +extern const u8 *const gTexts_UR_ChatReaction[GENDER_COUNT][4]; +extern const u8 *const gTexts_UR_TrainerCardReaction[GENDER_COUNT][2]; +extern const u8 *const gTexts_UR_TradeReaction[GENDER_COUNT][4]; +extern const u8 gText_UR_XCheckedTradingBoard[]; +extern const u8 gText_UR_RegisterMonAtTradingBoard[]; +extern const u8 gText_UR_TradingBoardInfo[]; +extern const u8 gText_UR_ChooseRequestedMonType[]; +extern const u8 gText_UR_WhichMonWillYouOffer[]; +extern const u8 gText_UR_RegistrationCanceled[]; +extern const u8 gText_UR_RegistraionCompleted[]; +extern const u8 gText_UR_TradeCanceled[]; +extern const u8 gText_UR_CancelRegistrationOfMon[]; +extern const u8 gText_UR_CancelRegistrationOfEgg[]; +extern const u8 gText_UR_RegistrationCanceled2[]; +extern const u8 gText_UR_AskTrainerToMakeTrade[]; +extern const u8 gText_UR_DontHaveTypeTrainerWants[]; +extern const u8 gText_UR_DontHaveEggTrainerWants[]; +extern const u8 gText_UR_TradeOfferRejected[]; +extern const u8 gText_UR_EggTrade[]; +extern const u8 gText_UR_ChooseJoinCancel[]; +extern const u8 gText_UR_ChooseTrainer[]; +extern const u8 gText_UR_SearchingForWirelessSystemWait[]; +extern const u8 *const gTexts_UR_ChooseTrainer[]; +extern const u8 gText_UR_AwaitingPlayersResponse[]; +extern const u8 gText_UR_PlayerHasBeenAskedToRegisterYouPleaseWait[]; +extern const u8 gText_UR_AwaitingResponseFromWirelessSystem[]; +extern const u8 *const gTexts_UR_NoWonderShared[]; +extern const u8 gText_UR_Battle[]; +extern const u8 gText_UR_Chat2[]; +extern const u8 gText_UR_Greetings[]; +extern const u8 gText_UR_Exit[]; +extern const u8 gText_UR_Exit2[]; +extern const u8 gText_UR_Info[]; +extern const u8 gText_UR_NameWantedOfferLv[]; +extern const u8 gText_UR_SingleBattle[]; +extern const u8 gText_UR_DoubleBattle[]; +extern const u8 gText_UR_MultiBattle[]; +extern const u8 gText_UR_PokemonTrades[]; +extern const u8 gText_UR_Chat[]; +extern const u8 gText_UR_WonderCards[]; +extern const u8 gText_UR_WonderNews[]; +extern const u8 gText_UR_Cards[]; +extern const u8 gText_UR_PokemonJump[]; +extern const u8 gText_UR_BerryCrush[]; +extern const u8 gText_UR_BerryPicking[]; +extern const u8 gText_UR_Search[]; +extern const u8 gText_UR_SpinTrade[]; +extern const u8 gText_UR_ItemTrade[]; +extern const u8 *const gTexts_UR_CardColor[]; +extern const u8 gText_UR_TrainerCardInfoPage1[]; +extern const u8 gText_UR_TrainerCardInfoPage2[]; +extern const u8 *const gTexts_UR_GladToMeetYou[GENDER_COUNT]; +extern const u8 gText_UR_FinishedCheckingPlayersTrainerCard[]; #endif //GUARD_UNION_ROOM_MESSAGE_H diff --git a/json_data_rules.mk b/json_data_rules.mk index 9b5cebe5d..03c36e242 100644 --- a/json_data_rules.mk +++ b/json_data_rules.mk @@ -13,3 +13,15 @@ $(DATA_C_SUBDIR)/wild_encounters.h: $(DATA_C_SUBDIR)/wild_encounters.json $(DATA $(JSONPROC) $^ $@ $(C_BUILDDIR)/wild_encounter.o: c_dep += $(DATA_C_SUBDIR)/wild_encounters.h + +AUTO_GEN_TARGETS += $(DATA_C_SUBDIR)/region_map/region_map_entry_strings.h +$(DATA_C_SUBDIR)/region_map/region_map_entry_strings.h: $(DATA_C_SUBDIR)/region_map/region_map_sections.json $(DATA_C_SUBDIR)/region_map/region_map_sections.strings.json.txt + $(JSONPROC) $^ $@ + +$(C_BUILDDIR)/region_map.o: c_dep += $(DATA_C_SUBDIR)/region_map/region_map_entry_strings.h + +AUTO_GEN_TARGETS += $(DATA_C_SUBDIR)/region_map/region_map_entries.h +$(DATA_C_SUBDIR)/region_map/region_map_entries.h: $(DATA_C_SUBDIR)/region_map/region_map_sections.json $(DATA_C_SUBDIR)/region_map/region_map_sections.entries.json.txt + $(JSONPROC) $^ $@ + +$(C_BUILDDIR)/region_map.o: c_dep += $(DATA_C_SUBDIR)/region_map/region_map_entries.h diff --git a/ld_script.txt b/ld_script.txt index 09e230ed6..546f6b5fe 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -81,7 +81,7 @@ SECTIONS { src/blend_palette.o(.text); src/daycare.o(.text); src/battle_interface.o(.text); - src/smokescreen.o(.text); + src/battle_anim_smokescreen.o(.text); src/pokeball.o(.text); src/load_save.o(.text); src/trade.o(.text); @@ -130,13 +130,11 @@ SECTIONS { src/pokedex.o(.text); src/trainer_card.o(.text); src/pokemon_storage_system.o(.text); - src/pokemon_storage_system_2.o(.text); - src/pokemon_storage_system_3.o(.text); - src/pokemon_storage_system_4.o(.text); - src/pokemon_storage_system_5.o(.text); - src/pokemon_storage_system_6.o(.text); - src/pokemon_storage_system_7.o(.text); - src/pokemon_storage_system_8.o(.text); + src/pokemon_storage_system_menu.o(.text); + src/pokemon_storage_system_tasks.o(.text); + src/pokemon_storage_system_graphics.o(.text); + src/pokemon_storage_system_data.o(.text); + src/pokemon_storage_system_misc.o(.text); src/pokemon_icon.o(.text); src/script_movement.o(.text); src/fldeff_cut.o(.text); @@ -162,21 +160,21 @@ SECTIONS { src/item_use.o(.text); src/battle_anim_effects_1.o(.text); src/battle_anim_effects_2.o(.text); - src/water.o(.text); - src/fire.o(.text); - src/electric.o(.text); - src/ice.o(.text); - src/fighting.o(.text); - src/poison.o(.text); - src/flying.o(.text); - src/psychic.o(.text); - src/bug.o(.text); - src/rock.o(.text); - src/ghost.o(.text); - src/dragon.o(.text); - src/dark.o(.text); - src/ground.o(.text); - src/normal.o(.text); + src/battle_anim_water.o(.text); + src/battle_anim_fire.o(.text); + src/battle_anim_electric.o(.text); + src/battle_anim_ice.o(.text); + src/battle_anim_fight.o(.text); + src/battle_anim_poison.o(.text); + src/battle_anim_flying.o(.text); + src/battle_anim_psychic.o(.text); + src/battle_anim_bug.o(.text); + src/battle_anim_rock.o(.text); + src/battle_anim_ghost.o(.text); + src/battle_anim_dragon.o(.text); + src/battle_anim_dark.o(.text); + src/battle_anim_ground.o(.text); + src/battle_anim_normal.o(.text); src/battle_anim_utility_funcs.o(.text); src/battle_intro.o(.text); src/bike.o(.text); @@ -204,7 +202,7 @@ SECTIONS { src/battle_controller_link_partner.o(.text); src/battle_message.o(.text); src/math_util.o(.text); - src/roulette_util.o(.text); + src/palette_util.o(.text); src/cable_car_util.o(.text); src/save.o(.text); src/mystery_event_script.o(.text); @@ -228,7 +226,7 @@ SECTIONS { src/evolution_graphics.o(.text); src/fldeff_teleport.o(.text); src/new_menu_helpers.o(.text); - src/box_party_pokemon_dropdown.o(.text); + src/tilemap_util.o(.text); src/save_menu_util.o(.text); src/map_preview_screen.o(.text); src/link_rfu_2.o(.text); @@ -281,8 +279,8 @@ SECTIONS { src/mevent_server_helpers.o(.text); src/mevent_client.o(.text); src/mevent_server.o(.text); - src/mevent_show_card.o(.text); - src/mevent_show_news.o(.text); + src/mystery_gift_show_card.o(.text); + src/mystery_gift_show_news.o(.text); src/menews_jisan.o(.text); src/seagallop.o(.text); src/pokemon_jump.o(.text); @@ -409,7 +407,7 @@ SECTIONS { src/battle_util.o(.rodata); src/battle_script_commands.o(.rodata); src/battle_controller_player.o(.rodata); - data/smokescreen.o(.rodata); + src/battle_anim_smokescreen.o(.rodata); src/battle_controller_opponent.o(.rodata); src/battle_controller_link_opponent.o(.rodata); src/pokemon.o(.rodata); @@ -422,7 +420,7 @@ SECTIONS { src/trade.o(.rodata); src/trade_scene.o(.rodata); src/overworld.o(.rodata); - data/tilesets.o(.rodata); + src/tilesets.o(.rodata); data/maps.o(.rodata); src/fieldmap.o(.rodata); src/metatile_behavior.o(.rodata); @@ -452,13 +450,11 @@ SECTIONS { src/field_effect.o(.rodata); src/option_menu.o(.rodata); src/trainer_card.o(.rodata); - src/pokemon_storage_system_2.o(.rodata); - src/pokemon_storage_system_3.o(.rodata); - src/pokemon_storage_system_4.o(.rodata); - src/pokemon_storage_system_5.o(.rodata); - src/pokemon_storage_system_6.o(.rodata); - src/pokemon_storage_system_7.o(.rodata); - src/pokemon_storage_system_8.o(.rodata); + src/pokemon_storage_system_menu.o(.rodata); + src/pokemon_storage_system_tasks.o(.rodata); + src/pokemon_storage_system_graphics.o(.rodata); + src/pokemon_storage_system_data.o(.rodata); + src/pokemon_storage_system_misc.o(.rodata); src/pokemon_icon.o(.rodata); src/fldeff_cut.o(.rodata); src/map_name_popup.o(.rodata); @@ -474,21 +470,21 @@ SECTIONS { src/item_use.o(.rodata); src/battle_anim_effects_1.o(.rodata); src/battle_anim_effects_2.o(.rodata); - src/water.o(.rodata); - src/fire.o(.rodata); - src/electric.o(.rodata); - src/ice.o(.rodata); - src/fighting.o(.rodata); - src/poison.o(.rodata); - src/flying.o(.rodata); - src/psychic.o(.rodata); - src/bug.o(.rodata); - src/rock.o(.rodata); - src/ghost.o(.rodata); - src/dragon.o(.rodata); - src/dark.o(.rodata); - src/ground.o(.rodata); - src/normal.o(.rodata); + src/battle_anim_water.o(.rodata); + src/battle_anim_fire.o(.rodata); + src/battle_anim_electric.o(.rodata); + src/battle_anim_ice.o(.rodata); + src/battle_anim_fight.o(.rodata); + src/battle_anim_poison.o(.rodata); + src/battle_anim_flying.o(.rodata); + src/battle_anim_psychic.o(.rodata); + src/battle_anim_bug.o(.rodata); + src/battle_anim_rock.o(.rodata); + src/battle_anim_ghost.o(.rodata); + src/battle_anim_dragon.o(.rodata); + src/battle_anim_dark.o(.rodata); + src/battle_anim_ground.o(.rodata); + src/battle_anim_normal.o(.rodata); src/battle_anim_utility_funcs.o(.rodata); src/battle_intro.o(.rodata); src/bike.o(.rodata); @@ -524,7 +520,7 @@ SECTIONS { src/clear_save_data_screen.o(.rodata); src/evolution_graphics.o(.rodata); src/new_menu_helpers.o(.rodata); - src/box_party_pokemon_dropdown.o(.rodata); + src/tilemap_util.o(.rodata); src/map_preview_screen.o(.rodata); src/link_rfu_2.o(.rodata); src/link_rfu_3.o(.rodata); @@ -576,8 +572,8 @@ SECTIONS { src/mevent_server_helpers.o(.rodata); src/mevent_client.o(.rodata); src/mevent_server.o(.rodata); - src/mevent_show_card.o(.rodata); - src/mevent_show_news.o(.rodata); + src/mystery_gift_show_card.o(.rodata); + src/mystery_gift_show_news.o(.rodata); src/mevent_scripts.o(.rodata); src/menews_jisan.o(.rodata); src/menews_jisan.o(.rodata.str1.4); diff --git a/sound/cry_tables.inc b/sound/cry_tables.inc new file mode 100644 index 000000000..22e743363 --- /dev/null +++ b/sound/cry_tables.inc @@ -0,0 +1,781 @@ + .align 2 +gCryTable:: + cry Cry_Bulbasaur + cry Cry_Ivysaur + cry Cry_Venusaur + cry Cry_Charmander + cry Cry_Charmeleon + cry Cry_Charizard + cry Cry_Squirtle + cry Cry_Wartortle + cry Cry_Blastoise + cry Cry_Caterpie + cry Cry_Metapod + cry Cry_Butterfree + cry Cry_Weedle + cry Cry_Kakuna + cry Cry_Beedrill + cry Cry_Pidgey + cry Cry_Pidgeotto + cry Cry_Pidgeot + cry Cry_Rattata + cry Cry_Raticate + cry Cry_Spearow + cry Cry_Fearow + cry Cry_Ekans + cry Cry_Arbok + cry Cry_Pikachu + cry Cry_Raichu + cry Cry_Sandshrew + cry Cry_Sandslash + cry Cry_NidoranF + cry Cry_Nidorina + cry Cry_Nidoqueen + cry Cry_NidoranM + cry Cry_Nidorino + cry Cry_Nidoking + cry Cry_Clefairy + cry Cry_Clefable + cry Cry_Vulpix + cry Cry_Ninetales + cry Cry_Jigglypuff + cry Cry_Wigglytuff + cry Cry_Zubat + cry Cry_Golbat + cry Cry_Oddish + cry Cry_Gloom + cry Cry_Vileplume + cry Cry_Paras + cry Cry_Parasect + cry Cry_Venonat + cry Cry_Venomoth + cry Cry_Diglett + cry Cry_Dugtrio + cry Cry_Meowth + cry Cry_Persian + cry Cry_Psyduck + cry Cry_Golduck + cry Cry_Mankey + cry Cry_Primeape + cry Cry_Growlithe + cry Cry_Arcanine + cry Cry_Poliwag + cry Cry_Poliwhirl + cry Cry_Poliwrath + cry Cry_Abra + cry Cry_Kadabra + cry Cry_Alakazam + cry Cry_Machop + cry Cry_Machoke + cry Cry_Machamp + cry Cry_Bellsprout + cry Cry_Weepinbell + cry Cry_Victreebel + cry Cry_Tentacool + cry Cry_Tentacruel + cry Cry_Geodude + cry Cry_Graveler + cry Cry_Golem + cry Cry_Ponyta + cry Cry_Rapidash + cry Cry_Slowpoke + cry Cry_Slowbro + cry Cry_Magnemite + cry Cry_Magneton + cry Cry_Farfetchd + cry Cry_Doduo + cry Cry_Dodrio + cry Cry_Seel + cry Cry_Dewgong + cry Cry_Grimer + cry Cry_Muk + cry Cry_Shellder + cry Cry_Cloyster + cry Cry_Gastly + cry Cry_Haunter + cry Cry_Gengar + cry Cry_Onix + cry Cry_Drowzee + cry Cry_Hypno + cry Cry_Krabby + cry Cry_Kingler + cry Cry_Voltorb + cry Cry_Electrode + cry Cry_Exeggcute + cry Cry_Exeggutor + cry Cry_Cubone + cry Cry_Marowak + cry Cry_Hitmonlee + cry Cry_Hitmonchan + cry Cry_Lickitung + cry Cry_Koffing + cry Cry_Weezing + cry Cry_Rhyhorn + cry Cry_Rhydon + cry Cry_Chansey + cry Cry_Tangela + cry Cry_Kangaskhan + cry Cry_Horsea + cry Cry_Seadra + cry Cry_Goldeen + cry Cry_Seaking + cry Cry_Staryu + cry Cry_Starmie + cry Cry_MrMime + cry Cry_Scyther + cry Cry_Jynx + cry Cry_Electabuzz + cry Cry_Magmar + cry Cry_Pinsir + cry Cry_Tauros + cry Cry_Magikarp + cry Cry_Gyarados + cry Cry_Lapras + cry Cry_Ditto + cry Cry_Eevee + cry Cry_Vaporeon + cry Cry_Jolteon + cry Cry_Flareon + cry Cry_Porygon + cry Cry_Omanyte + cry Cry_Omastar + cry Cry_Kabuto + cry Cry_Kabutops + cry Cry_Aerodactyl + cry Cry_Snorlax + cry Cry_Articuno + cry Cry_Zapdos + cry Cry_Moltres + cry Cry_Dratini + cry Cry_Dragonair + cry Cry_Dragonite + cry Cry_Mewtwo + cry Cry_Mew + cry Cry_Chikorita + cry Cry_Bayleef + cry Cry_Meganium + cry Cry_Cyndaquil + cry Cry_Quilava + cry Cry_Typhlosion + cry Cry_Totodile + cry Cry_Croconaw + cry Cry_Feraligatr + cry Cry_Sentret + cry Cry_Furret + cry Cry_Hoothoot + cry Cry_Noctowl + cry Cry_Ledyba + cry Cry_Ledian + cry Cry_Spinarak + cry Cry_Ariados + cry Cry_Crobat + cry Cry_Chinchou + cry Cry_Lanturn + cry Cry_Pichu + cry Cry_Cleffa + cry Cry_Igglybuff + cry Cry_Togepi + cry Cry_Togetic + cry Cry_Natu + cry Cry_Xatu + cry Cry_Mareep + cry Cry_Flaaffy + cry Cry_Ampharos + cry Cry_Bellossom + cry Cry_Marill + cry Cry_Azumarill + cry Cry_Sudowoodo + cry Cry_Politoed + cry Cry_Hoppip + cry Cry_Skiploom + cry Cry_Jumpluff + cry Cry_Aipom + cry Cry_Sunkern + cry Cry_Sunflora + cry Cry_Yanma + cry Cry_Wooper + cry Cry_Quagsire + cry Cry_Espeon + cry Cry_Umbreon + cry Cry_Murkrow + cry Cry_Slowking + cry Cry_Misdreavus + cry Cry_Unown + cry Cry_Wobbuffet + cry Cry_Girafarig + cry Cry_Pineco + cry Cry_Forretress + cry Cry_Dunsparce + cry Cry_Gligar + cry Cry_Steelix + cry Cry_Snubbull + cry Cry_Granbull + cry Cry_Qwilfish + cry Cry_Scizor + cry Cry_Shuckle + cry Cry_Heracross + cry Cry_Sneasel + cry Cry_Teddiursa + cry Cry_Ursaring + cry Cry_Slugma + cry Cry_Magcargo + cry Cry_Swinub + cry Cry_Piloswine + cry Cry_Corsola + cry Cry_Remoraid + cry Cry_Octillery + cry Cry_Delibird + cry Cry_Mantine + cry Cry_Skarmory + cry Cry_Houndour + cry Cry_Houndoom + cry Cry_Kingdra + cry Cry_Phanpy + cry Cry_Donphan + cry Cry_Porygon2 + cry Cry_Stantler + cry Cry_Smeargle + cry Cry_Tyrogue + cry Cry_Hitmontop + cry Cry_Smoochum + cry Cry_Elekid + cry Cry_Magby + cry Cry_Miltank + cry Cry_Blissey + cry Cry_Raikou + cry Cry_Entei + cry Cry_Suicune + cry Cry_Larvitar + cry Cry_Pupitar + cry Cry_Tyranitar + cry Cry_Lugia + cry Cry_HoOh + cry Cry_Celebi + cry Cry_Kecleon + cry Cry_Roselia + cry Cry_Torkoal + cry Cry_Electrike + cry Cry_Manectric + cry Cry_Duskull + cry Cry_Latias + cry Cry_Wynaut + cry Cry_Seviper + cry Cry_Sharpedo + cry Cry_Zangoose + cry Cry_Azurill + cry Cry_Swablu + cry Cry_Altaria + cry Cry_Unused265 + cry Cry_Taillow + cry Cry_Swellow + cry Cry_Unused268 + cry Cry_Spinda + cry Cry_Torchic + cry Cry_Combusken + cry Cry_Blaziken + cry Cry_Treecko + cry Cry_Grovyle + cry Cry_Sceptile + cry Cry_Mudkip + cry Cry_Marshtomp + cry Cry_Swampert + cry Cry_Pelipper + cry Cry_Wingull + cry Cry_Banette + cry Cry_Shuppet + cry Cry_Lotad + cry Cry_Lombre + cry Cry_Ludicolo + cry Cry_Seedot + cry Cry_Nuzleaf + cry Cry_Shiftry + cry Cry_Carvanha + cry Cry_Wurmple + cry Cry_Silcoon + cry Cry_Beautifly + cry Cry_Cascoon + cry Cry_Dustox + cry Cry_Ralts + cry Cry_Kirlia + cry Cry_Gardevoir + cry Cry_Slakoth + cry Cry_Vigoroth + cry Cry_Slaking + cry Cry_Nincada + cry Cry_Ninjask + cry Cry_Shedinja + cry Cry_Makuhita + cry Cry_Hariyama + cry Cry_Nosepass + cry Cry_Glalie + cry Cry_Plusle + cry Cry_Minun + cry Cry_Surskit + cry Cry_Masquerain + cry Cry_Skitty + cry Cry_Delcatty + cry Cry_Gulpin + cry Cry_Swalot + cry Cry_Numel + cry Cry_Camerupt + cry Cry_Barboach + cry Cry_Whiscash + cry Cry_Corphish + cry Cry_Crawdaunt + cry Cry_Spoink + cry Cry_Grumpig + cry Cry_Trapinch + cry Cry_Vibrava + cry Cry_Flygon + cry Cry_Cacnea + cry Cry_Cacturne + cry Cry_Baltoy + cry Cry_Claydol + cry Cry_Lunatone + cry Cry_Solrock + cry Cry_Feebas + cry Cry_Milotic + cry Cry_Absol + cry Cry_Meditite + cry Cry_Medicham + cry Cry_Spheal + cry Cry_Sealeo + cry Cry_Walrein + cry Cry_Clamperl + cry Cry_Huntail + cry Cry_Gorebyss + cry Cry_Lileep + cry Cry_Cradily + cry Cry_Anorith + cry Cry_Armaldo + cry Cry_Beldum + cry Cry_Metang + cry Cry_Metagross + cry Cry_Bagon + cry Cry_Shelgon + cry Cry_Regirock + cry Cry_Regice + cry Cry_Registeel + cry Cry_Castform + cry Cry_Volbeat + cry Cry_Illumise + cry Cry_Poochyena + cry Cry_Mightyena + cry Cry_Dusclops + cry Cry_Sableye + cry Cry_Mawile + cry Cry_Aron + cry Cry_Lairon + cry Cry_Aggron + cry Cry_Relicanth + cry Cry_Luvdisc + cry Cry_Groudon + cry Cry_Kyogre + cry Cry_Rayquaza + cry Cry_Salamence + cry Cry_Breloom + cry Cry_Shroomish + cry Cry_Linoone + cry Cry_Tropius + cry Cry_Wailmer + cry Cry_Zigzagoon + cry Cry_Exploud + cry Cry_Loudred + cry Cry_Wailord + cry Cry_Whismur + cry Cry_Snorunt + cry Cry_Latios + cry Cry_Jirachi + cry Cry_Deoxys + cry Cry_Chimecho + + .align 2 +gCryTable_Reverse:: + cry_reverse Cry_Bulbasaur + cry_reverse Cry_Ivysaur + cry_reverse Cry_Venusaur + cry_reverse Cry_Charmander + cry_reverse Cry_Charmeleon + cry_reverse Cry_Charizard + cry_reverse Cry_Squirtle + cry_reverse Cry_Wartortle + cry_reverse Cry_Blastoise + cry_reverse Cry_Caterpie + cry_reverse Cry_Metapod + cry_reverse Cry_Butterfree + cry_reverse Cry_Weedle + cry_reverse Cry_Kakuna + cry_reverse Cry_Beedrill + cry_reverse Cry_Pidgey + cry_reverse Cry_Pidgeotto + cry_reverse Cry_Pidgeot + cry_reverse Cry_Rattata + cry_reverse Cry_Raticate + cry_reverse Cry_Spearow + cry_reverse Cry_Fearow + cry_reverse Cry_Ekans + cry_reverse Cry_Arbok + cry_reverse Cry_Pikachu + cry_reverse Cry_Raichu + cry_reverse Cry_Sandshrew + cry_reverse Cry_Sandslash + cry_reverse Cry_NidoranF + cry_reverse Cry_Nidorina + cry_reverse Cry_Nidoqueen + cry_reverse Cry_NidoranM + cry_reverse Cry_Nidorino + cry_reverse Cry_Nidoking + cry_reverse Cry_Clefairy + cry_reverse Cry_Clefable + cry_reverse Cry_Vulpix + cry_reverse Cry_Ninetales + cry_reverse Cry_Jigglypuff + cry_reverse Cry_Wigglytuff + cry_reverse Cry_Zubat + cry_reverse Cry_Golbat + cry_reverse Cry_Oddish + cry_reverse Cry_Gloom + cry_reverse Cry_Vileplume + cry_reverse Cry_Paras + cry_reverse Cry_Parasect + cry_reverse Cry_Venonat + cry_reverse Cry_Venomoth + cry_reverse Cry_Diglett + cry_reverse Cry_Dugtrio + cry_reverse Cry_Meowth + cry_reverse Cry_Persian + cry_reverse Cry_Psyduck + cry_reverse Cry_Golduck + cry_reverse Cry_Mankey + cry_reverse Cry_Primeape + cry_reverse Cry_Growlithe + cry_reverse Cry_Arcanine + cry_reverse Cry_Poliwag + cry_reverse Cry_Poliwhirl + cry_reverse Cry_Poliwrath + cry_reverse Cry_Abra + cry_reverse Cry_Kadabra + cry_reverse Cry_Alakazam + cry_reverse Cry_Machop + cry_reverse Cry_Machoke + cry_reverse Cry_Machamp + cry_reverse Cry_Bellsprout + cry_reverse Cry_Weepinbell + cry_reverse Cry_Victreebel + cry_reverse Cry_Tentacool + cry_reverse Cry_Tentacruel + cry_reverse Cry_Geodude + cry_reverse Cry_Graveler + cry_reverse Cry_Golem + cry_reverse Cry_Ponyta + cry_reverse Cry_Rapidash + cry_reverse Cry_Slowpoke + cry_reverse Cry_Slowbro + cry_reverse Cry_Magnemite + cry_reverse Cry_Magneton + cry_reverse Cry_Farfetchd + cry_reverse Cry_Doduo + cry_reverse Cry_Dodrio + cry_reverse Cry_Seel + cry_reverse Cry_Dewgong + cry_reverse Cry_Grimer + cry_reverse Cry_Muk + cry_reverse Cry_Shellder + cry_reverse Cry_Cloyster + cry_reverse Cry_Gastly + cry_reverse Cry_Haunter + cry_reverse Cry_Gengar + cry_reverse Cry_Onix + cry_reverse Cry_Drowzee + cry_reverse Cry_Hypno + cry_reverse Cry_Krabby + cry_reverse Cry_Kingler + cry_reverse Cry_Voltorb + cry_reverse Cry_Electrode + cry_reverse Cry_Exeggcute + cry_reverse Cry_Exeggutor + cry_reverse Cry_Cubone + cry_reverse Cry_Marowak + cry_reverse Cry_Hitmonlee + cry_reverse Cry_Hitmonchan + cry_reverse Cry_Lickitung + cry_reverse Cry_Koffing + cry_reverse Cry_Weezing + cry_reverse Cry_Rhyhorn + cry_reverse Cry_Rhydon + cry_reverse Cry_Chansey + cry_reverse Cry_Tangela + cry_reverse Cry_Kangaskhan + cry_reverse Cry_Horsea + cry_reverse Cry_Seadra + cry_reverse Cry_Goldeen + cry_reverse Cry_Seaking + cry_reverse Cry_Staryu + cry_reverse Cry_Starmie + cry_reverse Cry_MrMime + cry_reverse Cry_Scyther + cry_reverse Cry_Jynx + cry_reverse Cry_Electabuzz + cry_reverse Cry_Magmar + cry_reverse Cry_Pinsir + cry_reverse Cry_Tauros + cry_reverse Cry_Magikarp + cry_reverse Cry_Gyarados + cry_reverse Cry_Lapras + cry_reverse Cry_Ditto + cry_reverse Cry_Eevee + cry_reverse Cry_Vaporeon + cry_reverse Cry_Jolteon + cry_reverse Cry_Flareon + cry_reverse Cry_Porygon + cry_reverse Cry_Omanyte + cry_reverse Cry_Omastar + cry_reverse Cry_Kabuto + cry_reverse Cry_Kabutops + cry_reverse Cry_Aerodactyl + cry_reverse Cry_Snorlax + cry_reverse Cry_Articuno + cry_reverse Cry_Zapdos + cry_reverse Cry_Moltres + cry_reverse Cry_Dratini + cry_reverse Cry_Dragonair + cry_reverse Cry_Dragonite + cry_reverse Cry_Mewtwo + cry_reverse Cry_Mew + cry_reverse Cry_Chikorita + cry_reverse Cry_Bayleef + cry_reverse Cry_Meganium + cry_reverse Cry_Cyndaquil + cry_reverse Cry_Quilava + cry_reverse Cry_Typhlosion + cry_reverse Cry_Totodile + cry_reverse Cry_Croconaw + cry_reverse Cry_Feraligatr + cry_reverse Cry_Sentret + cry_reverse Cry_Furret + cry_reverse Cry_Hoothoot + cry_reverse Cry_Noctowl + cry_reverse Cry_Ledyba + cry_reverse Cry_Ledian + cry_reverse Cry_Spinarak + cry_reverse Cry_Ariados + cry_reverse Cry_Crobat + cry_reverse Cry_Chinchou + cry_reverse Cry_Lanturn + cry_reverse Cry_Pichu + cry_reverse Cry_Cleffa + cry_reverse Cry_Igglybuff + cry_reverse Cry_Togepi + cry_reverse Cry_Togetic + cry_reverse Cry_Natu + cry_reverse Cry_Xatu + cry_reverse Cry_Mareep + cry_reverse Cry_Flaaffy + cry_reverse Cry_Ampharos + cry_reverse Cry_Bellossom + cry_reverse Cry_Marill + cry_reverse Cry_Azumarill + cry_reverse Cry_Sudowoodo + cry_reverse Cry_Politoed + cry_reverse Cry_Hoppip + cry_reverse Cry_Skiploom + cry_reverse Cry_Jumpluff + cry_reverse Cry_Aipom + cry_reverse Cry_Sunkern + cry_reverse Cry_Sunflora + cry_reverse Cry_Yanma + cry_reverse Cry_Wooper + cry_reverse Cry_Quagsire + cry_reverse Cry_Espeon + cry_reverse Cry_Umbreon + cry_reverse Cry_Murkrow + cry_reverse Cry_Slowking + cry_reverse Cry_Misdreavus + cry_reverse Cry_Unown + cry_reverse Cry_Wobbuffet + cry_reverse Cry_Girafarig + cry_reverse Cry_Pineco + cry_reverse Cry_Forretress + cry_reverse Cry_Dunsparce + cry_reverse Cry_Gligar + cry_reverse Cry_Steelix + cry_reverse Cry_Snubbull + cry_reverse Cry_Granbull + cry_reverse Cry_Qwilfish + cry_reverse Cry_Scizor + cry_reverse Cry_Shuckle + cry_reverse Cry_Heracross + cry_reverse Cry_Sneasel + cry_reverse Cry_Teddiursa + cry_reverse Cry_Ursaring + cry_reverse Cry_Slugma + cry_reverse Cry_Magcargo + cry_reverse Cry_Swinub + cry_reverse Cry_Piloswine + cry_reverse Cry_Corsola + cry_reverse Cry_Remoraid + cry_reverse Cry_Octillery + cry_reverse Cry_Delibird + cry_reverse Cry_Mantine + cry_reverse Cry_Skarmory + cry_reverse Cry_Houndour + cry_reverse Cry_Houndoom + cry_reverse Cry_Kingdra + cry_reverse Cry_Phanpy + cry_reverse Cry_Donphan + cry_reverse Cry_Porygon2 + cry_reverse Cry_Stantler + cry_reverse Cry_Smeargle + cry_reverse Cry_Tyrogue + cry_reverse Cry_Hitmontop + cry_reverse Cry_Smoochum + cry_reverse Cry_Elekid + cry_reverse Cry_Magby + cry_reverse Cry_Miltank + cry_reverse Cry_Blissey + cry_reverse Cry_Raikou + cry_reverse Cry_Entei + cry_reverse Cry_Suicune + cry_reverse Cry_Larvitar + cry_reverse Cry_Pupitar + cry_reverse Cry_Tyranitar + cry_reverse Cry_Lugia + cry_reverse Cry_HoOh + cry_reverse Cry_Celebi + cry_reverse Cry_Kecleon + cry_reverse Cry_Roselia + cry_reverse Cry_Torkoal + cry_reverse Cry_Electrike + cry_reverse Cry_Manectric + cry_reverse Cry_Duskull + cry_reverse Cry_Latias + cry_reverse Cry_Wynaut + cry_reverse Cry_Seviper + cry_reverse Cry_Sharpedo + cry_reverse Cry_Zangoose + cry_reverse Cry_Azurill + cry_reverse Cry_Swablu + cry_reverse Cry_Altaria + cry_reverse Cry_Unused265 + cry_reverse Cry_Taillow + cry_reverse Cry_Swellow + cry_reverse Cry_Unused268 + cry_reverse Cry_Spinda + cry_reverse Cry_Torchic + cry_reverse Cry_Combusken + cry_reverse Cry_Blaziken + cry_reverse Cry_Treecko + cry_reverse Cry_Grovyle + cry_reverse Cry_Sceptile + cry_reverse Cry_Mudkip + cry_reverse Cry_Marshtomp + cry_reverse Cry_Swampert + cry_reverse Cry_Pelipper + cry_reverse Cry_Wingull + cry_reverse Cry_Banette + cry_reverse Cry_Shuppet + cry_reverse Cry_Lotad + cry_reverse Cry_Lombre + cry_reverse Cry_Ludicolo + cry_reverse Cry_Seedot + cry_reverse Cry_Nuzleaf + cry_reverse Cry_Shiftry + cry_reverse Cry_Carvanha + cry_reverse Cry_Wurmple + cry_reverse Cry_Silcoon + cry_reverse Cry_Beautifly + cry_reverse Cry_Cascoon + cry_reverse Cry_Dustox + cry_reverse Cry_Ralts + cry_reverse Cry_Kirlia + cry_reverse Cry_Gardevoir + cry_reverse Cry_Slakoth + cry_reverse Cry_Vigoroth + cry_reverse Cry_Slaking + cry_reverse Cry_Nincada + cry_reverse Cry_Ninjask + cry_reverse Cry_Shedinja + cry_reverse Cry_Makuhita + cry_reverse Cry_Hariyama + cry_reverse Cry_Nosepass + cry_reverse Cry_Glalie + cry_reverse Cry_Plusle + cry_reverse Cry_Minun + cry_reverse Cry_Surskit + cry_reverse Cry_Masquerain + cry_reverse Cry_Skitty + cry_reverse Cry_Delcatty + cry_reverse Cry_Gulpin + cry_reverse Cry_Swalot + cry_reverse Cry_Numel + cry_reverse Cry_Camerupt + cry_reverse Cry_Barboach + cry_reverse Cry_Whiscash + cry_reverse Cry_Corphish + cry_reverse Cry_Crawdaunt + cry_reverse Cry_Spoink + cry_reverse Cry_Grumpig + cry_reverse Cry_Trapinch + cry_reverse Cry_Vibrava + cry_reverse Cry_Flygon + cry_reverse Cry_Cacnea + cry_reverse Cry_Cacturne + cry_reverse Cry_Baltoy + cry_reverse Cry_Claydol + cry_reverse Cry_Lunatone + cry_reverse Cry_Solrock + cry_reverse Cry_Feebas + cry_reverse Cry_Milotic + cry_reverse Cry_Absol + cry_reverse Cry_Meditite + cry_reverse Cry_Medicham + cry_reverse Cry_Spheal + cry_reverse Cry_Sealeo + cry_reverse Cry_Walrein + cry_reverse Cry_Clamperl + cry_reverse Cry_Huntail + cry_reverse Cry_Gorebyss + cry_reverse Cry_Lileep + cry_reverse Cry_Cradily + cry_reverse Cry_Anorith + cry_reverse Cry_Armaldo + cry_reverse Cry_Beldum + cry_reverse Cry_Metang + cry_reverse Cry_Metagross + cry_reverse Cry_Bagon + cry_reverse Cry_Shelgon + cry_reverse Cry_Regirock + cry_reverse Cry_Regice + cry_reverse Cry_Registeel + cry_reverse Cry_Castform + cry_reverse Cry_Volbeat + cry_reverse Cry_Illumise + cry_reverse Cry_Poochyena + cry_reverse Cry_Mightyena + cry_reverse Cry_Dusclops + cry_reverse Cry_Sableye + cry_reverse Cry_Mawile + cry_reverse Cry_Aron + cry_reverse Cry_Lairon + cry_reverse Cry_Aggron + cry_reverse Cry_Relicanth + cry_reverse Cry_Luvdisc + cry_reverse Cry_Groudon + cry_reverse Cry_Kyogre + cry_reverse Cry_Rayquaza + cry_reverse Cry_Salamence + cry_reverse Cry_Breloom + cry_reverse Cry_Shroomish + cry_reverse Cry_Linoone + cry_reverse Cry_Tropius + cry_reverse Cry_Wailmer + cry_reverse Cry_Zigzagoon + cry_reverse Cry_Exploud + cry_reverse Cry_Loudred + cry_reverse Cry_Wailord + cry_reverse Cry_Whismur + cry_reverse Cry_Snorunt + cry_reverse Cry_Latios + cry_reverse Cry_Jirachi + cry_reverse Cry_Deoxys + cry_reverse Cry_Chimecho diff --git a/sound/direct_sound_data.inc b/sound/direct_sound_data.inc index a0ca80964..98191db21 100644 --- a/sound/direct_sound_data.inc +++ b/sound/direct_sound_data.inc @@ -305,1555 +305,1555 @@ DirectSoundWaveData_unused_sc55_tom:: .align 2 Cry_Bulbasaur:: - .incbin "sound/direct_sound_samples/cry_bulbasaur.bin" + .incbin "sound/direct_sound_samples/cries/bulbasaur.bin" .align 2 Cry_Ivysaur:: - .incbin "sound/direct_sound_samples/cry_ivysaur.bin" + .incbin "sound/direct_sound_samples/cries/ivysaur.bin" .align 2 Cry_Venusaur:: - .incbin "sound/direct_sound_samples/cry_venusaur.bin" + .incbin "sound/direct_sound_samples/cries/venusaur.bin" .align 2 Cry_Charmander:: - .incbin "sound/direct_sound_samples/cry_charmander.bin" + .incbin "sound/direct_sound_samples/cries/charmander.bin" .align 2 Cry_Charmeleon:: - .incbin "sound/direct_sound_samples/cry_charmeleon.bin" + .incbin "sound/direct_sound_samples/cries/charmeleon.bin" .align 2 Cry_Charizard:: - .incbin "sound/direct_sound_samples/cry_charizard.bin" + .incbin "sound/direct_sound_samples/cries/charizard.bin" .align 2 Cry_Squirtle:: - .incbin "sound/direct_sound_samples/cry_squirtle.bin" + .incbin "sound/direct_sound_samples/cries/squirtle.bin" .align 2 Cry_Wartortle:: - .incbin "sound/direct_sound_samples/cry_wartortle.bin" + .incbin "sound/direct_sound_samples/cries/wartortle.bin" .align 2 Cry_Blastoise:: - .incbin "sound/direct_sound_samples/cry_blastoise.bin" + .incbin "sound/direct_sound_samples/cries/blastoise.bin" .align 2 Cry_Caterpie:: - .incbin "sound/direct_sound_samples/cry_caterpie.bin" + .incbin "sound/direct_sound_samples/cries/caterpie.bin" .align 2 Cry_Metapod:: - .incbin "sound/direct_sound_samples/cry_metapod.bin" + .incbin "sound/direct_sound_samples/cries/metapod.bin" .align 2 Cry_Butterfree:: - .incbin "sound/direct_sound_samples/cry_butterfree.bin" + .incbin "sound/direct_sound_samples/cries/butterfree.bin" .align 2 Cry_Weedle:: - .incbin "sound/direct_sound_samples/cry_weedle.bin" + .incbin "sound/direct_sound_samples/cries/weedle.bin" .align 2 Cry_Kakuna:: - .incbin "sound/direct_sound_samples/cry_kakuna.bin" + .incbin "sound/direct_sound_samples/cries/kakuna.bin" .align 2 Cry_Beedrill:: - .incbin "sound/direct_sound_samples/cry_beedrill.bin" + .incbin "sound/direct_sound_samples/cries/beedrill.bin" .align 2 Cry_Pidgey:: - .incbin "sound/direct_sound_samples/cry_pidgey.bin" + .incbin "sound/direct_sound_samples/cries/pidgey.bin" .align 2 Cry_Pidgeotto:: - .incbin "sound/direct_sound_samples/cry_pidgeotto.bin" + .incbin "sound/direct_sound_samples/cries/pidgeotto.bin" .align 2 Cry_Pidgeot:: - .incbin "sound/direct_sound_samples/cry_pidgeot.bin" + .incbin "sound/direct_sound_samples/cries/pidgeot.bin" .align 2 Cry_Rattata:: - .incbin "sound/direct_sound_samples/cry_rattata.bin" + .incbin "sound/direct_sound_samples/cries/rattata.bin" .align 2 Cry_Raticate:: - .incbin "sound/direct_sound_samples/cry_raticate.bin" + .incbin "sound/direct_sound_samples/cries/raticate.bin" .align 2 Cry_Spearow:: - .incbin "sound/direct_sound_samples/cry_spearow.bin" + .incbin "sound/direct_sound_samples/cries/spearow.bin" .align 2 Cry_Fearow:: - .incbin "sound/direct_sound_samples/cry_fearow.bin" + .incbin "sound/direct_sound_samples/cries/fearow.bin" .align 2 Cry_Ekans:: - .incbin "sound/direct_sound_samples/cry_ekans.bin" + .incbin "sound/direct_sound_samples/cries/ekans.bin" .align 2 Cry_Arbok:: - .incbin "sound/direct_sound_samples/cry_arbok.bin" + .incbin "sound/direct_sound_samples/cries/arbok.bin" .align 2 Cry_Pikachu:: - .incbin "sound/direct_sound_samples/cry_pikachu.bin" + .incbin "sound/direct_sound_samples/cries/pikachu.bin" .align 2 Cry_Raichu:: - .incbin "sound/direct_sound_samples/cry_raichu.bin" + .incbin "sound/direct_sound_samples/cries/raichu.bin" .align 2 Cry_Sandshrew:: - .incbin "sound/direct_sound_samples/cry_sandshrew.bin" + .incbin "sound/direct_sound_samples/cries/sandshrew.bin" .align 2 Cry_Sandslash:: - .incbin "sound/direct_sound_samples/cry_sandslash.bin" + .incbin "sound/direct_sound_samples/cries/sandslash.bin" .align 2 Cry_NidoranF:: - .incbin "sound/direct_sound_samples/cry_nidoran_f.bin" + .incbin "sound/direct_sound_samples/cries/nidoran_f.bin" .align 2 Cry_Nidorina:: - .incbin "sound/direct_sound_samples/cry_nidorina.bin" + .incbin "sound/direct_sound_samples/cries/nidorina.bin" .align 2 Cry_Nidoqueen:: - .incbin "sound/direct_sound_samples/cry_nidoqueen.bin" + .incbin "sound/direct_sound_samples/cries/nidoqueen.bin" .align 2 Cry_NidoranM:: - .incbin "sound/direct_sound_samples/cry_nidoran_m.bin" + .incbin "sound/direct_sound_samples/cries/nidoran_m.bin" .align 2 Cry_Nidorino:: - .incbin "sound/direct_sound_samples/cry_nidorino.bin" + .incbin "sound/direct_sound_samples/cries/nidorino.bin" .align 2 Cry_Nidoking:: - .incbin "sound/direct_sound_samples/cry_nidoking.bin" + .incbin "sound/direct_sound_samples/cries/nidoking.bin" .align 2 Cry_Clefairy:: - .incbin "sound/direct_sound_samples/cry_clefairy.bin" + .incbin "sound/direct_sound_samples/cries/clefairy.bin" .align 2 Cry_Clefable:: - .incbin "sound/direct_sound_samples/cry_clefable.bin" + .incbin "sound/direct_sound_samples/cries/clefable.bin" .align 2 Cry_Vulpix:: - .incbin "sound/direct_sound_samples/cry_vulpix.bin" + .incbin "sound/direct_sound_samples/cries/vulpix.bin" .align 2 Cry_Ninetales:: - .incbin "sound/direct_sound_samples/cry_ninetales.bin" + .incbin "sound/direct_sound_samples/cries/ninetales.bin" .align 2 Cry_Jigglypuff:: - .incbin "sound/direct_sound_samples/cry_jigglypuff.bin" + .incbin "sound/direct_sound_samples/cries/jigglypuff.bin" .align 2 Cry_Wigglytuff:: - .incbin "sound/direct_sound_samples/cry_wigglytuff.bin" + .incbin "sound/direct_sound_samples/cries/wigglytuff.bin" .align 2 Cry_Zubat:: - .incbin "sound/direct_sound_samples/cry_zubat.bin" + .incbin "sound/direct_sound_samples/cries/zubat.bin" .align 2 Cry_Golbat:: - .incbin "sound/direct_sound_samples/cry_golbat.bin" + .incbin "sound/direct_sound_samples/cries/golbat.bin" .align 2 Cry_Oddish:: - .incbin "sound/direct_sound_samples/cry_oddish.bin" + .incbin "sound/direct_sound_samples/cries/oddish.bin" .align 2 Cry_Gloom:: - .incbin "sound/direct_sound_samples/cry_gloom.bin" + .incbin "sound/direct_sound_samples/cries/gloom.bin" .align 2 Cry_Vileplume:: - .incbin "sound/direct_sound_samples/cry_vileplume.bin" + .incbin "sound/direct_sound_samples/cries/vileplume.bin" .align 2 Cry_Paras:: - .incbin "sound/direct_sound_samples/cry_paras.bin" + .incbin "sound/direct_sound_samples/cries/paras.bin" .align 2 Cry_Parasect:: - .incbin "sound/direct_sound_samples/cry_parasect.bin" + .incbin "sound/direct_sound_samples/cries/parasect.bin" .align 2 Cry_Venonat:: - .incbin "sound/direct_sound_samples/cry_venonat.bin" + .incbin "sound/direct_sound_samples/cries/venonat.bin" .align 2 Cry_Venomoth:: - .incbin "sound/direct_sound_samples/cry_venomoth.bin" + .incbin "sound/direct_sound_samples/cries/venomoth.bin" .align 2 Cry_Diglett:: - .incbin "sound/direct_sound_samples/cry_diglett.bin" + .incbin "sound/direct_sound_samples/cries/diglett.bin" .align 2 Cry_Dugtrio:: - .incbin "sound/direct_sound_samples/cry_dugtrio.bin" + .incbin "sound/direct_sound_samples/cries/dugtrio.bin" .align 2 Cry_Meowth:: - .incbin "sound/direct_sound_samples/cry_meowth.bin" + .incbin "sound/direct_sound_samples/cries/meowth.bin" .align 2 Cry_Persian:: - .incbin "sound/direct_sound_samples/cry_persian.bin" + .incbin "sound/direct_sound_samples/cries/persian.bin" .align 2 Cry_Psyduck:: - .incbin "sound/direct_sound_samples/cry_psyduck.bin" + .incbin "sound/direct_sound_samples/cries/psyduck.bin" .align 2 Cry_Golduck:: - .incbin "sound/direct_sound_samples/cry_golduck.bin" + .incbin "sound/direct_sound_samples/cries/golduck.bin" .align 2 Cry_Mankey:: - .incbin "sound/direct_sound_samples/cry_mankey.bin" + .incbin "sound/direct_sound_samples/cries/mankey.bin" .align 2 Cry_Primeape:: - .incbin "sound/direct_sound_samples/cry_primeape.bin" + .incbin "sound/direct_sound_samples/cries/primeape.bin" .align 2 Cry_Growlithe:: - .incbin "sound/direct_sound_samples/cry_growlithe.bin" + .incbin "sound/direct_sound_samples/cries/growlithe.bin" .align 2 Cry_Arcanine:: - .incbin "sound/direct_sound_samples/cry_arcanine.bin" + .incbin "sound/direct_sound_samples/cries/arcanine.bin" .align 2 Cry_Poliwag:: - .incbin "sound/direct_sound_samples/cry_poliwag.bin" + .incbin "sound/direct_sound_samples/cries/poliwag.bin" .align 2 Cry_Poliwhirl:: - .incbin "sound/direct_sound_samples/cry_poliwhirl.bin" + .incbin "sound/direct_sound_samples/cries/poliwhirl.bin" .align 2 Cry_Poliwrath:: - .incbin "sound/direct_sound_samples/cry_poliwrath.bin" + .incbin "sound/direct_sound_samples/cries/poliwrath.bin" .align 2 Cry_Abra:: - .incbin "sound/direct_sound_samples/cry_abra.bin" + .incbin "sound/direct_sound_samples/cries/abra.bin" .align 2 Cry_Kadabra:: - .incbin "sound/direct_sound_samples/cry_kadabra.bin" + .incbin "sound/direct_sound_samples/cries/kadabra.bin" .align 2 Cry_Alakazam:: - .incbin "sound/direct_sound_samples/cry_alakazam.bin" + .incbin "sound/direct_sound_samples/cries/alakazam.bin" .align 2 Cry_Machop:: - .incbin "sound/direct_sound_samples/cry_machop.bin" + .incbin "sound/direct_sound_samples/cries/machop.bin" .align 2 Cry_Machoke:: - .incbin "sound/direct_sound_samples/cry_machoke.bin" + .incbin "sound/direct_sound_samples/cries/machoke.bin" .align 2 Cry_Machamp:: - .incbin "sound/direct_sound_samples/cry_machamp.bin" + .incbin "sound/direct_sound_samples/cries/machamp.bin" .align 2 Cry_Bellsprout:: - .incbin "sound/direct_sound_samples/cry_bellsprout.bin" + .incbin "sound/direct_sound_samples/cries/bellsprout.bin" .align 2 Cry_Weepinbell:: - .incbin "sound/direct_sound_samples/cry_weepinbell.bin" + .incbin "sound/direct_sound_samples/cries/weepinbell.bin" .align 2 Cry_Victreebel:: - .incbin "sound/direct_sound_samples/cry_victreebel.bin" + .incbin "sound/direct_sound_samples/cries/victreebel.bin" .align 2 Cry_Tentacool:: - .incbin "sound/direct_sound_samples/cry_tentacool.bin" + .incbin "sound/direct_sound_samples/cries/tentacool.bin" .align 2 Cry_Tentacruel:: - .incbin "sound/direct_sound_samples/cry_tentacruel.bin" + .incbin "sound/direct_sound_samples/cries/tentacruel.bin" .align 2 Cry_Geodude:: - .incbin "sound/direct_sound_samples/cry_geodude.bin" + .incbin "sound/direct_sound_samples/cries/geodude.bin" .align 2 Cry_Graveler:: - .incbin "sound/direct_sound_samples/cry_graveler.bin" + .incbin "sound/direct_sound_samples/cries/graveler.bin" .align 2 Cry_Golem:: - .incbin "sound/direct_sound_samples/cry_golem.bin" + .incbin "sound/direct_sound_samples/cries/golem.bin" .align 2 Cry_Ponyta:: - .incbin "sound/direct_sound_samples/cry_ponyta.bin" + .incbin "sound/direct_sound_samples/cries/ponyta.bin" .align 2 Cry_Rapidash:: - .incbin "sound/direct_sound_samples/cry_rapidash.bin" + .incbin "sound/direct_sound_samples/cries/rapidash.bin" .align 2 Cry_Slowpoke:: - .incbin "sound/direct_sound_samples/cry_slowpoke.bin" + .incbin "sound/direct_sound_samples/cries/slowpoke.bin" .align 2 Cry_Slowbro:: - .incbin "sound/direct_sound_samples/cry_slowbro.bin" + .incbin "sound/direct_sound_samples/cries/slowbro.bin" .align 2 Cry_Magnemite:: - .incbin "sound/direct_sound_samples/cry_magnemite.bin" + .incbin "sound/direct_sound_samples/cries/magnemite.bin" .align 2 Cry_Magneton:: - .incbin "sound/direct_sound_samples/cry_magneton.bin" + .incbin "sound/direct_sound_samples/cries/magneton.bin" .align 2 Cry_Farfetchd:: - .incbin "sound/direct_sound_samples/cry_farfetchd.bin" + .incbin "sound/direct_sound_samples/cries/farfetchd.bin" .align 2 Cry_Doduo:: - .incbin "sound/direct_sound_samples/cry_doduo.bin" + .incbin "sound/direct_sound_samples/cries/doduo.bin" .align 2 Cry_Dodrio:: - .incbin "sound/direct_sound_samples/cry_dodrio.bin" + .incbin "sound/direct_sound_samples/cries/dodrio.bin" .align 2 Cry_Seel:: - .incbin "sound/direct_sound_samples/cry_seel.bin" + .incbin "sound/direct_sound_samples/cries/seel.bin" .align 2 Cry_Dewgong:: - .incbin "sound/direct_sound_samples/cry_dewgong.bin" + .incbin "sound/direct_sound_samples/cries/dewgong.bin" .align 2 Cry_Grimer:: - .incbin "sound/direct_sound_samples/cry_grimer.bin" + .incbin "sound/direct_sound_samples/cries/grimer.bin" .align 2 Cry_Muk:: - .incbin "sound/direct_sound_samples/cry_muk.bin" + .incbin "sound/direct_sound_samples/cries/muk.bin" .align 2 Cry_Shellder:: - .incbin "sound/direct_sound_samples/cry_shellder.bin" + .incbin "sound/direct_sound_samples/cries/shellder.bin" .align 2 Cry_Cloyster:: - .incbin "sound/direct_sound_samples/cry_cloyster.bin" + .incbin "sound/direct_sound_samples/cries/cloyster.bin" .align 2 Cry_Gastly:: - .incbin "sound/direct_sound_samples/cry_gastly.bin" + .incbin "sound/direct_sound_samples/cries/gastly.bin" .align 2 Cry_Haunter:: - .incbin "sound/direct_sound_samples/cry_haunter.bin" + .incbin "sound/direct_sound_samples/cries/haunter.bin" .align 2 Cry_Gengar:: - .incbin "sound/direct_sound_samples/cry_gengar.bin" + .incbin "sound/direct_sound_samples/cries/gengar.bin" .align 2 Cry_Onix:: - .incbin "sound/direct_sound_samples/cry_onix.bin" + .incbin "sound/direct_sound_samples/cries/onix.bin" .align 2 Cry_Drowzee:: - .incbin "sound/direct_sound_samples/cry_drowzee.bin" + .incbin "sound/direct_sound_samples/cries/drowzee.bin" .align 2 Cry_Hypno:: - .incbin "sound/direct_sound_samples/cry_hypno.bin" + .incbin "sound/direct_sound_samples/cries/hypno.bin" .align 2 Cry_Krabby:: - .incbin "sound/direct_sound_samples/cry_krabby.bin" + .incbin "sound/direct_sound_samples/cries/krabby.bin" .align 2 Cry_Kingler:: - .incbin "sound/direct_sound_samples/cry_kingler.bin" + .incbin "sound/direct_sound_samples/cries/kingler.bin" .align 2 Cry_Voltorb:: - .incbin "sound/direct_sound_samples/cry_voltorb.bin" + .incbin "sound/direct_sound_samples/cries/voltorb.bin" .align 2 Cry_Electrode:: - .incbin "sound/direct_sound_samples/cry_electrode.bin" + .incbin "sound/direct_sound_samples/cries/electrode.bin" .align 2 Cry_Exeggcute:: - .incbin "sound/direct_sound_samples/cry_exeggcute.bin" + .incbin "sound/direct_sound_samples/cries/exeggcute.bin" .align 2 Cry_Exeggutor:: - .incbin "sound/direct_sound_samples/cry_exeggutor.bin" + .incbin "sound/direct_sound_samples/cries/exeggutor.bin" .align 2 Cry_Cubone:: - .incbin "sound/direct_sound_samples/cry_cubone.bin" + .incbin "sound/direct_sound_samples/cries/cubone.bin" .align 2 Cry_Marowak:: - .incbin "sound/direct_sound_samples/cry_marowak.bin" + .incbin "sound/direct_sound_samples/cries/marowak.bin" .align 2 Cry_Hitmonlee:: - .incbin "sound/direct_sound_samples/cry_hitmonlee.bin" + .incbin "sound/direct_sound_samples/cries/hitmonlee.bin" .align 2 Cry_Hitmonchan:: - .incbin "sound/direct_sound_samples/cry_hitmonchan.bin" + .incbin "sound/direct_sound_samples/cries/hitmonchan.bin" .align 2 Cry_Lickitung:: - .incbin "sound/direct_sound_samples/cry_lickitung.bin" + .incbin "sound/direct_sound_samples/cries/lickitung.bin" .align 2 Cry_Koffing:: - .incbin "sound/direct_sound_samples/cry_koffing.bin" + .incbin "sound/direct_sound_samples/cries/koffing.bin" .align 2 Cry_Weezing:: - .incbin "sound/direct_sound_samples/cry_weezing.bin" + .incbin "sound/direct_sound_samples/cries/weezing.bin" .align 2 Cry_Rhyhorn:: - .incbin "sound/direct_sound_samples/cry_rhyhorn.bin" + .incbin "sound/direct_sound_samples/cries/rhyhorn.bin" .align 2 Cry_Rhydon:: - .incbin "sound/direct_sound_samples/cry_rhydon.bin" + .incbin "sound/direct_sound_samples/cries/rhydon.bin" .align 2 Cry_Chansey:: - .incbin "sound/direct_sound_samples/cry_chansey.bin" + .incbin "sound/direct_sound_samples/cries/chansey.bin" .align 2 Cry_Tangela:: - .incbin "sound/direct_sound_samples/cry_tangela.bin" + .incbin "sound/direct_sound_samples/cries/tangela.bin" .align 2 Cry_Kangaskhan:: - .incbin "sound/direct_sound_samples/cry_kangaskhan.bin" + .incbin "sound/direct_sound_samples/cries/kangaskhan.bin" .align 2 Cry_Horsea:: - .incbin "sound/direct_sound_samples/cry_horsea.bin" + .incbin "sound/direct_sound_samples/cries/horsea.bin" .align 2 Cry_Seadra:: - .incbin "sound/direct_sound_samples/cry_seadra.bin" + .incbin "sound/direct_sound_samples/cries/seadra.bin" .align 2 Cry_Goldeen:: - .incbin "sound/direct_sound_samples/cry_goldeen.bin" + .incbin "sound/direct_sound_samples/cries/goldeen.bin" .align 2 Cry_Seaking:: - .incbin "sound/direct_sound_samples/cry_seaking.bin" + .incbin "sound/direct_sound_samples/cries/seaking.bin" .align 2 Cry_Staryu:: - .incbin "sound/direct_sound_samples/cry_staryu.bin" + .incbin "sound/direct_sound_samples/cries/staryu.bin" .align 2 Cry_Starmie:: - .incbin "sound/direct_sound_samples/cry_starmie.bin" + .incbin "sound/direct_sound_samples/cries/starmie.bin" .align 2 Cry_MrMime:: - .incbin "sound/direct_sound_samples/cry_mr_mime.bin" + .incbin "sound/direct_sound_samples/cries/mr_mime.bin" .align 2 Cry_Scyther:: - .incbin "sound/direct_sound_samples/cry_scyther.bin" + .incbin "sound/direct_sound_samples/cries/scyther.bin" .align 2 Cry_Jynx:: - .incbin "sound/direct_sound_samples/cry_jynx.bin" + .incbin "sound/direct_sound_samples/cries/jynx.bin" .align 2 Cry_Electabuzz:: - .incbin "sound/direct_sound_samples/cry_electabuzz.bin" + .incbin "sound/direct_sound_samples/cries/electabuzz.bin" .align 2 Cry_Magmar:: - .incbin "sound/direct_sound_samples/cry_magmar.bin" + .incbin "sound/direct_sound_samples/cries/magmar.bin" .align 2 Cry_Pinsir:: - .incbin "sound/direct_sound_samples/cry_pinsir.bin" + .incbin "sound/direct_sound_samples/cries/pinsir.bin" .align 2 Cry_Tauros:: - .incbin "sound/direct_sound_samples/cry_tauros.bin" + .incbin "sound/direct_sound_samples/cries/tauros.bin" .align 2 Cry_Magikarp:: - .incbin "sound/direct_sound_samples/cry_magikarp.bin" + .incbin "sound/direct_sound_samples/cries/magikarp.bin" .align 2 Cry_Gyarados:: - .incbin "sound/direct_sound_samples/cry_gyarados.bin" + .incbin "sound/direct_sound_samples/cries/gyarados.bin" .align 2 Cry_Lapras:: - .incbin "sound/direct_sound_samples/cry_lapras.bin" + .incbin "sound/direct_sound_samples/cries/lapras.bin" .align 2 Cry_Ditto:: - .incbin "sound/direct_sound_samples/cry_ditto.bin" + .incbin "sound/direct_sound_samples/cries/ditto.bin" .align 2 Cry_Eevee:: - .incbin "sound/direct_sound_samples/cry_eevee.bin" + .incbin "sound/direct_sound_samples/cries/eevee.bin" .align 2 Cry_Vaporeon:: - .incbin "sound/direct_sound_samples/cry_vaporeon.bin" + .incbin "sound/direct_sound_samples/cries/vaporeon.bin" .align 2 Cry_Jolteon:: - .incbin "sound/direct_sound_samples/cry_jolteon.bin" + .incbin "sound/direct_sound_samples/cries/jolteon.bin" .align 2 Cry_Flareon:: - .incbin "sound/direct_sound_samples/cry_flareon.bin" + .incbin "sound/direct_sound_samples/cries/flareon.bin" .align 2 Cry_Porygon:: - .incbin "sound/direct_sound_samples/cry_porygon.bin" + .incbin "sound/direct_sound_samples/cries/porygon.bin" .align 2 Cry_Omanyte:: - .incbin "sound/direct_sound_samples/cry_omanyte.bin" + .incbin "sound/direct_sound_samples/cries/omanyte.bin" .align 2 Cry_Omastar:: - .incbin "sound/direct_sound_samples/cry_omastar.bin" + .incbin "sound/direct_sound_samples/cries/omastar.bin" .align 2 Cry_Kabuto:: - .incbin "sound/direct_sound_samples/cry_kabuto.bin" + .incbin "sound/direct_sound_samples/cries/kabuto.bin" .align 2 Cry_Kabutops:: - .incbin "sound/direct_sound_samples/cry_kabutops.bin" + .incbin "sound/direct_sound_samples/cries/kabutops.bin" .align 2 Cry_Aerodactyl:: - .incbin "sound/direct_sound_samples/cry_aerodactyl.bin" + .incbin "sound/direct_sound_samples/cries/aerodactyl.bin" .align 2 Cry_Snorlax:: - .incbin "sound/direct_sound_samples/cry_snorlax.bin" + .incbin "sound/direct_sound_samples/cries/snorlax.bin" .align 2 Cry_Articuno:: - .incbin "sound/direct_sound_samples/cry_articuno.bin" + .incbin "sound/direct_sound_samples/cries/articuno.bin" .align 2 Cry_Zapdos:: - .incbin "sound/direct_sound_samples/cry_zapdos.bin" + .incbin "sound/direct_sound_samples/cries/zapdos.bin" .align 2 Cry_Moltres:: - .incbin "sound/direct_sound_samples/cry_moltres.bin" + .incbin "sound/direct_sound_samples/cries/moltres.bin" .align 2 Cry_Dratini:: - .incbin "sound/direct_sound_samples/cry_dratini.bin" + .incbin "sound/direct_sound_samples/cries/dratini.bin" .align 2 Cry_Dragonair:: - .incbin "sound/direct_sound_samples/cry_dragonair.bin" + .incbin "sound/direct_sound_samples/cries/dragonair.bin" .align 2 Cry_Dragonite:: - .incbin "sound/direct_sound_samples/cry_dragonite.bin" + .incbin "sound/direct_sound_samples/cries/dragonite.bin" .align 2 Cry_Mewtwo:: - .incbin "sound/direct_sound_samples/cry_mewtwo.bin" + .incbin "sound/direct_sound_samples/cries/mewtwo.bin" .align 2 Cry_Mew:: - .incbin "sound/direct_sound_samples/cry_mew.bin" + .incbin "sound/direct_sound_samples/cries/mew.bin" .align 2 Cry_Chikorita:: - .incbin "sound/direct_sound_samples/cry_chikorita.bin" + .incbin "sound/direct_sound_samples/cries/chikorita.bin" .align 2 Cry_Bayleef:: - .incbin "sound/direct_sound_samples/cry_bayleef.bin" + .incbin "sound/direct_sound_samples/cries/bayleef.bin" .align 2 Cry_Meganium:: - .incbin "sound/direct_sound_samples/cry_meganium.bin" + .incbin "sound/direct_sound_samples/cries/meganium.bin" .align 2 Cry_Cyndaquil:: - .incbin "sound/direct_sound_samples/cry_cyndaquil.bin" + .incbin "sound/direct_sound_samples/cries/cyndaquil.bin" .align 2 Cry_Quilava:: - .incbin "sound/direct_sound_samples/cry_quilava.bin" + .incbin "sound/direct_sound_samples/cries/quilava.bin" .align 2 Cry_Typhlosion:: - .incbin "sound/direct_sound_samples/cry_typhlosion.bin" + .incbin "sound/direct_sound_samples/cries/typhlosion.bin" .align 2 Cry_Totodile:: - .incbin "sound/direct_sound_samples/cry_totodile.bin" + .incbin "sound/direct_sound_samples/cries/totodile.bin" .align 2 Cry_Croconaw:: - .incbin "sound/direct_sound_samples/cry_croconaw.bin" + .incbin "sound/direct_sound_samples/cries/croconaw.bin" .align 2 Cry_Feraligatr:: - .incbin "sound/direct_sound_samples/cry_feraligatr.bin" + .incbin "sound/direct_sound_samples/cries/feraligatr.bin" .align 2 Cry_Sentret:: - .incbin "sound/direct_sound_samples/cry_sentret.bin" + .incbin "sound/direct_sound_samples/cries/sentret.bin" .align 2 Cry_Furret:: - .incbin "sound/direct_sound_samples/cry_furret.bin" + .incbin "sound/direct_sound_samples/cries/furret.bin" .align 2 Cry_Hoothoot:: - .incbin "sound/direct_sound_samples/cry_hoothoot.bin" + .incbin "sound/direct_sound_samples/cries/hoothoot.bin" .align 2 Cry_Noctowl:: - .incbin "sound/direct_sound_samples/cry_noctowl.bin" + .incbin "sound/direct_sound_samples/cries/noctowl.bin" .align 2 Cry_Ledyba:: - .incbin "sound/direct_sound_samples/cry_ledyba.bin" + .incbin "sound/direct_sound_samples/cries/ledyba.bin" .align 2 Cry_Ledian:: - .incbin "sound/direct_sound_samples/cry_ledian.bin" + .incbin "sound/direct_sound_samples/cries/ledian.bin" .align 2 Cry_Spinarak:: - .incbin "sound/direct_sound_samples/cry_spinarak.bin" + .incbin "sound/direct_sound_samples/cries/spinarak.bin" .align 2 Cry_Ariados:: - .incbin "sound/direct_sound_samples/cry_ariados.bin" + .incbin "sound/direct_sound_samples/cries/ariados.bin" .align 2 Cry_Crobat:: - .incbin "sound/direct_sound_samples/cry_crobat.bin" + .incbin "sound/direct_sound_samples/cries/crobat.bin" .align 2 Cry_Chinchou:: - .incbin "sound/direct_sound_samples/cry_chinchou.bin" + .incbin "sound/direct_sound_samples/cries/chinchou.bin" .align 2 Cry_Lanturn:: - .incbin "sound/direct_sound_samples/cry_lanturn.bin" + .incbin "sound/direct_sound_samples/cries/lanturn.bin" .align 2 Cry_Pichu:: - .incbin "sound/direct_sound_samples/cry_pichu.bin" + .incbin "sound/direct_sound_samples/cries/pichu.bin" .align 2 Cry_Cleffa:: - .incbin "sound/direct_sound_samples/cry_cleffa.bin" + .incbin "sound/direct_sound_samples/cries/cleffa.bin" .align 2 Cry_Igglybuff:: - .incbin "sound/direct_sound_samples/cry_igglybuff.bin" + .incbin "sound/direct_sound_samples/cries/igglybuff.bin" .align 2 Cry_Togepi:: - .incbin "sound/direct_sound_samples/cry_togepi.bin" + .incbin "sound/direct_sound_samples/cries/togepi.bin" .align 2 Cry_Togetic:: - .incbin "sound/direct_sound_samples/cry_togetic.bin" + .incbin "sound/direct_sound_samples/cries/togetic.bin" .align 2 Cry_Natu:: - .incbin "sound/direct_sound_samples/cry_natu.bin" + .incbin "sound/direct_sound_samples/cries/natu.bin" .align 2 Cry_Xatu:: - .incbin "sound/direct_sound_samples/cry_xatu.bin" + .incbin "sound/direct_sound_samples/cries/xatu.bin" .align 2 Cry_Mareep:: - .incbin "sound/direct_sound_samples/cry_mareep.bin" + .incbin "sound/direct_sound_samples/cries/mareep.bin" .align 2 Cry_Flaaffy:: - .incbin "sound/direct_sound_samples/cry_flaaffy.bin" + .incbin "sound/direct_sound_samples/cries/flaaffy.bin" .align 2 Cry_Ampharos:: - .incbin "sound/direct_sound_samples/cry_ampharos.bin" + .incbin "sound/direct_sound_samples/cries/ampharos.bin" .align 2 Cry_Bellossom:: - .incbin "sound/direct_sound_samples/cry_bellossom.bin" + .incbin "sound/direct_sound_samples/cries/bellossom.bin" .align 2 Cry_Marill:: - .incbin "sound/direct_sound_samples/cry_marill.bin" + .incbin "sound/direct_sound_samples/cries/marill.bin" .align 2 Cry_Azumarill:: - .incbin "sound/direct_sound_samples/cry_azumarill.bin" + .incbin "sound/direct_sound_samples/cries/azumarill.bin" .align 2 Cry_Sudowoodo:: - .incbin "sound/direct_sound_samples/cry_sudowoodo.bin" + .incbin "sound/direct_sound_samples/cries/sudowoodo.bin" .align 2 Cry_Politoed:: - .incbin "sound/direct_sound_samples/cry_politoed.bin" + .incbin "sound/direct_sound_samples/cries/politoed.bin" .align 2 Cry_Hoppip:: - .incbin "sound/direct_sound_samples/cry_hoppip.bin" + .incbin "sound/direct_sound_samples/cries/hoppip.bin" .align 2 Cry_Skiploom:: - .incbin "sound/direct_sound_samples/cry_skiploom.bin" + .incbin "sound/direct_sound_samples/cries/skiploom.bin" .align 2 Cry_Jumpluff:: - .incbin "sound/direct_sound_samples/cry_jumpluff.bin" + .incbin "sound/direct_sound_samples/cries/jumpluff.bin" .align 2 Cry_Aipom:: - .incbin "sound/direct_sound_samples/cry_aipom.bin" + .incbin "sound/direct_sound_samples/cries/aipom.bin" .align 2 Cry_Sunkern:: - .incbin "sound/direct_sound_samples/cry_sunkern.bin" + .incbin "sound/direct_sound_samples/cries/sunkern.bin" .align 2 Cry_Sunflora:: - .incbin "sound/direct_sound_samples/cry_sunflora.bin" + .incbin "sound/direct_sound_samples/cries/sunflora.bin" .align 2 Cry_Yanma:: - .incbin "sound/direct_sound_samples/cry_yanma.bin" + .incbin "sound/direct_sound_samples/cries/yanma.bin" .align 2 Cry_Wooper:: - .incbin "sound/direct_sound_samples/cry_wooper.bin" + .incbin "sound/direct_sound_samples/cries/wooper.bin" .align 2 Cry_Quagsire:: - .incbin "sound/direct_sound_samples/cry_quagsire.bin" + .incbin "sound/direct_sound_samples/cries/quagsire.bin" .align 2 Cry_Espeon:: - .incbin "sound/direct_sound_samples/cry_espeon.bin" + .incbin "sound/direct_sound_samples/cries/espeon.bin" .align 2 Cry_Umbreon:: - .incbin "sound/direct_sound_samples/cry_umbreon.bin" + .incbin "sound/direct_sound_samples/cries/umbreon.bin" .align 2 Cry_Murkrow:: - .incbin "sound/direct_sound_samples/cry_murkrow.bin" + .incbin "sound/direct_sound_samples/cries/murkrow.bin" .align 2 Cry_Slowking:: - .incbin "sound/direct_sound_samples/cry_slowking.bin" + .incbin "sound/direct_sound_samples/cries/slowking.bin" .align 2 Cry_Misdreavus:: - .incbin "sound/direct_sound_samples/cry_misdreavus.bin" + .incbin "sound/direct_sound_samples/cries/misdreavus.bin" .align 2 Cry_Unown:: - .incbin "sound/direct_sound_samples/cry_unown.bin" + .incbin "sound/direct_sound_samples/cries/unown.bin" .align 2 Cry_Wobbuffet:: - .incbin "sound/direct_sound_samples/cry_wobbuffet.bin" + .incbin "sound/direct_sound_samples/cries/wobbuffet.bin" .align 2 Cry_Girafarig:: - .incbin "sound/direct_sound_samples/cry_girafarig.bin" + .incbin "sound/direct_sound_samples/cries/girafarig.bin" .align 2 Cry_Pineco:: - .incbin "sound/direct_sound_samples/cry_pineco.bin" + .incbin "sound/direct_sound_samples/cries/pineco.bin" .align 2 Cry_Forretress:: - .incbin "sound/direct_sound_samples/cry_forretress.bin" + .incbin "sound/direct_sound_samples/cries/forretress.bin" .align 2 Cry_Dunsparce:: - .incbin "sound/direct_sound_samples/cry_dunsparce.bin" + .incbin "sound/direct_sound_samples/cries/dunsparce.bin" .align 2 Cry_Gligar:: - .incbin "sound/direct_sound_samples/cry_gligar.bin" + .incbin "sound/direct_sound_samples/cries/gligar.bin" .align 2 Cry_Steelix:: - .incbin "sound/direct_sound_samples/cry_steelix.bin" + .incbin "sound/direct_sound_samples/cries/steelix.bin" .align 2 Cry_Snubbull:: - .incbin "sound/direct_sound_samples/cry_snubbull.bin" + .incbin "sound/direct_sound_samples/cries/snubbull.bin" .align 2 Cry_Granbull:: - .incbin "sound/direct_sound_samples/cry_granbull.bin" + .incbin "sound/direct_sound_samples/cries/granbull.bin" .align 2 Cry_Qwilfish:: - .incbin "sound/direct_sound_samples/cry_qwilfish.bin" + .incbin "sound/direct_sound_samples/cries/qwilfish.bin" .align 2 Cry_Scizor:: - .incbin "sound/direct_sound_samples/cry_scizor.bin" + .incbin "sound/direct_sound_samples/cries/scizor.bin" .align 2 Cry_Shuckle:: - .incbin "sound/direct_sound_samples/cry_shuckle.bin" + .incbin "sound/direct_sound_samples/cries/shuckle.bin" .align 2 Cry_Heracross:: - .incbin "sound/direct_sound_samples/cry_heracross.bin" + .incbin "sound/direct_sound_samples/cries/heracross.bin" .align 2 Cry_Sneasel:: - .incbin "sound/direct_sound_samples/cry_sneasel.bin" + .incbin "sound/direct_sound_samples/cries/sneasel.bin" .align 2 Cry_Teddiursa:: - .incbin "sound/direct_sound_samples/cry_teddiursa.bin" + .incbin "sound/direct_sound_samples/cries/teddiursa.bin" .align 2 Cry_Ursaring:: - .incbin "sound/direct_sound_samples/cry_ursaring.bin" + .incbin "sound/direct_sound_samples/cries/ursaring.bin" .align 2 Cry_Slugma:: - .incbin "sound/direct_sound_samples/cry_slugma.bin" + .incbin "sound/direct_sound_samples/cries/slugma.bin" .align 2 Cry_Magcargo:: - .incbin "sound/direct_sound_samples/cry_magcargo.bin" + .incbin "sound/direct_sound_samples/cries/magcargo.bin" .align 2 Cry_Swinub:: - .incbin "sound/direct_sound_samples/cry_swinub.bin" + .incbin "sound/direct_sound_samples/cries/swinub.bin" .align 2 Cry_Piloswine:: - .incbin "sound/direct_sound_samples/cry_piloswine.bin" + .incbin "sound/direct_sound_samples/cries/piloswine.bin" .align 2 Cry_Corsola:: - .incbin "sound/direct_sound_samples/cry_corsola.bin" + .incbin "sound/direct_sound_samples/cries/corsola.bin" .align 2 Cry_Remoraid:: - .incbin "sound/direct_sound_samples/cry_remoraid.bin" + .incbin "sound/direct_sound_samples/cries/remoraid.bin" .align 2 Cry_Octillery:: - .incbin "sound/direct_sound_samples/cry_octillery.bin" + .incbin "sound/direct_sound_samples/cries/octillery.bin" .align 2 Cry_Delibird:: - .incbin "sound/direct_sound_samples/cry_delibird.bin" + .incbin "sound/direct_sound_samples/cries/delibird.bin" .align 2 Cry_Mantine:: - .incbin "sound/direct_sound_samples/cry_mantine.bin" + .incbin "sound/direct_sound_samples/cries/mantine.bin" .align 2 Cry_Skarmory:: - .incbin "sound/direct_sound_samples/cry_skarmory.bin" + .incbin "sound/direct_sound_samples/cries/skarmory.bin" .align 2 Cry_Houndour:: - .incbin "sound/direct_sound_samples/cry_houndour.bin" + .incbin "sound/direct_sound_samples/cries/houndour.bin" .align 2 Cry_Houndoom:: - .incbin "sound/direct_sound_samples/cry_houndoom.bin" + .incbin "sound/direct_sound_samples/cries/houndoom.bin" .align 2 Cry_Kingdra:: - .incbin "sound/direct_sound_samples/cry_kingdra.bin" + .incbin "sound/direct_sound_samples/cries/kingdra.bin" .align 2 Cry_Phanpy:: - .incbin "sound/direct_sound_samples/cry_phanpy.bin" + .incbin "sound/direct_sound_samples/cries/phanpy.bin" .align 2 Cry_Donphan:: - .incbin "sound/direct_sound_samples/cry_donphan.bin" + .incbin "sound/direct_sound_samples/cries/donphan.bin" .align 2 Cry_Porygon2:: - .incbin "sound/direct_sound_samples/cry_porygon2.bin" + .incbin "sound/direct_sound_samples/cries/porygon2.bin" .align 2 Cry_Stantler:: - .incbin "sound/direct_sound_samples/cry_stantler.bin" + .incbin "sound/direct_sound_samples/cries/stantler.bin" .align 2 Cry_Smeargle:: - .incbin "sound/direct_sound_samples/cry_smeargle.bin" + .incbin "sound/direct_sound_samples/cries/smeargle.bin" .align 2 Cry_Tyrogue:: - .incbin "sound/direct_sound_samples/cry_tyrogue.bin" + .incbin "sound/direct_sound_samples/cries/tyrogue.bin" .align 2 Cry_Hitmontop:: - .incbin "sound/direct_sound_samples/cry_hitmontop.bin" + .incbin "sound/direct_sound_samples/cries/hitmontop.bin" .align 2 Cry_Smoochum:: - .incbin "sound/direct_sound_samples/cry_smoochum.bin" + .incbin "sound/direct_sound_samples/cries/smoochum.bin" .align 2 Cry_Elekid:: - .incbin "sound/direct_sound_samples/cry_elekid.bin" + .incbin "sound/direct_sound_samples/cries/elekid.bin" .align 2 Cry_Magby:: - .incbin "sound/direct_sound_samples/cry_magby.bin" + .incbin "sound/direct_sound_samples/cries/magby.bin" .align 2 Cry_Miltank:: - .incbin "sound/direct_sound_samples/cry_miltank.bin" + .incbin "sound/direct_sound_samples/cries/miltank.bin" .align 2 Cry_Blissey:: - .incbin "sound/direct_sound_samples/cry_blissey.bin" + .incbin "sound/direct_sound_samples/cries/blissey.bin" .align 2 Cry_Raikou:: - .incbin "sound/direct_sound_samples/cry_raikou.bin" + .incbin "sound/direct_sound_samples/cries/raikou.bin" .align 2 Cry_Entei:: - .incbin "sound/direct_sound_samples/cry_entei.bin" + .incbin "sound/direct_sound_samples/cries/entei.bin" .align 2 Cry_Suicune:: - .incbin "sound/direct_sound_samples/cry_suicune.bin" + .incbin "sound/direct_sound_samples/cries/suicune.bin" .align 2 Cry_Larvitar:: - .incbin "sound/direct_sound_samples/cry_larvitar.bin" + .incbin "sound/direct_sound_samples/cries/larvitar.bin" .align 2 Cry_Pupitar:: - .incbin "sound/direct_sound_samples/cry_pupitar.bin" + .incbin "sound/direct_sound_samples/cries/pupitar.bin" .align 2 Cry_Tyranitar:: - .incbin "sound/direct_sound_samples/cry_tyranitar.bin" + .incbin "sound/direct_sound_samples/cries/tyranitar.bin" .align 2 Cry_Lugia:: - .incbin "sound/direct_sound_samples/cry_lugia.bin" + .incbin "sound/direct_sound_samples/cries/lugia.bin" .align 2 Cry_HoOh:: - .incbin "sound/direct_sound_samples/cry_ho_oh.bin" + .incbin "sound/direct_sound_samples/cries/ho_oh.bin" .align 2 Cry_Celebi:: - .incbin "sound/direct_sound_samples/cry_celebi.bin" + .incbin "sound/direct_sound_samples/cries/celebi.bin" .align 2 Cry_Kecleon:: - .incbin "sound/direct_sound_samples/cry_kecleon.bin" + .incbin "sound/direct_sound_samples/cries/kecleon.bin" .align 2 Cry_Roselia:: - .incbin "sound/direct_sound_samples/cry_roselia.bin" + .incbin "sound/direct_sound_samples/cries/roselia.bin" .align 2 Cry_Torkoal:: - .incbin "sound/direct_sound_samples/cry_torkoal.bin" + .incbin "sound/direct_sound_samples/cries/torkoal.bin" .align 2 Cry_Electrike:: - .incbin "sound/direct_sound_samples/cry_electrike.bin" + .incbin "sound/direct_sound_samples/cries/electrike.bin" .align 2 Cry_Manectric:: - .incbin "sound/direct_sound_samples/cry_manectric.bin" + .incbin "sound/direct_sound_samples/cries/manectric.bin" .align 2 Cry_Duskull:: - .incbin "sound/direct_sound_samples/cry_duskull.bin" + .incbin "sound/direct_sound_samples/cries/duskull.bin" .align 2 Cry_Latias:: - .incbin "sound/direct_sound_samples/cry_latias.bin" + .incbin "sound/direct_sound_samples/cries/latias.bin" .align 2 Cry_Wynaut:: - .incbin "sound/direct_sound_samples/cry_wynaut.bin" + .incbin "sound/direct_sound_samples/cries/wynaut.bin" .align 2 Cry_Seviper:: - .incbin "sound/direct_sound_samples/cry_seviper.bin" + .incbin "sound/direct_sound_samples/cries/seviper.bin" .align 2 Cry_Sharpedo:: - .incbin "sound/direct_sound_samples/cry_sharpedo.bin" + .incbin "sound/direct_sound_samples/cries/sharpedo.bin" .align 2 Cry_Zangoose:: - .incbin "sound/direct_sound_samples/cry_zangoose.bin" + .incbin "sound/direct_sound_samples/cries/zangoose.bin" .align 2 Cry_Azurill:: - .incbin "sound/direct_sound_samples/cry_azurill.bin" + .incbin "sound/direct_sound_samples/cries/azurill.bin" .align 2 Cry_Swablu:: - .incbin "sound/direct_sound_samples/cry_swablu.bin" + .incbin "sound/direct_sound_samples/cries/swablu.bin" .align 2 Cry_Altaria:: - .incbin "sound/direct_sound_samples/cry_altaria.bin" + .incbin "sound/direct_sound_samples/cries/altaria.bin" .align 2 Cry_Unused265:: - .incbin "sound/direct_sound_samples/cry_unused_265.bin" + .incbin "sound/direct_sound_samples/cries/unused_265.bin" .align 2 Cry_Taillow:: - .incbin "sound/direct_sound_samples/cry_taillow.bin" + .incbin "sound/direct_sound_samples/cries/taillow.bin" .align 2 Cry_Swellow:: - .incbin "sound/direct_sound_samples/cry_swellow.bin" + .incbin "sound/direct_sound_samples/cries/swellow.bin" .align 2 Cry_Unused268:: - .incbin "sound/direct_sound_samples/cry_unused_268.bin" + .incbin "sound/direct_sound_samples/cries/unused_268.bin" .align 2 Cry_Spinda:: - .incbin "sound/direct_sound_samples/cry_spinda.bin" + .incbin "sound/direct_sound_samples/cries/spinda.bin" .align 2 Cry_Torchic:: - .incbin "sound/direct_sound_samples/cry_torchic.bin" + .incbin "sound/direct_sound_samples/cries/torchic.bin" .align 2 Cry_Combusken:: - .incbin "sound/direct_sound_samples/cry_combusken.bin" + .incbin "sound/direct_sound_samples/cries/combusken.bin" .align 2 Cry_Blaziken:: - .incbin "sound/direct_sound_samples/cry_blaziken.bin" + .incbin "sound/direct_sound_samples/cries/blaziken.bin" .align 2 Cry_Treecko:: - .incbin "sound/direct_sound_samples/cry_treecko.bin" + .incbin "sound/direct_sound_samples/cries/treecko.bin" .align 2 Cry_Grovyle:: - .incbin "sound/direct_sound_samples/cry_grovyle.bin" + .incbin "sound/direct_sound_samples/cries/grovyle.bin" .align 2 Cry_Sceptile:: - .incbin "sound/direct_sound_samples/cry_sceptile.bin" + .incbin "sound/direct_sound_samples/cries/sceptile.bin" .align 2 Cry_Mudkip:: - .incbin "sound/direct_sound_samples/cry_mudkip.bin" + .incbin "sound/direct_sound_samples/cries/mudkip.bin" .align 2 Cry_Marshtomp:: - .incbin "sound/direct_sound_samples/cry_marshtomp.bin" + .incbin "sound/direct_sound_samples/cries/marshtomp.bin" .align 2 Cry_Swampert:: - .incbin "sound/direct_sound_samples/cry_swampert.bin" + .incbin "sound/direct_sound_samples/cries/swampert.bin" .align 2 Cry_Pelipper:: - .incbin "sound/direct_sound_samples/cry_pelipper.bin" + .incbin "sound/direct_sound_samples/cries/pelipper.bin" .align 2 Cry_Wingull:: - .incbin "sound/direct_sound_samples/cry_wingull.bin" + .incbin "sound/direct_sound_samples/cries/wingull.bin" .align 2 Cry_Banette:: - .incbin "sound/direct_sound_samples/cry_banette.bin" + .incbin "sound/direct_sound_samples/cries/banette.bin" .align 2 Cry_Shuppet:: - .incbin "sound/direct_sound_samples/cry_shuppet.bin" + .incbin "sound/direct_sound_samples/cries/shuppet.bin" .align 2 Cry_Lotad:: - .incbin "sound/direct_sound_samples/cry_lotad.bin" + .incbin "sound/direct_sound_samples/cries/lotad.bin" .align 2 Cry_Lombre:: - .incbin "sound/direct_sound_samples/cry_lombre.bin" + .incbin "sound/direct_sound_samples/cries/lombre.bin" .align 2 Cry_Ludicolo:: - .incbin "sound/direct_sound_samples/cry_ludicolo.bin" + .incbin "sound/direct_sound_samples/cries/ludicolo.bin" .align 2 Cry_Seedot:: - .incbin "sound/direct_sound_samples/cry_seedot.bin" + .incbin "sound/direct_sound_samples/cries/seedot.bin" .align 2 Cry_Nuzleaf:: - .incbin "sound/direct_sound_samples/cry_nuzleaf.bin" + .incbin "sound/direct_sound_samples/cries/nuzleaf.bin" .align 2 Cry_Shiftry:: - .incbin "sound/direct_sound_samples/cry_shiftry.bin" + .incbin "sound/direct_sound_samples/cries/shiftry.bin" .align 2 Cry_Carvanha:: - .incbin "sound/direct_sound_samples/cry_carvanha.bin" + .incbin "sound/direct_sound_samples/cries/carvanha.bin" .align 2 Cry_Wurmple:: - .incbin "sound/direct_sound_samples/cry_wurmple.bin" + .incbin "sound/direct_sound_samples/cries/wurmple.bin" .align 2 Cry_Silcoon:: - .incbin "sound/direct_sound_samples/cry_silcoon.bin" + .incbin "sound/direct_sound_samples/cries/silcoon.bin" .align 2 Cry_Beautifly:: - .incbin "sound/direct_sound_samples/cry_beautifly.bin" + .incbin "sound/direct_sound_samples/cries/beautifly.bin" .align 2 Cry_Cascoon:: - .incbin "sound/direct_sound_samples/cry_cascoon.bin" + .incbin "sound/direct_sound_samples/cries/cascoon.bin" .align 2 Cry_Dustox:: - .incbin "sound/direct_sound_samples/cry_dustox.bin" + .incbin "sound/direct_sound_samples/cries/dustox.bin" .align 2 Cry_Ralts:: - .incbin "sound/direct_sound_samples/cry_ralts.bin" + .incbin "sound/direct_sound_samples/cries/ralts.bin" .align 2 Cry_Kirlia:: - .incbin "sound/direct_sound_samples/cry_kirlia.bin" + .incbin "sound/direct_sound_samples/cries/kirlia.bin" .align 2 Cry_Gardevoir:: - .incbin "sound/direct_sound_samples/cry_gardevoir.bin" + .incbin "sound/direct_sound_samples/cries/gardevoir.bin" .align 2 Cry_Slakoth:: - .incbin "sound/direct_sound_samples/cry_slakoth.bin" + .incbin "sound/direct_sound_samples/cries/slakoth.bin" .align 2 Cry_Vigoroth:: - .incbin "sound/direct_sound_samples/cry_vigoroth.bin" + .incbin "sound/direct_sound_samples/cries/vigoroth.bin" .align 2 Cry_Slaking:: - .incbin "sound/direct_sound_samples/cry_slaking.bin" + .incbin "sound/direct_sound_samples/cries/slaking.bin" .align 2 Cry_Nincada:: - .incbin "sound/direct_sound_samples/cry_nincada.bin" + .incbin "sound/direct_sound_samples/cries/nincada.bin" .align 2 Cry_Ninjask:: - .incbin "sound/direct_sound_samples/cry_ninjask.bin" + .incbin "sound/direct_sound_samples/cries/ninjask.bin" .align 2 Cry_Shedinja:: - .incbin "sound/direct_sound_samples/cry_shedinja.bin" + .incbin "sound/direct_sound_samples/cries/shedinja.bin" .align 2 Cry_Makuhita:: - .incbin "sound/direct_sound_samples/cry_makuhita.bin" + .incbin "sound/direct_sound_samples/cries/makuhita.bin" .align 2 Cry_Hariyama:: - .incbin "sound/direct_sound_samples/cry_hariyama.bin" + .incbin "sound/direct_sound_samples/cries/hariyama.bin" .align 2 Cry_Nosepass:: - .incbin "sound/direct_sound_samples/cry_nosepass.bin" + .incbin "sound/direct_sound_samples/cries/nosepass.bin" .align 2 Cry_Glalie:: - .incbin "sound/direct_sound_samples/cry_glalie.bin" + .incbin "sound/direct_sound_samples/cries/glalie.bin" .align 2 Cry_Plusle:: - .incbin "sound/direct_sound_samples/cry_plusle.bin" + .incbin "sound/direct_sound_samples/cries/plusle.bin" .align 2 Cry_Minun:: - .incbin "sound/direct_sound_samples/cry_minun.bin" + .incbin "sound/direct_sound_samples/cries/minun.bin" .align 2 Cry_Surskit:: - .incbin "sound/direct_sound_samples/cry_surskit.bin" + .incbin "sound/direct_sound_samples/cries/surskit.bin" .align 2 Cry_Masquerain:: - .incbin "sound/direct_sound_samples/cry_masquerain.bin" + .incbin "sound/direct_sound_samples/cries/masquerain.bin" .align 2 Cry_Skitty:: - .incbin "sound/direct_sound_samples/cry_skitty.bin" + .incbin "sound/direct_sound_samples/cries/skitty.bin" .align 2 Cry_Delcatty:: - .incbin "sound/direct_sound_samples/cry_delcatty.bin" + .incbin "sound/direct_sound_samples/cries/delcatty.bin" .align 2 Cry_Gulpin:: - .incbin "sound/direct_sound_samples/cry_gulpin.bin" + .incbin "sound/direct_sound_samples/cries/gulpin.bin" .align 2 Cry_Swalot:: - .incbin "sound/direct_sound_samples/cry_swalot.bin" + .incbin "sound/direct_sound_samples/cries/swalot.bin" .align 2 Cry_Numel:: - .incbin "sound/direct_sound_samples/cry_numel.bin" + .incbin "sound/direct_sound_samples/cries/numel.bin" .align 2 Cry_Camerupt:: - .incbin "sound/direct_sound_samples/cry_camerupt.bin" + .incbin "sound/direct_sound_samples/cries/camerupt.bin" .align 2 Cry_Barboach:: - .incbin "sound/direct_sound_samples/cry_barboach.bin" + .incbin "sound/direct_sound_samples/cries/barboach.bin" .align 2 Cry_Whiscash:: - .incbin "sound/direct_sound_samples/cry_whiscash.bin" + .incbin "sound/direct_sound_samples/cries/whiscash.bin" .align 2 Cry_Corphish:: - .incbin "sound/direct_sound_samples/cry_corphish.bin" + .incbin "sound/direct_sound_samples/cries/corphish.bin" .align 2 Cry_Crawdaunt:: - .incbin "sound/direct_sound_samples/cry_crawdaunt.bin" + .incbin "sound/direct_sound_samples/cries/crawdaunt.bin" .align 2 Cry_Spoink:: - .incbin "sound/direct_sound_samples/cry_spoink.bin" + .incbin "sound/direct_sound_samples/cries/spoink.bin" .align 2 Cry_Grumpig:: - .incbin "sound/direct_sound_samples/cry_grumpig.bin" + .incbin "sound/direct_sound_samples/cries/grumpig.bin" .align 2 Cry_Trapinch:: - .incbin "sound/direct_sound_samples/cry_trapinch.bin" + .incbin "sound/direct_sound_samples/cries/trapinch.bin" .align 2 Cry_Vibrava:: - .incbin "sound/direct_sound_samples/cry_vibrava.bin" + .incbin "sound/direct_sound_samples/cries/vibrava.bin" .align 2 Cry_Flygon:: - .incbin "sound/direct_sound_samples/cry_flygon.bin" + .incbin "sound/direct_sound_samples/cries/flygon.bin" .align 2 Cry_Cacnea:: - .incbin "sound/direct_sound_samples/cry_cacnea.bin" + .incbin "sound/direct_sound_samples/cries/cacnea.bin" .align 2 Cry_Cacturne:: - .incbin "sound/direct_sound_samples/cry_cacturne.bin" + .incbin "sound/direct_sound_samples/cries/cacturne.bin" .align 2 Cry_Baltoy:: - .incbin "sound/direct_sound_samples/cry_baltoy.bin" + .incbin "sound/direct_sound_samples/cries/baltoy.bin" .align 2 Cry_Claydol:: - .incbin "sound/direct_sound_samples/cry_claydol.bin" + .incbin "sound/direct_sound_samples/cries/claydol.bin" .align 2 Cry_Lunatone:: - .incbin "sound/direct_sound_samples/cry_lunatone.bin" + .incbin "sound/direct_sound_samples/cries/lunatone.bin" .align 2 Cry_Solrock:: - .incbin "sound/direct_sound_samples/cry_solrock.bin" + .incbin "sound/direct_sound_samples/cries/solrock.bin" .align 2 Cry_Feebas:: - .incbin "sound/direct_sound_samples/cry_feebas.bin" + .incbin "sound/direct_sound_samples/cries/feebas.bin" .align 2 Cry_Milotic:: - .incbin "sound/direct_sound_samples/cry_milotic.bin" + .incbin "sound/direct_sound_samples/cries/milotic.bin" .align 2 Cry_Absol:: - .incbin "sound/direct_sound_samples/cry_absol.bin" + .incbin "sound/direct_sound_samples/cries/absol.bin" .align 2 Cry_Meditite:: - .incbin "sound/direct_sound_samples/cry_meditite.bin" + .incbin "sound/direct_sound_samples/cries/meditite.bin" .align 2 Cry_Medicham:: - .incbin "sound/direct_sound_samples/cry_medicham.bin" + .incbin "sound/direct_sound_samples/cries/medicham.bin" .align 2 Cry_Spheal:: - .incbin "sound/direct_sound_samples/cry_spheal.bin" + .incbin "sound/direct_sound_samples/cries/spheal.bin" .align 2 Cry_Sealeo:: - .incbin "sound/direct_sound_samples/cry_sealeo.bin" + .incbin "sound/direct_sound_samples/cries/sealeo.bin" .align 2 Cry_Walrein:: - .incbin "sound/direct_sound_samples/cry_walrein.bin" + .incbin "sound/direct_sound_samples/cries/walrein.bin" .align 2 Cry_Clamperl:: - .incbin "sound/direct_sound_samples/cry_clamperl.bin" + .incbin "sound/direct_sound_samples/cries/clamperl.bin" .align 2 Cry_Huntail:: - .incbin "sound/direct_sound_samples/cry_huntail.bin" + .incbin "sound/direct_sound_samples/cries/huntail.bin" .align 2 Cry_Gorebyss:: - .incbin "sound/direct_sound_samples/cry_gorebyss.bin" + .incbin "sound/direct_sound_samples/cries/gorebyss.bin" .align 2 Cry_Lileep:: - .incbin "sound/direct_sound_samples/cry_lileep.bin" + .incbin "sound/direct_sound_samples/cries/lileep.bin" .align 2 Cry_Cradily:: - .incbin "sound/direct_sound_samples/cry_cradily.bin" + .incbin "sound/direct_sound_samples/cries/cradily.bin" .align 2 Cry_Anorith:: - .incbin "sound/direct_sound_samples/cry_anorith.bin" + .incbin "sound/direct_sound_samples/cries/anorith.bin" .align 2 Cry_Armaldo:: - .incbin "sound/direct_sound_samples/cry_armaldo.bin" + .incbin "sound/direct_sound_samples/cries/armaldo.bin" .align 2 Cry_Beldum:: - .incbin "sound/direct_sound_samples/cry_beldum.bin" + .incbin "sound/direct_sound_samples/cries/beldum.bin" .align 2 Cry_Metang:: - .incbin "sound/direct_sound_samples/cry_metang.bin" + .incbin "sound/direct_sound_samples/cries/metang.bin" .align 2 Cry_Metagross:: - .incbin "sound/direct_sound_samples/cry_metagross.bin" + .incbin "sound/direct_sound_samples/cries/metagross.bin" .align 2 Cry_Bagon:: - .incbin "sound/direct_sound_samples/cry_bagon.bin" + .incbin "sound/direct_sound_samples/cries/bagon.bin" .align 2 Cry_Shelgon:: - .incbin "sound/direct_sound_samples/cry_shelgon.bin" + .incbin "sound/direct_sound_samples/cries/shelgon.bin" .align 2 Cry_Regirock:: - .incbin "sound/direct_sound_samples/cry_regirock.bin" + .incbin "sound/direct_sound_samples/cries/regirock.bin" .align 2 Cry_Regice:: - .incbin "sound/direct_sound_samples/cry_regice.bin" + .incbin "sound/direct_sound_samples/cries/regice.bin" .align 2 Cry_Registeel:: - .incbin "sound/direct_sound_samples/cry_registeel.bin" + .incbin "sound/direct_sound_samples/cries/registeel.bin" .align 2 Cry_Castform:: - .incbin "sound/direct_sound_samples/cry_castform.bin" + .incbin "sound/direct_sound_samples/cries/castform.bin" .align 2 Cry_Volbeat:: - .incbin "sound/direct_sound_samples/cry_volbeat.bin" + .incbin "sound/direct_sound_samples/cries/volbeat.bin" .align 2 Cry_Illumise:: - .incbin "sound/direct_sound_samples/cry_illumise.bin" + .incbin "sound/direct_sound_samples/cries/illumise.bin" .align 2 Cry_Poochyena:: - .incbin "sound/direct_sound_samples/cry_poochyena.bin" + .incbin "sound/direct_sound_samples/cries/poochyena.bin" .align 2 Cry_Mightyena:: - .incbin "sound/direct_sound_samples/cry_mightyena.bin" + .incbin "sound/direct_sound_samples/cries/mightyena.bin" .align 2 Cry_Dusclops:: - .incbin "sound/direct_sound_samples/cry_dusclops.bin" + .incbin "sound/direct_sound_samples/cries/dusclops.bin" .align 2 Cry_Sableye:: - .incbin "sound/direct_sound_samples/cry_sableye.bin" + .incbin "sound/direct_sound_samples/cries/sableye.bin" .align 2 Cry_Mawile:: - .incbin "sound/direct_sound_samples/cry_mawile.bin" + .incbin "sound/direct_sound_samples/cries/mawile.bin" .align 2 Cry_Aron:: - .incbin "sound/direct_sound_samples/cry_aron.bin" + .incbin "sound/direct_sound_samples/cries/aron.bin" .align 2 Cry_Lairon:: - .incbin "sound/direct_sound_samples/cry_lairon.bin" + .incbin "sound/direct_sound_samples/cries/lairon.bin" .align 2 Cry_Aggron:: - .incbin "sound/direct_sound_samples/cry_aggron.bin" + .incbin "sound/direct_sound_samples/cries/aggron.bin" .align 2 Cry_Relicanth:: - .incbin "sound/direct_sound_samples/cry_relicanth.bin" + .incbin "sound/direct_sound_samples/cries/relicanth.bin" .align 2 Cry_Luvdisc:: - .incbin "sound/direct_sound_samples/cry_luvdisc.bin" + .incbin "sound/direct_sound_samples/cries/luvdisc.bin" .align 2 Cry_Groudon:: - .incbin "sound/direct_sound_samples/cry_groudon.bin" + .incbin "sound/direct_sound_samples/cries/groudon.bin" .align 2 Cry_Kyogre:: - .incbin "sound/direct_sound_samples/cry_kyogre.bin" + .incbin "sound/direct_sound_samples/cries/kyogre.bin" .align 2 Cry_Rayquaza:: - .incbin "sound/direct_sound_samples/cry_rayquaza.bin" + .incbin "sound/direct_sound_samples/cries/rayquaza.bin" .align 2 Cry_Salamence:: - .incbin "sound/direct_sound_samples/cry_salamence.bin" + .incbin "sound/direct_sound_samples/cries/salamence.bin" .align 2 Cry_Breloom:: - .incbin "sound/direct_sound_samples/cry_breloom.bin" + .incbin "sound/direct_sound_samples/cries/breloom.bin" .align 2 Cry_Shroomish:: - .incbin "sound/direct_sound_samples/cry_shroomish.bin" + .incbin "sound/direct_sound_samples/cries/shroomish.bin" .align 2 Cry_Linoone:: - .incbin "sound/direct_sound_samples/cry_linoone.bin" + .incbin "sound/direct_sound_samples/cries/linoone.bin" .align 2 Cry_Tropius:: - .incbin "sound/direct_sound_samples/cry_tropius.bin" + .incbin "sound/direct_sound_samples/cries/tropius.bin" .align 2 Cry_Wailmer:: - .incbin "sound/direct_sound_samples/cry_wailmer.bin" + .incbin "sound/direct_sound_samples/cries/wailmer.bin" .align 2 Cry_Zigzagoon:: - .incbin "sound/direct_sound_samples/cry_zigzagoon.bin" + .incbin "sound/direct_sound_samples/cries/zigzagoon.bin" .align 2 Cry_Exploud:: - .incbin "sound/direct_sound_samples/cry_exploud.bin" + .incbin "sound/direct_sound_samples/cries/exploud.bin" .align 2 Cry_Loudred:: - .incbin "sound/direct_sound_samples/cry_loudred.bin" + .incbin "sound/direct_sound_samples/cries/loudred.bin" .align 2 Cry_Wailord:: - .incbin "sound/direct_sound_samples/cry_wailord.bin" + .incbin "sound/direct_sound_samples/cries/wailord.bin" .align 2 Cry_Whismur:: - .incbin "sound/direct_sound_samples/cry_whismur.bin" + .incbin "sound/direct_sound_samples/cries/whismur.bin" .align 2 Cry_Snorunt:: - .incbin "sound/direct_sound_samples/cry_snorunt.bin" + .incbin "sound/direct_sound_samples/cries/snorunt.bin" .align 2 Cry_Latios:: - .incbin "sound/direct_sound_samples/cry_latios.bin" + .incbin "sound/direct_sound_samples/cries/latios.bin" .align 2 Cry_Jirachi:: - .incbin "sound/direct_sound_samples/cry_jirachi.bin" + .incbin "sound/direct_sound_samples/cries/jirachi.bin" .align 2 Cry_Deoxys:: - .incbin "sound/direct_sound_samples/cry_deoxys.bin" + .incbin "sound/direct_sound_samples/cries/deoxys.bin" .align 2 Cry_Chimecho:: - .incbin "sound/direct_sound_samples/cry_chimecho.bin" + .incbin "sound/direct_sound_samples/cries/chimecho.bin" .align 2 diff --git a/sound/direct_sound_samples/cry_abra.aif b/sound/direct_sound_samples/cries/abra.aif similarity index 100% rename from sound/direct_sound_samples/cry_abra.aif rename to sound/direct_sound_samples/cries/abra.aif diff --git a/sound/direct_sound_samples/cry_absol.aif b/sound/direct_sound_samples/cries/absol.aif similarity index 100% rename from sound/direct_sound_samples/cry_absol.aif rename to sound/direct_sound_samples/cries/absol.aif diff --git a/sound/direct_sound_samples/cry_aerodactyl.aif b/sound/direct_sound_samples/cries/aerodactyl.aif similarity index 100% rename from sound/direct_sound_samples/cry_aerodactyl.aif rename to sound/direct_sound_samples/cries/aerodactyl.aif diff --git a/sound/direct_sound_samples/cry_aggron.aif b/sound/direct_sound_samples/cries/aggron.aif similarity index 100% rename from sound/direct_sound_samples/cry_aggron.aif rename to sound/direct_sound_samples/cries/aggron.aif diff --git a/sound/direct_sound_samples/cry_aipom.aif b/sound/direct_sound_samples/cries/aipom.aif similarity index 100% rename from sound/direct_sound_samples/cry_aipom.aif rename to sound/direct_sound_samples/cries/aipom.aif diff --git a/sound/direct_sound_samples/cry_alakazam.aif b/sound/direct_sound_samples/cries/alakazam.aif similarity index 100% rename from sound/direct_sound_samples/cry_alakazam.aif rename to sound/direct_sound_samples/cries/alakazam.aif diff --git a/sound/direct_sound_samples/cry_altaria.aif b/sound/direct_sound_samples/cries/altaria.aif similarity index 100% rename from sound/direct_sound_samples/cry_altaria.aif rename to sound/direct_sound_samples/cries/altaria.aif diff --git a/sound/direct_sound_samples/cry_ampharos.aif b/sound/direct_sound_samples/cries/ampharos.aif similarity index 100% rename from sound/direct_sound_samples/cry_ampharos.aif rename to sound/direct_sound_samples/cries/ampharos.aif diff --git a/sound/direct_sound_samples/cry_anorith.aif b/sound/direct_sound_samples/cries/anorith.aif similarity index 100% rename from sound/direct_sound_samples/cry_anorith.aif rename to sound/direct_sound_samples/cries/anorith.aif diff --git a/sound/direct_sound_samples/cry_arbok.aif b/sound/direct_sound_samples/cries/arbok.aif similarity index 100% rename from sound/direct_sound_samples/cry_arbok.aif rename to sound/direct_sound_samples/cries/arbok.aif diff --git a/sound/direct_sound_samples/cry_arcanine.aif b/sound/direct_sound_samples/cries/arcanine.aif similarity index 100% rename from sound/direct_sound_samples/cry_arcanine.aif rename to sound/direct_sound_samples/cries/arcanine.aif diff --git a/sound/direct_sound_samples/cry_ariados.aif b/sound/direct_sound_samples/cries/ariados.aif similarity index 100% rename from sound/direct_sound_samples/cry_ariados.aif rename to sound/direct_sound_samples/cries/ariados.aif diff --git a/sound/direct_sound_samples/cry_armaldo.aif b/sound/direct_sound_samples/cries/armaldo.aif similarity index 100% rename from sound/direct_sound_samples/cry_armaldo.aif rename to sound/direct_sound_samples/cries/armaldo.aif diff --git a/sound/direct_sound_samples/cry_aron.aif b/sound/direct_sound_samples/cries/aron.aif similarity index 100% rename from sound/direct_sound_samples/cry_aron.aif rename to sound/direct_sound_samples/cries/aron.aif diff --git a/sound/direct_sound_samples/cry_articuno.aif b/sound/direct_sound_samples/cries/articuno.aif similarity index 100% rename from sound/direct_sound_samples/cry_articuno.aif rename to sound/direct_sound_samples/cries/articuno.aif diff --git a/sound/direct_sound_samples/cry_azumarill.aif b/sound/direct_sound_samples/cries/azumarill.aif similarity index 100% rename from sound/direct_sound_samples/cry_azumarill.aif rename to sound/direct_sound_samples/cries/azumarill.aif diff --git a/sound/direct_sound_samples/cry_azurill.aif b/sound/direct_sound_samples/cries/azurill.aif similarity index 100% rename from sound/direct_sound_samples/cry_azurill.aif rename to sound/direct_sound_samples/cries/azurill.aif diff --git a/sound/direct_sound_samples/cry_bagon.aif b/sound/direct_sound_samples/cries/bagon.aif similarity index 100% rename from sound/direct_sound_samples/cry_bagon.aif rename to sound/direct_sound_samples/cries/bagon.aif diff --git a/sound/direct_sound_samples/cry_baltoy.aif b/sound/direct_sound_samples/cries/baltoy.aif similarity index 100% rename from sound/direct_sound_samples/cry_baltoy.aif rename to sound/direct_sound_samples/cries/baltoy.aif diff --git a/sound/direct_sound_samples/cry_banette.aif b/sound/direct_sound_samples/cries/banette.aif similarity index 100% rename from sound/direct_sound_samples/cry_banette.aif rename to sound/direct_sound_samples/cries/banette.aif diff --git a/sound/direct_sound_samples/cry_barboach.aif b/sound/direct_sound_samples/cries/barboach.aif similarity index 100% rename from sound/direct_sound_samples/cry_barboach.aif rename to sound/direct_sound_samples/cries/barboach.aif diff --git a/sound/direct_sound_samples/cry_bayleef.aif b/sound/direct_sound_samples/cries/bayleef.aif similarity index 100% rename from sound/direct_sound_samples/cry_bayleef.aif rename to sound/direct_sound_samples/cries/bayleef.aif diff --git a/sound/direct_sound_samples/cry_beautifly.aif b/sound/direct_sound_samples/cries/beautifly.aif similarity index 100% rename from sound/direct_sound_samples/cry_beautifly.aif rename to sound/direct_sound_samples/cries/beautifly.aif diff --git a/sound/direct_sound_samples/cry_beedrill.aif b/sound/direct_sound_samples/cries/beedrill.aif similarity index 100% rename from sound/direct_sound_samples/cry_beedrill.aif rename to sound/direct_sound_samples/cries/beedrill.aif diff --git a/sound/direct_sound_samples/cry_beldum.aif b/sound/direct_sound_samples/cries/beldum.aif similarity index 100% rename from sound/direct_sound_samples/cry_beldum.aif rename to sound/direct_sound_samples/cries/beldum.aif diff --git a/sound/direct_sound_samples/cry_bellossom.aif b/sound/direct_sound_samples/cries/bellossom.aif similarity index 100% rename from sound/direct_sound_samples/cry_bellossom.aif rename to sound/direct_sound_samples/cries/bellossom.aif diff --git a/sound/direct_sound_samples/cry_bellsprout.aif b/sound/direct_sound_samples/cries/bellsprout.aif similarity index 100% rename from sound/direct_sound_samples/cry_bellsprout.aif rename to sound/direct_sound_samples/cries/bellsprout.aif diff --git a/sound/direct_sound_samples/cry_blastoise.aif b/sound/direct_sound_samples/cries/blastoise.aif similarity index 100% rename from sound/direct_sound_samples/cry_blastoise.aif rename to sound/direct_sound_samples/cries/blastoise.aif diff --git a/sound/direct_sound_samples/cry_blaziken.aif b/sound/direct_sound_samples/cries/blaziken.aif similarity index 100% rename from sound/direct_sound_samples/cry_blaziken.aif rename to sound/direct_sound_samples/cries/blaziken.aif diff --git a/sound/direct_sound_samples/cry_blissey.aif b/sound/direct_sound_samples/cries/blissey.aif similarity index 100% rename from sound/direct_sound_samples/cry_blissey.aif rename to sound/direct_sound_samples/cries/blissey.aif diff --git a/sound/direct_sound_samples/cry_breloom.aif b/sound/direct_sound_samples/cries/breloom.aif similarity index 100% rename from sound/direct_sound_samples/cry_breloom.aif rename to sound/direct_sound_samples/cries/breloom.aif diff --git a/sound/direct_sound_samples/cry_bulbasaur.aif b/sound/direct_sound_samples/cries/bulbasaur.aif similarity index 100% rename from sound/direct_sound_samples/cry_bulbasaur.aif rename to sound/direct_sound_samples/cries/bulbasaur.aif diff --git a/sound/direct_sound_samples/cry_butterfree.aif b/sound/direct_sound_samples/cries/butterfree.aif similarity index 100% rename from sound/direct_sound_samples/cry_butterfree.aif rename to sound/direct_sound_samples/cries/butterfree.aif diff --git a/sound/direct_sound_samples/cry_cacnea.aif b/sound/direct_sound_samples/cries/cacnea.aif similarity index 100% rename from sound/direct_sound_samples/cry_cacnea.aif rename to sound/direct_sound_samples/cries/cacnea.aif diff --git a/sound/direct_sound_samples/cry_cacturne.aif b/sound/direct_sound_samples/cries/cacturne.aif similarity index 100% rename from sound/direct_sound_samples/cry_cacturne.aif rename to sound/direct_sound_samples/cries/cacturne.aif diff --git a/sound/direct_sound_samples/cry_camerupt.aif b/sound/direct_sound_samples/cries/camerupt.aif similarity index 100% rename from sound/direct_sound_samples/cry_camerupt.aif rename to sound/direct_sound_samples/cries/camerupt.aif diff --git a/sound/direct_sound_samples/cry_carvanha.aif b/sound/direct_sound_samples/cries/carvanha.aif similarity index 100% rename from sound/direct_sound_samples/cry_carvanha.aif rename to sound/direct_sound_samples/cries/carvanha.aif diff --git a/sound/direct_sound_samples/cry_cascoon.aif b/sound/direct_sound_samples/cries/cascoon.aif similarity index 100% rename from sound/direct_sound_samples/cry_cascoon.aif rename to sound/direct_sound_samples/cries/cascoon.aif diff --git a/sound/direct_sound_samples/cry_castform.aif b/sound/direct_sound_samples/cries/castform.aif similarity index 100% rename from sound/direct_sound_samples/cry_castform.aif rename to sound/direct_sound_samples/cries/castform.aif diff --git a/sound/direct_sound_samples/cry_caterpie.aif b/sound/direct_sound_samples/cries/caterpie.aif similarity index 100% rename from sound/direct_sound_samples/cry_caterpie.aif rename to sound/direct_sound_samples/cries/caterpie.aif diff --git a/sound/direct_sound_samples/cry_celebi.aif b/sound/direct_sound_samples/cries/celebi.aif similarity index 100% rename from sound/direct_sound_samples/cry_celebi.aif rename to sound/direct_sound_samples/cries/celebi.aif diff --git a/sound/direct_sound_samples/cry_chansey.aif b/sound/direct_sound_samples/cries/chansey.aif similarity index 100% rename from sound/direct_sound_samples/cry_chansey.aif rename to sound/direct_sound_samples/cries/chansey.aif diff --git a/sound/direct_sound_samples/cry_charizard.aif b/sound/direct_sound_samples/cries/charizard.aif similarity index 100% rename from sound/direct_sound_samples/cry_charizard.aif rename to sound/direct_sound_samples/cries/charizard.aif diff --git a/sound/direct_sound_samples/cry_charmander.aif b/sound/direct_sound_samples/cries/charmander.aif similarity index 100% rename from sound/direct_sound_samples/cry_charmander.aif rename to sound/direct_sound_samples/cries/charmander.aif diff --git a/sound/direct_sound_samples/cry_charmeleon.aif b/sound/direct_sound_samples/cries/charmeleon.aif similarity index 100% rename from sound/direct_sound_samples/cry_charmeleon.aif rename to sound/direct_sound_samples/cries/charmeleon.aif diff --git a/sound/direct_sound_samples/cry_chikorita.aif b/sound/direct_sound_samples/cries/chikorita.aif similarity index 100% rename from sound/direct_sound_samples/cry_chikorita.aif rename to sound/direct_sound_samples/cries/chikorita.aif diff --git a/sound/direct_sound_samples/cry_chimecho.aif b/sound/direct_sound_samples/cries/chimecho.aif similarity index 100% rename from sound/direct_sound_samples/cry_chimecho.aif rename to sound/direct_sound_samples/cries/chimecho.aif diff --git a/sound/direct_sound_samples/cry_chinchou.aif b/sound/direct_sound_samples/cries/chinchou.aif similarity index 100% rename from sound/direct_sound_samples/cry_chinchou.aif rename to sound/direct_sound_samples/cries/chinchou.aif diff --git a/sound/direct_sound_samples/cry_clamperl.aif b/sound/direct_sound_samples/cries/clamperl.aif similarity index 100% rename from sound/direct_sound_samples/cry_clamperl.aif rename to sound/direct_sound_samples/cries/clamperl.aif diff --git a/sound/direct_sound_samples/cry_claydol.aif b/sound/direct_sound_samples/cries/claydol.aif similarity index 100% rename from sound/direct_sound_samples/cry_claydol.aif rename to sound/direct_sound_samples/cries/claydol.aif diff --git a/sound/direct_sound_samples/cry_clefable.aif b/sound/direct_sound_samples/cries/clefable.aif similarity index 100% rename from sound/direct_sound_samples/cry_clefable.aif rename to sound/direct_sound_samples/cries/clefable.aif diff --git a/sound/direct_sound_samples/cry_clefairy.aif b/sound/direct_sound_samples/cries/clefairy.aif similarity index 100% rename from sound/direct_sound_samples/cry_clefairy.aif rename to sound/direct_sound_samples/cries/clefairy.aif diff --git a/sound/direct_sound_samples/cry_cleffa.aif b/sound/direct_sound_samples/cries/cleffa.aif similarity index 100% rename from sound/direct_sound_samples/cry_cleffa.aif rename to sound/direct_sound_samples/cries/cleffa.aif diff --git a/sound/direct_sound_samples/cry_cloyster.aif b/sound/direct_sound_samples/cries/cloyster.aif similarity index 100% rename from sound/direct_sound_samples/cry_cloyster.aif rename to sound/direct_sound_samples/cries/cloyster.aif diff --git a/sound/direct_sound_samples/cry_combusken.aif b/sound/direct_sound_samples/cries/combusken.aif similarity index 100% rename from sound/direct_sound_samples/cry_combusken.aif rename to sound/direct_sound_samples/cries/combusken.aif diff --git a/sound/direct_sound_samples/cry_corphish.aif b/sound/direct_sound_samples/cries/corphish.aif similarity index 100% rename from sound/direct_sound_samples/cry_corphish.aif rename to sound/direct_sound_samples/cries/corphish.aif diff --git a/sound/direct_sound_samples/cry_corsola.aif b/sound/direct_sound_samples/cries/corsola.aif similarity index 100% rename from sound/direct_sound_samples/cry_corsola.aif rename to sound/direct_sound_samples/cries/corsola.aif diff --git a/sound/direct_sound_samples/cry_cradily.aif b/sound/direct_sound_samples/cries/cradily.aif similarity index 100% rename from sound/direct_sound_samples/cry_cradily.aif rename to sound/direct_sound_samples/cries/cradily.aif diff --git a/sound/direct_sound_samples/cry_crawdaunt.aif b/sound/direct_sound_samples/cries/crawdaunt.aif similarity index 100% rename from sound/direct_sound_samples/cry_crawdaunt.aif rename to sound/direct_sound_samples/cries/crawdaunt.aif diff --git a/sound/direct_sound_samples/cry_crobat.aif b/sound/direct_sound_samples/cries/crobat.aif similarity index 100% rename from sound/direct_sound_samples/cry_crobat.aif rename to sound/direct_sound_samples/cries/crobat.aif diff --git a/sound/direct_sound_samples/cry_croconaw.aif b/sound/direct_sound_samples/cries/croconaw.aif similarity index 100% rename from sound/direct_sound_samples/cry_croconaw.aif rename to sound/direct_sound_samples/cries/croconaw.aif diff --git a/sound/direct_sound_samples/cry_cubone.aif b/sound/direct_sound_samples/cries/cubone.aif similarity index 100% rename from sound/direct_sound_samples/cry_cubone.aif rename to sound/direct_sound_samples/cries/cubone.aif diff --git a/sound/direct_sound_samples/cry_cyndaquil.aif b/sound/direct_sound_samples/cries/cyndaquil.aif similarity index 100% rename from sound/direct_sound_samples/cry_cyndaquil.aif rename to sound/direct_sound_samples/cries/cyndaquil.aif diff --git a/sound/direct_sound_samples/cry_delcatty.aif b/sound/direct_sound_samples/cries/delcatty.aif similarity index 100% rename from sound/direct_sound_samples/cry_delcatty.aif rename to sound/direct_sound_samples/cries/delcatty.aif diff --git a/sound/direct_sound_samples/cry_delibird.aif b/sound/direct_sound_samples/cries/delibird.aif similarity index 100% rename from sound/direct_sound_samples/cry_delibird.aif rename to sound/direct_sound_samples/cries/delibird.aif diff --git a/sound/direct_sound_samples/cry_deoxys.aif b/sound/direct_sound_samples/cries/deoxys.aif similarity index 100% rename from sound/direct_sound_samples/cry_deoxys.aif rename to sound/direct_sound_samples/cries/deoxys.aif diff --git a/sound/direct_sound_samples/cry_dewgong.aif b/sound/direct_sound_samples/cries/dewgong.aif similarity index 100% rename from sound/direct_sound_samples/cry_dewgong.aif rename to sound/direct_sound_samples/cries/dewgong.aif diff --git a/sound/direct_sound_samples/cry_diglett.aif b/sound/direct_sound_samples/cries/diglett.aif similarity index 100% rename from sound/direct_sound_samples/cry_diglett.aif rename to sound/direct_sound_samples/cries/diglett.aif diff --git a/sound/direct_sound_samples/cry_ditto.aif b/sound/direct_sound_samples/cries/ditto.aif similarity index 100% rename from sound/direct_sound_samples/cry_ditto.aif rename to sound/direct_sound_samples/cries/ditto.aif diff --git a/sound/direct_sound_samples/cry_dodrio.aif b/sound/direct_sound_samples/cries/dodrio.aif similarity index 100% rename from sound/direct_sound_samples/cry_dodrio.aif rename to sound/direct_sound_samples/cries/dodrio.aif diff --git a/sound/direct_sound_samples/cry_doduo.aif b/sound/direct_sound_samples/cries/doduo.aif similarity index 100% rename from sound/direct_sound_samples/cry_doduo.aif rename to sound/direct_sound_samples/cries/doduo.aif diff --git a/sound/direct_sound_samples/cry_donphan.aif b/sound/direct_sound_samples/cries/donphan.aif similarity index 100% rename from sound/direct_sound_samples/cry_donphan.aif rename to sound/direct_sound_samples/cries/donphan.aif diff --git a/sound/direct_sound_samples/cry_dragonair.aif b/sound/direct_sound_samples/cries/dragonair.aif similarity index 100% rename from sound/direct_sound_samples/cry_dragonair.aif rename to sound/direct_sound_samples/cries/dragonair.aif diff --git a/sound/direct_sound_samples/cry_dragonite.aif b/sound/direct_sound_samples/cries/dragonite.aif similarity index 100% rename from sound/direct_sound_samples/cry_dragonite.aif rename to sound/direct_sound_samples/cries/dragonite.aif diff --git a/sound/direct_sound_samples/cry_dratini.aif b/sound/direct_sound_samples/cries/dratini.aif similarity index 100% rename from sound/direct_sound_samples/cry_dratini.aif rename to sound/direct_sound_samples/cries/dratini.aif diff --git a/sound/direct_sound_samples/cry_drowzee.aif b/sound/direct_sound_samples/cries/drowzee.aif similarity index 100% rename from sound/direct_sound_samples/cry_drowzee.aif rename to sound/direct_sound_samples/cries/drowzee.aif diff --git a/sound/direct_sound_samples/cry_dugtrio.aif b/sound/direct_sound_samples/cries/dugtrio.aif similarity index 100% rename from sound/direct_sound_samples/cry_dugtrio.aif rename to sound/direct_sound_samples/cries/dugtrio.aif diff --git a/sound/direct_sound_samples/cry_dunsparce.aif b/sound/direct_sound_samples/cries/dunsparce.aif similarity index 100% rename from sound/direct_sound_samples/cry_dunsparce.aif rename to sound/direct_sound_samples/cries/dunsparce.aif diff --git a/sound/direct_sound_samples/cry_dusclops.aif b/sound/direct_sound_samples/cries/dusclops.aif similarity index 100% rename from sound/direct_sound_samples/cry_dusclops.aif rename to sound/direct_sound_samples/cries/dusclops.aif diff --git a/sound/direct_sound_samples/cry_duskull.aif b/sound/direct_sound_samples/cries/duskull.aif similarity index 100% rename from sound/direct_sound_samples/cry_duskull.aif rename to sound/direct_sound_samples/cries/duskull.aif diff --git a/sound/direct_sound_samples/cry_dustox.aif b/sound/direct_sound_samples/cries/dustox.aif similarity index 100% rename from sound/direct_sound_samples/cry_dustox.aif rename to sound/direct_sound_samples/cries/dustox.aif diff --git a/sound/direct_sound_samples/cry_eevee.aif b/sound/direct_sound_samples/cries/eevee.aif similarity index 100% rename from sound/direct_sound_samples/cry_eevee.aif rename to sound/direct_sound_samples/cries/eevee.aif diff --git a/sound/direct_sound_samples/cry_ekans.aif b/sound/direct_sound_samples/cries/ekans.aif similarity index 100% rename from sound/direct_sound_samples/cry_ekans.aif rename to sound/direct_sound_samples/cries/ekans.aif diff --git a/sound/direct_sound_samples/cry_electabuzz.aif b/sound/direct_sound_samples/cries/electabuzz.aif similarity index 100% rename from sound/direct_sound_samples/cry_electabuzz.aif rename to sound/direct_sound_samples/cries/electabuzz.aif diff --git a/sound/direct_sound_samples/cry_electrike.aif b/sound/direct_sound_samples/cries/electrike.aif similarity index 100% rename from sound/direct_sound_samples/cry_electrike.aif rename to sound/direct_sound_samples/cries/electrike.aif diff --git a/sound/direct_sound_samples/cry_electrode.aif b/sound/direct_sound_samples/cries/electrode.aif similarity index 100% rename from sound/direct_sound_samples/cry_electrode.aif rename to sound/direct_sound_samples/cries/electrode.aif diff --git a/sound/direct_sound_samples/cry_elekid.aif b/sound/direct_sound_samples/cries/elekid.aif similarity index 100% rename from sound/direct_sound_samples/cry_elekid.aif rename to sound/direct_sound_samples/cries/elekid.aif diff --git a/sound/direct_sound_samples/cry_entei.aif b/sound/direct_sound_samples/cries/entei.aif similarity index 100% rename from sound/direct_sound_samples/cry_entei.aif rename to sound/direct_sound_samples/cries/entei.aif diff --git a/sound/direct_sound_samples/cry_espeon.aif b/sound/direct_sound_samples/cries/espeon.aif similarity index 100% rename from sound/direct_sound_samples/cry_espeon.aif rename to sound/direct_sound_samples/cries/espeon.aif diff --git a/sound/direct_sound_samples/cry_exeggcute.aif b/sound/direct_sound_samples/cries/exeggcute.aif similarity index 100% rename from sound/direct_sound_samples/cry_exeggcute.aif rename to sound/direct_sound_samples/cries/exeggcute.aif diff --git a/sound/direct_sound_samples/cry_exeggutor.aif b/sound/direct_sound_samples/cries/exeggutor.aif similarity index 100% rename from sound/direct_sound_samples/cry_exeggutor.aif rename to sound/direct_sound_samples/cries/exeggutor.aif diff --git a/sound/direct_sound_samples/cry_exploud.aif b/sound/direct_sound_samples/cries/exploud.aif similarity index 100% rename from sound/direct_sound_samples/cry_exploud.aif rename to sound/direct_sound_samples/cries/exploud.aif diff --git a/sound/direct_sound_samples/cry_farfetchd.aif b/sound/direct_sound_samples/cries/farfetchd.aif similarity index 100% rename from sound/direct_sound_samples/cry_farfetchd.aif rename to sound/direct_sound_samples/cries/farfetchd.aif diff --git a/sound/direct_sound_samples/cry_fearow.aif b/sound/direct_sound_samples/cries/fearow.aif similarity index 100% rename from sound/direct_sound_samples/cry_fearow.aif rename to sound/direct_sound_samples/cries/fearow.aif diff --git a/sound/direct_sound_samples/cry_feebas.aif b/sound/direct_sound_samples/cries/feebas.aif similarity index 100% rename from sound/direct_sound_samples/cry_feebas.aif rename to sound/direct_sound_samples/cries/feebas.aif diff --git a/sound/direct_sound_samples/cry_feraligatr.aif b/sound/direct_sound_samples/cries/feraligatr.aif similarity index 100% rename from sound/direct_sound_samples/cry_feraligatr.aif rename to sound/direct_sound_samples/cries/feraligatr.aif diff --git a/sound/direct_sound_samples/cry_flaaffy.aif b/sound/direct_sound_samples/cries/flaaffy.aif similarity index 100% rename from sound/direct_sound_samples/cry_flaaffy.aif rename to sound/direct_sound_samples/cries/flaaffy.aif diff --git a/sound/direct_sound_samples/cry_flareon.aif b/sound/direct_sound_samples/cries/flareon.aif similarity index 100% rename from sound/direct_sound_samples/cry_flareon.aif rename to sound/direct_sound_samples/cries/flareon.aif diff --git a/sound/direct_sound_samples/cry_flygon.aif b/sound/direct_sound_samples/cries/flygon.aif similarity index 100% rename from sound/direct_sound_samples/cry_flygon.aif rename to sound/direct_sound_samples/cries/flygon.aif diff --git a/sound/direct_sound_samples/cry_forretress.aif b/sound/direct_sound_samples/cries/forretress.aif similarity index 100% rename from sound/direct_sound_samples/cry_forretress.aif rename to sound/direct_sound_samples/cries/forretress.aif diff --git a/sound/direct_sound_samples/cry_furret.aif b/sound/direct_sound_samples/cries/furret.aif similarity index 100% rename from sound/direct_sound_samples/cry_furret.aif rename to sound/direct_sound_samples/cries/furret.aif diff --git a/sound/direct_sound_samples/cry_gardevoir.aif b/sound/direct_sound_samples/cries/gardevoir.aif similarity index 100% rename from sound/direct_sound_samples/cry_gardevoir.aif rename to sound/direct_sound_samples/cries/gardevoir.aif diff --git a/sound/direct_sound_samples/cry_gastly.aif b/sound/direct_sound_samples/cries/gastly.aif similarity index 100% rename from sound/direct_sound_samples/cry_gastly.aif rename to sound/direct_sound_samples/cries/gastly.aif diff --git a/sound/direct_sound_samples/cry_gengar.aif b/sound/direct_sound_samples/cries/gengar.aif similarity index 100% rename from sound/direct_sound_samples/cry_gengar.aif rename to sound/direct_sound_samples/cries/gengar.aif diff --git a/sound/direct_sound_samples/cry_geodude.aif b/sound/direct_sound_samples/cries/geodude.aif similarity index 100% rename from sound/direct_sound_samples/cry_geodude.aif rename to sound/direct_sound_samples/cries/geodude.aif diff --git a/sound/direct_sound_samples/cry_girafarig.aif b/sound/direct_sound_samples/cries/girafarig.aif similarity index 100% rename from sound/direct_sound_samples/cry_girafarig.aif rename to sound/direct_sound_samples/cries/girafarig.aif diff --git a/sound/direct_sound_samples/cry_glalie.aif b/sound/direct_sound_samples/cries/glalie.aif similarity index 100% rename from sound/direct_sound_samples/cry_glalie.aif rename to sound/direct_sound_samples/cries/glalie.aif diff --git a/sound/direct_sound_samples/cry_gligar.aif b/sound/direct_sound_samples/cries/gligar.aif similarity index 100% rename from sound/direct_sound_samples/cry_gligar.aif rename to sound/direct_sound_samples/cries/gligar.aif diff --git a/sound/direct_sound_samples/cry_gloom.aif b/sound/direct_sound_samples/cries/gloom.aif similarity index 100% rename from sound/direct_sound_samples/cry_gloom.aif rename to sound/direct_sound_samples/cries/gloom.aif diff --git a/sound/direct_sound_samples/cry_golbat.aif b/sound/direct_sound_samples/cries/golbat.aif similarity index 100% rename from sound/direct_sound_samples/cry_golbat.aif rename to sound/direct_sound_samples/cries/golbat.aif diff --git a/sound/direct_sound_samples/cry_goldeen.aif b/sound/direct_sound_samples/cries/goldeen.aif similarity index 100% rename from sound/direct_sound_samples/cry_goldeen.aif rename to sound/direct_sound_samples/cries/goldeen.aif diff --git a/sound/direct_sound_samples/cry_golduck.aif b/sound/direct_sound_samples/cries/golduck.aif similarity index 100% rename from sound/direct_sound_samples/cry_golduck.aif rename to sound/direct_sound_samples/cries/golduck.aif diff --git a/sound/direct_sound_samples/cry_golem.aif b/sound/direct_sound_samples/cries/golem.aif similarity index 100% rename from sound/direct_sound_samples/cry_golem.aif rename to sound/direct_sound_samples/cries/golem.aif diff --git a/sound/direct_sound_samples/cry_gorebyss.aif b/sound/direct_sound_samples/cries/gorebyss.aif similarity index 100% rename from sound/direct_sound_samples/cry_gorebyss.aif rename to sound/direct_sound_samples/cries/gorebyss.aif diff --git a/sound/direct_sound_samples/cry_granbull.aif b/sound/direct_sound_samples/cries/granbull.aif similarity index 100% rename from sound/direct_sound_samples/cry_granbull.aif rename to sound/direct_sound_samples/cries/granbull.aif diff --git a/sound/direct_sound_samples/cry_graveler.aif b/sound/direct_sound_samples/cries/graveler.aif similarity index 100% rename from sound/direct_sound_samples/cry_graveler.aif rename to sound/direct_sound_samples/cries/graveler.aif diff --git a/sound/direct_sound_samples/cry_grimer.aif b/sound/direct_sound_samples/cries/grimer.aif similarity index 100% rename from sound/direct_sound_samples/cry_grimer.aif rename to sound/direct_sound_samples/cries/grimer.aif diff --git a/sound/direct_sound_samples/cry_groudon.aif b/sound/direct_sound_samples/cries/groudon.aif similarity index 100% rename from sound/direct_sound_samples/cry_groudon.aif rename to sound/direct_sound_samples/cries/groudon.aif diff --git a/sound/direct_sound_samples/cry_grovyle.aif b/sound/direct_sound_samples/cries/grovyle.aif similarity index 100% rename from sound/direct_sound_samples/cry_grovyle.aif rename to sound/direct_sound_samples/cries/grovyle.aif diff --git a/sound/direct_sound_samples/cry_growlithe.aif b/sound/direct_sound_samples/cries/growlithe.aif similarity index 100% rename from sound/direct_sound_samples/cry_growlithe.aif rename to sound/direct_sound_samples/cries/growlithe.aif diff --git a/sound/direct_sound_samples/cry_grumpig.aif b/sound/direct_sound_samples/cries/grumpig.aif similarity index 100% rename from sound/direct_sound_samples/cry_grumpig.aif rename to sound/direct_sound_samples/cries/grumpig.aif diff --git a/sound/direct_sound_samples/cry_gulpin.aif b/sound/direct_sound_samples/cries/gulpin.aif similarity index 100% rename from sound/direct_sound_samples/cry_gulpin.aif rename to sound/direct_sound_samples/cries/gulpin.aif diff --git a/sound/direct_sound_samples/cry_gyarados.aif b/sound/direct_sound_samples/cries/gyarados.aif similarity index 100% rename from sound/direct_sound_samples/cry_gyarados.aif rename to sound/direct_sound_samples/cries/gyarados.aif diff --git a/sound/direct_sound_samples/cry_hariyama.aif b/sound/direct_sound_samples/cries/hariyama.aif similarity index 100% rename from sound/direct_sound_samples/cry_hariyama.aif rename to sound/direct_sound_samples/cries/hariyama.aif diff --git a/sound/direct_sound_samples/cry_haunter.aif b/sound/direct_sound_samples/cries/haunter.aif similarity index 100% rename from sound/direct_sound_samples/cry_haunter.aif rename to sound/direct_sound_samples/cries/haunter.aif diff --git a/sound/direct_sound_samples/cry_heracross.aif b/sound/direct_sound_samples/cries/heracross.aif similarity index 100% rename from sound/direct_sound_samples/cry_heracross.aif rename to sound/direct_sound_samples/cries/heracross.aif diff --git a/sound/direct_sound_samples/cry_hitmonchan.aif b/sound/direct_sound_samples/cries/hitmonchan.aif similarity index 100% rename from sound/direct_sound_samples/cry_hitmonchan.aif rename to sound/direct_sound_samples/cries/hitmonchan.aif diff --git a/sound/direct_sound_samples/cry_hitmonlee.aif b/sound/direct_sound_samples/cries/hitmonlee.aif similarity index 100% rename from sound/direct_sound_samples/cry_hitmonlee.aif rename to sound/direct_sound_samples/cries/hitmonlee.aif diff --git a/sound/direct_sound_samples/cry_hitmontop.aif b/sound/direct_sound_samples/cries/hitmontop.aif similarity index 100% rename from sound/direct_sound_samples/cry_hitmontop.aif rename to sound/direct_sound_samples/cries/hitmontop.aif diff --git a/sound/direct_sound_samples/cry_ho_oh.aif b/sound/direct_sound_samples/cries/ho_oh.aif similarity index 100% rename from sound/direct_sound_samples/cry_ho_oh.aif rename to sound/direct_sound_samples/cries/ho_oh.aif diff --git a/sound/direct_sound_samples/cry_hoothoot.aif b/sound/direct_sound_samples/cries/hoothoot.aif similarity index 100% rename from sound/direct_sound_samples/cry_hoothoot.aif rename to sound/direct_sound_samples/cries/hoothoot.aif diff --git a/sound/direct_sound_samples/cry_hoppip.aif b/sound/direct_sound_samples/cries/hoppip.aif similarity index 100% rename from sound/direct_sound_samples/cry_hoppip.aif rename to sound/direct_sound_samples/cries/hoppip.aif diff --git a/sound/direct_sound_samples/cry_horsea.aif b/sound/direct_sound_samples/cries/horsea.aif similarity index 100% rename from sound/direct_sound_samples/cry_horsea.aif rename to sound/direct_sound_samples/cries/horsea.aif diff --git a/sound/direct_sound_samples/cry_houndoom.aif b/sound/direct_sound_samples/cries/houndoom.aif similarity index 100% rename from sound/direct_sound_samples/cry_houndoom.aif rename to sound/direct_sound_samples/cries/houndoom.aif diff --git a/sound/direct_sound_samples/cry_houndour.aif b/sound/direct_sound_samples/cries/houndour.aif similarity index 100% rename from sound/direct_sound_samples/cry_houndour.aif rename to sound/direct_sound_samples/cries/houndour.aif diff --git a/sound/direct_sound_samples/cry_huntail.aif b/sound/direct_sound_samples/cries/huntail.aif similarity index 100% rename from sound/direct_sound_samples/cry_huntail.aif rename to sound/direct_sound_samples/cries/huntail.aif diff --git a/sound/direct_sound_samples/cry_hypno.aif b/sound/direct_sound_samples/cries/hypno.aif similarity index 100% rename from sound/direct_sound_samples/cry_hypno.aif rename to sound/direct_sound_samples/cries/hypno.aif diff --git a/sound/direct_sound_samples/cry_igglybuff.aif b/sound/direct_sound_samples/cries/igglybuff.aif similarity index 100% rename from sound/direct_sound_samples/cry_igglybuff.aif rename to sound/direct_sound_samples/cries/igglybuff.aif diff --git a/sound/direct_sound_samples/cry_illumise.aif b/sound/direct_sound_samples/cries/illumise.aif similarity index 100% rename from sound/direct_sound_samples/cry_illumise.aif rename to sound/direct_sound_samples/cries/illumise.aif diff --git a/sound/direct_sound_samples/cry_ivysaur.aif b/sound/direct_sound_samples/cries/ivysaur.aif similarity index 100% rename from sound/direct_sound_samples/cry_ivysaur.aif rename to sound/direct_sound_samples/cries/ivysaur.aif diff --git a/sound/direct_sound_samples/cry_jigglypuff.aif b/sound/direct_sound_samples/cries/jigglypuff.aif similarity index 100% rename from sound/direct_sound_samples/cry_jigglypuff.aif rename to sound/direct_sound_samples/cries/jigglypuff.aif diff --git a/sound/direct_sound_samples/cry_jirachi.aif b/sound/direct_sound_samples/cries/jirachi.aif similarity index 100% rename from sound/direct_sound_samples/cry_jirachi.aif rename to sound/direct_sound_samples/cries/jirachi.aif diff --git a/sound/direct_sound_samples/cry_jolteon.aif b/sound/direct_sound_samples/cries/jolteon.aif similarity index 100% rename from sound/direct_sound_samples/cry_jolteon.aif rename to sound/direct_sound_samples/cries/jolteon.aif diff --git a/sound/direct_sound_samples/cry_jumpluff.aif b/sound/direct_sound_samples/cries/jumpluff.aif similarity index 100% rename from sound/direct_sound_samples/cry_jumpluff.aif rename to sound/direct_sound_samples/cries/jumpluff.aif diff --git a/sound/direct_sound_samples/cry_jynx.aif b/sound/direct_sound_samples/cries/jynx.aif similarity index 100% rename from sound/direct_sound_samples/cry_jynx.aif rename to sound/direct_sound_samples/cries/jynx.aif diff --git a/sound/direct_sound_samples/cry_kabuto.aif b/sound/direct_sound_samples/cries/kabuto.aif similarity index 100% rename from sound/direct_sound_samples/cry_kabuto.aif rename to sound/direct_sound_samples/cries/kabuto.aif diff --git a/sound/direct_sound_samples/cry_kabutops.aif b/sound/direct_sound_samples/cries/kabutops.aif similarity index 100% rename from sound/direct_sound_samples/cry_kabutops.aif rename to sound/direct_sound_samples/cries/kabutops.aif diff --git a/sound/direct_sound_samples/cry_kadabra.aif b/sound/direct_sound_samples/cries/kadabra.aif similarity index 100% rename from sound/direct_sound_samples/cry_kadabra.aif rename to sound/direct_sound_samples/cries/kadabra.aif diff --git a/sound/direct_sound_samples/cry_kakuna.aif b/sound/direct_sound_samples/cries/kakuna.aif similarity index 100% rename from sound/direct_sound_samples/cry_kakuna.aif rename to sound/direct_sound_samples/cries/kakuna.aif diff --git a/sound/direct_sound_samples/cry_kangaskhan.aif b/sound/direct_sound_samples/cries/kangaskhan.aif similarity index 100% rename from sound/direct_sound_samples/cry_kangaskhan.aif rename to sound/direct_sound_samples/cries/kangaskhan.aif diff --git a/sound/direct_sound_samples/cry_kecleon.aif b/sound/direct_sound_samples/cries/kecleon.aif similarity index 100% rename from sound/direct_sound_samples/cry_kecleon.aif rename to sound/direct_sound_samples/cries/kecleon.aif diff --git a/sound/direct_sound_samples/cry_kingdra.aif b/sound/direct_sound_samples/cries/kingdra.aif similarity index 100% rename from sound/direct_sound_samples/cry_kingdra.aif rename to sound/direct_sound_samples/cries/kingdra.aif diff --git a/sound/direct_sound_samples/cry_kingler.aif b/sound/direct_sound_samples/cries/kingler.aif similarity index 100% rename from sound/direct_sound_samples/cry_kingler.aif rename to sound/direct_sound_samples/cries/kingler.aif diff --git a/sound/direct_sound_samples/cry_kirlia.aif b/sound/direct_sound_samples/cries/kirlia.aif similarity index 100% rename from sound/direct_sound_samples/cry_kirlia.aif rename to sound/direct_sound_samples/cries/kirlia.aif diff --git a/sound/direct_sound_samples/cry_koffing.aif b/sound/direct_sound_samples/cries/koffing.aif similarity index 100% rename from sound/direct_sound_samples/cry_koffing.aif rename to sound/direct_sound_samples/cries/koffing.aif diff --git a/sound/direct_sound_samples/cry_krabby.aif b/sound/direct_sound_samples/cries/krabby.aif similarity index 100% rename from sound/direct_sound_samples/cry_krabby.aif rename to sound/direct_sound_samples/cries/krabby.aif diff --git a/sound/direct_sound_samples/cry_kyogre.aif b/sound/direct_sound_samples/cries/kyogre.aif similarity index 100% rename from sound/direct_sound_samples/cry_kyogre.aif rename to sound/direct_sound_samples/cries/kyogre.aif diff --git a/sound/direct_sound_samples/cry_lairon.aif b/sound/direct_sound_samples/cries/lairon.aif similarity index 100% rename from sound/direct_sound_samples/cry_lairon.aif rename to sound/direct_sound_samples/cries/lairon.aif diff --git a/sound/direct_sound_samples/cry_lanturn.aif b/sound/direct_sound_samples/cries/lanturn.aif similarity index 100% rename from sound/direct_sound_samples/cry_lanturn.aif rename to sound/direct_sound_samples/cries/lanturn.aif diff --git a/sound/direct_sound_samples/cry_lapras.aif b/sound/direct_sound_samples/cries/lapras.aif similarity index 100% rename from sound/direct_sound_samples/cry_lapras.aif rename to sound/direct_sound_samples/cries/lapras.aif diff --git a/sound/direct_sound_samples/cry_larvitar.aif b/sound/direct_sound_samples/cries/larvitar.aif similarity index 100% rename from sound/direct_sound_samples/cry_larvitar.aif rename to sound/direct_sound_samples/cries/larvitar.aif diff --git a/sound/direct_sound_samples/cry_latias.aif b/sound/direct_sound_samples/cries/latias.aif similarity index 100% rename from sound/direct_sound_samples/cry_latias.aif rename to sound/direct_sound_samples/cries/latias.aif diff --git a/sound/direct_sound_samples/cry_latios.aif b/sound/direct_sound_samples/cries/latios.aif similarity index 100% rename from sound/direct_sound_samples/cry_latios.aif rename to sound/direct_sound_samples/cries/latios.aif diff --git a/sound/direct_sound_samples/cry_ledian.aif b/sound/direct_sound_samples/cries/ledian.aif similarity index 100% rename from sound/direct_sound_samples/cry_ledian.aif rename to sound/direct_sound_samples/cries/ledian.aif diff --git a/sound/direct_sound_samples/cry_ledyba.aif b/sound/direct_sound_samples/cries/ledyba.aif similarity index 100% rename from sound/direct_sound_samples/cry_ledyba.aif rename to sound/direct_sound_samples/cries/ledyba.aif diff --git a/sound/direct_sound_samples/cry_lickitung.aif b/sound/direct_sound_samples/cries/lickitung.aif similarity index 100% rename from sound/direct_sound_samples/cry_lickitung.aif rename to sound/direct_sound_samples/cries/lickitung.aif diff --git a/sound/direct_sound_samples/cry_lileep.aif b/sound/direct_sound_samples/cries/lileep.aif similarity index 100% rename from sound/direct_sound_samples/cry_lileep.aif rename to sound/direct_sound_samples/cries/lileep.aif diff --git a/sound/direct_sound_samples/cry_linoone.aif b/sound/direct_sound_samples/cries/linoone.aif similarity index 100% rename from sound/direct_sound_samples/cry_linoone.aif rename to sound/direct_sound_samples/cries/linoone.aif diff --git a/sound/direct_sound_samples/cry_lombre.aif b/sound/direct_sound_samples/cries/lombre.aif similarity index 100% rename from sound/direct_sound_samples/cry_lombre.aif rename to sound/direct_sound_samples/cries/lombre.aif diff --git a/sound/direct_sound_samples/cry_lotad.aif b/sound/direct_sound_samples/cries/lotad.aif similarity index 100% rename from sound/direct_sound_samples/cry_lotad.aif rename to sound/direct_sound_samples/cries/lotad.aif diff --git a/sound/direct_sound_samples/cry_loudred.aif b/sound/direct_sound_samples/cries/loudred.aif similarity index 100% rename from sound/direct_sound_samples/cry_loudred.aif rename to sound/direct_sound_samples/cries/loudred.aif diff --git a/sound/direct_sound_samples/cry_ludicolo.aif b/sound/direct_sound_samples/cries/ludicolo.aif similarity index 100% rename from sound/direct_sound_samples/cry_ludicolo.aif rename to sound/direct_sound_samples/cries/ludicolo.aif diff --git a/sound/direct_sound_samples/cry_lugia.aif b/sound/direct_sound_samples/cries/lugia.aif similarity index 100% rename from sound/direct_sound_samples/cry_lugia.aif rename to sound/direct_sound_samples/cries/lugia.aif diff --git a/sound/direct_sound_samples/cry_lunatone.aif b/sound/direct_sound_samples/cries/lunatone.aif similarity index 100% rename from sound/direct_sound_samples/cry_lunatone.aif rename to sound/direct_sound_samples/cries/lunatone.aif diff --git a/sound/direct_sound_samples/cry_luvdisc.aif b/sound/direct_sound_samples/cries/luvdisc.aif similarity index 100% rename from sound/direct_sound_samples/cry_luvdisc.aif rename to sound/direct_sound_samples/cries/luvdisc.aif diff --git a/sound/direct_sound_samples/cry_machamp.aif b/sound/direct_sound_samples/cries/machamp.aif similarity index 100% rename from sound/direct_sound_samples/cry_machamp.aif rename to sound/direct_sound_samples/cries/machamp.aif diff --git a/sound/direct_sound_samples/cry_machoke.aif b/sound/direct_sound_samples/cries/machoke.aif similarity index 100% rename from sound/direct_sound_samples/cry_machoke.aif rename to sound/direct_sound_samples/cries/machoke.aif diff --git a/sound/direct_sound_samples/cry_machop.aif b/sound/direct_sound_samples/cries/machop.aif similarity index 100% rename from sound/direct_sound_samples/cry_machop.aif rename to sound/direct_sound_samples/cries/machop.aif diff --git a/sound/direct_sound_samples/cry_magby.aif b/sound/direct_sound_samples/cries/magby.aif similarity index 100% rename from sound/direct_sound_samples/cry_magby.aif rename to sound/direct_sound_samples/cries/magby.aif diff --git a/sound/direct_sound_samples/cry_magcargo.aif b/sound/direct_sound_samples/cries/magcargo.aif similarity index 100% rename from sound/direct_sound_samples/cry_magcargo.aif rename to sound/direct_sound_samples/cries/magcargo.aif diff --git a/sound/direct_sound_samples/cry_magikarp.aif b/sound/direct_sound_samples/cries/magikarp.aif similarity index 100% rename from sound/direct_sound_samples/cry_magikarp.aif rename to sound/direct_sound_samples/cries/magikarp.aif diff --git a/sound/direct_sound_samples/cry_magmar.aif b/sound/direct_sound_samples/cries/magmar.aif similarity index 100% rename from sound/direct_sound_samples/cry_magmar.aif rename to sound/direct_sound_samples/cries/magmar.aif diff --git a/sound/direct_sound_samples/cry_magnemite.aif b/sound/direct_sound_samples/cries/magnemite.aif similarity index 100% rename from sound/direct_sound_samples/cry_magnemite.aif rename to sound/direct_sound_samples/cries/magnemite.aif diff --git a/sound/direct_sound_samples/cry_magneton.aif b/sound/direct_sound_samples/cries/magneton.aif similarity index 100% rename from sound/direct_sound_samples/cry_magneton.aif rename to sound/direct_sound_samples/cries/magneton.aif diff --git a/sound/direct_sound_samples/cry_makuhita.aif b/sound/direct_sound_samples/cries/makuhita.aif similarity index 100% rename from sound/direct_sound_samples/cry_makuhita.aif rename to sound/direct_sound_samples/cries/makuhita.aif diff --git a/sound/direct_sound_samples/cry_manectric.aif b/sound/direct_sound_samples/cries/manectric.aif similarity index 100% rename from sound/direct_sound_samples/cry_manectric.aif rename to sound/direct_sound_samples/cries/manectric.aif diff --git a/sound/direct_sound_samples/cry_mankey.aif b/sound/direct_sound_samples/cries/mankey.aif similarity index 100% rename from sound/direct_sound_samples/cry_mankey.aif rename to sound/direct_sound_samples/cries/mankey.aif diff --git a/sound/direct_sound_samples/cry_mantine.aif b/sound/direct_sound_samples/cries/mantine.aif similarity index 100% rename from sound/direct_sound_samples/cry_mantine.aif rename to sound/direct_sound_samples/cries/mantine.aif diff --git a/sound/direct_sound_samples/cry_mareep.aif b/sound/direct_sound_samples/cries/mareep.aif similarity index 100% rename from sound/direct_sound_samples/cry_mareep.aif rename to sound/direct_sound_samples/cries/mareep.aif diff --git a/sound/direct_sound_samples/cry_marill.aif b/sound/direct_sound_samples/cries/marill.aif similarity index 100% rename from sound/direct_sound_samples/cry_marill.aif rename to sound/direct_sound_samples/cries/marill.aif diff --git a/sound/direct_sound_samples/cry_marowak.aif b/sound/direct_sound_samples/cries/marowak.aif similarity index 100% rename from sound/direct_sound_samples/cry_marowak.aif rename to sound/direct_sound_samples/cries/marowak.aif diff --git a/sound/direct_sound_samples/cry_marshtomp.aif b/sound/direct_sound_samples/cries/marshtomp.aif similarity index 100% rename from sound/direct_sound_samples/cry_marshtomp.aif rename to sound/direct_sound_samples/cries/marshtomp.aif diff --git a/sound/direct_sound_samples/cry_masquerain.aif b/sound/direct_sound_samples/cries/masquerain.aif similarity index 100% rename from sound/direct_sound_samples/cry_masquerain.aif rename to sound/direct_sound_samples/cries/masquerain.aif diff --git a/sound/direct_sound_samples/cry_mawile.aif b/sound/direct_sound_samples/cries/mawile.aif similarity index 100% rename from sound/direct_sound_samples/cry_mawile.aif rename to sound/direct_sound_samples/cries/mawile.aif diff --git a/sound/direct_sound_samples/cry_medicham.aif b/sound/direct_sound_samples/cries/medicham.aif similarity index 100% rename from sound/direct_sound_samples/cry_medicham.aif rename to sound/direct_sound_samples/cries/medicham.aif diff --git a/sound/direct_sound_samples/cry_meditite.aif b/sound/direct_sound_samples/cries/meditite.aif similarity index 100% rename from sound/direct_sound_samples/cry_meditite.aif rename to sound/direct_sound_samples/cries/meditite.aif diff --git a/sound/direct_sound_samples/cry_meganium.aif b/sound/direct_sound_samples/cries/meganium.aif similarity index 100% rename from sound/direct_sound_samples/cry_meganium.aif rename to sound/direct_sound_samples/cries/meganium.aif diff --git a/sound/direct_sound_samples/cry_meowth.aif b/sound/direct_sound_samples/cries/meowth.aif similarity index 100% rename from sound/direct_sound_samples/cry_meowth.aif rename to sound/direct_sound_samples/cries/meowth.aif diff --git a/sound/direct_sound_samples/cry_metagross.aif b/sound/direct_sound_samples/cries/metagross.aif similarity index 100% rename from sound/direct_sound_samples/cry_metagross.aif rename to sound/direct_sound_samples/cries/metagross.aif diff --git a/sound/direct_sound_samples/cry_metang.aif b/sound/direct_sound_samples/cries/metang.aif similarity index 100% rename from sound/direct_sound_samples/cry_metang.aif rename to sound/direct_sound_samples/cries/metang.aif diff --git a/sound/direct_sound_samples/cry_metapod.aif b/sound/direct_sound_samples/cries/metapod.aif similarity index 100% rename from sound/direct_sound_samples/cry_metapod.aif rename to sound/direct_sound_samples/cries/metapod.aif diff --git a/sound/direct_sound_samples/cry_mew.aif b/sound/direct_sound_samples/cries/mew.aif similarity index 100% rename from sound/direct_sound_samples/cry_mew.aif rename to sound/direct_sound_samples/cries/mew.aif diff --git a/sound/direct_sound_samples/cry_mewtwo.aif b/sound/direct_sound_samples/cries/mewtwo.aif similarity index 100% rename from sound/direct_sound_samples/cry_mewtwo.aif rename to sound/direct_sound_samples/cries/mewtwo.aif diff --git a/sound/direct_sound_samples/cry_mightyena.aif b/sound/direct_sound_samples/cries/mightyena.aif similarity index 100% rename from sound/direct_sound_samples/cry_mightyena.aif rename to sound/direct_sound_samples/cries/mightyena.aif diff --git a/sound/direct_sound_samples/cry_milotic.aif b/sound/direct_sound_samples/cries/milotic.aif similarity index 100% rename from sound/direct_sound_samples/cry_milotic.aif rename to sound/direct_sound_samples/cries/milotic.aif diff --git a/sound/direct_sound_samples/cry_miltank.aif b/sound/direct_sound_samples/cries/miltank.aif similarity index 100% rename from sound/direct_sound_samples/cry_miltank.aif rename to sound/direct_sound_samples/cries/miltank.aif diff --git a/sound/direct_sound_samples/cry_minun.aif b/sound/direct_sound_samples/cries/minun.aif similarity index 100% rename from sound/direct_sound_samples/cry_minun.aif rename to sound/direct_sound_samples/cries/minun.aif diff --git a/sound/direct_sound_samples/cry_misdreavus.aif b/sound/direct_sound_samples/cries/misdreavus.aif similarity index 100% rename from sound/direct_sound_samples/cry_misdreavus.aif rename to sound/direct_sound_samples/cries/misdreavus.aif diff --git a/sound/direct_sound_samples/cry_moltres.aif b/sound/direct_sound_samples/cries/moltres.aif similarity index 100% rename from sound/direct_sound_samples/cry_moltres.aif rename to sound/direct_sound_samples/cries/moltres.aif diff --git a/sound/direct_sound_samples/cry_mr_mime.aif b/sound/direct_sound_samples/cries/mr_mime.aif similarity index 100% rename from sound/direct_sound_samples/cry_mr_mime.aif rename to sound/direct_sound_samples/cries/mr_mime.aif diff --git a/sound/direct_sound_samples/cry_mudkip.aif b/sound/direct_sound_samples/cries/mudkip.aif similarity index 100% rename from sound/direct_sound_samples/cry_mudkip.aif rename to sound/direct_sound_samples/cries/mudkip.aif diff --git a/sound/direct_sound_samples/cry_muk.aif b/sound/direct_sound_samples/cries/muk.aif similarity index 100% rename from sound/direct_sound_samples/cry_muk.aif rename to sound/direct_sound_samples/cries/muk.aif diff --git a/sound/direct_sound_samples/cry_murkrow.aif b/sound/direct_sound_samples/cries/murkrow.aif similarity index 100% rename from sound/direct_sound_samples/cry_murkrow.aif rename to sound/direct_sound_samples/cries/murkrow.aif diff --git a/sound/direct_sound_samples/cry_natu.aif b/sound/direct_sound_samples/cries/natu.aif similarity index 100% rename from sound/direct_sound_samples/cry_natu.aif rename to sound/direct_sound_samples/cries/natu.aif diff --git a/sound/direct_sound_samples/cry_nidoking.aif b/sound/direct_sound_samples/cries/nidoking.aif similarity index 100% rename from sound/direct_sound_samples/cry_nidoking.aif rename to sound/direct_sound_samples/cries/nidoking.aif diff --git a/sound/direct_sound_samples/cry_nidoqueen.aif b/sound/direct_sound_samples/cries/nidoqueen.aif similarity index 100% rename from sound/direct_sound_samples/cry_nidoqueen.aif rename to sound/direct_sound_samples/cries/nidoqueen.aif diff --git a/sound/direct_sound_samples/cry_nidoran_f.aif b/sound/direct_sound_samples/cries/nidoran_f.aif similarity index 100% rename from sound/direct_sound_samples/cry_nidoran_f.aif rename to sound/direct_sound_samples/cries/nidoran_f.aif diff --git a/sound/direct_sound_samples/cry_nidoran_m.aif b/sound/direct_sound_samples/cries/nidoran_m.aif similarity index 100% rename from sound/direct_sound_samples/cry_nidoran_m.aif rename to sound/direct_sound_samples/cries/nidoran_m.aif diff --git a/sound/direct_sound_samples/cry_nidorina.aif b/sound/direct_sound_samples/cries/nidorina.aif similarity index 100% rename from sound/direct_sound_samples/cry_nidorina.aif rename to sound/direct_sound_samples/cries/nidorina.aif diff --git a/sound/direct_sound_samples/cry_nidorino.aif b/sound/direct_sound_samples/cries/nidorino.aif similarity index 100% rename from sound/direct_sound_samples/cry_nidorino.aif rename to sound/direct_sound_samples/cries/nidorino.aif diff --git a/sound/direct_sound_samples/cry_nincada.aif b/sound/direct_sound_samples/cries/nincada.aif similarity index 100% rename from sound/direct_sound_samples/cry_nincada.aif rename to sound/direct_sound_samples/cries/nincada.aif diff --git a/sound/direct_sound_samples/cry_ninetales.aif b/sound/direct_sound_samples/cries/ninetales.aif similarity index 100% rename from sound/direct_sound_samples/cry_ninetales.aif rename to sound/direct_sound_samples/cries/ninetales.aif diff --git a/sound/direct_sound_samples/cry_ninjask.aif b/sound/direct_sound_samples/cries/ninjask.aif similarity index 100% rename from sound/direct_sound_samples/cry_ninjask.aif rename to sound/direct_sound_samples/cries/ninjask.aif diff --git a/sound/direct_sound_samples/cry_noctowl.aif b/sound/direct_sound_samples/cries/noctowl.aif similarity index 100% rename from sound/direct_sound_samples/cry_noctowl.aif rename to sound/direct_sound_samples/cries/noctowl.aif diff --git a/sound/direct_sound_samples/cry_nosepass.aif b/sound/direct_sound_samples/cries/nosepass.aif similarity index 100% rename from sound/direct_sound_samples/cry_nosepass.aif rename to sound/direct_sound_samples/cries/nosepass.aif diff --git a/sound/direct_sound_samples/cry_numel.aif b/sound/direct_sound_samples/cries/numel.aif similarity index 100% rename from sound/direct_sound_samples/cry_numel.aif rename to sound/direct_sound_samples/cries/numel.aif diff --git a/sound/direct_sound_samples/cry_nuzleaf.aif b/sound/direct_sound_samples/cries/nuzleaf.aif similarity index 100% rename from sound/direct_sound_samples/cry_nuzleaf.aif rename to sound/direct_sound_samples/cries/nuzleaf.aif diff --git a/sound/direct_sound_samples/cry_octillery.aif b/sound/direct_sound_samples/cries/octillery.aif similarity index 100% rename from sound/direct_sound_samples/cry_octillery.aif rename to sound/direct_sound_samples/cries/octillery.aif diff --git a/sound/direct_sound_samples/cry_oddish.aif b/sound/direct_sound_samples/cries/oddish.aif similarity index 100% rename from sound/direct_sound_samples/cry_oddish.aif rename to sound/direct_sound_samples/cries/oddish.aif diff --git a/sound/direct_sound_samples/cry_omanyte.aif b/sound/direct_sound_samples/cries/omanyte.aif similarity index 100% rename from sound/direct_sound_samples/cry_omanyte.aif rename to sound/direct_sound_samples/cries/omanyte.aif diff --git a/sound/direct_sound_samples/cry_omastar.aif b/sound/direct_sound_samples/cries/omastar.aif similarity index 100% rename from sound/direct_sound_samples/cry_omastar.aif rename to sound/direct_sound_samples/cries/omastar.aif diff --git a/sound/direct_sound_samples/cry_onix.aif b/sound/direct_sound_samples/cries/onix.aif similarity index 100% rename from sound/direct_sound_samples/cry_onix.aif rename to sound/direct_sound_samples/cries/onix.aif diff --git a/sound/direct_sound_samples/cry_paras.aif b/sound/direct_sound_samples/cries/paras.aif similarity index 100% rename from sound/direct_sound_samples/cry_paras.aif rename to sound/direct_sound_samples/cries/paras.aif diff --git a/sound/direct_sound_samples/cry_parasect.aif b/sound/direct_sound_samples/cries/parasect.aif similarity index 100% rename from sound/direct_sound_samples/cry_parasect.aif rename to sound/direct_sound_samples/cries/parasect.aif diff --git a/sound/direct_sound_samples/cry_pelipper.aif b/sound/direct_sound_samples/cries/pelipper.aif similarity index 100% rename from sound/direct_sound_samples/cry_pelipper.aif rename to sound/direct_sound_samples/cries/pelipper.aif diff --git a/sound/direct_sound_samples/cry_persian.aif b/sound/direct_sound_samples/cries/persian.aif similarity index 100% rename from sound/direct_sound_samples/cry_persian.aif rename to sound/direct_sound_samples/cries/persian.aif diff --git a/sound/direct_sound_samples/cry_phanpy.aif b/sound/direct_sound_samples/cries/phanpy.aif similarity index 100% rename from sound/direct_sound_samples/cry_phanpy.aif rename to sound/direct_sound_samples/cries/phanpy.aif diff --git a/sound/direct_sound_samples/cry_pichu.aif b/sound/direct_sound_samples/cries/pichu.aif similarity index 100% rename from sound/direct_sound_samples/cry_pichu.aif rename to sound/direct_sound_samples/cries/pichu.aif diff --git a/sound/direct_sound_samples/cry_pidgeot.aif b/sound/direct_sound_samples/cries/pidgeot.aif similarity index 100% rename from sound/direct_sound_samples/cry_pidgeot.aif rename to sound/direct_sound_samples/cries/pidgeot.aif diff --git a/sound/direct_sound_samples/cry_pidgeotto.aif b/sound/direct_sound_samples/cries/pidgeotto.aif similarity index 100% rename from sound/direct_sound_samples/cry_pidgeotto.aif rename to sound/direct_sound_samples/cries/pidgeotto.aif diff --git a/sound/direct_sound_samples/cry_pidgey.aif b/sound/direct_sound_samples/cries/pidgey.aif similarity index 100% rename from sound/direct_sound_samples/cry_pidgey.aif rename to sound/direct_sound_samples/cries/pidgey.aif diff --git a/sound/direct_sound_samples/cry_pikachu.aif b/sound/direct_sound_samples/cries/pikachu.aif similarity index 100% rename from sound/direct_sound_samples/cry_pikachu.aif rename to sound/direct_sound_samples/cries/pikachu.aif diff --git a/sound/direct_sound_samples/cry_piloswine.aif b/sound/direct_sound_samples/cries/piloswine.aif similarity index 100% rename from sound/direct_sound_samples/cry_piloswine.aif rename to sound/direct_sound_samples/cries/piloswine.aif diff --git a/sound/direct_sound_samples/cry_pineco.aif b/sound/direct_sound_samples/cries/pineco.aif similarity index 100% rename from sound/direct_sound_samples/cry_pineco.aif rename to sound/direct_sound_samples/cries/pineco.aif diff --git a/sound/direct_sound_samples/cry_pinsir.aif b/sound/direct_sound_samples/cries/pinsir.aif similarity index 100% rename from sound/direct_sound_samples/cry_pinsir.aif rename to sound/direct_sound_samples/cries/pinsir.aif diff --git a/sound/direct_sound_samples/cry_plusle.aif b/sound/direct_sound_samples/cries/plusle.aif similarity index 100% rename from sound/direct_sound_samples/cry_plusle.aif rename to sound/direct_sound_samples/cries/plusle.aif diff --git a/sound/direct_sound_samples/cry_politoed.aif b/sound/direct_sound_samples/cries/politoed.aif similarity index 100% rename from sound/direct_sound_samples/cry_politoed.aif rename to sound/direct_sound_samples/cries/politoed.aif diff --git a/sound/direct_sound_samples/cry_poliwag.aif b/sound/direct_sound_samples/cries/poliwag.aif similarity index 100% rename from sound/direct_sound_samples/cry_poliwag.aif rename to sound/direct_sound_samples/cries/poliwag.aif diff --git a/sound/direct_sound_samples/cry_poliwhirl.aif b/sound/direct_sound_samples/cries/poliwhirl.aif similarity index 100% rename from sound/direct_sound_samples/cry_poliwhirl.aif rename to sound/direct_sound_samples/cries/poliwhirl.aif diff --git a/sound/direct_sound_samples/cry_poliwrath.aif b/sound/direct_sound_samples/cries/poliwrath.aif similarity index 100% rename from sound/direct_sound_samples/cry_poliwrath.aif rename to sound/direct_sound_samples/cries/poliwrath.aif diff --git a/sound/direct_sound_samples/cry_ponyta.aif b/sound/direct_sound_samples/cries/ponyta.aif similarity index 100% rename from sound/direct_sound_samples/cry_ponyta.aif rename to sound/direct_sound_samples/cries/ponyta.aif diff --git a/sound/direct_sound_samples/cry_poochyena.aif b/sound/direct_sound_samples/cries/poochyena.aif similarity index 100% rename from sound/direct_sound_samples/cry_poochyena.aif rename to sound/direct_sound_samples/cries/poochyena.aif diff --git a/sound/direct_sound_samples/cry_porygon.aif b/sound/direct_sound_samples/cries/porygon.aif similarity index 100% rename from sound/direct_sound_samples/cry_porygon.aif rename to sound/direct_sound_samples/cries/porygon.aif diff --git a/sound/direct_sound_samples/cry_porygon2.aif b/sound/direct_sound_samples/cries/porygon2.aif similarity index 100% rename from sound/direct_sound_samples/cry_porygon2.aif rename to sound/direct_sound_samples/cries/porygon2.aif diff --git a/sound/direct_sound_samples/cry_primeape.aif b/sound/direct_sound_samples/cries/primeape.aif similarity index 100% rename from sound/direct_sound_samples/cry_primeape.aif rename to sound/direct_sound_samples/cries/primeape.aif diff --git a/sound/direct_sound_samples/cry_psyduck.aif b/sound/direct_sound_samples/cries/psyduck.aif similarity index 100% rename from sound/direct_sound_samples/cry_psyduck.aif rename to sound/direct_sound_samples/cries/psyduck.aif diff --git a/sound/direct_sound_samples/cry_pupitar.aif b/sound/direct_sound_samples/cries/pupitar.aif similarity index 100% rename from sound/direct_sound_samples/cry_pupitar.aif rename to sound/direct_sound_samples/cries/pupitar.aif diff --git a/sound/direct_sound_samples/cry_quagsire.aif b/sound/direct_sound_samples/cries/quagsire.aif similarity index 100% rename from sound/direct_sound_samples/cry_quagsire.aif rename to sound/direct_sound_samples/cries/quagsire.aif diff --git a/sound/direct_sound_samples/cry_quilava.aif b/sound/direct_sound_samples/cries/quilava.aif similarity index 100% rename from sound/direct_sound_samples/cry_quilava.aif rename to sound/direct_sound_samples/cries/quilava.aif diff --git a/sound/direct_sound_samples/cry_qwilfish.aif b/sound/direct_sound_samples/cries/qwilfish.aif similarity index 100% rename from sound/direct_sound_samples/cry_qwilfish.aif rename to sound/direct_sound_samples/cries/qwilfish.aif diff --git a/sound/direct_sound_samples/cry_raichu.aif b/sound/direct_sound_samples/cries/raichu.aif similarity index 100% rename from sound/direct_sound_samples/cry_raichu.aif rename to sound/direct_sound_samples/cries/raichu.aif diff --git a/sound/direct_sound_samples/cry_raikou.aif b/sound/direct_sound_samples/cries/raikou.aif similarity index 100% rename from sound/direct_sound_samples/cry_raikou.aif rename to sound/direct_sound_samples/cries/raikou.aif diff --git a/sound/direct_sound_samples/cry_ralts.aif b/sound/direct_sound_samples/cries/ralts.aif similarity index 100% rename from sound/direct_sound_samples/cry_ralts.aif rename to sound/direct_sound_samples/cries/ralts.aif diff --git a/sound/direct_sound_samples/cry_rapidash.aif b/sound/direct_sound_samples/cries/rapidash.aif similarity index 100% rename from sound/direct_sound_samples/cry_rapidash.aif rename to sound/direct_sound_samples/cries/rapidash.aif diff --git a/sound/direct_sound_samples/cry_raticate.aif b/sound/direct_sound_samples/cries/raticate.aif similarity index 100% rename from sound/direct_sound_samples/cry_raticate.aif rename to sound/direct_sound_samples/cries/raticate.aif diff --git a/sound/direct_sound_samples/cry_rattata.aif b/sound/direct_sound_samples/cries/rattata.aif similarity index 100% rename from sound/direct_sound_samples/cry_rattata.aif rename to sound/direct_sound_samples/cries/rattata.aif diff --git a/sound/direct_sound_samples/cry_rayquaza.aif b/sound/direct_sound_samples/cries/rayquaza.aif similarity index 100% rename from sound/direct_sound_samples/cry_rayquaza.aif rename to sound/direct_sound_samples/cries/rayquaza.aif diff --git a/sound/direct_sound_samples/cry_regice.aif b/sound/direct_sound_samples/cries/regice.aif similarity index 100% rename from sound/direct_sound_samples/cry_regice.aif rename to sound/direct_sound_samples/cries/regice.aif diff --git a/sound/direct_sound_samples/cry_regirock.aif b/sound/direct_sound_samples/cries/regirock.aif similarity index 100% rename from sound/direct_sound_samples/cry_regirock.aif rename to sound/direct_sound_samples/cries/regirock.aif diff --git a/sound/direct_sound_samples/cry_registeel.aif b/sound/direct_sound_samples/cries/registeel.aif similarity index 100% rename from sound/direct_sound_samples/cry_registeel.aif rename to sound/direct_sound_samples/cries/registeel.aif diff --git a/sound/direct_sound_samples/cry_relicanth.aif b/sound/direct_sound_samples/cries/relicanth.aif similarity index 100% rename from sound/direct_sound_samples/cry_relicanth.aif rename to sound/direct_sound_samples/cries/relicanth.aif diff --git a/sound/direct_sound_samples/cry_remoraid.aif b/sound/direct_sound_samples/cries/remoraid.aif similarity index 100% rename from sound/direct_sound_samples/cry_remoraid.aif rename to sound/direct_sound_samples/cries/remoraid.aif diff --git a/sound/direct_sound_samples/cry_rhydon.aif b/sound/direct_sound_samples/cries/rhydon.aif similarity index 100% rename from sound/direct_sound_samples/cry_rhydon.aif rename to sound/direct_sound_samples/cries/rhydon.aif diff --git a/sound/direct_sound_samples/cry_rhyhorn.aif b/sound/direct_sound_samples/cries/rhyhorn.aif similarity index 100% rename from sound/direct_sound_samples/cry_rhyhorn.aif rename to sound/direct_sound_samples/cries/rhyhorn.aif diff --git a/sound/direct_sound_samples/cry_roselia.aif b/sound/direct_sound_samples/cries/roselia.aif similarity index 100% rename from sound/direct_sound_samples/cry_roselia.aif rename to sound/direct_sound_samples/cries/roselia.aif diff --git a/sound/direct_sound_samples/cry_sableye.aif b/sound/direct_sound_samples/cries/sableye.aif similarity index 100% rename from sound/direct_sound_samples/cry_sableye.aif rename to sound/direct_sound_samples/cries/sableye.aif diff --git a/sound/direct_sound_samples/cry_salamence.aif b/sound/direct_sound_samples/cries/salamence.aif similarity index 100% rename from sound/direct_sound_samples/cry_salamence.aif rename to sound/direct_sound_samples/cries/salamence.aif diff --git a/sound/direct_sound_samples/cry_sandshrew.aif b/sound/direct_sound_samples/cries/sandshrew.aif similarity index 100% rename from sound/direct_sound_samples/cry_sandshrew.aif rename to sound/direct_sound_samples/cries/sandshrew.aif diff --git a/sound/direct_sound_samples/cry_sandslash.aif b/sound/direct_sound_samples/cries/sandslash.aif similarity index 100% rename from sound/direct_sound_samples/cry_sandslash.aif rename to sound/direct_sound_samples/cries/sandslash.aif diff --git a/sound/direct_sound_samples/cry_sceptile.aif b/sound/direct_sound_samples/cries/sceptile.aif similarity index 100% rename from sound/direct_sound_samples/cry_sceptile.aif rename to sound/direct_sound_samples/cries/sceptile.aif diff --git a/sound/direct_sound_samples/cry_scizor.aif b/sound/direct_sound_samples/cries/scizor.aif similarity index 100% rename from sound/direct_sound_samples/cry_scizor.aif rename to sound/direct_sound_samples/cries/scizor.aif diff --git a/sound/direct_sound_samples/cry_scyther.aif b/sound/direct_sound_samples/cries/scyther.aif similarity index 100% rename from sound/direct_sound_samples/cry_scyther.aif rename to sound/direct_sound_samples/cries/scyther.aif diff --git a/sound/direct_sound_samples/cry_seadra.aif b/sound/direct_sound_samples/cries/seadra.aif similarity index 100% rename from sound/direct_sound_samples/cry_seadra.aif rename to sound/direct_sound_samples/cries/seadra.aif diff --git a/sound/direct_sound_samples/cry_seaking.aif b/sound/direct_sound_samples/cries/seaking.aif similarity index 100% rename from sound/direct_sound_samples/cry_seaking.aif rename to sound/direct_sound_samples/cries/seaking.aif diff --git a/sound/direct_sound_samples/cry_sealeo.aif b/sound/direct_sound_samples/cries/sealeo.aif similarity index 100% rename from sound/direct_sound_samples/cry_sealeo.aif rename to sound/direct_sound_samples/cries/sealeo.aif diff --git a/sound/direct_sound_samples/cry_seedot.aif b/sound/direct_sound_samples/cries/seedot.aif similarity index 100% rename from sound/direct_sound_samples/cry_seedot.aif rename to sound/direct_sound_samples/cries/seedot.aif diff --git a/sound/direct_sound_samples/cry_seel.aif b/sound/direct_sound_samples/cries/seel.aif similarity index 100% rename from sound/direct_sound_samples/cry_seel.aif rename to sound/direct_sound_samples/cries/seel.aif diff --git a/sound/direct_sound_samples/cry_sentret.aif b/sound/direct_sound_samples/cries/sentret.aif similarity index 100% rename from sound/direct_sound_samples/cry_sentret.aif rename to sound/direct_sound_samples/cries/sentret.aif diff --git a/sound/direct_sound_samples/cry_seviper.aif b/sound/direct_sound_samples/cries/seviper.aif similarity index 100% rename from sound/direct_sound_samples/cry_seviper.aif rename to sound/direct_sound_samples/cries/seviper.aif diff --git a/sound/direct_sound_samples/cry_sharpedo.aif b/sound/direct_sound_samples/cries/sharpedo.aif similarity index 100% rename from sound/direct_sound_samples/cry_sharpedo.aif rename to sound/direct_sound_samples/cries/sharpedo.aif diff --git a/sound/direct_sound_samples/cry_shedinja.aif b/sound/direct_sound_samples/cries/shedinja.aif similarity index 100% rename from sound/direct_sound_samples/cry_shedinja.aif rename to sound/direct_sound_samples/cries/shedinja.aif diff --git a/sound/direct_sound_samples/cry_shelgon.aif b/sound/direct_sound_samples/cries/shelgon.aif similarity index 100% rename from sound/direct_sound_samples/cry_shelgon.aif rename to sound/direct_sound_samples/cries/shelgon.aif diff --git a/sound/direct_sound_samples/cry_shellder.aif b/sound/direct_sound_samples/cries/shellder.aif similarity index 100% rename from sound/direct_sound_samples/cry_shellder.aif rename to sound/direct_sound_samples/cries/shellder.aif diff --git a/sound/direct_sound_samples/cry_shiftry.aif b/sound/direct_sound_samples/cries/shiftry.aif similarity index 100% rename from sound/direct_sound_samples/cry_shiftry.aif rename to sound/direct_sound_samples/cries/shiftry.aif diff --git a/sound/direct_sound_samples/cry_shroomish.aif b/sound/direct_sound_samples/cries/shroomish.aif similarity index 100% rename from sound/direct_sound_samples/cry_shroomish.aif rename to sound/direct_sound_samples/cries/shroomish.aif diff --git a/sound/direct_sound_samples/cry_shuckle.aif b/sound/direct_sound_samples/cries/shuckle.aif similarity index 100% rename from sound/direct_sound_samples/cry_shuckle.aif rename to sound/direct_sound_samples/cries/shuckle.aif diff --git a/sound/direct_sound_samples/cry_shuppet.aif b/sound/direct_sound_samples/cries/shuppet.aif similarity index 100% rename from sound/direct_sound_samples/cry_shuppet.aif rename to sound/direct_sound_samples/cries/shuppet.aif diff --git a/sound/direct_sound_samples/cry_silcoon.aif b/sound/direct_sound_samples/cries/silcoon.aif similarity index 100% rename from sound/direct_sound_samples/cry_silcoon.aif rename to sound/direct_sound_samples/cries/silcoon.aif diff --git a/sound/direct_sound_samples/cry_skarmory.aif b/sound/direct_sound_samples/cries/skarmory.aif similarity index 100% rename from sound/direct_sound_samples/cry_skarmory.aif rename to sound/direct_sound_samples/cries/skarmory.aif diff --git a/sound/direct_sound_samples/cry_skiploom.aif b/sound/direct_sound_samples/cries/skiploom.aif similarity index 100% rename from sound/direct_sound_samples/cry_skiploom.aif rename to sound/direct_sound_samples/cries/skiploom.aif diff --git a/sound/direct_sound_samples/cry_skitty.aif b/sound/direct_sound_samples/cries/skitty.aif similarity index 100% rename from sound/direct_sound_samples/cry_skitty.aif rename to sound/direct_sound_samples/cries/skitty.aif diff --git a/sound/direct_sound_samples/cry_slaking.aif b/sound/direct_sound_samples/cries/slaking.aif similarity index 100% rename from sound/direct_sound_samples/cry_slaking.aif rename to sound/direct_sound_samples/cries/slaking.aif diff --git a/sound/direct_sound_samples/cry_slakoth.aif b/sound/direct_sound_samples/cries/slakoth.aif similarity index 100% rename from sound/direct_sound_samples/cry_slakoth.aif rename to sound/direct_sound_samples/cries/slakoth.aif diff --git a/sound/direct_sound_samples/cry_slowbro.aif b/sound/direct_sound_samples/cries/slowbro.aif similarity index 100% rename from sound/direct_sound_samples/cry_slowbro.aif rename to sound/direct_sound_samples/cries/slowbro.aif diff --git a/sound/direct_sound_samples/cry_slowking.aif b/sound/direct_sound_samples/cries/slowking.aif similarity index 100% rename from sound/direct_sound_samples/cry_slowking.aif rename to sound/direct_sound_samples/cries/slowking.aif diff --git a/sound/direct_sound_samples/cry_slowpoke.aif b/sound/direct_sound_samples/cries/slowpoke.aif similarity index 100% rename from sound/direct_sound_samples/cry_slowpoke.aif rename to sound/direct_sound_samples/cries/slowpoke.aif diff --git a/sound/direct_sound_samples/cry_slugma.aif b/sound/direct_sound_samples/cries/slugma.aif similarity index 100% rename from sound/direct_sound_samples/cry_slugma.aif rename to sound/direct_sound_samples/cries/slugma.aif diff --git a/sound/direct_sound_samples/cry_smeargle.aif b/sound/direct_sound_samples/cries/smeargle.aif similarity index 100% rename from sound/direct_sound_samples/cry_smeargle.aif rename to sound/direct_sound_samples/cries/smeargle.aif diff --git a/sound/direct_sound_samples/cry_smoochum.aif b/sound/direct_sound_samples/cries/smoochum.aif similarity index 100% rename from sound/direct_sound_samples/cry_smoochum.aif rename to sound/direct_sound_samples/cries/smoochum.aif diff --git a/sound/direct_sound_samples/cry_sneasel.aif b/sound/direct_sound_samples/cries/sneasel.aif similarity index 100% rename from sound/direct_sound_samples/cry_sneasel.aif rename to sound/direct_sound_samples/cries/sneasel.aif diff --git a/sound/direct_sound_samples/cry_snorlax.aif b/sound/direct_sound_samples/cries/snorlax.aif similarity index 100% rename from sound/direct_sound_samples/cry_snorlax.aif rename to sound/direct_sound_samples/cries/snorlax.aif diff --git a/sound/direct_sound_samples/cry_snorunt.aif b/sound/direct_sound_samples/cries/snorunt.aif similarity index 100% rename from sound/direct_sound_samples/cry_snorunt.aif rename to sound/direct_sound_samples/cries/snorunt.aif diff --git a/sound/direct_sound_samples/cry_snubbull.aif b/sound/direct_sound_samples/cries/snubbull.aif similarity index 100% rename from sound/direct_sound_samples/cry_snubbull.aif rename to sound/direct_sound_samples/cries/snubbull.aif diff --git a/sound/direct_sound_samples/cry_solrock.aif b/sound/direct_sound_samples/cries/solrock.aif similarity index 100% rename from sound/direct_sound_samples/cry_solrock.aif rename to sound/direct_sound_samples/cries/solrock.aif diff --git a/sound/direct_sound_samples/cry_spearow.aif b/sound/direct_sound_samples/cries/spearow.aif similarity index 100% rename from sound/direct_sound_samples/cry_spearow.aif rename to sound/direct_sound_samples/cries/spearow.aif diff --git a/sound/direct_sound_samples/cry_spheal.aif b/sound/direct_sound_samples/cries/spheal.aif similarity index 100% rename from sound/direct_sound_samples/cry_spheal.aif rename to sound/direct_sound_samples/cries/spheal.aif diff --git a/sound/direct_sound_samples/cry_spinarak.aif b/sound/direct_sound_samples/cries/spinarak.aif similarity index 100% rename from sound/direct_sound_samples/cry_spinarak.aif rename to sound/direct_sound_samples/cries/spinarak.aif diff --git a/sound/direct_sound_samples/cry_spinda.aif b/sound/direct_sound_samples/cries/spinda.aif similarity index 100% rename from sound/direct_sound_samples/cry_spinda.aif rename to sound/direct_sound_samples/cries/spinda.aif diff --git a/sound/direct_sound_samples/cry_spoink.aif b/sound/direct_sound_samples/cries/spoink.aif similarity index 100% rename from sound/direct_sound_samples/cry_spoink.aif rename to sound/direct_sound_samples/cries/spoink.aif diff --git a/sound/direct_sound_samples/cry_squirtle.aif b/sound/direct_sound_samples/cries/squirtle.aif similarity index 100% rename from sound/direct_sound_samples/cry_squirtle.aif rename to sound/direct_sound_samples/cries/squirtle.aif diff --git a/sound/direct_sound_samples/cry_stantler.aif b/sound/direct_sound_samples/cries/stantler.aif similarity index 100% rename from sound/direct_sound_samples/cry_stantler.aif rename to sound/direct_sound_samples/cries/stantler.aif diff --git a/sound/direct_sound_samples/cry_starmie.aif b/sound/direct_sound_samples/cries/starmie.aif similarity index 100% rename from sound/direct_sound_samples/cry_starmie.aif rename to sound/direct_sound_samples/cries/starmie.aif diff --git a/sound/direct_sound_samples/cry_staryu.aif b/sound/direct_sound_samples/cries/staryu.aif similarity index 100% rename from sound/direct_sound_samples/cry_staryu.aif rename to sound/direct_sound_samples/cries/staryu.aif diff --git a/sound/direct_sound_samples/cry_steelix.aif b/sound/direct_sound_samples/cries/steelix.aif similarity index 100% rename from sound/direct_sound_samples/cry_steelix.aif rename to sound/direct_sound_samples/cries/steelix.aif diff --git a/sound/direct_sound_samples/cry_sudowoodo.aif b/sound/direct_sound_samples/cries/sudowoodo.aif similarity index 100% rename from sound/direct_sound_samples/cry_sudowoodo.aif rename to sound/direct_sound_samples/cries/sudowoodo.aif diff --git a/sound/direct_sound_samples/cry_suicune.aif b/sound/direct_sound_samples/cries/suicune.aif similarity index 100% rename from sound/direct_sound_samples/cry_suicune.aif rename to sound/direct_sound_samples/cries/suicune.aif diff --git a/sound/direct_sound_samples/cry_sunflora.aif b/sound/direct_sound_samples/cries/sunflora.aif similarity index 100% rename from sound/direct_sound_samples/cry_sunflora.aif rename to sound/direct_sound_samples/cries/sunflora.aif diff --git a/sound/direct_sound_samples/cry_sunkern.aif b/sound/direct_sound_samples/cries/sunkern.aif similarity index 100% rename from sound/direct_sound_samples/cry_sunkern.aif rename to sound/direct_sound_samples/cries/sunkern.aif diff --git a/sound/direct_sound_samples/cry_surskit.aif b/sound/direct_sound_samples/cries/surskit.aif similarity index 100% rename from sound/direct_sound_samples/cry_surskit.aif rename to sound/direct_sound_samples/cries/surskit.aif diff --git a/sound/direct_sound_samples/cry_swablu.aif b/sound/direct_sound_samples/cries/swablu.aif similarity index 100% rename from sound/direct_sound_samples/cry_swablu.aif rename to sound/direct_sound_samples/cries/swablu.aif diff --git a/sound/direct_sound_samples/cry_swalot.aif b/sound/direct_sound_samples/cries/swalot.aif similarity index 100% rename from sound/direct_sound_samples/cry_swalot.aif rename to sound/direct_sound_samples/cries/swalot.aif diff --git a/sound/direct_sound_samples/cry_swampert.aif b/sound/direct_sound_samples/cries/swampert.aif similarity index 100% rename from sound/direct_sound_samples/cry_swampert.aif rename to sound/direct_sound_samples/cries/swampert.aif diff --git a/sound/direct_sound_samples/cry_swellow.aif b/sound/direct_sound_samples/cries/swellow.aif similarity index 100% rename from sound/direct_sound_samples/cry_swellow.aif rename to sound/direct_sound_samples/cries/swellow.aif diff --git a/sound/direct_sound_samples/cry_swinub.aif b/sound/direct_sound_samples/cries/swinub.aif similarity index 100% rename from sound/direct_sound_samples/cry_swinub.aif rename to sound/direct_sound_samples/cries/swinub.aif diff --git a/sound/direct_sound_samples/cry_taillow.aif b/sound/direct_sound_samples/cries/taillow.aif similarity index 100% rename from sound/direct_sound_samples/cry_taillow.aif rename to sound/direct_sound_samples/cries/taillow.aif diff --git a/sound/direct_sound_samples/cry_tangela.aif b/sound/direct_sound_samples/cries/tangela.aif similarity index 100% rename from sound/direct_sound_samples/cry_tangela.aif rename to sound/direct_sound_samples/cries/tangela.aif diff --git a/sound/direct_sound_samples/cry_tauros.aif b/sound/direct_sound_samples/cries/tauros.aif similarity index 100% rename from sound/direct_sound_samples/cry_tauros.aif rename to sound/direct_sound_samples/cries/tauros.aif diff --git a/sound/direct_sound_samples/cry_teddiursa.aif b/sound/direct_sound_samples/cries/teddiursa.aif similarity index 100% rename from sound/direct_sound_samples/cry_teddiursa.aif rename to sound/direct_sound_samples/cries/teddiursa.aif diff --git a/sound/direct_sound_samples/cry_tentacool.aif b/sound/direct_sound_samples/cries/tentacool.aif similarity index 100% rename from sound/direct_sound_samples/cry_tentacool.aif rename to sound/direct_sound_samples/cries/tentacool.aif diff --git a/sound/direct_sound_samples/cry_tentacruel.aif b/sound/direct_sound_samples/cries/tentacruel.aif similarity index 100% rename from sound/direct_sound_samples/cry_tentacruel.aif rename to sound/direct_sound_samples/cries/tentacruel.aif diff --git a/sound/direct_sound_samples/cry_togepi.aif b/sound/direct_sound_samples/cries/togepi.aif similarity index 100% rename from sound/direct_sound_samples/cry_togepi.aif rename to sound/direct_sound_samples/cries/togepi.aif diff --git a/sound/direct_sound_samples/cry_togetic.aif b/sound/direct_sound_samples/cries/togetic.aif similarity index 100% rename from sound/direct_sound_samples/cry_togetic.aif rename to sound/direct_sound_samples/cries/togetic.aif diff --git a/sound/direct_sound_samples/cry_torchic.aif b/sound/direct_sound_samples/cries/torchic.aif similarity index 100% rename from sound/direct_sound_samples/cry_torchic.aif rename to sound/direct_sound_samples/cries/torchic.aif diff --git a/sound/direct_sound_samples/cry_torkoal.aif b/sound/direct_sound_samples/cries/torkoal.aif similarity index 100% rename from sound/direct_sound_samples/cry_torkoal.aif rename to sound/direct_sound_samples/cries/torkoal.aif diff --git a/sound/direct_sound_samples/cry_totodile.aif b/sound/direct_sound_samples/cries/totodile.aif similarity index 100% rename from sound/direct_sound_samples/cry_totodile.aif rename to sound/direct_sound_samples/cries/totodile.aif diff --git a/sound/direct_sound_samples/cry_trapinch.aif b/sound/direct_sound_samples/cries/trapinch.aif similarity index 100% rename from sound/direct_sound_samples/cry_trapinch.aif rename to sound/direct_sound_samples/cries/trapinch.aif diff --git a/sound/direct_sound_samples/cry_treecko.aif b/sound/direct_sound_samples/cries/treecko.aif similarity index 100% rename from sound/direct_sound_samples/cry_treecko.aif rename to sound/direct_sound_samples/cries/treecko.aif diff --git a/sound/direct_sound_samples/cry_tropius.aif b/sound/direct_sound_samples/cries/tropius.aif similarity index 100% rename from sound/direct_sound_samples/cry_tropius.aif rename to sound/direct_sound_samples/cries/tropius.aif diff --git a/sound/direct_sound_samples/cry_typhlosion.aif b/sound/direct_sound_samples/cries/typhlosion.aif similarity index 100% rename from sound/direct_sound_samples/cry_typhlosion.aif rename to sound/direct_sound_samples/cries/typhlosion.aif diff --git a/sound/direct_sound_samples/cry_tyranitar.aif b/sound/direct_sound_samples/cries/tyranitar.aif similarity index 100% rename from sound/direct_sound_samples/cry_tyranitar.aif rename to sound/direct_sound_samples/cries/tyranitar.aif diff --git a/sound/direct_sound_samples/cry_tyrogue.aif b/sound/direct_sound_samples/cries/tyrogue.aif similarity index 100% rename from sound/direct_sound_samples/cry_tyrogue.aif rename to sound/direct_sound_samples/cries/tyrogue.aif diff --git a/sound/direct_sound_samples/cry_umbreon.aif b/sound/direct_sound_samples/cries/umbreon.aif similarity index 100% rename from sound/direct_sound_samples/cry_umbreon.aif rename to sound/direct_sound_samples/cries/umbreon.aif diff --git a/sound/direct_sound_samples/cry_unown.aif b/sound/direct_sound_samples/cries/unown.aif similarity index 100% rename from sound/direct_sound_samples/cry_unown.aif rename to sound/direct_sound_samples/cries/unown.aif diff --git a/sound/direct_sound_samples/cry_unused_265.aif b/sound/direct_sound_samples/cries/unused_265.aif similarity index 100% rename from sound/direct_sound_samples/cry_unused_265.aif rename to sound/direct_sound_samples/cries/unused_265.aif diff --git a/sound/direct_sound_samples/cry_unused_268.aif b/sound/direct_sound_samples/cries/unused_268.aif similarity index 100% rename from sound/direct_sound_samples/cry_unused_268.aif rename to sound/direct_sound_samples/cries/unused_268.aif diff --git a/sound/direct_sound_samples/cry_ursaring.aif b/sound/direct_sound_samples/cries/ursaring.aif similarity index 100% rename from sound/direct_sound_samples/cry_ursaring.aif rename to sound/direct_sound_samples/cries/ursaring.aif diff --git a/sound/direct_sound_samples/cry_vaporeon.aif b/sound/direct_sound_samples/cries/vaporeon.aif similarity index 100% rename from sound/direct_sound_samples/cry_vaporeon.aif rename to sound/direct_sound_samples/cries/vaporeon.aif diff --git a/sound/direct_sound_samples/cry_venomoth.aif b/sound/direct_sound_samples/cries/venomoth.aif similarity index 100% rename from sound/direct_sound_samples/cry_venomoth.aif rename to sound/direct_sound_samples/cries/venomoth.aif diff --git a/sound/direct_sound_samples/cry_venonat.aif b/sound/direct_sound_samples/cries/venonat.aif similarity index 100% rename from sound/direct_sound_samples/cry_venonat.aif rename to sound/direct_sound_samples/cries/venonat.aif diff --git a/sound/direct_sound_samples/cry_venusaur.aif b/sound/direct_sound_samples/cries/venusaur.aif similarity index 100% rename from sound/direct_sound_samples/cry_venusaur.aif rename to sound/direct_sound_samples/cries/venusaur.aif diff --git a/sound/direct_sound_samples/cry_vibrava.aif b/sound/direct_sound_samples/cries/vibrava.aif similarity index 100% rename from sound/direct_sound_samples/cry_vibrava.aif rename to sound/direct_sound_samples/cries/vibrava.aif diff --git a/sound/direct_sound_samples/cry_victreebel.aif b/sound/direct_sound_samples/cries/victreebel.aif similarity index 100% rename from sound/direct_sound_samples/cry_victreebel.aif rename to sound/direct_sound_samples/cries/victreebel.aif diff --git a/sound/direct_sound_samples/cry_vigoroth.aif b/sound/direct_sound_samples/cries/vigoroth.aif similarity index 100% rename from sound/direct_sound_samples/cry_vigoroth.aif rename to sound/direct_sound_samples/cries/vigoroth.aif diff --git a/sound/direct_sound_samples/cry_vileplume.aif b/sound/direct_sound_samples/cries/vileplume.aif similarity index 100% rename from sound/direct_sound_samples/cry_vileplume.aif rename to sound/direct_sound_samples/cries/vileplume.aif diff --git a/sound/direct_sound_samples/cry_volbeat.aif b/sound/direct_sound_samples/cries/volbeat.aif similarity index 100% rename from sound/direct_sound_samples/cry_volbeat.aif rename to sound/direct_sound_samples/cries/volbeat.aif diff --git a/sound/direct_sound_samples/cry_voltorb.aif b/sound/direct_sound_samples/cries/voltorb.aif similarity index 100% rename from sound/direct_sound_samples/cry_voltorb.aif rename to sound/direct_sound_samples/cries/voltorb.aif diff --git a/sound/direct_sound_samples/cry_vulpix.aif b/sound/direct_sound_samples/cries/vulpix.aif similarity index 100% rename from sound/direct_sound_samples/cry_vulpix.aif rename to sound/direct_sound_samples/cries/vulpix.aif diff --git a/sound/direct_sound_samples/cry_wailmer.aif b/sound/direct_sound_samples/cries/wailmer.aif similarity index 100% rename from sound/direct_sound_samples/cry_wailmer.aif rename to sound/direct_sound_samples/cries/wailmer.aif diff --git a/sound/direct_sound_samples/cry_wailord.aif b/sound/direct_sound_samples/cries/wailord.aif similarity index 100% rename from sound/direct_sound_samples/cry_wailord.aif rename to sound/direct_sound_samples/cries/wailord.aif diff --git a/sound/direct_sound_samples/cry_walrein.aif b/sound/direct_sound_samples/cries/walrein.aif similarity index 100% rename from sound/direct_sound_samples/cry_walrein.aif rename to sound/direct_sound_samples/cries/walrein.aif diff --git a/sound/direct_sound_samples/cry_wartortle.aif b/sound/direct_sound_samples/cries/wartortle.aif similarity index 100% rename from sound/direct_sound_samples/cry_wartortle.aif rename to sound/direct_sound_samples/cries/wartortle.aif diff --git a/sound/direct_sound_samples/cry_weedle.aif b/sound/direct_sound_samples/cries/weedle.aif similarity index 100% rename from sound/direct_sound_samples/cry_weedle.aif rename to sound/direct_sound_samples/cries/weedle.aif diff --git a/sound/direct_sound_samples/cry_weepinbell.aif b/sound/direct_sound_samples/cries/weepinbell.aif similarity index 100% rename from sound/direct_sound_samples/cry_weepinbell.aif rename to sound/direct_sound_samples/cries/weepinbell.aif diff --git a/sound/direct_sound_samples/cry_weezing.aif b/sound/direct_sound_samples/cries/weezing.aif similarity index 100% rename from sound/direct_sound_samples/cry_weezing.aif rename to sound/direct_sound_samples/cries/weezing.aif diff --git a/sound/direct_sound_samples/cry_whiscash.aif b/sound/direct_sound_samples/cries/whiscash.aif similarity index 100% rename from sound/direct_sound_samples/cry_whiscash.aif rename to sound/direct_sound_samples/cries/whiscash.aif diff --git a/sound/direct_sound_samples/cry_whismur.aif b/sound/direct_sound_samples/cries/whismur.aif similarity index 100% rename from sound/direct_sound_samples/cry_whismur.aif rename to sound/direct_sound_samples/cries/whismur.aif diff --git a/sound/direct_sound_samples/cry_wigglytuff.aif b/sound/direct_sound_samples/cries/wigglytuff.aif similarity index 100% rename from sound/direct_sound_samples/cry_wigglytuff.aif rename to sound/direct_sound_samples/cries/wigglytuff.aif diff --git a/sound/direct_sound_samples/cry_wingull.aif b/sound/direct_sound_samples/cries/wingull.aif similarity index 100% rename from sound/direct_sound_samples/cry_wingull.aif rename to sound/direct_sound_samples/cries/wingull.aif diff --git a/sound/direct_sound_samples/cry_wobbuffet.aif b/sound/direct_sound_samples/cries/wobbuffet.aif similarity index 100% rename from sound/direct_sound_samples/cry_wobbuffet.aif rename to sound/direct_sound_samples/cries/wobbuffet.aif diff --git a/sound/direct_sound_samples/cry_wooper.aif b/sound/direct_sound_samples/cries/wooper.aif similarity index 100% rename from sound/direct_sound_samples/cry_wooper.aif rename to sound/direct_sound_samples/cries/wooper.aif diff --git a/sound/direct_sound_samples/cry_wurmple.aif b/sound/direct_sound_samples/cries/wurmple.aif similarity index 100% rename from sound/direct_sound_samples/cry_wurmple.aif rename to sound/direct_sound_samples/cries/wurmple.aif diff --git a/sound/direct_sound_samples/cry_wynaut.aif b/sound/direct_sound_samples/cries/wynaut.aif similarity index 100% rename from sound/direct_sound_samples/cry_wynaut.aif rename to sound/direct_sound_samples/cries/wynaut.aif diff --git a/sound/direct_sound_samples/cry_xatu.aif b/sound/direct_sound_samples/cries/xatu.aif similarity index 100% rename from sound/direct_sound_samples/cry_xatu.aif rename to sound/direct_sound_samples/cries/xatu.aif diff --git a/sound/direct_sound_samples/cry_yanma.aif b/sound/direct_sound_samples/cries/yanma.aif similarity index 100% rename from sound/direct_sound_samples/cry_yanma.aif rename to sound/direct_sound_samples/cries/yanma.aif diff --git a/sound/direct_sound_samples/cry_zangoose.aif b/sound/direct_sound_samples/cries/zangoose.aif similarity index 100% rename from sound/direct_sound_samples/cry_zangoose.aif rename to sound/direct_sound_samples/cries/zangoose.aif diff --git a/sound/direct_sound_samples/cry_zapdos.aif b/sound/direct_sound_samples/cries/zapdos.aif similarity index 100% rename from sound/direct_sound_samples/cry_zapdos.aif rename to sound/direct_sound_samples/cries/zapdos.aif diff --git a/sound/direct_sound_samples/cry_zigzagoon.aif b/sound/direct_sound_samples/cries/zigzagoon.aif similarity index 100% rename from sound/direct_sound_samples/cry_zigzagoon.aif rename to sound/direct_sound_samples/cries/zigzagoon.aif diff --git a/sound/direct_sound_samples/cry_zubat.aif b/sound/direct_sound_samples/cries/zubat.aif similarity index 100% rename from sound/direct_sound_samples/cry_zubat.aif rename to sound/direct_sound_samples/cries/zubat.aif diff --git a/sound/direct_sound_samples/cry_none.aif b/sound/direct_sound_samples/cry_none.aif deleted file mode 100644 index 44bb79c3c..000000000 Binary files a/sound/direct_sound_samples/cry_none.aif and /dev/null differ diff --git a/sound/voice_groups.inc b/sound/voice_groups.inc index 00bb2cbb0..3eb050e7c 100644 --- a/sound/voice_groups.inc +++ b/sound/voice_groups.inc @@ -993,785 +993,7 @@ voicegroup128:: voice_square_1 60, 0, 0, 2, 0, 0, 15, 0 voice_noise_alt 60, 0, 0, 0, 1, 12, 0 -gCryTable:: - cry Cry_Bulbasaur - cry Cry_Ivysaur - cry Cry_Venusaur - cry Cry_Charmander - cry Cry_Charmeleon - cry Cry_Charizard - cry Cry_Squirtle - cry Cry_Wartortle - cry Cry_Blastoise - cry Cry_Caterpie - cry Cry_Metapod - cry Cry_Butterfree - cry Cry_Weedle - cry Cry_Kakuna - cry Cry_Beedrill - cry Cry_Pidgey - cry Cry_Pidgeotto - cry Cry_Pidgeot - cry Cry_Rattata - cry Cry_Raticate - cry Cry_Spearow - cry Cry_Fearow - cry Cry_Ekans - cry Cry_Arbok - cry Cry_Pikachu - cry Cry_Raichu - cry Cry_Sandshrew - cry Cry_Sandslash - cry Cry_NidoranF - cry Cry_Nidorina - cry Cry_Nidoqueen - cry Cry_NidoranM - cry Cry_Nidorino - cry Cry_Nidoking - cry Cry_Clefairy - cry Cry_Clefable - cry Cry_Vulpix - cry Cry_Ninetales - cry Cry_Jigglypuff - cry Cry_Wigglytuff - cry Cry_Zubat - cry Cry_Golbat - cry Cry_Oddish - cry Cry_Gloom - cry Cry_Vileplume - cry Cry_Paras - cry Cry_Parasect - cry Cry_Venonat - cry Cry_Venomoth - cry Cry_Diglett - cry Cry_Dugtrio - cry Cry_Meowth - cry Cry_Persian - cry Cry_Psyduck - cry Cry_Golduck - cry Cry_Mankey - cry Cry_Primeape - cry Cry_Growlithe - cry Cry_Arcanine - cry Cry_Poliwag - cry Cry_Poliwhirl - cry Cry_Poliwrath - cry Cry_Abra - cry Cry_Kadabra - cry Cry_Alakazam - cry Cry_Machop - cry Cry_Machoke - cry Cry_Machamp - cry Cry_Bellsprout - cry Cry_Weepinbell - cry Cry_Victreebel - cry Cry_Tentacool - cry Cry_Tentacruel - cry Cry_Geodude - cry Cry_Graveler - cry Cry_Golem - cry Cry_Ponyta - cry Cry_Rapidash - cry Cry_Slowpoke - cry Cry_Slowbro - cry Cry_Magnemite - cry Cry_Magneton - cry Cry_Farfetchd - cry Cry_Doduo - cry Cry_Dodrio - cry Cry_Seel - cry Cry_Dewgong - cry Cry_Grimer - cry Cry_Muk - cry Cry_Shellder - cry Cry_Cloyster - cry Cry_Gastly - cry Cry_Haunter - cry Cry_Gengar - cry Cry_Onix - cry Cry_Drowzee - cry Cry_Hypno - cry Cry_Krabby - cry Cry_Kingler - cry Cry_Voltorb - cry Cry_Electrode - cry Cry_Exeggcute - cry Cry_Exeggutor - cry Cry_Cubone - cry Cry_Marowak - cry Cry_Hitmonlee - cry Cry_Hitmonchan - cry Cry_Lickitung - cry Cry_Koffing - cry Cry_Weezing - cry Cry_Rhyhorn - cry Cry_Rhydon - cry Cry_Chansey - cry Cry_Tangela - cry Cry_Kangaskhan - cry Cry_Horsea - cry Cry_Seadra - cry Cry_Goldeen - cry Cry_Seaking - cry Cry_Staryu - cry Cry_Starmie - cry Cry_MrMime - cry Cry_Scyther - cry Cry_Jynx - cry Cry_Electabuzz - cry Cry_Magmar - cry Cry_Pinsir - cry Cry_Tauros - cry Cry_Magikarp - cry Cry_Gyarados - cry Cry_Lapras - cry Cry_Ditto - cry Cry_Eevee - cry Cry_Vaporeon - cry Cry_Jolteon - cry Cry_Flareon - cry Cry_Porygon - cry Cry_Omanyte - cry Cry_Omastar - cry Cry_Kabuto - cry Cry_Kabutops - cry Cry_Aerodactyl - cry Cry_Snorlax - cry Cry_Articuno - cry Cry_Zapdos - cry Cry_Moltres - cry Cry_Dratini - cry Cry_Dragonair - cry Cry_Dragonite - cry Cry_Mewtwo - cry Cry_Mew - cry Cry_Chikorita - cry Cry_Bayleef - cry Cry_Meganium - cry Cry_Cyndaquil - cry Cry_Quilava - cry Cry_Typhlosion - cry Cry_Totodile - cry Cry_Croconaw - cry Cry_Feraligatr - cry Cry_Sentret - cry Cry_Furret - cry Cry_Hoothoot - cry Cry_Noctowl - cry Cry_Ledyba - cry Cry_Ledian - cry Cry_Spinarak - cry Cry_Ariados - cry Cry_Crobat - cry Cry_Chinchou - cry Cry_Lanturn - cry Cry_Pichu - cry Cry_Cleffa - cry Cry_Igglybuff - cry Cry_Togepi - cry Cry_Togetic - cry Cry_Natu - cry Cry_Xatu - cry Cry_Mareep - cry Cry_Flaaffy - cry Cry_Ampharos - cry Cry_Bellossom - cry Cry_Marill - cry Cry_Azumarill - cry Cry_Sudowoodo - cry Cry_Politoed - cry Cry_Hoppip - cry Cry_Skiploom - cry Cry_Jumpluff - cry Cry_Aipom - cry Cry_Sunkern - cry Cry_Sunflora - cry Cry_Yanma - cry Cry_Wooper - cry Cry_Quagsire - cry Cry_Espeon - cry Cry_Umbreon - cry Cry_Murkrow - cry Cry_Slowking - cry Cry_Misdreavus - cry Cry_Unown - cry Cry_Wobbuffet - cry Cry_Girafarig - cry Cry_Pineco - cry Cry_Forretress - cry Cry_Dunsparce - cry Cry_Gligar - cry Cry_Steelix - cry Cry_Snubbull - cry Cry_Granbull - cry Cry_Qwilfish - cry Cry_Scizor - cry Cry_Shuckle - cry Cry_Heracross - cry Cry_Sneasel - cry Cry_Teddiursa - cry Cry_Ursaring - cry Cry_Slugma - cry Cry_Magcargo - cry Cry_Swinub - cry Cry_Piloswine - cry Cry_Corsola - cry Cry_Remoraid - cry Cry_Octillery - cry Cry_Delibird - cry Cry_Mantine - cry Cry_Skarmory - cry Cry_Houndour - cry Cry_Houndoom - cry Cry_Kingdra - cry Cry_Phanpy - cry Cry_Donphan - cry Cry_Porygon2 - cry Cry_Stantler - cry Cry_Smeargle - cry Cry_Tyrogue - cry Cry_Hitmontop - cry Cry_Smoochum - cry Cry_Elekid - cry Cry_Magby - cry Cry_Miltank - cry Cry_Blissey - cry Cry_Raikou - cry Cry_Entei - cry Cry_Suicune - cry Cry_Larvitar - cry Cry_Pupitar - cry Cry_Tyranitar - cry Cry_Lugia - cry Cry_HoOh - cry Cry_Celebi - cry Cry_Kecleon - cry Cry_Roselia - cry Cry_Torkoal - cry Cry_Electrike - cry Cry_Manectric - cry Cry_Duskull - cry Cry_Latias - cry Cry_Wynaut - cry Cry_Seviper - cry Cry_Sharpedo - cry Cry_Zangoose - cry Cry_Azurill - cry Cry_Swablu - cry Cry_Altaria - cry Cry_Unused265 - cry Cry_Taillow - cry Cry_Swellow - cry Cry_Unused268 - cry Cry_Spinda - cry Cry_Torchic - cry Cry_Combusken - cry Cry_Blaziken - cry Cry_Treecko - cry Cry_Grovyle - cry Cry_Sceptile - cry Cry_Mudkip - cry Cry_Marshtomp - cry Cry_Swampert - cry Cry_Pelipper - cry Cry_Wingull - cry Cry_Banette - cry Cry_Shuppet - cry Cry_Lotad - cry Cry_Lombre - cry Cry_Ludicolo - cry Cry_Seedot - cry Cry_Nuzleaf - cry Cry_Shiftry - cry Cry_Carvanha - cry Cry_Wurmple - cry Cry_Silcoon - cry Cry_Beautifly - cry Cry_Cascoon - cry Cry_Dustox - cry Cry_Ralts - cry Cry_Kirlia - cry Cry_Gardevoir - cry Cry_Slakoth - cry Cry_Vigoroth - cry Cry_Slaking - cry Cry_Nincada - cry Cry_Ninjask - cry Cry_Shedinja - cry Cry_Makuhita - cry Cry_Hariyama - cry Cry_Nosepass - cry Cry_Glalie - cry Cry_Plusle - cry Cry_Minun - cry Cry_Surskit - cry Cry_Masquerain - cry Cry_Skitty - cry Cry_Delcatty - cry Cry_Gulpin - cry Cry_Swalot - cry Cry_Numel - cry Cry_Camerupt - cry Cry_Barboach - cry Cry_Whiscash - cry Cry_Corphish - cry Cry_Crawdaunt - cry Cry_Spoink - cry Cry_Grumpig - cry Cry_Trapinch - cry Cry_Vibrava - cry Cry_Flygon - cry Cry_Cacnea - cry Cry_Cacturne - cry Cry_Baltoy - cry Cry_Claydol - cry Cry_Lunatone - cry Cry_Solrock - cry Cry_Feebas - cry Cry_Milotic - cry Cry_Absol - cry Cry_Meditite - cry Cry_Medicham - cry Cry_Spheal - cry Cry_Sealeo - cry Cry_Walrein - cry Cry_Clamperl - cry Cry_Huntail - cry Cry_Gorebyss - cry Cry_Lileep - cry Cry_Cradily - cry Cry_Anorith - cry Cry_Armaldo - cry Cry_Beldum - cry Cry_Metang - cry Cry_Metagross - cry Cry_Bagon - cry Cry_Shelgon - cry Cry_Regirock - cry Cry_Regice - cry Cry_Registeel - cry Cry_Castform - cry Cry_Volbeat - cry Cry_Illumise - cry Cry_Poochyena - cry Cry_Mightyena - cry Cry_Dusclops - cry Cry_Sableye - cry Cry_Mawile - cry Cry_Aron - cry Cry_Lairon - cry Cry_Aggron - cry Cry_Relicanth - cry Cry_Luvdisc - cry Cry_Groudon - cry Cry_Kyogre - cry Cry_Rayquaza - cry Cry_Salamence - cry Cry_Breloom - cry Cry_Shroomish - cry Cry_Linoone - cry Cry_Tropius - cry Cry_Wailmer - cry Cry_Zigzagoon - cry Cry_Exploud - cry Cry_Loudred - cry Cry_Wailord - cry Cry_Whismur - cry Cry_Snorunt - cry Cry_Latios - cry Cry_Jirachi - cry Cry_Deoxys - cry Cry_Chimecho - -gCryTable_Reverse:: - cry_reverse Cry_Bulbasaur - cry_reverse Cry_Ivysaur - cry_reverse Cry_Venusaur - cry_reverse Cry_Charmander - cry_reverse Cry_Charmeleon - cry_reverse Cry_Charizard - cry_reverse Cry_Squirtle - cry_reverse Cry_Wartortle - cry_reverse Cry_Blastoise - cry_reverse Cry_Caterpie - cry_reverse Cry_Metapod - cry_reverse Cry_Butterfree - cry_reverse Cry_Weedle - cry_reverse Cry_Kakuna - cry_reverse Cry_Beedrill - cry_reverse Cry_Pidgey - cry_reverse Cry_Pidgeotto - cry_reverse Cry_Pidgeot - cry_reverse Cry_Rattata - cry_reverse Cry_Raticate - cry_reverse Cry_Spearow - cry_reverse Cry_Fearow - cry_reverse Cry_Ekans - cry_reverse Cry_Arbok - cry_reverse Cry_Pikachu - cry_reverse Cry_Raichu - cry_reverse Cry_Sandshrew - cry_reverse Cry_Sandslash - cry_reverse Cry_NidoranF - cry_reverse Cry_Nidorina - cry_reverse Cry_Nidoqueen - cry_reverse Cry_NidoranM - cry_reverse Cry_Nidorino - cry_reverse Cry_Nidoking - cry_reverse Cry_Clefairy - cry_reverse Cry_Clefable - cry_reverse Cry_Vulpix - cry_reverse Cry_Ninetales - cry_reverse Cry_Jigglypuff - cry_reverse Cry_Wigglytuff - cry_reverse Cry_Zubat - cry_reverse Cry_Golbat - cry_reverse Cry_Oddish - cry_reverse Cry_Gloom - cry_reverse Cry_Vileplume - cry_reverse Cry_Paras - cry_reverse Cry_Parasect - cry_reverse Cry_Venonat - cry_reverse Cry_Venomoth - cry_reverse Cry_Diglett - cry_reverse Cry_Dugtrio - cry_reverse Cry_Meowth - cry_reverse Cry_Persian - cry_reverse Cry_Psyduck - cry_reverse Cry_Golduck - cry_reverse Cry_Mankey - cry_reverse Cry_Primeape - cry_reverse Cry_Growlithe - cry_reverse Cry_Arcanine - cry_reverse Cry_Poliwag - cry_reverse Cry_Poliwhirl - cry_reverse Cry_Poliwrath - cry_reverse Cry_Abra - cry_reverse Cry_Kadabra - cry_reverse Cry_Alakazam - cry_reverse Cry_Machop - cry_reverse Cry_Machoke - cry_reverse Cry_Machamp - cry_reverse Cry_Bellsprout - cry_reverse Cry_Weepinbell - cry_reverse Cry_Victreebel - cry_reverse Cry_Tentacool - cry_reverse Cry_Tentacruel - cry_reverse Cry_Geodude - cry_reverse Cry_Graveler - cry_reverse Cry_Golem - cry_reverse Cry_Ponyta - cry_reverse Cry_Rapidash - cry_reverse Cry_Slowpoke - cry_reverse Cry_Slowbro - cry_reverse Cry_Magnemite - cry_reverse Cry_Magneton - cry_reverse Cry_Farfetchd - cry_reverse Cry_Doduo - cry_reverse Cry_Dodrio - cry_reverse Cry_Seel - cry_reverse Cry_Dewgong - cry_reverse Cry_Grimer - cry_reverse Cry_Muk - cry_reverse Cry_Shellder - cry_reverse Cry_Cloyster - cry_reverse Cry_Gastly - cry_reverse Cry_Haunter - cry_reverse Cry_Gengar - cry_reverse Cry_Onix - cry_reverse Cry_Drowzee - cry_reverse Cry_Hypno - cry_reverse Cry_Krabby - cry_reverse Cry_Kingler - cry_reverse Cry_Voltorb - cry_reverse Cry_Electrode - cry_reverse Cry_Exeggcute - cry_reverse Cry_Exeggutor - cry_reverse Cry_Cubone - cry_reverse Cry_Marowak - cry_reverse Cry_Hitmonlee - cry_reverse Cry_Hitmonchan - cry_reverse Cry_Lickitung - cry_reverse Cry_Koffing - cry_reverse Cry_Weezing - cry_reverse Cry_Rhyhorn - cry_reverse Cry_Rhydon - cry_reverse Cry_Chansey - cry_reverse Cry_Tangela - cry_reverse Cry_Kangaskhan - cry_reverse Cry_Horsea - cry_reverse Cry_Seadra - cry_reverse Cry_Goldeen - cry_reverse Cry_Seaking - cry_reverse Cry_Staryu - cry_reverse Cry_Starmie - cry_reverse Cry_MrMime - cry_reverse Cry_Scyther - cry_reverse Cry_Jynx - cry_reverse Cry_Electabuzz - cry_reverse Cry_Magmar - cry_reverse Cry_Pinsir - cry_reverse Cry_Tauros - cry_reverse Cry_Magikarp - cry_reverse Cry_Gyarados - cry_reverse Cry_Lapras - cry_reverse Cry_Ditto - cry_reverse Cry_Eevee - cry_reverse Cry_Vaporeon - cry_reverse Cry_Jolteon - cry_reverse Cry_Flareon - cry_reverse Cry_Porygon - cry_reverse Cry_Omanyte - cry_reverse Cry_Omastar - cry_reverse Cry_Kabuto - cry_reverse Cry_Kabutops - cry_reverse Cry_Aerodactyl - cry_reverse Cry_Snorlax - cry_reverse Cry_Articuno - cry_reverse Cry_Zapdos - cry_reverse Cry_Moltres - cry_reverse Cry_Dratini - cry_reverse Cry_Dragonair - cry_reverse Cry_Dragonite - cry_reverse Cry_Mewtwo - cry_reverse Cry_Mew - cry_reverse Cry_Chikorita - cry_reverse Cry_Bayleef - cry_reverse Cry_Meganium - cry_reverse Cry_Cyndaquil - cry_reverse Cry_Quilava - cry_reverse Cry_Typhlosion - cry_reverse Cry_Totodile - cry_reverse Cry_Croconaw - cry_reverse Cry_Feraligatr - cry_reverse Cry_Sentret - cry_reverse Cry_Furret - cry_reverse Cry_Hoothoot - cry_reverse Cry_Noctowl - cry_reverse Cry_Ledyba - cry_reverse Cry_Ledian - cry_reverse Cry_Spinarak - cry_reverse Cry_Ariados - cry_reverse Cry_Crobat - cry_reverse Cry_Chinchou - cry_reverse Cry_Lanturn - cry_reverse Cry_Pichu - cry_reverse Cry_Cleffa - cry_reverse Cry_Igglybuff - cry_reverse Cry_Togepi - cry_reverse Cry_Togetic - cry_reverse Cry_Natu - cry_reverse Cry_Xatu - cry_reverse Cry_Mareep - cry_reverse Cry_Flaaffy - cry_reverse Cry_Ampharos - cry_reverse Cry_Bellossom - cry_reverse Cry_Marill - cry_reverse Cry_Azumarill - cry_reverse Cry_Sudowoodo - cry_reverse Cry_Politoed - cry_reverse Cry_Hoppip - cry_reverse Cry_Skiploom - cry_reverse Cry_Jumpluff - cry_reverse Cry_Aipom - cry_reverse Cry_Sunkern - cry_reverse Cry_Sunflora - cry_reverse Cry_Yanma - cry_reverse Cry_Wooper - cry_reverse Cry_Quagsire - cry_reverse Cry_Espeon - cry_reverse Cry_Umbreon - cry_reverse Cry_Murkrow - cry_reverse Cry_Slowking - cry_reverse Cry_Misdreavus - cry_reverse Cry_Unown - cry_reverse Cry_Wobbuffet - cry_reverse Cry_Girafarig - cry_reverse Cry_Pineco - cry_reverse Cry_Forretress - cry_reverse Cry_Dunsparce - cry_reverse Cry_Gligar - cry_reverse Cry_Steelix - cry_reverse Cry_Snubbull - cry_reverse Cry_Granbull - cry_reverse Cry_Qwilfish - cry_reverse Cry_Scizor - cry_reverse Cry_Shuckle - cry_reverse Cry_Heracross - cry_reverse Cry_Sneasel - cry_reverse Cry_Teddiursa - cry_reverse Cry_Ursaring - cry_reverse Cry_Slugma - cry_reverse Cry_Magcargo - cry_reverse Cry_Swinub - cry_reverse Cry_Piloswine - cry_reverse Cry_Corsola - cry_reverse Cry_Remoraid - cry_reverse Cry_Octillery - cry_reverse Cry_Delibird - cry_reverse Cry_Mantine - cry_reverse Cry_Skarmory - cry_reverse Cry_Houndour - cry_reverse Cry_Houndoom - cry_reverse Cry_Kingdra - cry_reverse Cry_Phanpy - cry_reverse Cry_Donphan - cry_reverse Cry_Porygon2 - cry_reverse Cry_Stantler - cry_reverse Cry_Smeargle - cry_reverse Cry_Tyrogue - cry_reverse Cry_Hitmontop - cry_reverse Cry_Smoochum - cry_reverse Cry_Elekid - cry_reverse Cry_Magby - cry_reverse Cry_Miltank - cry_reverse Cry_Blissey - cry_reverse Cry_Raikou - cry_reverse Cry_Entei - cry_reverse Cry_Suicune - cry_reverse Cry_Larvitar - cry_reverse Cry_Pupitar - cry_reverse Cry_Tyranitar - cry_reverse Cry_Lugia - cry_reverse Cry_HoOh - cry_reverse Cry_Celebi - cry_reverse Cry_Kecleon - cry_reverse Cry_Roselia - cry_reverse Cry_Torkoal - cry_reverse Cry_Electrike - cry_reverse Cry_Manectric - cry_reverse Cry_Duskull - cry_reverse Cry_Latias - cry_reverse Cry_Wynaut - cry_reverse Cry_Seviper - cry_reverse Cry_Sharpedo - cry_reverse Cry_Zangoose - cry_reverse Cry_Azurill - cry_reverse Cry_Swablu - cry_reverse Cry_Altaria - cry_reverse Cry_Unused265 - cry_reverse Cry_Taillow - cry_reverse Cry_Swellow - cry_reverse Cry_Unused268 - cry_reverse Cry_Spinda - cry_reverse Cry_Torchic - cry_reverse Cry_Combusken - cry_reverse Cry_Blaziken - cry_reverse Cry_Treecko - cry_reverse Cry_Grovyle - cry_reverse Cry_Sceptile - cry_reverse Cry_Mudkip - cry_reverse Cry_Marshtomp - cry_reverse Cry_Swampert - cry_reverse Cry_Pelipper - cry_reverse Cry_Wingull - cry_reverse Cry_Banette - cry_reverse Cry_Shuppet - cry_reverse Cry_Lotad - cry_reverse Cry_Lombre - cry_reverse Cry_Ludicolo - cry_reverse Cry_Seedot - cry_reverse Cry_Nuzleaf - cry_reverse Cry_Shiftry - cry_reverse Cry_Carvanha - cry_reverse Cry_Wurmple - cry_reverse Cry_Silcoon - cry_reverse Cry_Beautifly - cry_reverse Cry_Cascoon - cry_reverse Cry_Dustox - cry_reverse Cry_Ralts - cry_reverse Cry_Kirlia - cry_reverse Cry_Gardevoir - cry_reverse Cry_Slakoth - cry_reverse Cry_Vigoroth - cry_reverse Cry_Slaking - cry_reverse Cry_Nincada - cry_reverse Cry_Ninjask - cry_reverse Cry_Shedinja - cry_reverse Cry_Makuhita - cry_reverse Cry_Hariyama - cry_reverse Cry_Nosepass - cry_reverse Cry_Glalie - cry_reverse Cry_Plusle - cry_reverse Cry_Minun - cry_reverse Cry_Surskit - cry_reverse Cry_Masquerain - cry_reverse Cry_Skitty - cry_reverse Cry_Delcatty - cry_reverse Cry_Gulpin - cry_reverse Cry_Swalot - cry_reverse Cry_Numel - cry_reverse Cry_Camerupt - cry_reverse Cry_Barboach - cry_reverse Cry_Whiscash - cry_reverse Cry_Corphish - cry_reverse Cry_Crawdaunt - cry_reverse Cry_Spoink - cry_reverse Cry_Grumpig - cry_reverse Cry_Trapinch - cry_reverse Cry_Vibrava - cry_reverse Cry_Flygon - cry_reverse Cry_Cacnea - cry_reverse Cry_Cacturne - cry_reverse Cry_Baltoy - cry_reverse Cry_Claydol - cry_reverse Cry_Lunatone - cry_reverse Cry_Solrock - cry_reverse Cry_Feebas - cry_reverse Cry_Milotic - cry_reverse Cry_Absol - cry_reverse Cry_Meditite - cry_reverse Cry_Medicham - cry_reverse Cry_Spheal - cry_reverse Cry_Sealeo - cry_reverse Cry_Walrein - cry_reverse Cry_Clamperl - cry_reverse Cry_Huntail - cry_reverse Cry_Gorebyss - cry_reverse Cry_Lileep - cry_reverse Cry_Cradily - cry_reverse Cry_Anorith - cry_reverse Cry_Armaldo - cry_reverse Cry_Beldum - cry_reverse Cry_Metang - cry_reverse Cry_Metagross - cry_reverse Cry_Bagon - cry_reverse Cry_Shelgon - cry_reverse Cry_Regirock - cry_reverse Cry_Regice - cry_reverse Cry_Registeel - cry_reverse Cry_Castform - cry_reverse Cry_Volbeat - cry_reverse Cry_Illumise - cry_reverse Cry_Poochyena - cry_reverse Cry_Mightyena - cry_reverse Cry_Dusclops - cry_reverse Cry_Sableye - cry_reverse Cry_Mawile - cry_reverse Cry_Aron - cry_reverse Cry_Lairon - cry_reverse Cry_Aggron - cry_reverse Cry_Relicanth - cry_reverse Cry_Luvdisc - cry_reverse Cry_Groudon - cry_reverse Cry_Kyogre - cry_reverse Cry_Rayquaza - cry_reverse Cry_Salamence - cry_reverse Cry_Breloom - cry_reverse Cry_Shroomish - cry_reverse Cry_Linoone - cry_reverse Cry_Tropius - cry_reverse Cry_Wailmer - cry_reverse Cry_Zigzagoon - cry_reverse Cry_Exploud - cry_reverse Cry_Loudred - cry_reverse Cry_Wailord - cry_reverse Cry_Whismur - cry_reverse Cry_Snorunt - cry_reverse Cry_Latios - cry_reverse Cry_Jirachi - cry_reverse Cry_Deoxys - cry_reverse Cry_Chimecho +.include "sound/cry_tables.inc" .align 2 voicegroup129:: diff --git a/src/bag.c b/src/bag.c index 416e007d3..c2e8f869a 100644 --- a/src/bag.c +++ b/src/bag.c @@ -189,7 +189,7 @@ static const struct WindowTemplate sWindowTemplates[] = { } }; -static const u8 sUnused_8453174[] = {16, 8, 4}; +static const u8 sUnused[] = {16, 8, 4}; static EWRAM_DATA u8 sOpenWindows[11] = {}; @@ -202,9 +202,9 @@ void InitBagWindows(void) else InitWindows(sDefaultBagWindowsDeposit); DeactivateAllTextPrinters(); - TextWindow_SetUserSelectedFrame(0, 0x64, 0xE0); - TextWindow_LoadResourcesStdFrame0(0, 0x6D, 0xD0); - TextWindow_SetStdFrame0_WithPal(0, 0x81, 0xC0); + LoadUserWindowGfx(0, 0x64, 0xE0); + LoadMenuMessageWindowGfx(0, 0x6D, 0xD0); + LoadStdWindowGfx(0, 0x81, 0xC0); LoadPalette(sBagWindowPalF, 0xF0, 0x20); for (i = 0; i < 3; i++) { diff --git a/src/battle_ai_script_commands.c b/src/battle_ai_script_commands.c index eaa203a54..253f03c02 100644 --- a/src/battle_ai_script_commands.c +++ b/src/battle_ai_script_commands.c @@ -269,7 +269,7 @@ void BattleAI_HandleItemUseBeforeAISetup(void) // Items are allowed to use in ONLY trainer battles. if ((gBattleTypeFlags & BATTLE_TYPE_TRAINER) - && (gTrainerBattleOpponent_A != SECRET_BASE_OPPONENT) + && (gTrainerBattleOpponent_A != TRAINER_SECRET_BASE) && !(gBattleTypeFlags & (BATTLE_TYPE_TRAINER_TOWER | BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_SAFARI | BATTLE_TYPE_LINK)) ) { @@ -339,7 +339,7 @@ void BattleAI_SetupAIData(void) AI_THINKING_STRUCT->aiFlags = AI_SCRIPT_ROAMING; return; } - else if (!(gBattleTypeFlags & (BATTLE_TYPE_TRAINER_TOWER | BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_BATTLE_TOWER)) && (gTrainerBattleOpponent_A != SECRET_BASE_OPPONENT)) + else if (!(gBattleTypeFlags & (BATTLE_TYPE_TRAINER_TOWER | BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_BATTLE_TOWER)) && (gTrainerBattleOpponent_A != TRAINER_SECRET_BASE)) { if (gBattleTypeFlags & BATTLE_TYPE_WILD_SCRIPTED) { @@ -1714,13 +1714,13 @@ static void Cmd_if_random_safari_flee(void) { u8 safariFleeRate; - if (gBattleStruct->safariGoNearCounter) + if (gBattleStruct->safariRockThrowCounter) { safariFleeRate = gBattleStruct->safariEscapeFactor * 2; if (safariFleeRate > 20) safariFleeRate = 20; } - else if (gBattleStruct->safariPkblThrowCounter != 0) + else if (gBattleStruct->safariBaitThrowCounter != 0) { safariFleeRate = gBattleStruct->safariEscapeFactor / 4; if (safariFleeRate == 0) diff --git a/src/battle_anim.c b/src/battle_anim.c index 3b466329c..50f8fe703 100644 --- a/src/battle_anim.c +++ b/src/battle_anim.c @@ -11,9 +11,13 @@ #include "task.h" #include "constants/battle_anim.h" +/* + This file handles the commands for the macros defined in + battle_anim_script.inc and used in battle_anim_scripts.s +*/ + #define ANIM_SPRITE_INDEX_COUNT 8 -// RAM EWRAM_DATA static const u8 *sBattleAnimScriptPtr = NULL; EWRAM_DATA static const u8 *sBattleAnimScriptRetAddr = NULL; EWRAM_DATA void (*gAnimScriptCallback)(void) = NULL; @@ -32,1755 +36,129 @@ EWRAM_DATA static u16 sSoundAnimFramesToWait = 0; EWRAM_DATA static u8 sMonAnimTaskIdArray[2] = {0}; EWRAM_DATA u8 gAnimMoveTurn = 0; EWRAM_DATA static u8 sAnimBackgroundFadeState = 0; -EWRAM_DATA static u16 sAnimMoveIndex = 0; +EWRAM_DATA static u16 sAnimMoveIndex = 0; // Set but unused. EWRAM_DATA u8 gBattleAnimAttacker = 0; EWRAM_DATA u8 gBattleAnimTarget = 0; EWRAM_DATA u16 gAnimBattlerSpecies[MAX_BATTLERS_COUNT] = {0}; -EWRAM_DATA u8 gUnknown_2037F24 = 0; +EWRAM_DATA u8 gAnimCustomPanning = 0; -// Function Declarations static void AddSpriteIndex(u16 index); static void ClearSpriteIndex(u16 index); static void WaitAnimFrameCount(void); static void RunAnimScriptCommand(void); -static void sub_8073558(u8 taskId); +static void Task_ClearMonBgStatic(u8 taskId); static void Task_FadeToBg(u8 taskId); static void Task_PanFromInitialToTarget(u8 taskId); -static void task_pA_ma0A_obj_to_bg_pal(u8 taskId); +static void Task_InitUpdateMonBg(u8 taskId); static void LoadMoveBg(u16 bgId); static void LoadDefaultBg(void); static void Task_LoopAndPlaySE(u8 taskId); static void Task_WaitAndPlaySE(u8 taskId); -static void sub_807331C(u8 taskId); - -static void ScriptCmd_loadspritegfx(void); -static void ScriptCmd_unloadspritegfx(void); -static void ScriptCmd_createsprite(void); -static void ScriptCmd_createvisualtask(void); -static void ScriptCmd_delay(void); -static void ScriptCmd_waitforvisualfinish(void); -static void ScriptCmd_hang1(void); -static void ScriptCmd_hang2(void); -static void ScriptCmd_end(void); -static void ScriptCmd_playse(void); -static void ScriptCmd_monbg(void); -static void ScriptCmd_clearmonbg(void); -static void ScriptCmd_setalpha(void); -static void ScriptCmd_blendoff(void); -static void ScriptCmd_call(void); -static void ScriptCmd_return(void); -static void ScriptCmd_setarg(void); -static void ScriptCmd_choosetwoturnanim(void); -static void ScriptCmd_jumpifmoveturn(void); -static void ScriptCmd_goto(void); -static void ScriptCmd_fadetobg(void); -static void ScriptCmd_restorebg(void); -static void ScriptCmd_waitbgfadeout(void); -static void ScriptCmd_waitbgfadein(void); -static void ScriptCmd_changebg(void); -static void ScriptCmd_playsewithpan(void); -static void ScriptCmd_setpan(void); -static void ScriptCmd_panse_1B(void); -static void ScriptCmd_loopsewithpan(void); -static void ScriptCmd_waitplaysewithpan(void); -static void ScriptCmd_setbldcnt(void); -static void ScriptCmd_createsoundtask(void); -static void ScriptCmd_waitsound(void); -static void ScriptCmd_jumpargeq(void); -static void ScriptCmd_monbg_22(void); -static void ScriptCmd_clearmonbg_23(void); -static void ScriptCmd_jumpifcontest(void); -static void ScriptCmd_fadetobgfromset(void); -static void ScriptCmd_panse_26(void); -static void ScriptCmd_panse_27(void); -static void ScriptCmd_monbgprio_28(void); -static void ScriptCmd_monbgprio_29(void); -static void ScriptCmd_monbgprio_2A(void); -static void ScriptCmd_invisible(void); -static void ScriptCmd_visible(void); -static void ScriptCmd_doublebattle_2D(void); -static void ScriptCmd_doublebattle_2E(void); -static void ScriptCmd_stopsound(void); - -// Data -const struct OamData gOamData_AffineOff_ObjNormal_8x8 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_OFF, - .objMode = ST_OAM_OBJ_NORMAL, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(8x8), - .x = 0, - .size = SPRITE_SIZE(8x8), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineOff_ObjNormal_16x16 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_OFF, - .objMode = ST_OAM_OBJ_NORMAL, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(16x16), - .x = 0, - .size = SPRITE_SIZE(16x16), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineOff_ObjNormal_32x32 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_OFF, - .objMode = ST_OAM_OBJ_NORMAL, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(32x32), - .x = 0, - .size = SPRITE_SIZE(32x32), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineOff_ObjNormal_64x64 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_OFF, - .objMode = ST_OAM_OBJ_NORMAL, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(64x64), - .x = 0, - .size = SPRITE_SIZE(64x64), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineOff_ObjNormal_16x8 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_OFF, - .objMode = ST_OAM_OBJ_NORMAL, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(16x8), - .x = 0, - .size = SPRITE_SIZE(16x8), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineOff_ObjNormal_32x8 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_OFF, - .objMode = ST_OAM_OBJ_NORMAL, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(32x8), - .x = 0, - .size = SPRITE_SIZE(32x8), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineOff_ObjNormal_32x16 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_OFF, - .objMode = ST_OAM_OBJ_NORMAL, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(32x16), - .x = 0, - .size = SPRITE_SIZE(32x16), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineOff_ObjNormal_64x32 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_OFF, - .objMode = ST_OAM_OBJ_NORMAL, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(64x32), - .x = 0, - .size = SPRITE_SIZE(64x32), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineOff_ObjNormal_8x16 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_OFF, - .objMode = ST_OAM_OBJ_NORMAL, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(8x16), - .x = 0, - .size = SPRITE_SIZE(8x16), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineOff_ObjNormal_8x32 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_OFF, - .objMode = ST_OAM_OBJ_NORMAL, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(8x32), - .x = 0, - .size = SPRITE_SIZE(8x32), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineOff_ObjNormal_16x32 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_OFF, - .objMode = ST_OAM_OBJ_NORMAL, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(16x32), - .x = 0, - .size = SPRITE_SIZE(16x32), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineOff_ObjNormal_32x64 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_OFF, - .objMode = ST_OAM_OBJ_NORMAL, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(32x64), - .x = 0, - .size = SPRITE_SIZE(32x64), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineNormal_ObjNormal_8x8 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_NORMAL, - .objMode = ST_OAM_OBJ_NORMAL, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(8x8), - .x = 0, - .size = SPRITE_SIZE(8x8), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineNormal_ObjNormal_16x16 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_NORMAL, - .objMode = ST_OAM_OBJ_NORMAL, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(16x16), - .x = 0, - .size = SPRITE_SIZE(16x16), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineNormal_ObjNormal_32x32 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_NORMAL, - .objMode = ST_OAM_OBJ_NORMAL, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(32x32), - .x = 0, - .size = SPRITE_SIZE(32x32), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineNormal_ObjNormal_64x64 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_NORMAL, - .objMode = ST_OAM_OBJ_NORMAL, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(64x64), - .x = 0, - .size = SPRITE_SIZE(64x64), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineNormal_ObjNormal_16x8 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_NORMAL, - .objMode = ST_OAM_OBJ_NORMAL, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(16x8), - .x = 0, - .size = SPRITE_SIZE(16x8), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineNormal_ObjNormal_32x8 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_NORMAL, - .objMode = ST_OAM_OBJ_NORMAL, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(32x8), - .x = 0, - .size = SPRITE_SIZE(32x8), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineNormal_ObjNormal_32x16 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_NORMAL, - .objMode = ST_OAM_OBJ_NORMAL, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(32x16), - .x = 0, - .size = SPRITE_SIZE(32x16), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineNormal_ObjNormal_64x32 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_NORMAL, - .objMode = ST_OAM_OBJ_NORMAL, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(64x32), - .x = 0, - .size = SPRITE_SIZE(64x32), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineNormal_ObjNormal_8x16 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_NORMAL, - .objMode = ST_OAM_OBJ_NORMAL, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(8x16), - .x = 0, - .size = SPRITE_SIZE(8x16), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineNormal_ObjNormal_8x32 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_NORMAL, - .objMode = ST_OAM_OBJ_NORMAL, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(8x32), - .x = 0, - .size = SPRITE_SIZE(8x32), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineNormal_ObjNormal_16x32 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_NORMAL, - .objMode = ST_OAM_OBJ_NORMAL, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(16x32), - .x = 0, - .size = SPRITE_SIZE(16x32), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineNormal_ObjNormal_32x64 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_NORMAL, - .objMode = ST_OAM_OBJ_NORMAL, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(32x64), - .x = 0, - .size = SPRITE_SIZE(32x64), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineDouble_ObjNormal_8x8 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_DOUBLE, - .objMode = ST_OAM_OBJ_NORMAL, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(8x8), - .x = 0, - .size = SPRITE_SIZE(8x8), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineDouble_ObjNormal_16x16 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_DOUBLE, - .objMode = ST_OAM_OBJ_NORMAL, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(16x16), - .x = 0, - .size = SPRITE_SIZE(16x16), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineDouble_ObjNormal_32x32 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_DOUBLE, - .objMode = ST_OAM_OBJ_NORMAL, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(32x32), - .x = 0, - .size = SPRITE_SIZE(32x32), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineDouble_ObjNormal_64x64 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_DOUBLE, - .objMode = ST_OAM_OBJ_NORMAL, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(64x64), - .x = 0, - .size = SPRITE_SIZE(64x64), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineDouble_ObjNormal_16x8 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_DOUBLE, - .objMode = ST_OAM_OBJ_NORMAL, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(16x8), - .x = 0, - .size = SPRITE_SIZE(16x8), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineDouble_ObjNormal_32x8 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_DOUBLE, - .objMode = ST_OAM_OBJ_NORMAL, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(32x8), - .x = 0, - .size = SPRITE_SIZE(32x8), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineDouble_ObjNormal_32x16 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_DOUBLE, - .objMode = ST_OAM_OBJ_NORMAL, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(32x16), - .x = 0, - .size = SPRITE_SIZE(32x16), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineDouble_ObjNormal_64x32 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_DOUBLE, - .objMode = ST_OAM_OBJ_NORMAL, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(64x32), - .x = 0, - .size = SPRITE_SIZE(64x32), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineDouble_ObjNormal_8x16 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_DOUBLE, - .objMode = ST_OAM_OBJ_NORMAL, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(8x16), - .x = 0, - .size = SPRITE_SIZE(8x16), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineDouble_ObjNormal_8x32 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_DOUBLE, - .objMode = ST_OAM_OBJ_NORMAL, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(8x32), - .x = 0, - .size = SPRITE_SIZE(8x32), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineDouble_ObjNormal_16x32 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_DOUBLE, - .objMode = ST_OAM_OBJ_NORMAL, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(16x32), - .x = 0, - .size = SPRITE_SIZE(16x32), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineDouble_ObjNormal_32x64 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_DOUBLE, - .objMode = ST_OAM_OBJ_NORMAL, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(32x64), - .x = 0, - .size = SPRITE_SIZE(32x64), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineOff_ObjBlend_8x8 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_OFF, - .objMode = ST_OAM_OBJ_BLEND, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(8x8), - .x = 0, - .size = SPRITE_SIZE(8x8), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineOff_ObjBlend_16x16 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_OFF, - .objMode = ST_OAM_OBJ_BLEND, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(16x16), - .x = 0, - .size = SPRITE_SIZE(16x16), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineOff_ObjBlend_32x32 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_OFF, - .objMode = ST_OAM_OBJ_BLEND, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(32x32), - .x = 0, - .size = SPRITE_SIZE(32x32), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineOff_ObjBlend_64x64 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_OFF, - .objMode = ST_OAM_OBJ_BLEND, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(64x64), - .x = 0, - .size = SPRITE_SIZE(64x64), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineOff_ObjBlend_16x8 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_OFF, - .objMode = ST_OAM_OBJ_BLEND, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(16x8), - .x = 0, - .size = SPRITE_SIZE(16x8), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineOff_ObjBlend_32x8 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_OFF, - .objMode = ST_OAM_OBJ_BLEND, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(32x8), - .x = 0, - .size = SPRITE_SIZE(32x8), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineOff_ObjBlend_32x16 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_OFF, - .objMode = ST_OAM_OBJ_BLEND, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(32x16), - .x = 0, - .size = SPRITE_SIZE(32x16), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineOff_ObjBlend_64x32 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_OFF, - .objMode = ST_OAM_OBJ_BLEND, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(64x32), - .x = 0, - .size = SPRITE_SIZE(64x32), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineOff_ObjBlend_8x16 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_OFF, - .objMode = ST_OAM_OBJ_BLEND, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(8x16), - .x = 0, - .size = SPRITE_SIZE(8x16), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineOff_ObjBlend_8x32 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_OFF, - .objMode = ST_OAM_OBJ_BLEND, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(8x32), - .x = 0, - .size = SPRITE_SIZE(8x32), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineOff_ObjBlend_16x32 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_OFF, - .objMode = ST_OAM_OBJ_BLEND, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(16x32), - .x = 0, - .size = SPRITE_SIZE(16x32), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineOff_ObjBlend_32x64 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_OFF, - .objMode = ST_OAM_OBJ_BLEND, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(32x64), - .x = 0, - .size = SPRITE_SIZE(32x64), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineNormal_ObjBlend_8x8 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_NORMAL, - .objMode = ST_OAM_OBJ_BLEND, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(8x8), - .x = 0, - .size = SPRITE_SIZE(8x8), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineNormal_ObjBlend_16x16 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_NORMAL, - .objMode = ST_OAM_OBJ_BLEND, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(16x16), - .x = 0, - .size = SPRITE_SIZE(16x16), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineNormal_ObjBlend_32x32 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_NORMAL, - .objMode = ST_OAM_OBJ_BLEND, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(32x32), - .x = 0, - .size = SPRITE_SIZE(32x32), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineNormal_ObjBlend_64x64 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_NORMAL, - .objMode = ST_OAM_OBJ_BLEND, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(64x64), - .x = 0, - .size = SPRITE_SIZE(64x64), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineNormal_ObjBlend_16x8 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_NORMAL, - .objMode = ST_OAM_OBJ_BLEND, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(16x8), - .x = 0, - .size = SPRITE_SIZE(16x8), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineNormal_ObjBlend_32x8 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_NORMAL, - .objMode = ST_OAM_OBJ_BLEND, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(32x8), - .x = 0, - .size = SPRITE_SIZE(32x8), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineNormal_ObjBlend_32x16 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_NORMAL, - .objMode = ST_OAM_OBJ_BLEND, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(32x16), - .x = 0, - .size = SPRITE_SIZE(32x16), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineNormal_ObjBlend_64x32 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_NORMAL, - .objMode = ST_OAM_OBJ_BLEND, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(64x32), - .x = 0, - .size = SPRITE_SIZE(64x32), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineNormal_ObjBlend_8x16 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_NORMAL, - .objMode = ST_OAM_OBJ_BLEND, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(8x16), - .x = 0, - .size = SPRITE_SIZE(8x16), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineNormal_ObjBlend_8x32 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_NORMAL, - .objMode = ST_OAM_OBJ_BLEND, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(8x32), - .x = 0, - .size = SPRITE_SIZE(8x32), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineNormal_ObjBlend_16x32 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_NORMAL, - .objMode = ST_OAM_OBJ_BLEND, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(16x32), - .x = 0, - .size = SPRITE_SIZE(16x32), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineNormal_ObjBlend_32x64 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_NORMAL, - .objMode = ST_OAM_OBJ_BLEND, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(32x64), - .x = 0, - .size = SPRITE_SIZE(32x64), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineDouble_ObjBlend_8x8 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_DOUBLE, - .objMode = ST_OAM_OBJ_BLEND, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(8x8), - .x = 0, - .size = SPRITE_SIZE(8x8), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineDouble_ObjBlend_16x16 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_DOUBLE, - .objMode = ST_OAM_OBJ_BLEND, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(16x16), - .x = 0, - .size = SPRITE_SIZE(16x16), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineDouble_ObjBlend_32x32 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_DOUBLE, - .objMode = ST_OAM_OBJ_BLEND, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(32x32), - .x = 0, - .size = SPRITE_SIZE(32x32), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineDouble_ObjBlend_64x64 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_DOUBLE, - .objMode = ST_OAM_OBJ_BLEND, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(64x64), - .x = 0, - .size = SPRITE_SIZE(64x64), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineDouble_ObjBlend_16x8 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_DOUBLE, - .objMode = ST_OAM_OBJ_BLEND, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(16x8), - .x = 0, - .size = SPRITE_SIZE(16x8), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineDouble_ObjBlend_32x8 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_DOUBLE, - .objMode = ST_OAM_OBJ_BLEND, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(32x8), - .x = 0, - .size = SPRITE_SIZE(32x8), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineDouble_ObjBlend_32x16 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_DOUBLE, - .objMode = ST_OAM_OBJ_BLEND, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(32x16), - .x = 0, - .size = SPRITE_SIZE(32x16), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineDouble_ObjBlend_64x32 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_DOUBLE, - .objMode = ST_OAM_OBJ_BLEND, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(64x32), - .x = 0, - .size = SPRITE_SIZE(64x32), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineDouble_ObjBlend_8x16 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_DOUBLE, - .objMode = ST_OAM_OBJ_BLEND, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(8x16), - .x = 0, - .size = SPRITE_SIZE(8x16), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineDouble_ObjBlend_8x32 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_DOUBLE, - .objMode = ST_OAM_OBJ_BLEND, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(8x32), - .x = 0, - .size = SPRITE_SIZE(8x32), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineDouble_ObjBlend_16x32 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_DOUBLE, - .objMode = ST_OAM_OBJ_BLEND, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(16x32), - .x = 0, - .size = SPRITE_SIZE(16x32), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct OamData gOamData_AffineDouble_ObjBlend_32x64 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_DOUBLE, - .objMode = ST_OAM_OBJ_BLEND, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(32x64), - .x = 0, - .size = SPRITE_SIZE(32x64), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, -}; - -const struct CompressedSpriteSheet gBattleAnimPicTable[] = -{ - {gBattleAnimSpriteGfx_Bone, 0x0200, ANIM_TAG_BONE}, - {gBattleAnimSpriteGfx_Spark, 0x0300, ANIM_TAG_SPARK}, - {gBattleAnimSpriteGfx_Pencil, 0x0200, ANIM_TAG_PENCIL}, - {gBattleAnimSpriteGfx_AirWave, 0x0100, ANIM_TAG_AIR_WAVE}, - {gBattleAnimSpriteGfx_Orb, 0x0200, ANIM_TAG_ORB}, - {gBattleAnimSpriteGfx_Sword, 0x0400, ANIM_TAG_SWORD}, - {gBattleAnimSpriteGfx_Seed, 0x0180, ANIM_TAG_SEED}, - {gBattleAnimSpriteGfx_Explosion6, 0x0800, ANIM_TAG_EXPLOSION_6}, - {gBattleAnimSpriteGfx_PinkOrb, 0x0020, ANIM_TAG_PINK_ORB}, - {gBattleAnimSpriteGfx_Gust, 0x0400, ANIM_TAG_GUST}, - {gBattleAnimSpriteGfx_IceCube, 0x1200, ANIM_TAG_ICE_CUBE}, - {gBattleAnimSpriteGfx_Spark2, 0x0180, ANIM_TAG_SPARK_2}, - {gBattleAnimSpriteGfx_Orange, 0x0080, ANIM_TAG_ORANGE}, - {gBattleAnimSpriteGfx_YellowBall, 0x0080, ANIM_TAG_YELLOW_BALL}, - {gBattleAnimSpriteGfx_LockOn, 0x0280, ANIM_TAG_LOCK_ON}, - {gBattleAnimSpriteGfx_TiedBag, 0x0080, ANIM_TAG_TIED_BAG}, - {gBattleAnimSpriteGfx_BlackSmoke, 0x0100, ANIM_TAG_BLACK_SMOKE}, - {gBattleAnimSpriteGfx_BlackBall, 0x0020, ANIM_TAG_BLACK_BALL}, - {gBattleAnimSpriteGfx_Conversion, 0x0080, ANIM_TAG_CONVERSION}, - {gBattleAnimSpriteGfx_Glass, 0x0400, ANIM_TAG_GLASS}, - {gBattleAnimSpriteGfx_HornHit, 0x0200, ANIM_TAG_HORN_HIT}, - {gBattleAnimSpriteGfx_Hit, 0x0A00, ANIM_TAG_HIT}, - {gBattleAnimSpriteGfx_Hit, 0x0A00, ANIM_TAG_HIT_2}, - {gBattleAnimSpriteGfx_BlueShards, 0x0380, ANIM_TAG_BLUE_SHARDS}, - {gBattleAnimSpriteGfx_ClosingEye, 0x0300, ANIM_TAG_CLOSING_EYE}, - {gBattleAnimSpriteGfx_WavingHand, 0x0A00, ANIM_TAG_WAVING_HAND}, - {gBattleAnimSpriteGfx_HitDuplicate, 0x0A00, ANIM_TAG_HIT_DUPLICATE}, - {gBattleAnimSpriteGfx_Leer, 0x0A00, ANIM_TAG_LEER}, - {gBattleAnimSpriteGfx_BlueBurst, 0x0A00, ANIM_TAG_BLUE_BURST}, - {gBattleAnimSpriteGfx_SmallEmber, 0x0A00, ANIM_TAG_SMALL_EMBER}, - {gBattleAnimSpriteGfx_GraySmoke, 0x0A00, ANIM_TAG_GRAY_SMOKE}, - {gBattleAnimSpriteGfx_BlueStar, 0x0E00, ANIM_TAG_BLUE_STAR}, - {gBattleAnimSpriteGfx_BubbleBurst, 0x0380, ANIM_TAG_BUBBLE_BURST}, - {gBattleAnimSpriteGfx_Fire, 0x1000, ANIM_TAG_FIRE}, - {gBattleAnimSpriteGfx_SpinningFire, 0x0800, ANIM_TAG_SPINNING_FIRE}, - {gBattleAnimSpriteGfx_FirePlume, 0x0A00, ANIM_TAG_FIRE_PLUME}, - {gBattleAnimSpriteGfx_Lightning2, 0x0800, ANIM_TAG_LIGHTNING_2}, - {gBattleAnimSpriteGfx_Lightning, 0x0A00, ANIM_TAG_LIGHTNING}, - {gBattleAnimSpriteGfx_ClawSlash2, 0x0A00, ANIM_TAG_CLAW_SLASH_2}, - {gBattleAnimSpriteGfx_ClawSlash, 0x0A00, ANIM_TAG_CLAW_SLASH}, - {gBattleAnimSpriteGfx_Scratch3, 0x0A00, ANIM_TAG_SCRATCH_3}, - {gBattleAnimSpriteGfx_Scratch2, 0x0A00, ANIM_TAG_SCRATCH_2}, - {gBattleAnimSpriteGfx_BubbleBurst2, 0x0A00, ANIM_TAG_BUBBLE_BURST_2}, - {gBattleAnimSpriteGfx_IceChunk, 0x0A00, ANIM_TAG_ICE_CHUNK}, - {gBattleAnimSpriteGfx_Glass2, 0x0A00, ANIM_TAG_GLASS_2}, - {gBattleAnimSpriteGfx_PinkHeart2, 0x0A00, ANIM_TAG_PINK_HEART_2}, - {gBattleAnimSpriteGfx_SapDrip, 0x1000, ANIM_TAG_SAP_DRIP}, - {gBattleAnimSpriteGfx_SapDrip, 0x1000, ANIM_TAG_SAP_DRIP_2}, - {gBattleAnimSpriteGfx_Sparkle1, 0x1000, ANIM_TAG_SPARKLE_1}, - {gBattleAnimSpriteGfx_Sparkle1, 0x1000, ANIM_TAG_SPARKLE_2}, - {gBattleAnimSpriteGfx_HumanoidFoot, 0x0200, ANIM_TAG_HUMANOID_FOOT}, - {gBattleAnimSpriteGfx_MonsterFoot, 0x0200, ANIM_TAG_MONSTER_FOOT}, - {gBattleAnimSpriteGfx_HumanoidHand, 0x0200, ANIM_TAG_HUMANOID_HAND}, - {gBattleAnimSpriteGfx_NoiseLine, 0x0800, ANIM_TAG_NOISE_LINE}, - {gBattleAnimSpriteGfx_YellowUnk, 0x0080, ANIM_TAG_YELLOW_UNK}, - {gBattleAnimSpriteGfx_RedFist, 0x0200, ANIM_TAG_RED_FIST}, - {gBattleAnimSpriteGfx_SlamHit, 0x1000, ANIM_TAG_SLAM_HIT}, - {gBattleAnimSpriteGfx_Ring, 0x0180, ANIM_TAG_RING}, - {gBattleAnimSpriteGfx_Rocks, 0x0C00, ANIM_TAG_ROCKS}, - {gBattleAnimSpriteGfx_Z, 0x0100, ANIM_TAG_Z}, - {gBattleAnimSpriteGfx_YellowUnk2, 0x0040, ANIM_TAG_YELLOW_UNK_2}, - {gBattleAnimSpriteGfx_AirSlash, 0x0180, ANIM_TAG_AIR_SLASH}, - {gBattleAnimSpriteGfx_SpinningGreenOrbs, 0x0800, ANIM_TAG_SPINNING_GREEN_ORBS}, - {gBattleAnimSpriteGfx_Leaf, 0x0480, ANIM_TAG_LEAF}, - {gBattleAnimSpriteGfx_Finger, 0x0200, ANIM_TAG_FINGER}, - {gBattleAnimSpriteGfx_PoisonPowder, 0x0200, ANIM_TAG_POISON_POWDER}, - {gBattleAnimSpriteGfx_BrownTriangle, 0x0100, ANIM_TAG_BROWN_TRIANGLE}, - {gBattleAnimSpriteGfx_PoisonPowder, 0x0200, ANIM_TAG_SLEEP_POWDER}, - {gBattleAnimSpriteGfx_PoisonPowder, 0x0200, ANIM_TAG_STUN_SPORE}, - {gBattleAnimSpriteGfx_PoisonPowder, 0x0200, ANIM_TAG_POWDER}, - {gBattleAnimSpriteGfx_Sparkle3, 0x0200, ANIM_TAG_SPARKLE_3}, - {gBattleAnimSpriteGfx_Sparkle4, 0x0A00, ANIM_TAG_SPARKLE_4}, - {gBattleAnimSpriteGfx_MusicNotes, 0x0300, ANIM_TAG_MUSIC_NOTES}, - {gBattleAnimSpriteGfx_Duck, 0x0180, ANIM_TAG_DUCK}, - {gBattleAnimSpriteGfx_MudSand, 0x00A0, ANIM_TAG_MUD_SAND}, - {gBattleAnimSpriteGfx_Alert, 0x0700, ANIM_TAG_ALERT}, - {gBattleAnimSpriteGfx_BlueFlames, 0x0400, ANIM_TAG_BLUE_FLAMES}, - {gBattleAnimSpriteGfx_BlueFlames2, 0x0200, ANIM_TAG_BLUE_FLAMES_2}, - {gBattleAnimSpriteGfx_Shock4, 0x0300, ANIM_TAG_SHOCK_4}, - {gBattleAnimSpriteGfx_Shock, 0x0C00, ANIM_TAG_SHOCK}, - {gBattleAnimSpriteGfx_Bell2, 0x0A00, ANIM_TAG_BELL_2}, - {gBattleAnimSpriteGfx_PinkGlove, 0x0080, ANIM_TAG_PINK_GLOVE}, - {gBattleAnimSpriteGfx_BlueLines, 0x0040, ANIM_TAG_BLUE_LINES}, - {gBattleAnimSpriteGfx_Impact3, 0x0E00, ANIM_TAG_IMPACT_3}, - {gBattleAnimSpriteGfx_Impact2, 0x0E00, ANIM_TAG_IMPACT_2}, - {gBattleAnimSpriteGfx_Reticle, 0x0280, ANIM_TAG_RETICLE}, - {gBattleAnimSpriteGfx_Breath, 0x0200, ANIM_TAG_BREATH}, - {gBattleAnimSpriteGfx_Anger, 0x0080, ANIM_TAG_ANGER}, - {gBattleAnimSpriteGfx_Snowball, 0x00C0, ANIM_TAG_SNOWBALL}, - {gBattleAnimSpriteGfx_Vine, 0x0A00, ANIM_TAG_VINE}, - {gBattleAnimSpriteGfx_Sword2, 0x0200, ANIM_TAG_SWORD_2}, - {gBattleAnimSpriteGfx_Clapping, 0x0180, ANIM_TAG_CLAPPING}, - {gBattleAnimSpriteGfx_RedTube, 0x0080, ANIM_TAG_RED_TUBE}, - {gBattleAnimSpriteGfx_Amnesia, 0x1000, ANIM_TAG_AMNESIA}, - {gBattleAnimSpriteGfx_String2, 0x0A00, ANIM_TAG_STRING_2}, - {gBattleAnimSpriteGfx_Pencil2, 0x0180, ANIM_TAG_PENCIL_2}, - {gBattleAnimSpriteGfx_Petal, 0x0380, ANIM_TAG_PETAL}, - {gBattleAnimSpriteGfx_BentSpoon, 0x0C00, ANIM_TAG_BENT_SPOON}, - {gBattleAnimSpriteGfx_Web, 0x0200, ANIM_TAG_WEB}, - {gBattleAnimSpriteGfx_MilkBottle, 0x0200, ANIM_TAG_MILK_BOTTLE}, - {gBattleAnimSpriteGfx_Coin, 0x0200, ANIM_TAG_COIN}, - {gBattleAnimSpriteGfx_CrackedEgg, 0x0200, ANIM_TAG_CRACKED_EGG}, - {gBattleAnimSpriteGfx_HatchedEgg, 0x0400, ANIM_TAG_HATCHED_EGG}, - {gBattleAnimSpriteGfx_FreshEgg, 0x0080, ANIM_TAG_FRESH_EGG}, - {gBattleAnimSpriteGfx_Fangs, 0x0400, ANIM_TAG_FANGS}, - {gBattleAnimSpriteGfx_Explosion2, 0x0c00, ANIM_TAG_EXPLOSION_2}, - {gBattleAnimSpriteGfx_Explosion3, 0x0200, ANIM_TAG_EXPLOSION_3}, - {gBattleAnimSpriteGfx_WaterDroplet, 0x1000, ANIM_TAG_WATER_DROPLET}, - {gBattleAnimSpriteGfx_WaterDroplet2, 0x0a00, ANIM_TAG_WATER_DROPLET_2}, - {gBattleAnimSpriteGfx_Seed2, 0x0020, ANIM_TAG_SEED_2}, - {gBattleAnimSpriteGfx_Sprout, 0x0e00, ANIM_TAG_SPROUT}, - {gBattleAnimSpriteGfx_RedWand, 0x0080, ANIM_TAG_RED_WAND}, - {gBattleAnimSpriteGfx_PurpleGreenUnk, 0x0a00, ANIM_TAG_PURPLE_GREEN_UNK}, - {gBattleAnimSpriteGfx_WaterColumn, 0x0400, ANIM_TAG_WATER_COLUMN}, - {gBattleAnimSpriteGfx_MudUnk, 0x0200, ANIM_TAG_MUD_UNK}, - {gBattleAnimSpriteGfx_RainDrops, 0x0700, ANIM_TAG_RAIN_DROPS}, - {gBattleAnimSpriteGfx_FurySwipes, 0x0800, ANIM_TAG_FURY_SWIPES}, - {gBattleAnimSpriteGfx_Vine2, 0x0a00, ANIM_TAG_VINE_2}, - {gBattleAnimSpriteGfx_Teeth, 0x0600, ANIM_TAG_TEETH}, - {gBattleAnimSpriteGfx_Bone2, 0x0800, ANIM_TAG_BONE_2}, - {gBattleAnimSpriteGfx_WhiteBag, 0x0200, ANIM_TAG_WHITE_BAG}, - {gBattleAnimSpriteGfx_Unknown, 0x0040, ANIM_TAG_UNKNOWN}, - {gBattleAnimSpriteGfx_PurpleCoral, 0x0180, ANIM_TAG_PURPLE_CORAL}, - {gBattleAnimSpriteGfx_PurpleDroplet, 0x0600, ANIM_TAG_PURPLE_DROPLET}, - {gBattleAnimSpriteGfx_Shock2, 0x0600, ANIM_TAG_SHOCK_2}, - {gBattleAnimSpriteGfx_ClosingEye2, 0x0200, ANIM_TAG_CLOSING_EYE_2}, - {gBattleAnimSpriteGfx_MetalBall, 0x0080, ANIM_TAG_METAL_BALL}, - {gBattleAnimSpriteGfx_MonsterDoll, 0x0200, ANIM_TAG_MONSTER_DOLL}, - {gBattleAnimSpriteGfx_Whirlwind, 0x0800, ANIM_TAG_WHIRLWIND}, - {gBattleAnimSpriteGfx_Whirlwind2, 0x0080, ANIM_TAG_WHIRLWIND_2}, - {gBattleAnimSpriteGfx_Explosion4, 0x0a00, ANIM_TAG_EXPLOSION_4}, - {gBattleAnimSpriteGfx_Explosion5, 0x0280, ANIM_TAG_EXPLOSION_5}, - {gBattleAnimSpriteGfx_Tongue, 0x0280, ANIM_TAG_TONGUE}, - {gBattleAnimSpriteGfx_Smoke, 0x0100, ANIM_TAG_SMOKE}, - {gBattleAnimSpriteGfx_Smoke2, 0x0200, ANIM_TAG_SMOKE_2}, - {gBattleAnimSpriteGfx_Impact, 0x0200, ANIM_TAG_IMPACT}, - {gBattleAnimSpriteGfx_CircleImpact, 0x0020, ANIM_TAG_CIRCLE_IMPACT}, - {gBattleAnimSpriteGfx_Scratch, 0x0a00, ANIM_TAG_SCRATCH}, - {gBattleAnimSpriteGfx_Cut, 0x0800, ANIM_TAG_CUT}, - {gBattleAnimSpriteGfx_SharpTeeth, 0x0800, ANIM_TAG_SHARP_TEETH}, - {gBattleAnimSpriteGfx_RainbowRings, 0x00c0, ANIM_TAG_RAINBOW_RINGS}, - {gBattleAnimSpriteGfx_IceCrystals, 0x01c0, ANIM_TAG_ICE_CRYSTALS}, - {gBattleAnimSpriteGfx_IceSpikes, 0x0100, ANIM_TAG_ICE_SPIKES}, - {gBattleAnimSpriteGfx_HandsAndFeet, 0x0800, ANIM_TAG_HANDS_AND_FEET}, - {gBattleAnimSpriteGfx_MistCloud, 0x0200, ANIM_TAG_MIST_CLOUD}, - {gBattleAnimSpriteGfx_Clamp, 0x0800, ANIM_TAG_CLAMP}, - {gBattleAnimSpriteGfx_Bubble, 0x0180, ANIM_TAG_BUBBLE}, - {gBattleAnimSpriteGfx_Orbs, 0x0180, ANIM_TAG_ORBS}, - {gBattleAnimSpriteGfx_WaterImpact, 0x0200, ANIM_TAG_WATER_IMPACT}, - {gBattleAnimSpriteGfx_WaterOrb, 0x0200, ANIM_TAG_WATER_ORB}, - {gBattleAnimSpriteGfx_PoisonBubble, 0x0180, ANIM_TAG_POISON_BUBBLE}, - {gBattleAnimSpriteGfx_ToxicBubble, 0x0400, ANIM_TAG_TOXIC_BUBBLE}, - {gBattleAnimSpriteGfx_Spikes, 0x0080, ANIM_TAG_SPIKES}, - {gBattleAnimSpriteGfx_HornHit2, 0x0100, ANIM_TAG_HORN_HIT_2}, - {gBattleAnimSpriteGfx_AirWave2, 0x0100, ANIM_TAG_AIR_WAVE_2}, - {gBattleAnimSpriteGfx_SmallBubbles, 0x0140, ANIM_TAG_SMALL_BUBBLES}, - {gBattleAnimSpriteGfx_RoundShadow, 0x0800, ANIM_TAG_ROUND_SHADOW}, - {gBattleAnimSpriteGfx_Sunlight, 0x0200, ANIM_TAG_SUNLIGHT}, - {gBattleAnimSpriteGfx_Spore, 0x0100, ANIM_TAG_SPORE}, - {gBattleAnimSpriteGfx_Flower, 0x00a0, ANIM_TAG_FLOWER}, - {gBattleAnimSpriteGfx_RazorLeaf, 0x0100, ANIM_TAG_RAZOR_LEAF}, - {gBattleAnimSpriteGfx_Needle, 0x0080, ANIM_TAG_NEEDLE}, - {gBattleAnimSpriteGfx_WhirlwindLines, 0x0300, ANIM_TAG_WHIRLWIND_LINES}, - {gBattleAnimSpriteGfx_GoldRing, 0x0100, ANIM_TAG_GOLD_RING}, - {gBattleAnimSpriteGfx_GoldRing, 0x0100, ANIM_TAG_PURPLE_RING}, - {gBattleAnimSpriteGfx_GoldRing, 0x0100, ANIM_TAG_BLUE_RING}, - {gBattleAnimSpriteGfx_GreenLightWall, 0x0800, ANIM_TAG_GREEN_LIGHT_WALL}, - {gBattleAnimSpriteGfx_GreenLightWall, 0x0800, ANIM_TAG_BLUE_LIGHT_WALL}, - {gBattleAnimSpriteGfx_GreenLightWall, 0x0800, ANIM_TAG_RED_LIGHT_WALL}, - {gBattleAnimSpriteGfx_GreenLightWall, 0x0800, ANIM_TAG_GRAY_LIGHT_WALL}, - {gBattleAnimSpriteGfx_GreenLightWall, 0x0800, ANIM_TAG_ORANGE_LIGHT_WALL}, - {gBattleAnimSpriteGfx_BlackBall2, 0x0080, ANIM_TAG_BLACK_BALL_2}, - {gBattleAnimSpriteGfx_MistCloud, 0x0200, ANIM_TAG_PURPLE_GAS_CLOUD}, - {gBattleAnimSpriteGfx_SparkH, 0x0200, ANIM_TAG_SPARK_H}, - {gBattleAnimSpriteGfx_YellowStar, 0x0200, ANIM_TAG_YELLOW_STAR}, - {gBattleAnimSpriteGfx_LargeFreshEgg, 0x0080, ANIM_TAG_LARGE_FRESH_EGG}, - {gBattleAnimSpriteGfx_ShadowBall, 0x0200, ANIM_TAG_SHADOW_BALL}, - {gBattleAnimSpriteGfx_Lick, 0x0500, ANIM_TAG_LICK}, - {gBattleAnimSpriteGfx_VoidLines, 0x0800, ANIM_TAG_VOID_LINES}, - {gBattleAnimSpriteGfx_String, 0x0400, ANIM_TAG_STRING}, - {gBattleAnimSpriteGfx_WebThread, 0x0020, ANIM_TAG_WEB_THREAD}, - {gBattleAnimSpriteGfx_SpiderWeb, 0x0800, ANIM_TAG_SPIDER_WEB}, - {gBattleAnimSpriteGfx_Lightbulb, 0x0100, ANIM_TAG_LIGHTBULB}, - {gBattleAnimSpriteGfx_Slash, 0x0800, ANIM_TAG_SLASH}, - {gBattleAnimSpriteGfx_FocusEnergy, 0x0400, ANIM_TAG_FOCUS_ENERGY}, - {gBattleAnimSpriteGfx_SphereToCube, 0x0a00, ANIM_TAG_SPHERE_TO_CUBE}, - {gBattleAnimSpriteGfx_Tendrils, 0x1000, ANIM_TAG_TENDRILS}, - {gBattleAnimSpriteGfx_Eye, 0x0800, ANIM_TAG_EYE}, - {gBattleAnimSpriteGfx_WhiteShadow, 0x0400, ANIM_TAG_WHITE_SHADOW}, - {gBattleAnimSpriteGfx_TealAlert, 0x0200, ANIM_TAG_TEAL_ALERT}, - {gBattleAnimSpriteGfx_OpeningEye, 0x0800, ANIM_TAG_OPENING_EYE}, - {gBattleAnimSpriteGfx_RoundWhiteHalo, 0x0800, ANIM_TAG_ROUND_WHITE_HALO}, - {gBattleAnimSpriteGfx_FangAttack, 0x0800, ANIM_TAG_FANG_ATTACK}, - {gBattleAnimSpriteGfx_PurpleHandOutline, 0x0200, ANIM_TAG_PURPLE_HAND_OUTLINE}, - {gBattleAnimSpriteGfx_Moon, 0x0800, ANIM_TAG_MOON}, - {gBattleAnimSpriteGfx_GreenSparkle, 0x0200, ANIM_TAG_GREEN_SPARKLE}, - {gBattleAnimSpriteGfx_Spiral, 0x0800, ANIM_TAG_SPIRAL}, - {gBattleAnimSpriteGfx_SnoreZ, 0x0200, ANIM_TAG_SNORE_Z}, - {gBattleAnimSpriteGfx_Explosion, 0x0800, ANIM_TAG_EXPLOSION}, - {gBattleAnimSpriteGfx_Nail, 0x0400, ANIM_TAG_NAIL}, - {gBattleAnimSpriteGfx_GhostlySpirit, 0x0200, ANIM_TAG_GHOSTLY_SPIRIT}, - {gBattleAnimSpriteGfx_WarmRock, 0x0a80, ANIM_TAG_WARM_ROCK}, - {gBattleAnimSpriteGfx_BreakingEgg, 0x0600, ANIM_TAG_BREAKING_EGG}, - {gBattleAnimSpriteGfx_ThinRing, 0x0800, ANIM_TAG_THIN_RING}, - {gBattleAnimSpriteGfx_PunchImpact, 0x0200, ANIM_TAG_PUNCH_IMPACT}, - {gBattleAnimSpriteGfx_Bell, 0x0600, ANIM_TAG_BELL}, - {gBattleAnimSpriteGfx_MusicNotes2, 0x0800, ANIM_TAG_MUSIC_NOTES_2}, - {gBattleAnimSpriteGfx_SpeedDust, 0x0180, ANIM_TAG_SPEED_DUST}, - {gBattleAnimSpriteGfx_TornMetal, 0x0800, ANIM_TAG_TORN_METAL}, - {gBattleAnimSpriteGfx_ThoughtBubble, 0x0800, ANIM_TAG_THOUGHT_BUBBLE}, - {gBattleAnimSpriteGfx_MagentaHeart, 0x0080, ANIM_TAG_MAGENTA_HEART}, - {gBattleAnimSpriteGfx_ElectricOrbs, 0x0080, ANIM_TAG_ELECTRIC_ORBS}, - {gBattleAnimSpriteGfx_CircleOfLight, 0x0800, ANIM_TAG_CIRCLE_OF_LIGHT}, - {gBattleAnimSpriteGfx_Electricity, 0x0800, ANIM_TAG_ELECTRICITY}, - {gBattleAnimSpriteGfx_Finger2, 0x0600, ANIM_TAG_FINGER_2}, - {gBattleAnimSpriteGfx_MovementWaves, 0x0600, ANIM_TAG_MOVEMENT_WAVES}, - {gBattleAnimSpriteGfx_MagentaHeart, 0x0080, ANIM_TAG_RED_HEART}, - {gBattleAnimSpriteGfx_RedOrb, 0x0080, ANIM_TAG_RED_ORB}, - {gBattleAnimSpriteGfx_EyeSparkle, 0x0180, ANIM_TAG_EYE_SPARKLE}, - {gBattleAnimSpriteGfx_MagentaHeart, 0x0080, ANIM_TAG_PINK_HEART}, - {gBattleAnimSpriteGfx_Angel, 0x0200, ANIM_TAG_ANGEL}, - {gBattleAnimSpriteGfx_Devil, 0x0400, ANIM_TAG_DEVIL}, - {gBattleAnimSpriteGfx_Swipe, 0x0a00, ANIM_TAG_SWIPE}, - {gBattleAnimSpriteGfx_Roots, 0x0800, ANIM_TAG_ROOTS}, - {gBattleAnimSpriteGfx_ItemBag, 0x0200, ANIM_TAG_ITEM_BAG}, - {gBattleAnimSpriteGfx_JaggedMusicNote, 0x0400, ANIM_TAG_JAGGED_MUSIC_NOTE}, - {gBattleAnimSpriteGfx_Pokeball, 0x0080, ANIM_TAG_POKEBALL}, - {gBattleAnimSpriteGfx_Spotlight, 0x0800, ANIM_TAG_SPOTLIGHT}, - {gBattleAnimSpriteGfx_LetterZ, 0x0200, ANIM_TAG_LETTER_Z}, - {gBattleAnimSpriteGfx_RapidSpin, 0x0300, ANIM_TAG_RAPID_SPIN}, - {gBattleAnimSpriteGfx_TriForceTriangle, 0x0800, ANIM_TAG_TRI_FORCE_TRIANGLE}, - {gBattleAnimSpriteGfx_WispOrb, 0x0380, ANIM_TAG_WISP_ORB}, - {gBattleAnimSpriteGfx_WispFire, 0x0800, ANIM_TAG_WISP_FIRE}, - {gBattleAnimSpriteGfx_GoldStars, 0x00c0, ANIM_TAG_GOLD_STARS}, - {gBattleAnimSpriteGfx_EclipsingOrb, 0x0800, ANIM_TAG_ECLIPSING_ORB}, - {gBattleAnimSpriteGfx_GrayOrb, 0x0060, ANIM_TAG_GRAY_ORB}, - {gBattleAnimSpriteGfx_GrayOrb, 0x0060, ANIM_TAG_BLUE_ORB}, - {gBattleAnimSpriteGfx_GrayOrb, 0x0060, ANIM_TAG_RED_ORB_2}, - {gBattleAnimSpriteGfx_PinkPetal, 0x0080, ANIM_TAG_PINK_PETAL}, - {gBattleAnimSpriteGfx_PainSplit, 0x0180, ANIM_TAG_PAIN_SPLIT}, - {gBattleAnimSpriteGfx_Confetti, 0x0180, ANIM_TAG_CONFETTI}, - {gBattleAnimSpriteGfx_GreenStar, 0x0200, ANIM_TAG_GREEN_STAR}, - {gBattleAnimSpriteGfx_PinkCloud, 0x0200, ANIM_TAG_PINK_CLOUD}, - {gBattleAnimSpriteGfx_SweatDrop, 0x0020, ANIM_TAG_SWEAT_DROP}, - {gBattleAnimSpriteGfx_GuardRing, 0x0400, ANIM_TAG_GUARD_RING}, - {gBattleAnimSpriteGfx_PurpleScratch, 0x0600, ANIM_TAG_PURPLE_SCRATCH}, - {gBattleAnimSpriteGfx_PurpleSwipe, 0x1000, ANIM_TAG_PURPLE_SWIPE}, - {gBattleAnimSpriteGfx_TagHand, 0x0400, ANIM_TAG_TAG_HAND}, - {gBattleAnimSpriteGfx_SmallRedEye, 0x0020, ANIM_TAG_SMALL_RED_EYE}, - {gBattleAnimSpriteGfx_HollowOrb, 0x0080, ANIM_TAG_HOLLOW_ORB}, - {gBattleAnimSpriteGfx_XSign, 0x0800, ANIM_TAG_X_SIGN}, - {gBattleAnimSpriteGfx_BluegreenOrb, 0x0080, ANIM_TAG_BLUEGREEN_ORB}, - {gBattleAnimSpriteGfx_PawPrint, 0x0200, ANIM_TAG_PAW_PRINT}, - {gBattleAnimSpriteGfx_PurpleFlame, 0x0400, ANIM_TAG_PURPLE_FLAME}, - {gBattleAnimSpriteGfx_RedBall, 0x0200, ANIM_TAG_RED_BALL}, - {gBattleAnimSpriteGfx_SmellingsaltEffect, 0x0200, ANIM_TAG_SMELLINGSALT_EFFECT}, - {gBattleAnimSpriteGfx_Meteor, 0x0800, ANIM_TAG_METEOR}, - {gBattleAnimSpriteGfx_FlatRock, 0x0280, ANIM_TAG_FLAT_ROCK}, - {gBattleAnimSpriteGfx_MagnifyingGlass, 0x0200, ANIM_TAG_MAGNIFYING_GLASS}, - {gBattleAnimSpriteGfx_WaterOrb, 0x0200, ANIM_TAG_BROWN_ORB}, - {gBattleAnimSpriteGfx_MetalSoundWaves, 0x0400, ANIM_TAG_METAL_SOUND_WAVES}, - {gBattleAnimSpriteGfx_FlyingDirt, 0x0200, ANIM_TAG_FLYING_DIRT}, - {gBattleAnimSpriteGfx_IcicleSpear, 0x0200, ANIM_TAG_ICICLE_SPEAR}, - {gBattleAnimSpriteGfx_Hail, 0x0080, ANIM_TAG_HAIL}, - {gBattleAnimSpriteGfx_GlowyRedOrb, 0x0020, ANIM_TAG_GLOWY_RED_ORB}, - {gBattleAnimSpriteGfx_GlowyRedOrb, 0x0020, ANIM_TAG_GLOWY_GREEN_ORB}, - {gBattleAnimSpriteGfx_GreenSpike, 0x0080, ANIM_TAG_GREEN_SPIKE}, - {gBattleAnimSpriteGfx_CircleOfLight, 0x0800, ANIM_TAG_WHITE_CIRCLE_OF_LIGHT}, - {gBattleAnimSpriteGfx_GlowyRedOrb, 0x0020, ANIM_TAG_GLOWY_BLUE_ORB}, - {gBattleAnimSpriteGfx_SafariBait, 0x0080, ANIM_TAG_SAFARI_BAIT}, - {gBattleAnimSpriteGfx_WhiteFeather, 0x0400, ANIM_TAG_WHITE_FEATHER}, - {gBattleAnimSpriteGfx_Sparkle6, 0x0080, ANIM_TAG_SPARKLE_6}, - {gBattleAnimSpriteGfx_Splash, 0x0800, ANIM_TAG_SPLASH}, - {gBattleAnimSpriteGfx_SweatBead, 0x0020, ANIM_TAG_SWEAT_BEAD}, - {gBattleAnimSpriteGfx_Gem1, 0x0800, ANIM_TAG_GEM_1}, - {gBattleAnimSpriteGfx_Gem2, 0x0800, ANIM_TAG_GEM_2}, - {gBattleAnimSpriteGfx_Gem3, 0x0800, ANIM_TAG_GEM_3}, - {gBattleAnimSpriteGfx_SlamHit2, 0x1000, ANIM_TAG_SLAM_HIT_2}, - {gBattleAnimSpriteGfx_Recycle, 0x0800, ANIM_TAG_RECYCLE}, - {gBattleAnimSpriteGfx_RedParticles, 0x00a0, ANIM_TAG_RED_PARTICLES}, - {gBattleAnimSpriteGfx_Protect, 0x0800, ANIM_TAG_PROTECT}, - {gBattleAnimSpriteGfx_DirtMound, 0x0200, ANIM_TAG_DIRT_MOUND}, - {gBattleAnimSpriteGfx_Shock3, 0x0600, ANIM_TAG_SHOCK_3}, - {gBattleAnimSpriteGfx_WeatherBall, 0x0200, ANIM_TAG_WEATHER_BALL}, - {gBattleAnimSpriteGfx_Bird, 0x0800, ANIM_TAG_BIRD}, - {gBattleAnimSpriteGfx_CrossImpact, 0x0200, ANIM_TAG_CROSS_IMPACT}, - {gBattleAnimSpriteGfx_Slash, 0x0800, ANIM_TAG_SLASH_2}, - {gBattleAnimSpriteGfx_SlamHit, 0x1000, ANIM_TAG_WHIP_HIT}, - {gBattleAnimSpriteGfx_GoldRing, 0x0100, ANIM_TAG_BLUE_RING_2}, -}; - -const struct CompressedSpritePalette gBattleAnimPaletteTable[] = -{ - {gBattleAnimSpritePal_Bone, ANIM_TAG_BONE}, - {gBattleAnimSpritePal_Spark, ANIM_TAG_SPARK}, - {gBattleAnimSpritePal_Pencil, ANIM_TAG_PENCIL}, - {gBattleAnimSpritePal_AirWave, ANIM_TAG_AIR_WAVE}, - {gBattleAnimSpritePal_Orb, ANIM_TAG_ORB}, - {gBattleAnimSpritePal_Sword, ANIM_TAG_SWORD}, - {gBattleAnimSpritePal_Seed, ANIM_TAG_SEED}, - {gBattleAnimSpritePal_Explosion6, ANIM_TAG_EXPLOSION_6}, - {gBattleAnimSpritePal_PinkOrb, ANIM_TAG_PINK_ORB}, - {gBattleAnimSpritePal_Gust, ANIM_TAG_GUST}, - {gBattleAnimSpritePal_IceCube, ANIM_TAG_ICE_CUBE}, - {gBattleAnimSpritePal_Spark2, ANIM_TAG_SPARK_2}, - {gBattleAnimSpritePal_Orange, ANIM_TAG_ORANGE}, - {gBattleAnimSpritePal_YellowBall, ANIM_TAG_YELLOW_BALL}, - {gBattleAnimSpritePal_LockOn, ANIM_TAG_LOCK_ON}, - {gBattleAnimSpritePal_TiedBag, ANIM_TAG_TIED_BAG}, - {gBattleAnimSpritePal_BlackSmoke, ANIM_TAG_BLACK_SMOKE}, - {gBattleAnimSpritePal_BlackSmoke, ANIM_TAG_BLACK_BALL}, - {gBattleAnimSpritePal_Conversion, ANIM_TAG_CONVERSION}, - {gBattleAnimSpritePal_Glass, ANIM_TAG_GLASS}, - {gBattleAnimSpritePal_HornHit, ANIM_TAG_HORN_HIT}, - {gBattleAnimSpritePal_Hit, ANIM_TAG_HIT}, - {gBattleAnimSpritePal_Hit2, ANIM_TAG_HIT_2}, - {gBattleAnimSpritePal_BlueShards, ANIM_TAG_BLUE_SHARDS}, - {gBattleAnimSpritePal_ClosingEye, ANIM_TAG_CLOSING_EYE}, - {gBattleAnimSpritePal_WavingHand, ANIM_TAG_WAVING_HAND}, - {gBattleAnimSpritePal_HitDuplicate, ANIM_TAG_HIT_DUPLICATE}, - {gBattleAnimSpritePal_Leer, ANIM_TAG_LEER}, - {gBattleAnimSpritePal_BlueBurst, ANIM_TAG_BLUE_BURST}, - {gBattleAnimSpritePal_SmallEmber, ANIM_TAG_SMALL_EMBER}, - {gBattleAnimSpritePal_GraySmoke, ANIM_TAG_GRAY_SMOKE}, - {gBattleAnimSpritePal_BlueStar, ANIM_TAG_BLUE_STAR}, - {gBattleAnimSpritePal_BubbleBurst, ANIM_TAG_BUBBLE_BURST}, - {gBattleAnimSpritePal_Fire, ANIM_TAG_FIRE}, - {gBattleAnimSpritePal_Fire, ANIM_TAG_SPINNING_FIRE}, - {gBattleAnimSpritePal_Fire, ANIM_TAG_FIRE_PLUME}, - {gBattleAnimSpritePal_Lightning2, ANIM_TAG_LIGHTNING_2}, - {gBattleAnimSpritePal_Lightning2, ANIM_TAG_LIGHTNING}, - {gBattleAnimSpritePal_ClawSlash2, ANIM_TAG_CLAW_SLASH_2}, - {gBattleAnimSpritePal_ClawSlash, ANIM_TAG_CLAW_SLASH}, - {gBattleAnimSpritePal_ClawSlash2, ANIM_TAG_SCRATCH_3}, - {gBattleAnimSpritePal_ClawSlash2, ANIM_TAG_SCRATCH_2}, - {gBattleAnimSpritePal_BubbleBurst2, ANIM_TAG_BUBBLE_BURST_2}, - {gBattleAnimSpritePal_IceChunk, ANIM_TAG_ICE_CHUNK}, - {gBattleAnimSpritePal_Glass2, ANIM_TAG_GLASS_2}, - {gBattleAnimSpritePal_PinkHeart2, ANIM_TAG_PINK_HEART_2}, - {gBattleAnimSpritePal_SapDrip, ANIM_TAG_SAP_DRIP}, - {gBattleAnimSpritePal_SapDrip2, ANIM_TAG_SAP_DRIP}, - {gBattleAnimSpritePal_Sparkle1, ANIM_TAG_SPARKLE_1}, - {gBattleAnimSpritePal_Sparkle2, ANIM_TAG_SPARKLE_2}, - {gBattleAnimSpritePal_HumanoidFoot, ANIM_TAG_HUMANOID_FOOT}, - {gBattleAnimSpritePal_HumanoidFoot, ANIM_TAG_MONSTER_FOOT}, - {gBattleAnimSpritePal_HumanoidFoot, ANIM_TAG_HUMANOID_HAND}, - {gBattleAnimSpritePal_HitDuplicate, ANIM_TAG_NOISE_LINE}, - {gBattleAnimSpritePal_YellowUnk, ANIM_TAG_YELLOW_UNK}, - {gBattleAnimSpritePal_HumanoidFoot, ANIM_TAG_RED_FIST}, - {gBattleAnimSpritePal_SlamHit, ANIM_TAG_SLAM_HIT}, - {gBattleAnimSpritePal_Ring, ANIM_TAG_RING}, - {gBattleAnimSpritePal_Rocks, ANIM_TAG_ROCKS}, - {gBattleAnimSpritePal_Z, ANIM_TAG_Z}, - {gBattleAnimSpritePal_YellowUnk2, ANIM_TAG_YELLOW_UNK_2}, - {gBattleAnimSpritePal_AirSlash, ANIM_TAG_AIR_SLASH}, - {gBattleAnimSpritePal_SpinningGreenOrbs, ANIM_TAG_SPINNING_GREEN_ORBS}, - {gBattleAnimSpritePal_Leaf, ANIM_TAG_LEAF}, - {gBattleAnimSpritePal_Finger, ANIM_TAG_FINGER}, - {gBattleAnimSpritePal_PoisonPowder, ANIM_TAG_POISON_POWDER}, - {gBattleAnimSpritePal_BrownTriangle, ANIM_TAG_BROWN_TRIANGLE}, - {gBattleAnimSpritePal_SleepPowder, ANIM_TAG_SLEEP_POWDER}, - {gBattleAnimSpritePal_StunSpore, ANIM_TAG_STUN_SPORE}, - {gBattleAnimSpritePal_PoisonPowder, ANIM_TAG_POWDER}, - {gBattleAnimSpritePal_Sparkle3, ANIM_TAG_SPARKLE_3}, - {gBattleAnimSpritePal_Sparkle3, ANIM_TAG_SPARKLE_4}, - {gBattleAnimSpritePal_MusicNotes, ANIM_TAG_MUSIC_NOTES}, - {gBattleAnimSpritePal_Duck, ANIM_TAG_DUCK}, - {gBattleAnimSpritePal_MudSand, ANIM_TAG_MUD_SAND}, - {gBattleAnimSpritePal_Alert, ANIM_TAG_ALERT}, - {gBattleAnimSpritePal_BlueFlames, ANIM_TAG_BLUE_FLAMES}, - {gBattleAnimSpritePal_BlueFlames, ANIM_TAG_BLUE_FLAMES_2}, - {gBattleAnimSpritePal_Shock4, ANIM_TAG_SHOCK_4}, - {gBattleAnimSpritePal_Shock4, ANIM_TAG_SHOCK}, - {gBattleAnimSpritePal_Bell2, ANIM_TAG_BELL_2}, - {gBattleAnimSpritePal_PinkGlove, ANIM_TAG_PINK_GLOVE}, - {gBattleAnimSpritePal_BlueLines, ANIM_TAG_BLUE_LINES}, - {gBattleAnimSpritePal_Impact3, ANIM_TAG_IMPACT_3}, - {gBattleAnimSpritePal_Impact2, ANIM_TAG_IMPACT_2}, - {gBattleAnimSpritePal_Reticle, ANIM_TAG_RETICLE}, - {gBattleAnimSpritePal_Breath, ANIM_TAG_BREATH}, - {gBattleAnimSpritePal_Anger, ANIM_TAG_ANGER}, - {gBattleAnimSpritePal_Snowball, ANIM_TAG_SNOWBALL}, - {gBattleAnimSpritePal_Vine, ANIM_TAG_VINE}, - {gBattleAnimSpritePal_Sword2, ANIM_TAG_SWORD_2}, - {gBattleAnimSpritePal_Clapping, ANIM_TAG_CLAPPING}, - {gBattleAnimSpritePal_RedTube, ANIM_TAG_RED_TUBE}, - {gBattleAnimSpritePal_Amnesia, ANIM_TAG_AMNESIA}, - {gBattleAnimSpritePal_String2, ANIM_TAG_STRING_2}, - {gBattleAnimSpritePal_Pencil2, ANIM_TAG_PENCIL_2}, - {gBattleAnimSpritePal_Petal, ANIM_TAG_PETAL}, - {gBattleAnimSpritePal_BentSpoon, ANIM_TAG_BENT_SPOON}, - {gBattleAnimSpritePal_String2, ANIM_TAG_WEB}, - {gBattleAnimSpritePal_MilkBottle, ANIM_TAG_MILK_BOTTLE}, - {gBattleAnimSpritePal_Coin, ANIM_TAG_COIN}, - {gBattleAnimSpritePal_CrackedEgg, ANIM_TAG_CRACKED_EGG}, - {gBattleAnimSpritePal_CrackedEgg, ANIM_TAG_HATCHED_EGG}, - {gBattleAnimSpritePal_FreshEgg, ANIM_TAG_FRESH_EGG}, - {gBattleAnimSpritePal_Fangs, ANIM_TAG_FANGS}, - {gBattleAnimSpritePal_Explosion2, ANIM_TAG_EXPLOSION_2}, - {gBattleAnimSpritePal_Explosion2, ANIM_TAG_EXPLOSION_3}, - {gBattleAnimSpritePal_WaterDroplet, ANIM_TAG_WATER_DROPLET}, - {gBattleAnimSpritePal_WaterDroplet, ANIM_TAG_WATER_DROPLET_2}, - {gBattleAnimSpritePal_Seed2, ANIM_TAG_SEED_2}, - {gBattleAnimSpritePal_Seed2, ANIM_TAG_SPROUT}, - {gBattleAnimSpritePal_RedWand, ANIM_TAG_RED_WAND}, - {gBattleAnimSpritePal_PurpleGreenUnk, ANIM_TAG_PURPLE_GREEN_UNK}, - {gBattleAnimSpritePal_WaterColumn, ANIM_TAG_WATER_COLUMN}, - {gBattleAnimSpritePal_MudUnk, ANIM_TAG_MUD_UNK}, - {gBattleAnimSpritePal_RainDrops, ANIM_TAG_RAIN_DROPS}, - {gBattleAnimSpritePal_FurySwipes, ANIM_TAG_FURY_SWIPES}, - {gBattleAnimSpritePal_Vine2, ANIM_TAG_VINE_2}, - {gBattleAnimSpritePal_Teeth, ANIM_TAG_TEETH}, - {gBattleAnimSpritePal_Bone2, ANIM_TAG_BONE_2}, - {gBattleAnimSpritePal_WhiteBag, ANIM_TAG_WHITE_BAG}, - {gBattleAnimSpritePal_Unknown, ANIM_TAG_UNKNOWN}, - {gBattleAnimSpritePal_PurpleCoral, ANIM_TAG_PURPLE_CORAL}, - {gBattleAnimSpritePal_PurpleCoral, ANIM_TAG_PURPLE_DROPLET}, - {gBattleAnimSpritePal_Shock2, ANIM_TAG_SHOCK_2}, - {gBattleAnimSpritePal_ClosingEye2, ANIM_TAG_CLOSING_EYE_2}, - {gBattleAnimSpritePal_MetalBall, ANIM_TAG_METAL_BALL}, - {gBattleAnimSpritePal_MonsterDoll, ANIM_TAG_MONSTER_DOLL}, - {gBattleAnimSpritePal_Whirlwind, ANIM_TAG_WHIRLWIND}, - {gBattleAnimSpritePal_Whirlwind, ANIM_TAG_WHIRLWIND_2}, - {gBattleAnimSpritePal_Explosion4, ANIM_TAG_EXPLOSION_4}, - {gBattleAnimSpritePal_Explosion4, ANIM_TAG_EXPLOSION_5}, - {gBattleAnimSpritePal_Tongue, ANIM_TAG_TONGUE}, - {gBattleAnimSpritePal_Smoke, ANIM_TAG_SMOKE}, - {gBattleAnimSpritePal_Smoke, ANIM_TAG_SMOKE_2}, - {gBattleAnimSpritePal_Impact, ANIM_TAG_IMPACT}, - {gBattleAnimSpritePal_CircleImpact, ANIM_TAG_CIRCLE_IMPACT}, - {gBattleAnimSpritePal_Impact, ANIM_TAG_SCRATCH}, - {gBattleAnimSpritePal_Impact, ANIM_TAG_CUT}, - {gBattleAnimSpritePal_SharpTeeth, ANIM_TAG_SHARP_TEETH}, - {gBattleAnimSpritePal_RainbowRings, ANIM_TAG_RAINBOW_RINGS}, - {gBattleAnimSpritePal_IceCrystals, ANIM_TAG_ICE_CRYSTALS}, - {gBattleAnimSpritePal_IceCrystals, ANIM_TAG_ICE_SPIKES}, - {gBattleAnimSpritePal_HandsAndFeet, ANIM_TAG_HANDS_AND_FEET}, - {gBattleAnimSpritePal_MistCloud, ANIM_TAG_MIST_CLOUD}, - {gBattleAnimSpritePal_SharpTeeth, ANIM_TAG_CLAMP}, - {gBattleAnimSpritePal_RainDrops, ANIM_TAG_BUBBLE}, - {gBattleAnimSpritePal_Orbs, ANIM_TAG_ORBS}, - {gBattleAnimSpritePal_WaterImpact, ANIM_TAG_WATER_IMPACT}, - {gBattleAnimSpritePal_WaterImpact, ANIM_TAG_WATER_ORB}, - {gBattleAnimSpritePal_PoisonBubble, ANIM_TAG_POISON_BUBBLE}, - {gBattleAnimSpritePal_PoisonBubble, ANIM_TAG_TOXIC_BUBBLE}, - {gBattleAnimSpritePal_Spikes, ANIM_TAG_SPIKES}, - {gBattleAnimSpritePal_HornHit2, ANIM_TAG_HORN_HIT_2}, - {gBattleAnimSpritePal_AirWave2, ANIM_TAG_AIR_WAVE_2}, - {gBattleAnimSpritePal_SmallBubbles, ANIM_TAG_SMALL_BUBBLES}, - {gBattleAnimSpritePal_RoundShadow, ANIM_TAG_ROUND_SHADOW}, - {gBattleAnimSpritePal_Sunlight, ANIM_TAG_SUNLIGHT}, - {gBattleAnimSpritePal_Spore, ANIM_TAG_SPORE}, - {gBattleAnimSpritePal_Flower, ANIM_TAG_FLOWER}, - {gBattleAnimSpritePal_RazorLeaf, ANIM_TAG_RAZOR_LEAF}, - {gBattleAnimSpritePal_Needle, ANIM_TAG_NEEDLE}, - {gBattleAnimSpritePal_WhirlwindLines, ANIM_TAG_WHIRLWIND_LINES}, - {gBattleAnimSpritePal_GoldRing, ANIM_TAG_GOLD_RING}, - {gBattleAnimSpritePal_PurpleRing, ANIM_TAG_PURPLE_RING}, - {gBattleAnimSpritePal_BlueRing, ANIM_TAG_BLUE_RING}, - {gBattleAnimSpritePal_GreenLightWall, ANIM_TAG_GREEN_LIGHT_WALL}, - {gBattleAnimSpritePal_BlueLightWall, ANIM_TAG_BLUE_LIGHT_WALL}, - {gBattleAnimSpritePal_RedLightWall, ANIM_TAG_RED_LIGHT_WALL}, - {gBattleAnimSpritePal_GrayLightWall, ANIM_TAG_GRAY_LIGHT_WALL}, - {gBattleAnimSpritePal_OrangeLightWall, ANIM_TAG_ORANGE_LIGHT_WALL}, - {gBattleAnimSpritePal_BlackBall2, ANIM_TAG_BLACK_BALL_2}, - {gBattleAnimSpritePal_PurpleGasCloud, ANIM_TAG_PURPLE_GAS_CLOUD}, - {gBattleAnimSpritePal_Spark, ANIM_TAG_SPARK_H}, - {gBattleAnimSpritePal_YellowStar, ANIM_TAG_YELLOW_STAR}, - {gBattleAnimSpritePal_LargeFreshEgg, ANIM_TAG_LARGE_FRESH_EGG}, - {gBattleAnimSpritePal_ShadowBall, ANIM_TAG_SHADOW_BALL}, - {gBattleAnimSpritePal_Lick, ANIM_TAG_LICK}, - {gBattleAnimSpritePal_VoidLines, ANIM_TAG_VOID_LINES}, - {gBattleAnimSpritePal_String, ANIM_TAG_STRING}, - {gBattleAnimSpritePal_String, ANIM_TAG_WEB_THREAD}, - {gBattleAnimSpritePal_String, ANIM_TAG_SPIDER_WEB}, - {gBattleAnimSpritePal_Lightbulb, ANIM_TAG_LIGHTBULB}, - {gBattleAnimSpritePal_Slash, ANIM_TAG_SLASH}, - {gBattleAnimSpritePal_FocusEnergy, ANIM_TAG_FOCUS_ENERGY}, - {gBattleAnimSpritePal_SphereToCube, ANIM_TAG_SPHERE_TO_CUBE}, - {gBattleAnimSpritePal_Tendrils, ANIM_TAG_TENDRILS}, - {gBattleAnimSpritePal_Eye, ANIM_TAG_EYE}, - {gBattleAnimSpritePal_WhiteShadow, ANIM_TAG_WHITE_SHADOW}, - {gBattleAnimSpritePal_TealAlert, ANIM_TAG_TEAL_ALERT}, - {gBattleAnimSpritePal_OpeningEye, ANIM_TAG_OPENING_EYE}, - {gBattleAnimSpritePal_RoundWhiteHalo, ANIM_TAG_ROUND_WHITE_HALO}, - {gBattleAnimSpritePal_FangAttack, ANIM_TAG_FANG_ATTACK}, - {gBattleAnimSpritePal_PurpleHandOutline, ANIM_TAG_PURPLE_HAND_OUTLINE}, - {gBattleAnimSpritePal_Moon, ANIM_TAG_MOON}, - {gBattleAnimSpritePal_GreenSparkle, ANIM_TAG_GREEN_SPARKLE}, - {gBattleAnimSpritePal_Spiral, ANIM_TAG_SPIRAL}, - {gBattleAnimSpritePal_SnoreZ, ANIM_TAG_SNORE_Z}, - {gBattleAnimSpritePal_Explosion, ANIM_TAG_EXPLOSION}, - {gBattleAnimSpritePal_Nail, ANIM_TAG_NAIL}, - {gBattleAnimSpritePal_GhostlySpirit, ANIM_TAG_GHOSTLY_SPIRIT}, - {gBattleAnimSpritePal_WarmRock, ANIM_TAG_WARM_ROCK}, - {gBattleAnimSpritePal_BreakingEgg, ANIM_TAG_BREAKING_EGG}, - {gBattleAnimSpritePal_ThinRing, ANIM_TAG_THIN_RING}, - {gBattleAnimSpritePal_PunchImpact, ANIM_TAG_PUNCH_IMPACT}, - {gBattleAnimSpritePal_Bell, ANIM_TAG_BELL}, - {gBattleAnimSpritePal_MusicNotes2, ANIM_TAG_MUSIC_NOTES_2}, - {gBattleAnimSpritePal_SpeedDust, ANIM_TAG_SPEED_DUST}, - {gBattleAnimSpritePal_BlueLightWall, ANIM_TAG_TORN_METAL}, - {gBattleAnimSpritePal_ThoughtBubble, ANIM_TAG_THOUGHT_BUBBLE}, - {gBattleAnimSpritePal_MagentaHeart, ANIM_TAG_MAGENTA_HEART}, - {gBattleAnimSpritePal_ElectricOrbs, ANIM_TAG_ELECTRIC_ORBS}, - {gBattleAnimSpritePal_ElectricOrbs, ANIM_TAG_CIRCLE_OF_LIGHT}, - {gBattleAnimSpritePal_ElectricOrbs, ANIM_TAG_ELECTRICITY}, - {gBattleAnimSpritePal_Finger, ANIM_TAG_FINGER_2}, - {gBattleAnimSpritePal_MovementWaves, ANIM_TAG_MOVEMENT_WAVES}, - {gBattleAnimSpritePal_RedHeart, ANIM_TAG_RED_HEART}, - {gBattleAnimSpritePal_RedOrb, ANIM_TAG_RED_ORB}, - {gBattleAnimSpritePal_EyeSparkle, ANIM_TAG_EYE_SPARKLE}, - {gBattleAnimSpritePal_PinkHeart, ANIM_TAG_PINK_HEART}, - {gBattleAnimSpritePal_Angel, ANIM_TAG_ANGEL}, - {gBattleAnimSpritePal_Devil, ANIM_TAG_DEVIL}, - {gBattleAnimSpritePal_Swipe, ANIM_TAG_SWIPE}, - {gBattleAnimSpritePal_Roots, ANIM_TAG_ROOTS}, - {gBattleAnimSpritePal_ItemBag, ANIM_TAG_ITEM_BAG}, - {gBattleAnimSpritePal_JaggedMusicNote, ANIM_TAG_JAGGED_MUSIC_NOTE}, - {gBattleAnimSpritePal_Pokeball, ANIM_TAG_POKEBALL}, - {gBattleAnimSpritePal_Pokeball, ANIM_TAG_SPOTLIGHT}, - {gBattleAnimSpritePal_LetterZ, ANIM_TAG_LETTER_Z}, - {gBattleAnimSpritePal_RapidSpin, ANIM_TAG_RAPID_SPIN}, - {gBattleAnimSpritePal_TriForceTriangle, ANIM_TAG_TRI_FORCE_TRIANGLE}, - {gBattleAnimSpritePal_WispOrb, ANIM_TAG_WISP_ORB}, - {gBattleAnimSpritePal_WispOrb, ANIM_TAG_WISP_FIRE}, - {gBattleAnimSpritePal_GoldStars, ANIM_TAG_GOLD_STARS}, - {gBattleAnimSpritePal_EclipsingOrb, ANIM_TAG_ECLIPSING_ORB}, - {gBattleAnimSpritePal_GrayOrb, ANIM_TAG_GRAY_ORB}, - {gBattleAnimSpritePal_BlueOrb, ANIM_TAG_BLUE_ORB}, - {gBattleAnimSpritePal_RedOrb2, ANIM_TAG_RED_ORB_2}, - {gBattleAnimSpritePal_PinkPetal, ANIM_TAG_PINK_PETAL}, - {gBattleAnimSpritePal_PainSplit, ANIM_TAG_PAIN_SPLIT}, - {gBattleAnimSpritePal_Confetti, ANIM_TAG_CONFETTI}, - {gBattleAnimSpritePal_GreenStar, ANIM_TAG_GREEN_STAR}, - {gBattleAnimSpritePal_PinkCloud, ANIM_TAG_PINK_CLOUD}, - {gBattleAnimSpritePal_SweatDrop, ANIM_TAG_SWEAT_DROP}, - {gBattleAnimSpritePal_GuardRing, ANIM_TAG_GUARD_RING}, - {gBattleAnimSpritePal_PurpleScratch, ANIM_TAG_PURPLE_SCRATCH}, - {gBattleAnimSpritePal_PurpleScratch, ANIM_TAG_PURPLE_SWIPE}, - {gBattleAnimSpritePal_Finger, ANIM_TAG_TAG_HAND}, - {gBattleAnimSpritePal_SmallRedEye, ANIM_TAG_SMALL_RED_EYE}, - {gBattleAnimSpritePal_HollowOrb, ANIM_TAG_HOLLOW_ORB}, - {gBattleAnimSpritePal_HollowOrb, ANIM_TAG_X_SIGN}, - {gBattleAnimSpritePal_BluegreenOrb, ANIM_TAG_BLUEGREEN_ORB}, - {gBattleAnimSpritePal_PawPrint, ANIM_TAG_PAW_PRINT}, - {gBattleAnimSpritePal_PurpleFlame, ANIM_TAG_PURPLE_FLAME}, - {gBattleAnimSpritePal_RedBall, ANIM_TAG_RED_BALL}, - {gBattleAnimSpritePal_SmellingsaltEffect, ANIM_TAG_SMELLINGSALT_EFFECT}, - {gBattleAnimSpritePal_Meteor, ANIM_TAG_METEOR}, - {gBattleAnimSpritePal_FlatRock, ANIM_TAG_FLAT_ROCK}, - {gBattleAnimSpritePal_MagnifyingGlass, ANIM_TAG_MAGNIFYING_GLASS}, - {gBattleAnimSpritePal_BrownOrb, ANIM_TAG_BROWN_ORB}, - {gBattleAnimSpritePal_MetalSoundWaves, ANIM_TAG_METAL_SOUND_WAVES}, - {gBattleAnimSpritePal_FlyingDirt, ANIM_TAG_FLYING_DIRT}, - {gBattleAnimSpritePal_IcicleSpear, ANIM_TAG_ICICLE_SPEAR}, - {gBattleAnimSpritePal_Hail, ANIM_TAG_HAIL}, - {gBattleAnimSpritePal_GlowyRedOrb, ANIM_TAG_GLOWY_RED_ORB}, - {gBattleAnimSpritePal_GlowyGreenOrb, ANIM_TAG_GLOWY_GREEN_ORB}, - {gBattleAnimSpritePal_GreenSpike, ANIM_TAG_GREEN_SPIKE}, - {gBattleAnimSpritePal_WhiteCircleOfLight, ANIM_TAG_WHITE_CIRCLE_OF_LIGHT}, - {gBattleAnimSpritePal_GlowyBlueOrb, ANIM_TAG_GLOWY_BLUE_ORB}, - {gBattleAnimSpritePal_SafariBait, ANIM_TAG_SAFARI_BAIT}, - {gBattleAnimSpritePal_WhiteFeather, ANIM_TAG_WHITE_FEATHER}, - {gBattleAnimSpritePal_Sparkle6, ANIM_TAG_SPARKLE_6}, - {gBattleAnimSpritePal_Splash, ANIM_TAG_SPLASH}, - {gBattleAnimSpritePal_Splash, ANIM_TAG_SWEAT_BEAD}, - {gBattleAnimSpritePal_Gem1, ANIM_TAG_GEM_1}, - {gBattleAnimSpritePal_Gem1, ANIM_TAG_GEM_2}, - {gBattleAnimSpritePal_Gem1, ANIM_TAG_GEM_3}, - {gBattleAnimSpritePal_SlamHit2, ANIM_TAG_SLAM_HIT_2}, - {gBattleAnimSpritePal_Recycle, ANIM_TAG_RECYCLE}, - {gBattleAnimSpritePal_RedParticles, ANIM_TAG_RED_PARTICLES}, - {gBattleAnimSpritePal_Protect, ANIM_TAG_PROTECT}, - {gBattleAnimSpritePal_DirtMound, ANIM_TAG_DIRT_MOUND}, - {gBattleAnimSpritePal_Shock3, ANIM_TAG_SHOCK_3}, - {gBattleAnimSpritePal_WeatherBall, ANIM_TAG_WEATHER_BALL}, - {gBattleAnimSpritePal_Bird, ANIM_TAG_BIRD}, - {gBattleAnimSpritePal_CrossImpact, ANIM_TAG_CROSS_IMPACT}, - {gBattleAnimSpritePal_Slash2, ANIM_TAG_SLASH_2}, - {gBattleAnimSpritePal_WhipHit, ANIM_TAG_WHIP_HIT}, - {gBattleAnimSpritePal_BlueRing2, ANIM_TAG_BLUE_RING_2}, -}; - -const struct BattleAnimBackground gBattleAnimBackgroundTable[] = -{ - [BG_DARK_] = {gBattleAnimBgImage_Dark, gBattleAnimBgPalette_Dark, gBattleAnimBgTilemap_Dark}, - [BG_DARK] = {gBattleAnimBgImage_Dark, gBattleAnimBgPalette_Dark, gBattleAnimBgTilemap_Dark}, - [BG_GHOST] = {gBattleAnimBgImage_Ghost, gBattleAnimBgPalette_Ghost, gBattleAnimBgTilemap_Ghost}, - [BG_PSYCHIC] = {gBattleAnimBgImage_Psychic, gBattleAnimBgPalette_Psychic, gBattleAnimBgTilemap_Psychic}, - [BG_IMPACT_OPPONENT] = {gBattleAnimBgImage_Impact, gBattleAnimBgPalette_Impact, gBattleAnimBgTilemap_ImpactOpponent}, - [BG_IMPACT_PLAYER] = {gBattleAnimBgImage_Impact, gBattleAnimBgPalette_Impact, gBattleAnimBgTilemap_ImpactPlayer}, - [BG_IMPACT_CONTESTS] = {gBattleAnimBgImage_Impact, gBattleAnimBgPalette_Impact, gBattleAnimBgTilemap_ImpactContests}, - [BG_DRILL] = {gBattleAnimBgImage_Drill, gBattleAnimBgPalette_Drill, gBattleAnimBgTilemap_Drill}, - [BG_DRILL_CONTESTS] = {gBattleAnimBgImage_Drill, gBattleAnimBgPalette_Drill, gBattleAnimBgTilemap_DrillContests}, - [BG_HIGHSPEED_OPPONENT] = {gBattleAnimBgImage_Highspeed, gBattleAnimBgPalette_Highspeed, gBattleAnimBgTilemap_HighspeedOpponent}, - [BG_HIGHSPEED_PLAYER] = {gBattleAnimBgImage_Highspeed, gBattleAnimBgPalette_Highspeed, gBattleAnimBgTilemap_HighspeedPlayer}, - [BG_THUNDER] = {gBattleAnimBgImage_Thunder, gBattleAnimBgPalette_Thunder, gBattleAnimBgTilemap_Thunder}, - [BG_GUILLOTINE_OPPONENT] = {gBattleAnimBgImage_Guillotine, gBattleAnimBgPalette_Guillotine, gBattleAnimBgTilemap_GuillotineOpponent}, - [BG_GUILLOTINE_PLAYER] = {gBattleAnimBgImage_Guillotine, gBattleAnimBgPalette_Guillotine, gBattleAnimBgTilemap_GuillotinePlayer}, - [BG_GUILLOTINE_CONTESTS] = {gBattleAnimBgImage_Guillotine, gBattleAnimBgPalette_Guillotine, gBattleAnimBgTilemap_GuillotineContests}, - [BG_ICE] = {gBattleAnimBgImage_Ice, gBattleAnimBgPalette_Ice, gBattleAnimBgTilemap_Ice}, - [BG_COSMIC] = {gBattleAnimBgImage_Cosmic, gBattleAnimBgPalette_Cosmic, gBattleAnimBgTilemap_Cosmic}, - [BG_IN_AIR] = {gBattleAnimBgImage_InAir, gBattleAnimBgPalette_InAir, gBattleAnimBgTilemap_InAir}, - [BG_SKY] = {gBattleAnimBgImage_Drill, gBattleAnimBgPalette_Sky, gBattleAnimBgTilemap_Drill}, - [BG_SKY_CONTESTS] = {gBattleAnimBgImage_Drill, gBattleAnimBgPalette_Sky, gBattleAnimBgTilemap_DrillContests}, - [BG_AURORA] = {gBattleAnimBgImage_Aurora, gBattleAnimBgPalette_Aurora, gBattleAnimBgTilemap_Aurora}, - [BG_FISSURE] = {gBattleAnimBgImage_Fissure, gBattleAnimBgPalette_Fissure, gBattleAnimBgTilemap_Fissure}, - [BG_BUG_OPPONENT] = {gBattleAnimBgImage_Highspeed, gBattleAnimBgPalette_Bug, gBattleAnimBgTilemap_HighspeedOpponent}, - [BG_BUG_PLAYER] = {gBattleAnimBgImage_Highspeed, gBattleAnimBgPalette_Bug, gBattleAnimBgTilemap_HighspeedPlayer}, - [BG_SOLAR_BEAM_OPPONENT] = {gBattleAnimBgImage_Impact, gBattleAnimBgPalette_SolarBeam, gBattleAnimBgTilemap_ImpactOpponent}, - [BG_SOLAR_BEAM_PLAYER] = {gBattleAnimBgImage_Impact, gBattleAnimBgPalette_SolarBeam, gBattleAnimBgTilemap_ImpactPlayer}, - [BG_SOLAR_BEAM_CONTESTS] = {gBattleAnimBgImage_Impact, gBattleAnimBgPalette_SolarBeam, gBattleAnimBgTilemap_ImpactContests}, -}; +static void Task_ClearMonBg(u8 taskId); + +static void Cmd_loadspritegfx(void); +static void Cmd_unloadspritegfx(void); +static void Cmd_createsprite(void); +static void Cmd_createvisualtask(void); +static void Cmd_delay(void); +static void Cmd_waitforvisualfinish(void); +static void Cmd_nop(void); +static void Cmd_nop2(void); +static void Cmd_end(void); +static void Cmd_playse(void); +static void Cmd_monbg(void); +static void Cmd_clearmonbg(void); +static void Cmd_setalpha(void); +static void Cmd_blendoff(void); +static void Cmd_call(void); +static void Cmd_return(void); +static void Cmd_setarg(void); +static void Cmd_choosetwoturnanim(void); +static void Cmd_jumpifmoveturn(void); +static void Cmd_goto(void); +static void Cmd_fadetobg(void); +static void Cmd_restorebg(void); +static void Cmd_waitbgfadeout(void); +static void Cmd_waitbgfadein(void); +static void Cmd_changebg(void); +static void Cmd_playsewithpan(void); +static void Cmd_setpan(void); +static void Cmd_panse(void); +static void Cmd_loopsewithpan(void); +static void Cmd_waitplaysewithpan(void); +static void Cmd_setbldcnt(void); +static void Cmd_createsoundtask(void); +static void Cmd_waitsound(void); +static void Cmd_jumpargeq(void); +static void Cmd_monbg_static(void); +static void Cmd_clearmonbg_static(void); +static void Cmd_jumpifcontest(void); +static void Cmd_fadetobgfromset(void); +static void Cmd_panse_adjustnone(void); +static void Cmd_panse_adjustall(void); +static void Cmd_splitbgprio(void); +static void Cmd_splitbgprio_all(void); +static void Cmd_splitbgprio_foes(void); +static void Cmd_invisible(void); +static void Cmd_visible(void); +static void Cmd_teamattack_moveback(void); +static void Cmd_teamattack_movefwd(void); +static void Cmd_stopsound(void); + +#include "data/battle_anim.h" static void (*const sScriptCmdTable[])(void) = { - ScriptCmd_loadspritegfx, - ScriptCmd_unloadspritegfx, - ScriptCmd_createsprite, - ScriptCmd_createvisualtask, - ScriptCmd_delay, - ScriptCmd_waitforvisualfinish, - ScriptCmd_hang1, - ScriptCmd_hang2, - ScriptCmd_end, - ScriptCmd_playse, - ScriptCmd_monbg, - ScriptCmd_clearmonbg, - ScriptCmd_setalpha, - ScriptCmd_blendoff, - ScriptCmd_call, - ScriptCmd_return, - ScriptCmd_setarg, - ScriptCmd_choosetwoturnanim, - ScriptCmd_jumpifmoveturn, - ScriptCmd_goto, - ScriptCmd_fadetobg, - ScriptCmd_restorebg, - ScriptCmd_waitbgfadeout, - ScriptCmd_waitbgfadein, - ScriptCmd_changebg, - ScriptCmd_playsewithpan, - ScriptCmd_setpan, - ScriptCmd_panse_1B, - ScriptCmd_loopsewithpan, - ScriptCmd_waitplaysewithpan, - ScriptCmd_setbldcnt, - ScriptCmd_createsoundtask, - ScriptCmd_waitsound, - ScriptCmd_jumpargeq, - ScriptCmd_monbg_22, - ScriptCmd_clearmonbg_23, - ScriptCmd_jumpifcontest, - ScriptCmd_fadetobgfromset, - ScriptCmd_panse_26, - ScriptCmd_panse_27, - ScriptCmd_monbgprio_28, - ScriptCmd_monbgprio_29, - ScriptCmd_monbgprio_2A, - ScriptCmd_invisible, - ScriptCmd_visible, - ScriptCmd_doublebattle_2D, - ScriptCmd_doublebattle_2E, - ScriptCmd_stopsound + Cmd_loadspritegfx, // 0x00 + Cmd_unloadspritegfx, // 0x01 + Cmd_createsprite, // 0x02 + Cmd_createvisualtask, // 0x03 + Cmd_delay, // 0x04 + Cmd_waitforvisualfinish, // 0x05 + Cmd_nop, // 0x06 + Cmd_nop2, // 0x07 + Cmd_end, // 0x08 + Cmd_playse, // 0x09 + Cmd_monbg, // 0x0A + Cmd_clearmonbg, // 0x0B + Cmd_setalpha, // 0x0C + Cmd_blendoff, // 0x0D + Cmd_call, // 0x0E + Cmd_return, // 0x0F + Cmd_setarg, // 0x10 + Cmd_choosetwoturnanim, // 0x11 + Cmd_jumpifmoveturn, // 0x12 + Cmd_goto, // 0x13 + Cmd_fadetobg, // 0x14 + Cmd_restorebg, // 0x15 + Cmd_waitbgfadeout, // 0x16 + Cmd_waitbgfadein, // 0x17 + Cmd_changebg, // 0x18 + Cmd_playsewithpan, // 0x19 + Cmd_setpan, // 0x1A + Cmd_panse, // 0x1B + Cmd_loopsewithpan, // 0x1C + Cmd_waitplaysewithpan, // 0x1D + Cmd_setbldcnt, // 0x1E + Cmd_createsoundtask, // 0x1F + Cmd_waitsound, // 0x20 + Cmd_jumpargeq, // 0x21 + Cmd_monbg_static, // 0x22 + Cmd_clearmonbg_static, // 0x23 + Cmd_jumpifcontest, // 0x24 + Cmd_fadetobgfromset, // 0x25 + Cmd_panse_adjustnone, // 0x26 + Cmd_panse_adjustall, // 0x27 + Cmd_splitbgprio, // 0x28 + Cmd_splitbgprio_all, // 0x29 + Cmd_splitbgprio_foes, // 0x2A + Cmd_invisible, // 0x2B + Cmd_visible, // 0x2C + Cmd_teamattack_moveback, // 0x2D + Cmd_teamattack_movefwd, // 0x2E + Cmd_stopsound, // 0x2F }; -// Functions void ClearBattleAnimationVars(void) { s32 i; @@ -1802,14 +180,14 @@ void ClearBattleAnimationVars(void) for (i = 0; i < ANIM_ARGS_COUNT; i++) gBattleAnimArgs[i] = 0; - sMonAnimTaskIdArray[0] = 0xFF; - sMonAnimTaskIdArray[1] = (s8)0xFF; + sMonAnimTaskIdArray[0] = TASK_NONE; + sMonAnimTaskIdArray[1] = TASK_NONE; gAnimMoveTurn = 0; sAnimBackgroundFadeState = 0; sAnimMoveIndex = 0; gBattleAnimAttacker = 0; gBattleAnimTarget = 0; - gUnknown_2037F24 = 0; + gAnimCustomPanning = 0; } void DoMoveAnim(u16 move) @@ -1823,7 +201,7 @@ void LaunchBattleAnimation(const u8 *const animsTable[], u16 tableId, bool8 isMo { s32 i; - ResetSpritePriorityOfAllVisibleBattlers(); + InitPrioritiesForVisibleBattlers(); UpdateOamPriorityInAllHealthboxes(0); for (i = 0; i < MAX_BATTLERS_COUNT; i++) { @@ -1841,8 +219,8 @@ void LaunchBattleAnimation(const u8 *const animsTable[], u16 tableId, bool8 isMo for (i = 0; i < ANIM_ARGS_COUNT; i++) gBattleAnimArgs[i] = 0; - sMonAnimTaskIdArray[0] = 0xFF; - sMonAnimTaskIdArray[1] = (s8)-1; + sMonAnimTaskIdArray[0] = TASK_NONE; + sMonAnimTaskIdArray[1] = TASK_NONE; sBattleAnimScriptPtr = animsTable[tableId]; gAnimScriptActive = TRUE; sAnimFramesToWait = 0; @@ -1937,7 +315,7 @@ static void RunAnimScriptCommand(void) } while (sAnimFramesToWait == 0 && gAnimScriptActive); } -static void ScriptCmd_loadspritegfx(void) +static void Cmd_loadspritegfx(void) { u16 index; @@ -1951,7 +329,7 @@ static void ScriptCmd_loadspritegfx(void) gAnimScriptCallback = WaitAnimFrameCount; } -static void ScriptCmd_unloadspritegfx(void) +static void Cmd_unloadspritegfx(void) { u16 index; @@ -1968,7 +346,7 @@ static void ScriptCmd_unloadspritegfx(void) // flags: // - bits 0-6: subpriority mod (signed) // - bit 7: target if set else attacker -static void ScriptCmd_createsprite(void) +static void Cmd_createsprite(void) { s32 i; const struct SpriteTemplate *template; @@ -1991,11 +369,11 @@ static void ScriptCmd_createsprite(void) sBattleAnimScriptPtr += 2; } - if (argVar & 0x80) + if (argVar & ANIMSPRITE_IS_TARGET) { - argVar ^= 0x80; - if (argVar >= 0x40) - argVar -= 0x40; + argVar ^= ANIMSPRITE_IS_TARGET; + if (argVar >= 64) + argVar -= 64; else argVar *= -1; @@ -2003,8 +381,8 @@ static void ScriptCmd_createsprite(void) } else { - if (argVar >= 0x40) - argVar -= 0x40; + if (argVar >= 64) + argVar -= 64; else argVar *= -1; @@ -2022,7 +400,7 @@ static void ScriptCmd_createsprite(void) gAnimVisualTaskCount++; } -static void ScriptCmd_createvisualtask(void) +static void Cmd_createvisualtask(void) { TaskFunc taskFunc; u8 taskPriority; @@ -2052,7 +430,7 @@ static void ScriptCmd_createvisualtask(void) gAnimVisualTaskCount++; } -static void ScriptCmd_delay(void) +static void Cmd_delay(void) { sBattleAnimScriptPtr++; sAnimFramesToWait = sBattleAnimScriptPtr[0]; @@ -2062,7 +440,7 @@ static void ScriptCmd_delay(void) gAnimScriptCallback = WaitAnimFrameCount; } -static void ScriptCmd_waitforvisualfinish(void) +static void Cmd_waitforvisualfinish(void) { if (gAnimVisualTaskCount == 0) { @@ -2075,22 +453,22 @@ static void ScriptCmd_waitforvisualfinish(void) } } -static void ScriptCmd_hang1(void) +static void Cmd_nop(void) { } -static void ScriptCmd_hang2(void) +static void Cmd_nop2(void) { } -static void ScriptCmd_end(void) +static void Cmd_end(void) { s32 i; bool32 continuousAnim = FALSE; // Keep waiting as long as there are animations to be done. if (gAnimVisualTaskCount != 0 || gAnimSoundTaskCount != 0 - || sMonAnimTaskIdArray[0] != 0xFF || sMonAnimTaskIdArray[1] != 0xFF) + || sMonAnimTaskIdArray[0] != TASK_NONE || sMonAnimTaskIdArray[1] != TASK_NONE) { sSoundAnimFramesToWait = 0; sAnimFramesToWait = 1; @@ -2128,13 +506,13 @@ static void ScriptCmd_end(void) if (!continuousAnim) { m4aMPlayVolumeControl(&gMPlayInfo_BGM, TRACKS_ALL, 256); - ResetSpritePriorityOfAllVisibleBattlers(); + InitPrioritiesForVisibleBattlers(); UpdateOamPriorityInAllHealthboxes(1); gAnimScriptActive = FALSE; } } -static void ScriptCmd_playse(void) +static void Cmd_playse(void) { sBattleAnimScriptPtr++; PlaySE(T1_READ_16(sBattleAnimScriptPtr)); @@ -2150,7 +528,7 @@ static void ScriptCmd_playse(void) #define t2_MON_IN_BG2 5 #define t2_MONBG_BATTLER 6 -static void ScriptCmd_monbg(void) +static void Cmd_monbg(void) { bool8 toBG_2; u8 taskId; @@ -2171,6 +549,7 @@ static void ScriptCmd_monbg(void) else battlerId = gBattleAnimTarget; + // Move designated battler to background if (IsBattlerSpriteVisible(battlerId)) { position = GetBattlerPosition(battlerId); @@ -2181,7 +560,7 @@ static void ScriptCmd_monbg(void) MoveBattlerSpriteToBG(battlerId, toBG_2); spriteId = gBattlerSpriteIds[battlerId]; - taskId = CreateTask(task_pA_ma0A_obj_to_bg_pal, 10); + taskId = CreateTask(Task_InitUpdateMonBg, 10); gTasks[taskId].data[t1_MONBG_BATTLER] = spriteId; gTasks[taskId].data[1] = gSprites[spriteId].x + gSprites[spriteId].x2; gTasks[taskId].data[2] = gSprites[spriteId].y + gSprites[spriteId].y2; @@ -2212,7 +591,7 @@ static void ScriptCmd_monbg(void) MoveBattlerSpriteToBG(battlerId, toBG_2); spriteId = gBattlerSpriteIds[battlerId]; - taskId = CreateTask(task_pA_ma0A_obj_to_bg_pal, 10); + taskId = CreateTask(Task_InitUpdateMonBg, 10); gTasks[taskId].data[t1_MONBG_BATTLER] = spriteId; gTasks[taskId].data[1] = gSprites[spriteId].x + gSprites[spriteId].x2; gTasks[taskId].data[2] = gSprites[spriteId].y + gSprites[spriteId].y2; @@ -2346,7 +725,7 @@ void ResetBattleAnimBg(bool8 to_BG2) } } -static void task_pA_ma0A_obj_to_bg_pal(u8 taskId) +static void Task_InitUpdateMonBg(u8 taskId) { u8 spriteId, palIndex; s16 x, y; @@ -2382,7 +761,7 @@ static void task_pA_ma0A_obj_to_bg_pal(u8 taskId) } } -static void ScriptCmd_clearmonbg(void) +static void Cmd_clearmonbg(void) { u8 animBattlerId; u8 battlerId; @@ -2400,21 +779,21 @@ static void ScriptCmd_clearmonbg(void) else battlerId = gBattleAnimTarget; - if (sMonAnimTaskIdArray[0] != 0xFF) + if (sMonAnimTaskIdArray[0] != TASK_NONE) gSprites[gBattlerSpriteIds[battlerId]].invisible = FALSE; - if (animBattlerId > ANIM_TARGET && sMonAnimTaskIdArray[1] != 0xFF) + if (animBattlerId > ANIM_TARGET && sMonAnimTaskIdArray[1] != TASK_NONE) gSprites[gBattlerSpriteIds[battlerId ^ BIT_FLANK]].invisible = FALSE; else animBattlerId = ANIM_ATTACKER; - taskId = CreateTask(sub_807331C, 5); + taskId = CreateTask(Task_ClearMonBg, 5); gTasks[taskId].data[0] = animBattlerId; gTasks[taskId].data[2] = battlerId; sBattleAnimScriptPtr++; } -static void sub_807331C(u8 taskId) +static void Task_ClearMonBg(u8 taskId) { u8 toBG_2; u8 position; @@ -2428,23 +807,24 @@ static void sub_807331C(u8 taskId) else toBG_2 = TRUE; - if (sMonAnimTaskIdArray[0] != 0xFF) + if (sMonAnimTaskIdArray[0] != TASK_NONE) { ResetBattleAnimBg(toBG_2); DestroyTask(sMonAnimTaskIdArray[0]); - sMonAnimTaskIdArray[0] = 0xFF; + sMonAnimTaskIdArray[0] = TASK_NONE; } if (gTasks[taskId].data[0] > 1) { ResetBattleAnimBg(toBG_2 ^ 1); DestroyTask(sMonAnimTaskIdArray[1]); - sMonAnimTaskIdArray[1] = 0xFF; + sMonAnimTaskIdArray[1] = TASK_NONE; } DestroyTask(taskId); } } -static void ScriptCmd_monbg_22(void) +// Equivalent to Cmd_monbg but never creates Task_InitUpdateMonBg / Task_UpdateMonBg +static void Cmd_monbg_static(void) { bool8 toBG_2; u8 battlerId; @@ -2491,7 +871,7 @@ static void ScriptCmd_monbg_22(void) sBattleAnimScriptPtr++; } -static void ScriptCmd_clearmonbg_23(void) +static void Cmd_clearmonbg_static(void) { u8 animBattlerId; u8 battlerId; @@ -2517,14 +897,14 @@ static void ScriptCmd_clearmonbg_23(void) else animBattlerId = ANIM_ATTACKER; - taskId = CreateTask(sub_8073558, 5); + taskId = CreateTask(Task_ClearMonBgStatic, 5); gTasks[taskId].data[0] = animBattlerId; gTasks[taskId].data[2] = battlerId; sBattleAnimScriptPtr++; } -static void sub_8073558(u8 taskId) +static void Task_ClearMonBgStatic(u8 taskId) { bool8 to_BG2; u8 position; @@ -2560,7 +940,7 @@ static void sub_8073558(u8 taskId) #undef t2_MON_IN_BG2 #undef t2_MONBG_BATTLER -static void ScriptCmd_setalpha(void) +static void Cmd_setalpha(void) { u16 half1, half2; @@ -2571,7 +951,7 @@ static void ScriptCmd_setalpha(void) SetGpuReg(REG_OFFSET_BLDALPHA, half1 | half2); } -static void ScriptCmd_setbldcnt(void) +static void Cmd_setbldcnt(void) { u16 half1, half2; @@ -2581,26 +961,26 @@ static void ScriptCmd_setbldcnt(void) SetGpuReg(REG_OFFSET_BLDCNT, half1 | half2); } -static void ScriptCmd_blendoff(void) +static void Cmd_blendoff(void) { sBattleAnimScriptPtr++; SetGpuReg(REG_OFFSET_BLDCNT, 0); SetGpuReg(REG_OFFSET_BLDALPHA, 0); } -static void ScriptCmd_call(void) +static void Cmd_call(void) { sBattleAnimScriptPtr++; sBattleAnimScriptRetAddr = sBattleAnimScriptPtr + 4; sBattleAnimScriptPtr = T2_READ_PTR(sBattleAnimScriptPtr); } -static void ScriptCmd_return(void) +static void Cmd_return(void) { sBattleAnimScriptPtr = sBattleAnimScriptRetAddr; } -static void ScriptCmd_setarg(void) +static void Cmd_setarg(void) { const u8 *addr = sBattleAnimScriptPtr; u16 value; @@ -2614,7 +994,7 @@ static void ScriptCmd_setarg(void) gBattleAnimArgs[argId] = value; } -static void ScriptCmd_choosetwoturnanim(void) +static void Cmd_choosetwoturnanim(void) { sBattleAnimScriptPtr++; if (gAnimMoveTurn & 1) @@ -2622,7 +1002,7 @@ static void ScriptCmd_choosetwoturnanim(void) sBattleAnimScriptPtr = T2_READ_PTR(sBattleAnimScriptPtr); } -static void ScriptCmd_jumpifmoveturn(void) +static void Cmd_jumpifmoveturn(void) { u8 toCheck; @@ -2636,7 +1016,7 @@ static void ScriptCmd_jumpifmoveturn(void) sBattleAnimScriptPtr += 4; } -static void ScriptCmd_goto(void) +static void Cmd_goto(void) { sBattleAnimScriptPtr++; sBattleAnimScriptPtr = T2_READ_PTR(sBattleAnimScriptPtr); @@ -2648,9 +1028,9 @@ bool8 IsContest(void) } // Unused -static bool8 sub_807378C(u16 a) +static bool8 IsSpeciesNotUnown(u16 species) { - if (a == 0xC9) + if (species == SPECIES_UNOWN) return FALSE; else return TRUE; @@ -2659,7 +1039,7 @@ static bool8 sub_807378C(u16 a) #define tBackgroundId data[0] #define tState data[10] -static void ScriptCmd_fadetobg(void) +static void Cmd_fadetobg(void) { u8 backgroundId; u8 taskId; @@ -2672,7 +1052,7 @@ static void ScriptCmd_fadetobg(void) sAnimBackgroundFadeState = 1; } -static void ScriptCmd_fadetobgfromset(void) +static void Cmd_fadetobgfromset(void) { u8 bg1, bg2, bg3; u8 taskId; @@ -2741,7 +1121,7 @@ static void LoadDefaultBg(void) DrawMainBattleBackground(); } -static void ScriptCmd_restorebg(void) +static void Cmd_restorebg(void) { u8 taskId; @@ -2754,7 +1134,7 @@ static void ScriptCmd_restorebg(void) #undef tBackgroundId #undef tState -static void ScriptCmd_waitbgfadeout(void) +static void Cmd_waitbgfadeout(void) { if (sAnimBackgroundFadeState == 2) { @@ -2767,7 +1147,7 @@ static void ScriptCmd_waitbgfadeout(void) } } -static void ScriptCmd_waitbgfadein(void) +static void Cmd_waitbgfadein(void) { if (sAnimBackgroundFadeState == 0) { @@ -2780,7 +1160,7 @@ static void ScriptCmd_waitbgfadein(void) } } -static void ScriptCmd_changebg(void) +static void Cmd_changebg(void) { sBattleAnimScriptPtr++; LoadMoveBg(sBattleAnimScriptPtr[0]); @@ -2867,7 +1247,7 @@ s16 CalculatePanIncrement(s16 sourcePan, s16 targetPan, s16 incrementPan) return ret; } -static void ScriptCmd_playsewithpan(void) +static void Cmd_playsewithpan(void) { u16 songId; s8 pan; @@ -2879,7 +1259,7 @@ static void ScriptCmd_playsewithpan(void) sBattleAnimScriptPtr += 3; } -static void ScriptCmd_setpan(void) +static void Cmd_setpan(void) { s8 pan; @@ -2896,7 +1276,7 @@ static void ScriptCmd_setpan(void) #define tCurrentPan data[4] #define tFrameCounter data[8] -static void ScriptCmd_panse_1B(void) +static void Cmd_panse(void) { u16 songNum; s8 currentPanArg, incrementPan, incrementPanArg, currentPan, targetPan; @@ -2968,7 +1348,7 @@ static void Task_PanFromInitialToTarget(u8 taskId) } } -static void ScriptCmd_panse_26(void) +static void Cmd_panse_adjustnone(void) { u16 songId; s8 currentPan, targetPan, incrementPan; @@ -2995,7 +1375,7 @@ static void ScriptCmd_panse_26(void) sBattleAnimScriptPtr += 6; } -static void ScriptCmd_panse_27(void) +static void Cmd_panse_adjustall(void) { u16 songId; s8 targetPanArg, incrementPanArg, currentPanArg, currentPan, targetPan, incrementPan; @@ -3039,7 +1419,7 @@ static void ScriptCmd_panse_27(void) #define tNumberOfPlays data[3] #define tFrameCounter data[8] -static void ScriptCmd_loopsewithpan(void) +static void Cmd_loopsewithpan(void) { u16 songId; s8 panningArg, panning; @@ -3096,7 +1476,7 @@ static void Task_LoopAndPlaySE(u8 taskId) #define tPanning data[1] #define tFramesToWait data[2] -static void ScriptCmd_waitplaysewithpan(void) +static void Cmd_waitplaysewithpan(void) { u16 songId; s8 panningArg, panning; @@ -3132,7 +1512,7 @@ static void Task_WaitAndPlaySE(u8 taskId) #undef tPanning #undef tFramesToWait -static void ScriptCmd_createsoundtask(void) +static void Cmd_createsoundtask(void) { TaskFunc func; u8 numArgs, taskId; @@ -3153,7 +1533,7 @@ static void ScriptCmd_createsoundtask(void) gAnimSoundTaskCount++; } -static void ScriptCmd_waitsound(void) +static void Cmd_waitsound(void) { if (gAnimSoundTaskCount != 0) { @@ -3181,7 +1561,7 @@ static void ScriptCmd_waitsound(void) } } -static void ScriptCmd_jumpargeq(void) +static void Cmd_jumpargeq(void) { u8 argId; s16 valueToCheck; @@ -3196,12 +1576,12 @@ static void ScriptCmd_jumpargeq(void) sBattleAnimScriptPtr += 7; } -static void ScriptCmd_jumpifcontest(void) +static void Cmd_jumpifcontest(void) { sBattleAnimScriptPtr += 5; } -static void ScriptCmd_monbgprio_28(void) +static void Cmd_splitbgprio(void) { u8 wantedBattler; u8 battlerId; @@ -3215,6 +1595,7 @@ static void ScriptCmd_monbgprio_28(void) else battlerId = gBattleAnimAttacker; + // Apply only if the given battler is the lead (on left from team's perspective) battlerPosition = GetBattlerPosition(battlerId); if (battlerPosition == B_POSITION_PLAYER_LEFT || battlerPosition == B_POSITION_OPPONENT_RIGHT) { @@ -3223,14 +1604,14 @@ static void ScriptCmd_monbgprio_28(void) } } -static void ScriptCmd_monbgprio_29(void) +static void Cmd_splitbgprio_all(void) { sBattleAnimScriptPtr++; SetAnimBgAttribute(1, BG_ANIM_PRIORITY, 1); SetAnimBgAttribute(2, BG_ANIM_PRIORITY, 2); } -static void ScriptCmd_monbgprio_2A(void) +static void Cmd_splitbgprio_foes(void) { u8 wantedBattler; u8 battlerPosition; @@ -3238,6 +1619,8 @@ static void ScriptCmd_monbgprio_2A(void) wantedBattler = sBattleAnimScriptPtr[1]; sBattleAnimScriptPtr += 2; + + // Apply only if the attacking the opposing side if (GetBattlerSide(gBattleAnimAttacker) != GetBattlerSide(gBattleAnimTarget)) { if (wantedBattler != ANIM_ATTACKER) @@ -3245,6 +1628,7 @@ static void ScriptCmd_monbgprio_2A(void) else battlerId = gBattleAnimAttacker; + // Apply only if the given battler is the lead (on left from team's perspective) battlerPosition = GetBattlerPosition(battlerId); if (battlerPosition == B_POSITION_PLAYER_LEFT || battlerPosition == B_POSITION_OPPONENT_RIGHT) { @@ -3254,29 +1638,30 @@ static void ScriptCmd_monbgprio_2A(void) } } -static void ScriptCmd_invisible(void) +static void Cmd_invisible(void) { u8 spriteId; spriteId = GetAnimBattlerSpriteId(sBattleAnimScriptPtr[1]); - if (spriteId != 0xFF) + if (spriteId != SPRITE_NONE) gSprites[spriteId].invisible = TRUE; sBattleAnimScriptPtr += 2; } -static void ScriptCmd_visible(void) +static void Cmd_visible(void) { u8 spriteId; spriteId = GetAnimBattlerSpriteId(sBattleAnimScriptPtr[1]); - if (spriteId != 0xFF) + if (spriteId != SPRITE_NONE) gSprites[spriteId].invisible = FALSE; sBattleAnimScriptPtr += 2; } -static void ScriptCmd_doublebattle_2D(void) +// Below two commands are never used +static void Cmd_teamattack_moveback(void) { u8 wantedBattler; u8 priority; @@ -3284,6 +1669,8 @@ static void ScriptCmd_doublebattle_2D(void) wantedBattler = sBattleAnimScriptPtr[1]; sBattleAnimScriptPtr += 2; + + // Apply to double battles when attacking own side if (IsDoubleBattle() && GetBattlerSide(gBattleAnimAttacker) == GetBattlerSide(gBattleAnimTarget)) { @@ -3297,7 +1684,7 @@ static void ScriptCmd_doublebattle_2D(void) priority = GetBattlerSpriteBGPriorityRank(gBattleAnimTarget); spriteId = GetAnimBattlerSpriteId(ANIM_TARGET); } - if (spriteId != 0xFF) + if (spriteId != SPRITE_NONE) { gSprites[spriteId].invisible = FALSE; if (priority == 2) @@ -3311,7 +1698,7 @@ static void ScriptCmd_doublebattle_2D(void) } } -static void ScriptCmd_doublebattle_2E(void) +static void Cmd_teamattack_movefwd(void) { u8 wantedBattler; u8 priority; @@ -3319,6 +1706,8 @@ static void ScriptCmd_doublebattle_2E(void) wantedBattler = sBattleAnimScriptPtr[1]; sBattleAnimScriptPtr += 2; + + // Apply to double battles when attacking own side if (IsDoubleBattle() && GetBattlerSide(gBattleAnimAttacker) == GetBattlerSide(gBattleAnimTarget)) { @@ -3333,12 +1722,12 @@ static void ScriptCmd_doublebattle_2E(void) spriteId = GetAnimBattlerSpriteId(ANIM_TARGET); } - if (spriteId != 0xFF && priority == 2) + if (spriteId != SPRITE_NONE && priority == 2) gSprites[spriteId].oam.priority = 2; } } -static void ScriptCmd_stopsound(void) +static void Cmd_stopsound(void) { m4aMPlayStop(&gMPlayInfo_SE1); m4aMPlayStop(&gMPlayInfo_SE2); diff --git a/src/bug.c b/src/battle_anim_bug.c similarity index 82% rename from src/bug.c rename to src/battle_anim_bug.c index 32d2f3b3f..15e94665b 100644 --- a/src/bug.c +++ b/src/battle_anim_bug.c @@ -6,16 +6,16 @@ static void AnimMegahornHorn(struct Sprite *sprite); static void AnimLeechLifeNeedle(struct Sprite *sprite); static void AnimTranslateWebThread(struct Sprite *sprite); +static void AnimTranslateWebThread_Step(struct Sprite *sprite); static void AnimStringWrap(struct Sprite *sprite); +static void AnimStringWrap_Step(struct Sprite *sprite); static void AnimSpiderWeb(struct Sprite *sprite); +static void AnimSpiderWeb_Step(struct Sprite *sprite); +static void AnimSpiderWeb_End(struct Sprite *sprite); static void AnimTranslateStinger(struct Sprite *sprite); static void AnimMissileArc(struct Sprite *sprite); +static void AnimMissileArc_Step(struct Sprite *sprite); static void AnimTailGlowOrb(struct Sprite *sprite); -static void sub_80B41C0(struct Sprite *sprite); -static void sub_80B4274(struct Sprite *sprite); -static void sub_80B42E8(struct Sprite *sprite); -static void sub_80B4344(struct Sprite *sprite); -static void AnimMissileArcStep(struct Sprite *sprite); static const union AffineAnimCmd sAffineAnim_MegahornHorn_0[] = { @@ -210,11 +210,11 @@ static void AnimMegahornHorn(struct Sprite *sprite) gBattleAnimArgs[3] = -gBattleAnimArgs[3]; gBattleAnimArgs[0] = -gBattleAnimArgs[0]; } - sprite->x = GetBattlerSpriteCoord2(gBattleAnimTarget, 2) + gBattleAnimArgs[0]; - sprite->y = GetBattlerSpriteCoord2(gBattleAnimTarget, 3) + gBattleAnimArgs[1]; + sprite->x = GetBattlerSpriteCoord2(gBattleAnimTarget, BATTLER_COORD_X_2) + gBattleAnimArgs[0]; + sprite->y = GetBattlerSpriteCoord2(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[1]; sprite->data[0] = gBattleAnimArgs[4]; - sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2) + gBattleAnimArgs[2]; - sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + gBattleAnimArgs[3]; + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + gBattleAnimArgs[2]; + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[3]; sprite->callback = StartAnimLinearTranslation; StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } @@ -231,11 +231,11 @@ static void AnimLeechLifeNeedle(struct Sprite *sprite) gBattleAnimArgs[1] = -gBattleAnimArgs[1]; gBattleAnimArgs[0] = -gBattleAnimArgs[0]; } - sprite->x = GetBattlerSpriteCoord2(gBattleAnimTarget, 2) + gBattleAnimArgs[0]; - sprite->y = GetBattlerSpriteCoord2(gBattleAnimTarget, 3) + gBattleAnimArgs[1]; + sprite->x = GetBattlerSpriteCoord2(gBattleAnimTarget, BATTLER_COORD_X_2) + gBattleAnimArgs[0]; + sprite->y = GetBattlerSpriteCoord2(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[1]; sprite->data[0] = gBattleAnimArgs[2]; - sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2); - sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); sprite->callback = StartAnimLinearTranslation; StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } @@ -257,19 +257,19 @@ static void AnimTranslateWebThread(struct Sprite *sprite) sprite->data[3] = sprite->y; if (!gBattleAnimArgs[4]) { - sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2); - sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); } else { SetAverageBattlerPositions(gBattleAnimTarget, 1, &sprite->data[2], &sprite->data[4]); } - BattleAnim_InitLinearTranslationWithDuration(sprite); + InitAnimLinearTranslationWithSpeed(sprite); sprite->data[5] = gBattleAnimArgs[3]; - sprite->callback = sub_80B41C0; + sprite->callback = AnimTranslateWebThread_Step; } -static void sub_80B41C0(struct Sprite *sprite) +static void AnimTranslateWebThread_Step(struct Sprite *sprite) { if (AnimTranslateLinear(sprite)) { @@ -290,10 +290,10 @@ static void AnimStringWrap(struct Sprite *sprite) sprite->y += gBattleAnimArgs[1]; if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER) sprite->y += 8; - sprite->callback = sub_80B4274; + sprite->callback = AnimStringWrap_Step; } -static void sub_80B4274(struct Sprite *sprite) +static void AnimStringWrap_Step(struct Sprite *sprite) { if (++sprite->data[0] == 3) { @@ -311,10 +311,10 @@ static void AnimSpiderWeb(struct Sprite *sprite) SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(16, 0)); sprite->data[0] = 16; - sprite->callback = sub_80B42E8; + sprite->callback = AnimSpiderWeb_Step; } -static void sub_80B42E8(struct Sprite *sprite) +static void AnimSpiderWeb_Step(struct Sprite *sprite) { if (sprite->data[2] < 20) { @@ -328,12 +328,12 @@ static void sub_80B42E8(struct Sprite *sprite) if (sprite->data[0] == 0) { sprite->invisible = TRUE; - sprite->callback = sub_80B4344; + sprite->callback = AnimSpiderWeb_End; } } } -static void sub_80B4344(struct Sprite *sprite) +static void AnimSpiderWeb_End(struct Sprite *sprite) { SetGpuReg(REG_OFFSET_BLDCNT, 0); SetGpuReg(REG_OFFSET_BLDALPHA, 0); @@ -377,8 +377,8 @@ static void AnimTranslateStinger(struct Sprite *sprite) } } InitSpritePosToAnimAttacker(sprite, 1); - lVarX = GetBattlerSpriteCoord(gBattleAnimTarget, 2) + gBattleAnimArgs[2]; - lVarY = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + gBattleAnimArgs[3]; + lVarX = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + gBattleAnimArgs[2]; + lVarY = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[3]; rot = ArcTan2Neg(lVarX - sprite->x, lVarY - sprite->y); rot += 0xC000; TrySetSpriteRotScale(sprite, FALSE, 0x100, 0x100, rot); @@ -402,15 +402,15 @@ static void AnimMissileArc(struct Sprite *sprite) if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) gBattleAnimArgs[2] = -gBattleAnimArgs[2]; sprite->data[0] = gBattleAnimArgs[4]; - sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2) + gBattleAnimArgs[2]; - sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + gBattleAnimArgs[3]; + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + gBattleAnimArgs[2]; + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[3]; sprite->data[5] = gBattleAnimArgs[5]; InitAnimArcTranslation(sprite); - sprite->callback = AnimMissileArcStep; + sprite->callback = AnimMissileArc_Step; sprite->invisible = TRUE; } -static void AnimMissileArcStep(struct Sprite *sprite) +static void AnimMissileArc_Step(struct Sprite *sprite) { sprite->invisible = FALSE; @@ -447,15 +447,15 @@ static void AnimMissileArcStep(struct Sprite *sprite) static void AnimTailGlowOrb(struct Sprite *sprite) { - if (gBattleAnimArgs[0] == 0) + if (gBattleAnimArgs[0] == ANIM_ATTACKER) { - sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); - sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3) + 18; + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET) + 18; } else { - sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, 2); - sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + 18; + sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); + sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + 18; } StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix); sprite->callback = RunStoredCallbackWhenAffineAnimEnds; diff --git a/src/dark.c b/src/battle_anim_dark.c similarity index 90% rename from src/dark.c rename to src/battle_anim_dark.c index 9b12555d9..39e19bda7 100644 --- a/src/dark.c +++ b/src/battle_anim_dark.c @@ -6,23 +6,24 @@ #include "trig.h" #include "util.h" -static void sub_80B7ACC(struct Sprite *sprite); +static void AnimUnusedBagSteal(struct Sprite *sprite); +static void AnimUnusedBagSteal_Step(struct Sprite *sprite); static void AnimBite(struct Sprite *sprite); static void AnimTearDrop(struct Sprite *sprite); static void AnimClawSlash(struct Sprite *sprite); static void AnimTask_AttackerFadeToInvisible_Step(u8 taskId); static void AnimTask_AttackerFadeFromInvisible_Step(u8 taskId); -static void sub_80B7B48(struct Sprite *sprite); -static void sub_80B7C10(struct Sprite *sprite); -static void sub_80B7C50(struct Sprite *sprite); -static void sub_80B7D88(struct Sprite *sprite); -static void sub_80B856C(u8 priority); -static void sub_80B7F58(u8 taskId); -static void sub_80B843C(struct Task *task); -static void sub_80B82C0(u8 taskId); -static void sub_80B8920(u8 taskId); +static void AnimBite_Step1(struct Sprite *sprite); +static void AnimBite_Step2(struct Sprite *sprite); +static void AnimTearDrop_Step(struct Sprite *sprite); +static void SetAllBattlersSpritePriority(u8 priority); +static void AnimTask_MoveAttackerMementoShadow_Step(u8 taskId); +static void DoMementoShadowEffect(struct Task *task); +static void AnimTask_MoveTargetMementoShadow_Step(u8 taskId); +static void AnimTask_MetallicShine_Step(u8 taskId); -const struct SpriteTemplate gUnknown_83E7878 = +// Unused +const struct SpriteTemplate sUnusedBagStealSpriteTemplate = { .tileTag = ANIM_TAG_TIED_BAG, .paletteTag = ANIM_TAG_TIED_BAG, @@ -30,7 +31,7 @@ const struct SpriteTemplate gUnknown_83E7878 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B7ACC, + .callback = AnimUnusedBagSteal, }; static const union AffineAnimCmd sAffineAnim_Bite_0[] = @@ -265,7 +266,7 @@ void AnimTask_InitAttackerFadeFromInvisible(u8 taskId) DestroyAnimVisualTask(taskId); } -static void sub_80B7ACC(struct Sprite *sprite) +static void AnimUnusedBagSteal(struct Sprite *sprite) { sprite->data[1] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); @@ -276,11 +277,11 @@ static void sub_80B7ACC(struct Sprite *sprite) sprite->data[3] = -sprite->data[1]; sprite->data[4] = -sprite->data[2]; sprite->data[6] = 0xFFD8; - sprite->callback = sub_80B7B48; + sprite->callback = AnimUnusedBagSteal_Step; sprite->callback(sprite); } -static void sub_80B7B48(struct Sprite *sprite) +static void AnimUnusedBagSteal_Step(struct Sprite *sprite) { sprite->data[3] += sprite->data[1]; sprite->data[4] += sprite->data[2]; @@ -306,6 +307,7 @@ static void sub_80B7B48(struct Sprite *sprite) DestroyAnimSprite(sprite); } +// Move sprite inward for Bite/Crunch and Clamp static void AnimBite(struct Sprite *sprite) { sprite->x += gBattleAnimArgs[0]; @@ -314,20 +316,20 @@ static void AnimBite(struct Sprite *sprite) sprite->data[0] = gBattleAnimArgs[3]; sprite->data[1] = gBattleAnimArgs[4]; sprite->data[2] = gBattleAnimArgs[5]; - sprite->callback = sub_80B7C10; + sprite->callback = AnimBite_Step1; } -static void sub_80B7C10(struct Sprite *sprite) +static void AnimBite_Step1(struct Sprite *sprite) { sprite->data[4] += sprite->data[0]; sprite->data[5] += sprite->data[1]; sprite->x2 = sprite->data[4] >> 8; sprite->y2 = sprite->data[5] >> 8; if (++sprite->data[3] == sprite->data[2]) - sprite->callback = sub_80B7C50; + sprite->callback = AnimBite_Step2; } -static void sub_80B7C50(struct Sprite *sprite) +static void AnimBite_Step2(struct Sprite *sprite) { sprite->data[4] -= sprite->data[0]; sprite->data[5] -= sprite->data[1]; @@ -337,12 +339,13 @@ static void sub_80B7C50(struct Sprite *sprite) DestroySpriteAndMatrix(sprite); } +// Launches a tear drop away from the battler. Used by Fake Tears static void AnimTearDrop(struct Sprite *sprite) { u8 battler; s8 xOffset; - if (gBattleAnimArgs[0] == 0) + if (gBattleAnimArgs[0] == ANIM_ATTACKER) battler = gBattleAnimAttacker; else battler = gBattleAnimTarget; @@ -376,10 +379,10 @@ static void AnimTearDrop(struct Sprite *sprite) sprite->data[4] = sprite->y + 12; sprite->data[5] = -12; InitAnimArcTranslation(sprite); - sprite->callback = sub_80B7D88; + sprite->callback = AnimTearDrop_Step; } -static void sub_80B7D88(struct Sprite *sprite) +static void AnimTearDrop_Step(struct Sprite *sprite) { if (TranslateAnimHorizontalArc(sprite)) DestroySpriteAndMatrix(sprite); @@ -416,7 +419,7 @@ void AnimTask_MoveAttackerMementoShadow(u8 taskId) scanlineParams.dmaDest = ®_BG1VOFS; var0 = WINOUT_WIN01_BG1; if (!IsContest()) - gBattle_BG2_X += 240; + gBattle_BG2_X += DISPLAY_WIDTH; } else { @@ -426,7 +429,7 @@ void AnimTask_MoveAttackerMementoShadow(u8 taskId) scanlineParams.dmaDest = ®_BG2VOFS; var0 = WINOUT_WIN01_BG2; if (!IsContest()) - gBattle_BG1_X += 240; + gBattle_BG1_X += DISPLAY_WIDTH; } scanlineParams.dmaControl = SCANLINE_EFFECT_DMACNT_16BIT; scanlineParams.initState = 1; @@ -436,7 +439,7 @@ void AnimTask_MoveAttackerMementoShadow(u8 taskId) task->data[0] = 0; task->data[1] = 0; task->data[2] = 0; - sub_80B856C(3); + SetAllBattlersSpritePriority(3); for (i = 0; i < 112; ++i) { gScanlineEffectRegBuffers[0][i] = task->data[10]; @@ -446,12 +449,12 @@ void AnimTask_MoveAttackerMementoShadow(u8 taskId) SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WINOBJ_BG_ALL | WINOUT_WINOBJ_OBJ | WINOUT_WINOBJ_CLR | (var0 ^ (WINOUT_WIN01_BG_ALL | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR))); SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG_ALL | WININ_WIN1_OBJ | WININ_WIN1_CLR); gBattle_WIN0H = (task->data[14] << 8) | task->data[15]; - gBattle_WIN0V = 160; + gBattle_WIN0V = DISPLAY_HEIGHT; - task->func = sub_80B7F58; + task->func = AnimTask_MoveAttackerMementoShadow_Step; } -static void sub_80B7F58(u8 taskId) +static void AnimTask_MoveAttackerMementoShadow_Step(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -477,13 +480,13 @@ static void sub_80B7F58(u8 taskId) break; case 1: task->data[4] -= 8; - sub_80B843C(task); + DoMementoShadowEffect(task); if (task->data[4] < task->data[8]) ++task->data[0]; break; case 2: task->data[4] -= 8; - sub_80B843C(task); + DoMementoShadowEffect(task); task->data[14] += 4; task->data[15] -= 4; if (task->data[14] >= task->data[15]) @@ -527,12 +530,12 @@ void AnimTask_MoveTargetMementoShadow(u8 taskId) if (task->data[3] == 1) { SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND | BLDCNT_TGT1_BG1); - gBattle_BG2_X += 240; + gBattle_BG2_X += DISPLAY_WIDTH; } else { SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND | BLDCNT_TGT1_BG2); - gBattle_BG1_X += 240; + gBattle_BG1_X += DISPLAY_WIDTH; } ++task->data[0]; } @@ -549,7 +552,7 @@ void AnimTask_MoveTargetMementoShadow(u8 taskId) task->data[10] = gBattle_BG2_Y; FillPalette(RGB_BLACK, 9 * 16, 32); } - sub_80B856C(3); + SetAllBattlersSpritePriority(3); ++task->data[0]; break; case 2: @@ -592,17 +595,17 @@ void AnimTask_MoveTargetMementoShadow(u8 taskId) SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WINOBJ_BG_ALL | WINOUT_WINOBJ_OBJ | WINOUT_WINOBJ_CLR | WINOUT_WIN01_BG0 | WINOUT_WIN01_BG1 | WINOUT_WIN01_BG3 | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR); SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG_ALL | WININ_WIN1_OBJ | WININ_WIN1_CLR); gBattle_WIN0H = (task->data[14] << 8) | task->data[15]; - gBattle_WIN0V = 160; + gBattle_WIN0V = DISPLAY_HEIGHT; task->data[0] = 0; task->data[1] = 0; task->data[2] = 0; SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(12, 8)); - task->func = sub_80B82C0; + task->func = AnimTask_MoveTargetMementoShadow_Step; break; } } -static void sub_80B82C0(u8 taskId) +static void AnimTask_MoveTargetMementoShadow_Step(u8 taskId) { u8 pos; u16 i; @@ -614,7 +617,7 @@ static void sub_80B82C0(u8 taskId) task->data[5] += 8; if (task->data[5] >= task->data[7]) task->data[5] = task->data[7]; - sub_80B843C(task); + DoMementoShadowEffect(task); if (task->data[5] == task->data[7]) ++task->data[0]; break; @@ -632,7 +635,7 @@ static void sub_80B82C0(u8 taskId) task->data[4] += 8; if (task->data[4] >= task->data[6]) task->data[4] = task->data[6]; - sub_80B843C(task); + DoMementoShadowEffect(task); if (task->data[4] == task->data[6] && task->data[1]) { task->data[1] = 0; @@ -672,7 +675,7 @@ static void sub_80B82C0(u8 taskId) } } -static void sub_80B843C(struct Task *task) +static void DoMementoShadowEffect(struct Task *task) { s32 var0, var1, var4; s16 var2, i; @@ -711,15 +714,14 @@ static void sub_80B843C(struct Task *task) } } -static void sub_80B856C(u8 priority) +static void SetAllBattlersSpritePriority(u8 priority) { u16 i; for (i = 0; i < MAX_BATTLERS_COUNT; ++i) { u8 spriteId = GetAnimBattlerSpriteId(i); - - if (spriteId != 0xFF) + if (spriteId != SPRITE_NONE) gSprites[spriteId].oam.priority = priority; } } @@ -738,7 +740,7 @@ void AnimTask_InitMementoShadow(u8 taskId) DestroyAnimVisualTask(taskId); } -void sub_80B8664(u8 taskId) +void AnimTask_MementoHandleBg(u8 taskId) { bool8 toBG2 = GetBattlerSpriteBGPriorityRank(gBattleAnimAttacker) ^ 1 ? TRUE : FALSE; @@ -748,6 +750,7 @@ void sub_80B8664(u8 taskId) DestroyAnimVisualTask(taskId); } +// Animates a deep slash from a claw. Used by Metal Claw, Dragon Claw, and Crush Claw static void AnimClawSlash(struct Sprite *sprite) { sprite->x += gBattleAnimArgs[0]; @@ -799,7 +802,7 @@ void AnimTask_MetallicShine(u8 taskId) else species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_SPECIES); spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER); - newSpriteId = CreateCloneOfSpriteInWindowMode(gBattleAnimAttacker, spriteId, species); + newSpriteId = CreateInvisibleSpriteCopy(gBattleAnimAttacker, spriteId, species); GetBattleAnimBg1Data(&animBg); AnimLoadCompressedBgTilemap(animBg.bgId, gMetalShineTilemap); AnimLoadCompressedBgGfx(animBg.bgId, gMetalShineGfx, animBg.tilesOffset); @@ -816,10 +819,10 @@ void AnimTask_MetallicShine(u8 taskId) gTasks[taskId].data[2] = gBattleAnimArgs[1]; gTasks[taskId].data[3] = gBattleAnimArgs[2]; gTasks[taskId].data[6] = priorityChanged; - gTasks[taskId].func = sub_80B8920; + gTasks[taskId].func = AnimTask_MetallicShine_Step; } -static void sub_80B8920(u8 taskId) +static void AnimTask_MetallicShine_Step(u8 taskId) { struct BattleAnimBgData animBg; u16 paletteNum; @@ -863,7 +866,7 @@ static void sub_80B8920(u8 taskId) // Changes battler's palette to either greyscale or original. // arg0: which battler // arg1: 0 grayscale, 1 original -void AnimTask_SetGreyscaleOrOriginalPal(u8 taskId) +void AnimTask_SetGrayscaleOrOriginalPal(u8 taskId) { u8 spriteId, battler; bool8 calcSpriteId = FALSE; @@ -871,10 +874,10 @@ void AnimTask_SetGreyscaleOrOriginalPal(u8 taskId) switch (gBattleAnimArgs[0]) { - case 0: - case 1: - case 2: - case 3: + case ANIM_ATTACKER: + case ANIM_TARGET: + case ANIM_ATK_PARTNER: + case ANIM_DEF_PARTNER: spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); break; case 4: @@ -894,7 +897,7 @@ void AnimTask_SetGreyscaleOrOriginalPal(u8 taskId) calcSpriteId = TRUE; break; default: - spriteId = 0xFF; + spriteId = SPRITE_NONE; break; } if (calcSpriteId) @@ -903,9 +906,9 @@ void AnimTask_SetGreyscaleOrOriginalPal(u8 taskId) if (IsBattlerSpriteVisible(battler)) spriteId = gBattlerSpriteIds[battler]; else - spriteId = 0xFF; + spriteId = SPRITE_NONE; } - if (spriteId != 0xFF) + if (spriteId != SPRITE_NONE) SetGreyscaleOrOriginalPalette(gSprites[spriteId].oam.paletteNum + 16, gBattleAnimArgs[1]); DestroyAnimVisualTask(taskId); } @@ -913,8 +916,8 @@ void AnimTask_SetGreyscaleOrOriginalPal(u8 taskId) void GetIsDoomDesireHitTurn(u8 taskId) { if (gAnimMoveTurn < 2) - gBattleAnimArgs[7] = 0; + gBattleAnimArgs[ARG_RET_ID] = FALSE; if (gAnimMoveTurn == 2) - gBattleAnimArgs[7] = 1; + gBattleAnimArgs[ARG_RET_ID] = TRUE; DestroyAnimVisualTask(taskId); } diff --git a/src/dragon.c b/src/battle_anim_dragon.c similarity index 77% rename from src/dragon.c rename to src/battle_anim_dragon.c index cef5d219d..6cdcdb4e1 100644 --- a/src/dragon.c +++ b/src/battle_anim_dragon.c @@ -4,19 +4,19 @@ #include "task.h" #include "trig.h" -static void sub_80B725C(struct Sprite *sprite); +static void AnimOutrageFlame(struct Sprite *sprite); static void AnimDragonFireToTarget(struct Sprite *sprite); static void AnimDragonRageFirePlume(struct Sprite *sprite); static void AnimDragonDanceOrb(struct Sprite *sprite); static void AnimOverheatFlame(struct Sprite *sprite); -static void sub_80B74D8(struct Sprite *sprite); -static void sub_80B76B0(u8 taskId); -static void sub_80B776C(struct Task *task); -static void sub_80B7894(struct Sprite *sprite); +static void AnimDragonDanceOrb_Step(struct Sprite *sprite); +static void AnimTask_DragonDanceWaver_Step(u8 taskId); +static void UpdateDragonDanceScanlineEffect(struct Task *task); +static void AnimOverheatFlame_Step(struct Sprite *sprite); -static EWRAM_DATA u16 gUnknown_20399A4[7] = {0}; +static EWRAM_DATA u16 sUnusedOverheatData[7] = {0}; -static const union AnimCmd gUnknown_83E7710[] = +static const union AnimCmd sAnim_OutrageOverheatFire_0[] = { ANIMCMD_FRAME(0, 4), ANIMCMD_FRAME(16, 4), @@ -26,9 +26,9 @@ static const union AnimCmd gUnknown_83E7710[] = ANIMCMD_JUMP(0), }; -static const union AnimCmd *const gUnknown_83E7728[] = +static const union AnimCmd *const sAnims_OutrageOverheatFire[] = { - gUnknown_83E7710, + sAnim_OutrageOverheatFire_0, }; const struct SpriteTemplate gOutrageFlameSpriteTemplate = @@ -36,10 +36,10 @@ const struct SpriteTemplate gOutrageFlameSpriteTemplate = .tileTag = ANIM_TAG_SMALL_EMBER, .paletteTag = ANIM_TAG_SMALL_EMBER, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_83E7728, + .anims = sAnims_OutrageOverheatFire, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B725C, + .callback = AnimOutrageFlame, }; static const union AnimCmd sAnim_DragonBreathFire_0[] = @@ -180,16 +180,16 @@ const struct SpriteTemplate gOverheatFlameSpriteTemplate = .tileTag = ANIM_TAG_SMALL_EMBER, .paletteTag = ANIM_TAG_SMALL_EMBER, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_83E7728, + .anims = sAnims_OutrageOverheatFire, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimOverheatFlame, }; -static void sub_80B725C(struct Sprite *sprite) +static void AnimOutrageFlame(struct Sprite *sprite) { - sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); - sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) { sprite->x -= gBattleAnimArgs[0]; @@ -210,11 +210,11 @@ static void sub_80B725C(struct Sprite *sprite) sprite->callback = TranslateSpriteLinearAndFlicker; } -static void sub_80B72F8(struct Sprite *sprite) +static void StartDragonFireTranslation(struct Sprite *sprite) { SetSpriteCoordsToAnimAttackerCoords(sprite); - sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2); - sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) { sprite->x -= gBattleAnimArgs[1]; @@ -239,13 +239,13 @@ static void AnimDragonRageFirePlume(struct Sprite *sprite) { if (gBattleAnimArgs[0] == 0) { - sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0); - sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1); + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y); } else { - sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, 0); - sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, 1); + sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X); + sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y); } SetAnimSpriteInitialXOffset(sprite, gBattleAnimArgs[1]); sprite->y += gBattleAnimArgs[2]; @@ -253,11 +253,12 @@ static void AnimDragonRageFirePlume(struct Sprite *sprite) StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix); } +// For Dragon Breath and Dragon Rage static void AnimDragonFireToTarget(struct Sprite *sprite) { if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) StartSpriteAffineAnim(sprite, 1); - sub_80B72F8(sprite); + StartDragonFireTranslation(sprite); } static void AnimDragonDanceOrb(struct Sprite *sprite) @@ -265,8 +266,8 @@ static void AnimDragonDanceOrb(struct Sprite *sprite) u16 r5; u16 r0; - sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); - sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); sprite->data[4] = 0; sprite->data[5] = 1; sprite->data[6] = gBattleAnimArgs[0]; @@ -278,10 +279,10 @@ static void AnimDragonDanceOrb(struct Sprite *sprite) sprite->data[7] = r0 / 2; sprite->x2 = Cos(sprite->data[6], sprite->data[7]); sprite->y2 = Sin(sprite->data[6], sprite->data[7]); - sprite->callback = sub_80B74D8; + sprite->callback = AnimDragonDanceOrb_Step; } -static void sub_80B74D8(struct Sprite *sprite) +static void AnimDragonDanceOrb_Step(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -319,26 +320,28 @@ static void sub_80B74D8(struct Sprite *sprite) } } +// Wavers the attacker back and forth. Progressing vertical wave of scanline shifts +// Used by Dragon Dance void AnimTask_DragonDanceWaver(u8 taskId) { - struct ScanlineEffectParams sp; + struct ScanlineEffectParams scanlineParams; struct Task *task = &gTasks[taskId]; u16 i; u8 r1; if (GetBattlerSpriteBGPriorityRank(gBattleAnimAttacker) == 1) { - sp.dmaDest = ®_BG1HOFS; + scanlineParams.dmaDest = ®_BG1HOFS; task->data[2] = gBattle_BG1_X; } else { - sp.dmaDest = ®_BG2HOFS; + scanlineParams.dmaDest = ®_BG2HOFS; task->data[2] = gBattle_BG2_X; } - sp.dmaControl = 0xA2600001; - sp.initState = 1; - sp.unused9 = 0; + scanlineParams.dmaControl = SCANLINE_EFFECT_DMACNT_16BIT; + scanlineParams.initState = 1; + scanlineParams.unused9 = 0; r1 = GetBattlerYCoordWithElevation(gBattleAnimAttacker); task->data[3] = r1 - 32; task->data[4] = r1 + 32; @@ -349,11 +352,11 @@ void AnimTask_DragonDanceWaver(u8 taskId) gScanlineEffectRegBuffers[0][i] = task->data[2]; gScanlineEffectRegBuffers[1][i] = task->data[2]; } - ScanlineEffect_SetParams(sp); - task->func = sub_80B76B0; + ScanlineEffect_SetParams(scanlineParams); + task->func = AnimTask_DragonDanceWaver_Step; } -static void sub_80B76B0(u8 taskId) +static void AnimTask_DragonDanceWaver_Step(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -366,12 +369,12 @@ static void sub_80B76B0(u8 taskId) if (++task->data[6] == 3) ++task->data[0]; } - sub_80B776C(task); + UpdateDragonDanceScanlineEffect(task); break; case 1: if (++task->data[1] > 0x3C) ++task->data[0]; - sub_80B776C(task); + UpdateDragonDanceScanlineEffect(task); break; case 2: if (++task->data[7] > 1) @@ -380,7 +383,7 @@ static void sub_80B76B0(u8 taskId) if (--task->data[6] == 0) ++task->data[0]; } - sub_80B776C(task); + UpdateDragonDanceScanlineEffect(task); break; case 3: gScanlineEffect.state = 3; @@ -392,7 +395,7 @@ static void sub_80B76B0(u8 taskId) } } -static void sub_80B776C(struct Task *task) +static void UpdateDragonDanceScanlineEffect(struct Task *task) { u16 i, r3 = task->data[5]; @@ -406,21 +409,21 @@ static void sub_80B776C(struct Task *task) static void AnimOverheatFlame(struct Sprite *sprite) { - s32 i, r6 = (gBattleAnimArgs[2] * 3) / 5; + s32 i, yAmplitude = (gBattleAnimArgs[2] * 3) / 5; - sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); - sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3) + gBattleAnimArgs[4]; + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[4]; sprite->data[1] = Cos(gBattleAnimArgs[1], gBattleAnimArgs[2]); - sprite->data[2] = Sin(gBattleAnimArgs[1], r6); + sprite->data[2] = Sin(gBattleAnimArgs[1], yAmplitude); sprite->x += sprite->data[1] * gBattleAnimArgs[0]; sprite->y += sprite->data[2] * gBattleAnimArgs[0]; sprite->data[3] = gBattleAnimArgs[3]; - sprite->callback = sub_80B7894; + sprite->callback = AnimOverheatFlame_Step; for (i = 0; i < 7; ++i) - gUnknown_20399A4[i] = sprite->data[i]; + sUnusedOverheatData[i] = sprite->data[i]; } -static void sub_80B7894(struct Sprite *sprite) +static void AnimOverheatFlame_Step(struct Sprite *sprite) { sprite->data[4] += sprite->data[1]; sprite->data[5] += sprite->data[2]; diff --git a/src/battle_anim_effects_1.c b/src/battle_anim_effects_1.c index 2d1a6f3cf..a09dcb473 100644 --- a/src/battle_anim_effects_1.c +++ b/src/battle_anim_effects_1.c @@ -7,84 +7,145 @@ #include "util.h" #include "constants/songs.h" -// RAM -EWRAM_DATA static s16 gUnknown_203999C[4] = {0}; +struct { + s16 startX; + s16 startY; + s16 targetX; + s16 targetY; +} static EWRAM_DATA sFrenzyPlantRootData = {0}; // Debug? Written to but never read. -// Function Declarations -static void AnimMovePowderParticleStep(struct Sprite *); -static void AnimSolarBeamSmallOrbStep(struct Sprite *); -static void AnimAbsorptionOrbStep(struct Sprite *); -static void AnimHyperBeamOrbStep(struct Sprite *); -static void AnimLeechSeedStep(struct Sprite *); +static void AnimMovePowderParticle(struct Sprite *); +static void AnimMovePowderParticle_Step(struct Sprite *); +static void AnimSolarBeamSmallOrb(struct Sprite *); +static void AnimSolarBeamSmallOrb_Step(struct Sprite *); +static void AnimSolarBeamBigOrb(struct Sprite *); +static void AnimPowerAbsorptionOrb(struct Sprite *); +static void AnimAbsorptionOrb(struct Sprite *); +static void AnimAbsorptionOrb_Step(struct Sprite *); +static void AnimHyperBeamOrb(struct Sprite *); +static void AnimHyperBeamOrb_Step(struct Sprite *); +static void AnimMimicOrb(struct Sprite *); +static void AnimLeechSeed(struct Sprite *); +static void AnimLeechSeed_Step(struct Sprite *); static void AnimLeechSeedSprouts(struct Sprite *); -static void AnimSporeParticleStep(struct Sprite *); -static void AnimPetalDanceBigFlowerStep(struct Sprite *); -static void AnimPetalDanceSmallFlowerStep(struct Sprite *); -static void AnimRazorLeafParticleStep1(struct Sprite *); -static void AnimRazorLeafParticleStep2(struct Sprite *); -static void AnimTranslateLinearSingleSineWaveStep(struct Sprite *); -static void AnimMoveTwisterParticleStep(struct Sprite *); -static void AnimConstrictBindingStep1(struct Sprite *); -static void AnimConstrictBindingStep2(struct Sprite *); -static void AnimTask_DuplicateAndShrinkToPosStep1(u8); -static void AnimTask_DuplicateAndShrinkToPosStep2(u8); -static void AnimItemStealStep3(struct Sprite *); +static void AnimSporeParticle(struct Sprite *); +static void AnimSporeParticle_Step(struct Sprite *); +static void AnimPetalDanceBigFlower(struct Sprite *); +static void AnimPetalDanceBigFlower_Step(struct Sprite *); +static void AnimPetalDanceSmallFlower(struct Sprite *); +static void AnimPetalDanceSmallFlower_Step(struct Sprite *); +static void AnimRazorLeafParticle(struct Sprite *); +static void AnimRazorLeafParticle_Step1(struct Sprite *); +static void AnimRazorLeafParticle_Step2(struct Sprite *); +static void AnimIngrainRoot(struct Sprite *); +static void AnimFrenzyPlantRoot(struct Sprite *); +static void AnimIngrainOrb(struct Sprite *); +static void AnimTranslateLinearSingleSineWave(struct Sprite *); +static void AnimTranslateLinearSingleSineWave_Step(struct Sprite *); +static void AnimMoveTwisterParticle_Step(struct Sprite *); +static void AnimConstrictBinding(struct Sprite *); +static void AnimConstrictBinding_Step1(struct Sprite *); +static void AnimConstrictBinding_Step2(struct Sprite *); +static void AnimTask_DuplicateAndShrinkToPos_Step1(u8); +static void AnimTask_DuplicateAndShrinkToPos_Step2(u8); +static void AnimKnockOffItem(struct Sprite *); +static void AnimPresent(struct Sprite *); +static void AnimPresentHealParticle(struct Sprite *); +static void AnimItemSteal(struct Sprite *); +static void AnimItemSteal_Step3(struct Sprite *); static void AnimRootFlickerOut(struct Sprite *); -static void AnimTrickBagStep1(struct Sprite *); -static void AnimTrickBagStep2(struct Sprite *); -static void AnimTrickBagStep3(struct Sprite *); -static void AnimTask_LeafBladeStep(u8); +static void AnimTrickBag(struct Sprite *); +static void AnimTrickBag_Step1(struct Sprite *); +static void AnimTrickBag_Step2(struct Sprite *); +static void AnimTrickBag_Step3(struct Sprite *); +static void AnimTask_LeafBlade_Step(u8); static s16 LeafBladeGetPosFactor(struct Sprite *); -static void AnimTask_LeafBladeStep2(struct Task *, u8); -static void AnimTask_LeafBladeStep2_Callback(struct Sprite *); -static void AnimFlyingParticleStep(struct Sprite *); -static void AnimNeedleArmSpikeStep(struct Sprite *); -static void AnimSliceStep(struct Sprite *); +static void AnimTask_LeafBlade_Step2(struct Task *, u8); +static void AnimTask_LeafBlade_Step2_Callback(struct Sprite *); +static void AnimFlyingParticle(struct Sprite *); +static void AnimFlyingParticle_Step(struct Sprite *); +static void AnimNeedleArmSpike(struct Sprite *); +static void AnimNeedleArmSpike_Step(struct Sprite *); +static void AnimSlice_Step(struct Sprite *); +static void AnimCirclingMusicNote(struct Sprite *); static void AnimCirclingMusicNote_Step(struct Sprite *); -static void AnimProtectStep(struct Sprite *); -static void AnimMilkBottleStep1(struct Sprite *); -static void AnimMilkBottleStep2(struct Sprite *, int, int); +static void AnimProtect(struct Sprite *); +static void AnimProtect_Step(struct Sprite *); +static void AnimMilkBottle(struct Sprite *); +static void AnimMilkBottle_Step1(struct Sprite *); +static void AnimMilkBottle_Step2(struct Sprite *, int, int); +static void AnimBubbleBurst(struct Sprite *); static void AnimBubbleBurst_Step(struct Sprite *); -static void AnimSleepLetterZStep(struct Sprite *); -static void AnimLockOnTargetStep1(struct Sprite *); -static void AnimLockOnTargetStep2(struct Sprite *); -static void AnimLockOnTargetStep3(struct Sprite *); -static void AnimLockOnTargetStep4(struct Sprite *); -static void AnimLockOnTargetStep5(struct Sprite *); -static void AnimLockOnTargetStep6(struct Sprite *); -static void AnimBowMonStep1(struct Sprite *); -static void AnimBowMonStep1_Callback(struct Sprite *); -static void AnimBowMonStep2(struct Sprite *); -static void AnimBowMonStep3(struct Sprite *); -static void AnimBowMonStep4(struct Sprite *); -static void AnimBowMonStep3_Callback(struct Sprite *); +static void AnimSleepLetterZ(struct Sprite *); +static void AnimSleepLetterZ_Step(struct Sprite *); +static void AnimLockOnTarget(struct Sprite *); +static void AnimLockOnTarget_Step1(struct Sprite *); +static void AnimLockOnTarget_Step2(struct Sprite *); +static void AnimLockOnTarget_Step3(struct Sprite *); +static void AnimLockOnTarget_Step4(struct Sprite *); +static void AnimLockOnTarget_Step5(struct Sprite *); +static void AnimLockOnTarget_Step6(struct Sprite *); +static void AnimLockOnMoveTarget(struct Sprite *); +static void AnimBowMon(struct Sprite *); +static void AnimBowMon_Step1(struct Sprite *); +static void AnimBowMon_Step1_Callback(struct Sprite *); +static void AnimBowMon_Step2(struct Sprite *); +static void AnimBowMon_Step3(struct Sprite *); +static void AnimBowMon_Step4(struct Sprite *); +static void AnimBowMon_Step3_Callback(struct Sprite *); +static void AnimTipMon(struct Sprite *sprite); static void AnimTipMon_Step(struct Sprite *); static void AnimTask_SkullBashPositionSet(u8); static void AnimTask_SkullBashPositionReset(u8); -static void AnimFalseSwipeSliceStep1(struct Sprite *); -static void AnimFalseSwipeSliceStep2(struct Sprite *); -static void AnimFalseSwipeSliceStep3(struct Sprite *); -static void AnimEndureEnergyStep(struct Sprite *); -static void AnimSharpenSphereStep(struct Sprite *); -static void AnimConversion2Step(struct Sprite *); -static void AnimMoonStep(struct Sprite *); -static void AnimMoonlightSparkleStep(struct Sprite *); -static void AnimHornHitStep(struct Sprite *); -static void AnimTask_DoubleTeamStep(u8); -static void AnimTask_DoubleTeamCallback(struct Sprite *); -static void AnimWavyMusicNotesGetNextPos(s16, s16, s16 *, s16 *, s8); -static void AnimWavyMusicNotesStep(struct Sprite *); -static void AnimFlyingMusicNotesStep(struct Sprite *); -static void AnimSlowFlyingMusicNotesStep(struct Sprite *); -static void AnimThoughtBubbleStep(struct Sprite *); -static void AnimMetronomeFingerStep(struct Sprite *); -static void AnimFollowMeFingerStep1(struct Sprite *); -static void AnimFollowMeFingerStep2(struct Sprite *); -static void AnimTauntFingerStep1(struct Sprite *); -static void AnimTauntFingerStep2(struct Sprite *); +static void AnimSlashSlice(struct Sprite *); +static void AnimFalseSwipeSlice(struct Sprite *); +static void AnimFalseSwipeSlice_Step1(struct Sprite *); +static void AnimFalseSwipeSlice_Step2(struct Sprite *); +static void AnimFalseSwipeSlice_Step3(struct Sprite *); +static void AnimFalseSwipePositionedSlice(struct Sprite *); +static void AnimEndureEnergy(struct Sprite *); +static void AnimEndureEnergy_Step(struct Sprite *); +static void AnimSharpenSphere(struct Sprite *); +static void AnimSharpenSphere_Step(struct Sprite *); +static void AnimConversion(struct Sprite *); +static void AnimConversion2(struct Sprite *); +static void AnimConversion2_Step(struct Sprite *); +static void AnimMoon(struct Sprite *); +static void AnimMoon_Step(struct Sprite *); +static void AnimMoonlightSparkle(struct Sprite *); +static void AnimMoonlightSparkle_Step(struct Sprite *); +static void AnimHornHit(struct Sprite *); +static void AnimHornHit_Step(struct Sprite *); +static void AnimTask_DoubleTeam_Step(u8); +static void AnimDoubleTeam(struct Sprite *); +static void AnimWavyMusicNotes(struct Sprite *); +static void AnimWavyMusicNotes_CalcVelocity(s16, s16, s16 *, s16 *, s8); +static void AnimWavyMusicNotes_Step(struct Sprite *); +static void AnimFlyingMusicNotes(struct Sprite *); +static void AnimFlyingMusicNotes_Step(struct Sprite *); +static void AnimSlowFlyingMusicNotes(struct Sprite *); +static void AnimSlowFlyingMusicNotes_Step(struct Sprite *); +static void AnimThoughtBubble(struct Sprite *); +static void AnimThoughtBubble_Step(struct Sprite *); +static void AnimMetronomeFinger(struct Sprite *); +static void AnimMetronomeFinger_Step(struct Sprite *); +static void AnimFollowMeFinger(struct Sprite *); +static void AnimFollowMeFinger_Step1(struct Sprite *); +static void AnimFollowMeFinger_Step2(struct Sprite *); +static void AnimTauntFinger(struct Sprite *); +static void AnimTauntFinger_Step1(struct Sprite *); +static void AnimTauntFinger_Step2(struct Sprite *); +static void AnimBellyDrumHand(struct Sprite *); +static void AnimSuperFang(struct Sprite *); +static void AnimGrantingStars(struct Sprite *); +static void AnimSparklingStars(struct Sprite *); +static void AnimCuttingSlice(struct Sprite *); +static void AnimAirCutterSlice(struct Sprite *); +static void AnimFlickeringPunch(struct Sprite *); +static void AnimSlidingHit(struct Sprite *); +static void AnimWhipHit(struct Sprite *); -// Unused -static const u8 sUnknown_83E2964[] = {0x02, 0x04, 0x01, 0x03}; +static const u8 sUnused[] = {2, 4, 1, 3}; static const union AnimCmd sPowderParticlesAnimCmds[] = { @@ -455,7 +516,7 @@ const struct SpriteTemplate gRazorLeafParticleSpriteTemplate = .callback = AnimRazorLeafParticle, }; -const struct SpriteTemplate gTwisterLeafParticleSpriteTemplate = +const struct SpriteTemplate gTwisterLeafSpriteTemplate = { .tileTag = ANIM_TAG_LEAF, .paletteTag = ANIM_TAG_LEAF, @@ -513,7 +574,7 @@ const struct SpriteTemplate gSwiftStarSpriteTemplate = .callback = AnimTranslateLinearSingleSineWave, }; -static const union AnimCmd sConstrictBindingAnimCmds1[] = +static const union AnimCmd sAnim_ConstrictBinding[] = { ANIMCMD_FRAME(0, 4), ANIMCMD_FRAME(32, 4), @@ -522,7 +583,7 @@ static const union AnimCmd sConstrictBindingAnimCmds1[] = ANIMCMD_END, }; -static const union AnimCmd sConstrictBindingAnimCmds2[] = +static const union AnimCmd sAnim_ConstrictBinding_Flipped[] = { ANIMCMD_FRAME(0, 4, .hFlip = TRUE), ANIMCMD_FRAME(32, 4, .hFlip = TRUE), @@ -531,13 +592,13 @@ static const union AnimCmd sConstrictBindingAnimCmds2[] = ANIMCMD_END, }; -static const union AnimCmd *const sConstrictBindingAnimTable[] = +static const union AnimCmd *const sAnims_ConstrictBinding[] = { - sConstrictBindingAnimCmds1, - sConstrictBindingAnimCmds2, + sAnim_ConstrictBinding, + sAnim_ConstrictBinding_Flipped, }; -static const union AffineAnimCmd sConstrictBindingAffineAnimCmds1[] = +static const union AffineAnimCmd sAffineAnim_ConstrictBinding[] = { AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), AFFINEANIMCMD_FRAME(-11, 0, 0, 6), @@ -545,7 +606,7 @@ static const union AffineAnimCmd sConstrictBindingAffineAnimCmds1[] = AFFINEANIMCMD_END, }; -static const union AffineAnimCmd sConstrictBindingAffineAnimCmds2[] = +static const union AffineAnimCmd sAffineAnim_ConstrictBinding_Flipped[] = { AFFINEANIMCMD_FRAME(-0x100, 0x100, 0, 0), AFFINEANIMCMD_FRAME(11, 0, 0, 6), @@ -553,10 +614,10 @@ static const union AffineAnimCmd sConstrictBindingAffineAnimCmds2[] = AFFINEANIMCMD_END, }; -static const union AffineAnimCmd *const sConstrictBindingAffineAnimTable[] = +static const union AffineAnimCmd *const sAffineAnims_ConstrictBinding[] = { - sConstrictBindingAffineAnimCmds1, - sConstrictBindingAffineAnimCmds2, + sAffineAnim_ConstrictBinding, + sAffineAnim_ConstrictBinding_Flipped, }; const struct SpriteTemplate gConstrictBindingSpriteTemplate = @@ -564,9 +625,9 @@ const struct SpriteTemplate gConstrictBindingSpriteTemplate = .tileTag = ANIM_TAG_TENDRILS, .paletteTag = ANIM_TAG_TENDRILS, .oam = &gOamData_AffineNormal_ObjNormal_64x32, - .anims = sConstrictBindingAnimTable, + .anims = sAnims_ConstrictBinding, .images = NULL, - .affineAnims = sConstrictBindingAffineAnimTable, + .affineAnims = sAffineAnims_ConstrictBinding, .callback = AnimConstrictBinding, }; @@ -1022,7 +1083,7 @@ const struct SpriteTemplate gNeedleArmSpikeSpriteTemplate = .callback = AnimNeedleArmSpike, }; -static const union AnimCmd sWhipAnimCmds1[] = +static const union AnimCmd sAnim_Whip[] = { ANIMCMD_FRAME(64, 3), ANIMCMD_FRAME(80, 3), @@ -1031,7 +1092,7 @@ static const union AnimCmd sWhipAnimCmds1[] = ANIMCMD_END, }; -static const union AnimCmd sWhipAnimCmds2[] = +static const union AnimCmd sAnim_Whip_Flipped[] = { ANIMCMD_FRAME(64, 3, .hFlip = TRUE), ANIMCMD_FRAME(80, 3, .hFlip = TRUE), @@ -1040,10 +1101,10 @@ static const union AnimCmd sWhipAnimCmds2[] = ANIMCMD_END, }; -static const union AnimCmd *const sWhipAnimTable[] = +static const union AnimCmd *const sAnims_Whip[] = { - sWhipAnimCmds1, - sWhipAnimCmds2, + sAnim_Whip, + sAnim_Whip_Flipped, }; const struct SpriteTemplate gSlamHitSpriteTemplate = @@ -1051,7 +1112,7 @@ const struct SpriteTemplate gSlamHitSpriteTemplate = .tileTag = ANIM_TAG_SLAM_HIT, .paletteTag = ANIM_TAG_SLAM_HIT, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = sWhipAnimTable, + .anims = sAnims_Whip, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimWhipHit, @@ -1062,13 +1123,13 @@ const struct SpriteTemplate gVineWhipSpriteTemplate = .tileTag = ANIM_TAG_WHIP_HIT, .paletteTag = ANIM_TAG_WHIP_HIT, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = sWhipAnimTable, + .anims = sAnims_Whip, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimWhipHit, }; -static const union AnimCmd sUnknown_83E3178[] = +static const union AnimCmd sAnim_SlidingHit[] = { ANIMCMD_FRAME(0, 4), ANIMCMD_FRAME(16, 4), @@ -1078,105 +1139,104 @@ static const union AnimCmd sUnknown_83E3178[] = ANIMCMD_END, }; -// Unused -static const union AnimCmd *const sUnknown_83E3190[] = +static const union AnimCmd *const sAnims_SlidingHit[] = { - sUnknown_83E3178, + sAnim_SlidingHit, }; // Unused -static const struct SpriteTemplate sUnknown_83E3194 = +static const struct SpriteTemplate sSlidingHit1SpriteTemplate = { .tileTag = ANIM_TAG_HIT, .paletteTag = ANIM_TAG_HIT, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = sUnknown_83E3190, + .anims = sAnims_SlidingHit, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimSlidingHit, }; // Unused -static const struct SpriteTemplate sUnknown_83E31AC = +static const struct SpriteTemplate sSlidingHit2SpriteTemplate = { .tileTag = ANIM_TAG_HIT_2, .paletteTag = ANIM_TAG_HIT_2, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = sUnknown_83E3190, + .anims = sAnims_SlidingHit, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimSlidingHit, }; -static const union AffineAnimCmd sUnknown_83E31C4[] = +static const union AffineAnimCmd sAffineAnim_FlickeringPunch_Normal[] = { AFFINEANIMCMD_FRAME(256, 256, 0, 0), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd sUnknown_83E31D4[] = +static const union AffineAnimCmd sAffineAnim_FlickeringPunch_TurnedTopLeft[] = { AFFINEANIMCMD_FRAME(256, 256, 32, 0), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd sUnknown_83E31E4[] = +static const union AffineAnimCmd sAffineAnim_FlickeringPunch_TurnedLeft[] = { AFFINEANIMCMD_FRAME(256, 256, 64, 0), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd sUnknown_83E31F4[] = +static const union AffineAnimCmd sAffineAnim_FlickeringPunch_TurnedBottomLeft[] = { AFFINEANIMCMD_FRAME(256, 256, 96, 0), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd sUnknown_83E3204[] = +static const union AffineAnimCmd sAffineAnim_FlickeringPunch_UpsideDown[] = { AFFINEANIMCMD_FRAME(256, 256, -128, 0), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd sUnknown_83E3214[] = +static const union AffineAnimCmd sAffineAnim_FlickeringPunch_TurnedBottomRight[] = { AFFINEANIMCMD_FRAME(256, 256, -96, 0), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd sUnknown_83E3224[] = +static const union AffineAnimCmd sAffineAnim_FlickeringPunch_TurnedRight[] = { AFFINEANIMCMD_FRAME(256, 256, -64, 0), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd sUnknown_83E3234[] = +static const union AffineAnimCmd sAffineAnim_FlickeringPunch_TurnedTopRight[] = { AFFINEANIMCMD_FRAME(256, 256, -32, 0), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd *const sUnknown_83E3244[] = +static const union AffineAnimCmd *const sAffineAnims_FlickeringPunch[] = { - sUnknown_83E31C4, - sUnknown_83E31D4, - sUnknown_83E31E4, - sUnknown_83E31F4, - sUnknown_83E3204, - sUnknown_83E3214, - sUnknown_83E3224, - sUnknown_83E3234, + sAffineAnim_FlickeringPunch_Normal, + sAffineAnim_FlickeringPunch_TurnedTopLeft, + sAffineAnim_FlickeringPunch_TurnedLeft, + sAffineAnim_FlickeringPunch_TurnedBottomLeft, + sAffineAnim_FlickeringPunch_UpsideDown, + sAffineAnim_FlickeringPunch_TurnedBottomRight, + sAffineAnim_FlickeringPunch_TurnedRight, + sAffineAnim_FlickeringPunch_TurnedTopRight, }; // Unused -static const struct SpriteTemplate sUnknown_83E3264 = +static const struct SpriteTemplate sFlickeringPunchSpriteTemplate = { .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, .oam = &gOamData_AffineNormal_ObjNormal_32x32, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = sUnknown_83E3244, + .affineAnims = sAffineAnims_FlickeringPunch, .callback = AnimFlickeringPunch, }; @@ -1216,93 +1276,93 @@ const struct SpriteTemplate gAirCutterSliceSpriteTemplate = .callback = AnimAirCutterSlice, }; -static const union AnimCmd sUnknown_83E32C4[] = +static const union AnimCmd sAnim_CirclingMusicNote_Eighth[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd sUnknown_83E32CC[] = +static const union AnimCmd sAnim_CirclingMusicNote_BeamedEighth[] = { ANIMCMD_FRAME(4, 1), ANIMCMD_END, }; -static const union AnimCmd sUnknown_83E32D4[] = +static const union AnimCmd sAnim_CirclingMusicNote_SlantedBeamedEighth[] = { ANIMCMD_FRAME(8, 1), ANIMCMD_END, }; -static const union AnimCmd sUnknown_83E32DC[] = +static const union AnimCmd sAnim_CirclingMusicNote_Quarter[] = { ANIMCMD_FRAME(12, 1), ANIMCMD_END, }; -static const union AnimCmd sUnknown_83E32E4[] = +static const union AnimCmd sAnim_CirclingMusicNote_QuarterRest[] = { ANIMCMD_FRAME(16, 1), ANIMCMD_END, }; -static const union AnimCmd sUnknown_83E32EC[] = +static const union AnimCmd sAnim_CirclingMusicNote_EighthRest[] = { ANIMCMD_FRAME(20, 1), ANIMCMD_END, }; -static const union AnimCmd sUnknown_83E32F4[] = +static const union AnimCmd sAnim_CirclingMusicNote_Eighth_Flipped[] = { ANIMCMD_FRAME(0, 1, .vFlip = TRUE), ANIMCMD_END, }; -static const union AnimCmd sUnknown_83E32FC[] = +static const union AnimCmd sAnim_CirclingMusicNote_BeamedEighth_Flipped[] = { ANIMCMD_FRAME(4, 1, .vFlip = TRUE), ANIMCMD_END, }; -static const union AnimCmd sUnknown_83E3304[] = +static const union AnimCmd sAnim_CirclingMusicNote_SlantedBeamedEighth_Flipped[] = { ANIMCMD_FRAME(8, 1, .vFlip = TRUE), ANIMCMD_END, }; -static const union AnimCmd sUnknown_83E330C[] = +static const union AnimCmd sAnim_CirclingMusicNote_Quarter_Flipped[] = { ANIMCMD_FRAME(12, 1, .vFlip = TRUE), ANIMCMD_END, }; -static const union AnimCmd *const sUnknown_83E3314[] = +static const union AnimCmd *const sAnims_CirclingMusicNote[] = { - sUnknown_83E32C4, - sUnknown_83E32CC, - sUnknown_83E32D4, - sUnknown_83E32DC, - sUnknown_83E32E4, - sUnknown_83E32EC, - sUnknown_83E32F4, - sUnknown_83E32FC, - sUnknown_83E3304, - sUnknown_83E330C, + sAnim_CirclingMusicNote_Eighth, + sAnim_CirclingMusicNote_BeamedEighth, + sAnim_CirclingMusicNote_SlantedBeamedEighth, + sAnim_CirclingMusicNote_Quarter, + sAnim_CirclingMusicNote_QuarterRest, + sAnim_CirclingMusicNote_EighthRest, + sAnim_CirclingMusicNote_Eighth_Flipped, + sAnim_CirclingMusicNote_BeamedEighth_Flipped, + sAnim_CirclingMusicNote_SlantedBeamedEighth_Flipped, + sAnim_CirclingMusicNote_Quarter_Flipped, }; // Unused -static const struct SpriteTemplate sUnknown_83E333C = +static const struct SpriteTemplate sCirclingMusicNoteSpriteTemplate = { .tileTag = ANIM_TAG_MUSIC_NOTES, .paletteTag = ANIM_TAG_MUSIC_NOTES, .oam = &gOamData_AffineOff_ObjNormal_16x16, - .anims = sUnknown_83E3314, + .anims = sAnims_CirclingMusicNote, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimCirclingMusicNote, }; -const struct SpriteTemplate gProtectWallSpriteTemplate = +const struct SpriteTemplate gProtectSpriteTemplate = { .tileTag = ANIM_TAG_PROTECT, .paletteTag = ANIM_TAG_PROTECT, @@ -1383,10 +1443,10 @@ const struct SpriteTemplate gSparklingStarsSpriteTemplate = .anims = sGrantingStarsAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = AnimSparkingStars, + .callback = AnimSparklingStars, }; -static const union AnimCmd sUnknown_83E3424[] = +static const union AnimCmd sAnim_BubbleBurst[] = { ANIMCMD_FRAME(0, 10), ANIMCMD_FRAME(4, 10), @@ -1399,7 +1459,7 @@ static const union AnimCmd sUnknown_83E3424[] = ANIMCMD_END, }; -static const union AnimCmd sUnknown_83E3448[] = +static const union AnimCmd sAnim_BubbleBurst_Flipped[] = { ANIMCMD_FRAME(0, 10, .hFlip = TRUE), ANIMCMD_FRAME(4, 10, .hFlip = TRUE), @@ -1412,19 +1472,19 @@ static const union AnimCmd sUnknown_83E3448[] = ANIMCMD_END, }; -static const union AnimCmd *const sUnknown_83E346C[] = +static const union AnimCmd *const sAnims_BubbleBurst[] = { - sUnknown_83E3424, - sUnknown_83E3448, + sAnim_BubbleBurst, + sAnim_BubbleBurst_Flipped, }; // Unused -static const struct SpriteTemplate sUnknown_83E3474 = +static const struct SpriteTemplate sBubbleBurstSpriteTemplate = { .tileTag = ANIM_TAG_BUBBLE_BURST, .paletteTag = ANIM_TAG_BUBBLE_BURST, .oam = &gOamData_AffineOff_ObjNormal_16x16, - .anims = sUnknown_83E346C, + .anims = sAnims_BubbleBurst, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimBubbleBurst, @@ -1528,7 +1588,8 @@ const struct SpriteTemplate gBowMonSpriteTemplate = }; // Unused -static const struct SpriteTemplate sUnknown_83E3568 = +// Same as BowMon above but without backing up +static const struct SpriteTemplate sTipMonSpriteTemplate = { .tileTag = 0, .paletteTag = 0, @@ -2155,7 +2216,6 @@ const struct SpriteTemplate gTauntFingerSpriteTemplate = .callback = AnimTauntFinger, }; -// Functions // Animates the falling particles that horizontally wave back and forth. // Used by Sleep Powder, Stun Spore, and Poison Powder. // arg 0: initial x pixel offset @@ -2164,7 +2224,7 @@ const struct SpriteTemplate gTauntFingerSpriteTemplate = // arg 3: vertical movement speed (sub-pixel value) // arg 4: wave amplitude // arg 5: wave speed -void AnimMovePowderParticle(struct Sprite* sprite) +static void AnimMovePowderParticle(struct Sprite* sprite) { sprite->x += gBattleAnimArgs[0]; sprite->y += gBattleAnimArgs[1]; @@ -2181,10 +2241,10 @@ void AnimMovePowderParticle(struct Sprite* sprite) } sprite->data[4] = gBattleAnimArgs[5]; - sprite->callback = AnimMovePowderParticleStep; + sprite->callback = AnimMovePowderParticle_Step; } -static void AnimMovePowderParticleStep(struct Sprite* sprite) +static void AnimMovePowderParticle_Step(struct Sprite* sprite) { if (sprite->data[0] > 0) { @@ -2204,7 +2264,7 @@ static void AnimMovePowderParticleStep(struct Sprite* sprite) // arg 0: initial x pixel offset // arg 1: initial y pixel offset // arg 2: duration -void AnimPowerAbsorptionOrb(struct Sprite* sprite) +static void AnimPowerAbsorptionOrb(struct Sprite* sprite) { InitSpritePosToAnimAttacker(sprite, TRUE); sprite->data[0] = gBattleAnimArgs[2]; @@ -2219,7 +2279,7 @@ void AnimPowerAbsorptionOrb(struct Sprite* sprite) // arg 1: initial y pixel offset // arg 2: duration // arg 3: sprite anim number -void AnimSolarBeamBigOrb(struct Sprite* sprite) +static void AnimSolarBeamBigOrb(struct Sprite* sprite) { InitSpritePosToAnimAttacker(sprite, TRUE); StartSpriteAnim(sprite, gBattleAnimArgs[3]); @@ -2236,7 +2296,7 @@ void AnimSolarBeamBigOrb(struct Sprite* sprite) // arg 1: initial y pixel offset // arg 2: duration // arg 3: initial wave offset -void AnimSolarBeamSmallOrb(struct Sprite* sprite) +static void AnimSolarBeamSmallOrb(struct Sprite* sprite) { InitSpritePosToAnimAttacker(sprite, TRUE); sprite->data[0] = gBattleAnimArgs[2]; @@ -2246,11 +2306,11 @@ void AnimSolarBeamSmallOrb(struct Sprite* sprite) sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); InitAnimLinearTranslation(sprite); sprite->data[5] = gBattleAnimArgs[3]; - sprite->callback = AnimSolarBeamSmallOrbStep; + sprite->callback = AnimSolarBeamSmallOrb_Step; sprite->callback(sprite); } -static void AnimSolarBeamSmallOrbStep(struct Sprite* sprite) +static void AnimSolarBeamSmallOrb_Step(struct Sprite* sprite) { if (AnimTranslateLinear(sprite)) { @@ -2294,7 +2354,7 @@ void AnimTask_CreateSmallSolarBeamOrbs(u8 taskId) // arg 1: initial y pixel offset // arg 2: wave amplitude // arg 3: wave period (lower means faster wave) -void AnimAbsorptionOrb(struct Sprite* sprite) +static void AnimAbsorptionOrb(struct Sprite* sprite) { InitSpritePosToAnimTarget(sprite, TRUE); sprite->data[0] = gBattleAnimArgs[3]; @@ -2302,10 +2362,10 @@ void AnimAbsorptionOrb(struct Sprite* sprite) sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); sprite->data[5] = gBattleAnimArgs[2]; InitAnimArcTranslation(sprite); - sprite->callback = AnimAbsorptionOrbStep; + sprite->callback = AnimAbsorptionOrb_Step; } -static void AnimAbsorptionOrbStep(struct Sprite* sprite) +static void AnimAbsorptionOrb_Step(struct Sprite* sprite) { if (TranslateAnimHorizontalArc(sprite)) DestroyAnimSprite(sprite); @@ -2313,7 +2373,7 @@ static void AnimAbsorptionOrbStep(struct Sprite* sprite) // Moves an orb in a wave-like fashion towards the target mon. The wave's // properties and the sprite anim are randomly determined. -void AnimHyperBeamOrb(struct Sprite* sprite) +static void AnimHyperBeamOrb(struct Sprite* sprite) { u16 speed; u16 animNum = Random(); @@ -2335,11 +2395,11 @@ void AnimHyperBeamOrb(struct Sprite* sprite) InitAnimFastLinearTranslationWithSpeed(sprite); sprite->data[5] = Random() & 0xFF; sprite->data[6] = sprite->subpriority; - sprite->callback = AnimHyperBeamOrbStep; + sprite->callback = AnimHyperBeamOrb_Step; sprite->callback(sprite); } -static void AnimHyperBeamOrbStep(struct Sprite* sprite) +static void AnimHyperBeamOrb_Step(struct Sprite* sprite) { if (AnimFastTranslateLinear(sprite)) { @@ -2366,7 +2426,7 @@ static void AnimHyperBeamOrbStep(struct Sprite* sprite) // arg 3: target y pixel offset // arg 4: duration // arg 5: wave amplitude -void AnimLeechSeed(struct Sprite* sprite) +static void AnimLeechSeed(struct Sprite* sprite) { InitSpritePosToAnimAttacker(sprite, TRUE); if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) @@ -2377,10 +2437,10 @@ void AnimLeechSeed(struct Sprite* sprite) sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y) + gBattleAnimArgs[3]; sprite->data[5] = gBattleAnimArgs[5]; InitAnimArcTranslation(sprite); - sprite->callback = AnimLeechSeedStep; + sprite->callback = AnimLeechSeed_Step; } -static void AnimLeechSeedStep(struct Sprite* sprite) +static void AnimLeechSeed_Step(struct Sprite* sprite) { if (TranslateAnimHorizontalArc(sprite)) { @@ -2408,7 +2468,7 @@ static void AnimLeechSeedSprouts(struct Sprite* sprite) // arg 2: initial wave offset // arg 3: duration // arg 4: blend (0 = off, 1 = on) -void AnimSporeParticle(struct Sprite* sprite) +static void AnimSporeParticle(struct Sprite* sprite) { InitSpritePosToAnimTarget(sprite, TRUE); StartSpriteAnim(sprite, gBattleAnimArgs[4]); @@ -2417,11 +2477,11 @@ void AnimSporeParticle(struct Sprite* sprite) sprite->data[0] = gBattleAnimArgs[3]; sprite->data[1] = gBattleAnimArgs[2]; - sprite->callback = AnimSporeParticleStep; + sprite->callback = AnimSporeParticle_Step; sprite->callback(sprite); } -static void AnimSporeParticleStep(struct Sprite* sprite) +static void AnimSporeParticle_Step(struct Sprite* sprite) { sprite->x2 = Sin(sprite->data[1], 32); sprite->y2 = Cos(sprite->data[1], -3) + ((sprite->data[2] += 24) >> 8); @@ -2470,7 +2530,7 @@ void AnimTask_SporeDoubleBattle(u8 taskId) // arg 1: initial y pixel offset // arg 2: target y pixel offset // arg 3: duration -void AnimPetalDanceBigFlower(struct Sprite* sprite) +static void AnimPetalDanceBigFlower(struct Sprite* sprite) { InitSpritePosToAnimAttacker(sprite, FALSE); sprite->data[0] = gBattleAnimArgs[3]; @@ -2480,11 +2540,11 @@ void AnimPetalDanceBigFlower(struct Sprite* sprite) sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[2]; InitAnimLinearTranslation(sprite); sprite->data[5] = 0x40; - sprite->callback = AnimPetalDanceBigFlowerStep; + sprite->callback = AnimPetalDanceBigFlower_Step; sprite->callback(sprite); } -static void AnimPetalDanceBigFlowerStep(struct Sprite* sprite) +static void AnimPetalDanceBigFlower_Step(struct Sprite* sprite) { if (!AnimTranslateLinear(sprite)) { @@ -2508,7 +2568,7 @@ static void AnimPetalDanceBigFlowerStep(struct Sprite* sprite) // arg 1: initial y pixel offset // arg 2: target y pixel offset // arg 3: duration -void AnimPetalDanceSmallFlower(struct Sprite* sprite) +static void AnimPetalDanceSmallFlower(struct Sprite* sprite) { InitSpritePosToAnimAttacker(sprite, TRUE); sprite->data[0] = gBattleAnimArgs[3]; @@ -2518,11 +2578,11 @@ void AnimPetalDanceSmallFlower(struct Sprite* sprite) sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[2]; InitAnimLinearTranslation(sprite); sprite->data[5] = 0x40; - sprite->callback = AnimPetalDanceSmallFlowerStep; + sprite->callback = AnimPetalDanceSmallFlower_Step; sprite->callback(sprite); } -static void AnimPetalDanceSmallFlowerStep(struct Sprite* sprite) +static void AnimPetalDanceSmallFlower_Step(struct Sprite* sprite) { if (!AnimTranslateLinear(sprite)) { @@ -2543,17 +2603,17 @@ static void AnimPetalDanceSmallFlowerStep(struct Sprite* sprite) // arg 0: upward x delta per frame // arg 1: upward y delta per frame // arg 2: upward duration -void AnimRazorLeafParticle(struct Sprite* sprite) +static void AnimRazorLeafParticle(struct Sprite* sprite) { sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); sprite->data[0] = gBattleAnimArgs[0]; sprite->data[1] = gBattleAnimArgs[1]; sprite->data[2] = gBattleAnimArgs[2]; - sprite->callback = AnimRazorLeafParticleStep1; + sprite->callback = AnimRazorLeafParticle_Step1; } -static void AnimRazorLeafParticleStep1(struct Sprite* sprite) +static void AnimRazorLeafParticle_Step1(struct Sprite* sprite) { if (!sprite->data[2]) { @@ -2569,7 +2629,7 @@ static void AnimRazorLeafParticleStep1(struct Sprite* sprite) sprite->data[1] = 0; sprite->data[2] = 0; } - sprite->callback = AnimRazorLeafParticleStep2; + sprite->callback = AnimRazorLeafParticle_Step2; } else { @@ -2579,7 +2639,7 @@ static void AnimRazorLeafParticleStep1(struct Sprite* sprite) } } -static void AnimRazorLeafParticleStep2(struct Sprite* sprite) +static void AnimRazorLeafParticle_Step2(struct Sprite* sprite) { if (GetBattlerSide(gBattleAnimAttacker)) sprite->x2 = -Sin(sprite->data[0], 25); @@ -2606,7 +2666,7 @@ static void AnimRazorLeafParticleStep2(struct Sprite* sprite) // arg 4: translation duration // arg 5: wave amplitude // arg 6: target between double battle opponents (boolean) -void AnimTranslateLinearSingleSineWave(struct Sprite* sprite) +static void AnimTranslateLinearSingleSineWave(struct Sprite* sprite) { InitSpritePosToAnimAttacker(sprite, TRUE); if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) @@ -2632,10 +2692,10 @@ void AnimTranslateLinearSingleSineWave(struct Sprite* sprite) else sprite->data[0] = 0; - sprite->callback = AnimTranslateLinearSingleSineWaveStep; + sprite->callback = AnimTranslateLinearSingleSineWave_Step; } -static void AnimTranslateLinearSingleSineWaveStep(struct Sprite* sprite) +static void AnimTranslateLinearSingleSineWave_Step(struct Sprite* sprite) { bool8 destroy = FALSE; s16 a = sprite->data[0]; @@ -2657,9 +2717,9 @@ static void AnimTranslateLinearSingleSineWaveStep(struct Sprite* sprite) destroy = TRUE; } - if (sprite->x + sprite->x2 > 256 + if (sprite->x + sprite->x2 > DISPLAY_WIDTH + 16 || sprite->x + sprite->x2 < -16 - || sprite->y + sprite->y2 > 160 + || sprite->y + sprite->y2 > DISPLAY_HEIGHT || sprite->y + sprite->y2 < -16) destroy = TRUE; @@ -2684,10 +2744,10 @@ void AnimMoveTwisterParticle(struct Sprite* sprite) sprite->data[2] = gBattleAnimArgs[2]; sprite->data[3] = gBattleAnimArgs[3]; sprite->data[4] = gBattleAnimArgs[4]; - sprite->callback = AnimMoveTwisterParticleStep; + sprite->callback = AnimMoveTwisterParticle_Step; } -static void AnimMoveTwisterParticleStep(struct Sprite* sprite) +static void AnimMoveTwisterParticle_Step(struct Sprite* sprite) { if (sprite->data[1] == 0xFF) { @@ -2720,17 +2780,17 @@ static void AnimMoveTwisterParticleStep(struct Sprite* sprite) // arg 1: initial y pixel offset // arg 2: affine anim num // arg 3: num squeezes -void AnimConstrictBinding(struct Sprite* sprite) +static void AnimConstrictBinding(struct Sprite* sprite) { InitSpritePosToAnimTarget(sprite, FALSE); sprite->affineAnimPaused = TRUE; StartSpriteAffineAnim(sprite, gBattleAnimArgs[2]); sprite->data[6] = gBattleAnimArgs[2]; sprite->data[7] = gBattleAnimArgs[3]; - sprite->callback = AnimConstrictBindingStep1; + sprite->callback = AnimConstrictBinding_Step1; } -static void AnimConstrictBindingStep1(struct Sprite* sprite) +static void AnimConstrictBinding_Step1(struct Sprite* sprite) { u8 spriteId; @@ -2739,11 +2799,11 @@ static void AnimConstrictBindingStep1(struct Sprite* sprite) sprite->affineAnimPaused = FALSE; spriteId = GetAnimBattlerSpriteId(ANIM_TARGET); sprite->data[0] = 0x100; - sprite->callback = AnimConstrictBindingStep2; + sprite->callback = AnimConstrictBinding_Step2; } } -static void AnimConstrictBindingStep2(struct Sprite* sprite) +static void AnimConstrictBinding_Step2(struct Sprite* sprite) { u8 spriteId = GetAnimBattlerSpriteId(ANIM_TARGET); @@ -2781,11 +2841,11 @@ void AnimTask_ShrinkTargetCopy(u8 taskId) gTasks[taskId].data[0] = gBattleAnimArgs[0]; gTasks[taskId].data[1] = gBattleAnimArgs[1]; gTasks[taskId].data[11] = 0x100; - gTasks[taskId].func = AnimTask_DuplicateAndShrinkToPosStep1; + gTasks[taskId].func = AnimTask_DuplicateAndShrinkToPos_Step1; } } -static void AnimTask_DuplicateAndShrinkToPosStep1(u8 taskId) +static void AnimTask_DuplicateAndShrinkToPos_Step1(u8 taskId) { u8 spriteId = GetAnimBattlerSpriteId(ANIM_TARGET); @@ -2800,11 +2860,11 @@ static void AnimTask_DuplicateAndShrinkToPosStep1(u8 taskId) if (--gTasks[taskId].data[1] == 0) { gTasks[taskId].data[0] = 0; - gTasks[taskId].func = AnimTask_DuplicateAndShrinkToPosStep2; + gTasks[taskId].func = AnimTask_DuplicateAndShrinkToPos_Step2; } } -static void AnimTask_DuplicateAndShrinkToPosStep2(u8 taskId) +static void AnimTask_DuplicateAndShrinkToPos_Step2(u8 taskId) { if ((u16)gBattleAnimArgs[7] == 0xFFFF) { @@ -2831,7 +2891,7 @@ static void AnimTask_DuplicateAndShrinkToPosStep2(u8 taskId) // Moves an orb from the target mon to the attacking mon. // arg 0: initial x pixel offset // arg 1: initial y pixel offset -void AnimMimicOrb(struct Sprite* sprite) +static void AnimMimicOrb(struct Sprite* sprite) { switch (sprite->data[0]) { @@ -2865,7 +2925,7 @@ void AnimMimicOrb(struct Sprite* sprite) // arg 2: sprite subpriority offset // arg 3: sprite anim num // arg 4: duration -void AnimIngrainRoot(struct Sprite* sprite) +static void AnimIngrainRoot(struct Sprite* sprite) { if (!sprite->data[0]) { @@ -2890,7 +2950,7 @@ void AnimIngrainRoot(struct Sprite* sprite) // arg 3: sprite subpriority offset // arg 4: sprite anum num // arg 5: duration -void AnimFrenzyPlantRoot(struct Sprite *sprite) +static void AnimFrenzyPlantRoot(struct Sprite *sprite) { s16 attackerX = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); s16 attackerY = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); @@ -2907,10 +2967,10 @@ void AnimFrenzyPlantRoot(struct Sprite *sprite) StartSpriteAnim(sprite, gBattleAnimArgs[4]); sprite->data[2] = gBattleAnimArgs[5]; sprite->callback = AnimRootFlickerOut; - gUnknown_203999C[0] = sprite->x; - gUnknown_203999C[1] = sprite->y; - gUnknown_203999C[2] = targetX; - gUnknown_203999C[3] = targetY; + sFrenzyPlantRootData.startX = sprite->x; + sFrenzyPlantRootData.startY = sprite->y; + sFrenzyPlantRootData.targetX = targetX; + sFrenzyPlantRootData.targetY = targetY; } static void AnimRootFlickerOut(struct Sprite* sprite) @@ -2928,7 +2988,7 @@ static void AnimRootFlickerOut(struct Sprite* sprite) // arg 2: horizontal velocity // arg 3: wave amplitude // arg 4: duration -void AnimIngrainOrb(struct Sprite* sprite) +static void AnimIngrainOrb(struct Sprite* sprite) { if (!sprite->data[0]) { @@ -2946,7 +3006,7 @@ void AnimIngrainOrb(struct Sprite* sprite) DestroyAnimSprite(sprite); } -static void sub_80A33B8(struct Sprite* sprite, s16 c) +static void InitItemBagData(struct Sprite* sprite, s16 c) { int a = (sprite->x << 8) | sprite->y; int b = (sprite->data[6] << 8) | sprite->data[7]; @@ -2972,7 +3032,7 @@ bool8 MoveAlongLinearPath(struct Sprite* sprite) if (xEndPos == 0) xEndPos = -32; else if (xEndPos == 255) - xEndPos = 272; + xEndPos = DISPLAY_WIDTH + 32; yEndPos_2 = yEndPos - yStartPos; r0 = xEndPos - xStartPos; @@ -2987,7 +3047,7 @@ bool8 MoveAlongLinearPath(struct Sprite* sprite) return FALSE; } -void AnimItemStealStep2(struct Sprite* sprite) +static void AnimItemSteal_Step2(struct Sprite* sprite) { if (sprite->data[0] == 10) StartSpriteAffineAnim(sprite, 1); @@ -2997,7 +3057,7 @@ void AnimItemStealStep2(struct Sprite* sprite) DestroyAnimSprite(sprite); } -static void AnimItemStealStep1(struct Sprite* sprite) +static void AnimItemSteal_Step1(struct Sprite* sprite) { sprite->data[0] += sprite->data[3] * 128 / sprite->data[4]; if (sprite->data[0] >= 128) @@ -3011,11 +3071,11 @@ static void AnimItemStealStep1(struct Sprite* sprite) { sprite->y2 = 0; sprite->data[0] = 0; - sprite->callback = AnimItemStealStep2; + sprite->callback = AnimItemSteal_Step2; } } -void AnimPresent(struct Sprite* sprite) +static void AnimPresent(struct Sprite* sprite) { s16 targetX; s16 targetY; @@ -3027,22 +3087,22 @@ void AnimPresent(struct Sprite* sprite) { sprite->data[6] = targetX; sprite->data[7] = targetY + 10; - sub_80A33B8(sprite, 60); + InitItemBagData(sprite, 60); sprite->data[3] = 1; } else { sprite->data[6] = targetX; sprite->data[7] = targetY + 10; - sub_80A33B8(sprite, 60); + InitItemBagData(sprite, 60); sprite->data[3] = 3; } sprite->data[4] = 60; - sprite->callback = AnimItemStealStep1; + sprite->callback = AnimItemSteal_Step1; } -static void sub_80A3590(struct Sprite* sprite) +static void AnimKnockOffOpponentsItem(struct Sprite* sprite) { int zero; @@ -3063,7 +3123,7 @@ static void sub_80A3590(struct Sprite* sprite) } } -void AnimKnockOffItem(struct Sprite* sprite) +static void AnimKnockOffItem(struct Sprite* sprite) { s16 targetY = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y); @@ -3071,10 +3131,10 @@ void AnimKnockOffItem(struct Sprite* sprite) { sprite->data[6] = 0; sprite->data[7] = targetY + 10; - sub_80A33B8(sprite, 40); + InitItemBagData(sprite, 40); sprite->data[3] = 3; sprite->data[4] = 60; - sprite->callback = AnimItemStealStep1; + sprite->callback = AnimItemSteal_Step1; } else { @@ -3083,10 +3143,10 @@ void AnimKnockOffItem(struct Sprite* sprite) if (IsContest()) sprite->data[6] = 0; - sub_80A33B8(sprite, 40); + InitItemBagData(sprite, 40); sprite->data[3] = 3; sprite->data[4] = 60; - sprite->callback = sub_80A3590; + sprite->callback = AnimKnockOffOpponentsItem; } } @@ -3095,7 +3155,7 @@ void AnimKnockOffItem(struct Sprite* sprite) // arg 1: initial y pixel offset // arg 2: vertical velocity // arg 3: unused -void AnimPresentHealParticle(struct Sprite* sprite) +static void AnimPresentHealParticle(struct Sprite* sprite) { if (!sprite->data[0]) { @@ -3109,7 +3169,7 @@ void AnimPresentHealParticle(struct Sprite* sprite) DestroyAnimSprite(sprite); } -void AnimItemSteal(struct Sprite* sprite) +static void AnimItemSteal(struct Sprite* sprite) { s16 attackerX; s16 attackerY; @@ -3121,22 +3181,22 @@ void AnimItemSteal(struct Sprite* sprite) { sprite->data[6] = attackerX; sprite->data[7] = attackerY + 10; - sub_80A33B8(sprite, 60); + InitItemBagData(sprite, 60); sprite->data[3] = 1; } else { sprite->data[6] = attackerX; sprite->data[7] = attackerY + 10; - sub_80A33B8(sprite, 60); + InitItemBagData(sprite, 60); sprite->data[3] = 3; } sprite->data[4] = 60; - sprite->callback = AnimItemStealStep3; + sprite->callback = AnimItemSteal_Step3; } -static void AnimItemStealStep3(struct Sprite* sprite) +static void AnimItemSteal_Step3(struct Sprite* sprite) { int zero; @@ -3156,7 +3216,7 @@ static void AnimItemStealStep3(struct Sprite* sprite) { sprite->y2 = 0; sprite->data[0] = 0; - sprite->callback = AnimItemStealStep2; + sprite->callback = AnimItemSteal_Step2; PlaySE12WithPanning(SE_M_BUBBLE2, BattleAnimAdjustPanning(SOUND_PAN_ATTACKER)); } } @@ -3164,7 +3224,7 @@ static void AnimItemStealStep3(struct Sprite* sprite) // Moves a bag in a circular motion. // arg 0: y position // arg 1: initial wave offset -void AnimTrickBag(struct Sprite* sprite) +static void AnimTrickBag(struct Sprite* sprite) { int a; int b; @@ -3193,7 +3253,7 @@ void AnimTrickBag(struct Sprite* sprite) sprite->data[4] = 20; sprite->x2 = Cos(sprite->data[1], 60); sprite->y2 = Sin(sprite->data[1], 20); - sprite->callback = AnimTrickBagStep1; + sprite->callback = AnimTrickBag_Step1; if (sprite->data[1] > 0 && sprite->data[1] < 192) sprite->subpriority = 31; else @@ -3201,7 +3261,7 @@ void AnimTrickBag(struct Sprite* sprite) } } -static void AnimTrickBagStep1(struct Sprite* sprite) +static void AnimTrickBag_Step1(struct Sprite* sprite) { switch (sprite->data[3]) { @@ -3225,20 +3285,20 @@ static void AnimTrickBagStep1(struct Sprite* sprite) { sprite->data[0] = 0; sprite->data[2] = 0; - sprite->callback = AnimTrickBagStep2; + sprite->callback = AnimTrickBag_Step2; } break; } } -static void AnimTrickBagStep2(struct Sprite* sprite) +static void AnimTrickBag_Step2(struct Sprite* sprite) { if (sprite->data[2] == gTrickBagCoordinates[sprite->data[0]][1]) { if (gTrickBagCoordinates[sprite->data[0]][2] == 127) { sprite->data[0] = 0; - sprite->callback = AnimTrickBagStep3; + sprite->callback = AnimTrickBag_Step3; } sprite->data[2] = 0; @@ -3261,7 +3321,7 @@ static void AnimTrickBagStep2(struct Sprite* sprite) } } -static void AnimTrickBagStep3(struct Sprite* sprite) +static void AnimTrickBag_Step3(struct Sprite* sprite) { if (sprite->data[0] > 20) DestroyAnimSprite(sprite); @@ -3293,10 +3353,10 @@ void AnimTask_LeafBlade(u8 taskId) gSprites[task->data[2]].data[4] = task->data[7] + (task->data[11] / 2 + 10) * task->data[5]; gSprites[task->data[2]].data[5] = LeafBladeGetPosFactor(&gSprites[task->data[2]]); InitAnimArcTranslation(&gSprites[task->data[2]]); - task->func = AnimTask_LeafBladeStep; + task->func = AnimTask_LeafBlade_Step; } -static void AnimTask_LeafBladeStep(u8 taskId) +static void AnimTask_LeafBlade_Step(u8 taskId) { struct Task* task = &gTasks[taskId]; struct Sprite* sprite = &gSprites[task->data[2]]; @@ -3305,7 +3365,7 @@ static void AnimTask_LeafBladeStep(u8 taskId) switch (a) { case 4: - AnimTask_LeafBladeStep2(task, taskId); + AnimTask_LeafBlade_Step2(task, taskId); if (TranslateAnimHorizontalArc(sprite)) { task->data[15] = 5; @@ -3313,7 +3373,7 @@ static void AnimTask_LeafBladeStep(u8 taskId) } break; case 8: - AnimTask_LeafBladeStep2(task, taskId); + AnimTask_LeafBlade_Step2(task, taskId); if (TranslateAnimHorizontalArc(sprite)) { task->data[15] = 9; @@ -3321,7 +3381,7 @@ static void AnimTask_LeafBladeStep(u8 taskId) } break; case 0: - AnimTask_LeafBladeStep2(task, taskId); + AnimTask_LeafBlade_Step2(task, taskId); if (TranslateAnimHorizontalArc(sprite)) { task->data[15] = 1; @@ -3347,7 +3407,7 @@ static void AnimTask_LeafBladeStep(u8 taskId) task->data[0]++; break; case 2: - AnimTask_LeafBladeStep2(task, taskId); + AnimTask_LeafBlade_Step2(task, taskId); if (TranslateAnimHorizontalArc(sprite)) { task->data[15] = 3; @@ -3390,7 +3450,7 @@ static void AnimTask_LeafBladeStep(u8 taskId) task->data[0]++; break; case 6: - AnimTask_LeafBladeStep2(task, taskId); + AnimTask_LeafBlade_Step2(task, taskId); if (TranslateAnimHorizontalArc(sprite)) { task->data[15] = 7; @@ -3433,7 +3493,7 @@ static void AnimTask_LeafBladeStep(u8 taskId) task->data[0]++; break; case 10: - AnimTask_LeafBladeStep2(task, taskId); + AnimTask_LeafBlade_Step2(task, taskId); if (TranslateAnimHorizontalArc(sprite)) { task->data[15] = 11; @@ -3461,7 +3521,7 @@ static void AnimTask_LeafBladeStep(u8 taskId) break; } case 12: - AnimTask_LeafBladeStep2(task, taskId); + AnimTask_LeafBlade_Step2(task, taskId); if (TranslateAnimHorizontalArc(sprite)) { DestroySprite(sprite); @@ -3492,7 +3552,7 @@ static s16 LeafBladeGetPosFactor(struct Sprite* sprite) return var; } -static void AnimTask_LeafBladeStep2(struct Task* task, u8 taskId) +static void AnimTask_LeafBlade_Step2(struct Task* task, u8 taskId) { task->data[14]++; if (task->data[14] > 0) @@ -3513,12 +3573,12 @@ static void AnimTask_LeafBladeStep2(struct Task* task, u8 taskId) gTasks[taskId].data[13]++; StartSpriteAnim(&gSprites[spriteId], task->data[3]); gSprites[spriteId].subpriority = task->data[4]; - gSprites[spriteId].callback = AnimTask_LeafBladeStep2_Callback; + gSprites[spriteId].callback = AnimTask_LeafBlade_Step2_Callback; } } } -static void AnimTask_LeafBladeStep2_Callback(struct Sprite* sprite) +static void AnimTask_LeafBlade_Step2_Callback(struct Sprite* sprite) { sprite->data[0]++; if (sprite->data[0] > 1) @@ -3534,7 +3594,7 @@ static void AnimTask_LeafBladeStep2_Callback(struct Sprite* sprite) } } -void AnimFlyingParticle(struct Sprite* sprite) +static void AnimFlyingParticle(struct Sprite* sprite) { u8 battler; @@ -3580,10 +3640,10 @@ void AnimFlyingParticle(struct Sprite* sprite) break; } - sprite->callback = AnimFlyingParticleStep; + sprite->callback = AnimFlyingParticle_Step; } -static void AnimFlyingParticleStep(struct Sprite* sprite) +static void AnimFlyingParticle_Step(struct Sprite* sprite) { int a = sprite->data[7]; @@ -3636,7 +3696,7 @@ void AnimTask_CycleMagicalLeafPal(u8 taskId) DestroyAnimVisualTask(taskId); } -void AnimNeedleArmSpike(struct Sprite* sprite) +static void AnimNeedleArmSpike(struct Sprite* sprite) { u8 a; u8 b; @@ -3688,11 +3748,11 @@ void AnimNeedleArmSpike(struct Sprite* sprite) c -= 0x8000; TrySetSpriteRotScale(sprite, 0, 0x100, 0x100, c); - sprite->callback = AnimNeedleArmSpikeStep; + sprite->callback = AnimNeedleArmSpike_Step; } } -static void AnimNeedleArmSpikeStep(struct Sprite* sprite) +static void AnimNeedleArmSpike_Step(struct Sprite* sprite) { if (sprite->data[0]) { @@ -3708,13 +3768,13 @@ static void AnimNeedleArmSpikeStep(struct Sprite* sprite) } } -static void sub_80A43DC(struct Sprite* sprite) +static void AnimWhipHit_WaitEnd(struct Sprite* sprite) { if (sprite->animEnded) DestroyAnimSprite(sprite); } -void AnimSlidingHit(struct Sprite* sprite) +static void AnimSlidingHit(struct Sprite* sprite) { if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) { @@ -3731,17 +3791,17 @@ void AnimSlidingHit(struct Sprite* sprite) StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } -void AnimWhipHit(struct Sprite* sprite) +static void AnimWhipHit(struct Sprite* sprite) { if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) StartSpriteAnim(sprite, 1); - sprite->callback = sub_80A43DC; + sprite->callback = AnimWhipHit_WaitEnd; SetAnimSpriteInitialXOffset(sprite, gBattleAnimArgs[0]); sprite->y += gBattleAnimArgs[1]; } -void AnimFlickeringPunch(struct Sprite* sprite) +static void AnimFlickeringPunch(struct Sprite* sprite) { sprite->x += gBattleAnimArgs[0]; sprite->y += gBattleAnimArgs[1]; @@ -3759,14 +3819,14 @@ void AnimFlickeringPunch(struct Sprite* sprite) // arg 0: initial x pixel offset // arg 1: initial y pixel offset // arg 2: slice direction; 0 = right-to-left, 1 = left-to-right -void AnimCuttingSlice(struct Sprite* sprite) +static void AnimCuttingSlice(struct Sprite* sprite) { sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X); sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y); if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER) sprite->y += 8; - sprite->callback = AnimSliceStep; + sprite->callback = AnimSlice_Step; if (gBattleAnimArgs[2] == 0) { sprite->x += gBattleAnimArgs[0]; @@ -3785,7 +3845,7 @@ void AnimCuttingSlice(struct Sprite* sprite) sprite->data[1] = -sprite->data[1]; } -void AnimAirCutterSlice(struct Sprite* sprite) +static void AnimAirCutterSlice(struct Sprite* sprite) { u8 a; u8 b; @@ -3801,8 +3861,8 @@ void AnimAirCutterSlice(struct Sprite* sprite) b = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y); if (IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimTarget))) { - a = (GetBattlerSpriteCoord(BATTLE_PARTNER(gBattleAnimTarget), 0) + a) / 2; - b = (GetBattlerSpriteCoord(BATTLE_PARTNER(gBattleAnimTarget), 1) + b) / 2; + a = (GetBattlerSpriteCoord(BATTLE_PARTNER(gBattleAnimTarget), BATTLER_COORD_X) + a) / 2; + b = (GetBattlerSpriteCoord(BATTLE_PARTNER(gBattleAnimTarget), BATTLER_COORD_Y) + b) / 2; } break; case 0: @@ -3817,7 +3877,7 @@ void AnimAirCutterSlice(struct Sprite* sprite) if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER) sprite->y += 8; - sprite->callback = AnimSliceStep; + sprite->callback = AnimSlice_Step; if (gBattleAnimArgs[2] == 0) { sprite->x += gBattleAnimArgs[0]; @@ -3836,7 +3896,7 @@ void AnimAirCutterSlice(struct Sprite* sprite) sprite->data[1] = -sprite->data[1]; } -static void AnimSliceStep(struct Sprite* sprite) +static void AnimSlice_Step(struct Sprite* sprite) { sprite->data[3] += sprite->data[1]; sprite->data[4] += sprite->data[2]; @@ -3857,7 +3917,7 @@ static void AnimSliceStep(struct Sprite* sprite) } } -void sub_80A4738(struct Sprite* sprite) +static void UnusedFlickerAnim(struct Sprite* sprite) { if (sprite->data[2] > 1) { @@ -3890,7 +3950,7 @@ void sub_80A4738(struct Sprite* sprite) } } -void AnimCirclingMusicNote(struct Sprite* sprite) +static void AnimCirclingMusicNote(struct Sprite* sprite) { sprite->data[0] = gBattleAnimArgs[2]; if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) @@ -3923,7 +3983,7 @@ static void AnimCirclingMusicNote_Step(struct Sprite* sprite) DestroyAnimSprite(sprite); } -void AnimProtect(struct Sprite* sprite) +static void AnimProtect(struct Sprite* sprite) { if (IsContest()) gBattleAnimArgs[1] += 8; @@ -3940,10 +4000,10 @@ void AnimProtect(struct Sprite* sprite) sprite->data[7] = 16; SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(16 - sprite->data[7], sprite->data[7])); - sprite->callback = AnimProtectStep; + sprite->callback = AnimProtect_Step; } -static void AnimProtectStep(struct Sprite *sprite) +static void AnimProtect_Step(struct Sprite *sprite) { int i, id, savedPal; sprite->data[5] += 96; @@ -3986,7 +4046,7 @@ static void AnimProtectStep(struct Sprite *sprite) } } -void AnimMilkBottle(struct Sprite* sprite) +static void AnimMilkBottle(struct Sprite* sprite) { sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + 0xFFE8; @@ -3999,10 +4059,10 @@ void AnimMilkBottle(struct Sprite* sprite) sprite->data[7] = 16; SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(sprite->data[6], sprite->data[7])); - sprite->callback = AnimMilkBottleStep1; + sprite->callback = AnimMilkBottle_Step1; } -static void AnimMilkBottleStep1(struct Sprite* sprite) +static void AnimMilkBottle_Step1(struct Sprite* sprite) { switch (sprite->data[0]) { @@ -4035,7 +4095,7 @@ static void AnimMilkBottleStep1(struct Sprite* sprite) } break; case 2: - AnimMilkBottleStep2(sprite, 16, 4); + AnimMilkBottle_Step2(sprite, 16, 4); if (++sprite->data[1] > 2) { sprite->data[1] = 0; @@ -4075,7 +4135,7 @@ static void AnimMilkBottleStep1(struct Sprite* sprite) } } -static void AnimMilkBottleStep2(struct Sprite* sprite, int unk1, int unk2) +static void AnimMilkBottle_Step2(struct Sprite* sprite, int unk1, int unk2) { if (sprite->data[3] <= 11) sprite->data[4] += 2; @@ -4096,7 +4156,7 @@ static void AnimMilkBottleStep2(struct Sprite* sprite, int unk1, int unk2) sprite->data[3] = 0; } -void AnimGrantingStars(struct Sprite* sprite) +static void AnimGrantingStars(struct Sprite* sprite) { if (!gBattleAnimArgs[2]) SetSpriteCoordsToAnimAttackerCoords(sprite); @@ -4110,7 +4170,7 @@ void AnimGrantingStars(struct Sprite* sprite) sprite->callback = TranslateSpriteLinearFixedPoint; } -void AnimSparkingStars(struct Sprite* sprite) +static void AnimSparklingStars(struct Sprite* sprite) { u8 battler; @@ -4148,7 +4208,7 @@ void AnimSparkingStars(struct Sprite* sprite) sprite->callback = TranslateSpriteLinearFixedPoint; } -void AnimBubbleBurst(struct Sprite* sprite) +static void AnimBubbleBurst(struct Sprite* sprite) { SetSpriteCoordsToAnimAttackerCoords(sprite); if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) @@ -4179,7 +4239,7 @@ static void AnimBubbleBurst_Step(struct Sprite* sprite) DestroyAnimSprite(sprite); } -void AnimSleepLetterZ(struct Sprite* sprite) +static void AnimSleepLetterZ(struct Sprite* sprite) { SetSpriteCoordsToAnimAttackerCoords(sprite); if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) @@ -4196,10 +4256,10 @@ void AnimSleepLetterZ(struct Sprite* sprite) StartSpriteAffineAnim(sprite, 1); } - sprite->callback = AnimSleepLetterZStep; + sprite->callback = AnimSleepLetterZ_Step; } -static void AnimSleepLetterZStep(struct Sprite* sprite) +static void AnimSleepLetterZ_Step(struct Sprite* sprite) { sprite->y2 = -(sprite->data[0] / 0x28); sprite->x2 = sprite->data[4] / 10; @@ -4209,23 +4269,23 @@ static void AnimSleepLetterZStep(struct Sprite* sprite) DestroySpriteAndMatrix(sprite); } -void AnimLockOnTarget(struct Sprite* sprite) +static void AnimLockOnTarget(struct Sprite* sprite) { sprite->x -= 32; sprite->y -= 32; sprite->data[0] = 20; sprite->callback = WaitAnimForDuration; - StoreSpriteCallbackInData6(sprite, AnimLockOnTargetStep1); + StoreSpriteCallbackInData6(sprite, AnimLockOnTarget_Step1); } -static void AnimLockOnTargetStep1(struct Sprite* sprite) +static void AnimLockOnTarget_Step1(struct Sprite* sprite) { switch (sprite->data[5] & 1) { case 0: sprite->data[0] = 1; sprite->callback = WaitAnimForDuration; - StoreSpriteCallbackInData6(sprite, AnimLockOnTargetStep1); + StoreSpriteCallbackInData6(sprite, AnimLockOnTarget_Step1); break; case 1: sprite->x += sprite->x2; @@ -4236,7 +4296,7 @@ static void AnimLockOnTargetStep1(struct Sprite* sprite) sprite->data[2] = sprite->x + sInclineMonCoordTable[sprite->data[5] >> 8][0]; sprite->data[4] = sprite->y + sInclineMonCoordTable[sprite->data[5] >> 8][1]; sprite->callback = StartAnimLinearTranslation; - StoreSpriteCallbackInData6(sprite, AnimLockOnTargetStep2); + StoreSpriteCallbackInData6(sprite, AnimLockOnTarget_Step2); sprite->data[5] += 0x100; PlaySE12WithPanning(SE_M_LOCK_ON, BattleAnimAdjustPanning(SOUND_PAN_TARGET)); break; @@ -4245,21 +4305,21 @@ static void AnimLockOnTargetStep1(struct Sprite* sprite) sprite->data[5] ^= 1; } -static void AnimLockOnTargetStep2(struct Sprite* sprite) +static void AnimLockOnTarget_Step2(struct Sprite* sprite) { if ((sprite->data[5] >> 8) == 4) { sprite->data[0] = 10; sprite->callback = WaitAnimForDuration; - StoreSpriteCallbackInData6(sprite, AnimLockOnTargetStep3); + StoreSpriteCallbackInData6(sprite, AnimLockOnTarget_Step3); } else { - sprite->callback = AnimLockOnTargetStep1; + sprite->callback = AnimLockOnTarget_Step1; } } -static void AnimLockOnTargetStep3(struct Sprite* sprite) +static void AnimLockOnTarget_Step3(struct Sprite* sprite) { s16 a; s16 b; @@ -4270,7 +4330,7 @@ static void AnimLockOnTargetStep3(struct Sprite* sprite) sprite->data[1] = 0; sprite->data[2] = 0; sprite->callback = WaitAnimForDuration; - StoreSpriteCallbackInData6(sprite, AnimLockOnTargetStep4); + StoreSpriteCallbackInData6(sprite, AnimLockOnTarget_Step4); } else { @@ -4302,11 +4362,11 @@ static void AnimLockOnTargetStep3(struct Sprite* sprite) sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + a; sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + b; sprite->callback = StartAnimLinearTranslation; - StoreSpriteCallbackInData6(sprite, AnimLockOnTargetStep5); + StoreSpriteCallbackInData6(sprite, AnimLockOnTarget_Step5); } } -static void AnimLockOnTargetStep4(struct Sprite* sprite) +static void AnimLockOnTarget_Step4(struct Sprite* sprite) { if (sprite->data[2] == 0) { @@ -4318,7 +4378,7 @@ static void AnimLockOnTargetStep4(struct Sprite* sprite) sprite->data[1] = 0; } - BlendPalettes(SelectBattleAnimSpriteAndBgPalettes(1, 1, 1, 1, 1, 0, 0), sprite->data[1], RGB_WHITE); + BlendPalettes(GetBattlePalettesMask(1, 1, 1, 1, 1, 0, 0), sprite->data[1], RGB_WHITE); if (sprite->data[1] == 16) { int pal; @@ -4329,21 +4389,21 @@ static void AnimLockOnTargetStep4(struct Sprite* sprite) } else if (sprite->data[1] == 0) { - sprite->callback = AnimLockOnTargetStep5; + sprite->callback = AnimLockOnTarget_Step5; } } -static void AnimLockOnTargetStep5(struct Sprite* sprite) +static void AnimLockOnTarget_Step5(struct Sprite* sprite) { if ((u16)gBattleAnimArgs[7] == 0xFFFF) { sprite->data[1] = 0; sprite->data[0] = 0; - sprite->callback = AnimLockOnTargetStep6; + sprite->callback = AnimLockOnTarget_Step6; } } -static void AnimLockOnTargetStep6(struct Sprite* sprite) +static void AnimLockOnTarget_Step6(struct Sprite* sprite) { if (sprite->data[0] % 3 == 0) { @@ -4356,7 +4416,7 @@ static void AnimLockOnTargetStep6(struct Sprite* sprite) DestroyAnimSprite(sprite); } -void AnimLockOnMoveTarget(struct Sprite* sprite) +static void AnimLockOnMoveTarget(struct Sprite* sprite) { sprite->oam.affineParam = gBattleAnimArgs[0]; if ((s16)sprite->oam.affineParam == 1) @@ -4388,38 +4448,38 @@ void AnimLockOnMoveTarget(struct Sprite* sprite) sprite->callback(sprite); } -void AnimBowMon(struct Sprite* sprite) +static void AnimBowMon(struct Sprite* sprite) { sprite->invisible = TRUE; sprite->data[0] = 0; switch (gBattleAnimArgs[0]) { case 0: - sprite->callback = AnimBowMonStep1; + sprite->callback = AnimBowMon_Step1; break; case 1: - sprite->callback = AnimBowMonStep2; + sprite->callback = AnimBowMon_Step2; break; case 2: - sprite->callback = AnimBowMonStep3; + sprite->callback = AnimBowMon_Step3; break; default: - sprite->callback = AnimBowMonStep4; + sprite->callback = AnimBowMon_Step4; break; } } -static void AnimBowMonStep1(struct Sprite* sprite) +static void AnimBowMon_Step1(struct Sprite* sprite) { sprite->data[0] = 6; sprite->data[1] = (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) ? 2 : -2; sprite->data[2] = 0; sprite->data[3] = gBattlerSpriteIds[gBattleAnimAttacker]; - StoreSpriteCallbackInData6(sprite, AnimBowMonStep1_Callback); - sprite->callback = TranslateMonSpriteLinear; + StoreSpriteCallbackInData6(sprite, AnimBowMon_Step1_Callback); + sprite->callback = TranslateSpriteLinearById; } -static void AnimBowMonStep1_Callback(struct Sprite* sprite) +static void AnimBowMon_Step1_Callback(struct Sprite* sprite) { if (sprite->data[0] == 0) { @@ -4435,30 +4495,30 @@ static void AnimBowMonStep1_Callback(struct Sprite* sprite) if (++sprite->data[0] > 3) { sprite->data[0] = 0; - sprite->callback = AnimBowMonStep4; + sprite->callback = AnimBowMon_Step4; } } -static void AnimBowMonStep2(struct Sprite* sprite) +static void AnimBowMon_Step2(struct Sprite* sprite) { sprite->data[0] = 4; sprite->data[1] = (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) ? -3 : 3; sprite->data[2] = 0; sprite->data[3] = gBattlerSpriteIds[gBattleAnimAttacker]; - StoreSpriteCallbackInData6(sprite, AnimBowMonStep4); - sprite->callback = TranslateMonSpriteLinear; + StoreSpriteCallbackInData6(sprite, AnimBowMon_Step4); + sprite->callback = TranslateSpriteLinearById; } -static void AnimBowMonStep3(struct Sprite* sprite) +static void AnimBowMon_Step3(struct Sprite* sprite) { if (++sprite->data[0] > 8) { sprite->data[0] = 0; - sprite->callback = AnimBowMonStep3_Callback; + sprite->callback = AnimBowMon_Step3_Callback; } } -static void AnimBowMonStep3_Callback(struct Sprite* sprite) +static void AnimBowMon_Step3_Callback(struct Sprite* sprite) { if (sprite->data[0] == 0) { @@ -4482,16 +4542,16 @@ static void AnimBowMonStep3_Callback(struct Sprite* sprite) if (++sprite->data[0] > 2) { ResetSpriteRotScale(sprite->data[3]); - sprite->callback = AnimBowMonStep4; + sprite->callback = AnimBowMon_Step4; } } -static void AnimBowMonStep4(struct Sprite* sprite) +static void AnimBowMon_Step4(struct Sprite* sprite) { DestroyAnimSprite(sprite); } -void AnimTipMon(struct Sprite *sprite) +static void AnimTipMon(struct Sprite *sprite) { sprite->data[0] = 0; sprite->callback = AnimTipMon_Step; @@ -4682,7 +4742,7 @@ static void AnimTask_SkullBashPositionReset(u8 taskId) } } -void AnimSlashSlice(struct Sprite* sprite) +static void AnimSlashSlice(struct Sprite* sprite) { if (gBattleAnimArgs[0] == 0) { @@ -4697,48 +4757,48 @@ void AnimSlashSlice(struct Sprite* sprite) sprite->data[0] = 0; sprite->data[1] = 0; - StoreSpriteCallbackInData6(sprite, AnimFalseSwipeSliceStep3); + StoreSpriteCallbackInData6(sprite, AnimFalseSwipeSlice_Step3); sprite->callback = RunStoredCallbackWhenAnimEnds; } -void AnimFalseSwipeSlice(struct Sprite* sprite) +static void AnimFalseSwipeSlice(struct Sprite* sprite) { sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + 0xFFD0; sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); - StoreSpriteCallbackInData6(sprite, AnimFalseSwipeSliceStep1); + StoreSpriteCallbackInData6(sprite, AnimFalseSwipeSlice_Step1); sprite->callback = RunStoredCallbackWhenAnimEnds; } -void AnimFalseSwipePositionedSlice(struct Sprite* sprite) +static void AnimFalseSwipePositionedSlice(struct Sprite* sprite) { sprite->x = sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + 0xFFD0 + gBattleAnimArgs[0]; sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); StartSpriteAnim(sprite, 1); sprite->data[0] = 0; sprite->data[1] = 0; - sprite->callback = AnimFalseSwipeSliceStep3; + sprite->callback = AnimFalseSwipeSlice_Step3; } -static void AnimFalseSwipeSliceStep1(struct Sprite* sprite) +static void AnimFalseSwipeSlice_Step1(struct Sprite* sprite) { if (++sprite->data[0] > 8) { sprite->data[0] = 12; sprite->data[1] = 8; sprite->data[2] = 0; - StoreSpriteCallbackInData6(sprite, AnimFalseSwipeSliceStep2); + StoreSpriteCallbackInData6(sprite, AnimFalseSwipeSlice_Step2); sprite->callback = TranslateSpriteLinear; } } -static void AnimFalseSwipeSliceStep2(struct Sprite* sprite) +static void AnimFalseSwipeSlice_Step2(struct Sprite* sprite) { sprite->data[0] = 0; sprite->data[1] = 0; - sprite->callback = AnimFalseSwipeSliceStep3; + sprite->callback = AnimFalseSwipeSlice_Step3; } -static void AnimFalseSwipeSliceStep3(struct Sprite* sprite) +static void AnimFalseSwipeSlice_Step3(struct Sprite* sprite) { if (++sprite->data[0] > 1) { @@ -4749,7 +4809,7 @@ static void AnimFalseSwipeSliceStep3(struct Sprite* sprite) } } -void AnimEndureEnergy(struct Sprite* sprite) +static void AnimEndureEnergy(struct Sprite* sprite) { if (gBattleAnimArgs[0] == 0) { @@ -4764,10 +4824,10 @@ void AnimEndureEnergy(struct Sprite* sprite) sprite->data[0] = 0; sprite->data[1] = gBattleAnimArgs[3]; - sprite->callback = AnimEndureEnergyStep; + sprite->callback = AnimEndureEnergy_Step; } -static void AnimEndureEnergyStep(struct Sprite* sprite) +static void AnimEndureEnergy_Step(struct Sprite* sprite) { if (++sprite->data[0] > sprite->data[1]) { @@ -4780,7 +4840,7 @@ static void AnimEndureEnergyStep(struct Sprite* sprite) DestroyAnimSprite(sprite); } -void AnimSharpenSphere(struct Sprite* sprite) +static void AnimSharpenSphere(struct Sprite* sprite) { sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET) - 12; @@ -4790,10 +4850,10 @@ void AnimSharpenSphere(struct Sprite* sprite) sprite->data[3] = 0; sprite->data[4] = 0; sprite->data[5] = BattleAnimAdjustPanning(SOUND_PAN_ATTACKER); - sprite->callback = AnimSharpenSphereStep; + sprite->callback = AnimSharpenSphere_Step; } -static void AnimSharpenSphereStep(struct Sprite* sprite) +static void AnimSharpenSphere_Step(struct Sprite* sprite) { if (++sprite->data[0] >= sprite->data[1]) { @@ -4817,7 +4877,7 @@ static void AnimSharpenSphereStep(struct Sprite* sprite) DestroyAnimSprite(sprite); } -void AnimConversion(struct Sprite* sprite) +static void AnimConversion(struct Sprite* sprite) { if (sprite->data[0] == 0) { @@ -4857,15 +4917,15 @@ void AnimTask_ConversionAlphaBlend(u8 taskId) } } -void AnimConversion2(struct Sprite* sprite) +static void AnimConversion2(struct Sprite* sprite) { InitSpritePosToAnimTarget(sprite, FALSE); sprite->animPaused = TRUE; sprite->data[0] = gBattleAnimArgs[2]; - sprite->callback = AnimConversion2Step; + sprite->callback = AnimConversion2_Step; } -static void AnimConversion2Step(struct Sprite* sprite) +static void AnimConversion2_Step(struct Sprite* sprite) { if (sprite->data[0]) { @@ -4894,33 +4954,34 @@ void AnimTask_Conversion2AlphaBlend(u8 taskId) } } -void sub_80A5E34(u8 taskId) +// Unused +static void AnimTask_HideBattlersHealthbox(u8 taskId) { u8 i; for (i = 0; i < gBattlersCount; i++) { - if (gBattleAnimArgs[0] == 1 && GetBattlerSide(i) == B_SIDE_PLAYER) + if (gBattleAnimArgs[0] == TRUE && GetBattlerSide(i) == B_SIDE_PLAYER) SetHealthboxSpriteInvisible(gHealthboxSpriteIds[i]); - if (gBattleAnimArgs[1] == 1 && GetBattlerSide(i) == B_SIDE_OPPONENT) + if (gBattleAnimArgs[1] == TRUE && GetBattlerSide(i) == B_SIDE_OPPONENT) SetHealthboxSpriteInvisible(gHealthboxSpriteIds[i]); } DestroyAnimVisualTask(taskId); } -void sub_80A5EA8(u8 taskId) +// Unused +static void AnimTask_ShowBattlersHealthbox(u8 taskId) { u8 i; - for (i = 0; i < gBattlersCount; i++) SetHealthboxSpriteVisible(gHealthboxSpriteIds[i]); DestroyAnimVisualTask(taskId); } -void AnimMoon(struct Sprite* sprite) +static void AnimMoon(struct Sprite* sprite) { if (IsContest()) { @@ -4936,16 +4997,16 @@ void AnimMoon(struct Sprite* sprite) sprite->oam.shape = SPRITE_SHAPE(8x8); sprite->oam.size = SPRITE_SIZE(64x32); sprite->data[0] = 0; - sprite->callback = AnimMoonStep; + sprite->callback = AnimMoon_Step; } -static void AnimMoonStep(struct Sprite* sprite) +static void AnimMoon_Step(struct Sprite* sprite) { if (sprite->data[0]) DestroyAnimSprite(sprite); } -void AnimMoonlightSparkle(struct Sprite* sprite) +static void AnimMoonlightSparkle(struct Sprite* sprite) { sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2) + gBattleAnimArgs[0]; sprite->y = gBattleAnimArgs[1]; @@ -4954,10 +5015,10 @@ void AnimMoonlightSparkle(struct Sprite* sprite) sprite->data[2] = 0; sprite->data[3] = 0; sprite->data[4] = 1; - sprite->callback = AnimMoonlightSparkleStep; + sprite->callback = AnimMoonlightSparkle_Step; } -static void AnimMoonlightSparkleStep(struct Sprite* sprite) +static void AnimMoonlightSparkle_Step(struct Sprite* sprite) { if (++sprite->data[1] > 1) { @@ -4973,12 +5034,12 @@ static void AnimMoonlightSparkleStep(struct Sprite* sprite) DestroyAnimSprite(sprite); } -void AnimTask_FadeScreenBlueStep(u8); +void AnimTask_MoonlightEndFade_Step(u8); -void AnimTask_FadeScreenBlue(u8 taskId) +void AnimTask_MoonlightEndFade(u8 taskId) { - int a = SelectBattleAnimSpriteAndBgPalettes(1, 0, 0, 0, 0, 0, 0) & 0xFFFF; + int a = GetBattlePalettesMask(TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE) & 0xFFFF; int b; int c; int d; @@ -4993,17 +5054,17 @@ void AnimTask_FadeScreenBlue(u8 taskId) gTasks[taskId].data[7] = 13; gTasks[taskId].data[8] = 14; gTasks[taskId].data[9] = 15; - b = SelectBattlerSpritePalettes(1, 1, 1, 1); + b = GetBattleMonSpritePalettesMask(1, 1, 1, 1); c = a | b; StorePointerInVars(&gTasks[taskId].data[14], &gTasks[taskId].data[15], (void *)c); b = b | (0x10000 << IndexOfSpritePaletteTag(ANIM_TAG_MOON)); d = IndexOfSpritePaletteTag(ANIM_TAG_GREEN_SPARKLE); BeginNormalPaletteFade((0x10000 << d) | b, 0, 0, 16, RGB(27, 29, 31)); - gTasks[taskId].func = AnimTask_FadeScreenBlueStep; + gTasks[taskId].func = AnimTask_MoonlightEndFade_Step; gTasks[taskId].func(taskId); } -void AnimTask_FadeScreenBlueStep(u8 taskId) +void AnimTask_MoonlightEndFade_Step(u8 taskId) { struct Task* task = &gTasks[taskId]; @@ -5082,7 +5143,7 @@ void AnimTask_FadeScreenBlueStep(u8 taskId) } } -void AnimHornHit(struct Sprite* sprite) +static void AnimHornHit(struct Sprite* sprite) { if (gBattleAnimArgs[2] < 2) gBattleAnimArgs[2] = 2; @@ -5126,10 +5187,10 @@ void AnimHornHit(struct Sprite* sprite) sprite->oam.matrixNum = (ST_OAM_HFLIP | ST_OAM_VFLIP); } - sprite->callback = AnimHornHitStep; + sprite->callback = AnimHornHit_Step; } -static void AnimHornHitStep(struct Sprite* sprite) +static void AnimHornHit_Step(struct Sprite* sprite) { sprite->data[2] += sprite->data[3]; sprite->data[4] += sprite->data[5]; @@ -5169,19 +5230,19 @@ void AnimTask_DoubleTeam(u8 taskId) gSprites[obj].data[0] = 0; gSprites[obj].data[1] = i << 7; gSprites[obj].data[2] = taskId; - gSprites[obj].callback = AnimTask_DoubleTeamCallback; + gSprites[obj].callback = AnimDoubleTeam; task->data[3]++; i++; } - task->func = AnimTask_DoubleTeamStep; + task->func = AnimTask_DoubleTeam_Step; if (GetBattlerSpriteBGPriorityRank(gBattleAnimAttacker) == 1) ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_BG1_ON); else ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_BG2_ON); } -static void AnimTask_DoubleTeamStep(u8 taskId) +static void AnimTask_DoubleTeam_Step(u8 taskId) { struct Task* task = &gTasks[taskId]; @@ -5197,7 +5258,7 @@ static void AnimTask_DoubleTeamStep(u8 taskId) } } -static void AnimTask_DoubleTeamCallback(struct Sprite* sprite) +static void AnimDoubleTeam(struct Sprite* sprite) { if (++sprite->data[3] > 1) { @@ -5208,7 +5269,7 @@ static void AnimTask_DoubleTeamCallback(struct Sprite* sprite) if (sprite->data[0] > 64) { gTasks[sprite->data[2]].data[3]--; - obj_delete_but_dont_free_vram(sprite); + DestroySpriteWithActiveSheet(sprite); } else { @@ -5219,7 +5280,7 @@ static void AnimTask_DoubleTeamCallback(struct Sprite* sprite) } } -void AnimSuperFang(struct Sprite* sprite) +static void AnimSuperFang(struct Sprite* sprite) { StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); sprite->callback = RunStoredCallbackWhenAnimEnds; @@ -5263,88 +5324,94 @@ void AnimTask_MusicNotesClearRainbowBlend(u8 taskId) DestroyAnimVisualTask(taskId); } -void AnimWavyMusicNotes(struct Sprite* sprite) +#define sMoveTimer data[0] +#define sBlendTableIdx data[1] +#define sBlendTimer data[2] +#define sBlendCycleTime data[3] +#define sX data[4] +#define sY data[5] +#define sVelocX data[6] +#define sVelocY data[7] + +static void AnimWavyMusicNotes(struct Sprite* sprite) { u8 index; - u8 a; - u8 b; - + u8 x, y; SetSpriteCoordsToAnimAttackerCoords(sprite); StartSpriteAnim(sprite, gBattleAnimArgs[0]); if ((index = IndexOfSpritePaletteTag(sParticlesColorBlendTable[gBattleAnimArgs[1]][0])) != 0xFF) sprite->oam.paletteNum = index; - sprite->data[1] = gBattleAnimArgs[1]; - sprite->data[2] = 0; - sprite->data[3] = gBattleAnimArgs[2]; + sprite->sBlendTableIdx = gBattleAnimArgs[1]; + sprite->sBlendTimer = 0; + sprite->sBlendCycleTime = gBattleAnimArgs[2]; if (IsContest()) { - a = 48; - b = 40; + x = 48; + y = 40; } else { - a = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); - b = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); + x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); + y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); } - sprite->data[4] = sprite->x << 4; - sprite->data[5] = sprite->y << 4; - AnimWavyMusicNotesGetNextPos(a - sprite->x, b - sprite->y, &sprite->data[6], &sprite->data[7], 40); - sprite->callback = AnimWavyMusicNotesStep; + sprite->sX = sprite->x << 4; + sprite->sY = sprite->y << 4; + AnimWavyMusicNotes_CalcVelocity(x - sprite->x, y - sprite->y, &sprite->sVelocX, &sprite->sVelocY, 40); + sprite->callback = AnimWavyMusicNotes_Step; } -static void AnimWavyMusicNotesGetNextPos(s16 a, s16 b, s16 *c, s16 *d, s8 e) +static void AnimWavyMusicNotes_CalcVelocity(s16 x, s16 y, s16 *velocX, s16 *velocY, s8 xSpeedFactor) { - int f; - int g; - - if (a < 0) - e = -e; + int x2; + int time; + if (x < 0) + xSpeedFactor = -xSpeedFactor; - f = a << 8; - g = f / e; - if (g == 0) - g = 1; + x2 = x * 256; + time = x2 / xSpeedFactor; + if (time == 0) + time = 1; - *c = f / g; - *d = (b << 8) / g; + *velocX = x2 / time; + *velocY = (y * 256) / time; } -static void AnimWavyMusicNotesStep(struct Sprite* sprite) +static void AnimWavyMusicNotes_Step(struct Sprite* sprite) { - s16 y, yDelta; + s16 y, trigIdx; u8 index; - sprite->data[0]++; - yDelta = sprite->data[0] * 5 - ((sprite->data[0] * 5 / 256) << 8); - sprite->data[4] += sprite->data[6]; - sprite->data[5] += sprite->data[7]; - sprite->x = sprite->data[4] >> 4; - sprite->y = sprite->data[5] >> 4; - sprite->y2 = Sin(yDelta, 15); + sprite->sMoveTimer++; + trigIdx = sprite->sMoveTimer * 5 - ((sprite->sMoveTimer * 5 / 256) << 8); + sprite->sX += sprite->sVelocX; + sprite->sY += sprite->sVelocY; + sprite->x = sprite->sX >> 4; + sprite->y = sprite->sY >> 4; + sprite->y2 = Sin(trigIdx, 15); y = sprite->y; - if (sprite->x < -16 || sprite->x > 256 || y < -16 || y > 128) + if (sprite->x < -16 || sprite->x > DISPLAY_WIDTH + 16 || y < -16 || y > DISPLAY_HEIGHT - 32) { DestroySpriteAndMatrix(sprite); } else { - if (sprite->data[3] && ++sprite->data[2] > sprite->data[3]) + if (sprite->sBlendCycleTime && ++sprite->sBlendTimer > sprite->sBlendCycleTime) { - sprite->data[2] = 0; - if (++sprite->data[1] > 3) - sprite->data[1] = 0; + sprite->sBlendTimer = 0; + if (++sprite->sBlendTableIdx > 3) + sprite->sBlendTableIdx = 0; - index = IndexOfSpritePaletteTag(sParticlesColorBlendTable[sprite->data[1]][0]); + index = IndexOfSpritePaletteTag(sParticlesColorBlendTable[sprite->sBlendTableIdx][0]); if (index != 0xFF) sprite->oam.paletteNum = index; } } } -void AnimFlyingMusicNotes(struct Sprite* sprite) +static void AnimFlyingMusicNotes(struct Sprite* sprite) { if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_OPPONENT) gBattleAnimArgs[1] *= -1; @@ -5358,10 +5425,10 @@ void AnimFlyingMusicNotes(struct Sprite* sprite) sprite->data[5] = sprite->y << 4; sprite->data[6] = (gBattleAnimArgs[1] << 4) / 5; sprite->data[7] = (gBattleAnimArgs[2] << 7) / 5; - sprite->callback = AnimFlyingMusicNotesStep; + sprite->callback = AnimFlyingMusicNotes_Step; } -static void AnimFlyingMusicNotesStep(struct Sprite* sprite) +static void AnimFlyingMusicNotes_Step(struct Sprite* sprite) { sprite->data[4] += sprite->data[6]; sprite->data[5] += sprite->data[7]; @@ -5380,7 +5447,7 @@ static void AnimFlyingMusicNotesStep(struct Sprite* sprite) DestroySpriteAndMatrix(sprite); } -void AnimBellyDrumHand(struct Sprite* sprite) +static void AnimBellyDrumHand(struct Sprite* sprite) { s16 a; @@ -5401,7 +5468,7 @@ void AnimBellyDrumHand(struct Sprite* sprite) StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } -void AnimSlowFlyingMusicNotes(struct Sprite* sprite) +static void AnimSlowFlyingMusicNotes(struct Sprite* sprite) { s16 xDiff; u8 index; @@ -5421,10 +5488,10 @@ void AnimSlowFlyingMusicNotes(struct Sprite* sprite) sprite->data[4] = sprite->data[3] - 40; InitAnimLinearTranslation(sprite); sprite->data[5] = gBattleAnimArgs[3]; - sprite->callback = AnimSlowFlyingMusicNotesStep; + sprite->callback = AnimSlowFlyingMusicNotes_Step; } -static void AnimSlowFlyingMusicNotesStep(struct Sprite* sprite) +static void AnimSlowFlyingMusicNotes_Step(struct Sprite* sprite) { if (!AnimTranslateLinear(sprite)) { @@ -5454,9 +5521,9 @@ void SetSpriteNextToMonHead(u8 battler, struct Sprite* sprite) sprite->y = GetBattlerSpriteCoord(battler, BATTLER_COORD_Y_PIC_OFFSET) - (s16)GetBattlerSpriteCoordAttr(battler, BATTLER_COORD_ATTR_HEIGHT) / 4; } -void AnimThoughtBubble(struct Sprite* sprite) +static void AnimThoughtBubble(struct Sprite* sprite) { - u8 a; + u8 animNum; u8 battler; if (gBattleAnimArgs[0] == 0) @@ -5465,15 +5532,15 @@ void AnimThoughtBubble(struct Sprite* sprite) battler = gBattleAnimTarget; SetSpriteNextToMonHead(battler, sprite); - a = (GetBattlerSide(battler) == B_SIDE_PLAYER) ? 0 : 1; + animNum = (GetBattlerSide(battler) == B_SIDE_PLAYER) ? 0 : 1; sprite->data[0] = gBattleAnimArgs[1]; - sprite->data[1] = a + 2; - StartSpriteAnim(sprite, a); - StoreSpriteCallbackInData6(sprite, AnimThoughtBubbleStep); + sprite->data[1] = animNum + 2; + StartSpriteAnim(sprite, animNum); + StoreSpriteCallbackInData6(sprite, AnimThoughtBubble_Step); sprite->callback = RunStoredCallbackWhenAnimEnds; } -static void AnimThoughtBubbleStep(struct Sprite* sprite) +static void AnimThoughtBubble_Step(struct Sprite* sprite) { if (--sprite->data[0] == 0) { @@ -5483,7 +5550,7 @@ static void AnimThoughtBubbleStep(struct Sprite* sprite) } } -void AnimMetronomeFinger(struct Sprite* sprite) +static void AnimMetronomeFinger(struct Sprite* sprite) { u8 battler; @@ -5494,11 +5561,11 @@ void AnimMetronomeFinger(struct Sprite* sprite) SetSpriteNextToMonHead(battler, sprite); sprite->data[0] = 0; - StoreSpriteCallbackInData6(sprite, AnimMetronomeFingerStep); + StoreSpriteCallbackInData6(sprite, AnimMetronomeFinger_Step); sprite->callback = RunStoredCallbackWhenAffineAnimEnds; } -static void AnimMetronomeFingerStep(struct Sprite* sprite) +static void AnimMetronomeFinger_Step(struct Sprite* sprite) { if (++sprite->data[0] > 16) { @@ -5508,7 +5575,7 @@ static void AnimMetronomeFingerStep(struct Sprite* sprite) } } -void AnimFollowMeFinger(struct Sprite* sprite) +static void AnimFollowMeFinger(struct Sprite* sprite) { u8 battler; @@ -5527,17 +5594,17 @@ void AnimFollowMeFinger(struct Sprite* sprite) sprite->data[2] = sprite->subpriority; sprite->data[3] = sprite->subpriority + 4; sprite->data[4] = 0; - StoreSpriteCallbackInData6(sprite, AnimFollowMeFingerStep1); + StoreSpriteCallbackInData6(sprite, AnimFollowMeFinger_Step1); sprite->callback = RunStoredCallbackWhenAffineAnimEnds; } -static void AnimFollowMeFingerStep1(struct Sprite* sprite) +static void AnimFollowMeFinger_Step1(struct Sprite* sprite) { if (++sprite->data[4] > 12) - sprite->callback = AnimFollowMeFingerStep2; + sprite->callback = AnimFollowMeFinger_Step2; } -static void AnimFollowMeFingerStep2(struct Sprite* sprite) +static void AnimFollowMeFinger_Step2(struct Sprite* sprite) { s16 x1, x2; @@ -5547,7 +5614,7 @@ static void AnimFollowMeFingerStep2(struct Sprite* sprite) if (--sprite->data[0] == 0) { sprite->x2 = 0; - sprite->callback = AnimMetronomeFingerStep; + sprite->callback = AnimMetronomeFinger_Step; return; } else @@ -5567,7 +5634,7 @@ static void AnimFollowMeFingerStep2(struct Sprite* sprite) sprite->x2 = (x1 >> 3) + (x2 >> 1); } -void AnimTauntFinger(struct Sprite* sprite) +static void AnimTauntFinger(struct Sprite* sprite) { u8 battler; @@ -5588,21 +5655,21 @@ void AnimTauntFinger(struct Sprite* sprite) sprite->data[0] = 3; } - sprite->callback = AnimTauntFingerStep1; + sprite->callback = AnimTauntFinger_Step1; } -static void AnimTauntFingerStep1(struct Sprite* sprite) +static void AnimTauntFinger_Step1(struct Sprite* sprite) { if (++sprite->data[1] > 10) { sprite->data[1] = 0; StartSpriteAnim(sprite, sprite->data[0]); - StoreSpriteCallbackInData6(sprite, AnimTauntFingerStep2); + StoreSpriteCallbackInData6(sprite, AnimTauntFinger_Step2); sprite->callback = RunStoredCallbackWhenAnimEnds; } } -static void AnimTauntFingerStep2(struct Sprite* sprite) +static void AnimTauntFinger_Step2(struct Sprite* sprite) { if (++sprite->data[1] > 5) DestroyAnimSprite(sprite); diff --git a/src/battle_anim_effects_2.c b/src/battle_anim_effects_2.c index 5974491f1..bc58491ee 100644 --- a/src/battle_anim_effects_2.c +++ b/src/battle_anim_effects_2.c @@ -11,29 +11,39 @@ #include "util.h" #include "constants/songs.h" +static void AnimBouncingMusicNote(struct Sprite *); static void AnimBouncingMusicNote_Step(struct Sprite *); +static void AnimMovingClamp(struct Sprite *); static void AnimMovingClamp_Step(struct Sprite *); static void AnimMovingClamp_End(struct Sprite *); -static void AnimTask_WithdrawStep(u8); -static void AnimSwordsDanceBladeStep(struct Sprite *); +static void AnimTask_Withdraw_Step(u8); +static void AnimSwordsDanceBlade(struct Sprite *); +static void AnimSwordsDanceBlade_Step(struct Sprite *); +static void AnimVoidLines(struct Sprite *); static void AnimVoidLines_Step(struct Sprite *); +static void AnimFallingCoin(struct Sprite *); static void AnimFallingCoin_Step(struct Sprite *); +static void AnimBulletSeed(struct Sprite *); static void AnimBulletSeed_Step1(struct Sprite *); static void AnimBulletSeed_Step2(struct Sprite *); -static void AnimViceGripPincerStep(struct Sprite *); -static void AnimGuillotinePincerStep1(struct Sprite *); -static void AnimGuillotinePincerStep2(struct Sprite *); -static void AnimGuillotinePincerStep3(struct Sprite *); -static void AnimTask_GrowAndGreyscaleStep(u8); -static void AnimTask_MinimizeStep1(u8); +static void AnimViceGripPincer(struct Sprite *); +static void AnimViceGripPincer_Step(struct Sprite *); +static void AnimGuillotinePincer(struct Sprite *); +static void AnimGuillotinePincer_Step1(struct Sprite *); +static void AnimGuillotinePincer_Step2(struct Sprite *); +static void AnimGuillotinePincer_Step3(struct Sprite *); +static void AnimTask_GrowAndGrayscale_Step(u8); +static void AnimTask_Minimize_Step1(u8); static void CreateMinimizeSprite(struct Task *, u8); static void ClonedMinizeSprite_Step(struct Sprite *); -static void AnimTask_SplashStep(u8); -static void AnimTask_GrowAndShrinkStep(u8); -static void ThrashMoveMonStep(u8); -static void ThrashMoveMon(u8); +static void AnimTask_Splash_Step(u8); +static void AnimTask_GrowAndShrink_Step(u8); +static void AnimTask_ThrashMoveMonHorizontal_Step(u8); +static void AnimTask_ThrashMoveMonVertical_Step(u8); static void AnimTask_SketchDrawMon_Step(u8); +static void AnimPencil(struct Sprite *); static void AnimPencil_Step(struct Sprite *); +static void AnimSoftBoiledEgg(struct Sprite *); static void AnimSoftBoiledEgg_Step1(struct Sprite *); static void AnimSoftBoiledEgg_Step2(struct Sprite *); static void AnimSoftBoiledEgg_Step3(struct Sprite *); @@ -41,27 +51,56 @@ static void AnimSoftBoiledEgg_Step3_Callback1(struct Sprite *); static void AnimSoftBoiledEgg_Step3_Callback2(struct Sprite *); static void AnimSoftBoiledEgg_Step4(struct Sprite *); static void AnimSoftBoiledEgg_Step4_Callback(struct Sprite *); -static void StretchAttacker_Step(u8); -static void ExtremeSpeedImpact_Step(u8); -static void ExtremeSpeedMonReappear_Step(u8); -static void SpeedDust_Step1(u8); -static void FakeOutStep1(u8); -static void FakeOutStep2(u8); +static void AnimTask_AttackerStretchAndDisappear_Step(u8); +static void AnimTask_ExtremeSpeedImpact_Step(u8); +static void AnimTask_ExtremeSpeedMonReappear_Step(u8); +static void AnimTask_SpeedDust_Step(u8); +static void AnimTask_FakeOut_Step1(u8); +static void AnimTask_FakeOut_Step2(u8); +static void AnimRedHeartProjectile(struct Sprite *); static void AnimRedHeartProjectile_Step(struct Sprite *); +static void AnimRedHeartRising(struct Sprite *); static void AnimRedHeartRising_Step(struct Sprite *); -static void HeartsBackground_Step(u8); -static void ScaryFace_Step(u8); -static void AnimOrbitFastStep(struct Sprite *); -static void AnimOrbitScatterStep(struct Sprite *); +static void AnimTask_HeartsBackground_Step(u8); +static void AnimTask_ScaryFace_Step(u8); +static void AnimOrbitFast(struct Sprite *); +static void AnimOrbitFast_Step(struct Sprite *); +static void AnimOrbitScatter(struct Sprite *); +static void AnimOrbitScatter_Step(struct Sprite *); +static void AnimMovementWaves(struct Sprite *); static void AnimMovementWaves_Step(struct Sprite *); -static void UproarDistortion_Step(u8); +static void AnimTask_UproarDistortion_Step(u8); +static void AnimJaggedMusicNote(struct Sprite *); static void AnimJaggedMusicNote_Step(struct Sprite *); +static void AnimPerishSongMusicNote2(struct Sprite *); +static void AnimPerishSongMusicNote(struct Sprite *); static void AnimPerishSongMusicNote_Step1(struct Sprite *); static void AnimPerishSongMusicNote_Step2(struct Sprite *); +static void AnimCirclingFinger(struct Sprite *); +static void AnimVibrateBattlerBack(struct Sprite *); +static void AnimKinesisZapEnergy(struct Sprite *); +static void AnimSonicBoomProjectile(struct Sprite *); +static void AnimAirWaveProjectile(struct Sprite *); +static void AnimCoinThrow(struct Sprite *); +static void AnimRazorWindTornado(struct Sprite *); +static void AnimBreathPuff(struct Sprite *); +static void AnimAngerMark(struct Sprite *); +static void AnimBlendThinRing(struct Sprite *); +static void AnimHyperVoiceRing(struct Sprite *); +static void AnimUproarRing(struct Sprite *); +static void AnimSpeedDust(struct Sprite *); +static void AnimHealBellMusicNote(struct Sprite *); +static void AnimMagentaHeart(struct Sprite *); +static void AnimSpitUpOrb(struct Sprite *); +static void AnimEyeSparkle(struct Sprite *); +static void AnimAngel(struct Sprite *); +static void AnimPinkHeart(struct Sprite *); +static void AnimDevil(struct Sprite *); +static void AnimFurySwipes(struct Sprite *); +static void AnimGuardRing(struct Sprite *); -// Data // Unused -static const struct SpriteTemplate sUnknown_83E3ADC = +static const struct SpriteTemplate sCirclingFingerSpriteTemplate = { .tileTag = ANIM_TAG_FINGER, .paletteTag = ANIM_TAG_FINGER, @@ -72,19 +111,20 @@ static const struct SpriteTemplate sUnknown_83E3ADC = .callback = AnimCirclingFinger, }; -static const union AnimCmd sUnknown_83E3AF4[] = +static const union AnimCmd sAnim_BouncingMusicNote[] = { ANIMCMD_FRAME(4, 1), ANIMCMD_END, }; -static const union AnimCmd *const sUnknown_83E3AFC[] = +// Unused (association assumed) +static const union AnimCmd *const sAnims_BouncingMusicNote[] = { - sUnknown_83E3AF4, + sAnim_BouncingMusicNote, }; // Unused -static const struct SpriteTemplate sUnknown_83E3B00 = +static const struct SpriteTemplate sBouncingMusicNoteSpriteTemplate = { .tileTag = ANIM_TAG_MUSIC_NOTES, .paletteTag = ANIM_TAG_MUSIC_NOTES, @@ -96,7 +136,7 @@ static const struct SpriteTemplate sUnknown_83E3B00 = }; // Unused -static const struct SpriteTemplate sUnknown_83E3B18 = +static const struct SpriteTemplate sVibrateBattlerBackSpriteTemplate = { .tileTag = 0, .paletteTag = 0, @@ -108,7 +148,7 @@ static const struct SpriteTemplate sUnknown_83E3B18 = }; // Unused -static const struct SpriteTemplate sUnknown_83E3B30 = +static const struct SpriteTemplate sMovingClampSpriteTemplate = { .tileTag = ANIM_TAG_CLAMP, .paletteTag = ANIM_TAG_CLAMP, @@ -119,7 +159,7 @@ static const struct SpriteTemplate sUnknown_83E3B30 = .callback = AnimMovingClamp, }; -static const union AnimCmd sUnknown_83E3B48[] = +static const union AnimCmd sAnim_SmallExplosion[] = { ANIMCMD_FRAME(0, 9), ANIMCMD_FRAME(16, 3), @@ -128,32 +168,32 @@ static const union AnimCmd sUnknown_83E3B48[] = ANIMCMD_END, }; -static const union AnimCmd *const sUnknown_83E3B5C[] = +static const union AnimCmd *const sAnims_SmallExplosion[] = { - sUnknown_83E3B48, + sAnim_SmallExplosion, }; -static const union AffineAnimCmd sUnknown_83E3B60[] = +static const union AffineAnimCmd sAffineAnim_SmallExplosion[] = { AFFINEANIMCMD_FRAME(80, 80, 0, 0), AFFINEANIMCMD_FRAME(9, 9, 0, 18), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd *const sUnknown_83E3B78[] = +static const union AffineAnimCmd *const sAffineAnims_SmallExplosion[] = { - sUnknown_83E3B60, + sAffineAnim_SmallExplosion, }; // Unused -static const struct SpriteTemplate sUnknown_83E3B7C = +static const struct SpriteTemplate sSmallExplosionSpriteTemplate = { .tileTag = ANIM_TAG_EXPLOSION_6, .paletteTag = ANIM_TAG_EXPLOSION_6, .oam = &gOamData_AffineNormal_ObjNormal_32x32, - .anims = sUnknown_83E3B5C, + .anims = sAnims_SmallExplosion, .images = NULL, - .affineAnims = sUnknown_83E3B78, + .affineAnims = sAffineAnims_SmallExplosion, .callback = AnimSpriteOnMonPos, }; @@ -183,7 +223,7 @@ const struct SpriteTemplate gKinesisZapEnergySpriteTemplate = .anims = sKinesisZapEnergyAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = Anim_KinesisZapEnergy, + .callback = AnimKinesisZapEnergy, }; static const union AffineAnimCmd sSwordsDanceBladeAffineAnimCmds[] = @@ -207,7 +247,7 @@ const struct SpriteTemplate gSwordsDanceBladeSpriteTemplate = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = sSwordsDanceBladeAffineAnimTable, - .callback = Anim_SwordsDanceBlade, + .callback = AnimSwordsDanceBlade, }; const struct SpriteTemplate gSonicBoomSpriteTemplate = @@ -261,7 +301,7 @@ static const union AffineAnimCmd *const sWaterPulseRingAffineAnimTable[] = sWaterPulseRingAffineAnimCmds, }; -const struct SpriteTemplate gSupersonicWaveSpriteTemplate = +const struct SpriteTemplate gSupersonicRingSpriteTemplate = { .tileTag = ANIM_TAG_GOLD_RING, .paletteTag = ANIM_TAG_GOLD_RING, @@ -272,7 +312,7 @@ const struct SpriteTemplate gSupersonicWaveSpriteTemplate = .callback = TranslateAnimSpriteToTargetMonLocation, }; -const struct SpriteTemplate gScreechWaveSpriteTemplate = +const struct SpriteTemplate gScreechRingSpriteTemplate = { .tileTag = ANIM_TAG_PURPLE_RING, .paletteTag = ANIM_TAG_PURPLE_RING, @@ -316,7 +356,7 @@ const struct SpriteTemplate gEggThrowSpriteTemplate = .callback = AnimThrowProjectile, }; -static const struct SpriteTemplate sUnknown_83E3D18 = +static const struct SpriteTemplate sVoidLinesSpriteTemplate = { .tileTag = ANIM_TAG_VOID_LINES, .paletteTag = ANIM_TAG_VOID_LINES, @@ -585,7 +625,7 @@ const struct SpriteTemplate gSnoreZSpriteTemplate = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = AnimSnoreZ, + .callback = AnimTravelDiagonally, }; static const union AnimCmd sExplosionAnimCmds[] = @@ -830,7 +870,9 @@ const struct SpriteTemplate gBellSpriteTemplate = .callback = AnimSpriteOnMonPos, }; -const u16 gMusicNotePaletteTagsTable[] = +#define NUM_MUSIC_NOTE_PAL_TAGS 3 + +const u16 gMusicNotePaletteTagsTable[NUM_MUSIC_NOTE_PAL_TAGS] = { ANIM_TAG_MUSIC_NOTES_2, ANIM_SPRITES_START - 1, @@ -859,7 +901,7 @@ const struct SpriteTemplate gMagentaHeartSpriteTemplate = .callback = AnimMagentaHeart, }; -static const union AffineAnimCmd sUnknown_83E4200[] = +static const union AffineAnimCmd sAffineAnims_StretchBattlerUp[] = { AFFINEANIMCMD_FRAME(10, -13, 0, 10), AFFINEANIMCMD_FRAME(-10, 13, 0, 10), @@ -885,7 +927,7 @@ const struct SpriteTemplate gRedHeartBurstSpriteTemplate = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = AnimParticuleBurst, + .callback = AnimParticleBurst, }; const struct SpriteTemplate gRedHeartRisingSpriteTemplate = @@ -1044,7 +1086,7 @@ const struct SpriteTemplate gDevilSpriteTemplate = .callback = AnimDevil, }; -static const union AnimCmd sFurySwipesAnimCmd1[] = +static const union AnimCmd sAnim_FurySwipes[] = { ANIMCMD_FRAME(0, 4), ANIMCMD_FRAME(16, 4), @@ -1053,7 +1095,7 @@ static const union AnimCmd sFurySwipesAnimCmd1[] = ANIMCMD_END, }; -static const union AnimCmd sFurySwipesAnimCmd2[] = +static const union AnimCmd sAnim_FurySwipes_Flipped[] = { ANIMCMD_FRAME(0, 4, .hFlip = TRUE), ANIMCMD_FRAME(16, 4, .hFlip = TRUE), @@ -1062,10 +1104,10 @@ static const union AnimCmd sFurySwipesAnimCmd2[] = ANIMCMD_END, }; -static const union AnimCmd *const sFurySwipesAnimTable[] = +static const union AnimCmd *const sAnims_FurySwipes[] = { - sFurySwipesAnimCmd1, - sFurySwipesAnimCmd2, + sAnim_FurySwipes, + sAnim_FurySwipes_Flipped, }; const struct SpriteTemplate gFurySwipesSpriteTemplate = @@ -1073,7 +1115,7 @@ const struct SpriteTemplate gFurySwipesSpriteTemplate = .tileTag = ANIM_TAG_SWIPE, .paletteTag = ANIM_TAG_SWIPE, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = sFurySwipesAnimTable, + .anims = sAnims_FurySwipes, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimFurySwipes, @@ -1209,22 +1251,31 @@ const struct SpriteTemplate gGuardRingSpriteTemplate = .callback = AnimGuardRing, }; -// Functions -void AnimCirclingFinger(struct Sprite *sprite) +#define sAmplitudeX data[1] +#define sCircleSpeed data[2] +#define sMoveSteps data[3] +#define sAmplitudeY data[4] + +static void AnimCirclingFinger(struct Sprite *sprite) { SetSpriteCoordsToAnimAttackerCoords(sprite); SetAnimSpriteInitialXOffset(sprite, gBattleAnimArgs[0]); sprite->y += gBattleAnimArgs[1]; - sprite->data[1] = gBattleAnimArgs[2]; - sprite->data[2] = gBattleAnimArgs[4]; - sprite->data[3] = gBattleAnimArgs[5]; - sprite->data[4] = gBattleAnimArgs[3]; + sprite->sAmplitudeX = gBattleAnimArgs[2]; + sprite->sCircleSpeed = gBattleAnimArgs[4]; + sprite->sMoveSteps = gBattleAnimArgs[5]; + sprite->sAmplitudeY = gBattleAnimArgs[3]; StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix); - sprite->callback = TranslateSpriteInEllipseOverDuration; + sprite->callback = TranslateSpriteInEllipse; sprite->callback(sprite); } -void AnimBouncingMusicNote(struct Sprite *sprite) +#undef sAmplitudeX +#undef sCircleSpeed +#undef sMoveSteps +#undef sAmplitudeY + +static void AnimBouncingMusicNote(struct Sprite *sprite) { u8 battler; @@ -1275,7 +1326,7 @@ static void AnimVibrateBattlerBack_Step(struct Sprite *sprite) sprite->data[0]--; } -void AnimVibrateBattlerBack(struct Sprite *sprite) +static void AnimVibrateBattlerBack(struct Sprite *sprite) { u8 spriteId; sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); @@ -1294,7 +1345,7 @@ void AnimVibrateBattlerBack(struct Sprite *sprite) sprite->invisible = TRUE; } -void AnimMovingClamp(struct Sprite *sprite) +static void AnimMovingClamp(struct Sprite *sprite) { InitSpritePosToAnimAttacker(sprite, TRUE); sprite->data[0] = gBattleAnimArgs[2]; @@ -1326,10 +1377,10 @@ static void AnimMovingClamp_End(struct Sprite *sprite) void AnimTask_Withdraw(u8 taskId) { PrepareBattlerSpriteForRotScale(gBattlerSpriteIds[gBattleAnimAttacker], ST_OAM_OBJ_NORMAL); - gTasks[taskId].func = AnimTask_WithdrawStep; + gTasks[taskId].func = AnimTask_Withdraw_Step; } -static void AnimTask_WithdrawStep(u8 taskId) +static void AnimTask_Withdraw_Step(u8 taskId) { u8 spriteId = gBattlerSpriteIds[gBattleAnimAttacker]; s16 rotation; @@ -1379,7 +1430,7 @@ static void AnimTask_WithdrawStep(u8 taskId) // arg 0: x pixel offset // arg 1: y pixel offset // arg 2: vertical flip -void Anim_KinesisZapEnergy(struct Sprite *sprite) +static void AnimKinesisZapEnergy(struct Sprite *sprite) { SetSpriteCoordsToAnimAttackerCoords(sprite); if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) @@ -1407,14 +1458,14 @@ void Anim_KinesisZapEnergy(struct Sprite *sprite) // Animates a sword that rises into the air after a brief pause. // arg 0: x pixel offset // arg 1: y pixel offset -void Anim_SwordsDanceBlade(struct Sprite *sprite) +static void AnimSwordsDanceBlade(struct Sprite *sprite) { InitSpritePosToAnimAttacker(sprite, FALSE); sprite->callback = RunStoredCallbackWhenAffineAnimEnds; - StoreSpriteCallbackInData6(sprite, AnimSwordsDanceBladeStep); + StoreSpriteCallbackInData6(sprite, AnimSwordsDanceBlade_Step); } -static void AnimSwordsDanceBladeStep(struct Sprite *sprite) +static void AnimSwordsDanceBlade_Step(struct Sprite *sprite) { sprite->data[0] = 6; sprite->data[2] = sprite->x; @@ -1430,7 +1481,7 @@ static void AnimSwordsDanceBladeStep(struct Sprite *sprite) // arg 2: target x pixel offset // arg 3: target y pixel offset // arg 4: duration -void AnimSonicBoomProjectile(struct Sprite *sprite) +static void AnimSonicBoomProjectile(struct Sprite *sprite) { s16 targetXPos; s16 targetYPos; @@ -1506,7 +1557,7 @@ static void AnimAirWaveProjectile_Step1(struct Sprite *sprite) } } -void AnimAirWaveProjectile(struct Sprite *sprite) +static void AnimAirWaveProjectile(struct Sprite *sprite) { s16 a; s16 b; @@ -1555,13 +1606,13 @@ void AnimAirWaveProjectile(struct Sprite *sprite) } } -static void AirCutterProjectileStep2(u8 taskId) +static void AirCutterProjectile_Step2(u8 taskId) { if (gTasks[taskId].data[1] == 0) DestroyAnimVisualTask(taskId); } -static void AirCutterProjectileStep1(u8 taskId) +static void AirCutterProjectile_Step1(u8 taskId) { if (gTasks[taskId].data[0]-- <= 0) { @@ -1586,7 +1637,7 @@ static void AirCutterProjectileStep1(u8 taskId) gTasks[taskId].data[1]++; PlaySE12WithPanning(SE_M_BLIZZARD2, BattleAnimAdjustPanning(-SOUND_PAN_TARGET)); if (gTasks[taskId].data[1] > 2) - gTasks[taskId].func = AirCutterProjectileStep2; + gTasks[taskId].func = AirCutterProjectile_Step2; } } @@ -1687,13 +1738,13 @@ void AnimTask_AirCutterProjectile(u8 taskId) if (gTasks[taskId].data[2] < 3) gTasks[taskId].data[2] = 3; - gTasks[taskId].func = AirCutterProjectileStep1; + gTasks[taskId].func = AirCutterProjectile_Step1; } -void AnimVoidLines(struct Sprite *sprite) +static void AnimVoidLines(struct Sprite *sprite) { InitSpritePosToAnimAttacker(sprite, FALSE); - sprite->data[0] = 0x100 + (IndexOfSpritePaletteTag(sUnknown_83E3D18.paletteTag) << 4); + sprite->data[0] = 0x100 + (IndexOfSpritePaletteTag(sVoidLinesSpriteTemplate.paletteTag) << 4); sprite->callback = AnimVoidLines_Step; } @@ -1717,7 +1768,7 @@ static void AnimVoidLines_Step(struct Sprite *sprite) } } -void AnimCoinThrow(struct Sprite *sprite) +static void AnimCoinThrow(struct Sprite *sprite) { s16 r6; s16 r7; @@ -1736,11 +1787,11 @@ void AnimCoinThrow(struct Sprite *sprite) sprite->data[0] = gBattleAnimArgs[4]; sprite->data[2] = r6; sprite->data[4] = r7; - sprite->callback = BattleAnim_InitAndRunLinearTranslationWithDuration; + sprite->callback = InitAnimLinearTranslationWithSpeedAndPos; StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } -void AnimFallingCoin(struct Sprite *sprite) +static void AnimFallingCoin(struct Sprite *sprite) { sprite->data[2] = -16; sprite->y += 8; @@ -1765,7 +1816,7 @@ static void AnimFallingCoin_Step(struct Sprite *sprite) } } -void AnimBulletSeed(struct Sprite *sprite) +static void AnimBulletSeed(struct Sprite *sprite) { InitSpritePosToAnimAttacker(sprite, TRUE); sprite->data[0] = 20; @@ -1825,7 +1876,7 @@ static void AnimBulletSeed_Step2(struct Sprite *sprite) // arg 4: initial wave offset // arg 5: wave period (higher means faster wave) // arg 6: duration -void AnimRazorWindTornado(struct Sprite *sprite) +static void AnimRazorWindTornado(struct Sprite *sprite) { InitSpritePosToAnimAttacker(sprite, FALSE); if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) @@ -1836,14 +1887,14 @@ void AnimRazorWindTornado(struct Sprite *sprite) sprite->data[2] = gBattleAnimArgs[5]; sprite->data[3] = gBattleAnimArgs[6]; sprite->data[4] = gBattleAnimArgs[3]; - sprite->callback = TranslateSpriteInCircleOverDuration; + sprite->callback = TranslateSpriteInCircle; StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); sprite->callback(sprite); } // Animates a single pincer line that extends towards the center of the target mon. // arg 0: invert -void AnimViceGripPincer(struct Sprite *sprite) +static void AnimViceGripPincer(struct Sprite *sprite) { s16 startXOffset = 32; s16 startYOffset = -32; @@ -1865,10 +1916,10 @@ void AnimViceGripPincer(struct Sprite *sprite) sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + endXOffset; sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + endYOffset; sprite->callback = StartAnimLinearTranslation; - StoreSpriteCallbackInData6(sprite, AnimViceGripPincerStep); + StoreSpriteCallbackInData6(sprite, AnimViceGripPincer_Step); } -static void AnimViceGripPincerStep(struct Sprite *sprite) +static void AnimViceGripPincer_Step(struct Sprite *sprite) { if (sprite->animEnded) DestroyAnimSprite(sprite); @@ -1876,7 +1927,7 @@ static void AnimViceGripPincerStep(struct Sprite *sprite) // Animates a single pincer line that extends towards the center of the target mon, and then back out. // arg 0: animation id -void AnimGuillotinePincer(struct Sprite *sprite) +static void AnimGuillotinePincer(struct Sprite *sprite) { s16 startXOffset = 32; s16 startYOffset = -32; @@ -1902,10 +1953,10 @@ void AnimGuillotinePincer(struct Sprite *sprite) InitAnimLinearTranslation(sprite); sprite->data[5] = gBattleAnimArgs[0]; sprite->data[6] = sprite->data[0]; - sprite->callback = AnimGuillotinePincerStep1; + sprite->callback = AnimGuillotinePincer_Step1; } -static void AnimGuillotinePincerStep1(struct Sprite *sprite) +static void AnimGuillotinePincer_Step1(struct Sprite *sprite) { if (AnimTranslateLinear(sprite) && sprite->animEnded) { @@ -1920,11 +1971,11 @@ static void AnimGuillotinePincerStep1(struct Sprite *sprite) sprite->data[2] ^= 1; sprite->data[4] = 0; sprite->data[3] = 0; - sprite->callback = AnimGuillotinePincerStep2; + sprite->callback = AnimGuillotinePincer_Step2; } } -static void AnimGuillotinePincerStep2(struct Sprite *sprite) +static void AnimGuillotinePincer_Step2(struct Sprite *sprite) { if (sprite->data[3]) { @@ -1941,11 +1992,11 @@ static void AnimGuillotinePincerStep2(struct Sprite *sprite) sprite->data[3] = 0; sprite->animPaused = FALSE; StartSpriteAnim(sprite, sprite->data[5] ^ 1); - sprite->callback = AnimGuillotinePincerStep3; + sprite->callback = AnimGuillotinePincer_Step3; } } -static void AnimGuillotinePincerStep3(struct Sprite *sprite) +static void AnimGuillotinePincer_Step3(struct Sprite *sprite) { if (AnimTranslateLinear(sprite)) DestroyAnimSprite(sprite); @@ -1954,7 +2005,7 @@ static void AnimGuillotinePincerStep3(struct Sprite *sprite) // Scales up the target mon sprite, and sets the palette to greyscale. // Used in MOVE_DISABLE. // No args. -void AnimTask_GrowAndGreyscale(u8 taskId) +void AnimTask_GrowAndGrayscale(u8 taskId) { u8 spriteId = GetAnimBattlerSpriteId(ANIM_TARGET); @@ -1962,10 +2013,10 @@ void AnimTask_GrowAndGreyscale(u8 taskId) SetSpriteRotScale(spriteId, 0xD0, 0xD0, 0); SetGreyscaleOrOriginalPalette(gSprites[spriteId].oam.paletteNum + 16, FALSE); gTasks[taskId].data[0] = 80; - gTasks[taskId].func = AnimTask_GrowAndGreyscaleStep; + gTasks[taskId].func = AnimTask_GrowAndGrayscale_Step; } -static void AnimTask_GrowAndGreyscaleStep(u8 taskId) +static void AnimTask_GrowAndGrayscale_Step(u8 taskId) { if (--gTasks[taskId].data[0] == -1) { @@ -1993,10 +2044,10 @@ void AnimTask_Minimize(u8 taskId) task->data[5] = 0; task->data[6] = 0; task->data[7] = GetBattlerSpriteSubpriority(gBattleAnimAttacker); - task->func = AnimTask_MinimizeStep1; + task->func = AnimTask_Minimize_Step1; } -static void AnimTask_MinimizeStep1(u8 taskId) +static void AnimTask_Minimize_Step1(u8 taskId) { struct Task* task = &gTasks[taskId]; @@ -2072,7 +2123,7 @@ static void CreateMinimizeSprite(struct Task* task, u8 taskId) { if ((matrixNum = AllocOamMatrix()) == 0xFF) { - obj_delete_but_dont_free_vram(&gSprites[spriteId]); + DestroySpriteWithActiveSheet(&gSprites[spriteId]); } else { @@ -2100,7 +2151,7 @@ static void ClonedMinizeSprite_Step(struct Sprite *sprite) { gTasks[sprite->data[1]].data[sprite->data[2]]--; FreeOamMatrix(sprite->oam.matrixNum); - obj_delete_but_dont_free_vram(sprite); + DestroySpriteWithActiveSheet(sprite); } } @@ -2124,11 +2175,11 @@ void AnimTask_Splash(u8 taskId) task->data[3] = 0; task->data[4] = 0; PrepareAffineAnimInTaskData(task, spriteId, sSplashEffectAffineAnimCmds); - task->func = AnimTask_SplashStep; + task->func = AnimTask_Splash_Step; } } -static void AnimTask_SplashStep(u8 taskId) +static void AnimTask_Splash_Step(u8 taskId) { struct Task* task = &gTasks[taskId]; @@ -2189,10 +2240,10 @@ void AnimTask_GrowAndShrink(u8 taskId) u8 spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER); PrepareAffineAnimInTaskData(task, spriteId, sGrowAndShrinkAffineAnimCmds); - task->func = AnimTask_GrowAndShrinkStep; + task->func = AnimTask_GrowAndShrink_Step; } -static void AnimTask_GrowAndShrinkStep(u8 taskId) +static void AnimTask_GrowAndShrink_Step(u8 taskId) { struct Task* task = &gTasks[taskId]; @@ -2203,7 +2254,7 @@ static void AnimTask_GrowAndShrinkStep(u8 taskId) // Animates a little puff of the mon's breath. // Used by MOVE_SWAGGER and MOVE_BULK_UP // No args. -void AnimBreathPuff(struct Sprite *sprite) +static void AnimBreathPuff(struct Sprite *sprite) { if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) { @@ -2231,7 +2282,7 @@ void AnimBreathPuff(struct Sprite *sprite) // arg 0: target mon (0 = attacker, 1 = target) // arg 1: x pixel offset // arg 2: y pixel offset -void AnimAngerMark(struct Sprite *sprite) +static void AnimAngerMark(struct Sprite *sprite) { u8 battler; @@ -2261,10 +2312,10 @@ void AnimTask_ThrashMoveMonHorizontal(u8 taskId) task->data[0] = spriteId; task->data[1] = 0; PrepareAffineAnimInTaskData(task, spriteId, sThrashMoveMonAffineAnimCmds); - task->func = ThrashMoveMonStep; + task->func = AnimTask_ThrashMoveMonHorizontal_Step; } -static void ThrashMoveMonStep(u8 taskId) +static void AnimTask_ThrashMoveMonHorizontal_Step(u8 taskId) { struct Task* task = &gTasks[taskId]; @@ -2290,10 +2341,10 @@ void AnimTask_ThrashMoveMonVertical(u8 taskId) if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_OPPONENT) task->data[2] *= -1; - task->func = ThrashMoveMon; + task->func = AnimTask_ThrashMoveMonVertical_Step; } -static void ThrashMoveMon(u8 taskId) +static void AnimTask_ThrashMoveMonVertical_Step(u8 taskId) { struct Task* task = &gTasks[taskId]; @@ -2433,7 +2484,7 @@ static void AnimTask_SketchDrawMon_Step(u8 taskId) } } -void AnimPencil(struct Sprite *sprite) +static void AnimPencil(struct Sprite *sprite) { sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X) - 16; sprite->y = GetBattlerYCoordWithElevation(gBattleAnimTarget) + 16; @@ -2506,7 +2557,7 @@ static void AnimPencil_Step(struct Sprite *sprite) } } -void AnimBlendThinRing(struct Sprite *sprite) +static void AnimBlendThinRing(struct Sprite *sprite) { u8 battler = 0; u16 sp0 = 0; @@ -2537,7 +2588,7 @@ void AnimBlendThinRing(struct Sprite *sprite) sprite->callback(sprite); } -void sub_80A8C84(struct Sprite *sprite) +static void AnimHyperVoiceRing_WaitEnd(struct Sprite *sprite) { if (AnimTranslateLinear(sprite)) { @@ -2546,16 +2597,16 @@ void sub_80A8C84(struct Sprite *sprite) } } -void AnimHyperVoiceRing(struct Sprite *sprite) +static void AnimHyperVoiceRing(struct Sprite *sprite) { - u16 r9 = 0; - u16 r6 = 0; - s16 sp0 = 0; - s16 sp1 = 0; - u8 sp4; + u16 startX = 0; + u16 startY = 0; + s16 x = 0; + s16 y = 0; + u8 yCoordType; u8 battler1; u8 battler2; - u8 r10; + u8 xCoordType; if (gBattleAnimArgs[5] == 0) { @@ -2570,18 +2621,18 @@ void AnimHyperVoiceRing(struct Sprite *sprite) if (!gBattleAnimArgs[6]) { - r10 = 0; - sp4 = 1; + xCoordType = BATTLER_COORD_X; + yCoordType = BATTLER_COORD_Y; } else { - r10 = 2; - sp4 = 3; + xCoordType = BATTLER_COORD_X_2; + yCoordType = BATTLER_COORD_Y_PIC_OFFSET; } if (GetBattlerSide(battler1) != B_SIDE_PLAYER) { - r9 = GetBattlerSpriteCoord(battler1, r10) + gBattleAnimArgs[0]; + startX = GetBattlerSpriteCoord(battler1, xCoordType) + gBattleAnimArgs[0]; if (IsBattlerSpriteVisible(BATTLE_PARTNER(battler2))) sprite->subpriority = gSprites[gBattlerSpriteIds[BATTLE_PARTNER(battler2)]].subpriority - 1; else @@ -2589,7 +2640,7 @@ void AnimHyperVoiceRing(struct Sprite *sprite) } else { - r9 = GetBattlerSpriteCoord(battler1, r10) - gBattleAnimArgs[0]; + startX = GetBattlerSpriteCoord(battler1, xCoordType) - gBattleAnimArgs[0]; if (!IsContest() && IsBattlerSpriteVisible(BATTLE_PARTNER(battler1))) { if (gSprites[gBattlerSpriteIds[battler1]].x < gSprites[gBattlerSpriteIds[BATTLE_PARTNER(battler1)]].x) @@ -2604,34 +2655,34 @@ void AnimHyperVoiceRing(struct Sprite *sprite) } - r6 = GetBattlerSpriteCoord(battler1, sp4) + gBattleAnimArgs[1]; + startY = GetBattlerSpriteCoord(battler1, yCoordType) + gBattleAnimArgs[1]; if (!IsContest() && IsBattlerSpriteVisible(BATTLE_PARTNER(battler2))) { - SetAverageBattlerPositions(battler2, gBattleAnimArgs[6], &sp0, &sp1); + SetAverageBattlerPositions(battler2, gBattleAnimArgs[6], &x, &y); } else { - sp0 = GetBattlerSpriteCoord(battler2, r10); - sp1 = GetBattlerSpriteCoord(battler2, sp4); + x = GetBattlerSpriteCoord(battler2, xCoordType); + y = GetBattlerSpriteCoord(battler2, yCoordType); } if (GetBattlerSide(battler2) != B_SIDE_PLAYER) - sp0 += gBattleAnimArgs[3]; + x += gBattleAnimArgs[3]; else - sp0 -= gBattleAnimArgs[3]; + x -= gBattleAnimArgs[3]; - sp1 += gBattleAnimArgs[4]; - sprite->x = sprite->data[1] = r9; - sprite->y = sprite->data[3] = r6; - sprite->data[2] = sp0; - sprite->data[4] = sp1; + y += gBattleAnimArgs[4]; + sprite->x = sprite->data[1] = startX; + sprite->y = sprite->data[3] = startY; + sprite->data[2] = x; + sprite->data[4] = y; sprite->data[0] = gBattleAnimArgs[0]; InitAnimLinearTranslation(sprite); - sprite->callback = sub_80A8C84; + sprite->callback = AnimHyperVoiceRing_WaitEnd; sprite->callback(sprite); } -void AnimUproarRing(struct Sprite *sprite) +static void AnimUproarRing(struct Sprite *sprite) { u8 index = IndexOfSpritePaletteTag(ANIM_TAG_THIN_RING); @@ -2645,7 +2696,7 @@ void AnimUproarRing(struct Sprite *sprite) sprite->callback(sprite); } -void AnimSoftBoiledEgg(struct Sprite *sprite) +static void AnimSoftBoiledEgg(struct Sprite *sprite) { s16 r1; @@ -2749,17 +2800,18 @@ static void AnimSoftBoiledEgg_Step4_Callback(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void AnimTask_StretchAttacker(u8 taskId) +// Used by Extremespeed +void AnimTask_AttackerStretchAndDisappear(u8 taskId) { struct Task* task = &gTasks[taskId]; u8 spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER); task->data[0] = spriteId; PrepareAffineAnimInTaskData(task, spriteId, sStretchAttackerAffineAnimCmds); - task->func = StretchAttacker_Step; + task->func = AnimTask_AttackerStretchAndDisappear_Step; } -static void StretchAttacker_Step(u8 taskId) +static void AnimTask_AttackerStretchAndDisappear_Step(u8 taskId) { struct Task* task = &gTasks[taskId]; @@ -2792,10 +2844,10 @@ void AnimTask_ExtremeSpeedImpact(u8 taskId) } task->data[15] = GetAnimBattlerSpriteId(ANIM_TARGET); - task->func = ExtremeSpeedImpact_Step; + task->func = AnimTask_ExtremeSpeedImpact_Step; } -static void ExtremeSpeedImpact_Step(u8 taskId) +static void AnimTask_ExtremeSpeedImpact_Step(u8 taskId) { struct Task* task = &gTasks[taskId]; @@ -2853,10 +2905,10 @@ void AnimTask_ExtremeSpeedMonReappear(u8 taskId) task->data[13] = 14; task->data[14] = 2; task->data[15] = GetAnimBattlerSpriteId(ANIM_ATTACKER); - task->func = ExtremeSpeedMonReappear_Step; + task->func = AnimTask_ExtremeSpeedMonReappear_Step; } -static void ExtremeSpeedMonReappear_Step(u8 taskId) +static void AnimTask_ExtremeSpeedMonReappear_Step(u8 taskId) { struct Task* task = &gTasks[taskId]; @@ -2901,10 +2953,10 @@ void AnimTask_SpeedDust(u8 taskId) task->data[13] = 0; task->data[14] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X); task->data[15] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y); - task->func = SpeedDust_Step1; + task->func = AnimTask_SpeedDust_Step; } -static void SpeedDust_Step1(u8 taskId) +static void AnimTask_SpeedDust_Step(u8 taskId) { struct Task* task = &gTasks[taskId]; @@ -2971,7 +3023,7 @@ static void SpeedDust_Step1(u8 taskId) } } -void AnimSpeedDust(struct Sprite *sprite) +static void AnimSpeedDust(struct Sprite *sprite) { sprite->invisible = gTasks[sprite->data[0]].data[5]; if (sprite->animEnded) @@ -2984,15 +3036,15 @@ void AnimSpeedDust(struct Sprite *sprite) void AnimTask_LoadMusicNotesPals(u8 taskId) { int i; - u8 paletteNums[3]; + u8 paletteNums[NUM_MUSIC_NOTE_PAL_TAGS]; paletteNums[0] = IndexOfSpritePaletteTag(ANIM_TAG_MUSIC_NOTES_2); - for (i = 1; i < 3; i++) + for (i = 1; i < NUM_MUSIC_NOTE_PAL_TAGS; i++) paletteNums[i] = AllocSpritePalette(ANIM_SPRITES_START - i); gMonSpritesGfxPtr->multiUseBuffer = AllocZeroed(0x2000); LZDecompressWram(gBattleAnimSpritePal_MusicNotes2, gMonSpritesGfxPtr->multiUseBuffer); - for (i = 0; i < 3; i++) + for (i = 0; i < NUM_MUSIC_NOTE_PAL_TAGS; i++) LoadPalette(&gMonSpritesGfxPtr->multiUseBuffer[i * 32], (u16)((paletteNums[i] << 4) + 0x100), 32); FREE_AND_SET_NULL(gMonSpritesGfxPtr->multiUseBuffer); @@ -3003,7 +3055,7 @@ void AnimTask_FreeMusicNotesPals(u8 taskId) { int i; - for (i = 0; i < 3; i++) + for (i = 0; i < NUM_MUSIC_NOTE_PAL_TAGS; i++) FreeSpritePaletteByTag(gMusicNotePaletteTagsTable[i]); DestroyAnimVisualTask(taskId); @@ -3016,7 +3068,7 @@ static void SetMusicNotePalette(struct Sprite *sprite, u8 a, u8 b) sprite->oam.paletteNum = IndexOfSpritePaletteTag(gMusicNotePaletteTagsTable[b >> 1]); } -void AnimHealBellMusicNote(struct Sprite *sprite) +static void AnimHealBellMusicNote(struct Sprite *sprite) { InitSpritePosToAnimAttacker(sprite, FALSE); if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) @@ -3030,7 +3082,7 @@ void AnimHealBellMusicNote(struct Sprite *sprite) SetMusicNotePalette(sprite, gBattleAnimArgs[5], gBattleAnimArgs[6]); } -void AnimMagentaHeart(struct Sprite *sprite) +static void AnimMagentaHeart(struct Sprite *sprite) { if (++sprite->data[0] == 1) InitSpritePosToAnimAttacker(sprite, FALSE); @@ -3045,30 +3097,30 @@ void AnimMagentaHeart(struct Sprite *sprite) void AnimTask_FakeOut(u8 taskId) { - u16 win0h = IsContest() ? 0x98 : 0xF0; + u16 win0h = IsContest() ? 152 : DISPLAY_WIDTH; u16 win0v = 0; gBattle_WIN0H = win0h; - gBattle_WIN0V = 0xA0; + gBattle_WIN0V = DISPLAY_HEIGHT; SetGpuReg(REG_OFFSET_WIN0H, gBattle_WIN0H); SetGpuReg(REG_OFFSET_WIN0V, gBattle_WIN0V); SetGpuReg(REG_OFFSET_WININ, WININ_WIN1_CLR | WININ_WIN1_OBJ | WININ_WIN1_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_BG_ALL); SetGpuReg(REG_OFFSET_WINOUT, WININ_WIN1_CLR | WININ_WIN1_OBJ | WININ_WIN1_BG_ALL | WININ_WIN0_CLR | WININ_WIN0_OBJ | WININ_WIN0_BG_ALL); SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG3 | BLDCNT_EFFECT_DARKEN); - SetGpuReg(REG_OFFSET_BLDY, BLDCNT_TGT1_OBJ); + SetGpuReg(REG_OFFSET_BLDY, 16); gTasks[taskId].data[0] = win0v; gTasks[taskId].data[1] = win0h; - gTasks[taskId].func = FakeOutStep1; + gTasks[taskId].func = AnimTask_FakeOut_Step1; } -static void FakeOutStep1(u8 taskId) +static void AnimTask_FakeOut_Step1(u8 taskId) { gTasks[taskId].data[0] += 13; gTasks[taskId].data[1] -= 13; if (gTasks[taskId].data[0] >= gTasks[taskId].data[1]) { gBattle_WIN0H = 0; - gTasks[taskId].func = FakeOutStep2; + gTasks[taskId].func = AnimTask_FakeOut_Step2; } else { @@ -3076,13 +3128,13 @@ static void FakeOutStep1(u8 taskId) } } -static void FakeOutStep2(u8 taskId) +static void AnimTask_FakeOut_Step2(u8 taskId) { if (++gTasks[taskId].data[10] == 5) { gTasks[taskId].data[11] = 0x88; SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG3 | BLDCNT_EFFECT_LIGHTEN); - BlendPalettes(SelectBattleAnimSpriteAndBgPalettes(1, 0, 0, 0, 0, 0, 0), 16, RGB_WHITE); + BlendPalettes(GetBattlePalettesMask(TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE), 16, RGB_WHITE); } else if (gTasks[taskId].data[10] > 4) { @@ -3102,7 +3154,7 @@ void AnimTask_StretchTargetUp(u8 taskId) if (++gTasks[taskId].data[0] == 1) { - PrepareAffineAnimInTaskData(&gTasks[taskId], GetAnimBattlerSpriteId(ANIM_TARGET), sUnknown_83E4200); + PrepareAffineAnimInTaskData(&gTasks[taskId], GetAnimBattlerSpriteId(ANIM_TARGET), sAffineAnims_StretchBattlerUp); gSprites[spriteId].x2 = 4; } else @@ -3123,7 +3175,7 @@ void AnimTask_StretchAttackerUp(u8 taskId) if (++gTasks[taskId].data[0] == 1) { - PrepareAffineAnimInTaskData(&gTasks[taskId], GetAnimBattlerSpriteId(ANIM_ATTACKER), sUnknown_83E4200); + PrepareAffineAnimInTaskData(&gTasks[taskId], GetAnimBattlerSpriteId(ANIM_ATTACKER), sAffineAnims_StretchBattlerUp); gSprites[spriteId].x2 = 4; } else @@ -3138,7 +3190,7 @@ void AnimTask_StretchAttackerUp(u8 taskId) } } -void AnimRedHeartProjectile(struct Sprite *sprite) +static void AnimRedHeartProjectile(struct Sprite *sprite) { InitSpritePosToAnimAttacker(sprite, TRUE); sprite->data[0] = 95; @@ -3163,7 +3215,7 @@ static void AnimRedHeartProjectile_Step(struct Sprite *sprite) } } -void AnimParticuleBurst(struct Sprite *sprite) +void AnimParticleBurst(struct Sprite *sprite) { if (sprite->data[0] == 0) { @@ -3185,10 +3237,10 @@ void AnimParticuleBurst(struct Sprite *sprite) } } -void AnimRedHeartRising(struct Sprite *sprite) +static void AnimRedHeartRising(struct Sprite *sprite) { sprite->x = gBattleAnimArgs[0]; - sprite->y = 160; + sprite->y = DISPLAY_HEIGHT; sprite->data[0] = gBattleAnimArgs[2]; sprite->data[1] = gBattleAnimArgs[1]; sprite->callback = WaitAnimForDuration; @@ -3234,10 +3286,10 @@ void AnimTask_HeartsBackground(u8 taskId) if (IsContest()) RelocateBattleBgPal(animBg.paletteId, animBg.bgTilemap, 0, 0); - gTasks[taskId].func = HeartsBackground_Step; + gTasks[taskId].func = AnimTask_HeartsBackground_Step; } -static void HeartsBackground_Step(u8 taskId) +static void AnimTask_HeartsBackground_Step(u8 taskId) { struct BattleAnimBgData animBg; @@ -3322,10 +3374,10 @@ void AnimTask_ScaryFace(u8 taskId) if (IsContest()) RelocateBattleBgPal(animBg.paletteId, animBg.bgTilemap, 0, 0); - gTasks[taskId].func = ScaryFace_Step; + gTasks[taskId].func = AnimTask_ScaryFace_Step; } -static void ScaryFace_Step(u8 taskId) +static void AnimTask_ScaryFace_Step(u8 taskId) { struct BattleAnimBgData animBg; @@ -3386,7 +3438,7 @@ static void ScaryFace_Step(u8 taskId) // Used by MOVE_HIDDEN_POWER // arg 0: duration // arg 1: initial wave offset -void AnimOrbitFast(struct Sprite *sprite) +static void AnimOrbitFast(struct Sprite *sprite) { sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); @@ -3394,11 +3446,11 @@ void AnimOrbitFast(struct Sprite *sprite) sprite->data[0] = gBattleAnimArgs[0]; sprite->data[1] = gBattleAnimArgs[1]; sprite->data[7] = GetBattlerSpriteSubpriority(gBattleAnimAttacker); - sprite->callback = AnimOrbitFastStep; + sprite->callback = AnimOrbitFast_Step; sprite->callback(sprite); } -static void AnimOrbitFastStep(struct Sprite *sprite) +static void AnimOrbitFast_Step(struct Sprite *sprite) { if (sprite->data[1] >= 64 && sprite->data[1] <= 191) sprite->subpriority = sprite->data[7] + 1; @@ -3437,20 +3489,21 @@ static void AnimOrbitFastStep(struct Sprite *sprite) // Moves orbs away from the mon, based on where they are in their orbit. // Used in MOVE_HIDDEN_POWER. // arg 0: initial wave offset -void AnimOrbitScatter(struct Sprite *sprite) +static void AnimOrbitScatter(struct Sprite *sprite) { sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); sprite->data[0] = Sin(gBattleAnimArgs[0], 10); sprite->data[1] = Cos(gBattleAnimArgs[0], 7); - sprite->callback = AnimOrbitScatterStep; + sprite->callback = AnimOrbitScatter_Step; } -static void AnimOrbitScatterStep(struct Sprite *sprite) +static void AnimOrbitScatter_Step(struct Sprite *sprite) { sprite->x2 += sprite->data[0]; sprite->y2 += sprite->data[1]; - if (sprite->x + sprite->x2 + 16 > 272u || sprite->y + sprite->y2 > 160 || sprite->y + sprite->y2 < -16) + if (sprite->x + sprite->x2 + 16 > ((u32)DISPLAY_WIDTH + 32) + || sprite->y + sprite->y2 > DISPLAY_HEIGHT || sprite->y + sprite->y2 < -16) DestroyAnimSprite(sprite); } @@ -3462,7 +3515,7 @@ static void AnimSpitUpOrb_Step(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void AnimSpitUpOrb(struct Sprite *sprite) +static void AnimSpitUpOrb(struct Sprite *sprite) { sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); @@ -3472,19 +3525,19 @@ void AnimSpitUpOrb(struct Sprite *sprite) sprite->callback = AnimSpitUpOrb_Step; } -static void sub_80AA3D4(struct Sprite *sprite) +static void AnimEyeSparkle_Step(struct Sprite *sprite) { if (sprite->animEnded) DestroyAnimSprite(sprite); } -void AnimEyeSparkle(struct Sprite *sprite) +static void AnimEyeSparkle(struct Sprite *sprite) { InitSpritePosToAnimAttacker(sprite, TRUE); - sprite->callback = sub_80AA3D4; + sprite->callback = AnimEyeSparkle_Step; } -void AnimAngel(struct Sprite *sprite) +static void AnimAngel(struct Sprite *sprite) { s16 var0; @@ -3510,7 +3563,7 @@ void AnimAngel(struct Sprite *sprite) DestroyAnimSprite(sprite); } -static void sub_80AA49C(struct Sprite *sprite) +static void AnimPinkHeart_Step(struct Sprite *sprite) { sprite->data[5]++; sprite->x2 = Sin(sprite->data[3], 5); @@ -3523,7 +3576,7 @@ static void sub_80AA49C(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void AnimPinkHeart(struct Sprite *sprite) +static void AnimPinkHeart(struct Sprite *sprite) { if (sprite->data[0] == 0) { @@ -3539,7 +3592,7 @@ void AnimPinkHeart(struct Sprite *sprite) sprite->data[3] = (sprite->data[3] + 3) & 0xFF; if (sprite->data[3] > 70) { - sprite->callback = sub_80AA49C; + sprite->callback = AnimPinkHeart_Step; sprite->x += sprite->x2; sprite->y += sprite->y2; sprite->x2 = 0; @@ -3549,7 +3602,7 @@ void AnimPinkHeart(struct Sprite *sprite) } } -void AnimDevil(struct Sprite *sprite) +static void AnimDevil(struct Sprite *sprite) { if (sprite->data[3] == 0) { @@ -3578,7 +3631,7 @@ void AnimDevil(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void AnimFurySwipes(struct Sprite *sprite) +static void AnimFurySwipes(struct Sprite *sprite) { if (sprite->data[0] == 0) { @@ -3593,7 +3646,7 @@ void AnimFurySwipes(struct Sprite *sprite) } } -void AnimMovementWaves(struct Sprite *sprite) +static void AnimMovementWaves(struct Sprite *sprite) { if (!gBattleAnimArgs[2]) { @@ -3640,16 +3693,16 @@ void AnimTask_UproarDistortion(u8 taskId) u8 spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); PrepareAffineAnimInTaskData(&gTasks[taskId], spriteId, sUproarAffineAnimCmds); - gTasks[taskId].func = UproarDistortion_Step; + gTasks[taskId].func = AnimTask_UproarDistortion_Step; } -static void UproarDistortion_Step(u8 taskId) +static void AnimTask_UproarDistortion_Step(u8 taskId) { if (!RunAffineAnimFromTaskData(&gTasks[taskId])) DestroyAnimVisualTask(taskId); } -void AnimJaggedMusicNote(struct Sprite *sprite) +static void AnimJaggedMusicNote(struct Sprite *sprite) { int var1; u8 battler = !gBattleAnimArgs[0] ? gBattleAnimAttacker : gBattleAnimTarget; @@ -3687,7 +3740,7 @@ static void AnimJaggedMusicNote_Step(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void AnimPerishSongMusicNote2(struct Sprite *sprite) +static void AnimPerishSongMusicNote2(struct Sprite *sprite) { if (!sprite->data[0]) { @@ -3696,13 +3749,13 @@ void AnimPerishSongMusicNote2(struct Sprite *sprite) } if (++sprite->data[0] == sprite->data[1]) - SetGreyscaleOrOriginalPalette(sprite->oam.paletteNum + 16, 0); + SetGreyscaleOrOriginalPalette(sprite->oam.paletteNum + 16, FALSE); if (sprite->data[0] == sprite->data[1] + 80) DestroyAnimSprite(sprite); } -void AnimPerishSongMusicNote(struct Sprite *sprite) +static void AnimPerishSongMusicNote(struct Sprite *sprite) { int index; int var2; @@ -3778,11 +3831,11 @@ static void AnimPerishSongMusicNote_Step2(struct Sprite *sprite) } } -void AnimGuardRing(struct Sprite *sprite) +static void AnimGuardRing(struct Sprite *sprite) { if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE) && IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimAttacker))) { - SetAverageBattlerPositions(gBattleAnimAttacker, 0, &sprite->x, &sprite->y); + SetAverageBattlerPositions(gBattleAnimAttacker, FALSE, &sprite->x, &sprite->y); sprite->y += 40; StartSpriteAffineAnim(sprite, 1); @@ -3803,12 +3856,12 @@ void AnimGuardRing(struct Sprite *sprite) void AnimTask_IsFuryCutterHitRight(u8 taskId) { - gBattleAnimArgs[7] = gAnimDisableStructPtr->furyCutterCounter & 1; + gBattleAnimArgs[ARG_RET_ID] = gAnimDisableStructPtr->furyCutterCounter & 1; DestroyAnimVisualTask(taskId); } void AnimTask_GetFuryCutterHitCount(u8 taskId) { - gBattleAnimArgs[7] = gAnimDisableStructPtr->furyCutterCounter; + gBattleAnimArgs[ARG_RET_ID] = gAnimDisableStructPtr->furyCutterCounter; DestroyAnimVisualTask(taskId); } diff --git a/src/battle_anim_effects_3.c b/src/battle_anim_effects_3.c index b7c1fa2cc..d0493ef96 100644 --- a/src/battle_anim_effects_3.c +++ b/src/battle_anim_effects_3.c @@ -15,63 +15,100 @@ #include "constants/songs.h" #include "constants/weather.h" -// Function Declarations -static void AnimBlackSmokeStep(struct Sprite *); +static void AnimBlackSmoke(struct Sprite *); +static void AnimBlackSmoke_Step(struct Sprite *); +static void AnimWhiteHalo(struct Sprite *); static void AnimWhiteHalo_Step1(struct Sprite *); static void AnimWhiteHalo_Step2(struct Sprite *); +static void AnimMeanLookEye(struct Sprite *); static void AnimMeanLookEye_Step1(struct Sprite *); static void AnimMeanLookEye_Step2(struct Sprite *); static void AnimMeanLookEye_Step3(struct Sprite *); static void AnimMeanLookEye_Step4(struct Sprite *); static void SetPsychicBackground_Step(u8); static void FadeScreenToWhite_Step(u8); +static void AnimSpikes(struct Sprite *); static void AnimSpikes_Step1(struct Sprite *); static void AnimSpikes_Step2(struct Sprite *); +static void AnimSpotlight(struct Sprite *); static void AnimSpotlight_Step1(struct Sprite *); static void AnimSpotlight_Step2(struct Sprite *); +static void AnimClappingHand(struct Sprite *); static void AnimClappingHand_Step(struct Sprite *); +static void AnimClappingHand2(struct Sprite *); +static void AnimRapidSpin(struct Sprite *); static void AnimRapidSpin_Step(struct Sprite *); static void RapinSpinMonElevation_Step(u8); static void TormentAttacker_Step(u8); static void TormentAttacker_Callback(struct Sprite *); +static void AnimWishStar(struct Sprite *); static void AnimWishStar_Step(struct Sprite *); +static void AnimMiniTwinklingStar(struct Sprite *); static void AnimMiniTwinklingStar_Step(struct Sprite *); +static void AnimGreenStar(struct Sprite *); static void AnimGreenStar_Step1(struct Sprite *); static void AnimGreenStar_Step2(struct Sprite *); static void AnimGreenStar_Callback(struct Sprite *); -static void AnimTask_RockMonBackAndForthStep(u8); -static void AnimSweetScentPetalStep(struct Sprite *); -static void AnimTask_FlailMovementStep(u8); -static void AnimFlatterConfettiStep(struct Sprite *); -static void AnimFlatterSpotlightStep(struct Sprite *); -static void AnimReversalOrbStep(struct Sprite *); -static void AnimTask_RolePlaySilhouetteStep1(u8); -static void AnimTask_RolePlaySilhouetteStep2(u8); -static void AnimTask_AcidArmorStep(u8); -static void AnimTask_DeepInhaleStep(u8); -static void AnimYawnCloudStep(struct Sprite *); -static void AnimTask_SquishAndSweatDropletsStep(u8); +static void AnimTask_RockMonBackAndForth_Step(u8); +static void AnimSweetScentPetal(struct Sprite *); +static void AnimSweetScentPetal_Step(struct Sprite *); +static void AnimTask_FlailMovement_Step(u8); +static void AnimFlatterConfetti(struct Sprite *); +static void AnimFlatterConfetti_Step(struct Sprite *); +static void AnimFlatterSpotlight(struct Sprite *); +static void AnimFlatterSpotlight_Step(struct Sprite *); +static void AnimReversalOrb(struct Sprite *); +static void AnimReversalOrb_Step(struct Sprite *); +static void AnimTask_RolePlaySilhouette_Step1(u8); +static void AnimTask_RolePlaySilhouette_Step2(u8); +static void AnimTask_AcidArmor_Step(u8); +static void AnimTask_DeepInhale_Step(u8); +static void AnimYawnCloud(struct Sprite *); +static void AnimYawnCloud_Step(struct Sprite *); +static void AnimTask_SquishAndSweatDroplets_Step(u8); static void CreateSweatDroplets(u8, bool8); -static void AnimTask_FacadeColorBlendStep(u8); -static void AnimRoarNoiseLineStep(struct Sprite *); -static void AnimTask_GlareEyeDotsStep(u8); +static void AnimTask_FacadeColorBlend_Step(u8); +static void AnimRoarNoiseLine(struct Sprite *); +static void AnimRoarNoiseLine_Step(struct Sprite *); +static void AnimTask_GlareEyeDots_Step(u8); static void GetGlareEyeDotCoords(s16, s16, s16, s16, u8, u8, s16 *, s16 *); -static void AnimTask_BarrageBallStep(u8); +static void AnimTask_BarrageBall_Step(u8); +static void AnimSmellingSaltsHand(struct Sprite *); static void AnimSmellingSaltsHand_Step(struct Sprite *); -static void AnimTask_SmellingSaltsSquishStep(u8); -static void AnimSmellingSaltExclamationStep(struct Sprite *); -static void AnimHelpingHandClapStep(struct Sprite *); -static void AnimTask_HelpingHandAttackerMovementStep(u8); -static void AnimForesightMagnifyingGlassStep(struct Sprite *); +static void AnimTask_SmellingSaltsSquish_Step(u8); +static void AnimSmellingSaltExclamation(struct Sprite *); +static void AnimSmellingSaltExclamation_Step(struct Sprite *); +static void AnimHelpingHandClap(struct Sprite *); +static void AnimHelpingHandClap_Step(struct Sprite *); +static void AnimTask_HelpingHandAttackerMovement_Step(u8); +static void AnimForesightMagnifyingGlass(struct Sprite *); +static void AnimForesightMagnifyingGlass_Step(struct Sprite *); static void AnimTask_MonToSubstituteDoll(u8); -static void AnimBlockXStep(struct Sprite *); +static void AnimBlockX(struct Sprite *); +static void AnimBlockX_Step(struct Sprite *); static void AnimTask_OdorSleuthMovementWaitFinish(u8); static void MoveOdorSleuthClone(struct Sprite *); -static void AnimTask_TeeterDanceMovementStep(u8); -static void AnimRecycleStep(struct Sprite *); -static void AnimTask_SlackOffSquishStep(u8); +static void AnimTask_TeeterDanceMovement_Step(u8); +static void AnimRecycle(struct Sprite *); +static void AnimRecycle_Step(struct Sprite *); +static void AnimTask_SlackOffSquish_Step(u8); +static void AnimTealAlert(struct Sprite *); +static void AnimLeer(struct Sprite *); +static void AnimLetterZ(struct Sprite *); +static void AnimFang(struct Sprite *); +static void AnimTriAttackTriangle(struct Sprite *); +static void AnimBatonPassPokeball(struct Sprite *); +static void AnimSwallowBlueOrb(struct Sprite *); +static void AnimWeakFrustrationAngerMark(struct Sprite *); +static void AnimPainSplitProjectile(struct Sprite *); +static void AnimSmokeBallEscapeCloud(struct Sprite *); +static void AnimFacadeSweatDrop(struct Sprite *); +static void AnimGlareEyeDot(struct Sprite *); +static void AnimAssistPawprint(struct Sprite *); +static void AnimMeteorMashStar(struct Sprite *); +static void AnimUnusedItemBagSteal(struct Sprite *); +static void AnimKnockOffStrike(struct Sprite *); -// Data static const union AnimCmd sScratchAnimCmds[] = { ANIMCMD_FRAME(0, 4), @@ -383,7 +420,7 @@ const struct SpriteTemplate gRapidSpinSpriteTemplate = .callback = AnimRapidSpin, }; -static const union AffineAnimCmd sUnknown_83FF080[] = +static const union AffineAnimCmd sAffineAnims_Torment[] = { AFFINEANIMCMD_FRAME(-12, 8, 0, 4), AFFINEANIMCMD_FRAME(20, -20, 0, 4), @@ -418,8 +455,8 @@ static const union AffineAnimCmd *const sTriAttackTriangleAffineAnimTable[] = const struct SpriteTemplate gTriAttackTriangleSpriteTemplate = { - .tileTag = ANIM_TAG_TRI_FORCE_TRIANGLE, - .paletteTag = ANIM_TAG_TRI_FORCE_TRIANGLE, + .tileTag = ANIM_TAG_TRI_ATTACK_TRIANGLE, + .paletteTag = ANIM_TAG_TRI_ATTACK_TRIANGLE, .oam = &gOamData_AffineDouble_ObjNormal_64x64, .anims = sTriAttackTriangleAnimTable, .images = NULL, @@ -669,7 +706,7 @@ const struct SpriteTemplate gSweetScentPetalSpriteTemplate = .callback = AnimSweetScentPetal, }; -static const u16 sUnknown_83FF33C[] = INCBIN_U16("graphics/battle_anims/unk_83FF33C.gbapal"); //Unused +static const u16 sUnusedPalette[] = INCBIN_U16("graphics/battle_anims/unk_83FF33C.gbapal"); //Unused static const union AnimCmd sPainSplitAnimCmds[] = { @@ -1023,7 +1060,7 @@ const struct SpriteTemplate gMeteorMashStarSpriteTemplate = .callback = AnimMeteorMashStar, }; -const struct SpriteTemplate gUnknown_83FF6D4 = +static const struct SpriteTemplate sUnusedStarBurstSpriteTemplate = { .tileTag = ANIM_TAG_GOLD_STARS, .paletteTag = ANIM_TAG_GOLD_STARS, @@ -1031,7 +1068,7 @@ const struct SpriteTemplate gUnknown_83FF6D4 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = AnimParticuleBurst, + .callback = AnimParticleBurst, }; const struct SpriteTemplate gBlockXSpriteTemplate = @@ -1045,7 +1082,7 @@ const struct SpriteTemplate gBlockXSpriteTemplate = .callback = AnimBlockX, }; -const struct SpriteTemplate gUnknown_83FF704 = +static const struct SpriteTemplate sUnusedItemBagStealSpriteTemplate = { .tileTag = ANIM_TAG_ITEM_BAG, .paletteTag = ANIM_TAG_ITEM_BAG, @@ -1131,8 +1168,7 @@ static const union AffineAnimCmd sSlackOffSquishAffineAnimCmds[] = AFFINEANIMCMD_END, }; -// Functions -void AnimBlackSmoke(struct Sprite *sprite) +static void AnimBlackSmoke(struct Sprite *sprite) { sprite->x += gBattleAnimArgs[0]; sprite->y += gBattleAnimArgs[1]; @@ -1142,10 +1178,10 @@ void AnimBlackSmoke(struct Sprite *sprite) sprite->data[0] = -gBattleAnimArgs[2]; sprite->data[1] = gBattleAnimArgs[4]; - sprite->callback = AnimBlackSmokeStep; + sprite->callback = AnimBlackSmoke_Step; } -static void AnimBlackSmokeStep(struct Sprite *sprite) +static void AnimBlackSmoke_Step(struct Sprite *sprite) { if (sprite->data[1] > 0) { @@ -1162,11 +1198,14 @@ static void AnimBlackSmokeStep(struct Sprite *sprite) void AnimTask_SmokescreenImpact(u8 taskId) { - SmokescreenImpact(GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + 8, GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + 8, 0); + SmokescreenImpact( + GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + 8, + GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + 8, + FALSE); DestroyAnimVisualTask(taskId); } -void AnimWhiteHalo(struct Sprite *sprite) +static void AnimWhiteHalo(struct Sprite *sprite) { sprite->data[0] = 90; sprite->callback = WaitAnimForDuration; @@ -1193,7 +1232,7 @@ static void AnimWhiteHalo_Step2(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void AnimTealAlert(struct Sprite *sprite) +static void AnimTealAlert(struct Sprite *sprite) { u16 rotation; u8 x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); @@ -1213,7 +1252,7 @@ void AnimTealAlert(struct Sprite *sprite) StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } -void AnimMeanLookEye(struct Sprite *sprite) +static void AnimMeanLookEye(struct Sprite *sprite) { SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 16)); @@ -1371,7 +1410,7 @@ static void FadeScreenToWhite_Step(u8 taskId) DestroyTask(taskId); } -void AnimSpikes(struct Sprite *sprite) +static void AnimSpikes(struct Sprite *sprite) { u16 x; u16 y; @@ -1409,7 +1448,7 @@ static void AnimSpikes_Step2(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void AnimLeer(struct Sprite *sprite) +static void AnimLeer(struct Sprite *sprite) { SetSpriteCoordsToAnimAttackerCoords(sprite); SetAnimSpriteInitialXOffset(sprite, gBattleAnimArgs[0]); @@ -1418,7 +1457,7 @@ void AnimLeer(struct Sprite *sprite) StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } -void AnimLetterZ(struct Sprite *sprite) +static void AnimLetterZ(struct Sprite *sprite) { int var0; @@ -1456,7 +1495,7 @@ void AnimLetterZ(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void AnimFang(struct Sprite *sprite) +static void AnimFang(struct Sprite *sprite) { if (sprite->animEnded) DestroyAnimSprite(sprite); @@ -1465,9 +1504,9 @@ void AnimFang(struct Sprite *sprite) void AnimTask_IsTargetPlayerSide(u8 taskId) { if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_OPPONENT) - gBattleAnimArgs[7] = 0; + gBattleAnimArgs[ARG_RET_ID] = FALSE; else - gBattleAnimArgs[7] = 1; + gBattleAnimArgs[ARG_RET_ID] = TRUE; DestroyAnimVisualTask(taskId); } @@ -1475,14 +1514,14 @@ void AnimTask_IsTargetPlayerSide(u8 taskId) void AnimTask_IsHealingMove(u8 taskId) { if (gAnimMoveDmg > 0) - gBattleAnimArgs[7] = 0; + gBattleAnimArgs[ARG_RET_ID] = FALSE; else - gBattleAnimArgs[7] = 1; + gBattleAnimArgs[ARG_RET_ID] = TRUE; DestroyAnimVisualTask(taskId); } -void AnimSpotlight(struct Sprite *sprite) +static void AnimSpotlight(struct Sprite *sprite) { SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG_ALL | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR | WINOUT_WINOBJ_BG_ALL | WINOUT_WINOBJ_OBJ); SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_OBJWIN_ON); @@ -1545,7 +1584,7 @@ static void AnimSpotlight_Step2(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void AnimClappingHand(struct Sprite *sprite) +static void AnimClappingHand(struct Sprite *sprite) { if (gBattleAnimArgs[3] == 0) { @@ -1604,7 +1643,7 @@ static void AnimClappingHand_Step(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void AnimClappingHand2(struct Sprite *sprite) +static void AnimClappingHand2(struct Sprite *sprite) { sprite->oam.objMode = ST_OAM_OBJ_WINDOW; sprite->data[3] = 255; @@ -1616,17 +1655,17 @@ void AnimTask_CreateSpotlight(u8 taskId) if (IsContest()) { SetGpuReg(REG_OFFSET_WININ, WININ_WIN1_OBJ | WININ_WIN1_BG_ALL | WININ_WIN0_CLR | WININ_WIN0_OBJ | WININ_WIN0_BG_ALL); - gBattle_WIN1H = WININ_WIN1_OBJ | WININ_WIN1_BG3 | WIN_RANGE(0, 0xF0) | WIN_RANGE(0x80, 0x0); - gBattle_WIN1V = WININ_WIN0_CLR | WIN_RANGE(0, 0x80); + gBattle_WIN1H = WIN_RANGE(152, DISPLAY_WIDTH); + gBattle_WIN1V = WIN_RANGE(0, DISPLAY_HEIGHT); SetGpuReg(REG_OFFSET_WIN1H, gBattle_WIN0H); SetGpuReg(REG_OFFSET_WIN1V, gBattle_WIN0V); } else { SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG_ALL | WININ_WIN1_OBJ); - gBattle_WIN1H = WIN_RANGE(0, 0xF0); - gBattle_WIN1V = WININ_WIN0_CLR | WIN_RANGE(0, 0x80) | WININ_WIN1_BG3 | WININ_WIN1_OBJ | WININ_WIN1_CLR | WIN_RANGE(0x40, 0); - SetGpuReg(REG_OFFSET_WIN1H, WIN_RANGE(0, 0xF0)); + gBattle_WIN1H = WIN_RANGE(0, DISPLAY_WIDTH); + gBattle_WIN1V = WIN_RANGE(120, DISPLAY_HEIGHT); + SetGpuReg(REG_OFFSET_WIN1H, gBattle_WIN1H); SetGpuReg(REG_OFFSET_WIN1V, gBattle_WIN1V); SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN1_ON); } @@ -1645,7 +1684,7 @@ void AnimTask_RemoveSpotlight(u8 taskId) DestroyAnimVisualTask(taskId); } -void AnimRapidSpin(struct Sprite *sprite) +static void AnimRapidSpin(struct Sprite *sprite) { if (gBattleAnimArgs[0] == 0) { @@ -1721,13 +1760,13 @@ void AnimTask_RapinSpinMonElevation(u8 taskId) { var3 = gBattle_BG1_X; task->data[8] = var3; - var4 = var3 + 240; + var4 = var3 + DISPLAY_WIDTH; } else { var3 = gBattle_BG2_X; task->data[8] = var3; - var4 = var3 + 240; + var4 = var3 + DISPLAY_WIDTH; } task->data[9] = var4; @@ -1878,7 +1917,7 @@ static void TormentAttacker_Step(u8 taskId) task->data[5] -= 6; } - PrepareAffineAnimInTaskData(task, task->data[15], sUnknown_83FF080); + PrepareAffineAnimInTaskData(task, task->data[15], sAffineAnims_Torment); task->data[1]++; task->data[0] = 1; break; @@ -1946,7 +1985,7 @@ static void TormentAttacker_Callback(struct Sprite *sprite) } } -void AnimTriAttackTriangle(struct Sprite *sprite) +static void AnimTriAttackTriangle(struct Sprite *sprite) { if (sprite->data[0] == 0) InitSpritePosToAnimAttacker(sprite, FALSE); @@ -1992,7 +2031,7 @@ void AnimTask_DefenseCurlDeformMon(u8 taskId) } } -void AnimBatonPassPokeball(struct Sprite *sprite) +static void AnimBatonPassPokeball(struct Sprite *sprite) { u8 spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER); @@ -2035,12 +2074,12 @@ void AnimBatonPassPokeball(struct Sprite *sprite) } } -void AnimWishStar(struct Sprite *sprite) +static void AnimWishStar(struct Sprite *sprite) { if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) sprite->x = -16; else - sprite->x = 256; + sprite->x = DISPLAY_WIDTH + 16; sprite->y = 0; sprite->callback = AnimWishStar_Step; @@ -2069,11 +2108,11 @@ static void AnimWishStar_Step(struct Sprite *sprite) } newX = sprite->x + sprite->x2 + 32; - if (newX > 304) + if (newX > DISPLAY_WIDTH + 64) DestroyAnimSprite(sprite); } -void AnimMiniTwinklingStar(struct Sprite *sprite) +static void AnimMiniTwinklingStar(struct Sprite *sprite) { u8 rand; s8 y; @@ -2148,7 +2187,7 @@ void AnimTask_SpitUpDeformMon(u8 taskId) } } -void AnimSwallowBlueOrb(struct Sprite *sprite) +static void AnimSwallowBlueOrb(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -2224,7 +2263,7 @@ void AnimTask_TransformMon(u8 taskId) src = gMonSpritesGfxPtr->sprites[position] + (gBattleMonForms[gBattleAnimAttacker] << 11); dest = animBg.bgTiles; - CpuCopy32(src, dest, 0x800); + CpuCopy32(src, dest, MON_PIC_SIZE); LoadBgTiles(1, animBg.bgTiles, 0x800, animBg.tilesOffset); gTasks[taskId].data[0]++; break; @@ -2263,7 +2302,7 @@ void AnimTask_TransformMon(u8 taskId) void AnimTask_IsMonInvisible(u8 taskId) { - gBattleAnimArgs[7] = gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].invisible; + gBattleAnimArgs[ARG_RET_ID] = gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].invisible; DestroyAnimVisualTask(taskId); } @@ -2363,7 +2402,7 @@ void AnimTask_MorningSunLightBeam(u8 taskId) } } -void AnimGreenStar(struct Sprite *sprite) +static void AnimGreenStar(struct Sprite *sprite) { s16 xOffset; u8 spriteId1; @@ -2574,7 +2613,7 @@ void AnimTask_StrongFrustrationGrowAndShrink(u8 taskId) // Animates an anger mark near the mon's head. // arg 0: initial x pixel offset // arg 1: initial y pixel offset -void AnimWeakFrustrationAngerMark(struct Sprite *sprite) +static void AnimWeakFrustrationAngerMark(struct Sprite *sprite) { if (sprite->data[0] == 0) { @@ -2638,10 +2677,10 @@ void AnimTask_RockMonBackAndForth(u8 taskId) } PrepareBattlerSpriteForRotScale(task->data[15], ST_OAM_OBJ_NORMAL); - task->func = AnimTask_RockMonBackAndForthStep; + task->func = AnimTask_RockMonBackAndForth_Step; } -static void AnimTask_RockMonBackAndForthStep(u8 taskId) +static void AnimTask_RockMonBackAndForth_Step(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -2699,7 +2738,7 @@ static void AnimTask_RockMonBackAndForthStep(u8 taskId) // arg 0: initial y pixel offset // arg 1: sprite anim num // arg 2: unused -void AnimSweetScentPetal(struct Sprite *sprite) +static void AnimSweetScentPetal(struct Sprite *sprite) { if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) { @@ -2708,16 +2747,16 @@ void AnimSweetScentPetal(struct Sprite *sprite) } else { - sprite->x = 240; + sprite->x = DISPLAY_WIDTH; sprite->y = gBattleAnimArgs[0] - 30; } sprite->data[2] = gBattleAnimArgs[2]; StartSpriteAnim(sprite, gBattleAnimArgs[1]); - sprite->callback = AnimSweetScentPetalStep; + sprite->callback = AnimSweetScentPetal_Step; } -static void AnimSweetScentPetalStep(struct Sprite *sprite) +static void AnimSweetScentPetal_Step(struct Sprite *sprite) { sprite->data[0] += 3; if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) @@ -2725,7 +2764,7 @@ static void AnimSweetScentPetalStep(struct Sprite *sprite) sprite->x += 5; sprite->y -= 1; - if (sprite->x > 240) + if (sprite->x > DISPLAY_WIDTH) DestroyAnimSprite(sprite); sprite->y2 = Sin(sprite->data[0] & 0xFF, 16); @@ -2758,10 +2797,10 @@ void AnimTask_FlailMovement(u8 taskId) task->data[15] = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); PrepareBattlerSpriteForRotScale(task->data[15], ST_OAM_OBJ_NORMAL); - task->func = AnimTask_FlailMovementStep; + task->func = AnimTask_FlailMovement_Step; } -static void AnimTask_FlailMovementStep(u8 taskId) +static void AnimTask_FlailMovement_Step(u8 taskId) { int temp; struct Task *task = &gTasks[taskId]; @@ -2835,7 +2874,7 @@ static void AnimTask_FlailMovementStep(u8 taskId) // arg 0: initial x pixel offset // arg 1: initial y pixel offset // arg 2: which battler -void AnimPainSplitProjectile(struct Sprite *sprite) +static void AnimPainSplitProjectile(struct Sprite *sprite) { if (!sprite->data[0]) { @@ -2931,7 +2970,7 @@ void AnimTask_PainSplitMovement(u8 taskId) // Move a piece of confetti in a slightly-random speed across the screen. // arg 0: which battler the confetti starts from -void AnimFlatterConfetti(struct Sprite *sprite) +static void AnimFlatterConfetti(struct Sprite *sprite) { u8 tileOffset; int rand1; @@ -2959,10 +2998,10 @@ void AnimFlatterConfetti(struct Sprite *sprite) sprite->x = 248; sprite->y = 104; - sprite->callback = AnimFlatterConfettiStep; + sprite->callback = AnimFlatterConfetti_Step; } -static void AnimFlatterConfettiStep(struct Sprite *sprite) +static void AnimFlatterConfetti_Step(struct Sprite *sprite) { if (sprite->data[2] == 0) { @@ -2988,7 +3027,7 @@ static void AnimFlatterConfettiStep(struct Sprite *sprite) // arg 0: initial x pixel offset // arg 1: initial y pixel offset // arg 2: duration of fully-opened spotlight -void AnimFlatterSpotlight(struct Sprite *sprite) +static void AnimFlatterSpotlight(struct Sprite *sprite) { SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG_ALL | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR | WINOUT_WINOBJ_BG_ALL | WINOUT_WINOBJ_OBJ); SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_OBJWIN_ON); @@ -3000,10 +3039,10 @@ void AnimFlatterSpotlight(struct Sprite *sprite) InitSpritePosToAnimTarget(sprite, FALSE); sprite->oam.objMode = ST_OAM_OBJ_WINDOW; sprite->invisible = TRUE; - sprite->callback = AnimFlatterSpotlightStep; + sprite->callback = AnimFlatterSpotlight_Step; } -static void AnimFlatterSpotlightStep(struct Sprite *sprite) +static void AnimFlatterSpotlight_Step(struct Sprite *sprite) { switch (sprite->data[1]) { @@ -3037,17 +3076,17 @@ static void AnimFlatterSpotlightStep(struct Sprite *sprite) // Spins an orb around the attacking mon, while its path radius grows and shrinks. // arg 0: duration // arg 1: initial wave offset -void AnimReversalOrb(struct Sprite *sprite) +static void AnimReversalOrb(struct Sprite *sprite) { sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); sprite->data[0] = gBattleAnimArgs[0]; sprite->data[1] = gBattleAnimArgs[1]; - sprite->callback = AnimReversalOrbStep; + sprite->callback = AnimReversalOrb_Step; sprite->callback(sprite); } -static void AnimReversalOrbStep(struct Sprite *sprite) +static void AnimReversalOrb_Step(struct Sprite *sprite) { sprite->x2 = Sin(sprite->data[1], sprite->data[2] >> 8); sprite->y2 = Cos(sprite->data[1], sprite->data[3] >> 8); @@ -3143,10 +3182,10 @@ void AnimTask_RolePlaySilhouette(u8 taskId) SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[1], 16 - gTasks[taskId].data[1])); gTasks[taskId].data[0] = spriteId; - gTasks[taskId].func = AnimTask_RolePlaySilhouetteStep1; + gTasks[taskId].func = AnimTask_RolePlaySilhouette_Step1; } -static void AnimTask_RolePlaySilhouetteStep1(u8 taskId) +static void AnimTask_RolePlaySilhouette_Step1(u8 taskId) { if (gTasks[taskId].data[10]++ > 1) { @@ -3157,12 +3196,12 @@ static void AnimTask_RolePlaySilhouetteStep1(u8 taskId) { gTasks[taskId].data[10] = 256; gTasks[taskId].data[11] = 256; - gTasks[taskId].func = AnimTask_RolePlaySilhouetteStep2; + gTasks[taskId].func = AnimTask_RolePlaySilhouette_Step2; } } } -static void AnimTask_RolePlaySilhouetteStep2(u8 taskId) +static void AnimTask_RolePlaySilhouette_Step2(u8 taskId) { u8 spriteId = gTasks[taskId].data[0]; @@ -3239,10 +3278,10 @@ void AnimTask_AcidArmor(u8 taskId) scanlineParams.initState = 1; scanlineParams.unused9 = 0; ScanlineEffect_SetParams(scanlineParams); - task->func = AnimTask_AcidArmorStep; + task->func = AnimTask_AcidArmor_Step; } -static void AnimTask_AcidArmorStep(u8 taskId) +static void AnimTask_AcidArmor_Step(u8 taskId) { struct Task *task; s16 var1; @@ -3365,10 +3404,10 @@ void AnimTask_DeepInhale(u8 taskId) task->data[0] = 0; task->data[15] = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); PrepareAffineAnimInTaskData(&gTasks[taskId], task->data[15], sDeepInhaleAffineAnimCmds); - task->func = AnimTask_DeepInhaleStep; + task->func = AnimTask_DeepInhale_Step; } -static void AnimTask_DeepInhaleStep(u8 taskId) +static void AnimTask_DeepInhale_Step(u8 taskId) { u16 var0; struct Task *task = &gTasks[taskId]; @@ -3417,7 +3456,7 @@ static void UpdateYawnCloudPosition(struct Sprite *sprite) // Drifts a cloud in a wavy path towards the target mon. // arg 0: which affine anim -void AnimYawnCloud(struct Sprite *sprite) +static void AnimYawnCloud(struct Sprite *sprite) { s16 destX = sprite->x; s16 destY = sprite->y; @@ -3426,10 +3465,10 @@ void AnimYawnCloud(struct Sprite *sprite) StartSpriteAffineAnim(sprite, gBattleAnimArgs[0]); InitYawnCloudPosition(sprite, sprite->x, sprite->y, destX, destY, 64); sprite->data[0] = 0; - sprite->callback = AnimYawnCloudStep; + sprite->callback = AnimYawnCloud_Step; } -static void AnimYawnCloudStep(struct Sprite *sprite) +static void AnimYawnCloud_Step(struct Sprite *sprite) { int index; @@ -3455,7 +3494,7 @@ static void AnimYawnCloudStep(struct Sprite *sprite) // arg 1: initial x pixel offset // arg 2: initial y pixel offset // arg 3: ? -void AnimSmokeBallEscapeCloud(struct Sprite *sprite) +static void AnimSmokeBallEscapeCloud(struct Sprite *sprite) { sprite->data[0] = gBattleAnimArgs[3]; StartSpriteAffineAnim(sprite, gBattleAnimArgs[0]); @@ -3467,7 +3506,7 @@ void AnimSmokeBallEscapeCloud(struct Sprite *sprite) sprite->callback = DestroyAnimSpriteAfterTimer; } -static void sub_80E1990(u8 taskId) +static void AnimTask_SlideMonForFocusBand_Step2(u8 taskId) { u16 var0 = 0; u16 var1 = 0; @@ -3517,7 +3556,7 @@ static void sub_80E1990(u8 taskId) } } -static void sub_80E1AD8(u8 taskId) +static void AnimTask_SlideMonForFocusBand_Step1(u8 taskId) { u16 var0 = 0; u16 var1 = 0; @@ -3566,7 +3605,7 @@ static void sub_80E1AD8(u8 taskId) { gTasks[taskId].data[0] = 30; gTasks[taskId].data[13] = 0; - gTasks[taskId].func = sub_80E1990; + gTasks[taskId].func = AnimTask_SlideMonForFocusBand_Step2; } } @@ -3601,9 +3640,29 @@ void AnimTask_SlideMonForFocusBand(u8 taskId) gTasks[taskId].data[7] = 0; gTasks[taskId].data[4] = gBattleAnimArgs[4]; gTasks[taskId].data[5] = gBattleAnimArgs[5]; - gTasks[taskId].func = sub_80E1AD8; + gTasks[taskId].func = AnimTask_SlideMonForFocusBand_Step1; } +#define IDX_ACTIVE_SPRITES 2 // Used by the sprite callback to modify the number of active sprites + +// Task data for AnimTask_SquishAndSweatDroplets +#define tState data[0] +#define tTimer data[1] +#define tActiveSprites data[IDX_ACTIVE_SPRITES] +#define tNumSquishes data[3] +#define tBaseX data[4] +#define tBaseY data[5] +#define tSubpriority data[6] +// data[7]-data[15] used by PrepareAffineAnimInTaskData +#define tBattlerSpriteId data[15] + +// Sprite data for AnimFacadeSweatDrop +#define sTimer data[0] +#define sVelocX data[1] +#define sVelocY data[2] +#define sTaskId data[3] +#define sActiveSpritesIdx data[4] + // Squishes the mon vertically and emits sweat droplets a few times. // arg 0: battler // arg 1: num squishes @@ -3615,58 +3674,61 @@ void AnimTask_SquishAndSweatDroplets(u8 taskId) if (!gBattleAnimArgs[1]) DestroyAnimVisualTask(taskId); - task->data[0] = 0; - task->data[1] = 0; - task->data[2] = 0; - task->data[3] = gBattleAnimArgs[1]; + task->tState = 0; + task->tTimer = 0; + task->tActiveSprites = 0; + task->tNumSquishes = gBattleAnimArgs[1]; if (gBattleAnimArgs[0] == ANIM_ATTACKER) battler = gBattleAnimAttacker; else battler = gBattleAnimTarget; - task->data[4] = GetBattlerSpriteCoord(battler, BATTLER_COORD_X); - task->data[5] = GetBattlerSpriteCoord(battler, BATTLER_COORD_Y); - task->data[6] = GetBattlerSpriteSubpriority(battler); - task->data[15] = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); - PrepareAffineAnimInTaskData(task, task->data[15], sFacadeSquishAffineAnimCmds); - task->func = AnimTask_SquishAndSweatDropletsStep; + task->tBaseX = GetBattlerSpriteCoord(battler, BATTLER_COORD_X); + task->tBaseY = GetBattlerSpriteCoord(battler, BATTLER_COORD_Y); + task->tSubpriority = GetBattlerSpriteSubpriority(battler); + task->tBattlerSpriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); + PrepareAffineAnimInTaskData(task, task->tBattlerSpriteId, sFacadeSquishAffineAnimCmds); + task->func = AnimTask_SquishAndSweatDroplets_Step; } -static void AnimTask_SquishAndSweatDropletsStep(u8 taskId) +static void AnimTask_SquishAndSweatDroplets_Step(u8 taskId) { struct Task *task = &gTasks[taskId]; - switch (task->data[0]) + switch (task->tState) { case 0: - task->data[1]++; - if (task->data[1] == 6) + task->tTimer++; + if (task->tTimer == 6) CreateSweatDroplets(taskId, TRUE); - if (task->data[1] == 18) + if (task->tTimer == 18) CreateSweatDroplets(taskId, FALSE); if (!RunAffineAnimFromTaskData(task)) { - if (--task->data[3] == 0) + if (--task->tNumSquishes == 0) { - task->data[0]++; + // Animation is finished + task->tState++; } else { - task->data[1] = 0; - PrepareAffineAnimInTaskData(task, task->data[15], sFacadeSquishAffineAnimCmds); + // Animation continues, more droplet sprites to create + task->tTimer = 0; + PrepareAffineAnimInTaskData(task, task->tBattlerSpriteId, sFacadeSquishAffineAnimCmds); } } break; case 1: - if (task->data[2] == 0) + // Wait for sprites to be destroyed before ending task + if (task->tActiveSprites == 0) DestroyAnimVisualTask(taskId); break; } } -static void CreateSweatDroplets(u8 taskId, bool8 arg1) +static void CreateSweatDroplets(u8 taskId, bool8 lowerDroplets) { u8 i; s8 xOffset, yOffset; @@ -3675,7 +3737,7 @@ static void CreateSweatDroplets(u8 taskId, bool8 arg1) s16 yCoords[2]; task = &gTasks[taskId]; - if (!arg1) + if (!lowerDroplets) { xOffset = 18; yOffset = -20; @@ -3686,39 +3748,54 @@ static void CreateSweatDroplets(u8 taskId, bool8 arg1) yOffset = 20; } - xCoords[0] = task->data[4] - xOffset; - xCoords[1] = task->data[4] - xOffset - 4; - xCoords[2] = task->data[4] + xOffset; - xCoords[3] = task->data[4] + xOffset + 4; - yCoords[0] = task->data[5] + yOffset; - yCoords[1] = task->data[5] + yOffset + 6; + xCoords[0] = task->tBaseX - xOffset; + xCoords[1] = task->tBaseX - xOffset - 4; + xCoords[2] = task->tBaseX + xOffset; + xCoords[3] = task->tBaseX + xOffset + 4; + yCoords[0] = task->tBaseY + yOffset; + yCoords[1] = task->tBaseY + yOffset + 6; for (i = 0; i < 4; i++) { - u8 spriteId = CreateSprite(&gFacadeSweatDropSpriteTemplate, xCoords[i], yCoords[i & 1], task->data[6] - 5); + u8 spriteId = CreateSprite(&gFacadeSweatDropSpriteTemplate, xCoords[i], yCoords[i & 1], task->tSubpriority - 5); if (spriteId != MAX_SPRITES) { - gSprites[spriteId].data[0] = 0; - gSprites[spriteId].data[1] = i < 2 ? -2 : 2; - gSprites[spriteId].data[2] = -1; - gSprites[spriteId].data[3] = taskId; - gSprites[spriteId].data[4] = 2; - task->data[2]++; + gSprites[spriteId].sTimer = 0; + gSprites[spriteId].sVelocX = i < 2 ? -2 : 2; // First two travel left, remaining travel right + gSprites[spriteId].sVelocY = -1; + gSprites[spriteId].sTaskId = taskId; + gSprites[spriteId].sActiveSpritesIdx = IDX_ACTIVE_SPRITES; + task->tActiveSprites++; } } } -void AnimFacadeSweatDrop(struct Sprite *sprite) +static void AnimFacadeSweatDrop(struct Sprite *sprite) { - sprite->x += sprite->data[1]; - sprite->y += sprite->data[2]; - if (++sprite->data[0] > 6) + sprite->x += sprite->sVelocX; + sprite->y += sprite->sVelocY; + if (++sprite->sTimer > 6) { - gTasks[sprite->data[3]].data[sprite->data[4]]--; + gTasks[sprite->sTaskId].data[sprite->sActiveSpritesIdx]--; DestroySprite(sprite); } } +#undef IDX_ACTIVE_SPRITES +#undef tState +#undef tTimer +#undef tActiveSprites +#undef tNumSquishes +#undef tBaseX +#undef tBaseY +#undef tSubpriority +#undef tBattlerSpriteId +#undef sTimer +#undef sVelocX +#undef sVelocY +#undef sTaskId +#undef sActiveSpritesIdx + // Blends the mon sprite's color with a rotating set of colors. // arg 0: battler // arg 1: duration @@ -3730,10 +3807,10 @@ void AnimTask_FacadeColorBlend(u8 taskId) gTasks[taskId].data[1] = gBattleAnimArgs[1]; spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); gTasks[taskId].data[2] = 0x100 + gSprites[spriteId].oam.paletteNum * 16; - gTasks[taskId].func = AnimTask_FacadeColorBlendStep; + gTasks[taskId].func = AnimTask_FacadeColorBlend_Step; } -static void AnimTask_FacadeColorBlendStep(u8 taskId) +static void AnimTask_FacadeColorBlend_Step(u8 taskId) { if (gTasks[taskId].data[1]) { @@ -3759,7 +3836,7 @@ void AnimTask_StatusClearedEffect(u8 taskId) // arg 0: initial x pixel offset // arg 1: initial y pixel offset // arg 2: which direction (0 = upward, 1 = downward, 2 = horizontal) -void AnimRoarNoiseLine(struct Sprite *sprite) +static void AnimRoarNoiseLine(struct Sprite *sprite) { if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_OPPONENT) gBattleAnimArgs[0] = -gBattleAnimArgs[0]; @@ -3789,10 +3866,10 @@ void AnimRoarNoiseLine(struct Sprite *sprite) sprite->hFlip = TRUE; } - sprite->callback = AnimRoarNoiseLineStep; + sprite->callback = AnimRoarNoiseLine_Step; } -static void AnimRoarNoiseLineStep(struct Sprite *sprite) +static void AnimRoarNoiseLine_Step(struct Sprite *sprite) { sprite->data[6] += sprite->data[0]; sprite->data[7] += sprite->data[1]; @@ -3802,137 +3879,176 @@ static void AnimRoarNoiseLineStep(struct Sprite *sprite) DestroyAnimSprite(sprite); } +#define IDX_ACTIVE_SPRITES 10 // Used by the sprite callback to modify the number of active sprites + +// Task data for AnimTask_GlareEyeDots +#define tState data[0] +#define tTimer data[1] +#define tPairNum data[2] +#define tPairMax data[5] +#define tDotOffset data[6] +#define tIsContest data[7] +#define tActiveSprites data[IDX_ACTIVE_SPRITES] +#define tStartX data[11] +#define tStartY data[12] +#define tEndX data[13] +#define tEndY data[14] + +// Sprite data for AnimGlareEyeDot +#define sTimer data[0] +#define sTaskId data[1] +#define sActiveSpritesIdx data[2] + // Makes a series of dots in a trail from the attacker to the target. // arg 0: unused void AnimTask_GlareEyeDots(u8 taskId) { struct Task *task = &gTasks[taskId]; - task->data[5] = 12; - task->data[6] = 3; - task->data[7] = 0; + task->tPairMax = 12; + task->tDotOffset = 3; + task->tIsContest = FALSE; if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) - task->data[11] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2) + GetBattlerSpriteCoordAttr(gBattleAnimAttacker, BATTLER_COORD_ATTR_HEIGHT) / 4; + task->tStartX = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2) + GetBattlerSpriteCoordAttr(gBattleAnimAttacker, BATTLER_COORD_ATTR_HEIGHT) / 4; else - task->data[11] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2) - GetBattlerSpriteCoordAttr(gBattleAnimAttacker, BATTLER_COORD_ATTR_HEIGHT) / 4; + task->tStartX = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2) - GetBattlerSpriteCoordAttr(gBattleAnimAttacker, BATTLER_COORD_ATTR_HEIGHT) / 4; - task->data[12] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET) - GetBattlerSpriteCoordAttr(gBattleAnimAttacker, BATTLER_COORD_ATTR_HEIGHT) / 4; - task->data[13] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); - task->data[14] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); - task->func = AnimTask_GlareEyeDotsStep; + task->tStartY = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET) - GetBattlerSpriteCoordAttr(gBattleAnimAttacker, BATTLER_COORD_ATTR_HEIGHT) / 4; + task->tEndX = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); + task->tEndY = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); + task->func = AnimTask_GlareEyeDots_Step; } -static void AnimTask_GlareEyeDotsStep(u8 taskId) +static void AnimTask_GlareEyeDots_Step(u8 taskId) { u8 i; s16 x, y; struct Task *task = &gTasks[taskId]; - switch (task->data[0]) + switch (task->tState) { case 0: - if (++task->data[1] > 3) + // Wait to create next pair of dots + if (++task->tTimer > 3) { - task->data[1] = 0; + task->tTimer = 0; GetGlareEyeDotCoords( - task->data[11], - task->data[12], - task->data[13], - task->data[14], - task->data[5], - task->data[2], + task->tStartX, + task->tStartY, + task->tEndX, + task->tEndY, + task->tPairMax, + task->tPairNum, &x, &y); + // Create dot pair for (i = 0; i < 2; i++) { u8 spriteId = CreateSprite(&gGlareEyeDotSpriteTemplate, x, y, 35); if (spriteId != MAX_SPRITES) { - if (task->data[7] == 0) + if (!task->tIsContest) { if (i == 0) - gSprites[spriteId].x2 = gSprites[spriteId].y2 = -task->data[6]; + gSprites[spriteId].x2 = gSprites[spriteId].y2 = -task->tDotOffset; else - gSprites[spriteId].x2 = gSprites[spriteId].y2 = task->data[6]; + gSprites[spriteId].x2 = gSprites[spriteId].y2 = task->tDotOffset; } else { if (i == 0) { - gSprites[spriteId].x2 = -task->data[6]; - gSprites[spriteId].y2 = task->data[6]; + gSprites[spriteId].x2 = -task->tDotOffset; + gSprites[spriteId].y2 = task->tDotOffset; } else { - gSprites[spriteId].x2 = task->data[6]; - gSprites[spriteId].y2 = -task->data[6]; + gSprites[spriteId].x2 = task->tDotOffset; + gSprites[spriteId].y2 = -task->tDotOffset; } } - gSprites[spriteId].data[0] = 0; - gSprites[spriteId].data[1] = taskId; - gSprites[spriteId].data[2] = 10; - task->data[10]++; + gSprites[spriteId].sTimer = 0; + gSprites[spriteId].sTaskId = taskId; + gSprites[spriteId].sActiveSpritesIdx = IDX_ACTIVE_SPRITES; + task->tActiveSprites++; } } - if (task->data[2] == task->data[5]) - task->data[0]++; + if (task->tPairNum == task->tPairMax) + task->tState++; - task->data[2]++; + task->tPairNum++; } break; case 1: - if (task->data[10] == 0) + // Wait for sprites to be destroyed before ending task + if (task->tActiveSprites == 0) DestroyAnimVisualTask(taskId); break; } } -static void GetGlareEyeDotCoords(s16 arg0, s16 arg1, s16 arg2, s16 arg3, u8 arg4, u8 arg5, s16 *x, s16 *y) +static void GetGlareEyeDotCoords(s16 startX, s16 startY, s16 endX, s16 endY, u8 pairMax, u8 pairNum, s16 *x, s16 *y) { int x2; int y2; - if (arg5 == 0) + if (pairNum == 0) { - *x = arg0; - *y = arg1; + *x = startX; + *y = startY; return; } - if (arg5 >= arg4) + if (pairNum >= pairMax) { - *x = arg2; - *y = arg3; + *x = endX; + *y = endY; return; } - arg4--; - x2 = (arg0 << 8) + arg5 * (((arg2 - arg0) << 8) / arg4); - y2 = (arg1 << 8) + arg5 * (((arg3 - arg1) << 8) / arg4); + pairMax--; + x2 = (startX << 8) + pairNum * (((endX - startX) << 8) / pairMax); + y2 = (startY << 8) + pairNum * (((endY - startY) << 8) / pairMax); *x = x2 >> 8; *y = y2 >> 8; } -void AnimGlareEyeDot(struct Sprite *sprite) +static void AnimGlareEyeDot(struct Sprite *sprite) { - if (++sprite->data[0] > 36) + if (++sprite->sTimer > 36) { - gTasks[sprite->data[1]].data[sprite->data[2]]--; + gTasks[sprite->sTaskId].data[sprite->sActiveSpritesIdx]--; DestroySprite(sprite); } } +#undef IDX_ACTIVE_SPRITES +#undef tState +#undef tTimer +#undef tPairNum +#undef tPairMax +#undef tDotOffset +#undef tIsContest +#undef tActiveSprites +#undef tStartX +#undef tStartY +#undef tEndX +#undef tEndY +#undef sTimer +#undef sTaskId +#undef sActiveSpritesIdx + // Moves a pawprint in a straight line. // arg 0: initial x position // arg 1: initial y position // arg 2: destination x position // arg 3: destination y position // arg 4: duration -void AnimAssistPawprint(struct Sprite *sprite) +static void AnimAssistPawprint(struct Sprite *sprite) { sprite->x = gBattleAnimArgs[0]; sprite->y = gBattleAnimArgs[1]; @@ -3964,7 +4080,7 @@ void AnimTask_BarrageBall(u8 taskId) if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_OPPONENT) StartSpriteAffineAnim(&gSprites[task->data[15]], 1); - task->func = AnimTask_BarrageBallStep; + task->func = AnimTask_BarrageBall_Step; } else { @@ -3972,7 +4088,7 @@ void AnimTask_BarrageBall(u8 taskId) } } -static void AnimTask_BarrageBallStep(u8 taskId) +static void AnimTask_BarrageBall_Step(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -4019,7 +4135,7 @@ static void AnimTask_BarrageBallStep(u8 taskId) // arg 0: which battler // arg 1: horizontal flip // arg 2: num squishes -void AnimSmellingSaltsHand(struct Sprite *sprite) +static void AnimSmellingSaltsHand(struct Sprite *sprite) { u8 battler; @@ -4105,11 +4221,11 @@ void AnimTask_SmellingSaltsSquish(u8 taskId) gTasks[taskId].data[0] = gBattleAnimArgs[1]; gTasks[taskId].data[15] = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); PrepareAffineAnimInTaskData(&gTasks[taskId], gTasks[taskId].data[15], sSmellingSaltsSquishAffineAnimCmds); - gTasks[taskId].func = AnimTask_SmellingSaltsSquishStep; + gTasks[taskId].func = AnimTask_SmellingSaltsSquish_Step; } } -static void AnimTask_SmellingSaltsSquishStep(u8 taskId) +static void AnimTask_SmellingSaltsSquish_Step(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -4142,7 +4258,7 @@ static void AnimTask_SmellingSaltsSquishStep(u8 taskId) // arg 0: which mon // arg 1: blink delay // arg 2: number of blinks -void AnimSmellingSaltExclamation(struct Sprite *sprite) +static void AnimSmellingSaltExclamation(struct Sprite *sprite) { if (gBattleAnimArgs[0] == ANIM_ATTACKER) { @@ -4162,10 +4278,10 @@ void AnimSmellingSaltExclamation(struct Sprite *sprite) sprite->data[1] = gBattleAnimArgs[1]; sprite->data[2] = 0; sprite->data[3] = gBattleAnimArgs[2]; - sprite->callback = AnimSmellingSaltExclamationStep; + sprite->callback = AnimSmellingSaltExclamation_Step; } -static void AnimSmellingSaltExclamationStep(struct Sprite *sprite) +static void AnimSmellingSaltExclamation_Step(struct Sprite *sprite) { if (++sprite->data[0] >= sprite->data[1]) { @@ -4180,7 +4296,7 @@ static void AnimSmellingSaltExclamationStep(struct Sprite *sprite) // Claps a hand several times. // arg 0: which hand // arg 1: -void AnimHelpingHandClap(struct Sprite *sprite) +static void AnimHelpingHandClap(struct Sprite *sprite) { if (gBattleAnimArgs[0] == 0) { @@ -4195,10 +4311,10 @@ void AnimHelpingHandClap(struct Sprite *sprite) } sprite->y = 56; - sprite->callback = AnimHelpingHandClapStep; + sprite->callback = AnimHelpingHandClap_Step; } -static void AnimHelpingHandClapStep(struct Sprite *sprite) +static void AnimHelpingHandClap_Step(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -4290,9 +4406,9 @@ void AnimTask_HelpingHandAttackerMovement(u8 taskId) task->data[15] = GetAnimBattlerSpriteId(ANIM_ATTACKER); if (IsDoubleBattle() == TRUE) { - int x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X); - int y = GetBattlerSpriteCoord(BATTLE_PARTNER(gBattleAnimAttacker), BATTLER_COORD_X); - if (x > y) + int attackerX = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X); + int partnerX = GetBattlerSpriteCoord(BATTLE_PARTNER(gBattleAnimAttacker), BATTLER_COORD_X); + if (attackerX > partnerX) task->data[14] = 1; else task->data[14] = -1; @@ -4305,10 +4421,10 @@ void AnimTask_HelpingHandAttackerMovement(u8 taskId) task->data[14] = 1; } - task->func = AnimTask_HelpingHandAttackerMovementStep; + task->func = AnimTask_HelpingHandAttackerMovement_Step; } -static void AnimTask_HelpingHandAttackerMovementStep(u8 taskId) +static void AnimTask_HelpingHandAttackerMovement_Step(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -4392,7 +4508,7 @@ static void AnimTask_HelpingHandAttackerMovementStep(u8 taskId) // Moves a magnifying glass around in straight lines. // arg 0: magnifying glass target mon -void AnimForesightMagnifyingGlass(struct Sprite *sprite) +static void AnimForesightMagnifyingGlass(struct Sprite *sprite) { if (gBattleAnimArgs[0] == ANIM_ATTACKER) { @@ -4409,10 +4525,10 @@ void AnimForesightMagnifyingGlass(struct Sprite *sprite) sprite->oam.priority = GetBattlerSpriteBGPriority(sprite->data[7]); sprite->oam.objMode = ST_OAM_OBJ_BLEND; - sprite->callback = AnimForesightMagnifyingGlassStep; + sprite->callback = AnimForesightMagnifyingGlass_Step; } -static void AnimForesightMagnifyingGlassStep(struct Sprite *sprite) +static void AnimForesightMagnifyingGlass_Step(struct Sprite *sprite) { u16 x, y; @@ -4514,7 +4630,7 @@ static void AnimForesightMagnifyingGlassStep(struct Sprite *sprite) } } -static void AnimMeteorMashStarStep(struct Sprite *sprite) +static void AnimMeteorMashStar_Step(struct Sprite *sprite) { sprite->x2 = ((sprite->data[2] - sprite->data[0]) * sprite->data[5]) / sprite->data[4]; sprite->y2 = ((sprite->data[3] - sprite->data[1]) * sprite->data[5]) / sprite->data[4]; @@ -4538,7 +4654,7 @@ static void AnimMeteorMashStarStep(struct Sprite *sprite) // arg 2: destination x pixel offset // arg 3: destination y pixel offset // arg 4: duration -void AnimMeteorMashStar(struct Sprite *sprite) +static void AnimMeteorMashStar(struct Sprite *sprite) { s16 y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); s16 x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); @@ -4559,7 +4675,7 @@ void AnimMeteorMashStar(struct Sprite *sprite) sprite->data[4] = gBattleAnimArgs[4]; sprite->x = sprite->data[0]; sprite->y = sprite->data[1]; - sprite->callback = AnimMeteorMashStarStep; + sprite->callback = AnimMeteorMashStar_Step; } void AnimTask_MonToSubstitute(u8 taskId) @@ -4590,7 +4706,7 @@ void AnimTask_MonToSubstitute(u8 taskId) else { LoadBattleMonGfxAndAnimate(gBattleAnimAttacker, 0, spriteId); - for (i = 0; i < 16; i++) + for (i = 0; i < NUM_TASK_DATA; i++) gTasks[taskId].data[i] = 0; gTasks[taskId].func = AnimTask_MonToSubstituteDoll; @@ -4652,7 +4768,7 @@ static void AnimTask_MonToSubstituteDoll(u8 taskId) // Moves down an X that flickers and disappears. // No args. -void AnimBlockX(struct Sprite *sprite) +static void AnimBlockX(struct Sprite *sprite) { s16 y; @@ -4669,10 +4785,10 @@ void AnimBlockX(struct Sprite *sprite) sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); sprite->y2 = y; - sprite->callback = AnimBlockXStep; + sprite->callback = AnimBlockX_Step; } -static void AnimBlockXStep(struct Sprite *sprite) +static void AnimBlockX_Step(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -4743,7 +4859,7 @@ void AnimTask_OdorSleuthMovement(u8 taskId) spriteId2 = CloneBattlerSpriteWithBlend(ANIM_TARGET); if (spriteId2 < 0) { - obj_delete_but_dont_free_vram(&gSprites[spriteId1]); + DestroySpriteWithActiveSheet(&gSprites[spriteId1]); DestroyAnimVisualTask(taskId); return; } @@ -4823,7 +4939,7 @@ static void MoveOdorSleuthClone(struct Sprite *sprite) if (sprite->data[5] < 0) { gTasks[sprite->data[6]].data[sprite->data[7]]--; - obj_delete_but_dont_free_vram(sprite); + DestroySpriteWithActiveSheet(sprite); } } break; @@ -4832,15 +4948,15 @@ static void MoveOdorSleuthClone(struct Sprite *sprite) void AnimTask_GetReturnPowerLevel(u8 taskId) { - gBattleAnimArgs[7] = 0; + gBattleAnimArgs[ARG_RET_ID] = 0; if (gAnimFriendship < 60) - gBattleAnimArgs[7] = 0; + gBattleAnimArgs[ARG_RET_ID] = 0; if (gAnimFriendship > 60 && gAnimFriendship < 92) - gBattleAnimArgs[7] = 1; + gBattleAnimArgs[ARG_RET_ID] = 1; if (gAnimFriendship > 91 && gAnimFriendship < 201) - gBattleAnimArgs[7] = 2; + gBattleAnimArgs[ARG_RET_ID] = 2; if (gAnimFriendship > 200) - gBattleAnimArgs[7] = 3; + gBattleAnimArgs[ARG_RET_ID] = 3; DestroyAnimVisualTask(taskId); } @@ -4869,7 +4985,7 @@ void AnimTask_SnatchOpposingMonMove(u8 taskId) gTasks[taskId].data[1] &= 0xFF; x = gSprites[spriteId].x + gSprites[spriteId].x2; - if ((u16)(x + 32) > 304) + if (x < -32 || x > DISPLAY_WIDTH + 32) { gTasks[taskId].data[1] = 0; gTasks[taskId].data[0]++; @@ -4890,7 +5006,7 @@ void AnimTask_SnatchOpposingMonMove(u8 taskId) subpriority = gSprites[GetAnimBattlerSpriteId(ANIM_TARGET)].subpriority + 1; isBackPic = FALSE; - x = 272; + x = DISPLAY_WIDTH + 32; } else { @@ -4943,7 +5059,7 @@ void AnimTask_SnatchOpposingMonMove(u8 taskId) } } } - if ((u16)(x + 32) > 304) + if (x < -32 || x > DISPLAY_WIDTH + 32) { gTasks[taskId].data[1] = 0; gTasks[taskId].data[0]++; @@ -4956,7 +5072,7 @@ void AnimTask_SnatchOpposingMonMove(u8 taskId) if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) gSprites[spriteId].x2 = -gSprites[spriteId].x - 32; else - gSprites[spriteId].x2 = 272 - gSprites[spriteId].x; + gSprites[spriteId].x2 = DISPLAY_WIDTH + 32 - gSprites[spriteId].x; gTasks[taskId].data[0]++; break; @@ -4983,7 +5099,7 @@ void AnimTask_SnatchOpposingMonMove(u8 taskId) } } -void AnimUnusedItemBagSteal(struct Sprite *sprite) +static void AnimUnusedItemBagSteal(struct Sprite *sprite) { switch (sprite->data[7]) { @@ -5101,10 +5217,10 @@ void AnimTask_TeeterDanceMovement(u8 taskId) task->data[11] = 0; task->data[10] = 1; task->data[12] = 0; - task->func = AnimTask_TeeterDanceMovementStep; + task->func = AnimTask_TeeterDanceMovement_Step; } -static void AnimTask_TeeterDanceMovementStep(u8 taskId) +static void AnimTask_TeeterDanceMovement_Step(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -5139,8 +5255,9 @@ static void AnimTask_TeeterDanceMovementStep(u8 taskId) } } -static void AnimKnockOffStrikeStep(struct Sprite *sprite) +static void AnimKnockOffStrike_Step(struct Sprite *sprite) { + // These two cases are identical. if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER) { sprite->data[1] += sprite->data[0]; @@ -5163,7 +5280,7 @@ static void AnimKnockOffStrikeStep(struct Sprite *sprite) // Animates a strike that swipes downard at the target mon. // arg 0: initial x pixel offset // arg 1: initial y pixel offset -void AnimKnockOffStrike(struct Sprite *sprite) +static void AnimKnockOffStrike(struct Sprite *sprite) { if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER) { @@ -5181,12 +5298,12 @@ void AnimKnockOffStrike(struct Sprite *sprite) sprite->y += gBattleAnimArgs[1]; } - sprite->callback = AnimKnockOffStrikeStep; + sprite->callback = AnimKnockOffStrike_Step; } // Gradually fades a rotating recyle arrow sprite in and back out. // No args. -void AnimRecycle(struct Sprite *sprite) +static void AnimRecycle(struct Sprite *sprite) { sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); sprite->y = GetBattlerSpriteCoordAttr(gBattleAnimAttacker, BATTLER_COORD_ATTR_TOP); @@ -5195,11 +5312,11 @@ void AnimRecycle(struct Sprite *sprite) sprite->data[6] = 0; sprite->data[7] = 16; - sprite->callback = AnimRecycleStep; + sprite->callback = AnimRecycle_Step; SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(sprite->data[6], sprite->data[7])); } -static void AnimRecycleStep(struct Sprite *sprite) +static void AnimRecycle_Step(struct Sprite *sprite) { switch (sprite->data[2]) { @@ -5261,15 +5378,15 @@ static void AnimRecycleStep(struct Sprite *sprite) void AnimTask_GetWeather(u8 taskId) { - gBattleAnimArgs[7] = ANIM_WEATHER_NONE; + gBattleAnimArgs[ARG_RET_ID] = ANIM_WEATHER_NONE; if (gWeatherMoveAnim & B_WEATHER_SUN) - gBattleAnimArgs[7] = ANIM_WEATHER_SUN; + gBattleAnimArgs[ARG_RET_ID] = ANIM_WEATHER_SUN; else if (gWeatherMoveAnim & B_WEATHER_RAIN) - gBattleAnimArgs[7] = ANIM_WEATHER_RAIN; + gBattleAnimArgs[ARG_RET_ID] = ANIM_WEATHER_RAIN; else if (gWeatherMoveAnim & B_WEATHER_SANDSTORM) - gBattleAnimArgs[7] = ANIM_WEATHER_SANDSTORM; + gBattleAnimArgs[ARG_RET_ID] = ANIM_WEATHER_SANDSTORM; else if (gWeatherMoveAnim & B_WEATHER_HAIL) - gBattleAnimArgs[7] = ANIM_WEATHER_HAIL; + gBattleAnimArgs[ARG_RET_ID] = ANIM_WEATHER_HAIL; DestroyAnimVisualTask(taskId); } @@ -5283,10 +5400,10 @@ void AnimTask_SlackOffSquish(u8 taskId) task->data[0] = 0; task->data[15] = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); PrepareAffineAnimInTaskData(task, task->data[15], sSlackOffSquishAffineAnimCmds); - task->func = AnimTask_SlackOffSquishStep; + task->func = AnimTask_SlackOffSquish_Step; } -static void AnimTask_SlackOffSquishStep(u8 taskId) +static void AnimTask_SlackOffSquish_Step(u8 taskId) { struct Task *task = &gTasks[taskId]; diff --git a/src/electric.c b/src/battle_anim_electric.c similarity index 87% rename from src/electric.c rename to src/battle_anim_electric.c index f6f01a8ef..e0ed2d1f3 100644 --- a/src/electric.c +++ b/src/battle_anim_electric.c @@ -5,9 +5,9 @@ #include "constants/songs.h" static void AnimLightning(struct Sprite *sprite); -static void sub_80ADC58(struct Sprite *sprite); -static void sub_80ADCB8(struct Sprite *sprite); -static void sub_80ADD4C(struct Sprite *sprite); +static void AnimUnusedSpinningFist(struct Sprite *sprite); +static void AnimUnusedCirclingShock(struct Sprite *sprite); +static void AnimSparkElectricity(struct Sprite *sprite); static void AnimZapCannonSpark(struct Sprite *sprite); static void AnimThunderboltOrb(struct Sprite *sprite); static void AnimSparkElectricityFlashing(struct Sprite *sprite); @@ -20,19 +20,19 @@ static void AnimVoltTackleOrbSlide(struct Sprite *sprite); static void AnimVoltTackleBolt(struct Sprite *sprite); static void AnimGrowingShockWaveOrb(struct Sprite *sprite); static void AnimShockWaveProgressingBolt(struct Sprite *sprite); -static void sub_80ADC3C(struct Sprite *sprite); -static void sub_80ADC9C(struct Sprite *sprite); -static void sub_80ADF38(struct Sprite *sprite); -static void sub_80AE130(struct Sprite *sprite); -static void sub_80AE278(u8 taskId); -static void sub_80AE4F4(struct Sprite *sprite); -static void sub_80AE5BC(u8 taskId); -static void sub_80AE704(struct Sprite *sprite); -static void sub_80AE83C(struct Sprite *sprite); -static bool8 sub_80AEB98(struct Task *task, u8 taskId); -static bool8 sub_80AEE74(struct Task *task, u8 taskId); -static bool8 sub_80AF058(struct Task *task, u8 taskId); -static void sub_80AF0C8(struct Sprite *sprite); +static void AnimLightning_Step(struct Sprite *sprite); +static void AnimUnusedSpinningFist_Step(struct Sprite *sprite); +static void AnimZapCannonSpark_Step(struct Sprite *sprite); +static void AnimSparkElectricityFlashing_Step(struct Sprite *sprite); +static void AnimTask_ElectricBolt_Step(u8 taskId); +static void AnimThunderWave_Step(struct Sprite *sprite); +static void AnimTask_ElectricChargingParticles_Step(u8 taskId); +static void AnimElectricChargingParticles(struct Sprite *sprite); +static void AnimVoltTackleOrbSlide_Step(struct Sprite *sprite); +static bool8 CreateVoltTackleBolt(struct Task *task, u8 taskId); +static bool8 CreateShockWaveBoltSprite(struct Task *task, u8 taskId); +static bool8 CreateShockWaveLightningSprite(struct Task *task, u8 taskId); +static void AnimShockWaveLightning(struct Sprite *sprite); static const union AnimCmd sAnim_Lightning[] = { @@ -60,7 +60,7 @@ const struct SpriteTemplate gLightningSpriteTemplate = .callback = AnimLightning, }; -static const union AffineAnimCmd gUnknown_83E5F50[] = +static const union AffineAnimCmd sAffineAnim_UnusedSpinningFist[] = { AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 20), @@ -68,23 +68,23 @@ static const union AffineAnimCmd gUnknown_83E5F50[] = AFFINEANIMCMD_END, }; -static const union AffineAnimCmd *const gUnknown_83E5F70[] = +static const union AffineAnimCmd *const sAffineAnims_UnusedSpinningFist[] = { - gUnknown_83E5F50, + sAffineAnim_UnusedSpinningFist, }; -const struct SpriteTemplate gUnknown_83E5F74 = +static const struct SpriteTemplate sUnusedSpinningFistSpriteTemplate = { .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, .oam = &gOamData_AffineNormal_ObjNormal_32x32, .anims = gDummySpriteAnimTable, .images = NULL, - .affineAnims = gUnknown_83E5F70, - .callback = sub_80ADC58, + .affineAnims = sAffineAnims_UnusedSpinningFist, + .callback = AnimUnusedSpinningFist, }; -static const union AnimCmd gUnknown_83E5F8C[] = +static const union AnimCmd sAnim_UnusedCirclingShock[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_FRAME(16, 5), @@ -95,20 +95,20 @@ static const union AnimCmd gUnknown_83E5F8C[] = ANIMCMD_JUMP(0), }; -static const union AnimCmd *const gUnknown_83E5FA8[] = +static const union AnimCmd *const sAnims_UnusedCirclingShock[] = { - gUnknown_83E5F8C, + sAnim_UnusedCirclingShock, }; -const struct SpriteTemplate gUnknown_83E5FAC = +static const struct SpriteTemplate sUnusedCirclingShockSpriteTemplate = { .tileTag = ANIM_TAG_SHOCK, .paletteTag = ANIM_TAG_SHOCK, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_83E5FA8, + .anims = sAnims_UnusedCirclingShock, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80ADCB8, + .callback = AnimUnusedCirclingShock, }; const struct SpriteTemplate gSparkElectricitySpriteTemplate = @@ -119,7 +119,7 @@ const struct SpriteTemplate gSparkElectricitySpriteTemplate = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80ADD4C, + .callback = AnimSparkElectricity, }; const struct SpriteTemplate gZapCannonBallSpriteTemplate = @@ -458,31 +458,31 @@ static void AnimLightning(struct Sprite *sprite) else sprite->x += gBattleAnimArgs[0]; sprite->y += gBattleAnimArgs[1]; - sprite->callback = sub_80ADC3C; + sprite->callback = AnimLightning_Step; } -static void sub_80ADC3C(struct Sprite *sprite) +static void AnimLightning_Step(struct Sprite *sprite) { if (sprite->animEnded) DestroyAnimSprite(sprite); } -static void sub_80ADC58(struct Sprite *sprite) +static void AnimUnusedSpinningFist(struct Sprite *sprite) { if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) sprite->x -= gBattleAnimArgs[0]; else sprite->x += gBattleAnimArgs[0]; - sprite->callback = sub_80ADC9C; + sprite->callback = AnimUnusedSpinningFist_Step; } -static void sub_80ADC9C(struct Sprite *sprite) +static void AnimUnusedSpinningFist_Step(struct Sprite *sprite) { if (sprite->affineAnimEnded) DestroySpriteAndMatrix(sprite); } -static void sub_80ADCB8(struct Sprite *sprite) +static void AnimUnusedCirclingShock(struct Sprite *sprite) { sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); @@ -501,10 +501,10 @@ static void sub_80ADCB8(struct Sprite *sprite) sprite->data[2] = gBattleAnimArgs[3]; sprite->data[3] = gBattleAnimArgs[4]; StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix); - sprite->callback = TranslateSpriteInCircleOverDuration; + sprite->callback = TranslateSpriteInCircle; } -static void sub_80ADD4C(struct Sprite *sprite) +static void AnimSparkElectricity(struct Sprite *sprite) { u8 battler; u32 matrixNum; @@ -512,20 +512,20 @@ static void sub_80ADD4C(struct Sprite *sprite) switch (gBattleAnimArgs[4]) { - case 0: + case ANIM_ATTACKER: battler = gBattleAnimAttacker; break; - case 1: + case ANIM_TARGET: default: battler = gBattleAnimTarget; break; - case 2: + case ANIM_ATK_PARTNER: if (!IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimAttacker))) battler = gBattleAnimAttacker; else battler = BATTLE_PARTNER(gBattleAnimAttacker); break; - case 3: + case ANIM_DEF_PARTNER: if (IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimAttacker))) battler = BATTLE_PARTNER(gBattleAnimTarget); else @@ -568,11 +568,11 @@ static void AnimZapCannonSpark(struct Sprite *sprite) sprite->data[6] = gBattleAnimArgs[5]; sprite->data[7] = gBattleAnimArgs[4]; sprite->oam.tileNum += gBattleAnimArgs[6] * 4; - sprite->callback = sub_80ADF38; + sprite->callback = AnimZapCannonSpark_Step; sprite->callback(sprite); } -static void sub_80ADF38(struct Sprite *sprite) +static void AnimZapCannonSpark_Step(struct Sprite *sprite) { if (!AnimTranslateLinear(sprite)) { @@ -588,7 +588,7 @@ static void sub_80ADF38(struct Sprite *sprite) } } -static void sub_80ADFB0(struct Sprite *sprite) +static void AnimThunderboltOrb_Step(struct Sprite *sprite) { if (--sprite->data[5] == -1) { @@ -608,7 +608,7 @@ static void AnimThunderboltOrb(struct Sprite *sprite) sprite->data[3] = gBattleAnimArgs[0]; sprite->data[4] = gBattleAnimArgs[3]; sprite->data[5] = gBattleAnimArgs[3]; - sprite->callback = sub_80ADFB0; + sprite->callback = AnimThunderboltOrb_Step; } static void AnimSparkElectricityFlashing(struct Sprite *sprite) @@ -629,11 +629,11 @@ static void AnimSparkElectricityFlashing(struct Sprite *sprite) sprite->data[6] = gBattleAnimArgs[5]; sprite->data[7] = gBattleAnimArgs[4]; sprite->oam.tileNum += gBattleAnimArgs[6] * 4; - sprite->callback = sub_80AE130; + sprite->callback = AnimSparkElectricityFlashing_Step; sprite->callback(sprite); } -static void sub_80AE130(struct Sprite *sprite) +static void AnimSparkElectricityFlashing_Step(struct Sprite *sprite) { sprite->x2 = Sin(sprite->data[7], sprite->data[5]); sprite->y2 = Cos(sprite->data[7], sprite->data[5]); @@ -644,6 +644,7 @@ static void sub_80AE130(struct Sprite *sprite) DestroyAnimSprite(sprite); } +// Electricity arcs around the target. Used for Paralysis and various electric move hits static void AnimElectricity(struct Sprite *sprite) { InitSpritePosToAnimTarget(sprite, FALSE); @@ -657,15 +658,16 @@ static void AnimElectricity(struct Sprite *sprite) StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } +// The vertical falling thunder bolt used in Thunder Wave/Shock/Bolt void AnimTask_ElectricBolt(u8 taskId) { - gTasks[taskId].data[0] = GetBattlerSpriteCoord(gBattleAnimTarget, 0) + gBattleAnimArgs[0]; - gTasks[taskId].data[1] = GetBattlerSpriteCoord(gBattleAnimTarget, 1) + gBattleAnimArgs[1]; + gTasks[taskId].data[0] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X) + gBattleAnimArgs[0]; + gTasks[taskId].data[1] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y) + gBattleAnimArgs[1]; gTasks[taskId].data[2] = gBattleAnimArgs[2]; - gTasks[taskId].func = sub_80AE278; + gTasks[taskId].func = AnimTask_ElectricBolt_Step; } -static void sub_80AE278(u8 taskId) +static void AnimTask_ElectricBolt_Step(u8 taskId) { u16 r8; u16 r2; @@ -735,18 +737,19 @@ static void AnimElectricBoltSegment(struct Sprite *sprite) { if (!sprite->data[0]) { - sprite->oam.shape = ST_OAM_V_RECTANGLE; - sprite->oam.size = ST_OAM_SIZE_0; + sprite->oam.shape = SPRITE_SHAPE(8x16); + sprite->oam.size = SPRITE_SIZE(8x16); } else { - sprite->oam.shape = ST_OAM_SQUARE; - sprite->oam.size = ST_OAM_SIZE_1; + sprite->oam.shape = SPRITE_SHAPE(16x16); + sprite->oam.size = SPRITE_SIZE(16x16); } if (++sprite->data[1] == 15) DestroySprite(sprite); } +// The horizontal bands of electricity used in Thunder Wave static void AnimThunderWave(struct Sprite *sprite) { u8 spriteId; @@ -756,11 +759,11 @@ static void AnimThunderWave(struct Sprite *sprite) spriteId = CreateSprite(&gThunderWaveSpriteTemplate, sprite->x + 32, sprite->y, sprite->subpriority); gSprites[spriteId].oam.tileNum += 8; ++gAnimVisualTaskCount; - gSprites[spriteId].callback = sub_80AE4F4; - sprite->callback = sub_80AE4F4; + gSprites[spriteId].callback = AnimThunderWave_Step; + sprite->callback = AnimThunderWave_Step; } -static void sub_80AE4F4(struct Sprite *sprite) +static void AnimThunderWave_Step(struct Sprite *sprite) { if (++sprite->data[0] == 3) { @@ -771,6 +774,7 @@ static void sub_80AE4F4(struct Sprite *sprite) DestroyAnimSprite(sprite); } +// Animates small electric orbs moving from around the battler inward. For Charge/Shock Wave void AnimTask_ElectricChargingParticles(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -793,10 +797,10 @@ void AnimTask_ElectricChargingParticles(u8 taskId) task->data[11] = gBattleAnimArgs[3]; task->data[12] = 0; task->data[13] = gBattleAnimArgs[2]; - task->func = sub_80AE5BC; + task->func = AnimTask_ElectricChargingParticles_Step; } -static void sub_80AE5BC(u8 taskId) +static void AnimTask_ElectricChargingParticles_Step(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -821,7 +825,7 @@ static void sub_80AE5BC(u8 taskId) sprite->data[4] = task->data[15]; sprite->data[5] = taskId; InitAnimLinearTranslation(sprite); - StoreSpriteCallbackInData6(sprite, sub_80AE704); + StoreSpriteCallbackInData6(sprite, AnimElectricChargingParticles); sprite->callback = RunStoredCallbackWhenAnimEnds; if (++task->data[9] > 15) task->data[9] = 0; @@ -842,7 +846,7 @@ static void sub_80AE5BC(u8 taskId) } } -static void sub_80AE6D0(struct Sprite *sprite) +static void AnimElectricChargingParticles_Step(struct Sprite *sprite) { if (AnimTranslateLinear(sprite)) { @@ -851,15 +855,15 @@ static void sub_80AE6D0(struct Sprite *sprite) } } -static void sub_80AE704(struct Sprite *sprite) +static void AnimElectricChargingParticles(struct Sprite *sprite) { StartSpriteAnim(sprite, 1); - sprite->callback = sub_80AE6D0; + sprite->callback = AnimElectricChargingParticles_Step; } static void AnimGrowingChargeOrb(struct Sprite *sprite) { - if (!gBattleAnimArgs[0]) + if (gBattleAnimArgs[0] == ANIM_ATTACKER) { sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); @@ -873,9 +877,10 @@ static void AnimGrowingChargeOrb(struct Sprite *sprite) sprite->callback = RunStoredCallbackWhenAffineAnimEnds; } +// The quick electric burst at the end of Charge / during the Volt Tackle hit static void AnimElectricPuff(struct Sprite *sprite) { - if (!gBattleAnimArgs[0]) + if (gBattleAnimArgs[0] == ANIM_ATTACKER) { sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); @@ -891,6 +896,7 @@ static void AnimElectricPuff(struct Sprite *sprite) sprite->callback = RunStoredCallbackWhenAnimEnds; } +// Creates an orb of electricity that grows then slides off-screen. The attacker slides with it static void AnimVoltTackleOrbSlide(struct Sprite *sprite) { StartSpriteAffineAnim(sprite, 1); @@ -900,10 +906,10 @@ static void AnimVoltTackleOrbSlide(struct Sprite *sprite) sprite->data[7] = 16; if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_OPPONENT) sprite->data[7] *= -1; - sprite->callback = sub_80AE83C; + sprite->callback = AnimVoltTackleOrbSlide_Step; } -static void sub_80AE83C(struct Sprite *sprite) +static void AnimVoltTackleOrbSlide_Step(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -975,6 +981,7 @@ void AnimTask_VoltTackleAttackerReappear(u8 taskId) } } +// The horizontal bolts of electricity for Volt Tackle void AnimTask_VoltTackleBolt(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -1036,7 +1043,7 @@ void AnimTask_VoltTackleBolt(u8 taskId) if (++task->data[2] > 0) { task->data[2] = 0; - if (sub_80AEB98(task, taskId) || sub_80AEB98(task, taskId)) + if (CreateVoltTackleBolt(task, taskId) || CreateVoltTackleBolt(task, taskId)) ++task->data[0]; } break; @@ -1047,7 +1054,7 @@ void AnimTask_VoltTackleBolt(u8 taskId) } } -static bool8 sub_80AEB98(struct Task *task, u8 taskId) +static bool8 CreateVoltTackleBolt(struct Task *task, u8 taskId) { u8 spriteId = CreateSprite(&gVoltTackleBoltSpriteTemplate, task->data[3], task->data[5], 35); @@ -1112,7 +1119,7 @@ void AnimTask_ShockWaveProgressingBolt(u8 taskId) task->data[4] = 7; task->data[5] = -1; task->data[11] = 12; - task->data[12] = BattleAnimAdjustPanning(task->data[11] - 76); + task->data[12] = BattleAnimAdjustPanning(SOUND_PAN_ATTACKER); task->data[13] = BattleAnimAdjustPanning(SOUND_PAN_TARGET); task->data[14] = task->data[12]; task->data[15] = (task->data[13] - task->data[12]) / 3; @@ -1122,7 +1129,7 @@ void AnimTask_ShockWaveProgressingBolt(u8 taskId) if (++task->data[1] > 0) { task->data[1] = 0; - if (sub_80AEE74(task, taskId)) + if (CreateShockWaveBoltSprite(task, taskId)) { if (task->data[2] == 5) task->data[0] = 3; @@ -1172,7 +1179,7 @@ void AnimTask_ShockWaveProgressingBolt(u8 taskId) } } -static bool8 sub_80AEE74(struct Task *task, u8 taskId) +static bool8 CreateShockWaveBoltSprite(struct Task *task, u8 taskId) { u8 spriteId = CreateSprite(&sShockWaveProgressingBoltSpriteTemplate, task->data[6], task->data[7], 35); if (spriteId != MAX_SPRITES) @@ -1206,6 +1213,7 @@ static bool8 sub_80AEE74(struct Task *task, u8 taskId) } } +// Just runs timer for sprite. See AnimTask_ShockWaveProgressingBolt static void AnimShockWaveProgressingBolt(struct Sprite *sprite) { if (++sprite->data[0] > 12) @@ -1234,7 +1242,7 @@ void AnimTask_ShockWaveLightning(u8 taskId) if (++task->data[1] > 1) { task->data[1] = 0; - if (sub_80AF058(task, taskId)) + if (CreateShockWaveLightningSprite(task, taskId)) ++task->data[0]; } break; @@ -1245,13 +1253,13 @@ void AnimTask_ShockWaveLightning(u8 taskId) } } -static bool8 sub_80AF058(struct Task *task, u8 taskId) +static bool8 CreateShockWaveLightningSprite(struct Task *task, u8 taskId) { u8 spriteId = CreateSprite(&gLightningSpriteTemplate, task->data[13], task->data[14], task->data[12]); if (spriteId != MAX_SPRITES) { - gSprites[spriteId].callback = sub_80AF0C8; + gSprites[spriteId].callback = AnimShockWaveLightning; gSprites[spriteId].data[6] = taskId; gSprites[spriteId].data[7] = 10; ++task->data[10]; @@ -1262,7 +1270,7 @@ static bool8 sub_80AF058(struct Task *task, u8 taskId) return FALSE; } -static void sub_80AF0C8(struct Sprite *sprite) +static void AnimShockWaveLightning(struct Sprite *sprite) { if (sprite->animEnded) { diff --git a/src/fighting.c b/src/battle_anim_fight.c similarity index 82% rename from src/fighting.c rename to src/battle_anim_fight.c index f2c4b687e..c99a00785 100644 --- a/src/fighting.c +++ b/src/battle_anim_fight.c @@ -5,7 +5,7 @@ #include "task.h" #include "trig.h" -static void unc_080B08A0(struct Sprite *sprite); +static void AnimUnusedHumanoidFoot(struct Sprite *sprite); static void AnimSlideHandOrFootToTarget(struct Sprite *sprite); static void AnimJumpKick(struct Sprite *sprite); static void AnimBasicFistOrFoot(struct Sprite *sprite); @@ -23,19 +23,19 @@ static void AnimSuperpowerFireball(struct Sprite *sprite); static void AnimArmThrustHit(struct Sprite *sprite); static void AnimRevengeScratch(struct Sprite *sprite); static void AnimFocusPunchFist(struct Sprite *sprite); -static void sub_80B0B2C(struct Sprite *sprite); -static void sub_80B0BD8(struct Sprite *sprite); -static void sub_80B0CB4(struct Sprite *sprite); +static void AnimFistOrFootRandomPos_Step(struct Sprite *sprite); +static void AnimCrossChopHand_Step(struct Sprite *sprite); +static void AnimSlidingKick_Step(struct Sprite *sprite); static void AnimSpinningKickOrPunchFinish(struct Sprite *sprite); static void AnimStompFootStep(struct Sprite *sprite); static void AnimStompFootEnd(struct Sprite *sprite); -static void sub_80B0EF0(struct Sprite *sprite); -static void sub_80B1050(struct Sprite *sprite); -static void sub_80B111C(struct Sprite *sprite); -static void sub_80B11E4(struct Sprite *sprite); -static void sub_80B12A4(struct Sprite *sprite); +static void AnimBrickBreakWall_Step(struct Sprite *sprite); +static void AnimBrickBreakWallShard_Step(struct Sprite *sprite); +static void AnimSuperpowerOrb_Step(struct Sprite *sprite); +static void AnimSuperpowerRock_Step1(struct Sprite *sprite); +static void AnimSuperpowerRock_Step2(struct Sprite *sprite); -const struct SpriteTemplate gUnknown_83E668C = +static const struct SpriteTemplate sUnusedHumanoidFootSpriteTemplate = { .tileTag = ANIM_TAG_HUMANOID_FOOT, .paletteTag = ANIM_TAG_HUMANOID_FOOT, @@ -43,54 +43,46 @@ const struct SpriteTemplate gUnknown_83E668C = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = unc_080B08A0, + .callback = AnimUnusedHumanoidFoot, }; -static const union AnimCmd sAnim_HandOrFoot[] = +static const union AnimCmd sAnim_Fist[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd sAnim_SlidingKick_0[] = +static const union AnimCmd sAnim_FootWide[] = { ANIMCMD_FRAME(16, 1), ANIMCMD_END, }; -static const union AnimCmd sAnim_SlidingKick_1[] = +static const union AnimCmd sAnim_FootTall[] = { ANIMCMD_FRAME(32, 1), ANIMCMD_END, }; -static const union AnimCmd sAnim_CrossChopHand_0[] = +static const union AnimCmd sAnim_HandLeft[] = { ANIMCMD_FRAME(48, 1), ANIMCMD_END, }; -static const union AnimCmd sAnim_CrossChopHand_1[] = +static const union AnimCmd sAnim_HandRight[] = { ANIMCMD_FRAME(48, 1, .hFlip = TRUE), ANIMCMD_END, }; -static const union AnimCmd *const sAnims_HandOrFoot[] = +static const union AnimCmd *const sAnims_HandsAndFeet[] = { - sAnim_HandOrFoot, -}; - -static const union AnimCmd *const sAnims_SlidingKick[] = -{ - sAnim_SlidingKick_0, - sAnim_SlidingKick_1, -}; - -static const union AnimCmd *const sAnims_CrossChopHand[] = -{ - sAnim_CrossChopHand_0, - sAnim_CrossChopHand_1, + sAnim_Fist, + sAnim_FootWide, + sAnim_FootTall, + sAnim_HandLeft, + sAnim_HandRight, }; const struct SpriteTemplate gKarateChopSpriteTemplate = @@ -98,7 +90,7 @@ const struct SpriteTemplate gKarateChopSpriteTemplate = .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = sAnims_HandOrFoot, + .anims = sAnims_HandsAndFeet, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimSlideHandOrFootToTarget, @@ -109,7 +101,7 @@ const struct SpriteTemplate gJumpKickSpriteTemplate = .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = sAnims_HandOrFoot, + .anims = sAnims_HandsAndFeet, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimJumpKick, @@ -120,7 +112,7 @@ const struct SpriteTemplate gFistFootSpriteTemplate = .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = sAnims_HandOrFoot, + .anims = sAnims_HandsAndFeet, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimBasicFistOrFoot, @@ -131,7 +123,7 @@ const struct SpriteTemplate gFistFootRandomPosSpriteTemplate = .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = sAnims_HandOrFoot, + .anims = sAnims_HandsAndFeet, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimFistOrFootRandomPos, @@ -142,7 +134,7 @@ const struct SpriteTemplate gCrossChopHandSpriteTemplate = .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = sAnims_CrossChopHand, + .anims = &sAnims_HandsAndFeet[3], .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimCrossChopHand, @@ -153,7 +145,7 @@ const struct SpriteTemplate gSlidingKickSpriteTemplate = .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = sAnims_SlidingKick, + .anims = &sAnims_HandsAndFeet[1], .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimSlidingKick, @@ -171,12 +163,13 @@ static const union AffineAnimCmd *const sAffineAnims_SpinningHandOrFoot[] = sAffineAnim_SpinningHandOrFoot, }; +// Blaze Kick / Meteor Mash const struct SpriteTemplate gSpinningHandOrFootSpriteTemplate = { .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, .oam = &gOamData_AffineDouble_ObjNormal_32x32, - .anims = sAnims_HandOrFoot, + .anims = sAnims_HandsAndFeet, .images = NULL, .affineAnims = sAffineAnims_SpinningHandOrFoot, .callback = AnimSpinningKickOrPunch, @@ -199,7 +192,7 @@ const struct SpriteTemplate gMegaPunchKickSpriteTemplate = .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, .oam = &gOamData_AffineDouble_ObjNormal_32x32, - .anims = sAnims_HandOrFoot, + .anims = sAnims_HandsAndFeet, .images = NULL, .affineAnims = sAffineAnims_MegaPunchKick, .callback = AnimSpinningKickOrPunch, @@ -210,7 +203,7 @@ const struct SpriteTemplate gStompFootSpriteTemplate = .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = sAnims_SlidingKick, + .anims = &sAnims_HandsAndFeet[1], .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimStompFoot, @@ -301,7 +294,7 @@ const struct SpriteTemplate gArmThrustHandSpriteTemplate = .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = sAnims_HandOrFoot, + .anims = sAnims_HandsAndFeet, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimArmThrustHit, @@ -405,13 +398,13 @@ const struct SpriteTemplate gFocusPunchFistSpriteTemplate = .tileTag = ANIM_TAG_HANDS_AND_FEET, .paletteTag = ANIM_TAG_HANDS_AND_FEET, .oam = &gOamData_AffineDouble_ObjNormal_32x32, - .anims = sAnims_HandOrFoot, + .anims = sAnims_HandsAndFeet, .images = NULL, .affineAnims = sAffineAnims_FocusPunchFist, .callback = AnimFocusPunchFist, }; -static void unc_080B08A0(struct Sprite *sprite) +static void AnimUnusedHumanoidFoot(struct Sprite *sprite) { SetAnimSpriteInitialXOffset(sprite, gBattleAnimArgs[0]); sprite->y += gBattleAnimArgs[1]; @@ -429,7 +422,7 @@ static void AnimSlideHandOrFootToTarget(struct Sprite *sprite) } StartSpriteAnim(sprite, gBattleAnimArgs[6]); gBattleAnimArgs[6] = 0; - AnimSnoreZ(sprite); + AnimTravelDiagonally(sprite); } static void AnimJumpKick(struct Sprite *sprite) @@ -475,8 +468,8 @@ static void AnimFistOrFootRandomPos(struct Sprite *sprite) if (gBattleAnimArgs[2] < 0) gBattleAnimArgs[2] = Random() % 5; StartSpriteAnim(sprite, gBattleAnimArgs[2]); - sprite->x = GetBattlerSpriteCoord(battler, 2); - sprite->y = GetBattlerSpriteCoord(battler, 3); + sprite->x = GetBattlerSpriteCoord(battler, BATTLER_COORD_X_2); + sprite->y = GetBattlerSpriteCoord(battler, BATTLER_COORD_Y_PIC_OFFSET); xMod = GetBattlerSpriteCoordAttr(battler, BATTLER_COORD_ATTR_WIDTH) / 2; yMod = GetBattlerSpriteCoordAttr(battler, BATTLER_COORD_ATTR_HEIGHT) / 4; x = Random() % xMod; @@ -491,19 +484,19 @@ static void AnimFistOrFootRandomPos(struct Sprite *sprite) sprite->y += y; sprite->data[0] = gBattleAnimArgs[1]; sprite->data[7] = CreateSprite(&gBasicHitSplatSpriteTemplate, sprite->x, sprite->y, sprite->subpriority + 1); - if (sprite->data[7] != 64) + if (sprite->data[7] != MAX_SPRITES) { StartSpriteAffineAnim(&gSprites[sprite->data[7]], 0); gSprites[sprite->data[7]].callback = SpriteCallbackDummy; } - sprite->callback = sub_80B0B2C; + sprite->callback = AnimFistOrFootRandomPos_Step; } -static void sub_80B0B2C(struct Sprite *sprite) +static void AnimFistOrFootRandomPos_Step(struct Sprite *sprite) { if (sprite->data[0] == 0) { - if (sprite->data[7] != 64) + if (sprite->data[7] != MAX_SPRITES) { FreeOamMatrix(gSprites[sprite->data[7]].oam.matrixNum); DestroySprite(&gSprites[sprite->data[7]]); @@ -531,10 +524,10 @@ static void AnimCrossChopHand(struct Sprite *sprite) } sprite->data[4] = sprite->y - 20; sprite->callback = StartAnimLinearTranslation; - StoreSpriteCallbackInData6(sprite, sub_80B0BD8); + StoreSpriteCallbackInData6(sprite, AnimCrossChopHand_Step); } -static void sub_80B0BD8(struct Sprite *sprite) +static void AnimCrossChopHand_Step(struct Sprite *sprite) { if (++sprite->data[5] == 11) { @@ -550,6 +543,7 @@ static void sub_80B0BD8(struct Sprite *sprite) } } +// Rolling Kick / Low Kick static void AnimSlidingKick(struct Sprite *sprite) { if (BATTLE_PARTNER(gBattleAnimAttacker) == gBattleAnimTarget && GetBattlerPosition(gBattleAnimTarget) < B_POSITION_PLAYER_RIGHT) @@ -566,10 +560,10 @@ static void AnimSlidingKick(struct Sprite *sprite) sprite->data[5] = gBattleAnimArgs[5]; sprite->data[6] = gBattleAnimArgs[4]; sprite->data[7] = 0; - sprite->callback = sub_80B0CB4; + sprite->callback = AnimSlidingKick_Step; } -static void sub_80B0CB4(struct Sprite *sprite) +static void AnimSlidingKick_Step(struct Sprite *sprite) { if (!AnimTranslateLinear(sprite)) { @@ -622,8 +616,8 @@ static void AnimStompFootStep(struct Sprite *sprite) if (--sprite->data[0] == -1) { sprite->data[0] = 6; - sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2); - sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); sprite->callback = StartAnimLinearTranslation; StoreSpriteCallbackInData6(sprite, AnimStompFootEnd); } @@ -658,17 +652,18 @@ static void AnimDizzyPunchDuck(struct Sprite *sprite) } } +// The wall that appears when Brick Break is going to shatter the target's defensive wall static void AnimBrickBreakWall(struct Sprite *sprite) { if (gBattleAnimArgs[0] == 0) { - sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0); - sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1); + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y); } else { - sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, 0); - sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, 1); + sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X); + sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y); } sprite->x += gBattleAnimArgs[1]; sprite->y += gBattleAnimArgs[2]; @@ -676,10 +671,10 @@ static void AnimBrickBreakWall(struct Sprite *sprite) sprite->data[1] = gBattleAnimArgs[3]; sprite->data[2] = gBattleAnimArgs[4]; sprite->data[3] = 0; - sprite->callback = sub_80B0EF0; + sprite->callback = AnimBrickBreakWall_Step; } -static void sub_80B0EF0(struct Sprite *sprite) +static void AnimBrickBreakWall_Step(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -709,17 +704,18 @@ static void sub_80B0EF0(struct Sprite *sprite) } } +// Piece of shattered defensive wall flies off. Used by Brick Break when the target has a defensive wall static void AnimBrickBreakWallShard(struct Sprite *sprite) { - if (gBattleAnimArgs[0] == 0) + if (gBattleAnimArgs[0] == ANIM_ATTACKER) { - sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0) + gBattleAnimArgs[2]; - sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1) + gBattleAnimArgs[3]; + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X) + gBattleAnimArgs[2]; + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y) + gBattleAnimArgs[3]; } else { - sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, 0) + gBattleAnimArgs[2]; - sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, 1) + gBattleAnimArgs[3]; + sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X) + gBattleAnimArgs[2]; + sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y) + gBattleAnimArgs[3]; } sprite->oam.tileNum += gBattleAnimArgs[1] * 16; sprite->data[0] = 0; @@ -745,10 +741,10 @@ static void AnimBrickBreakWallShard(struct Sprite *sprite) DestroyAnimSprite(sprite); return; } - sprite->callback = sub_80B1050; + sprite->callback = AnimBrickBreakWallShard_Step; } -static void sub_80B1050(struct Sprite *sprite) +static void AnimBrickBreakWallShard_Step(struct Sprite *sprite) { sprite->x += sprite->data[6]; sprite->y += sprite->data[7]; @@ -760,8 +756,8 @@ static void AnimSuperpowerOrb(struct Sprite *sprite) { if (gBattleAnimArgs[0] == 0) { - sprite->x = GetBattlerSpriteCoord(gBattlerAttacker, 2); - sprite->y = GetBattlerSpriteCoord(gBattlerAttacker, 3); + sprite->x = GetBattlerSpriteCoord(gBattlerAttacker, BATTLER_COORD_X_2); + sprite->y = GetBattlerSpriteCoord(gBattlerAttacker, BATTLER_COORD_Y_PIC_OFFSET); sprite->oam.priority = GetBattlerSpriteBGPriority(gBattleAnimAttacker); sprite->data[7] = gBattleAnimTarget; } @@ -773,25 +769,26 @@ static void AnimSuperpowerOrb(struct Sprite *sprite) sprite->data[0] = 0; sprite->data[1] = 12; sprite->data[2] = 8; - sprite->callback = sub_80B111C; + sprite->callback = AnimSuperpowerOrb_Step; } -static void sub_80B111C(struct Sprite *sprite) +static void AnimSuperpowerOrb_Step(struct Sprite *sprite) { if (++sprite->data[0] == 180) { SetGpuReg(REG_OFFSET_BLDCNT, 0); sprite->data[0] = 16; sprite->data[1] = sprite->x; - sprite->data[2] = GetBattlerSpriteCoord(sprite->data[7], 2); + sprite->data[2] = GetBattlerSpriteCoord(sprite->data[7], BATTLER_COORD_X_2); sprite->data[3] = sprite->y; - sprite->data[4] = GetBattlerSpriteCoord(sprite->data[7], 3); + sprite->data[4] = GetBattlerSpriteCoord(sprite->data[7], BATTLER_COORD_Y_PIC_OFFSET); InitAnimLinearTranslation(sprite); StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix); - sprite->callback = RunLinearTranslation_ThenceSetCBtoStoredInData6; + sprite->callback = AnimTranslateLinear_WithFollowup; } } +// Floating rock that flies off to hit the target. Used by Superpower static void AnimSuperpowerRock(struct Sprite *sprite) { sprite->x = gBattleAnimArgs[0]; @@ -800,10 +797,10 @@ static void AnimSuperpowerRock(struct Sprite *sprite) StorePointerInVars(&sprite->data[4], &sprite->data[5], (void *)(sprite->y << 8)); sprite->data[6] = gBattleAnimArgs[1]; sprite->oam.tileNum += gBattleAnimArgs[2] * 4; - sprite->callback = sub_80B11E4; + sprite->callback = AnimSuperpowerRock_Step1; } -static void sub_80B11E4(struct Sprite *sprite) +static void AnimSuperpowerRock_Step1(struct Sprite *sprite) { void *var0; @@ -821,20 +818,20 @@ static void sub_80B11E4(struct Sprite *sprite) } else { - s16 pos0 = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); - s16 pos1 = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); - s16 pos2 = GetBattlerSpriteCoord(gBattleAnimTarget, 2); - s16 pos3 = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + s16 pos0 = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); + s16 pos1 = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); + s16 pos2 = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); + s16 pos3 = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); sprite->data[0] = pos2 - pos0; sprite->data[1] = pos3 - pos1; sprite->data[2] = sprite->x << 4; sprite->data[3] = sprite->y << 4; - sprite->callback = sub_80B12A4; + sprite->callback = AnimSuperpowerRock_Step2; } } -static void sub_80B12A4(struct Sprite *sprite) +static void AnimSuperpowerRock_Step2(struct Sprite *sprite) { u16 edgeX; @@ -851,10 +848,10 @@ static void AnimSuperpowerFireball(struct Sprite *sprite) { u8 battler; - if (gBattleAnimArgs[0] == 0) + if (gBattleAnimArgs[0] == ANIM_ATTACKER) { - sprite->x = GetBattlerSpriteCoord(gBattlerAttacker, 2); - sprite->y = GetBattlerSpriteCoord(gBattlerAttacker, 3); + sprite->x = GetBattlerSpriteCoord(gBattlerAttacker, BATTLER_COORD_X_2); + sprite->y = GetBattlerSpriteCoord(gBattlerAttacker, BATTLER_COORD_Y_PIC_OFFSET); battler = gBattleAnimTarget; sprite->oam.priority = GetBattlerSpriteBGPriority(gBattleAnimAttacker); } @@ -869,15 +866,15 @@ static void AnimSuperpowerFireball(struct Sprite *sprite) sprite->oam.matrixNum |= (ST_OAM_HFLIP | ST_OAM_VFLIP); sprite->data[0] = 16; sprite->data[1] = sprite->x; - sprite->data[2] = GetBattlerSpriteCoord(battler, 2); + sprite->data[2] = GetBattlerSpriteCoord(battler, BATTLER_COORD_X_2); sprite->data[3] = sprite->y; - sprite->data[4] = GetBattlerSpriteCoord(battler, 3); + sprite->data[4] = GetBattlerSpriteCoord(battler, BATTLER_COORD_Y_PIC_OFFSET); InitAnimLinearTranslation(sprite); StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); - sprite->callback = RunLinearTranslation_ThenceSetCBtoStoredInData6; + sprite->callback = AnimTranslateLinear_WithFollowup; } -static void sub_80B13D4(struct Sprite *sprite) +static void AnimArmThrustHit_Step(struct Sprite *sprite) { if (sprite->data[0] == sprite->data[4]) DestroyAnimSprite(sprite); @@ -888,8 +885,8 @@ static void AnimArmThrustHit(struct Sprite *sprite) { u8 turn; - sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, 2); - sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); + sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); sprite->data[1] = gBattleAnimArgs[3]; sprite->data[2] = gBattleAnimArgs[0]; sprite->data[3] = gBattleAnimArgs[1]; @@ -905,12 +902,12 @@ static void AnimArmThrustHit(struct Sprite *sprite) StartSpriteAnim(sprite, sprite->data[1]); sprite->x2 = sprite->data[2]; sprite->y2 = sprite->data[3]; - sprite->callback = sub_80B13D4; + sprite->callback = AnimArmThrustHit_Step; } static void AnimRevengeScratch(struct Sprite *sprite) { - if (gBattleAnimArgs[2] == 0) + if (gBattleAnimArgs[2] == ANIM_ATTACKER) InitSpritePosToAnimAttacker(sprite, 0); else InitSpritePosToAnimTarget(sprite, FALSE); @@ -922,6 +919,7 @@ static void AnimRevengeScratch(struct Sprite *sprite) StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } +// Fist shrinks toward target and shakes static void AnimFocusPunchFist(struct Sprite *sprite) { if (sprite->affineAnimEnded) diff --git a/src/fire.c b/src/battle_anim_fire.c similarity index 71% rename from src/fire.c rename to src/battle_anim_fire.c index a8f0c8503..a3dd62e22 100644 --- a/src/fire.c +++ b/src/battle_anim_fire.c @@ -10,8 +10,8 @@ static void AnimFireSpiralInward(struct Sprite *sprite); static void AnimFireSpread(struct Sprite *sprite); static void AnimLargeFlame(struct Sprite *sprite); static void AnimFirePlume(struct Sprite *sprite); -static void sub_80ACAA8(struct Sprite *sprite); -static void sub_80ACBB0(struct Sprite *sprite); +static void AnimUnusedSmallEmber(struct Sprite *sprite); +static void AnimSunlight(struct Sprite *sprite); static void AnimEmberFlare(struct Sprite *sprite); static void AnimBurnFlame(struct Sprite *sprite); static void AnimFireRing(struct Sprite *sprite); @@ -21,22 +21,22 @@ static void AnimEruptionLaunchRock(struct Sprite *sprite); static void AnimEruptionFallingRock(struct Sprite *sprite); static void AnimWillOWispOrb(struct Sprite *sprite); static void AnimWillOWispFire(struct Sprite *sprite); -static void sub_80ACA6C(struct Sprite *sprite); -static void sub_80ACB1C(struct Sprite *sprite); +static void AnimLargeFlame_Step(struct Sprite *sprite); +static void AnimUnusedSmallEmber_Step(struct Sprite *sprite); static void AnimFireRing_Step1(struct Sprite *sprite); static void AnimFireRing_Step2(struct Sprite *sprite); static void AnimFireRing_Step3(struct Sprite *sprite); static void UpdateFireRingCircleOffset(struct Sprite *sprite); -static void sub_80ACE28(struct Sprite *sprite); -static void sub_80ACE50(struct Sprite *sprite); +static void AnimFireSpiralOutward_Step1(struct Sprite *sprite); +static void AnimFireSpiralOutward_Step2(struct Sprite *sprite); static void AnimTask_EruptionLaunchRocks_Step(u8 taskId); -static void sub_80AD1F8(u8 spriteId, u8 taskId, u8 a3); -static u16 sub_80AD374(u8 spriteId); -static void sub_80AD3C8(struct Sprite *sprite, s16 x, s16 y); -static void sub_80AD3E4(struct Sprite *sprite); -static void sub_80AD4A8(struct Sprite *sprite); -static void sub_80AD690(struct Sprite *sprite); -static void sub_80AD870(u8 taskId); +static void CreateEruptionLaunchRocks(u8 spriteId, u8 taskId, u8 a3); +static u16 GetEruptionLaunchRockInitialYPos(u8 spriteId); +static void InitEruptionLaunchRockCoordData(struct Sprite *sprite, s16 x, s16 y); +static void UpdateEruptionLaunchRockPos(struct Sprite *sprite); +static void AnimEruptionFallingRock_Step(struct Sprite *sprite); +static void AnimWillOWispOrb_Step(struct Sprite *sprite); +static void AnimTask_MoveHeatWaveTargets_Step(u8 taskId); static const union AnimCmd sAnim_FireSpiralSpread_0[] = { @@ -160,7 +160,7 @@ const struct SpriteTemplate gFirePlumeSpriteTemplate = .callback = AnimFirePlume, }; -const struct SpriteTemplate gUnknown_83E5CB8 = +static const struct SpriteTemplate sUnusedEmberFirePlumeSpriteTemplate = { .tileTag = ANIM_TAG_SMALL_EMBER, .paletteTag = ANIM_TAG_SMALL_EMBER, @@ -171,7 +171,7 @@ const struct SpriteTemplate gUnknown_83E5CB8 = .callback = AnimFirePlume, }; -static const union AnimCmd gUnknown_83E5CD0[] = +static const union AnimCmd sAnim_UnusedSmallEmber[] = { ANIMCMD_FRAME(16, 6), ANIMCMD_FRAME(32, 6), @@ -179,20 +179,20 @@ static const union AnimCmd gUnknown_83E5CD0[] = ANIMCMD_JUMP(0), }; -static const union AnimCmd *const gUnknown_83E5CE0[] = +static const union AnimCmd *const sAnims_UnusedSmallEmber[] = { - gUnknown_83E5CD0, + sAnim_UnusedSmallEmber, }; -const struct SpriteTemplate gUnknown_83E5CE4 = +static const struct SpriteTemplate sUnusedSmallEmberSpriteTemplate = { .tileTag = ANIM_TAG_SMALL_EMBER, .paletteTag = ANIM_TAG_SMALL_EMBER, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_83E5CE0, + .anims = sAnims_UnusedSmallEmber, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80ACAA8, + .callback = AnimUnusedSmallEmber, }; static const union AffineAnimCmd sAffineAnim_SunlightRay[] = @@ -215,7 +215,7 @@ const struct SpriteTemplate gSunlightRaySpriteTemplate = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = sAffineAnims_SunlightRay, - .callback = sub_80ACBB0, + .callback = AnimSunlight, }; static const union AnimCmd sAnim_BasicFire[] = @@ -289,22 +289,22 @@ static const union AnimCmd *const sAnims_FireBlastCross[] = sAnim_FireBlastCross, }; -static const union AffineAnimCmd gUnknown_83E5DBC[] = +static const union AffineAnimCmd sAffineAnim_Unused_0[] = { AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 1), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gUnknown_83E5DCC[] = +static const union AffineAnimCmd sAffineAnim_Unused_1[] = { AFFINEANIMCMD_FRAME(0xA0, 0xA0, 0, 0), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd *const gUnknown_83E5DDC[] = +static const union AffineAnimCmd *const sAffineAnims_Unused[] = { - gUnknown_83E5DBC, - gUnknown_83E5DCC, + sAffineAnim_Unused_0, + sAffineAnim_Unused_1, }; const struct SpriteTemplate gFireBlastCrossSpriteTemplate = @@ -351,7 +351,7 @@ static const struct SpriteTemplate gEruptionLaunchRockSpriteTemplate = .callback = AnimEruptionLaunchRock, }; -static const s16 sEruptionLaunchRockCoords[][2] = +static const s16 sEruptionLaunchRockSpeeds[][2] = { {-2, -5}, {-1, -1}, @@ -457,6 +457,7 @@ static const s8 sShakeDirsPattern1[16] = -1, 0, 1, 0, -1, 1, 0, -1, 0, 1, 0, -1, 0, 1, 0, 1, }; +// For the first stage of Fire Punch static void AnimFireSpiralInward(struct Sprite *sprite) { sprite->data[0] = gBattleAnimArgs[0]; @@ -465,10 +466,11 @@ static void AnimFireSpiralInward(struct Sprite *sprite) sprite->data[3] = 0x1E; sprite->data[4] = 0xFE00; StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); - sprite->callback = TranslateSpriteInGrowingCircleOverDuration; + sprite->callback = TranslateSpriteInGrowingCircle; sprite->callback(sprite); } +// For the impact spread of fire sprites for moves like Blaze Kick or Fire Punch static void AnimFireSpread(struct Sprite *sprite) { SetAnimSpriteInitialXOffset(sprite, gBattleAnimArgs[0]); @@ -498,7 +500,7 @@ static void AnimFirePlume(struct Sprite *sprite) sprite->data[1] = gBattleAnimArgs[2]; sprite->data[4] = gBattleAnimArgs[3]; sprite->data[3] = gBattleAnimArgs[5]; - sprite->callback = sub_80ACA6C; + sprite->callback = AnimLargeFlame_Step; } static void AnimLargeFlame(struct Sprite *sprite) @@ -518,10 +520,10 @@ static void AnimLargeFlame(struct Sprite *sprite) sprite->data[1] = gBattleAnimArgs[2]; sprite->data[4] = gBattleAnimArgs[3]; sprite->data[3] = gBattleAnimArgs[5]; - sprite->callback = sub_80ACA6C; + sprite->callback = AnimLargeFlame_Step; } -static void sub_80ACA6C(struct Sprite *sprite) +static void AnimLargeFlame_Step(struct Sprite *sprite) { if (++sprite->data[0] < sprite->data[4]) { @@ -532,7 +534,7 @@ static void sub_80ACA6C(struct Sprite *sprite) DestroySpriteAndMatrix(sprite); } -static void sub_80ACAA8(struct Sprite *sprite) +static void AnimUnusedSmallEmber(struct Sprite *sprite) { SetSpriteCoordsToAnimAttackerCoords(sprite); if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) @@ -551,10 +553,10 @@ static void sub_80ACAA8(struct Sprite *sprite) sprite->data[3] = gBattleAnimArgs[5]; sprite->data[4] = gBattleAnimArgs[6]; sprite->data[5] = 0; - sprite->callback = sub_80ACB1C; + sprite->callback = AnimUnusedSmallEmber_Step; } -static void sub_80ACB1C(struct Sprite *sprite) +static void AnimUnusedSmallEmber_Step(struct Sprite *sprite) { if (sprite->data[3]) { @@ -576,8 +578,8 @@ static void sub_80ACB1C(struct Sprite *sprite) } } -//sunlight -static void sub_80ACBB0(struct Sprite *sprite) +// Sunlight from Sunny Day / sunny weather +static void AnimSunlight(struct Sprite *sprite) { sprite->x = 0; sprite->y = 0; @@ -588,8 +590,6 @@ static void sub_80ACBB0(struct Sprite *sprite) StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } -//fire 2 - // Animates the secondary effect of MOVE_EMBER, where the flames grow and slide // horizontally a bit. // arg 0: initial x pixel offset @@ -605,7 +605,7 @@ static void AnimEmberFlare(struct Sprite *sprite) && (gBattleAnimAttacker == GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT) || gBattleAnimAttacker == GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT))) gBattleAnimArgs[2] = -gBattleAnimArgs[2]; - sprite->callback = AnimSnoreZ; + sprite->callback = AnimTravelDiagonally; sprite->callback(sprite); } @@ -613,7 +613,7 @@ static void AnimBurnFlame(struct Sprite *sprite) { gBattleAnimArgs[0] = -gBattleAnimArgs[0]; gBattleAnimArgs[2] = -gBattleAnimArgs[2]; - sprite->callback = AnimSnoreZ; + sprite->callback = AnimTravelDiagonally; } // Animates the a fire sprite in the first-half of the MOVE_FIRE_BLAST @@ -626,7 +626,7 @@ static void AnimBurnFlame(struct Sprite *sprite) //void AnimFireRing(struct Sprite *sprite) static void AnimFireRing(struct Sprite *sprite) { - InitSpritePosToAnimAttacker(sprite, 1); + InitSpritePosToAnimAttacker(sprite, TRUE); sprite->data[7] = gBattleAnimArgs[2]; sprite->data[0] = 0; sprite->callback = AnimFireRing_Step1; @@ -640,9 +640,9 @@ static void AnimFireRing_Step1(struct Sprite *sprite) { sprite->data[0] = 0x19; sprite->data[1] = sprite->x; - sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2); + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); sprite->data[3] = sprite->y; - sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); InitAnimLinearTranslation(sprite); sprite->callback = AnimFireRing_Step2; } @@ -654,8 +654,8 @@ static void AnimFireRing_Step2(struct Sprite *sprite) { sprite->data[0] = 0; - sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, 2); - sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); + sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); sprite->x2 = sprite->y2 = 0; sprite->callback = AnimFireRing_Step3; sprite->callback(sprite); @@ -706,19 +706,19 @@ static void AnimFireSpiralOutward(struct Sprite *sprite) sprite->data[0] = gBattleAnimArgs[3]; sprite->invisible = TRUE; sprite->callback = WaitAnimForDuration; - StoreSpriteCallbackInData6(sprite, sub_80ACE28); + StoreSpriteCallbackInData6(sprite, AnimFireSpiralOutward_Step1); } -static void sub_80ACE28(struct Sprite *sprite) +static void AnimFireSpiralOutward_Step1(struct Sprite *sprite) { sprite->invisible = FALSE; sprite->data[0] = sprite->data[1]; sprite->data[1] = 0; - sprite->callback = sub_80ACE50; + sprite->callback = AnimFireSpiralOutward_Step2; sprite->callback(sprite); } -static void sub_80ACE50(struct Sprite *sprite) +static void AnimFireSpiralOutward_Step2(struct Sprite *sprite) { sprite->x2 = Sin(sprite->data[1], sprite->data[2] >> 8); sprite->y2 = Cos(sprite->data[1], sprite->data[2] >> 8); @@ -728,258 +728,337 @@ static void sub_80ACE50(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void AnimTask_EruptionLaunchRocks(u8 taskId) // initialize animation task for Move_ERUPTION? +#define IDX_ACTIVE_SPRITES 6 // Used by the sprite callback to modify the number of active sprites + +#define tState data[0] +#define tTimer1 data[1] +#define tTimer2 data[2] +#define tTimer3 data[3] +#define tAttackerY data[4] +#define tAttackerSide data[5] +#define tActiveSprites data[IDX_ACTIVE_SPRITES] +// data[8]-data[15] used by BattleAnimHelper_SetSpriteSquashParams / BattleAnimHelper_RunSpriteSquash +#define tAttackerSpriteId data[15] + +#define sSpeedDelay data[0] +#define sLaunchStage data[1] +#define sX data[2] +#define sY data[3] +#define sSpeedX data[4] +#define sSpeedY data[5] +#define sTaskId data[6] +#define sActiveSpritesIdx data[7] + +// Animates first stage of Eruption where the attacker squishes and launches rocks away from themself +void AnimTask_EruptionLaunchRocks(u8 taskId) { struct Task *task = &gTasks[taskId]; - task->data[15] = GetAnimBattlerSpriteId(ANIM_ATTACKER); - task->data[0] = 0; - task->data[1] = 0; - task->data[2] = 0; - task->data[3] = 0; - task->data[4] = gSprites[task->data[15]].y; - task->data[5] = GetBattlerSide(gBattleAnimAttacker); - task->data[6] = 0; + task->tAttackerSpriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER); + task->tState = 0; + task->tTimer1 = 0; + task->tTimer2 = 0; + task->tTimer3 = 0; + task->tAttackerY = gSprites[task->tAttackerSpriteId].y; + task->tAttackerSide = GetBattlerSide(gBattleAnimAttacker); + task->tActiveSprites = 0; PrepareBattlerSpriteForRotScale(task->data[15], ST_OAM_OBJ_NORMAL); task->func = AnimTask_EruptionLaunchRocks_Step; } -static void AnimTask_EruptionLaunchRocks_Step(u8 taskId) // animate Move_ERUPTION? +static void AnimTask_EruptionLaunchRocks_Step(u8 taskId) { struct Task *task = &gTasks[taskId]; - switch (task->data[0]) + switch (task->tState) { case 0: - BattleAnimHelper_SetSpriteSquashParams(task, task->data[15], 0x100, 0x100, 0xE0, 0x200, 0x20); - ++task->data[0]; - // fall through + BattleAnimHelper_SetSpriteSquashParams(task, task->tAttackerSpriteId, 0x100, 0x100, 0xE0, 0x200, 32); + task->tState++; case 1: - if (++task->data[1] > 1) + if (++task->tTimer1 > 1) { - task->data[1] = 0; - if (++task->data[2] & 0x1) - gSprites[task->data[15]].x2 = 3; + task->tTimer1 = 0; + + if (++task->tTimer2 & 1) + gSprites[task->tAttackerSpriteId].x2 = 3; else - gSprites[task->data[15]].x2 = -3; + gSprites[task->tAttackerSpriteId].x2 = -3; } - if (task->data[5]) + + if (task->tAttackerSide != B_SIDE_PLAYER) { - if (++task->data[3] > 4) + if (++task->tTimer3 > 4) { - task->data[3] = 0; - ++gSprites[task->data[15]].y; + task->tTimer3 = 0; + gSprites[task->tAttackerSpriteId].y++; } } + if(!BattleAnimHelper_RunSpriteSquash(task)) { - SetBattlerSpriteYOffsetFromYScale(task->data[15]); - gSprites[task->data[15]].x2 = 0; - task->data[1] = 0; - task->data[2] = 0; - task->data[3] = 0; - ++task->data[0]; + SetBattlerSpriteYOffsetFromYScale(task->tAttackerSpriteId); + gSprites[task->tAttackerSpriteId].x2 = 0; + + task->tTimer1 = 0; + task->tTimer2 = 0; + task->tTimer3 = 0; + task->tState++; } break; case 2: - if (++task->data[1] > 4) + if (++task->tTimer1 > 4) { - if (task->data[5]) - BattleAnimHelper_SetSpriteSquashParams(task, task->data[15], 0xE0, 0x200, 0x180, 0xF0, 0x6); + if (task->tAttackerSide != B_SIDE_PLAYER) + BattleAnimHelper_SetSpriteSquashParams(task, task->tAttackerSpriteId, 0xE0, 0x200, 0x180, 0xF0, 6); else - BattleAnimHelper_SetSpriteSquashParams(task, task->data[15], 0xE0, 0x200, 0x180, 0xC0, 0x6); - task->data[1] = 0; - ++task->data[0]; + BattleAnimHelper_SetSpriteSquashParams(task, task->tAttackerSpriteId, 0xE0, 0x200, 0x180, 0xC0, 6); + + task->tTimer1 = 0; + task->tState++; } break; case 3: if (!BattleAnimHelper_RunSpriteSquash(task)) { - sub_80AD1F8(task->data[15], taskId, 6); - ++task->data[0]; + CreateEruptionLaunchRocks(task->tAttackerSpriteId, taskId, IDX_ACTIVE_SPRITES); + task->tState++; } break; case 4: - if (++task->data[1] > 1) + if (++task->tTimer1 > 1) { - task->data[1] = 0; - if (++task->data[2] & 1) - gSprites[task->data[15]].y2 += 3; + task->tTimer1 = 0; + + if (++task->tTimer2 & 1) + gSprites[task->tAttackerSpriteId].y2 += 3; else - gSprites[task->data[15]].y2 -= 3; + gSprites[task->tAttackerSpriteId].y2 -= 3; } - if (++task->data[3] > 0x18) + + if (++task->tTimer3 > 24) { - if (task->data[5]) - BattleAnimHelper_SetSpriteSquashParams(task, task->data[15], 0x180, 0xF0, 0x100, 0x100, 0x8); + if (task->tAttackerSide != B_SIDE_PLAYER) + BattleAnimHelper_SetSpriteSquashParams(task, task->tAttackerSpriteId, 0x180, 0xF0, 0x100, 0x100, 8); else - BattleAnimHelper_SetSpriteSquashParams(task, task->data[15], 0x180, 0xC0, 0x100, 0x100, 0x8); - if (task->data[2] & 1) - gSprites[task->data[15]].y2 -= 3; - task->data[1] = 0; - task->data[2] = 0; - task->data[3] = 0; - ++task->data[0]; + BattleAnimHelper_SetSpriteSquashParams(task, task->tAttackerSpriteId, 0x180, 0xC0, 0x100, 0x100, 8); + + if (task->tTimer2 & 1) + gSprites[task->tAttackerSpriteId].y2 -= 3; + + task->tTimer1 = 0; + task->tTimer2 = 0; + task->tTimer3 = 0; + task->tState++; } break; case 5: - if (task->data[5]) - --gSprites[task->data[15]].y; + if (task->tAttackerSide != B_SIDE_PLAYER) + gSprites[task->tAttackerSpriteId].y--; + if (!BattleAnimHelper_RunSpriteSquash(task)) { - gSprites[task->data[15]].y = task->data[4]; - ResetSpriteRotScale(task->data[15]); - - task->data[2] = 0; - ++task->data[0]; + gSprites[task->tAttackerSpriteId].y = task->tAttackerY; + ResetSpriteRotScale(task->tAttackerSpriteId); + task->tTimer2 = 0; + task->tState++; } break; case 6: - if (!task->data[6]) + if (task->tActiveSprites == 0) DestroyAnimVisualTask(taskId); break; + default: + break; } } -static void sub_80AD1F8(u8 spriteId, u8 taskId, u8 a3) +static void CreateEruptionLaunchRocks(u8 spriteId, u8 taskId, u8 activeSpritesIdx) { u16 i, j; s8 sign; - u16 y = sub_80AD374(spriteId); + + u16 y = GetEruptionLaunchRockInitialYPos(spriteId); u16 x = gSprites[spriteId].x; - if(GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) + if(!GetBattlerSide(gBattleAnimAttacker)) { - x -= 0xC; + x -= 12; sign = 1; } else { - x += 0x10; + x += 16; sign = -1; } - for (i = 0, j = 0; i <= 6; ++i) + + for (i = 0, j = 0; i <= 6; i++) { u8 spriteId = CreateSprite(&gEruptionLaunchRockSpriteTemplate, x, y, 2); - if (spriteId != 0x40) + if (spriteId != MAX_SPRITES) { gSprites[spriteId].oam.tileNum += j * 4 + 0x40; + if (++j >= 5) j = 0; - sub_80AD3C8(&gSprites[spriteId], sEruptionLaunchRockCoords[i][0] * sign, sEruptionLaunchRockCoords[i][1]); - gSprites[spriteId].data[6] = taskId; - gSprites[spriteId].data[7] = a3; - ++gTasks[taskId].data[a3]; + + InitEruptionLaunchRockCoordData(&gSprites[spriteId], sEruptionLaunchRockSpeeds[i][0] * sign, sEruptionLaunchRockSpeeds[i][1]); + gSprites[spriteId].sTaskId = taskId; + gSprites[spriteId].sActiveSpritesIdx = activeSpritesIdx; + + gTasks[taskId].data[activeSpritesIdx]++; } } } static void AnimEruptionLaunchRock(struct Sprite *sprite) { - sub_80AD3E4(sprite); + UpdateEruptionLaunchRockPos(sprite); + if (sprite->invisible) { - --gTasks[sprite->data[6]].data[sprite->data[7]]; + gTasks[sprite->sTaskId].data[sprite->sActiveSpritesIdx]--; DestroySprite(sprite); } } -static u16 sub_80AD374(u8 spriteId) +static u16 GetEruptionLaunchRockInitialYPos(u8 spriteId) { - u16 var1 = gSprites[spriteId].y + gSprites[spriteId].y2 + gSprites[spriteId].centerToCornerVecY; + s16 y = gSprites[spriteId].y + gSprites[spriteId].y2 + gSprites[spriteId].centerToCornerVecY; if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) - var1 = ((var1 << 16) + 0x4A0000) >> 16; + y += 74; else - var1 = ((var1 << 16) + 0x2C0000) >> 16; - return var1; + y += 44; + + return y; } -static void sub_80AD3C8(struct Sprite *sprite, s16 x, s16 y) +static void InitEruptionLaunchRockCoordData(struct Sprite *sprite, s16 speedX, s16 speedY) { - sprite->data[0] = 0; - sprite->data[1] = 0; - sprite->data[2] = (u16)sprite->x * 8; - sprite->data[3] = (u16)sprite->y * 8; - sprite->data[4] = x * 8; - sprite->data[5] = y * 8; + sprite->sSpeedDelay = 0; + sprite->sLaunchStage = 0; + sprite->sX = (u16)sprite->x * 8; + sprite->sY = (u16)sprite->y * 8; + sprite->sSpeedX = speedX * 8; + sprite->sSpeedY = speedY * 8; } -static void sub_80AD3E4(struct Sprite *sprite) +static void UpdateEruptionLaunchRockPos(struct Sprite *sprite) { - s32 var1; - - if (++sprite->data[0] > 2) + int extraLaunchSpeed; + if (++sprite->sSpeedDelay > 2) { - sprite->data[0] = 0; - ++sprite->data[1]; - var1 = (u16)sprite->data[1] * (u16)sprite->data[1]; - sprite->data[3] += var1; + sprite->sSpeedDelay = 0; + ++sprite->sLaunchStage; + extraLaunchSpeed = (u16)sprite->sLaunchStage * (u16)sprite->sLaunchStage; + sprite->sY += extraLaunchSpeed; } - sprite->data[2] += sprite->data[4]; - sprite->x = sprite->data[2] >> 3; - sprite->data[3] += sprite->data[5]; - sprite->y = sprite->data[3] >> 3; - if (sprite->x < -8 || sprite->x > 0xf8 || sprite->y < -8 || sprite->y > 120) + + sprite->sX += sprite->sSpeedX; + sprite->x = sprite->sX >> 3; + sprite->sY += sprite->sSpeedY; + sprite->y = sprite->sY >> 3; + + if (sprite->x < -8 || sprite->x > DISPLAY_WIDTH + 8 || sprite->y < -8 || sprite->y > 120) sprite->invisible = TRUE; } +#undef IDX_ACTIVE_SPRITES +#undef tState +#undef tTimer1 +#undef tTimer2 +#undef tTimer3 +#undef tAttackerY +#undef tAttackerSide +#undef tActiveSprites +#undef tAttackerSpriteId +#undef sSpeedDelay +#undef sLaunchStage +#undef sX +#undef sY +#undef sSpeedX +#undef sSpeedY +#undef sTaskId +#undef sActiveSpritesIdx + +#define sState data[0] +#define sBounceTimer data[1] +#define sBounceDir data[2] +#define sEndTimer data[3] +#define sFallDelay data[6] +#define sTargetY data[7] + static void AnimEruptionFallingRock(struct Sprite *sprite) { sprite->x = gBattleAnimArgs[0]; sprite->y = gBattleAnimArgs[1]; - sprite->data[0] = 0; - sprite->data[1] = 0; - sprite->data[2] = 0; - sprite->data[6] = gBattleAnimArgs[2]; - sprite->data[7] = gBattleAnimArgs[3]; + + sprite->sState = 0; + sprite->sBounceTimer = 0; + sprite->sBounceDir = 0; + sprite->sFallDelay = gBattleAnimArgs[2]; + sprite->sTargetY = gBattleAnimArgs[3]; + sprite->oam.tileNum += gBattleAnimArgs[4] * 16; - sprite->callback = sub_80AD4A8; + sprite->callback = AnimEruptionFallingRock_Step; } -static void sub_80AD4A8(struct Sprite *sprite) +static void AnimEruptionFallingRock_Step(struct Sprite *sprite) { - switch (sprite->data[0]) + switch (sprite->sState) { case 0: - if (sprite->data[6] != 0) + // Wait to begin falling + if (sprite->sFallDelay != 0) { - --sprite->data[6]; + sprite->sFallDelay--; return; } - ++sprite->data[0]; + + sprite->sState++; // fall through case 1: + // Rock is falling sprite->y += 8; - if (sprite->y >= sprite->data[7]) + if (sprite->y >= sprite->sTargetY) { - sprite->y = sprite->data[7]; - ++sprite->data[0]; + sprite->y = sprite->sTargetY; + sprite->sState++; } break; case 2: - if (++sprite->data[1] > 1) + // Bounce up and down on landing spot + if (++sprite->sBounceTimer > 1) { - sprite->data[1] = 0; - if ((++sprite->data[2] & 1) != 0) + sprite->sBounceTimer = 0; + if ((++sprite->sBounceDir & 1) != 0) sprite->y2 = -3; else sprite->y2 = 3; } - if (++sprite->data[3] > 16) + + if (++sprite->sEndTimer > 16) DestroyAnimSprite(sprite); break; } } +#undef sState +#undef sBounceTimer +#undef sBounceDir +#undef sEndTimer +#undef sFallDelay +#undef sTargetY + //wisp orb static void AnimWillOWispOrb(struct Sprite *sprite) { switch (sprite->data[0]) { case 0: - InitSpritePosToAnimAttacker(sprite, 0); + InitSpritePosToAnimAttacker(sprite, FALSE); StartSpriteAnim(sprite, gBattleAnimArgs[2]); sprite->data[7] = gBattleAnimArgs[2]; if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) @@ -1013,17 +1092,17 @@ static void AnimWillOWispOrb(struct Sprite *sprite) sprite->x2 = sprite->y2 = 0; sprite->data[0] = 256; sprite->data[1] = sprite->x; - sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2); + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); sprite->data[3] = sprite->y; - sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3); - BattleAnim_InitLinearTranslationWithDuration(sprite); - sprite->callback = sub_80AD690; + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); + InitAnimLinearTranslationWithSpeed(sprite); + sprite->callback = AnimWillOWispOrb_Step; } break; } } -static void sub_80AD690(struct Sprite *sprite) +static void AnimWillOWispOrb_Step(struct Sprite *sprite) { s16 initialData5, newData5; @@ -1034,7 +1113,7 @@ static void sub_80AD690(struct Sprite *sprite) sprite->data[5] = (sprite->data[5] + 4) & 0xFF; newData5 = sprite->data[5]; if ((initialData5 == 0 || initialData5 > 196) && newData5 > 0 && sprite->data[7] == 0) - PlaySE12WithPanning(SE_M_FLAME_WHEEL, gUnknown_2037F24); + PlaySE12WithPanning(SE_M_FLAME_WHEEL, gAnimCustomPanning); } else { @@ -1042,7 +1121,6 @@ static void sub_80AD690(struct Sprite *sprite) } } -//wisp fire static void AnimWillOWispFire(struct Sprite *sprite) { if (!sprite->data[0]) @@ -1083,10 +1161,10 @@ void AnimTask_MoveHeatWaveTargets(u8 taskId) task->data[13] = IsBattlerSpriteVisible(gBattleAnimTarget ^ BIT_FLANK) + 1; task->data[14] = GetAnimBattlerSpriteId(ANIM_TARGET); task->data[15] = GetAnimBattlerSpriteId(ANIM_DEF_PARTNER); - task->func = sub_80AD870; + task->func = AnimTask_MoveHeatWaveTargets_Step; } -static void sub_80AD870(u8 taskId) +static void AnimTask_MoveHeatWaveTargets_Step(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -1153,7 +1231,7 @@ static void sub_80AD870(u8 taskId) } } -// Used to add a color mask to the battle interface / HUD in Heat Wave. +// Used to add a color mask to the battle background. // arg 0: opacity // arg 1: color code void AnimTask_BlendBackground(u8 taskId) @@ -1165,29 +1243,40 @@ void AnimTask_BlendBackground(u8 taskId) DestroyAnimVisualTask(taskId); } +#define tShakeNum data[0] +#define tMaxShakes data[1] +#define tShakeOffset data[2] // Never read, gBattleAnimArgs[1] is used directly instead +#define tVertical data[3] +#define tPatternId data[4] + +// Shakes target horizontally or vertically tMaxShakes times, following a set pattern of alternations void AnimTask_ShakeTargetInPattern(u8 taskId) { - s8 unk; + s8 dir; u8 spriteId; - if (gTasks[taskId].data[0] == 0) + if (gTasks[taskId].tShakeNum == 0) { - gTasks[taskId].data[1] = gBattleAnimArgs[0]; - gTasks[taskId].data[2] = gBattleAnimArgs[1]; - gTasks[taskId].data[3] = gBattleAnimArgs[2]; - gTasks[taskId].data[4] = gBattleAnimArgs[3]; + gTasks[taskId].tMaxShakes = gBattleAnimArgs[0]; + gTasks[taskId].tShakeOffset = gBattleAnimArgs[1]; + gTasks[taskId].tVertical = gBattleAnimArgs[2]; + gTasks[taskId].tPatternId = gBattleAnimArgs[3]; } - ++gTasks[taskId].data[0]; + gTasks[taskId].tShakeNum++; + spriteId = gBattlerSpriteIds[gBattleAnimTarget]; - if (!gTasks[taskId].data[4]) - unk = sShakeDirsPattern0[gTasks[taskId].data[0] % 10]; + + if (gTasks[taskId].tPatternId == 0) + dir = sShakeDirsPattern0[gTasks[taskId].tShakeNum % 10]; else - unk = sShakeDirsPattern1[gTasks[taskId].data[0] % 10]; - if (gTasks[taskId].data[3] == 1) - gSprites[spriteId].y2 = gBattleAnimArgs[1] * unk < 0 ? -(gBattleAnimArgs[1] * unk) : gBattleAnimArgs[1] * unk; + dir = sShakeDirsPattern1[gTasks[taskId].tShakeNum % 10]; + + if (gTasks[taskId].tVertical == TRUE) + gSprites[spriteId].y2 = gBattleAnimArgs[1] * dir < 0 ? -(gBattleAnimArgs[1] * dir) : gBattleAnimArgs[1] * dir; else - gSprites[spriteId].x2 = gBattleAnimArgs[1] * unk; - if (gTasks[taskId].data[0] == gTasks[taskId].data[1]) + gSprites[spriteId].x2 = gBattleAnimArgs[1] * dir; + + if (gTasks[taskId].tShakeNum == gTasks[taskId].tMaxShakes) { gSprites[spriteId].x2 = 0; gSprites[spriteId].y2 = 0; diff --git a/src/flying.c b/src/battle_anim_flying.c similarity index 88% rename from src/flying.c rename to src/battle_anim_flying.c index b6007a679..0bc84e523 100644 --- a/src/flying.c +++ b/src/battle_anim_flying.c @@ -11,29 +11,29 @@ static void AnimAirWaveCrescent(struct Sprite *sprite); static void AnimFlyBallUp(struct Sprite *sprite); static void AnimFlyBallAttack(struct Sprite *sprite); static void AnimFallingFeather(struct Sprite *sprite); -static void sub_80B24C0(struct Sprite *sprite); -static void sub_80B2514(struct Sprite *sprite); +static void AnimUnusedBubbleThrow(struct Sprite *sprite); +static void AnimUnusedFeather(struct Sprite *sprite); static void AnimWhirlwindLine(struct Sprite *sprite); static void AnimBounceBallShrink(struct Sprite *sprite); static void AnimBounceBallLand(struct Sprite *sprite); static void AnimDiveBall(struct Sprite *sprite); static void AnimDiveWaterSplash(struct Sprite *sprite); static void AnimSprayWaterDroplet(struct Sprite *sprite); -static void sub_80B2CE4(struct Sprite *sprite); +static void AnimUnusedFlashingLight(struct Sprite *sprite); static void AnimSkyAttackBird(struct Sprite *sprite); -static void sub_80B190C(struct Sprite *sprite); -static void sub_80B198C(u8 taskId); -static void sub_80B1A9C(struct Sprite *sprite); -static void sub_80B1BF8(struct Sprite *sprite); -static void sub_80B1CC0(struct Sprite *sprite); +static void AnimEllipticalGust_Step(struct Sprite *sprite); +static void AnimTask_AnimateGustTornadoPalette_Step(u8 taskId); +static void AnimGustToTarget_Step(struct Sprite *sprite); +static void AnimFlyBallUp_Step(struct Sprite *sprite); +static void AnimFlyBallAttack_Step(struct Sprite *sprite); static void AnimFallingFeather_Step(struct Sprite *sprite); -static void sub_80B268C(struct Sprite *sprite); -static void sub_80B2820(struct Sprite *sprite); -static void sub_80B2A50(struct Sprite *sprite); -static void sub_80B2AB0(struct Sprite *sprite); -static void sub_80B2C88(struct Sprite *sprite); -static void sub_80B2CF8(struct Sprite *sprite); -static void sub_80B2E20(struct Sprite *sprite); +static void AnimUnusedFeather_Step(struct Sprite *sprite); +static void AnimWhirlwindLine_Step(struct Sprite *sprite); +static void AnimDiveBall_Step1(struct Sprite *sprite); +static void AnimDiveBall_Step2(struct Sprite *sprite); +static void AnimSprayWaterDroplet_Step(struct Sprite *sprite); +static void AnimUnusedFlashingLight_Step(struct Sprite *sprite); +static void AnimSkyAttackBird_Step(struct Sprite *sprite); const struct SpriteTemplate gEllipticalGustSpriteTemplate = { @@ -177,10 +177,9 @@ const struct SpriteTemplate gFallingFeatherSpriteTemplate = .callback = AnimFallingFeather, }; -// not used -static const u16 gUnknown_83E6C18[] = INCBIN_U16("graphics/battle_anims/unk_83E6C18.gbapal"); +static const u16 sUnusedPal[] = INCBIN_U16("graphics/battle_anims/unk_83E6C18.gbapal"); -const struct SpriteTemplate gUnknown_83E6C38 = +static const struct SpriteTemplate sUnusedBubbleThrowSpriteTemplate = { .tileTag = ANIM_TAG_SMALL_BUBBLES, .paletteTag = ANIM_TAG_SMALL_BUBBLES, @@ -188,10 +187,10 @@ const struct SpriteTemplate gUnknown_83E6C38 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B24C0, + .callback = AnimUnusedBubbleThrow, }; -const struct SpriteTemplate gUnknown_83E6C50 = +static const struct SpriteTemplate sUnusedFeatherSpriteTemplate = { .tileTag = ANIM_TAG_WHITE_FEATHER, .paletteTag = ANIM_TAG_WHITE_FEATHER, @@ -199,7 +198,7 @@ const struct SpriteTemplate gUnknown_83E6C50 = .anims = sAnims_FallingFeather, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B2514, + .callback = AnimUnusedFeather, }; static const union AnimCmd sAnim_WhirlwindLines[] = @@ -301,8 +300,7 @@ const struct SpriteTemplate gDiveBallSpriteTemplate = .callback = AnimDiveBall, }; -// not used -static const union AffineAnimCmd gUnknown_83E6D58[] = +static const union AffineAnimCmd sAnim_Unused[] = { AFFINEANIMCMD_FRAME(0x100, 0x0, 0, 0), AFFINEANIMCMD_FRAME(0x0, 0x20, 0, 12), @@ -310,10 +308,9 @@ static const union AffineAnimCmd gUnknown_83E6D58[] = AFFINEANIMCMD_END, }; -// not used -static const union AffineAnimCmd *const gUnknown_83E6D80[] = +static const union AffineAnimCmd *const sAnims_Unused[] = { - gUnknown_83E6D58, + sAnim_Unused, }; const struct SpriteTemplate gDiveWaterSplashSpriteTemplate = @@ -338,7 +335,7 @@ const struct SpriteTemplate gSprayWaterDropletSpriteTemplate = .callback = AnimSprayWaterDroplet, }; -const struct SpriteTemplate gUnknown_83E6DAC = +static const struct SpriteTemplate sUnusedFlashingLightSpriteTemplate = { .tileTag = ANIM_TAG_CIRCLE_OF_LIGHT, .paletteTag = ANIM_TAG_CIRCLE_OF_LIGHT, @@ -346,7 +343,7 @@ const struct SpriteTemplate gUnknown_83E6DAC = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B2CE4, + .callback = AnimUnusedFlashingLight, }; const struct SpriteTemplate gSkyAttackBirdSpriteTemplate = @@ -365,11 +362,11 @@ static void AnimEllipticalGust(struct Sprite *sprite) InitSpritePosToAnimTarget(sprite, FALSE); sprite->y += 20; sprite->data[1] = 191; - sprite->callback = sub_80B190C; + sprite->callback = AnimEllipticalGust_Step; sprite->callback(sprite); } -static void sub_80B190C(struct Sprite *sprite) +static void AnimEllipticalGust_Step(struct Sprite *sprite) { sprite->x2 = Sin(sprite->data[1], 32); sprite->y2 = Cos(sprite->data[1], 8); @@ -379,15 +376,16 @@ static void sub_80B190C(struct Sprite *sprite) DestroyAnimSprite(sprite); } +// Animates the palette on the gust tornado to make it look like its spinning void AnimTask_AnimateGustTornadoPalette(u8 taskId) { gTasks[taskId].data[0] = gBattleAnimArgs[1]; gTasks[taskId].data[1] = gBattleAnimArgs[0]; gTasks[taskId].data[2] = IndexOfSpritePaletteTag(ANIM_TAG_GUST); - gTasks[taskId].func = sub_80B198C; + gTasks[taskId].func = AnimTask_AnimateGustTornadoPalette_Step; } -static void sub_80B198C(u8 taskId) +static void AnimTask_AnimateGustTornadoPalette_Step(u8 taskId) { u8 data2; u16 temp; @@ -423,10 +421,10 @@ static void AnimGustToTarget(struct Sprite *sprite) sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[3]; InitAnimLinearTranslation(sprite); sprite->callback = RunStoredCallbackWhenAffineAnimEnds; - StoreSpriteCallbackInData6(sprite, sub_80B1A9C); + StoreSpriteCallbackInData6(sprite, AnimGustToTarget_Step); } -static void sub_80B1A9C(struct Sprite *sprite) +static void AnimGustToTarget_Step(struct Sprite *sprite) { if (AnimTranslateLinear(sprite)) DestroyAnimSprite(sprite); @@ -472,11 +470,11 @@ static void AnimFlyBallUp(struct Sprite *sprite) InitSpritePosToAnimAttacker(sprite, TRUE); sprite->data[0] = gBattleAnimArgs[2]; sprite->data[1] = gBattleAnimArgs[3]; - sprite->callback = sub_80B1BF8; + sprite->callback = AnimFlyBallUp_Step; gSprites[GetAnimBattlerSpriteId(ANIM_ATTACKER)].invisible = TRUE; } -static void sub_80B1BF8(struct Sprite *sprite) +static void AnimFlyBallUp_Step(struct Sprite *sprite) { if (sprite->data[0] > 0) { @@ -495,7 +493,7 @@ static void AnimFlyBallAttack(struct Sprite *sprite) { if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) { - sprite->x = 272; + sprite->x = DISPLAY_WIDTH + 32; sprite->y = -32; StartSpriteAffineAnim(sprite, 1); } @@ -510,10 +508,10 @@ static void AnimFlyBallAttack(struct Sprite *sprite) sprite->data[3] = sprite->y; sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); InitAnimLinearTranslation(sprite); - sprite->callback = sub_80B1CC0; + sprite->callback = AnimFlyBallAttack_Step; } -static void sub_80B1CC0(struct Sprite *sprite) +static void AnimFlyBallAttack_Step(struct Sprite *sprite) { sprite->data[0] = 1; AnimTranslateLinear(sprite); @@ -524,8 +522,8 @@ static void sub_80B1CC0(struct Sprite *sprite) sprite->data[3] &= 0xFF; } if (sprite->x + sprite->x2 < -32 - || sprite->x + sprite->x2 > 272 - || sprite->y + sprite->y2 > 160) + || sprite->x + sprite->x2 > DISPLAY_WIDTH + 32 + || sprite->y + sprite->y2 > DISPLAY_HEIGHT) { gSprites[GetAnimBattlerSpriteId(ANIM_ATTACKER)].invisible = FALSE; DestroyAnimSprite(sprite); @@ -539,7 +537,7 @@ void DestroyAnimSpriteAfterTimer(struct Sprite *sprite) if (sprite->oam.affineMode & ST_OAM_AFFINE_ON_MASK) { FreeOamMatrix(sprite->oam.matrixNum); - sprite->oam.affineMode = 0; + sprite->oam.affineMode = ST_OAM_AFFINE_OFF; } DestroySprite(sprite); --gAnimVisualTaskCount; @@ -883,15 +881,15 @@ static void AnimFallingFeather_Step(struct Sprite *sprite) } } -static void sub_80B24C0(struct Sprite *sprite) +static void AnimUnusedBubbleThrow(struct Sprite *sprite) { sprite->oam.priority = GetBattlerSpriteBGPriority(gBattleAnimTarget); - sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); - sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); sprite->callback = TranslateAnimSpriteToTargetMonLocation; } -static void sub_80B2514(struct Sprite *sprite) +static void AnimUnusedFeather(struct Sprite *sprite) { u8 matrixNum; s16 rn, sinVal; @@ -935,10 +933,10 @@ static void sub_80B2514(struct Sprite *sprite) sprite->animNum = 1; sprite->hFlip = TRUE; } - sprite->callback = sub_80B268C; + sprite->callback = AnimUnusedFeather_Step; } -static void sub_80B268C(struct Sprite *sprite) +static void AnimUnusedFeather_Step(struct Sprite *sprite) { struct FeatherDanceData fData; struct FeatherDanceData *tData = (struct FeatherDanceData *)sprite->data; @@ -992,12 +990,12 @@ static void AnimWhirlwindLine(struct Sprite *sprite) u16 arg; u8 mult; - if (!gBattleAnimArgs[2]) + if (gBattleAnimArgs[2] == ANIM_ATTACKER) InitSpritePosToAnimAttacker(sprite, 0); else InitSpritePosToAnimTarget(sprite, FALSE); - if ((!gBattleAnimArgs[2] && GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) - || (gBattleAnimArgs[2] == 1 && GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER)) + if ((gBattleAnimArgs[2] == ANIM_ATTACKER && GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) + || (gBattleAnimArgs[2] == ANIM_TARGET && GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER)) sprite->x += 8; SeekSpriteAnim(sprite, gBattleAnimArgs[4]); sprite->x -= 32; @@ -1007,10 +1005,10 @@ static void AnimWhirlwindLine(struct Sprite *sprite) sprite->x2 += mult * arg; sprite->data[0] = arg; sprite->data[7] = gBattleAnimArgs[3]; - sprite->callback = sub_80B2820; + sprite->callback = AnimWhirlwindLine_Step; } -static void sub_80B2820(struct Sprite *sprite) +static void AnimWhirlwindLine_Step(struct Sprite *sprite) { sprite->x2 += sprite->data[1] >> 8; if (++sprite->data[0] == 6) @@ -1034,8 +1032,8 @@ void AnimTask_DrillPeckHitSplats(u8 taskId) gBattleAnimArgs[2] = 1; gBattleAnimArgs[3] = 3; CreateSpriteAndAnimate(&gFlashingHitSplatSpriteTemplate, - GetBattlerSpriteCoord(gBattleAnimTarget, 2), - GetBattlerSpriteCoord(gBattleAnimTarget, 3), + GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2), + GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET), 3); } gTasks[taskId].data[0] += 8; @@ -1064,7 +1062,7 @@ static void AnimBounceBallLand(struct Sprite *sprite) switch (sprite->data[0]) { case 0: - sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, 1); + sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y); sprite->y2 = -sprite->y - 32; ++sprite->data[0]; break; @@ -1089,11 +1087,11 @@ static void AnimDiveBall(struct Sprite *sprite) InitSpritePosToAnimAttacker(sprite, 1); sprite->data[0] = gBattleAnimArgs[2]; sprite->data[1] = gBattleAnimArgs[3]; - sprite->callback = sub_80B2A50; + sprite->callback = AnimDiveBall_Step1; gSprites[GetAnimBattlerSpriteId(ANIM_ATTACKER)].invisible = TRUE; } -static void sub_80B2A50(struct Sprite *sprite) +static void AnimDiveBall_Step1(struct Sprite *sprite) { if (sprite->data[0] > 0) { @@ -1108,11 +1106,11 @@ static void sub_80B2A50(struct Sprite *sprite) { sprite->invisible = TRUE; if (sprite->data[3]++ > 20) - sprite->callback = sub_80B2AB0; + sprite->callback = AnimDiveBall_Step2; } } -static void sub_80B2AB0(struct Sprite *sprite) +static void AnimDiveBall_Step2(struct Sprite *sprite) { sprite->y2 += sprite->data[2] >> 8; if (sprite->y + sprite->y2 > -32) @@ -1131,13 +1129,13 @@ static void AnimDiveWaterSplash(struct Sprite *sprite) case 0: if (!gBattleAnimArgs[0]) { - sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0); - sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1); + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y); } else { - sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, 0); - sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, 1); + sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X); + sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y); } sprite->data[1] = 512; TrySetSpriteRotScale(sprite, 0, 256, sprite->data[1], 0); @@ -1166,6 +1164,7 @@ static void AnimDiveWaterSplash(struct Sprite *sprite) } } +// Launches a water droplet away from the specified battler. Used by Astonish and Dive static void AnimSprayWaterDroplet(struct Sprite *sprite) { s32 v1 = 0x1FF & Random(); @@ -1185,18 +1184,18 @@ static void AnimSprayWaterDroplet(struct Sprite *sprite) sprite->oam.matrixNum = ST_OAM_HFLIP; if (gBattleAnimArgs[1] == 0) { - sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0); - sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1) + 32; + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y) + 32; } else { - sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, 0); - sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, 1) + 32; + sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X); + sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y) + 32; } - sprite->callback = sub_80B2C88; + sprite->callback = AnimSprayWaterDroplet_Step; } -static void sub_80B2C88(struct Sprite *sprite) +static void AnimSprayWaterDroplet_Step(struct Sprite *sprite) { if (sprite->data[2] == 0) { @@ -1216,14 +1215,14 @@ static void sub_80B2C88(struct Sprite *sprite) DestroyAnimSprite(sprite); } -static void sub_80B2CE4(struct Sprite *sprite) +static void AnimUnusedFlashingLight(struct Sprite *sprite) { sprite->data[6] = 0; sprite->data[7] = 64; - sprite->callback = sub_80B2CF8; + sprite->callback = AnimUnusedFlashingLight_Step; } -static void sub_80B2CF8(struct Sprite *sprite) +static void AnimUnusedFlashingLight_Step(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -1248,8 +1247,8 @@ static void AnimSkyAttackBird(struct Sprite *sprite) s16 posx = sprite->x; s16 posy = sprite->y; - sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); - sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); sprite->data[4] = sprite->x << 4; sprite->data[5] = sprite->y << 4; sprite->data[6] = ((posx - sprite->x) << 4) / 12; @@ -1257,22 +1256,22 @@ static void AnimSkyAttackBird(struct Sprite *sprite) rotation = ArcTan2Neg(posx - sprite->x, posy - sprite->y); rotation += 49152; TrySetSpriteRotScale(sprite, 1, 0x100, 0x100, rotation); - sprite->callback = sub_80B2E20; + sprite->callback = AnimSkyAttackBird_Step; } -static void sub_80B2E20(struct Sprite *sprite) +static void AnimSkyAttackBird_Step(struct Sprite *sprite) { sprite->data[4] += sprite->data[6]; sprite->data[5] += sprite->data[7]; sprite->x = sprite->data[4] >> 4; sprite->y = sprite->data[5] >> 4; - if (sprite->x > 285 || sprite->x < -45 + if (sprite->x > DISPLAY_WIDTH + 45 || sprite->x < -45 || sprite->y > 157 || sprite->y < -45) DestroySpriteAndMatrix(sprite); } -// not used -static void sub_80B2E64(u8 taskId) +// Unused +static void AnimTask_SetAttackerVisibility(u8 taskId) { if (gBattleAnimArgs[0] == 0) { diff --git a/src/ghost.c b/src/battle_anim_ghost.c similarity index 84% rename from src/ghost.c rename to src/battle_anim_ghost.c index a531cec44..d9e06b91e 100644 --- a/src/ghost.c +++ b/src/battle_anim_ghost.c @@ -9,39 +9,39 @@ #include "constants/songs.h" static void AnimConfuseRayBallBounce(struct Sprite *sprite); -static void sub_80B52D0(struct Sprite *sprite); -static void sub_80B5344(struct Sprite *sprite); -static void sub_80B53C0(struct Sprite *sprite); +static void AnimConfuseRayBallBounce_Step1(struct Sprite *sprite); +static void AnimConfuseRayBallBounce_Step2(struct Sprite *sprite); +static void UpdateConfuseRayBallBlend(struct Sprite *sprite); static void AnimConfuseRayBallSpiral(struct Sprite *sprite); -static void sub_80B5470(struct Sprite *sprite); -static void sub_80B5570(u8 taskId); -static void sub_80B55C8(u8 taskId); +static void AnimConfuseRayBallSpiral_Step(struct Sprite *sprite); +static void AnimTask_NightShadeClone_Step1(u8 taskId); +static void AnimTask_NightShadeClone_Step2(u8 taskId); static void AnimShadowBall(struct Sprite *sprite); -static void AnimShadowBallStep(struct Sprite *sprite); +static void AnimShadowBall_Step(struct Sprite *sprite); static void AnimLick(struct Sprite *sprite); -static void sub_80B5810(struct Sprite *sprite); -static void sub_80B59D4(u8 taskId); -static void sub_80B5AD4(u8 taskId); -static void sub_80B5D38(u8 taskId); -static void sub_80B5DCC(u8 taskId); +static void AnimLick_Step(struct Sprite *sprite); +static void AnimTask_NightmareClone_Step(u8 taskId); +static void AnimTask_SpiteTargetShadow_Step1(u8 taskId); +static void AnimTask_SpiteTargetShadow_Step2(u8 taskId); +static void AnimTask_SpiteTargetShadow_Step3(u8 taskId); static void AnimDestinyBondWhiteShadow(struct Sprite *sprite); -static void sub_80B5FE0(struct Sprite *sprite); -static void sub_80B623C(u8 taskId); -static void sub_80B6468(u8 taskId); -static void sub_80B65F0(u8 taskId); +static void AnimDestinyBondWhiteShadow_Step(struct Sprite *sprite); +static void AnimTask_DestinyBondWhiteShadow_Step(u8 taskId); +static void AnimTask_CurseStretchingBlackBg_Step1(u8 taskId); +static void AnimTask_CurseStretchingBlackBg_Step2(u8 taskId); static void AnimCurseNail(struct Sprite *sprite); -static void sub_80B66A8(struct Sprite *sprite); -static void sub_80B6728(struct Sprite *sprite); -static void sub_80B67A0(struct Sprite *sprite); +static void AnimCurseNail_Step1(struct Sprite *sprite); +static void AnimCurseNail_Step2(struct Sprite *sprite); +static void AnimCurseNail_End(struct Sprite *sprite); static void AnimGhostStatusSprite(struct Sprite *sprite); -static void sub_80B68A8(struct Sprite *sprite); -static void sub_80B696C(u8 taskId); +static void AnimGhostStatusSprite_End(struct Sprite *sprite); +static void AnimTask_GrudgeFlames_Step(u8 taskId); static void AnimGrudgeFlame(struct Sprite *sprite); -static void sub_80B7158(struct Sprite *sprite); -static void sub_80B6BE4(u8 taskId); -static void sub_80B6F30(u8 taskId); -static void sub_80B6FC4(u8 taskId); -static void sub_80B71B0(struct Sprite *sprite); +static void AnimMonMoveCircular(struct Sprite *sprite); +static void AnimTask_GhostGetOut_Step1(u8 taskId); +static void AnimTask_GhostGetOut_Step2(u8 taskId); +static void AnimTask_GhostGetOut_Step3(u8 taskId); +static void AnimMonMoveCircular_Step(struct Sprite *sprite); static const union AffineAnimCmd sAffineAnim_ConfuseRayBallBounce[] = { @@ -125,17 +125,15 @@ const struct SpriteTemplate gLickSpriteTemplate = .callback = AnimLick, }; -// not used -static const union AffineAnimCmd gUnknown_83E7654[] = +static const union AffineAnimCmd sAffineAnim_Unused[] = { AFFINEANIMCMD_FRAME(0x200, 0x200, 0, 0), AFFINEANIMCMD_END, }; -// not used -static const union AffineAnimCmd *const gUnknown_83E7664[] = +static const union AffineAnimCmd *const sAffineAnims_Unused[] = { - gUnknown_83E7654, + sAffineAnim_Unused, }; const struct SpriteTemplate gDestinyBondWhiteShadowSpriteTemplate = @@ -207,7 +205,8 @@ const struct SpriteTemplate gGrudgeFlameSpriteTemplate = .callback = AnimGrudgeFlame, }; -const struct SpriteTemplate gUnknown_83E76F8 = +// Unused +static const struct SpriteTemplate sMonMoveCircularSpriteTemplate = { .tileTag = 0, .paletteTag = 0, @@ -215,7 +214,7 @@ const struct SpriteTemplate gUnknown_83E76F8 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B7158, + .callback = AnimMonMoveCircular, }; static void AnimConfuseRayBallBounce(struct Sprite *sprite) @@ -223,24 +222,24 @@ static void AnimConfuseRayBallBounce(struct Sprite *sprite) InitSpritePosToAnimAttacker(sprite, 1); sprite->data[0] = gBattleAnimArgs[2]; sprite->data[1] = sprite->x; - sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2); + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); sprite->data[3] = sprite->y; - sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3); - BattleAnim_InitLinearTranslationWithDuration(sprite); - sprite->callback = sub_80B52D0; + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); + InitAnimLinearTranslationWithSpeed(sprite); + sprite->callback = AnimConfuseRayBallBounce_Step1; sprite->data[6] = 16; SetGpuReg(REG_OFFSET_BLDCNT, (BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL)); SetGpuReg(REG_OFFSET_BLDALPHA, sprite->data[6]); } -static void sub_80B52D0(struct Sprite *sprite) +static void AnimConfuseRayBallBounce_Step1(struct Sprite *sprite) { s16 r0, r2; - sub_80B53C0(sprite); + UpdateConfuseRayBallBlend(sprite); if (AnimTranslateLinear(sprite)) { - sprite->callback = sub_80B5344; + sprite->callback = AnimConfuseRayBallBounce_Step2; return; } sprite->x2 += Sin(sprite->data[5], 10); @@ -252,10 +251,10 @@ static void sub_80B52D0(struct Sprite *sprite) return; if (r0 <= 0) return; - PlaySE12WithPanning(SE_M_CONFUSE_RAY, gUnknown_2037F24); + PlaySE12WithPanning(SE_M_CONFUSE_RAY, gAnimCustomPanning); } -static void sub_80B5344(struct Sprite *sprite) +static void AnimConfuseRayBallBounce_Step2(struct Sprite *sprite) { s16 r2, r0; @@ -275,11 +274,11 @@ static void sub_80B5344(struct Sprite *sprite) } else { - sub_80B53C0(sprite); + UpdateConfuseRayBallBlend(sprite); } } -static void sub_80B53C0(struct Sprite *sprite) +static void UpdateConfuseRayBallBlend(struct Sprite *sprite) { s16 r0; @@ -309,11 +308,11 @@ static void sub_80B53C0(struct Sprite *sprite) static void AnimConfuseRayBallSpiral(struct Sprite *sprite) { InitSpritePosToAnimTarget(sprite, TRUE); - sprite->callback = sub_80B5470; + sprite->callback = AnimConfuseRayBallSpiral_Step; sprite->callback(sprite); } -static void sub_80B5470(struct Sprite *sprite) +static void AnimConfuseRayBallSpiral_Step(struct Sprite *sprite) { u16 temp1; @@ -332,6 +331,7 @@ static void sub_80B5470(struct Sprite *sprite) DestroyAnimSprite(sprite); } +// Creates a large transparent clone of the attacker centered on their position which shrinks to original size void AnimTask_NightShadeClone(u8 taskId) { u8 spriteId; @@ -346,10 +346,10 @@ void AnimTask_NightShadeClone(u8 taskId) gTasks[taskId].data[1] = *gBattleAnimArgs; gTasks[taskId].data[2] = 0; gTasks[taskId].data[3] = 16; - gTasks[taskId].func = sub_80B5570; + gTasks[taskId].func = AnimTask_NightShadeClone_Step1; } -static void sub_80B5570(u8 taskId) +static void AnimTask_NightShadeClone_Step1(u8 taskId) { gTasks[taskId].data[10] += 1; if (gTasks[taskId].data[10] == 3) @@ -360,11 +360,11 @@ static void sub_80B5570(u8 taskId) SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[2], gTasks[taskId].data[3])); if (gTasks[taskId].data[2] != 9) return; - gTasks[taskId].func = sub_80B55C8; + gTasks[taskId].func = AnimTask_NightShadeClone_Step2; } } -static void sub_80B55C8(u8 taskId) +static void AnimTask_NightShadeClone_Step2(u8 taskId) { u8 spriteId; @@ -398,8 +398,8 @@ static void AnimShadowBall(struct Sprite *sprite) s16 oldPosX = sprite->x; s16 oldPosY = sprite->y; - sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); - sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); sprite->data[0] = 0; sprite->data[1] = gBattleAnimArgs[0]; sprite->data[2] = gBattleAnimArgs[1]; @@ -408,10 +408,10 @@ static void AnimShadowBall(struct Sprite *sprite) sprite->data[5] = sprite->y << 4; sprite->data[6] = ((oldPosX - sprite->x) << 4) / (gBattleAnimArgs[0] << 1); sprite->data[7] = ((oldPosY - sprite->y) << 4) / (gBattleAnimArgs[0] << 1); - sprite->callback = AnimShadowBallStep; + sprite->callback = AnimShadowBall_Step; } -static void AnimShadowBallStep(struct Sprite *sprite) +static void AnimShadowBall_Step(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -429,8 +429,8 @@ static void AnimShadowBallStep(struct Sprite *sprite) sprite->data[2] -= 1; if (sprite->data[2] > 0) break; - sprite->data[1] = GetBattlerSpriteCoord(gBattleAnimTarget, 2); - sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + sprite->data[1] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); sprite->data[4] = sprite->x << 4; sprite->data[5] = sprite->y << 4; sprite->data[6] = ((sprite->data[1] - sprite->x) << 4) / sprite->data[3]; @@ -445,8 +445,8 @@ static void AnimShadowBallStep(struct Sprite *sprite) sprite->data[3] -= 1; if (sprite->data[3] > 0) break; - sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, 2); - sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); + sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); sprite->data[0] += 1; break; case 3: @@ -458,10 +458,10 @@ static void AnimShadowBallStep(struct Sprite *sprite) static void AnimLick(struct Sprite *sprite) { InitSpritePosToAnimTarget(sprite, TRUE); - sprite->callback = sub_80B5810; + sprite->callback = AnimLick_Step; } -static void sub_80B5810(struct Sprite *sprite) +static void AnimLick_Step(struct Sprite *sprite) { bool8 r5 = FALSE; bool8 r6 = FALSE; @@ -507,12 +507,13 @@ static void sub_80B5810(struct Sprite *sprite) } } +// Creates a transparent clone of the target which drifts up and away to the side void AnimTask_NightmareClone(u8 taskId) { struct Task *task; task = &gTasks[taskId]; - task->data[0] = CloneBattlerSpriteWithBlend(1); + task->data[0] = CloneBattlerSpriteWithBlend(ANIM_TARGET); if (task->data[0] < 0) { DestroyAnimVisualTask(taskId); @@ -539,10 +540,10 @@ void AnimTask_NightmareClone(u8 taskId) gSprites[task->data[0]].data[4] = 0; StoreSpriteCallbackInData6(&gSprites[task->data[0]], SpriteCallbackDummy); gSprites[task->data[0]].callback = TranslateSpriteLinearFixedPoint; - task->func = sub_80B59D4; + task->func = AnimTask_NightmareClone_Step; } -static void sub_80B59D4(u8 taskId) +static void AnimTask_NightmareClone_Step(u8 taskId) { struct Task *task; @@ -563,7 +564,7 @@ static void sub_80B59D4(u8 taskId) break; if (task->data[1] <= 80) break; - obj_delete_but_dont_free_vram(&gSprites[task->data[0]]); + DestroySpriteWithActiveSheet(&gSprites[task->data[0]]); task->data[4] = 1; break; case 1: @@ -579,17 +580,18 @@ static void sub_80B59D4(u8 taskId) } } +// Creates a blended copy of the target that wavers in front of them void AnimTask_SpiteTargetShadow(u8 taskId) { struct Task *task; task = &gTasks[taskId]; task->data[15] = 0; - task->func = sub_80B5AD4; + task->func = AnimTask_SpiteTargetShadow_Step1; task->func(taskId); } -static void sub_80B5AD4(u8 taskId) +static void AnimTask_SpiteTargetShadow_Step1(u8 taskId) { s16 startLine; struct Task *task = &gTasks[taskId]; @@ -670,7 +672,7 @@ static void sub_80B5AD4(u8 taskId) SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_BG1_ON); else SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_BG2_ON); - task->func = sub_80B5D38; + task->func = AnimTask_SpiteTargetShadow_Step2; ++task->data[15]; break; default: @@ -679,7 +681,7 @@ static void sub_80B5AD4(u8 taskId) } } -static void sub_80B5D38(u8 taskId) +static void AnimTask_SpiteTargetShadow_Step2(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -693,12 +695,12 @@ static void sub_80B5D38(u8 taskId) if (task->data[1] == 128) { task->data[15] = 0; - task->func = sub_80B5DCC; + task->func = AnimTask_SpiteTargetShadow_Step3; task->func(taskId); } } -static void sub_80B5DCC(u8 taskId) +static void AnimTask_SpiteTargetShadow_Step3(u8 taskId) { struct Task *task = &gTasks[taskId]; u8 rank = GetBattlerSpriteBGPriorityRank(gBattleAnimTarget); @@ -718,7 +720,7 @@ static void sub_80B5DCC(u8 taskId) break; case 2: gSprites[task->data[14]].invisible = TRUE; - obj_delete_but_dont_free_vram(&gSprites[task->data[0]]); + DestroySpriteWithActiveSheet(&gSprites[task->data[0]]); FreeSpritePaletteByTag(ANIM_TAG_BENT_SPOON); SetGpuReg(REG_OFFSET_BLDCNT, 0); SetGpuReg(REG_OFFSET_BLDALPHA, 0); @@ -740,17 +742,17 @@ static void AnimDestinyBondWhiteShadow(struct Sprite *sprite) if (gBattleAnimArgs[0] == 0) { - battler1X = GetBattlerSpriteCoord(gBattleAnimAttacker, 0); - battler1Y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1) + 28; - battler2X = GetBattlerSpriteCoord(gBattleAnimTarget, 0); - battler2Y = GetBattlerSpriteCoord(gBattleAnimTarget, 1) + 28; + battler1X = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X); + battler1Y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y) + 28; + battler2X = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X); + battler2Y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y) + 28; } else { - battler1X = GetBattlerSpriteCoord(gBattleAnimTarget, 0); - battler1Y = GetBattlerSpriteCoord(gBattleAnimTarget, 1) + 28; - battler2X = GetBattlerSpriteCoord(gBattleAnimAttacker, 0); - battler2Y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1) + 28; + battler1X = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X); + battler1Y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y) + 28; + battler2X = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X); + battler2Y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y) + 28; } yDiff = battler2Y - battler1Y; sprite->data[0] = battler1X * 16; @@ -764,11 +766,11 @@ static void AnimDestinyBondWhiteShadow(struct Sprite *sprite) sprite->oam.priority = 2; sprite->x = battler1X; sprite->y = battler1Y; - sprite->callback = sub_80B5FE0; + sprite->callback = AnimDestinyBondWhiteShadow_Step; sprite->invisible = TRUE; } -static void sub_80B5FE0(struct Sprite *sprite) +static void AnimDestinyBondWhiteShadow_Step(struct Sprite *sprite) { if (sprite->data[4]) { @@ -798,11 +800,11 @@ void AnimTask_DestinyBondWhiteShadow(u8 taskId) task->data[8] = 0; task->data[9] = 16; task->data[10] = gBattleAnimArgs[0]; - baseX = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); + baseX = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); baseY = GetBattlerSpriteCoordAttr(gBattleAnimAttacker, BATTLER_COORD_ATTR_BOTTOM); if (!IsContest()) { - for (battler = 0; battler < 4; ++battler) + for (battler = 0; battler < MAX_BATTLERS_COUNT; ++battler) { if (battler != gBattleAnimAttacker && battler != (gBattleAnimAttacker ^ 2) @@ -811,7 +813,7 @@ void AnimTask_DestinyBondWhiteShadow(u8 taskId) spriteId = CreateSprite(&gDestinyBondWhiteShadowSpriteTemplate, baseX, baseY, 55); if (spriteId != MAX_SPRITES) { - x = GetBattlerSpriteCoord(battler, 2); + x = GetBattlerSpriteCoord(battler, BATTLER_COORD_X_2); y = GetBattlerSpriteCoordAttr(battler, BATTLER_COORD_ATTR_BOTTOM); gSprites[spriteId].data[0] = baseX << 4; gSprites[spriteId].data[1] = baseY << 4; @@ -820,7 +822,7 @@ void AnimTask_DestinyBondWhiteShadow(u8 taskId) gSprites[spriteId].data[4] = gBattleAnimArgs[1]; gSprites[spriteId].data[5] = x; gSprites[spriteId].data[6] = y; - gSprites[spriteId].callback = sub_80B5FE0; + gSprites[spriteId].callback = AnimDestinyBondWhiteShadow_Step; task->data[task->data[12] + 13] = spriteId; ++task->data[12]; } @@ -841,15 +843,15 @@ void AnimTask_DestinyBondWhiteShadow(u8 taskId) gSprites[spriteId].data[4] = gBattleAnimArgs[1]; gSprites[spriteId].data[5] = x; gSprites[spriteId].data[6] = y; - gSprites[spriteId].callback = sub_80B5FE0; + gSprites[spriteId].callback = AnimDestinyBondWhiteShadow_Step; task->data[13] = spriteId; task->data[12] = 1; } } - task->func = sub_80B623C; + task->func = AnimTask_DestinyBondWhiteShadow_Step; } -static void sub_80B623C(u8 taskId) +static void AnimTask_DestinyBondWhiteShadow_Step(u8 taskId) { u16 i; struct Task *task = &gTasks[taskId]; @@ -933,7 +935,7 @@ void AnimTask_CurseStretchingBlackBg(u8 taskId) SetGpuReg(REG_OFFSET_WINOUT, ((WINOUT_WIN01_BG_ALL | WINOUT_WIN01_OBJ) | (WINOUT_WINOBJ_BG_ALL | WINOUT_WINOBJ_OBJ | WINOUT_WINOBJ_CLR))); SetGpuReg(REG_OFFSET_BLDCNT, (BLDCNT_TGT1_BG3 | BLDCNT_EFFECT_DARKEN)); - SetGpuReg(REG_OFFSET_BLDY, 0x10); + SetGpuReg(REG_OFFSET_BLDY, 16); if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER || IsContest()) startX = 40; else @@ -951,10 +953,10 @@ void AnimTask_CurseStretchingBlackBg(u8 taskId) gTasks[taskId].data[4] = bottomDistance; gTasks[taskId].data[5] = startX; gTasks[taskId].data[6] = startY; - gTasks[taskId].func = sub_80B6468; + gTasks[taskId].func = AnimTask_CurseStretchingBlackBg_Step1; } -static void sub_80B6468(u8 taskId) +static void AnimTask_CurseStretchingBlackBg_Step1(u8 taskId) { s16 step, leftDistance, rightDistance, topDistance, bottomDistance, startX, startY; u16 left, right, top, bottom, selectedPalettes; @@ -980,15 +982,15 @@ static void sub_80B6468(u8 taskId) right = 240; top = 0; bottom = 112; - selectedPalettes = SelectBattleAnimSpriteAndBgPalettes(1, 0, 0, 0, 0, 0, 0); + selectedPalettes = GetBattlePalettesMask(TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE); BeginNormalPaletteFade(selectedPalettes, 0, 16, 16, RGB(0, 0, 0)); - gTasks[taskId].func = sub_80B65F0; + gTasks[taskId].func = AnimTask_CurseStretchingBlackBg_Step2; } gBattle_WIN0H = WIN_RANGE(left, right); gBattle_WIN0V = WIN_RANGE(top, bottom); } -static void sub_80B65F0(u8 taskId) +static void AnimTask_CurseStretchingBlackBg_Step2(u8 taskId) { if (!gPaletteFade.active) { @@ -1023,10 +1025,10 @@ static void AnimCurseNail(struct Sprite *sprite) sprite->x += xDelta; sprite->data[1] = xDelta2; sprite->data[0] = 60; - sprite->callback = sub_80B66A8; + sprite->callback = AnimCurseNail_Step1; } -static void sub_80B66A8(struct Sprite *sprite) +static void AnimCurseNail_Step1(struct Sprite *sprite) { u16 var0; @@ -1047,7 +1049,7 @@ static void sub_80B66A8(struct Sprite *sprite) { sprite->data[0] = 30; sprite->callback = WaitAnimForDuration; - StoreSpriteCallbackInData6(sprite, sub_80B6728); + StoreSpriteCallbackInData6(sprite, AnimCurseNail_Step2); } else { @@ -1057,7 +1059,7 @@ static void sub_80B66A8(struct Sprite *sprite) } } -static void sub_80B6728(struct Sprite *sprite) +static void AnimCurseNail_Step2(struct Sprite *sprite) { if (sprite->data[0] == 0) { @@ -1079,12 +1081,12 @@ static void sub_80B6728(struct Sprite *sprite) if (sprite->data[2] == 16) { sprite->invisible = TRUE; - sprite->callback = sub_80B67A0; + sprite->callback = AnimCurseNail_End; } } } -static void sub_80B67A0(struct Sprite *sprite) +static void AnimCurseNail_End(struct Sprite *sprite) { SetGpuReg(REG_OFFSET_BLDCNT, 0); SetGpuReg(REG_OFFSET_BLDALPHA, 0); @@ -1125,12 +1127,12 @@ static void AnimGhostStatusSprite(struct Sprite *sprite) if (coeffB == 16 && coeffA == 0) { sprite->invisible = TRUE; - sprite->callback = sub_80B68A8; + sprite->callback = AnimGhostStatusSprite_End; } } } -static void sub_80B68A8(struct Sprite *sprite) +static void AnimGhostStatusSprite_End(struct Sprite *sprite) { SetGpuReg(REG_OFFSET_BLDCNT, 0); SetGpuReg(REG_OFFSET_BLDALPHA, 0); @@ -1143,7 +1145,7 @@ void AnimTask_GrudgeFlames(u8 taskId) task->data[0] = 0; task->data[1] = 16; - task->data[9] = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); + task->data[9] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); task->data[10] = GetBattlerYCoordWithElevation(gBattleAnimAttacker); task->data[11] = (GetBattlerSpriteCoordAttr(gBattleAnimAttacker, BATTLER_COORD_ATTR_WIDTH) / 2) + 8; task->data[7] = 0; @@ -1154,10 +1156,10 @@ void AnimTask_GrudgeFlames(u8 taskId) SetGpuReg(REG_OFFSET_BLDCNT, (BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL)); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 0x10)); task->data[8] = 0; - task->func = sub_80B696C; + task->func = AnimTask_GrudgeFlames_Step; } -static void sub_80B696C(u8 taskId) +static void AnimTask_GrudgeFlames_Step(u8 taskId) { u16 i; u8 spriteId; @@ -1260,16 +1262,18 @@ static void AnimGrudgeFlame(struct Sprite *sprite) } } -void sub_80B6BBC(u8 taskId) +// Used by the ghost Marowak when it hasn't been revealed by the Silph Scope. +// Animates a shimmering copy of the attacker (the ghost) accompanied by the 'Scary Face' graphics +void AnimTask_GhostGetOut(u8 taskId) { struct Task *task = &gTasks[taskId]; task->data[15] = 0; - task->func = sub_80B6BE4; - sub_80B6BE4(taskId); + task->func = AnimTask_GhostGetOut_Step1; + task->func(taskId); } -static void sub_80B6BE4(u8 taskId) +static void AnimTask_GhostGetOut_Step1(u8 taskId) { s16 y; struct BattleAnimBgData animBgData; @@ -1365,14 +1369,14 @@ static void sub_80B6BE4(u8 taskId) SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_BG1_ON); else SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_BG2_ON); - task->func = sub_80B6F30; + task->func = AnimTask_GhostGetOut_Step2; task->data[15] = 0; break; } ++task->data[15]; } -static void sub_80B6F30(u8 taskId) +static void AnimTask_GhostGetOut_Step2(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -1386,12 +1390,12 @@ static void sub_80B6F30(u8 taskId) if (task->data[1] == 128) { task->data[15] = 0; - task->func = sub_80B6FC4; - sub_80B6FC4(taskId); + task->func = AnimTask_GhostGetOut_Step3; + task->func(taskId); } } -static void sub_80B6FC4(u8 taskId) +static void AnimTask_GhostGetOut_Step3(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -1447,7 +1451,7 @@ static void sub_80B6FC4(u8 taskId) ++task->data[15]; } -static void sub_80B7158(struct Sprite *sprite) +static void AnimMonMoveCircular(struct Sprite *sprite) { sprite->invisible = TRUE; sprite->data[5] = gBattlerSpriteIds[gBattleAnimAttacker]; @@ -1455,11 +1459,11 @@ static void sub_80B7158(struct Sprite *sprite) sprite->data[1] = 10; sprite->data[2] = gBattleAnimArgs[0]; sprite->data[3] = gBattleAnimArgs[1]; - sprite->callback = sub_80B71B0; + sprite->callback = AnimMonMoveCircular_Step; gSprites[sprite->data[5]].y += 8; } -static void sub_80B71B0(struct Sprite *sprite) +static void AnimMonMoveCircular_Step(struct Sprite *sprite) { if (sprite->data[3]) { diff --git a/src/ground.c b/src/battle_anim_ground.c similarity index 67% rename from src/ground.c rename to src/battle_anim_ground.c index 1ed06be1a..955071c22 100644 --- a/src/ground.c +++ b/src/battle_anim_ground.c @@ -9,22 +9,22 @@ static void AnimBonemerangProjectile(struct Sprite *sprite); static void AnimBoneHitProjectile(struct Sprite *sprite); static void AnimDirtScatter(struct Sprite *sprite); static void AnimMudSportDirt(struct Sprite *sprite); -static void AnimFissureDirtPlumeParticle(struct Sprite *sprite); +static void AnimDirtPlumeParticle(struct Sprite *sprite); static void AnimDigDirtMound(struct Sprite *sprite); -static void AnimBonemerangProjectileStep(struct Sprite *sprite); -static void AnimBonemerangProjectileEnd(struct Sprite *sprite); +static void AnimBonemerangProjectile_Step(struct Sprite *sprite); +static void AnimBonemerangProjectile_End(struct Sprite *sprite); static void AnimMudSportDirtRising(struct Sprite *sprite); static void AnimMudSportDirtFalling(struct Sprite *sprite); -static void sub_80B8ED4(u8 taskId); -static void sub_80B908C(u8 taskId); -static void sub_80B92B8(u8 useBg1, s16 y, s16 endY); -static void sub_80B912C(u8 taskId); -static void sub_80B91B0(u8 taskId); -static void AnimFissureDirtPlumeParticleStep(struct Sprite *sprite); -static void sub_80B9584(u8 taskId); -static void sub_80B967C(u8 taskId); -static void sub_80B9760(struct Task *task); -static void sub_80B98A8(u8 taskId); +static void AnimTask_DigBounceMovement(u8 taskId); +static void AnimTask_DigDisappear(u8 taskId); +static void SetDigScanlineEffect(u8 useBg1, s16 y, s16 endY); +static void AnimTask_DigSetVisibleUnderground(u8 taskId); +static void AnimTask_DigRiseUpFromHole(u8 taskId); +static void AnimDirtPlumeParticle_Step(struct Sprite *sprite); +static void AnimTask_ShakeTerrain(u8 taskId); +static void AnimTask_ShakeBattlers(u8 taskId); +static void SetBattlersXOffsetForShake(struct Task *task); +static void WaitForFissureCompletion(u8 taskId); static const union AffineAnimCmd sAffineAnim_Bonemerang[] = { @@ -122,7 +122,7 @@ const struct SpriteTemplate gDirtPlumeSpriteTemplate = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = AnimFissureDirtPlumeParticle, + .callback = AnimDirtPlumeParticle, }; const struct SpriteTemplate gDirtMoundSpriteTemplate = @@ -140,17 +140,17 @@ const struct SpriteTemplate gDirtMoundSpriteTemplate = // a boomerang. After hitting the target mon, it comes back to the user. static void AnimBonemerangProjectile(struct Sprite *sprite) { - sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); - sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); sprite->data[0] = 20; - sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2); - sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); sprite->data[5] = -40; InitAnimArcTranslation(sprite); - sprite->callback = AnimBonemerangProjectileStep; + sprite->callback = AnimBonemerangProjectile_Step; } -static void AnimBonemerangProjectileStep(struct Sprite *sprite) +static void AnimBonemerangProjectile_Step(struct Sprite *sprite) { if (TranslateAnimHorizontalArc(sprite)) { @@ -159,15 +159,15 @@ static void AnimBonemerangProjectileStep(struct Sprite *sprite) sprite->y2 = 0; sprite->x2 = 0; sprite->data[0] = 20; - sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); - sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); sprite->data[5] = 40; InitAnimArcTranslation(sprite); - sprite->callback = AnimBonemerangProjectileEnd; + sprite->callback = AnimBonemerangProjectile_End; } } -static void AnimBonemerangProjectileEnd(struct Sprite *sprite) +static void AnimBonemerangProjectile_End(struct Sprite *sprite) { if (TranslateAnimHorizontalArc(sprite)) DestroyAnimSprite(sprite); @@ -186,8 +186,8 @@ static void AnimBoneHitProjectile(struct Sprite *sprite) if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) gBattleAnimArgs[2] = -gBattleAnimArgs[2]; sprite->data[0] = gBattleAnimArgs[4]; - sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2) + gBattleAnimArgs[2]; - sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + gBattleAnimArgs[3]; + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + gBattleAnimArgs[2]; + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[3]; sprite->callback = StartAnimLinearTranslation; StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } @@ -204,8 +204,8 @@ static void AnimDirtScatter(struct Sprite *sprite) s16 xOffset, yOffset; InitSpritePosToAnimAttacker(sprite, 1); - targetXPos = GetBattlerSpriteCoord2(gBattleAnimTarget, 2); - targetYPos = GetBattlerSpriteCoord2(gBattleAnimTarget, 3); + targetXPos = GetBattlerSpriteCoord2(gBattleAnimTarget, BATTLER_COORD_X_2); + targetYPos = GetBattlerSpriteCoord2(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); xOffset = Random() & 0x1F; yOffset = Random() & 0x1F; if (xOffset > 16) @@ -229,8 +229,8 @@ static void AnimMudSportDirt(struct Sprite *sprite) ++sprite->oam.tileNum; if (gBattleAnimArgs[0] == 0) { - sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2) + gBattleAnimArgs[1]; - sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3) + gBattleAnimArgs[2]; + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2) + gBattleAnimArgs[1]; + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[2]; sprite->data[0] = gBattleAnimArgs[1] > 0 ? 1 : -1; sprite->callback = AnimMudSportDirtRising; } @@ -283,14 +283,14 @@ void AnimTask_DigDownMovement(u8 taskId) { struct Task *task = &gTasks[taskId]; - if (gBattleAnimArgs[0] == 0) - task->func = sub_80B8ED4; + if (gBattleAnimArgs[0] == FALSE) + task->func = AnimTask_DigBounceMovement; else - task->func = sub_80B908C; + task->func = AnimTask_DigDisappear; task->func(taskId); } -static void sub_80B8ED4(u8 taskId) +static void AnimTask_DigBounceMovement(u8 taskId) { u8 var0; struct Task *task = &gTasks[taskId]; @@ -319,7 +319,7 @@ static void sub_80B8ED4(u8 taskId) ++task->data[0]; break; case 1: - sub_80B92B8(task->data[11], task->data[14], task->data[15]); + SetDigScanlineEffect(task->data[11], task->data[14], task->data[15]); ++task->data[0]; break; case 2: @@ -358,7 +358,7 @@ static void sub_80B8ED4(u8 taskId) } } -static void sub_80B908C(u8 taskId) +static void AnimTask_DigDisappear(u8 taskId) { u8 spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER); @@ -376,15 +376,15 @@ void AnimTask_DigUpMovement(u8 taskId) { struct Task *task = &gTasks[taskId]; - if (gBattleAnimArgs[0] == 0) - task->func = sub_80B912C; + if (gBattleAnimArgs[0] == FALSE) + task->func = AnimTask_DigSetVisibleUnderground; else - task->func = sub_80B91B0; + task->func = AnimTask_DigRiseUpFromHole; task->func(taskId); } -static void sub_80B912C(u8 taskId) +static void AnimTask_DigSetVisibleUnderground(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -394,7 +394,7 @@ static void sub_80B912C(u8 taskId) task->data[10] = GetAnimBattlerSpriteId(ANIM_ATTACKER); gSprites[task->data[10]].invisible = FALSE; gSprites[task->data[10]].x2 = 0; - gSprites[task->data[10]].y2 = 160 - gSprites[task->data[10]].y; + gSprites[task->data[10]].y2 = DISPLAY_HEIGHT - gSprites[task->data[10]].y; ++task->data[0]; break; case 1: @@ -402,7 +402,7 @@ static void sub_80B912C(u8 taskId) } } -static void sub_80B91B0(u8 taskId) +static void AnimTask_DigRiseUpFromHole(u8 taskId) { u8 var0; struct Task *task = &gTasks[taskId]; @@ -422,7 +422,7 @@ static void sub_80B91B0(u8 taskId) ++task->data[0]; break; case 1: - sub_80B92B8(task->data[11], 0, task->data[15]); + SetDigScanlineEffect(task->data[11], 0, task->data[15]); ++task->data[0]; break; case 2: @@ -443,7 +443,7 @@ static void sub_80B91B0(u8 taskId) } } -static void sub_80B92B8(u8 useBG1, s16 y, s16 endY) +static void SetDigScanlineEffect(u8 useBG1, s16 y, s16 endY) { s16 bgX; struct ScanlineEffectParams scanlineParams; @@ -485,7 +485,7 @@ static void sub_80B92B8(u8 useBG1, s16 y, s16 endY) // arg 3: target y offset // arg 4: wave amplitude // arg 5: duration -static void AnimFissureDirtPlumeParticle(struct Sprite *sprite) +static void AnimDirtPlumeParticle(struct Sprite *sprite) { s8 battler; s16 xOffset; @@ -500,17 +500,17 @@ static void AnimFissureDirtPlumeParticle(struct Sprite *sprite) xOffset *= -1; gBattleAnimArgs[2] *= -1; } - sprite->x = GetBattlerSpriteCoord(battler, 2) + xOffset; + sprite->x = GetBattlerSpriteCoord(battler, BATTLER_COORD_X_2) + xOffset; sprite->y = GetBattlerYCoordWithElevation(battler) + 30; sprite->data[0] = gBattleAnimArgs[5]; sprite->data[2] = sprite->x + gBattleAnimArgs[2]; sprite->data[4] = sprite->y + gBattleAnimArgs[3]; sprite->data[5] = gBattleAnimArgs[4]; InitAnimArcTranslation(sprite); - sprite->callback = AnimFissureDirtPlumeParticleStep; + sprite->callback = AnimDirtPlumeParticle_Step; } -static void AnimFissureDirtPlumeParticleStep(struct Sprite *sprite) +static void AnimDirtPlumeParticle_Step(struct Sprite *sprite) { if (TranslateAnimHorizontalArc(sprite)) DestroyAnimSprite(sprite); @@ -530,7 +530,7 @@ static void AnimDigDirtMound(struct Sprite *sprite) battler = gBattleAnimAttacker; else battler = gBattleAnimTarget; - sprite->x = GetBattlerSpriteCoord(battler, 0) - 16 + (gBattleAnimArgs[1] * 32); + sprite->x = GetBattlerSpriteCoord(battler, BATTLER_COORD_X) - 16 + (gBattleAnimArgs[1] * 32); sprite->y = GetBattlerYCoordWithElevation(battler) + 32; sprite->oam.tileNum += gBattleAnimArgs[1] * 8; StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); @@ -538,151 +538,178 @@ static void AnimDigDirtMound(struct Sprite *sprite) sprite->callback = WaitAnimForDuration; } +#define tState data[0] +#define tDelay data[1] +#define tTimer data[2] +#define tMaxTime data[3] +#define tbattlerSpriteIds(i) data[9 + (i)] +#define tNumBattlers data[13] // AnimTask_ShakeBattlers +#define tInitialX data[13] // AnimTask_ShakeTerrain +#define tHorizOffset data[14] +#define tInitHorizOffset data[15] + +// Shakes battler(s) or the battle terrain back and forth horizontally. Used by e.g. Earthquake, Eruption +// arg0: What to shake. 0-3 for any specific battler, MAX_BATTLERS_COUNT for all battlers, MAX_BATTLERS_COUNT + 1 for the terrain +// arg1: Shake intensity, used to calculate horizontal pixel offset (if 0, use move power instead) +// arg2: Length of time to shake for void AnimTask_HorizontalShake(u8 taskId) { u16 i; struct Task *task = &gTasks[taskId]; - if (gBattleAnimArgs[1]) - task->data[14] = task->data[15] = gBattleAnimArgs[1] + 3; + if (gBattleAnimArgs[1] != 0) + task->tHorizOffset = task->tInitHorizOffset = gBattleAnimArgs[1] + 3; else - task->data[14] = task->data[15] = (gAnimMovePower / 10) + 3; + task->tHorizOffset = task->tInitHorizOffset = (gAnimMovePower / 10) + 3; - task->data[3] = gBattleAnimArgs[2]; + task->tMaxTime = gBattleAnimArgs[2]; switch (gBattleAnimArgs[0]) { - case 5: - task->data[13] = gBattle_BG3_X; - task->func = sub_80B9584; + case MAX_BATTLERS_COUNT + 1: // Shake terrain + task->tInitialX = gBattle_BG3_X; + task->func = AnimTask_ShakeTerrain; break; - case 4: - task->data[13] = 0; - for (i = 0; i < MAX_BATTLERS_COUNT; ++i) + case MAX_BATTLERS_COUNT: // Shake all battlers + task->tNumBattlers = 0; + for (i = 0; i < MAX_BATTLERS_COUNT; i++) { if (IsBattlerSpriteVisible(i)) { - task->data[task->data[13] + 9] = gBattlerSpriteIds[i]; - ++task->data[13]; + task->tbattlerSpriteIds(task->tNumBattlers) = gBattlerSpriteIds[i]; + task->tNumBattlers++; } } - task->func = sub_80B967C; + task->func = AnimTask_ShakeBattlers; break; - default: - task->data[9] = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); - if (task->data[9] == 0xFF) + default: // Shake specific battler + task->tbattlerSpriteIds(0) = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); + if (task->tbattlerSpriteIds(0) == SPRITE_NONE) { DestroyAnimVisualTask(taskId); } else { - task->data[13] = 1; - task->func = sub_80B967C; + task->tNumBattlers = 1; + task->func = AnimTask_ShakeBattlers; } - break; } } -static void sub_80B9584(u8 taskId) +static void AnimTask_ShakeTerrain(u8 taskId) { struct Task *task = &gTasks[taskId]; - switch (task->data[0]) + switch (task->tState) { case 0: - if (++task->data[1] > 1) + if (++task->tDelay > 1) { - task->data[1] = 0; - if ((task->data[2] & 1) == 0) - gBattle_BG3_X = task->data[13] + task->data[15]; + task->tDelay = 0; + if ((task->tTimer & 1) == 0) + gBattle_BG3_X = task->tInitialX + task->tInitHorizOffset; else - gBattle_BG3_X = task->data[13] - task->data[15]; + gBattle_BG3_X = task->tInitialX - task->tInitHorizOffset; - if (++task->data[2] == task->data[3]) + if (++task->tTimer == task->tMaxTime) { - task->data[2] = 0; - --task->data[14]; - ++task->data[0]; + task->tTimer = 0; + task->tHorizOffset--; + task->tState++; } } break; case 1: - if (++task->data[1] > 1) + if (++task->tDelay > 1) { - task->data[1] = 0; - if ((task->data[2] & 1) == 0) - gBattle_BG3_X = task->data[13] + task->data[14]; + task->tDelay = 0; + if ((task->tTimer & 1) == 0) + gBattle_BG3_X = task->tInitialX + task->tHorizOffset; else - gBattle_BG3_X = task->data[13] - task->data[14]; + gBattle_BG3_X = task->tInitialX - task->tHorizOffset; - if (++task->data[2] == 4) + if (++task->tTimer == 4) { - task->data[2] = 0; - if (--task->data[14] == 0) - ++task->data[0]; + task->tTimer = 0; + if (--task->tHorizOffset == 0) + task->tState++; } } break; case 2: - gBattle_BG3_X = task->data[13]; + gBattle_BG3_X = task->tInitialX; DestroyAnimVisualTask(taskId); break; } } -static void sub_80B967C(u8 taskId) +static void AnimTask_ShakeBattlers(u8 taskId) { u16 i; struct Task *task = &gTasks[taskId]; - switch (task->data[0]) + switch (task->tState) { case 0: - if (++task->data[1] > 1) + if (++task->tDelay > 1) { - task->data[1] = 0; - sub_80B9760(task); - if (++task->data[2] == task->data[3]) + task->tDelay = 0; + SetBattlersXOffsetForShake(task); + if (++task->tTimer == task->tMaxTime) { - task->data[2] = 0; - --task->data[14]; - ++task->data[0]; + task->tTimer = 0; + task->tHorizOffset--; + task->tState++; } } break; case 1: - if (++task->data[1] > 1) + if (++task->tDelay > 1) { - task->data[1] = 0; - sub_80B9760(task); - if (++task->data[2] == 4) + task->tDelay = 0; + SetBattlersXOffsetForShake(task); + if (++task->tTimer == 4) { - task->data[2] = 0; - if (--task->data[14] == 0) - ++task->data[0]; + task->tTimer = 0; + if (--task->tHorizOffset == 0) + task->tState++; } } break; case 2: - for (i = 0; i < task->data[13]; ++i) - gSprites[task->data[9 + i]].x2 = 0; + for (i = 0; i < task->tNumBattlers; i++) + gSprites[task->tbattlerSpriteIds(i)].x2 = 0; + DestroyAnimVisualTask(taskId); break; } } -static void sub_80B9760(struct Task *task) +static void SetBattlersXOffsetForShake(struct Task *task) { u16 i, xOffset; - if ((task->data[2] & 1) == 0) - xOffset = (task->data[14] / 2) + (task->data[14] & 1); + if ((task->tTimer & 1) == 0) + xOffset = (task->tHorizOffset / 2) + (task->tHorizOffset & 1); else - xOffset = -(task->data[14] / 2); - for (i = 0; i < task->data[13]; ++i) - gSprites[task->data[9 + i]].x2 = xOffset; + xOffset = -(task->tHorizOffset / 2); + + for (i = 0; i < task->tNumBattlers; i++) + { + gSprites[task->tbattlerSpriteIds(i)].x2 = xOffset; + } } +#undef tState +#undef tDelay +#undef tTimer +#undef tMaxTime +#undef tbattlerSpriteIds +#undef tNumBattlers +#undef tInitialX +#undef tHorizOffset +#undef tInitHorizOffset + void AnimTask_IsPowerOver99(u8 taskId) { gBattleAnimArgs[15] = gAnimMovePower > 99; @@ -696,19 +723,21 @@ void AnimTask_PositionFissureBgOnBattler(u8 taskId) if (gBattleAnimArgs[0] > 1) battler ^= BIT_FLANK; - newTask = &gTasks[CreateTask(sub_80B98A8, gBattleAnimArgs[1])]; - newTask->data[1] = (32 - GetBattlerSpriteCoord(battler, 2)) & 0x1FF; - newTask->data[2] = (64 - GetBattlerSpriteCoord(battler, 3)) & 0xFF; + newTask = &gTasks[CreateTask(WaitForFissureCompletion, gBattleAnimArgs[1])]; + newTask->data[1] = (32 - GetBattlerSpriteCoord(battler, BATTLER_COORD_X_2)) & 0x1FF; + newTask->data[2] = (64 - GetBattlerSpriteCoord(battler, BATTLER_COORD_Y_PIC_OFFSET)) & 0xFF; gBattle_BG3_X = newTask->data[1]; gBattle_BG3_Y = newTask->data[2]; newTask->data[3] = gBattleAnimArgs[2]; DestroyAnimVisualTask(taskId); } -static void sub_80B98A8(u8 taskId) +static void WaitForFissureCompletion(u8 taskId) { struct Task *task = &gTasks[taskId]; + // Holds the BG3 offsets until gBattleAnimArgs[7] + // is set to a special terminator value. if (gBattleAnimArgs[7] == task->data[3]) { gBattle_BG3_X = 0; diff --git a/src/ice.c b/src/battle_anim_ice.c similarity index 91% rename from src/ice.c rename to src/battle_anim_ice.c index 8e09574a9..f70edfb83 100644 --- a/src/ice.c +++ b/src/battle_anim_ice.c @@ -9,21 +9,21 @@ struct HailStruct { - s32 unk0:10; - s32 unk1:10; - s32 unk2:8; + s32 x:10; + s32 y:10; + s32 bPosition:8; s32 unk3:4; }; -static void sub_80AF108(struct Sprite *sprite); -static void sub_80AF28C(struct Sprite *sprite); +static void AnimUnusedIceCrystalThrow(struct Sprite *sprite); +static void AnimUnusedIceCrystalThrow_Step(struct Sprite *sprite); static void AnimIcePunchSwirlingParticle(struct Sprite *sprite); static void AnimIceBeamParticle(struct Sprite *sprite); static void AnimIceEffectParticle(struct Sprite *sprite); static void AnimFlickerIceEffectParticle(struct Sprite *sprite); +static void AnimSwirlingSnowball(struct Sprite *sprite); static void AnimSwirlingSnowball_Step1(struct Sprite *sprite); static void AnimSwirlingSnowball_Step2(struct Sprite *sprite); -static void AnimSwirlingSnowball_Step3(struct Sprite *sprite); static void AnimSwirlingSnowball_End(struct Sprite *sprite); static void AnimMoveParticleBeyondTarget(struct Sprite *sprite); static void AnimWiggleParticleTowardsTarget(struct Sprite *sprite); @@ -39,25 +39,24 @@ static void InitIceBallAnim(struct Sprite *sprite); static void AnimThrowIceBall(struct Sprite *sprite); static void InitIceBallParticle(struct Sprite *sprite); static void AnimIceBallParticle(struct Sprite *sprite); -static void AnimTask_Haze2(u8 taskId); -static void AnimTask_OverlayFogTiles(u8 taskId); +static void AnimTask_HazeScrollingFog_Step(u8 taskId); +static void AnimTask_MistBallFog_Step(u8 taskId); static void AnimTask_Hail2(u8 taskId); static bool8 GenerateHailParticle(u8 hailStructId, u8 affineAnimNum, u8 taskId, u8 c); -static const union AnimCmd gUnknown_83E62C0[] = +static const union AnimCmd sAnim_Unused[] = { ANIMCMD_FRAME(0, 5, .hFlip = TRUE), ANIMCMD_FRAME(1, 5, .hFlip = TRUE), ANIMCMD_JUMP(0), }; -static const union AnimCmd *const gUnknown_83E62CC[] = +static const union AnimCmd *const sAnims_Unused[] = { - gUnknown_83E62C0, + sAnim_Unused, }; -// not used -static const struct SpriteTemplate gUnknown_83E62D0 = +static const struct SpriteTemplate sUnusedIceCrystalThrowSpriteTemplate = { .tileTag = ANIM_TAG_ICE_CRYSTALS, .paletteTag = ANIM_TAG_ICE_CRYSTALS, @@ -65,10 +64,10 @@ static const struct SpriteTemplate gUnknown_83E62D0 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80AF108, + .callback = AnimUnusedIceCrystalThrow, }; -static const union AnimCmd gUnknown_83E62E8[] = +static const union AnimCmd sAnim_IceCrystalLargeChunk[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, @@ -105,10 +104,10 @@ static const union AnimCmd sAnim_SmallBubblePair[] = ANIMCMD_JUMP(0), }; -// unused -static const union AnimCmd *const gUnknown_83E631C[] = +// Unused, contains just the top left corner of the large ice crystal +static const union AnimCmd *const sAnims_IceCrystalLargeChunk[] = { - gUnknown_83E62E8, + sAnim_IceCrystalLargeChunk, }; static const union AnimCmd *const sAnims_IceCrystalLarge[] = @@ -245,7 +244,7 @@ const struct SpriteTemplate gSwirlingSnowballSpriteTemplate = .anims = sAnims_Snowball, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = AnimSwirlingSnowball_Step1, + .callback = AnimSwirlingSnowball, }; const struct SpriteTemplate gBlizzardIceCrystalSpriteTemplate = @@ -332,7 +331,7 @@ const struct SpriteTemplate gSmogCloudSpriteTemplate = .callback = InitSwirlingFogAnim, }; -static const u8 gUnknown_83E64D4[] = +static const u8 sHazeBlendAmounts[] = { 0, 1, 2, 2, 2, 2, 3, 4, 4, 4, 5, 6, 6, 6, 6, 7, 8, 8, 8, 9, }; @@ -348,7 +347,7 @@ const struct SpriteTemplate gMistBallSpriteTemplate = .callback = AnimThrowMistBall, }; -static const u8 gUnknown_83E6500[] = +static const u8 sMistBlendAmounts[] = { 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 5, }; @@ -366,16 +365,16 @@ const struct SpriteTemplate gPoisonGasCloudSpriteTemplate = static const struct HailStruct sHailCoordData[] = { - {100, 120, 0, 2}, - {85, 120, 0, 0}, - {242, 120, 1, 1}, - {66, 120, 2, 1}, - {182, 120, 3, 0}, - {60, 120, 0, 2}, - {214, 120, 1, 0}, - {113, 120, 0, 1}, - {210, 120, 3, 1}, - {38, 120, 2, 0}, + {.x = 100, .y = 120, .bPosition = B_POSITION_PLAYER_LEFT, .unk3 = 2}, + {.x = 85, .y = 120, .bPosition = B_POSITION_PLAYER_LEFT, .unk3 = 0}, + {.x = 242, .y = 120, .bPosition = B_POSITION_OPPONENT_LEFT, .unk3 = 1}, + {.x = 66, .y = 120, .bPosition = B_POSITION_PLAYER_RIGHT, .unk3 = 1}, + {.x = 182, .y = 120, .bPosition = B_POSITION_OPPONENT_RIGHT, .unk3 = 0}, + {.x = 60, .y = 120, .bPosition = B_POSITION_PLAYER_LEFT, .unk3 = 2}, + {.x = 214, .y = 120, .bPosition = B_POSITION_OPPONENT_LEFT, .unk3 = 0}, + {.x = 113, .y = 120, .bPosition = B_POSITION_PLAYER_LEFT, .unk3 = 1}, + {.x = 210, .y = 120, .bPosition = B_POSITION_OPPONENT_RIGHT, .unk3 = 1}, + {.x = 38, .y = 120, .bPosition = B_POSITION_PLAYER_RIGHT, .unk3 = 0}, }; static const union AffineAnimCmd sAffineAnim_HailParticle_0[] = @@ -518,8 +517,7 @@ const struct SpriteTemplate gIceBallImpactShardSpriteTemplate = .callback = InitIceBallParticle, }; -// not used -static void sub_80AF108(struct Sprite *sprite) +static void AnimUnusedIceCrystalThrow(struct Sprite *sprite) { s16 targetX, targetY, attackerX, attackerY; @@ -533,13 +531,15 @@ static void sub_80AF108(struct Sprite *sprite) sprite->data[2] = gBattleAnimArgs[2] + targetX; sprite->data[3] = gBattleAnimArgs[1] + attackerY; sprite->data[4] = gBattleAnimArgs[3] + targetY; - SetupLinearTranslationWithFixedDuration(sprite); + ConvertPosDataToTranslateLinearData(sprite); // won't match with while loop - for (; (targetX >= -32 && targetX <= 272) && (targetY >= -32 && targetY <= 192); targetX += sprite->data[1], targetY += sprite->data[2]) + for (; (targetX >= -32 && targetX <= DISPLAY_WIDTH + 32) && (targetY >= -32 && targetY <= DISPLAY_HEIGHT + 32); + targetX += sprite->data[1], targetY += sprite->data[2]) ; sprite->data[1] = -sprite->data[1]; sprite->data[2] = -sprite->data[2]; - for (; (attackerX >= -32 && attackerX <= 272) && (attackerY >= -32 && attackerY <= 192); attackerX += sprite->data[1], attackerY += sprite->data[2]) + for (; (attackerX >= -32 && attackerX <= DISPLAY_WIDTH + 32) && (attackerY >= -32 && attackerY <= DISPLAY_HEIGHT + 32); + attackerX += sprite->data[1], attackerY += sprite->data[2]) ; sprite->x = attackerX; sprite->y = attackerY; @@ -548,14 +548,13 @@ static void sub_80AF108(struct Sprite *sprite) sprite->data[2] = targetX; sprite->data[3] = attackerY; sprite->data[4] = targetY; - SetupLinearTranslationWithFixedDuration(sprite); + ConvertPosDataToTranslateLinearData(sprite); sprite->data[3] = gBattleAnimArgs[5]; sprite->data[4] = gBattleAnimArgs[6]; - sprite->callback = sub_80AF28C; + sprite->callback = AnimUnusedIceCrystalThrow_Step; } -// not used -static void sub_80AF28C(struct Sprite *sprite) +static void AnimUnusedIceCrystalThrow_Step(struct Sprite *sprite) { if (sprite->data[0] != 0) { @@ -584,7 +583,7 @@ static void AnimIcePunchSwirlingParticle(struct Sprite *sprite) sprite->data[3] = 30; sprite->data[4] = -512; StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); - sprite->callback = TranslateSpriteInGrowingCircleOverDuration; + sprite->callback = TranslateSpriteInGrowingCircle; sprite->callback(sprite); } @@ -645,7 +644,7 @@ static void AnimFlickerIceEffectParticle(struct Sprite *sprite) // arg 3: target y offset // arg 4: particle speed // arg 5: multiple targets? (boolean) -static void AnimSwirlingSnowball_Step1(struct Sprite *sprite) +static void AnimSwirlingSnowball(struct Sprite *sprite) { s32 i; s16 tempDataHolder[8]; @@ -676,8 +675,9 @@ static void AnimSwirlingSnowball_Step1(struct Sprite *sprite) { sprite->data[0] = 1; AnimFastTranslateLinear(sprite); - if ((u32)(sprite->x + sprite->x2 + 16) > 272 - || sprite->y + sprite->y2 > 160 + if (sprite->x + sprite->x2 > DISPLAY_WIDTH + 16 + || sprite->x + sprite->x2 < -16 + || sprite->y + sprite->y2 > DISPLAY_HEIGHT || sprite->y + sprite->y2 < -16) break; } @@ -686,11 +686,11 @@ static void AnimSwirlingSnowball_Step1(struct Sprite *sprite) sprite->x2 = sprite->y2 = 0; for (i = 0; i < 8; ++i) sprite->data[i] = tempDataHolder[i]; - sprite->callback = InitAndStartAnimFastLinearTranslationWithSpeed; - StoreSpriteCallbackInData6(sprite, AnimSwirlingSnowball_Step2); + sprite->callback = InitAnimFastLinearTranslationWithSpeedAndPos; + StoreSpriteCallbackInData6(sprite, AnimSwirlingSnowball_Step1); } -static void AnimSwirlingSnowball_Step2(struct Sprite *sprite) +static void AnimSwirlingSnowball_Step1(struct Sprite *sprite) { s16 tempVar; @@ -703,11 +703,11 @@ static void AnimSwirlingSnowball_Step2(struct Sprite *sprite) sprite->data[3] = Sin(sprite->data[0], tempVar); sprite->data[4] = Cos(sprite->data[0], 0xF); sprite->data[5] = 0; - sprite->callback = AnimSwirlingSnowball_Step3; + sprite->callback = AnimSwirlingSnowball_Step2; sprite->callback(sprite); } -static void AnimSwirlingSnowball_Step3(struct Sprite *sprite) +static void AnimSwirlingSnowball_Step2(struct Sprite *sprite) { s16 tempVar = GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER ? 20 : -20; @@ -780,8 +780,9 @@ static void AnimMoveParticleBeyondTarget(struct Sprite *sprite) { sprite->data[0] = 1; AnimFastTranslateLinear(sprite); - if ((u32)(sprite->x + sprite->x2 + 16) > 272 - || sprite->y + sprite->y2 > 160 + if (sprite->x + sprite->x2 > DISPLAY_WIDTH + 16 + || sprite->x + sprite->x2 < -16 + || sprite->y + sprite->y2 > DISPLAY_HEIGHT || sprite->y + sprite->y2 < -16) break; } @@ -806,8 +807,9 @@ static void AnimWiggleParticleTowardsTarget(struct Sprite *sprite) sprite->data[7] = (sprite->data[7] + sprite->data[6]) & 0xFF; if (sprite->data[0] == 1) { - if ((u32)(sprite->x + sprite->x2 + 16) > 272 - || sprite->y + sprite->y2 > 160 + if (sprite->x + sprite->x2 > DISPLAY_WIDTH + 16 + || sprite->x + sprite->x2 < -16 + || sprite->y + sprite->y2 > DISPLAY_HEIGHT || sprite->y + sprite->y2 < -16) DestroyAnimSprite(sprite); } @@ -927,7 +929,7 @@ static void AnimSwirlingFogAnim(struct Sprite *sprite) } // Fades mons to black and places foggy overlay in Haze. -void AnimTask_Haze1(u8 taskId) +void AnimTask_HazeScrollingFog(u8 taskId) { struct BattleAnimBgData animBg; @@ -947,10 +949,10 @@ void AnimTask_Haze1(u8 taskId) LoadPalette(&gDefaultWeatherSpritePalette, animBg.paletteId * 16, 32); if (IsContest()) RelocateBattleBgPal(animBg.paletteId, animBg.bgTilemap, 0, 0); - gTasks[taskId].func = AnimTask_Haze2; + gTasks[taskId].func = AnimTask_HazeScrollingFog_Step; } -static void AnimTask_Haze2(u8 taskId) +static void AnimTask_HazeScrollingFog_Step(u8 taskId) { struct BattleAnimBgData animBg; @@ -962,7 +964,7 @@ static void AnimTask_Haze2(u8 taskId) { gTasks[taskId].data[10] = 0; ++gTasks[taskId].data[9]; - gTasks[taskId].data[11] = gUnknown_83E64D4[gTasks[taskId].data[9]]; + gTasks[taskId].data[11] = sHazeBlendAmounts[gTasks[taskId].data[9]]; SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[11], 16 - gTasks[taskId].data[11])); if (gTasks[taskId].data[11] == 9) { @@ -1024,8 +1026,7 @@ static void AnimThrowMistBall(struct Sprite *sprite) sprite->callback = TranslateAnimSpriteToTargetMonLocation; } -// Displays misty background in Mist Ball. -void AnimTask_LoadMistTiles(u8 taskId) +void AnimTask_MistBallFog(u8 taskId) { struct BattleAnimBgData animBg; @@ -1046,10 +1047,10 @@ void AnimTask_LoadMistTiles(u8 taskId) if (IsContest()) RelocateBattleBgPal(animBg.paletteId, animBg.bgTilemap, 0, 0); gTasks[taskId].data[15] = -1; - gTasks[taskId].func = AnimTask_OverlayFogTiles; + gTasks[taskId].func = AnimTask_MistBallFog_Step; } -static void AnimTask_OverlayFogTiles(u8 taskId) +static void AnimTask_MistBallFog_Step(u8 taskId) { struct BattleAnimBgData animBg; @@ -1058,7 +1059,7 @@ static void AnimTask_OverlayFogTiles(u8 taskId) { case 0: gTasks[taskId].data[9] += 1; - gTasks[taskId].data[11] = gUnknown_83E6500[gTasks[taskId].data[9]]; + gTasks[taskId].data[11] = sMistBlendAmounts[gTasks[taskId].data[9]]; SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[11], 17 - gTasks[taskId].data[11])); if (gTasks[taskId].data[11] == 5) { @@ -1230,7 +1231,7 @@ static void MovePoisonGasCloud(struct Sprite *sprite) sprite->data[2] = -0x10; ++sprite->data[7]; sprite->x2 = sprite->y2 = 0; - BattleAnim_InitLinearTranslationWithDuration(sprite); + InitAnimLinearTranslationWithSpeed(sprite); } break; case 2: @@ -1249,7 +1250,7 @@ static void MovePoisonGasCloud(struct Sprite *sprite) } // Creates Hail. -void AnimTask_Hail1(u8 taskId) +void AnimTask_Hail(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -1310,7 +1311,7 @@ static bool8 GenerateHailParticle(u8 hailStructId, u8 affineAnimNum, u8 taskId, if (unk != 2) { - id = GetBattlerAtPosition(sHailCoordData[hailStructId].unk2); + id = GetBattlerAtPosition(sHailCoordData[hailStructId].bPosition); if (IsBattlerSpriteVisible(id)) { possibleBool = TRUE; @@ -1330,14 +1331,14 @@ static bool8 GenerateHailParticle(u8 hailStructId, u8 affineAnimNum, u8 taskId, } else { - battlerX = (sHailCoordData[hailStructId].unk0); - battlerY = (sHailCoordData[hailStructId].unk1); + battlerX = sHailCoordData[hailStructId].x; + battlerY = sHailCoordData[hailStructId].y; } } else { - battlerX = (sHailCoordData[hailStructId].unk0); - battlerY = (sHailCoordData[hailStructId].unk1); + battlerX = sHailCoordData[hailStructId].x; + battlerY = sHailCoordData[hailStructId].y; } spriteX = battlerX - ((battlerY + 8) / 2); id = CreateSprite(&sHailParticleSpriteTemplate, spriteX, -8, 18); diff --git a/src/battle_anim_mon_movement.c b/src/battle_anim_mon_movement.c index 2ee4697ac..a51408016 100644 --- a/src/battle_anim_mon_movement.c +++ b/src/battle_anim_mon_movement.c @@ -7,27 +7,27 @@ #undef abs #define abs(x) ((x) < 0 ? -(x) : (x)) -static void AnimTask_ShakeMonStep(u8 taskId); +static void AnimTask_ShakeMon_Step(u8 taskId); static void AnimTask_ShakeMon2Step(u8 taskId); -static void AnimTask_ShakeMonInPlaceStep(u8 taskId); -static void AnimTask_ShakeAndSinkMonStep(u8 taskId); -static void AnimTask_TranslateMonEllipticalStep(u8 taskId); +static void AnimTask_ShakeMonInPlace_Step(u8 taskId); +static void AnimTask_ShakeAndSinkMon_Step(u8 taskId); +static void AnimTask_TranslateMonElliptical_Step(u8 taskId); static void DoHorizontalLunge(struct Sprite *sprite); static void ReverseHorizontalLungeDirection(struct Sprite *sprite); static void DoVerticalDip(struct Sprite *sprite); static void ReverseVerticalDipDirection(struct Sprite *sprite); static void SlideMonToOriginalPos(struct Sprite *sprite); -static void SlideMonToOriginalPosStep(struct Sprite *sprite); +static void SlideMonToOriginalPos_Step(struct Sprite *sprite); static void SlideMonToOffset(struct Sprite *sprite); -static void sub_8099394(struct Sprite *sprite); -static void sub_809946C(struct Sprite *sprite); -static void AnimTask_WindUpLungePart1(u8 taskId); -static void AnimTask_WindUpLungePart2(u8 taskId); -static void sub_80996B8(u8 taskId); -static void AnimTask_SwayMonStep(u8 taskId); -static void AnimTask_ScaleMonAndRestoreStep(u8 taskId); -static void sub_8099B54(u8 taskId); -static void sub_8099CB8(u8 taskId); +static void SlideMonToOffsetAndBack(struct Sprite *sprite); +static void SlideMonToOffsetAndBack_End(struct Sprite *sprite); +static void AnimTask_WindUpLunge_Step1(u8 taskId); +static void AnimTask_WindUpLunge_Step2(u8 taskId); +static void AnimTask_SlideOffScreen_Step(u8 taskId); +static void AnimTask_SwayMon_Step(u8 taskId); +static void AnimTask_ScaleMonAndRestore_Step(u8 taskId); +static void AnimTask_RotateMonSpriteToSide_Step(u8 taskId); +static void AnimTask_ShakeTargetBasedOnMovePowerOrDmg_Step(u8 taskId); const struct SpriteTemplate gHorizontalLungeSpriteTemplate = { @@ -81,7 +81,7 @@ const struct SpriteTemplate gSlideMonToOffsetAndBackSpriteTemplate = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8099394, + .callback = SlideMonToOffsetAndBack, }; // Task to facilitate simple shaking of a pokemon's picture in battle. @@ -95,24 +95,24 @@ void AnimTask_ShakeMon(u8 taskId) { u8 spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); - if (spriteId == 0xFF) - DestroyAnimVisualTask(taskId); - else + if (spriteId == SPRITE_NONE) { - gSprites[spriteId].x2 = gBattleAnimArgs[1]; - gSprites[spriteId].y2 = gBattleAnimArgs[2]; - gTasks[taskId].data[0] = spriteId; - gTasks[taskId].data[1] = gBattleAnimArgs[3]; - gTasks[taskId].data[2] = gBattleAnimArgs[4]; - gTasks[taskId].data[3] = gBattleAnimArgs[4]; - gTasks[taskId].data[4] = gBattleAnimArgs[1]; - gTasks[taskId].data[5] = gBattleAnimArgs[2]; - gTasks[taskId].func = AnimTask_ShakeMonStep; - gTasks[taskId].func(taskId); + DestroyAnimVisualTask(taskId); + return; } + gSprites[spriteId].x2 = gBattleAnimArgs[1]; + gSprites[spriteId].y2 = gBattleAnimArgs[2]; + gTasks[taskId].data[0] = spriteId; + gTasks[taskId].data[1] = gBattleAnimArgs[3]; + gTasks[taskId].data[2] = gBattleAnimArgs[4]; + gTasks[taskId].data[3] = gBattleAnimArgs[4]; + gTasks[taskId].data[4] = gBattleAnimArgs[1]; + gTasks[taskId].data[5] = gBattleAnimArgs[2]; + gTasks[taskId].func = AnimTask_ShakeMon_Step; + gTasks[taskId].func(taskId); } -static void AnimTask_ShakeMonStep(u8 taskId) +static void AnimTask_ShakeMon_Step(u8 taskId) { if (gTasks[taskId].data[3] == 0) { @@ -152,7 +152,7 @@ void AnimTask_ShakeMon2(u8 taskId) if (gBattleAnimArgs[0] < MAX_BATTLERS_COUNT) { spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); - if (spriteId == 0xFF) + if (spriteId == SPRITE_NONE) abort = TRUE; } else if (gBattleAnimArgs[0] != 8) @@ -178,21 +178,23 @@ void AnimTask_ShakeMon2(u8 taskId) } else spriteId = gBattlerSpriteIds[gBattleAnimAttacker]; + if (abort) - DestroyAnimVisualTask(taskId); - else { - gSprites[spriteId].x2 = gBattleAnimArgs[1]; - gSprites[spriteId].y2 = gBattleAnimArgs[2]; - gTasks[taskId].data[0] = spriteId; - gTasks[taskId].data[1] = gBattleAnimArgs[3]; - gTasks[taskId].data[2] = gBattleAnimArgs[4]; - gTasks[taskId].data[3] = gBattleAnimArgs[4]; - gTasks[taskId].data[4] = gBattleAnimArgs[1]; - gTasks[taskId].data[5] = gBattleAnimArgs[2]; - gTasks[taskId].func = AnimTask_ShakeMon2Step; - gTasks[taskId].func(taskId); + DestroyAnimVisualTask(taskId); + return; } + + gSprites[spriteId].x2 = gBattleAnimArgs[1]; + gSprites[spriteId].y2 = gBattleAnimArgs[2]; + gTasks[taskId].data[0] = spriteId; + gTasks[taskId].data[1] = gBattleAnimArgs[3]; + gTasks[taskId].data[2] = gBattleAnimArgs[4]; + gTasks[taskId].data[3] = gBattleAnimArgs[4]; + gTasks[taskId].data[4] = gBattleAnimArgs[1]; + gTasks[taskId].data[5] = gBattleAnimArgs[2]; + gTasks[taskId].func = AnimTask_ShakeMon2Step; + gTasks[taskId].func(taskId); } static void AnimTask_ShakeMon2Step(u8 taskId) @@ -231,25 +233,25 @@ void AnimTask_ShakeMonInPlace(u8 taskId) { u8 spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); - if (spriteId == 0xFF) - DestroyAnimVisualTask(taskId); - else + if (spriteId == SPRITE_NONE) { - gSprites[spriteId].x2 += gBattleAnimArgs[1]; - gSprites[spriteId].y2 += gBattleAnimArgs[2]; - gTasks[taskId].data[0] = spriteId; - gTasks[taskId].data[1] = 0; - gTasks[taskId].data[2] = gBattleAnimArgs[3]; - gTasks[taskId].data[3] = 0; - gTasks[taskId].data[4] = gBattleAnimArgs[4]; - gTasks[taskId].data[5] = gBattleAnimArgs[1] * 2; - gTasks[taskId].data[6] = gBattleAnimArgs[2] * 2; - gTasks[taskId].func = AnimTask_ShakeMonInPlaceStep; - gTasks[taskId].func(taskId); + DestroyAnimVisualTask(taskId); + return; } + gSprites[spriteId].x2 += gBattleAnimArgs[1]; + gSprites[spriteId].y2 += gBattleAnimArgs[2]; + gTasks[taskId].data[0] = spriteId; + gTasks[taskId].data[1] = 0; + gTasks[taskId].data[2] = gBattleAnimArgs[3]; + gTasks[taskId].data[3] = 0; + gTasks[taskId].data[4] = gBattleAnimArgs[4]; + gTasks[taskId].data[5] = gBattleAnimArgs[1] * 2; + gTasks[taskId].data[6] = gBattleAnimArgs[2] * 2; + gTasks[taskId].func = AnimTask_ShakeMonInPlace_Step; + gTasks[taskId].func(taskId); } -static void AnimTask_ShakeMonInPlaceStep(u8 taskId) +static void AnimTask_ShakeMonInPlace_Step(u8 taskId) { if (gTasks[taskId].data[3] == 0) { @@ -299,22 +301,22 @@ void AnimTask_ShakeAndSinkMon(u8 taskId) gTasks[taskId].data[2] = gBattleAnimArgs[2]; gTasks[taskId].data[3] = gBattleAnimArgs[3]; gTasks[taskId].data[4] = gBattleAnimArgs[4]; - gTasks[taskId].func = AnimTask_ShakeAndSinkMonStep; + gTasks[taskId].func = AnimTask_ShakeAndSinkMon_Step; gTasks[taskId].func(taskId); } -static void AnimTask_ShakeAndSinkMonStep(u8 taskId) +static void AnimTask_ShakeAndSinkMon_Step(u8 taskId) { u8 spriteId = gTasks[taskId].data[0]; - s16 data1 = gTasks[taskId].data[1]; + s16 x = gTasks[taskId].data[1]; if (gTasks[taskId].data[2] == gTasks[taskId].data[8]++) { gTasks[taskId].data[8] = 0; - if (gSprites[spriteId].x2 == data1) - data1 = -data1; - gSprites[spriteId].x2 += data1; + if (gSprites[spriteId].x2 == x) + x = -x; + gSprites[spriteId].x2 += x; } - gTasks[taskId].data[1] = data1; + gTasks[taskId].data[1] = x; gTasks[taskId].data[9] += gTasks[taskId].data[3]; gSprites[spriteId].y2 = gTasks[taskId].data[9] >> 8; if (--gTasks[taskId].data[4] == 0) @@ -342,11 +344,11 @@ void AnimTask_TranslateMonElliptical(u8 taskId) gTasks[taskId].data[2] = gBattleAnimArgs[2]; gTasks[taskId].data[3] = gBattleAnimArgs[3]; gTasks[taskId].data[4] = wavePeriod; - gTasks[taskId].func = AnimTask_TranslateMonEllipticalStep; + gTasks[taskId].func = AnimTask_TranslateMonElliptical_Step; gTasks[taskId].func(taskId); } -static void AnimTask_TranslateMonEllipticalStep(u8 taskId) +static void AnimTask_TranslateMonElliptical_Step(u8 taskId) { u8 spriteId = gTasks[taskId].data[0]; gSprites[spriteId].x2 = Sin(gTasks[taskId].data[5], gTasks[taskId].data[1]); @@ -395,14 +397,14 @@ static void DoHorizontalLunge(struct Sprite *sprite) sprite->data[3] = gBattlerSpriteIds[gBattleAnimAttacker]; sprite->data[4] = gBattleAnimArgs[0]; StoreSpriteCallbackInData6(sprite, ReverseHorizontalLungeDirection); - sprite->callback = TranslateMonSpriteLinear; + sprite->callback = TranslateSpriteLinearById; } static void ReverseHorizontalLungeDirection(struct Sprite *sprite) { sprite->data[0] = sprite->data[4]; sprite->data[1] = -sprite->data[1]; - sprite->callback = TranslateMonSpriteLinear; + sprite->callback = TranslateSpriteLinearById; StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } @@ -422,14 +424,14 @@ static void DoVerticalDip(struct Sprite *sprite) sprite->data[3] = spriteId; sprite->data[4] = gBattleAnimArgs[0]; StoreSpriteCallbackInData6(sprite, ReverseVerticalDipDirection); - sprite->callback = TranslateMonSpriteLinear; + sprite->callback = TranslateSpriteLinearById; } static void ReverseVerticalDipDirection(struct Sprite *sprite) { sprite->data[0] = sprite->data[4]; sprite->data[2] = -sprite->data[2]; - sprite->callback = TranslateMonSpriteLinear; + sprite->callback = TranslateSpriteLinearById; StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } @@ -462,19 +464,19 @@ static void SlideMonToOriginalPos(struct Sprite *sprite) sprite->data[1] = 0; sprite->data[7] = gBattleAnimArgs[1]; sprite->data[7] |= spriteId << 8; - sprite->callback = SlideMonToOriginalPosStep; + sprite->callback = SlideMonToOriginalPos_Step; } -static void SlideMonToOriginalPosStep(struct Sprite *sprite) +static void SlideMonToOriginalPos_Step(struct Sprite *sprite) { u8 data7 = sprite->data[7]; - struct Sprite *otherSprite = &gSprites[sprite->data[7] >> 8]; + struct Sprite *monSprite = &gSprites[sprite->data[7] >> 8]; if (sprite->data[0] == 0) { if (data7 == 1 || data7 == 0) - otherSprite->x2 = 0; + monSprite->x2 = 0; if (data7 == 2 || data7 == 0) - otherSprite->y2 = 0; + monSprite->y2 = 0; DestroyAnimSprite(sprite); } else @@ -482,8 +484,8 @@ static void SlideMonToOriginalPosStep(struct Sprite *sprite) sprite->data[0]--; sprite->data[3] += sprite->data[1]; sprite->data[4] += sprite->data[2]; - otherSprite->x2 = (sprite->data[3] >> 8) + sprite->data[5]; - otherSprite->y2 = (sprite->data[4] >> 8) + sprite->data[6]; + monSprite->x2 = (sprite->data[3] >> 8) + sprite->data[5]; + monSprite->y2 = (sprite->data[4] >> 8) + sprite->data[6]; } } @@ -498,12 +500,12 @@ static void SlideMonToOriginalPosStep(struct Sprite *sprite) static void SlideMonToOffset(struct Sprite *sprite) { u8 battlerId; - u8 spriteId; + u8 monSpriteId; if (gBattleAnimArgs[0] == 0) battlerId = gBattleAnimAttacker; else battlerId = gBattleAnimTarget; - spriteId = gBattlerSpriteIds[battlerId]; + monSpriteId = gBattlerSpriteIds[battlerId]; if (GetBattlerSide(battlerId) != B_SIDE_PLAYER) { gBattleAnimArgs[1] = -gBattleAnimArgs[1]; @@ -511,25 +513,25 @@ static void SlideMonToOffset(struct Sprite *sprite) gBattleAnimArgs[2] = -gBattleAnimArgs[2]; } sprite->data[0] = gBattleAnimArgs[4]; - sprite->data[1] = gSprites[spriteId].x; - sprite->data[2] = gSprites[spriteId].x + gBattleAnimArgs[1]; - sprite->data[3] = gSprites[spriteId].y; - sprite->data[4] = gSprites[spriteId].y + gBattleAnimArgs[2]; + sprite->data[1] = gSprites[monSpriteId].x; + sprite->data[2] = gSprites[monSpriteId].x + gBattleAnimArgs[1]; + sprite->data[3] = gSprites[monSpriteId].y; + sprite->data[4] = gSprites[monSpriteId].y + gBattleAnimArgs[2]; InitSpriteDataForLinearTranslation(sprite); sprite->data[3] = 0; sprite->data[4] = 0; - sprite->data[5] = spriteId; + sprite->data[5] = monSpriteId; sprite->invisible = TRUE; StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); - sprite->callback = TranslateMonSpriteLinearFixedPoint; + sprite->callback = TranslateSpriteLinearByIdFixedPoint; } -static void sub_8099394(struct Sprite *sprite) +static void SlideMonToOffsetAndBack(struct Sprite *sprite) { u8 battlerId; u8 spriteId; sprite->invisible = TRUE; - if (gBattleAnimArgs[0] == 0) + if (gBattleAnimArgs[0] == ANIM_ATTACKER) battlerId = gBattleAnimAttacker; else battlerId = gBattleAnimTarget; @@ -553,11 +555,11 @@ static void sub_8099394(struct Sprite *sprite) if (gBattleAnimArgs[5] == 0) StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); else - StoreSpriteCallbackInData6(sprite, sub_809946C); - sprite->callback = TranslateMonSpriteLinearFixedPoint; + StoreSpriteCallbackInData6(sprite, SlideMonToOffsetAndBack_End); + sprite->callback = TranslateSpriteLinearByIdFixedPoint; } -static void sub_809946C(struct Sprite *sprite) +static void SlideMonToOffsetAndBack_End(struct Sprite *sprite) { gSprites[sprite->data[5]].x2 = 0; gSprites[sprite->data[5]].y2 = 0; @@ -590,10 +592,10 @@ void AnimTask_WindUpLunge(u8 taskId) gTasks[taskId].data[5] = gBattleAnimArgs[5] * 256 / gBattleAnimArgs[6]; gTasks[taskId].data[6] = gBattleAnimArgs[6]; gTasks[taskId].data[7] = wavePeriod; - gTasks[taskId].func = AnimTask_WindUpLungePart1; + gTasks[taskId].func = AnimTask_WindUpLunge_Step1; } -static void AnimTask_WindUpLungePart1(u8 taskId) +static void AnimTask_WindUpLunge_Step1(u8 taskId) { u8 spriteId = gTasks[taskId].data[0]; gTasks[taskId].data[11] += gTasks[taskId].data[1]; @@ -601,10 +603,10 @@ static void AnimTask_WindUpLungePart1(u8 taskId) gSprites[spriteId].y2 = Sin((u8)(gTasks[taskId].data[10] >> 8), gTasks[taskId].data[2]); gTasks[taskId].data[10] += gTasks[taskId].data[7]; if (--gTasks[taskId].data[3] == 0) - gTasks[taskId].func = AnimTask_WindUpLungePart2; + gTasks[taskId].func = AnimTask_WindUpLunge_Step2; } -static void AnimTask_WindUpLungePart2(u8 taskId) +static void AnimTask_WindUpLunge_Step2(u8 taskId) { u8 spriteId; @@ -620,17 +622,18 @@ static void AnimTask_WindUpLungePart2(u8 taskId) } } +// To move a mon off-screen when pushed out by Roar/Whirlwind void AnimTask_SlideOffScreen(u8 taskId) { u8 spriteId; switch (gBattleAnimArgs[0]) { - case 0: - case 1: + case ANIM_ATTACKER: + case ANIM_TARGET: spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); break; - case 2: + case ANIM_ATK_PARTNER: if (!IsBattlerSpriteVisible(gBattleAnimAttacker ^ BIT_FLANK)) { DestroyAnimVisualTask(taskId); @@ -638,7 +641,7 @@ void AnimTask_SlideOffScreen(u8 taskId) } spriteId = gBattlerSpriteIds[gBattleAnimAttacker ^ BIT_FLANK]; break; - case 3: + case ANIM_DEF_PARTNER: if (!IsBattlerSpriteVisible(gBattleAnimTarget ^ BIT_FLANK)) { DestroyAnimVisualTask(taskId); @@ -655,14 +658,14 @@ void AnimTask_SlideOffScreen(u8 taskId) gTasks[taskId].data[1] = gBattleAnimArgs[1]; else gTasks[taskId].data[1] = -gBattleAnimArgs[1]; - gTasks[taskId].func = sub_80996B8; + gTasks[taskId].func = AnimTask_SlideOffScreen_Step; } -static void sub_80996B8(u8 taskId) +static void AnimTask_SlideOffScreen_Step(u8 taskId) { u8 spriteId = gTasks[taskId].data[0]; gSprites[spriteId].x2 += gTasks[taskId].data[1]; - if (gSprites[spriteId].x2 + gSprites[spriteId].x < -0x20 || gSprites[spriteId].x2 + gSprites[spriteId].x > 0x110) + if (gSprites[spriteId].x2 + gSprites[spriteId].x < -32 || gSprites[spriteId].x2 + gSprites[spriteId].x > DISPLAY_WIDTH + 32) DestroyAnimVisualTask(taskId); } @@ -690,10 +693,10 @@ void AnimTask_SwayMon(u8 taskId) else gTasks[taskId].data[5] = gBattleAnimTarget; gTasks[taskId].data[12] = 1; - gTasks[taskId].func = AnimTask_SwayMonStep; + gTasks[taskId].func = AnimTask_SwayMon_Step; } -static void AnimTask_SwayMonStep(u8 taskId) +static void AnimTask_SwayMon_Step(u8 taskId) { u8 spriteId; u32 waveIndex; @@ -745,10 +748,10 @@ void AnimTask_ScaleMonAndRestore(u8 taskId) gTasks[taskId].data[4] = spriteId; gTasks[taskId].data[10] = 0x100; gTasks[taskId].data[11] = 0x100; - gTasks[taskId].func = AnimTask_ScaleMonAndRestoreStep; + gTasks[taskId].func = AnimTask_ScaleMonAndRestore_Step; } -static void AnimTask_ScaleMonAndRestoreStep(u8 taskId) +static void AnimTask_ScaleMonAndRestore_Step(u8 taskId) { u8 spriteId; gTasks[taskId].data[10] += gTasks[taskId].data[0]; @@ -789,7 +792,7 @@ void AnimTask_RotateMonSpriteToSide(u8 taskId) gTasks[taskId].data[7] = 1; else { - if (gBattleAnimArgs[2] == 0) + if (gBattleAnimArgs[2] == ANIM_ATTACKER) gTasks[taskId].data[7] = GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER ? 1 : 0; else gTasks[taskId].data[7] = GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER ? 1 : 0; @@ -802,16 +805,17 @@ void AnimTask_RotateMonSpriteToSide(u8 taskId) tmp = gTasks[taskId].data[4]; gTasks[taskId].data[4] = -tmp; } - gTasks[taskId].func = sub_8099B54; + gTasks[taskId].func = AnimTask_RotateMonSpriteToSide_Step; } +// Rotates mon to side and back to original position. For Peck and when a held item activates void AnimTask_RotateMonToSideAndRestore(u8 taskId) { u8 spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[2]); PrepareBattlerSpriteForRotScale(spriteId, 0); gTasks[taskId].data[1] = 0; gTasks[taskId].data[2] = gBattleAnimArgs[0]; - if (gBattleAnimArgs[2] == 0) + if (gBattleAnimArgs[2] == ANIM_ATTACKER) { if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) gBattleAnimArgs[1] = -gBattleAnimArgs[1]; @@ -831,16 +835,15 @@ void AnimTask_RotateMonToSideAndRestore(u8 taskId) gTasks[taskId].data[7] = 1; if (gTasks[taskId].data[7] ) { - s16 tmp; - tmp = gTasks[taskId].data[3]; + s16 tmp = gTasks[taskId].data[3]; gTasks[taskId].data[3] = -tmp; tmp = gTasks[taskId].data[4]; gTasks[taskId].data[4] = -tmp; } - gTasks[taskId].func = sub_8099B54; + gTasks[taskId].func = AnimTask_RotateMonSpriteToSide_Step; } -static void sub_8099B54(u8 taskId) +static void AnimTask_RotateMonSpriteToSide_Step(u8 taskId) { gTasks[taskId].data[3] += gTasks[taskId].data[4]; SetSpriteRotScale(gTasks[taskId].data[5], 0x100, 0x100, gTasks[taskId].data[3]); @@ -895,10 +898,10 @@ void AnimTask_ShakeTargetBasedOnMovePowerOrDmg(u8 taskId) gTasks[taskId].data[0] = 0; gTasks[taskId].data[1] = gBattleAnimArgs[1]; gTasks[taskId].data[2] = gBattleAnimArgs[2]; - gTasks[taskId].func = sub_8099CB8; + gTasks[taskId].func = AnimTask_ShakeTargetBasedOnMovePowerOrDmg_Step; } -static void sub_8099CB8(u8 taskId) +static void AnimTask_ShakeTargetBasedOnMovePowerOrDmg_Step(u8 taskId) { struct Task *task = &gTasks[taskId]; if (++task->data[0] > task->data[1]) diff --git a/src/battle_anim_mons.c b/src/battle_anim_mons.c index 81536395c..0060a881b 100644 --- a/src/battle_anim_mons.c +++ b/src/battle_anim_mons.c @@ -12,31 +12,31 @@ #define IS_DOUBLE_BATTLE() (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) static u8 GetBattlerSpriteFinal_Y(u8 battlerId, u16 species, bool8 a3); -static void PlayerThrowBall_RunLinearTranslation_ThenceSetCBtoStoredInData6(struct Sprite *sprite); -static void SpriteCB_RunAnimFastLinearTranslation(struct Sprite *sprite); -static bool8 Dummy_ReturnFalse(void); +static void PlayerThrowBall_AnimTranslateLinear_WithFollowup(struct Sprite *sprite); +static void AnimFastTranslateLinearWaitEnd(struct Sprite *sprite); +static bool8 ShouldRotScaleSpeciesBeFlipped(void); static void AnimThrowProjectile_Step(struct Sprite *sprite); static void AnimTask_AlphaFadeIn_Step(u8 taskId); static void AnimTask_BlendMonInAndOutSetup(struct Task *task); -static void AnimTask_BlendMonInAndOutStep(u8 taskId); +static void AnimTask_BlendMonInAndOut_Step(u8 taskId); static u16 GetBattlerYDeltaFromSpriteId(u8 spriteId); static void AnimTask_AttackerPunchWithTrace_Step(u8 taskId); -static void PunchAnim_CreateTraceSprite(struct Task *task, u8 taskId); -static void SpriteCB_PunchTrace(struct Sprite *sprite); -static void SpriteCB_WeatherBallUp_Step(struct Sprite *sprite); +static void CreateBattlerTrace(struct Task *task, u8 taskId); +static void AnimBattlerTrace(struct Sprite *sprite); +static void AnimWeatherBallUp_Step(struct Sprite *sprite); static EWRAM_DATA union AffineAnimCmd *sAnimTaskAffineAnim = NULL; -UNUSED static EWRAM_DATA u32 gUnknown_2037F2C = 0; // not used +static EWRAM_DATA u32 sUnused = 0; -static const struct UCoords8 sBattlerCoords[][4] = +static const struct UCoords8 sBattlerCoords[][MAX_BATTLERS_COUNT] = { - { + { // Single battle { 72, 80 }, { 176, 40 }, { 48, 40 }, { 112, 80 }, }, - { + { // Double battle { 32, 80 }, { 200, 40 }, { 90, 88 }, @@ -45,36 +45,40 @@ static const struct UCoords8 sBattlerCoords[][4] = }; // One entry for each of the four Castform forms. -const struct MonCoords gCastformFrontSpriteCoords[] = +const struct MonCoords gCastformFrontSpriteCoords[NUM_CASTFORM_FORMS] = { - { .size = 0x44, .y_offset = 17 }, // NORMAL - { .size = 0x66, .y_offset = 9 }, // SUN - { .size = 0x46, .y_offset = 9 }, // RAIN - { .size = 0x86, .y_offset = 8 }, // HAIL + [CASTFORM_NORMAL] = { .size = MON_COORDS_SIZE(32, 32), .y_offset = 17 }, + [CASTFORM_FIRE] = { .size = MON_COORDS_SIZE(48, 48), .y_offset = 9 }, + [CASTFORM_WATER] = { .size = MON_COORDS_SIZE(32, 48), .y_offset = 9 }, + [CASTFORM_ICE] = { .size = MON_COORDS_SIZE(64, 48), .y_offset = 8 }, }; -static const u8 sCastformElevations[] = +static const u8 sCastformElevations[NUM_CASTFORM_FORMS] = { - 13, // NORMAL - 14, // SUN - 13, // RAIN - 13, // HAIL + [CASTFORM_NORMAL] = 13, + [CASTFORM_FIRE] = 14, + [CASTFORM_WATER] = 13, + [CASTFORM_ICE] = 13, }; // Y position of the backsprite for each of the four Castform forms. -static const u8 sCastformBackSpriteYCoords[] = +static const u8 sCastformBackSpriteYCoords[NUM_CASTFORM_FORMS] = { - 0, // NORMAL - 0, // SUN - 0, // RAIN - 0, // HAIL + [CASTFORM_NORMAL] = 0, + [CASTFORM_FIRE] = 0, + [CASTFORM_WATER] = 0, + [CASTFORM_ICE] = 0, }; -static const struct SpriteTemplate sSpriteTemplates_AdditionalForAnim[] = +// Placeholders for pokemon sprites to be created for a move animation effect (e.g. Role Play / Snatch) +#define TAG_MOVE_EFFECT_MON_1 55125 +#define TAG_MOVE_EFFECT_MON_2 55126 + +static const struct SpriteTemplate sSpriteTemplates_MoveEffectMons[] = { { - .tileTag = 55125, - .paletteTag = 55125, + .tileTag = TAG_MOVE_EFFECT_MON_1, + .paletteTag = TAG_MOVE_EFFECT_MON_1, .oam = &gOamData_AffineNormal_ObjNormal_64x64, .anims = gDummySpriteAnimTable, .images = NULL, @@ -82,8 +86,8 @@ static const struct SpriteTemplate sSpriteTemplates_AdditionalForAnim[] = .callback = SpriteCallbackDummy, }, { - .tileTag = 55126, - .paletteTag = 55126, + .tileTag = TAG_MOVE_EFFECT_MON_2, + .paletteTag = TAG_MOVE_EFFECT_MON_2, .oam = &gOamData_AffineNormal_ObjNormal_64x64, .anims = gDummySpriteAnimTable, .images = NULL, @@ -92,10 +96,10 @@ static const struct SpriteTemplate sSpriteTemplates_AdditionalForAnim[] = } }; -static const struct SpriteSheet sMoveAnimAdtlSprSheets[] = +static const struct SpriteSheet sSpriteSheets_MoveEffectMons[] = { - { gMiscBlank_Gfx, 0x800, 55125 }, - { gMiscBlank_Gfx, 0x800, 55126 }, // unused + { gMiscBlank_Gfx, MON_PIC_SIZE, TAG_MOVE_EFFECT_MON_1 }, + { gMiscBlank_Gfx, MON_PIC_SIZE, TAG_MOVE_EFFECT_MON_2 }, }; u8 GetBattlerSpriteCoord(u8 battlerId, u8 coordType) @@ -245,8 +249,8 @@ static u8 GetBattlerSpriteFinal_Y(u8 battlerId, u16 species, bool8 a3) { if (GetBattlerSide(battlerId) == B_SIDE_PLAYER) y += 8; - if (y > 104) - y = 104; + if (y > DISPLAY_HEIGHT - MON_PIC_HEIGHT + 8) + y = DISPLAY_HEIGHT - MON_PIC_HEIGHT + 8; } return y; } @@ -339,7 +343,7 @@ u8 GetAnimBattlerSpriteId(u8 animBattler) } else { - return 0xFF; + return SPRITE_NONE; } } else if (animBattler == ANIM_TARGET) @@ -351,13 +355,13 @@ u8 GetAnimBattlerSpriteId(u8 animBattler) } else { - return 0xFF; + return SPRITE_NONE; } } else if (animBattler == ANIM_ATK_PARTNER) { if (!IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimAttacker))) - return 0xFF; + return SPRITE_NONE; else return gBattlerSpriteIds[BATTLE_PARTNER(gBattleAnimAttacker)]; } @@ -366,7 +370,7 @@ u8 GetAnimBattlerSpriteId(u8 animBattler) if (IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimTarget))) return gBattlerSpriteIds[BATTLE_PARTNER(gBattleAnimTarget)]; else - return 0xFF; + return SPRITE_NONE; } } @@ -383,20 +387,40 @@ static void SetCallbackToStoredInData6(struct Sprite *sprite) sprite->callback = (SpriteCallback)callback; } +// Sprite data for TranslateSpriteInCircle/Ellipse and related +#define sCirclePos data[0] +#define sAmplitude data[1] +#define sCircleSpeed data[2] +#define sDuration data[3] + +// TranslateSpriteInGrowingCircle +#define sAmplitudeSpeed data[4] +#define sAmplitudeChange data[5] + +// TranslateSpriteInEllipse +#define sAmplitudeX sAmplitude +#define sAmplitudeY data[4] + +// TranslateSpriteInLissajousCurve +#define sCirclePosX sCirclePos +#define sCircleSpeedX sCircleSpeed +#define sCirclePosY data[4] +#define sCircleSpeedY data[5] + // x = a * sin(theta0 + dtheta * t) // y = a * cos(theta0 + dtheta * t) -void TranslateSpriteInCircleOverDuration(struct Sprite *sprite) +void TranslateSpriteInCircle(struct Sprite *sprite) { - if (sprite->data[3]) + if (sprite->sDuration) { - sprite->x2 = Sin(sprite->data[0], sprite->data[1]); - sprite->y2 = Cos(sprite->data[0], sprite->data[1]); - sprite->data[0] += sprite->data[2]; - if (sprite->data[0] >= 0x100) - sprite->data[0] -= 0x100; - else if (sprite->data[0] < 0) - sprite->data[0] += 0x100; - --sprite->data[3]; + sprite->x2 = Sin(sprite->sCirclePos, sprite->sAmplitude); + sprite->y2 = Cos(sprite->sCirclePos, sprite->sAmplitude); + sprite->sCirclePos += sprite->sCircleSpeed; + if (sprite->sCirclePos >= 0x100) + sprite->sCirclePos -= 0x100; + else if (sprite->sCirclePos < 0) + sprite->sCirclePos += 0x100; + sprite->sDuration--; } else { @@ -406,19 +430,19 @@ void TranslateSpriteInCircleOverDuration(struct Sprite *sprite) // x = (a0 + da * t) * sin(theta0 + dtheta * t) // y = (a0 + da * t) * cos(theta0 + dtheta * t) -void TranslateSpriteInGrowingCircleOverDuration(struct Sprite *sprite) +void TranslateSpriteInGrowingCircle(struct Sprite *sprite) { - if (sprite->data[3]) + if (sprite->sDuration) { - sprite->x2 = Sin(sprite->data[0], (sprite->data[5] >> 8) + sprite->data[1]); - sprite->y2 = Cos(sprite->data[0], (sprite->data[5] >> 8) + sprite->data[1]); - sprite->data[0] += sprite->data[2]; - sprite->data[5] += sprite->data[4]; - if (sprite->data[0] >= 0x100) - sprite->data[0] -= 0x100; - else if (sprite->data[0] < 0) - sprite->data[0] += 0x100; - --sprite->data[3]; + sprite->x2 = Sin(sprite->sCirclePos, (sprite->sAmplitudeChange >> 8) + sprite->sAmplitude); + sprite->y2 = Cos(sprite->sCirclePos, (sprite->sAmplitudeChange >> 8) + sprite->sAmplitude); + sprite->sCirclePos += sprite->sCircleSpeed; + sprite->sAmplitudeChange += sprite->sAmplitudeSpeed; + if (sprite->sCirclePos >= 0x100) + sprite->sCirclePos -= 0x100; + else if (sprite->sCirclePos < 0) + sprite->sCirclePos += 0x100; + sprite->sDuration--; } else { @@ -426,26 +450,30 @@ void TranslateSpriteInGrowingCircleOverDuration(struct Sprite *sprite) } } -// not used +// Unused +// Exact shape depends on arguments. Can move in a figure-8-like pattern, or circular, etc. // x = alpl * sin(alpha0 + dalpha * t) // y = ampl * cos(beta0 + dbeta * t) -static void TranslateSpriteInLissajousCurveOverDuration(struct Sprite *sprite) +static void TranslateSpriteInLissajousCurve(struct Sprite *sprite) { - if (sprite->data[3]) + if (sprite->sDuration) { - sprite->x2 = Sin(sprite->data[0], sprite->data[1]); - sprite->y2 = Cos(sprite->data[4], sprite->data[1]); - sprite->data[0] += sprite->data[2]; - sprite->data[4] += sprite->data[5]; - if (sprite->data[0] >= 0x100) - sprite->data[0] -= 0x100; - else if (sprite->data[0] < 0) - sprite->data[0] += 0x100; - if (sprite->data[4] >= 0x100) - sprite->data[4] -= 0x100; - else if (sprite->data[4] < 0) - sprite->data[4] += 0x100; - --sprite->data[3]; + sprite->x2 = Sin(sprite->sCirclePosX, sprite->sAmplitude); + sprite->y2 = Cos(sprite->sCirclePosY, sprite->sAmplitude); + sprite->sCirclePosX += sprite->sCircleSpeedX; + sprite->sCirclePosY += sprite->sCircleSpeedY; + + if (sprite->sCirclePosX >= 0x100) + sprite->sCirclePosX -= 0x100; + else if (sprite->sCirclePosX < 0) + sprite->sCirclePosX += 0x100; + + if (sprite->sCirclePosY >= 0x100) + sprite->sCirclePosY -= 0x100; + else if (sprite->sCirclePosY < 0) + sprite->sCirclePosY += 0x100; + + sprite->sDuration--; } else { @@ -455,18 +483,18 @@ static void TranslateSpriteInLissajousCurveOverDuration(struct Sprite *sprite) // x = a * sin(theta0 + dtheta * t) // y = b * cos(theta0 + dtheta * t) -void TranslateSpriteInEllipseOverDuration(struct Sprite *sprite) +void TranslateSpriteInEllipse(struct Sprite *sprite) { - if (sprite->data[3]) + if (sprite->sDuration) { - sprite->x2 = Sin(sprite->data[0], sprite->data[1]); - sprite->y2 = Cos(sprite->data[0], sprite->data[4]); - sprite->data[0] += sprite->data[2]; - if (sprite->data[0] >= 0x100) - sprite->data[0] -= 0x100; - else if (sprite->data[0] < 0) - sprite->data[0] += 0x100; - --sprite->data[3]; + sprite->x2 = Sin(sprite->sCirclePos, sprite->sAmplitudeX); + sprite->y2 = Cos(sprite->sCirclePos, sprite->sAmplitudeY); + sprite->sCirclePos += sprite->sCircleSpeed; + if (sprite->sCirclePos >= 0x100) + sprite->sCirclePos -= 0x100; + else if (sprite->sCirclePos < 0) + sprite->sCirclePos += 0x100; + sprite->sDuration--; } else { @@ -474,6 +502,19 @@ void TranslateSpriteInEllipseOverDuration(struct Sprite *sprite) } } +#undef sCirclePos +#undef sAmplitude +#undef sCircleSpeed +#undef sDuration +#undef sAmplitudeSpeed +#undef sAmplitudeChange +#undef sAmplitudeX +#undef sAmplitudeY +#undef sCirclePosX +#undef sCircleSpeedX +#undef sCirclePosY +#undef sCircleSpeedY + // Simply waits until the sprite's data[0] hits zero. // This is used to let sprite anims or affine anims to run for a designated // duration. @@ -485,34 +526,46 @@ void WaitAnimForDuration(struct Sprite *sprite) SetCallbackToStoredInData6(sprite); } -static void SetupAndStartSpriteLinearTranslation(struct Sprite *sprite) +// Sprite data for ConvertPosDataToTranslateLinearData +#define sStepsX data[0] +#define sStartX data[1] +#define sTargetX data[2] +#define sStartY data[3] +#define sTargetY data[4] + +// Sprite data for TranslateSpriteLinear +#define sMoveSteps data[0] +#define sSpeedX data[1] +#define sSpeedY data[2] + +static void AnimPosToTranslateLinear(struct Sprite *sprite) { - SetupLinearTranslationWithFixedDuration(sprite); + ConvertPosDataToTranslateLinearData(sprite); sprite->callback = TranslateSpriteLinear; sprite->callback(sprite); } -void SetupLinearTranslationWithFixedDuration(struct Sprite *sprite) +void ConvertPosDataToTranslateLinearData(struct Sprite *sprite) { s16 old; - s32 xDiff; + int xDiff; - if (sprite->data[1] > sprite->data[2]) - sprite->data[0] = -sprite->data[0]; - xDiff = sprite->data[2] - sprite->data[1]; - old = sprite->data[0]; - sprite->data[0] = abs(xDiff / sprite->data[0]); - sprite->data[2] = (sprite->data[4] - sprite->data[3]) / sprite->data[0]; - sprite->data[1] = old; + if (sprite->sStartX > sprite->sTargetX) + sprite->sStepsX = -sprite->sStepsX; + xDiff = sprite->sTargetX - sprite->sStartX; + old = sprite->sStepsX; + sprite->sMoveSteps = abs(xDiff / sprite->sStepsX); + sprite->sSpeedY = (sprite->sTargetY - sprite->sStartY) / sprite->sMoveSteps; + sprite->sSpeedX = old; } void TranslateSpriteLinear(struct Sprite *sprite) { - if (sprite->data[0] > 0) + if (sprite->sMoveSteps > 0) { - --sprite->data[0]; - sprite->x2 += sprite->data[1]; - sprite->y2 += sprite->data[2]; + sprite->sMoveSteps--; + sprite->x2 += sprite->sSpeedX; + sprite->y2 += sprite->sSpeedY; } else { @@ -554,17 +607,18 @@ static void TranslateSpriteLinearFixedPointIconFrame(struct Sprite *sprite) UpdateMonIconFrame(sprite); } -// not used -static void SetupAndStartSpriteLinearTranslationToTarget(struct Sprite *sprite) +// Unused +static void TranslateSpriteToBattleTargetPos(struct Sprite *sprite) { sprite->data[1] = sprite->x + sprite->x2; sprite->data[3] = sprite->y + sprite->y2; sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); - sprite->callback = SetupAndStartSpriteLinearTranslation; + sprite->callback = AnimPosToTranslateLinear; } -void TranslateMonSpriteLinear(struct Sprite *sprite) +// Same as TranslateSpriteLinear but takes an id to specify which sprite to move +void TranslateSpriteLinearById(struct Sprite *sprite) { if (sprite->data[0] > 0) { @@ -578,7 +632,7 @@ void TranslateMonSpriteLinear(struct Sprite *sprite) } } -void TranslateMonSpriteLinearFixedPoint(struct Sprite *sprite) +void TranslateSpriteLinearByIdFixedPoint(struct Sprite *sprite) { if (sprite->data[0] > 0) { @@ -621,20 +675,26 @@ void DestroySpriteAndMatrix(struct Sprite *sprite) DestroyAnimSprite(sprite); } -// not used +// Unused static void SetupAndStartSpriteLinearTranslationToAttacker(struct Sprite *sprite) { - sprite->data[1] = sprite->x + sprite->x2; - sprite->data[3] = sprite->y + sprite->y2; - sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); - sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); - sprite->callback = SetupAndStartSpriteLinearTranslation; + sprite->sStartX = sprite->x + sprite->x2; + sprite->sStartY = sprite->y + sprite->y2; + sprite->sTargetX = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); + sprite->sTargetY = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); + sprite->callback = AnimPosToTranslateLinear; } -// not used -static void SpriteResetPaletteStructAndDestroy(struct Sprite *sprite) +#undef sStepsX +#undef sStartX +#undef sTargetX +#undef sStartY +#undef sTargetY + +// Unused +static void EndUnkPaletteAnim(struct Sprite *sprite) { - ResetPaletteStructByUid(sprite->data[5]); + PaletteStruct_ResetById(sprite->data[5]); DestroySpriteAndMatrix(sprite); } @@ -802,11 +862,14 @@ bool8 IsDoubleBattle(void) return IS_DOUBLE_BATTLE(); } +#define BG_ANIM_PAL_1 8 +#define BG_ANIM_PAL_2 9 + void GetBattleAnimBg1Data(struct BattleAnimBgData *animBgData) { animBgData->bgTiles = gBattleAnimBgTileBuffer; animBgData->bgTilemap = (u16 *)gBattleAnimBgTilemapBuffer; - animBgData->paletteId = 8; + animBgData->paletteId = BG_ANIM_PAL_1; animBgData->bgId = 1; animBgData->tilesOffset = 0x200; animBgData->unused = 0; @@ -822,7 +885,7 @@ void GetBattleAnimBgData(struct BattleAnimBgData *animBgData, u32 bgId) { animBgData->bgTiles = gBattleAnimBgTileBuffer; animBgData->bgTilemap = (u16 *)gBattleAnimBgTilemapBuffer; - animBgData->paletteId = 9; + animBgData->paletteId = BG_ANIM_PAL_2; animBgData->bgId = 2; animBgData->tilesOffset = 0x300; animBgData->unused = 0; @@ -835,14 +898,14 @@ void GetBattleAnimBgDataByPriorityRank(struct BattleAnimBgData *animBgData, u8 u animBgData->bgTilemap = (u16 *)gBattleAnimBgTilemapBuffer; if (GetBattlerSpriteBGPriorityRank(gBattleAnimAttacker) == 1) { - animBgData->paletteId = 8; + animBgData->paletteId = BG_ANIM_PAL_1; animBgData->bgId = 1; animBgData->tilesOffset = 0x200; animBgData->unused = 0; } else { - animBgData->paletteId = 9; + animBgData->paletteId = BG_ANIM_PAL_2; animBgData->bgId = 2; animBgData->tilesOffset = 0x300; animBgData->unused = 0; @@ -881,12 +944,16 @@ void AnimLoadCompressedBgTilemap(u32 bgId, const u32 *src) u8 GetBattleBgPaletteNum(void) { + /* + if (IsContest()) + return 1; + */ return 2; } -void ToggleBg3Mode(bool8 arg0) +void ToggleBg3Mode(bool8 largeScreenSize) { - if (!arg0) + if (!largeScreenSize) { SetAnimBgAttribute(3, BG_ANIM_SCREEN_SIZE, 0); SetAnimBgAttribute(3, BG_ANIM_AREA_OVERFLOW_MODE, 1); @@ -898,7 +965,7 @@ void ToggleBg3Mode(bool8 arg0) } } -void StartSpriteLinearTranslationFromCurrentPos(struct Sprite *sprite) +void TradeMenuBouncePartySprites(struct Sprite *sprite) { sprite->data[1] = sprite->x; sprite->data[3] = sprite->y; @@ -951,7 +1018,7 @@ void StartAnimLinearTranslation(struct Sprite *sprite) sprite->sTransl_InitX = sprite->x; sprite->sTransl_InitY = sprite->y; InitAnimLinearTranslation(sprite); - sprite->callback = RunLinearTranslation_ThenceSetCBtoStoredInData6; + sprite->callback = AnimTranslateLinear_WithFollowup; sprite->callback(sprite); } @@ -960,7 +1027,7 @@ void PlayerThrowBall_StartAnimLinearTranslation(struct Sprite *sprite) sprite->sTransl_InitX = sprite->x; sprite->sTransl_InitY = sprite->y; InitAnimLinearTranslation(sprite); - sprite->callback = PlayerThrowBall_RunLinearTranslation_ThenceSetCBtoStoredInData6; + sprite->callback = PlayerThrowBall_AnimTranslateLinear_WithFollowup; sprite->callback(sprite); } @@ -991,20 +1058,20 @@ bool8 AnimTranslateLinear(struct Sprite *sprite) return FALSE; } -void RunLinearTranslation_ThenceSetCBtoStoredInData6(struct Sprite *sprite) +void AnimTranslateLinear_WithFollowup(struct Sprite *sprite) { if (AnimTranslateLinear(sprite)) SetCallbackToStoredInData6(sprite); } -static void PlayerThrowBall_RunLinearTranslation_ThenceSetCBtoStoredInData6(struct Sprite *sprite) +static void PlayerThrowBall_AnimTranslateLinear_WithFollowup(struct Sprite *sprite) { UpdatePlayerPosInThrowAnim(sprite); if (AnimTranslateLinear(sprite)) SetCallbackToStoredInData6(sprite); } -void BattleAnim_InitLinearTranslationWithDuration(struct Sprite *sprite) +void InitAnimLinearTranslationWithSpeed(struct Sprite *sprite) { s32 v1 = abs(sprite->sTransl_DestX - sprite->sTransl_InitX) << 8; @@ -1012,12 +1079,12 @@ void BattleAnim_InitLinearTranslationWithDuration(struct Sprite *sprite) InitAnimLinearTranslation(sprite); } -void BattleAnim_InitAndRunLinearTranslationWithDuration(struct Sprite *sprite) +void InitAnimLinearTranslationWithSpeedAndPos(struct Sprite *sprite) { sprite->sTransl_InitX = sprite->x; sprite->sTransl_InitY = sprite->y; - BattleAnim_InitLinearTranslationWithDuration(sprite); - sprite->callback = RunLinearTranslation_ThenceSetCBtoStoredInData6; + InitAnimLinearTranslationWithSpeed(sprite); + sprite->callback = AnimTranslateLinear_WithFollowup; sprite->callback(sprite); } @@ -1051,7 +1118,7 @@ void InitAndRunAnimFastLinearTranslation(struct Sprite *sprite) sprite->sTransl_InitX = sprite->x; sprite->sTransl_InitY = sprite->y; InitAnimFastLinearTranslation(sprite); - sprite->callback = SpriteCB_RunAnimFastLinearTranslation; + sprite->callback = AnimFastTranslateLinearWaitEnd; sprite->callback(sprite); } @@ -1081,7 +1148,7 @@ bool8 AnimFastTranslateLinear(struct Sprite *sprite) return FALSE; } -static void SpriteCB_RunAnimFastLinearTranslation(struct Sprite *sprite) +static void AnimFastTranslateLinearWaitEnd(struct Sprite *sprite) { if (AnimFastTranslateLinear(sprite)) SetCallbackToStoredInData6(sprite); @@ -1095,12 +1162,12 @@ void InitAnimFastLinearTranslationWithSpeed(struct Sprite *sprite) InitAnimFastLinearTranslation(sprite); } -void InitAndStartAnimFastLinearTranslationWithSpeed(struct Sprite *sprite) +void InitAnimFastLinearTranslationWithSpeedAndPos(struct Sprite *sprite) { sprite->data[1] = sprite->x; sprite->data[3] = sprite->y; InitAnimFastLinearTranslationWithSpeed(sprite); - sprite->callback = SpriteCB_RunAnimFastLinearTranslation; + sprite->callback = AnimFastTranslateLinearWaitEnd; sprite->callback(sprite); } @@ -1113,7 +1180,7 @@ void SetSpriteRotScale(u8 spriteId, s16 xScale, s16 yScale, u16 rotation) src.xScale = xScale; src.yScale = yScale; src.rotation = rotation; - if (Dummy_ReturnFalse()) + if (ShouldRotScaleSpeciesBeFlipped()) src.xScale = -src.xScale; i = gSprites[spriteId].oam.matrixNum; ObjAffineSet(&src, &matrix, 1, 2); @@ -1123,8 +1190,18 @@ void SetSpriteRotScale(u8 spriteId, s16 xScale, s16 yScale, u16 rotation) gOamMatrices[i].d = matrix.d; } -static bool8 Dummy_ReturnFalse(void) +// Pokémon in Contests (except Unown) should be flipped. +static bool8 ShouldRotScaleSpeciesBeFlipped(void) { + /* + if (IsContest()) + { + if (gSprites[GetAnimBattlerSpriteId(ANIM_ATTACKER)].data[2] == SPECIES_UNOWN) + return FALSE; + else + return TRUE; + } + */ return FALSE; } @@ -1178,7 +1255,7 @@ void TrySetSpriteRotScale(struct Sprite *sprite, bool8 recalcCenterVector, s16 x src.xScale = xScale; src.yScale = yScale; src.rotation = rotation; - if (Dummy_ReturnFalse()) + if (ShouldRotScaleSpeciesBeFlipped()) src.xScale = -src.xScale; i = sprite->oam.matrixNum; ObjAffineSet(&src, &matrix, 1, 2); @@ -1235,14 +1312,14 @@ void SetGreyscaleOrOriginalPalette(u16 paletteNum, bool8 restoreOriginalColor) } } -u32 SelectBattleAnimSpriteAndBgPalettes(bool8 battleBackground, bool8 attacker, bool8 target, bool8 attackerPartner, bool8 targetPartner, bool8 a6, bool8 a7) +u32 GetBattlePalettesMask(bool8 battleBackground, bool8 attacker, bool8 target, bool8 attackerPartner, bool8 targetPartner, bool8 anim1, bool8 anim2) { u32 selectedPalettes = 0; u32 shift; if (battleBackground) { - selectedPalettes = 0xe; + selectedPalettes = 0xe; // Palettes 1, 2, and 3 } if (attacker) { @@ -1270,27 +1347,25 @@ u32 SelectBattleAnimSpriteAndBgPalettes(bool8 battleBackground, bool8 attacker, selectedPalettes |= 1 << shift; } } - if (a6) - { - selectedPalettes |= 0x100; - } - if (a7) - { - selectedPalettes |= 0x200; - } + if (anim1) + selectedPalettes |= 1 << BG_ANIM_PAL_1; + + if (anim2) + selectedPalettes |= 1 << BG_ANIM_PAL_2; + return selectedPalettes; } -u32 SelectBattlerSpritePalettes(bool8 playerLeft, bool8 playerRight, bool8 foeLeft, bool8 foeRight) +u32 GetBattleMonSpritePalettesMask(bool8 playerLeft, bool8 playerRight, bool8 foeLeft, bool8 foeRight) { - u32 var = 0; + u32 selectedPalettes = 0; u32 shift; if (playerLeft) { if (IsBattlerSpriteVisible(GetBattlerAtPosition(B_POSITION_PLAYER_LEFT))) { - var |= 1 << (GetBattlerAtPosition(B_POSITION_PLAYER_LEFT) + 16); + selectedPalettes |= 1 << (GetBattlerAtPosition(B_POSITION_PLAYER_LEFT) + 16); } } if (playerRight) @@ -1298,7 +1373,7 @@ u32 SelectBattlerSpritePalettes(bool8 playerLeft, bool8 playerRight, bool8 foeLe if (IsBattlerSpriteVisible(GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT))) { shift = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT) + 16; - var |= 1 << shift; + selectedPalettes |= 1 << shift; } } if (foeLeft) @@ -1306,7 +1381,7 @@ u32 SelectBattlerSpritePalettes(bool8 playerLeft, bool8 playerRight, bool8 foeLe if (IsBattlerSpriteVisible(GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT))) { shift = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT) + 16; - var |= 1 << shift; + selectedPalettes |= 1 << shift; } } if (foeRight) @@ -1314,18 +1389,18 @@ u32 SelectBattlerSpritePalettes(bool8 playerLeft, bool8 playerRight, bool8 foeLe if (IsBattlerSpriteVisible(GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT))) { shift = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT) + 16; - var |= 1 << shift; + selectedPalettes |= 1 << shift; } } - return var; + return selectedPalettes; } -u8 GetSpritePalIdxByBattler(u8 a1) +u8 GetSpritePalIdxByBattler(u8 battler) { - return a1; + return battler; } -// not used +// Unused static u8 GetSpritePalIdxByPosition(u8 position) { return GetBattlerAtPosition(position); @@ -1404,7 +1479,7 @@ static void AnimThrowProjectile_Step(struct Sprite *sprite) DestroyAnimSprite(sprite); } -void AnimSnoreZ(struct Sprite *sprite) +void AnimTravelDiagonally(struct Sprite *sprite) { bool8 r4; u8 battlerId, coordType; @@ -1444,7 +1519,7 @@ s16 CloneBattlerSpriteWithBlend(u8 animBattler) u16 i; u8 spriteId = GetAnimBattlerSpriteId(animBattler); - if (spriteId != 0xFF) + if (spriteId != SPRITE_NONE) { for (i = 0; i < MAX_SPRITES; ++i) { @@ -1460,12 +1535,13 @@ s16 CloneBattlerSpriteWithBlend(u8 animBattler) return -1; } -void obj_delete_but_dont_free_vram(struct Sprite *sprite) +void DestroySpriteWithActiveSheet(struct Sprite *sprite) { sprite->usingSheet = TRUE; DestroySprite(sprite); } +// Only used to fade Moonlight moon sprite in void AnimTask_AlphaFadeIn(u8 taskId) { s16 v1 = 0, v2 = 0; @@ -1546,10 +1622,10 @@ static void AnimTask_BlendMonInAndOutSetup(struct Task *task) task->data[5] = gBattleAnimArgs[3]; task->data[6] = 0; task->data[7] = gBattleAnimArgs[4]; - task->func = AnimTask_BlendMonInAndOutStep; + task->func = AnimTask_BlendMonInAndOut_Step; } -static void AnimTask_BlendMonInAndOutStep(u8 taskId) +static void AnimTask_BlendMonInAndOut_Step(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -1584,6 +1660,7 @@ static void AnimTask_BlendMonInAndOutStep(u8 taskId) } } +// See AnimTask_BlendMonInAndOut. Same, but ANIM_TAG_* instead of mon void AnimTask_BlendPalInAndOutByTag(u8 taskId) { u8 palette = IndexOfSpritePaletteTag(gBattleAnimArgs[0]); @@ -1684,12 +1761,12 @@ bool8 RunAffineAnimFromTaskData(struct Task *task) // matrix's scale in the y dimension. void SetBattlerSpriteYOffsetFromYScale(u8 spriteId) { - s32 var = 64 - GetBattlerYDeltaFromSpriteId(spriteId) * 2; + s32 var = MON_PIC_HEIGHT - GetBattlerYDeltaFromSpriteId(spriteId) * 2; u16 matrix = gSprites[spriteId].oam.matrixNum; - s32 var2 = (var << 8) / gOamMatrices[matrix].d; + s32 var2 = SAFE_DIV(var << 8, gOamMatrices[matrix].d); - if (var2 > 128) - var2 = 128; + if (var2 > MON_PIC_HEIGHT * 2) + var2 = MON_PIC_HEIGHT * 2; gSprites[spriteId].y2 = (var - var2) / 2; } @@ -1697,12 +1774,12 @@ void SetBattlerSpriteYOffsetFromYScale(u8 spriteId) // matrix's scale in the y dimension. void SetBattlerSpriteYOffsetFromOtherYScale(u8 spriteId, u8 otherSpriteId) { - s32 var = 64 - GetBattlerYDeltaFromSpriteId(otherSpriteId) * 2; + s32 var = MON_PIC_HEIGHT - GetBattlerYDeltaFromSpriteId(otherSpriteId) * 2; u16 matrix = gSprites[spriteId].oam.matrixNum; s32 var2 = SAFE_DIV((var << 8), gOamMatrices[matrix].d); - if (var2 > 128) - var2 = 128; + if (var2 > MON_PIC_HEIGHT * 2) + var2 = MON_PIC_HEIGHT * 2; gSprites[spriteId].y2 = (var - var2) / 2; } @@ -1737,7 +1814,7 @@ static u16 GetBattlerYDeltaFromSpriteId(u8 spriteId) } } } - return 64; + return MON_PIC_HEIGHT; } void StorePointerInVars(s16 *lo, s16 *hi, const void *ptr) @@ -1751,16 +1828,16 @@ void *LoadPointerFromVars(s16 lo, s16 hi) return (void *)((u16)lo | ((u16)hi << 16)); } -void BattleAnimHelper_SetSpriteSquashParams(struct Task *task, u8 spriteId, s16 xScale0, s16 yScale0, s16 xScale1, s16 yScale1, u16 duration) +void BattleAnimHelper_SetSpriteSquashParams(struct Task *task, u8 spriteId, s16 xScaleStart, s16 yScaleStart, s16 xScaleEnd, s16 yScaleEnd, u16 duration) { task->data[8] = duration; task->data[15] = spriteId; - task->data[9] = xScale0; - task->data[10] = yScale0; - task->data[13] = xScale1; - task->data[14] = yScale1; - task->data[11] = (xScale1 - xScale0) / duration; - task->data[12] = (yScale1 - yScale0) / duration; + task->data[9] = xScaleStart; + task->data[10] = yScaleStart; + task->data[13] = xScaleEnd; + task->data[14] = yScaleEnd; + task->data[11] = (xScaleEnd - xScaleStart) / duration; + task->data[12] = (yScaleEnd - yScaleStart) / duration; } u8 BattleAnimHelper_RunSpriteSquash(struct Task *task) @@ -1797,12 +1874,12 @@ void AnimTask_GetFrustrationPowerLevel(u8 taskId) powerLevel = 2; else powerLevel = 3; - gBattleAnimArgs[7] = powerLevel; + gBattleAnimArgs[ARG_RET_ID] = powerLevel; DestroyAnimVisualTask(taskId); } -// not used -static void SetOamPriorityOfAllVisibleBattlers(u8 priority) +// Unused +static void SetPriorityForVisibleBattlers(u8 priority) { if (IsBattlerSpriteVisible(gBattleAnimTarget)) gSprites[gBattlerSpriteIds[gBattleAnimTarget]].oam.priority = priority; @@ -1814,7 +1891,7 @@ static void SetOamPriorityOfAllVisibleBattlers(u8 priority) gSprites[gBattlerSpriteIds[BATTLE_PARTNER(gBattleAnimAttacker)]].oam.priority = priority; } -void ResetSpritePriorityOfAllVisibleBattlers(void) +void InitPrioritiesForVisibleBattlers(void) { s32 i; @@ -1864,11 +1941,12 @@ u8 GetBattlerSpriteBGPriorityRank(u8 battlerId) return 1; } +// Create pokemon sprite to be used for a move animation effect (e.g. Role Play / Snatch) u8 CreateAdditionalMonSpriteForMoveAnim(u16 species, bool8 isBackpic, u8 templateId, s16 x, s16 y, u8 subpriority, u32 personality, u32 trainerId, u32 battlerId, bool32 ignoreDeoxys) { u8 spriteId; - u16 sheet = LoadSpriteSheet(&sMoveAnimAdtlSprSheets[templateId]); - u16 palette = AllocSpritePalette(sSpriteTemplates_AdditionalForAnim[templateId].paletteTag); + u16 sheet = LoadSpriteSheet(&sSpriteSheets_MoveEffectMons[templateId]); + u16 palette = AllocSpritePalette(sSpriteTemplates_MoveEffectMons[templateId].paletteTag); if (gMonSpritesGfxPtr != NULL && gMonSpritesGfxPtr->multiUseBuffer == NULL) gMonSpritesGfxPtr->multiUseBuffer = AllocZeroed(0x2000); @@ -1907,9 +1985,9 @@ u8 CreateAdditionalMonSpriteForMoveAnim(u16 species, bool8 isBackpic, u8 templat RequestDma3Copy(gMonSpritesGfxPtr->multiUseBuffer, (void *)(OBJ_VRAM0 + (sheet * 0x20)), 0x800, 1); FREE_AND_SET_NULL(gMonSpritesGfxPtr->multiUseBuffer); if (!isBackpic) - spriteId = CreateSprite(&sSpriteTemplates_AdditionalForAnim[templateId], x, y + gMonFrontPicCoords[species].y_offset, subpriority); + spriteId = CreateSprite(&sSpriteTemplates_MoveEffectMons[templateId], x, y + gMonFrontPicCoords[species].y_offset, subpriority); else - spriteId = CreateSprite(&sSpriteTemplates_AdditionalForAnim[templateId], x, y + gMonBackPicCoords[species].y_offset, subpriority); + spriteId = CreateSprite(&sSpriteTemplates_MoveEffectMons[templateId], x, y + gMonBackPicCoords[species].y_offset, subpriority); return spriteId; } @@ -1998,17 +2076,17 @@ s16 GetBattlerSpriteCoordAttr(u8 battlerId, u8 attr) switch (attr) { case BATTLER_COORD_ATTR_HEIGHT: - return (coords->size & 0xf) * 8; + return GET_MON_COORDS_HEIGHT(coords->size); case BATTLER_COORD_ATTR_WIDTH: - return (coords->size >> 4) * 8; + return GET_MON_COORDS_WIDTH(coords->size); case BATTLER_COORD_ATTR_LEFT: - return GetBattlerSpriteCoord(battlerId, BATTLER_COORD_X_2) - ((coords->size >> 4) * 4); + return GetBattlerSpriteCoord(battlerId, BATTLER_COORD_X_2) - (GET_MON_COORDS_WIDTH(coords->size) / 2); case BATTLER_COORD_ATTR_RIGHT: - return GetBattlerSpriteCoord(battlerId, BATTLER_COORD_X_2) + ((coords->size >> 4) * 4); + return GetBattlerSpriteCoord(battlerId, BATTLER_COORD_X_2) + (GET_MON_COORDS_WIDTH(coords->size) / 2); case BATTLER_COORD_ATTR_TOP: - return GetBattlerSpriteCoord(battlerId, BATTLER_COORD_Y_PIC_OFFSET) - ((coords->size & 0xf) * 4); + return GetBattlerSpriteCoord(battlerId, BATTLER_COORD_Y_PIC_OFFSET) - (GET_MON_COORDS_HEIGHT(coords->size) / 2); case BATTLER_COORD_ATTR_BOTTOM: - return GetBattlerSpriteCoord(battlerId, BATTLER_COORD_Y_PIC_OFFSET) + ((coords->size & 0xf) * 4); + return GetBattlerSpriteCoord(battlerId, BATTLER_COORD_Y_PIC_OFFSET) + (GET_MON_COORDS_HEIGHT(coords->size) / 2); case BATTLER_COORD_ATTR_RAW_BOTTOM: ret = GetBattlerSpriteCoord(battlerId, BATTLER_COORD_Y) + 31; return ret - coords->y_offset; @@ -2049,7 +2127,7 @@ void SetAverageBattlerPositions(u8 battlerId, bool8 respectMonPicOffsets, s16 *x *y = (battlerY + partnerY) / 2; } -u8 CreateCloneOfSpriteInWindowMode(s32 battlerId, u8 spriteId, s32 species) +u8 CreateInvisibleSpriteCopy(s32 battlerId, u8 spriteId, s32 species) { u8 newSpriteId = CreateInvisibleSpriteWithCallback(SpriteCallbackDummy); @@ -2062,7 +2140,7 @@ u8 CreateCloneOfSpriteInWindowMode(s32 battlerId, u8 spriteId, s32 species) return newSpriteId; } -void SpriteCB_AnimTranslateSpriteLinearAndFlicker(struct Sprite *sprite) +void AnimTranslateLinearAndFlicker_Flipped(struct Sprite *sprite) { SetSpriteCoordsToAnimAttackerCoords(sprite); if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) @@ -2084,7 +2162,8 @@ void SpriteCB_AnimTranslateSpriteLinearAndFlicker(struct Sprite *sprite) sprite->callback = TranslateSpriteLinearAndFlicker; } -void SpriteCB_AnimTranslateSpriteLinearAndFlicker2(struct Sprite *sprite) +// Used by three different unused battle anim sprite templates. +void AnimTranslateLinearAndFlicker(struct Sprite *sprite) { if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) { @@ -2105,7 +2184,8 @@ void SpriteCB_AnimTranslateSpriteLinearAndFlicker2(struct Sprite *sprite) sprite->callback = TranslateSpriteLinearAndFlicker; } -void SpriteCB_TrackOffsetFromAttackerAndWaitAnim(struct Sprite *sprite) +// Used by Detect/Disable +void AnimSpinningSparkle(struct Sprite *sprite) { SetSpriteCoordsToAnimAttackerCoords(sprite); if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) @@ -2117,26 +2197,43 @@ void SpriteCB_TrackOffsetFromAttackerAndWaitAnim(struct Sprite *sprite) StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } +// Task and sprite data for AnimTask_AttackerPunchWithTrace +#define tBattlerSpriteId data[0] +#define tMoveSpeed data[1] +#define tState data[2] +#define tCounter data[3] +#define tPaletteNum data[4] +#define tNumTracesActive data[5] +#define tPriority data[6] + +#define sActiveTime data[0] +#define sTaskId data[1] +#define sSpriteId data[2] + void AnimTask_AttackerPunchWithTrace(u8 taskId) { u16 src; u16 dest; struct Task *task = &gTasks[taskId]; - task->data[0] = GetAnimBattlerSpriteId(ANIM_ATTACKER); - task->data[1] = ((GetBattlerSide(gBattleAnimAttacker)) != B_SIDE_PLAYER) ? -8 : 8; - task->data[2] = 0; - task->data[3] = 0; - gSprites[task->data[0]].x2 -= task->data[0]; - task->data[4] = AllocSpritePalette(10097); - task->data[5] = 0; - dest = (task->data[4] + 0x10) * 0x10; - src = (gSprites[task->data[0]].oam.paletteNum + 0x10) * 0x10; - task->data[6] = GetBattlerSpriteSubpriority(gBattleAnimAttacker); - if (task->data[6] == 20 || task->data[6] == 40) - task->data[6] = 2; + task->tBattlerSpriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER); + task->tMoveSpeed = (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) ? -8 : 8; + task->tState = 0; + task->tCounter = 0; + gSprites[task->tBattlerSpriteId].x2 -= task->tBattlerSpriteId; + task->tPaletteNum = AllocSpritePalette(ANIM_TAG_BENT_SPOON); + task->tNumTracesActive = 0; + + dest = (task->tPaletteNum + 16) * 16; + src = (gSprites[task->tBattlerSpriteId].oam.paletteNum + 0x10) * 0x10; + + // Set trace's priority based on battler's subpriority + task->tPriority = GetBattlerSpriteSubpriority(gBattleAnimAttacker); + if (task->tPriority == 20 || task->tPriority == 40) + task->tPriority = 2; else - task->data[6] = 3; + task->tPriority = 3; + CpuCopy32(&gPlttBufferUnfaded[src], &gPlttBufferFaded[dest], 0x20); BlendPalette(dest, 16, gBattleAnimArgs[1], gBattleAnimArgs[0]); task->func = AnimTask_AttackerPunchWithTrace_Step; @@ -2145,28 +2242,30 @@ void AnimTask_AttackerPunchWithTrace(u8 taskId) static void AnimTask_AttackerPunchWithTrace_Step(u8 taskId) { struct Task *task = &gTasks[taskId]; - switch (task->data[2]) + switch (task->tState) { case 0: - PunchAnim_CreateTraceSprite(task, taskId); - gSprites[task->data[0]].x2 += task->data[1]; - if (++task->data[3] == 5) + // Move forward + CreateBattlerTrace(task, taskId); + gSprites[task->tBattlerSpriteId].x2 += task->tMoveSpeed; + if (++task->tCounter == 5) { - --task->data[3]; - ++task->data[2]; + task->tCounter--; + task->tState++; } break; case 1: - PunchAnim_CreateTraceSprite(task, taskId); - gSprites[task->data[0]].x2 -= task->data[1]; - if (--task->data[3] == 0) + // Move back (do same number of traces as before) + CreateBattlerTrace(task, taskId); + gSprites[task->tBattlerSpriteId].x2 -= task->tMoveSpeed; + if (--task->tCounter == 0) { - gSprites[task->data[0]].x2 = 0; - ++task->data[2]; + gSprites[task->tBattlerSpriteId].x2 = 0; + task->tState++; } break; case 2: - if (!task->data[5]) + if (task->tNumTracesActive == 0) { FreeSpritePaletteByTag(ANIM_TAG_BENT_SPOON); DestroyAnimVisualTask(taskId); @@ -2175,33 +2274,45 @@ static void AnimTask_AttackerPunchWithTrace_Step(u8 taskId) } } -static void PunchAnim_CreateTraceSprite(struct Task *task, u8 taskId) +static void CreateBattlerTrace(struct Task *task, u8 taskId) { s16 spriteId = CloneBattlerSpriteWithBlend(0); - if (spriteId >= 0) { - gSprites[spriteId].oam.priority = task->data[6]; - gSprites[spriteId].oam.paletteNum = task->data[4]; - gSprites[spriteId].data[0] = 8; - gSprites[spriteId].data[1] = taskId; - gSprites[spriteId].data[2] = spriteId; - gSprites[spriteId].x2 = gSprites[task->data[0]].x2; - gSprites[spriteId].callback = SpriteCB_PunchTrace; - ++task->data[5]; + gSprites[spriteId].oam.priority = task->tPriority; + gSprites[spriteId].oam.paletteNum = task->tPaletteNum; + gSprites[spriteId].sActiveTime = 8; + gSprites[spriteId].sTaskId = taskId; + gSprites[spriteId].sSpriteId = spriteId; + gSprites[spriteId].x2 = gSprites[task->tBattlerSpriteId].x2; + gSprites[spriteId].callback = AnimBattlerTrace; + task->tNumTracesActive++; } } -static void SpriteCB_PunchTrace(struct Sprite *sprite) +// Just waits until destroyed +static void AnimBattlerTrace(struct Sprite *sprite) { - if (--sprite->data[0] == 0) + if (--sprite->sActiveTime == 0) { - --gTasks[sprite->data[1]].data[5]; - obj_delete_but_dont_free_vram(sprite); + gTasks[sprite->sTaskId].tNumTracesActive--; + DestroySpriteWithActiveSheet(sprite); } } -void SpriteCB_WeatherBallUp(struct Sprite *sprite) +#undef tBattlerSpriteId +#undef tMoveSpeed +#undef tState +#undef tCounter +#undef tPaletteNum +#undef tNumTracesActive +#undef tPriority + +#undef sActiveTime +#undef sTaskId +#undef sSpriteId + +void AnimWeatherBallUp(struct Sprite *sprite) { sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); @@ -2210,10 +2321,10 @@ void SpriteCB_WeatherBallUp(struct Sprite *sprite) else sprite->data[0] = -10; sprite->data[1] = -40; - sprite->callback = SpriteCB_WeatherBallUp_Step; + sprite->callback = AnimWeatherBallUp_Step; } -static void SpriteCB_WeatherBallUp_Step(struct Sprite *sprite) +static void AnimWeatherBallUp_Step(struct Sprite *sprite) { sprite->data[2] += sprite->data[0]; sprite->data[3] += sprite->data[1]; diff --git a/src/normal.c b/src/battle_anim_normal.c similarity index 61% rename from src/normal.c rename to src/battle_anim_normal.c index 157af414a..a76ad1fa2 100644 --- a/src/normal.c +++ b/src/battle_anim_normal.c @@ -8,7 +8,7 @@ static void AnimConfusionDuck(struct Sprite *sprite); static void AnimSimplePaletteBlend(struct Sprite *sprite); static void AnimComplexPaletteBlend(struct Sprite *sprite); -static void sub_80B9B8C(struct Sprite *sprite); +static void AnimCirclingSparkle(struct Sprite *sprite); static void AnimShakeMonOrBattleTerrain(struct Sprite *sprite); static void AnimHitSplatBasic(struct Sprite *sprite); static void AnimHitSplatHandleInvert(struct Sprite *sprite); @@ -17,22 +17,22 @@ static void AnimHitSplatOnMonEdge(struct Sprite *sprite); static void AnimCrossImpact(struct Sprite *sprite); static void AnimFlashingHitSplat(struct Sprite *sprite); static void AnimHitSplatPersistent(struct Sprite *sprite); -static void AnimConfusionDuckStep(struct Sprite *sprite); -static void AnimSimplePaletteBlendStep(struct Sprite *sprite); -static void sub_80B9AD0(struct Sprite *sprite); -static void sub_80B9B5C(struct Sprite *sprite); -static void sub_80B9C2C(u8 taskId, u8 initialBlendAmount, u8 targetBlendAmount); -static void sub_80B9C7C(u8 taskId); -static void sub_80B9DA0(u8 taskId, u8 initialBlendAmount, u8 targetBlendAmount); -static void sub_80B9DF0(u8 taskId); -static void sub_80B9EA8(u8 taskId, u8 initialBlendAmount, u8 targetBlendAmount); -static void sub_80B9F04(u8 taskId); -static void sub_80B9FD8(u8 taskId); -static void sub_80BA090(u8 taskId); -static void sub_80BA3CC(void); -static void sub_80BA320(struct Sprite *sprite); -static void sub_80BA4D0(u8 taskId); -static void sub_80BA7BC(struct Sprite *sprite); +static void AnimConfusionDuck_Step(struct Sprite *sprite); +static void AnimSimplePaletteBlend_Step(struct Sprite *sprite); +static void AnimComplexPaletteBlend_Step1(struct Sprite *sprite); +static void AnimComplexPaletteBlend_Step2(struct Sprite *sprite); +static void BlendColorCycle(u8 taskId, u8 initialBlendAmount, u8 targetBlendAmount); +static void AnimTask_BlendColorCycleLoop(u8 taskId); +static void BlendColorCycleExclude(u8 taskId, u8 initialBlendAmount, u8 targetBlendAmount); +static void AnimTask_BlendColorCycleExcludeLoop(u8 taskId); +static void BlendColorCycleByTag(u8 taskId, u8 initialBlendAmount, u8 targetBlendAmount); +static void AnimTask_BlendColorCycleByTagLoop(u8 taskId); +static void AnimTask_FlashAnimTagWithColor_Step1(u8 taskId); +static void AnimTask_FlashAnimTagWithColor_Step2(u8 taskId); +static void AnimShakeMonOrBattleTerrain_UpdateCoordOffsetEnabled(void); +static void AnimShakeMonOrBattleTerrain_Step(struct Sprite *sprite); +static void AnimTask_ShakeBattleTerrain_Step(u8 taskId); +static void AnimFlashingHitSplat_Step(struct Sprite *sprite); static const union AnimCmd sAnim_ConfusionDuck_0[] = @@ -92,7 +92,7 @@ const struct SpriteTemplate gComplexPaletteBlendSpriteTemplate = .callback = AnimComplexPaletteBlend, }; -static const union AnimCmd gUnknown_83E7B54[] = +static const union AnimCmd sAnim_CirclingSparkle[] = { ANIMCMD_FRAME(0, 3), ANIMCMD_FRAME(16, 3), @@ -102,20 +102,21 @@ static const union AnimCmd gUnknown_83E7B54[] = ANIMCMD_JUMP(0), }; -static const union AnimCmd *const gUnknown_83E7B6C[] = +static const union AnimCmd *const sAnims_CirclingSparkle[] = { - gUnknown_83E7B54, + sAnim_CirclingSparkle, }; -const struct SpriteTemplate gUnknown_83E7B70 = +// Unused +static const struct SpriteTemplate sCirclingSparkleSpriteTemplate = { .tileTag = ANIM_TAG_SPARKLE_4, .paletteTag = ANIM_TAG_SPARKLE_4, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = gUnknown_83E7B6C, + .anims = sAnims_CirclingSparkle, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_80B9B8C, + .callback = AnimCirclingSparkle, }; const struct SpriteTemplate gShakeMonOrTerrainSpriteTemplate = @@ -275,11 +276,11 @@ static void AnimConfusionDuck(struct Sprite *sprite) StartSpriteAnim(sprite, 1); } sprite->data[3] = gBattleAnimArgs[4]; - sprite->callback = AnimConfusionDuckStep; + sprite->callback = AnimConfusionDuck_Step; sprite->callback(sprite); } -static void AnimConfusionDuckStep(struct Sprite *sprite) +static void AnimConfusionDuck_Step(struct Sprite *sprite) { sprite->x2 = Cos(sprite->data[0], 30); sprite->y2 = Sin(sprite->data[0], 10); @@ -300,36 +301,36 @@ static void AnimConfusionDuckStep(struct Sprite *sprite) // arg 4: blend color static void AnimSimplePaletteBlend(struct Sprite *sprite) { - u32 selectedPalettes = UnpackSelectedBattleAnimPalettes(gBattleAnimArgs[0]); + u32 selectedPalettes = UnpackSelectedBattlePalettes(gBattleAnimArgs[0]); BeginNormalPaletteFade(selectedPalettes, gBattleAnimArgs[1], gBattleAnimArgs[2], gBattleAnimArgs[3], gBattleAnimArgs[4]); sprite->invisible = TRUE; - sprite->callback = AnimSimplePaletteBlendStep; + sprite->callback = AnimSimplePaletteBlend_Step; } // Unpacks a bitfield and returns a bitmask of its selected palettes. // Bits 0-6 of the selector parameter result in the following palettes being selected: -// 0: battle background palettes (BG palettes 1, 2, and 3) -// 1: gBattleAnimAttacker OBJ palette -// 2: gBattleAnimTarget OBJ palette -// 3: gBattleAnimAttacker partner OBJ palette -// 4: gBattleAnimTarget partner OBJ palette -// 5: BG palette 4 -// 6: BG palette 5 -u32 UnpackSelectedBattleAnimPalettes(s16 selector) +// 0: F_PAL_BG, battle background palettes (BG palettes 1, 2, and 3) +// 1: F_PAL_ATTACKER, gBattleAnimAttacker OBJ palette +// 2: F_PAL_TARGET, gBattleAnimTarget OBJ palette +// 3: F_PAL_ATK_PARTNER, gBattleAnimAttacker partner OBJ palette +// 4: F_PAL_DEF_PARTNER, gBattleAnimTarget partner OBJ palette +// 5: F_PAL_ANIM_1, BG palette 8 +// 6: F_PAL_ANIM_2, BG palette 9 +u32 UnpackSelectedBattlePalettes(s16 selector) { u8 battleBackground = selector & 1; u8 attacker = (selector >> 1) & 1; u8 target = (selector >> 2) & 1; u8 attackerPartner = (selector >> 3) & 1; u8 targetPartner = (selector >> 4) & 1; - u8 arg5 = (selector >> 5) & 1; - u8 arg6 = (selector >> 6) & 1; + u8 anim1 = (selector >> 5) & 1; + u8 anim2 = (selector >> 6) & 1; - return SelectBattleAnimSpriteAndBgPalettes(battleBackground, attacker, target, attackerPartner, targetPartner, arg5, arg6); + return GetBattlePalettesMask(battleBackground, attacker, target, attackerPartner, targetPartner, anim1, anim2); } -static void AnimSimplePaletteBlendStep(struct Sprite *sprite) +static void AnimSimplePaletteBlend_Step(struct Sprite *sprite) { if (!gPaletteFade.active) DestroyAnimSprite(sprite); @@ -347,13 +348,13 @@ static void AnimComplexPaletteBlend(struct Sprite *sprite) sprite->data[5] = gBattleAnimArgs[5]; sprite->data[6] = gBattleAnimArgs[6]; sprite->data[7] = gBattleAnimArgs[0]; - selectedPalettes = UnpackSelectedBattleAnimPalettes(sprite->data[7]); + selectedPalettes = UnpackSelectedBattlePalettes(sprite->data[7]); BlendPalettes(selectedPalettes, gBattleAnimArgs[4], gBattleAnimArgs[3]); sprite->invisible = TRUE; - sprite->callback = sub_80B9AD0; + sprite->callback = AnimComplexPaletteBlend_Step1; } -static void sub_80B9AD0(struct Sprite *sprite) +static void AnimComplexPaletteBlend_Step1(struct Sprite *sprite) { u32 selectedPalettes; @@ -366,10 +367,10 @@ static void sub_80B9AD0(struct Sprite *sprite) return; if (sprite->data[2] == 0) { - sprite->callback = sub_80B9B5C; + sprite->callback = AnimComplexPaletteBlend_Step2; return; } - selectedPalettes = UnpackSelectedBattleAnimPalettes(sprite->data[7]); + selectedPalettes = UnpackSelectedBattlePalettes(sprite->data[7]); if (sprite->data[1] & 0x100) BlendPalettes(selectedPalettes, sprite->data[4], sprite->data[3]); else @@ -379,19 +380,19 @@ static void sub_80B9AD0(struct Sprite *sprite) --sprite->data[2]; } -static void sub_80B9B5C(struct Sprite *sprite) +static void AnimComplexPaletteBlend_Step2(struct Sprite *sprite) { u32 selectedPalettes; if (!gPaletteFade.active) { - selectedPalettes = UnpackSelectedBattleAnimPalettes(sprite->data[7]); + selectedPalettes = UnpackSelectedBattlePalettes(sprite->data[7]); BlendPalettes(selectedPalettes, 0, 0); DestroyAnimSprite(sprite); } } -static void sub_80B9B8C(struct Sprite *sprite) +static void AnimCirclingSparkle(struct Sprite *sprite) { sprite->x += gBattleAnimArgs[0]; sprite->y += gBattleAnimArgs[1]; @@ -402,57 +403,75 @@ static void sub_80B9B8C(struct Sprite *sprite) sprite->data[4] = 112; sprite->data[5] = 0; StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix); - sprite->callback = TranslateSpriteInGrowingCircleOverDuration; + sprite->callback = TranslateSpriteInGrowingCircle; sprite->callback(sprite); } -void AnimTask_CurseBlendEffect(u8 taskId) +// Task data for AnimTask_BlendColorCycle, AnimTask_BlendColorCycleExclude, and AnimTask_BlendColorCycleByTag +#define tPalSelector data[0] // AnimTask_BlendColorCycle +#define tPalTag data[0] // AnimTask_BlendColorCycleByTag +#define tDelay data[1] +#define tNumBlends data[2] +#define tInitialBlendY data[3] +#define tTargetBlendY data[4] +#define tBlendColor data[5] +#define tRestoreBlend data[8] +#define tPalSelectorHi data[9] +#define tPalSelectorLo data[10] + +// Blends mon/screen to designated color or back alternately tNumBlends times +// Many uses of this task only set a tNumBlends of 2, which has the effect of blending to a color and back once +void AnimTask_BlendColorCycle(u8 taskId) { - gTasks[taskId].data[0] = gBattleAnimArgs[0]; - gTasks[taskId].data[1] = gBattleAnimArgs[1]; - gTasks[taskId].data[2] = gBattleAnimArgs[2]; - gTasks[taskId].data[3] = gBattleAnimArgs[3]; - gTasks[taskId].data[4] = gBattleAnimArgs[4]; - gTasks[taskId].data[5] = gBattleAnimArgs[5]; - gTasks[taskId].data[8] = 0; - sub_80B9C2C(taskId, 0, gTasks[taskId].data[4]); - gTasks[taskId].func = sub_80B9C7C; + gTasks[taskId].tPalSelector = gBattleAnimArgs[0]; + gTasks[taskId].tDelay = gBattleAnimArgs[1]; + gTasks[taskId].tNumBlends = gBattleAnimArgs[2]; + gTasks[taskId].tInitialBlendY = gBattleAnimArgs[3]; + gTasks[taskId].tTargetBlendY = gBattleAnimArgs[4]; + gTasks[taskId].tBlendColor = gBattleAnimArgs[5]; + gTasks[taskId].tRestoreBlend = FALSE; + BlendColorCycle(taskId, 0, gTasks[taskId].tTargetBlendY); + gTasks[taskId].func = AnimTask_BlendColorCycleLoop; } -static void sub_80B9C2C(u8 taskId, u8 initialBlendAmount, u8 targetBlendAmount) +static void BlendColorCycle(u8 taskId, u8 startBlendAmount, u8 targetBlendAmount) { - u32 selectedPalettes = UnpackSelectedBattleAnimPalettes(gTasks[taskId].data[0]); - - BeginNormalPaletteFade(selectedPalettes, - gTasks[taskId].data[1], - initialBlendAmount, - targetBlendAmount, - gTasks[taskId].data[5]); - --gTasks[taskId].data[2]; - gTasks[taskId].data[8] ^= 1; + u32 selectedPalettes = UnpackSelectedBattlePalettes(gTasks[taskId].tPalSelector); + BeginNormalPaletteFade( + selectedPalettes, + gTasks[taskId].tDelay, + startBlendAmount, + targetBlendAmount, + gTasks[taskId].tBlendColor); + + gTasks[taskId].tNumBlends--; + gTasks[taskId].tRestoreBlend ^= 1; } -static void sub_80B9C7C(u8 taskId) +static void AnimTask_BlendColorCycleLoop(u8 taskId) { - u8 initialBlendAmount, targetBlendAmount; - + u8 startBlendAmount, targetBlendAmount; if (!gPaletteFade.active) { - if (gTasks[taskId].data[2] > 0) + if (gTasks[taskId].tNumBlends > 0) { - if (gTasks[taskId].data[8] == 0) + if (!gTasks[taskId].tRestoreBlend) { - initialBlendAmount = gTasks[taskId].data[3]; - targetBlendAmount = gTasks[taskId].data[4]; + // Blend to designated color + startBlendAmount = gTasks[taskId].tInitialBlendY; + targetBlendAmount = gTasks[taskId].tTargetBlendY; } else { - initialBlendAmount = gTasks[taskId].data[4]; - targetBlendAmount = gTasks[taskId].data[3]; + // Blend back to original color + startBlendAmount = gTasks[taskId].tTargetBlendY; + targetBlendAmount = gTasks[taskId].tInitialBlendY; } - if (gTasks[taskId].data[2] == 1) + + if (gTasks[taskId].tNumBlends == 1) targetBlendAmount = 0; - sub_80B9C2C(taskId, initialBlendAmount, targetBlendAmount); + + BlendColorCycle(taskId, startBlendAmount, targetBlendAmount); } else { @@ -461,64 +480,73 @@ static void sub_80B9C7C(u8 taskId) } } +// See AnimTask_BlendColorCycle. Same, but excludes Attacker and Target void AnimTask_BlendColorCycleExclude(u8 taskId) { - s32 battler; + int battler; u32 selectedPalettes = 0; gTasks[taskId].data[0] = gBattleAnimArgs[0]; - gTasks[taskId].data[1] = gBattleAnimArgs[1]; - gTasks[taskId].data[2] = gBattleAnimArgs[2]; - gTasks[taskId].data[3] = gBattleAnimArgs[3]; - gTasks[taskId].data[4] = gBattleAnimArgs[4]; - gTasks[taskId].data[5] = gBattleAnimArgs[5]; - gTasks[taskId].data[8] = 0; - for (battler = 0; battler < gBattlersCount; ++battler) + gTasks[taskId].tDelay = gBattleAnimArgs[1]; + gTasks[taskId].tNumBlends = gBattleAnimArgs[2]; + gTasks[taskId].tInitialBlendY = gBattleAnimArgs[3]; + gTasks[taskId].tTargetBlendY = gBattleAnimArgs[4]; + gTasks[taskId].tBlendColor = gBattleAnimArgs[5]; + gTasks[taskId].tRestoreBlend = 0; + + for (battler = 0; battler < gBattlersCount; battler++) + { if (battler != gBattleAnimAttacker && battler != gBattleAnimTarget) selectedPalettes |= 1 << (battler + 16); + } + if (gBattleAnimArgs[0] == 1) selectedPalettes |= 0xE; - gTasks[taskId].data[9] = selectedPalettes >> 16; - gTasks[taskId].data[10] = selectedPalettes & 0xFF; - sub_80B9DA0(taskId, 0, gTasks[taskId].data[4]); - gTasks[taskId].func = sub_80B9DF0; + + gTasks[taskId].tPalSelectorHi = selectedPalettes >> 16; + gTasks[taskId].tPalSelectorLo = selectedPalettes & 0xFF; + BlendColorCycleExclude(taskId, 0, gTasks[taskId].tTargetBlendY); + gTasks[taskId].func = AnimTask_BlendColorCycleExcludeLoop; } -static void sub_80B9DA0(u8 taskId, u8 initialBlendAmount, u8 targetBlendAmount) +static void BlendColorCycleExclude(u8 taskId, u8 startBlendAmount, u8 targetBlendAmount) { - u32 selectedPalettes = ((u16)gTasks[taskId].data[9] << 16) | (u16)gTasks[taskId].data[10]; - - BeginNormalPaletteFade(selectedPalettes, - gTasks[taskId].data[1], - initialBlendAmount, - targetBlendAmount, - gTasks[taskId].data[5]); - --gTasks[taskId].data[2]; - gTasks[taskId].data[8] ^= 1; + u32 selectedPalettes = ((u16)gTasks[taskId].tPalSelectorHi << 16) | (u16)gTasks[taskId].tPalSelectorLo; + BeginNormalPaletteFade( + selectedPalettes, + gTasks[taskId].tDelay, + startBlendAmount, + targetBlendAmount, + gTasks[taskId].tBlendColor); + + gTasks[taskId].tNumBlends--; + gTasks[taskId].tRestoreBlend ^= 1; } -static void sub_80B9DF0(u8 taskId) +static void AnimTask_BlendColorCycleExcludeLoop(u8 taskId) { - u8 initialBlendAmount, targetBlendAmount; - + u8 startBlendAmount, targetBlendAmount; if (!gPaletteFade.active) { - if (gTasks[taskId].data[2] > 0) + if (gTasks[taskId].tNumBlends > 0) { - if (gTasks[taskId].data[8] == 0) + if (!gTasks[taskId].tRestoreBlend) { - initialBlendAmount = gTasks[taskId].data[3]; - targetBlendAmount = gTasks[taskId].data[4]; + // Blend to designated color + startBlendAmount = gTasks[taskId].tInitialBlendY; + targetBlendAmount = gTasks[taskId].tTargetBlendY; } else { - initialBlendAmount = gTasks[taskId].data[4]; - targetBlendAmount = gTasks[taskId].data[3]; + // Blend back to original color + startBlendAmount = gTasks[taskId].tTargetBlendY; + targetBlendAmount = gTasks[taskId].tInitialBlendY; } - if (gTasks[taskId].data[2] == 1) + if (gTasks[taskId].tNumBlends == 1) targetBlendAmount = 0; - sub_80B9DA0(taskId, initialBlendAmount, targetBlendAmount); + + BlendColorCycleExclude(taskId, startBlendAmount, targetBlendAmount); } else { @@ -527,56 +555,59 @@ static void sub_80B9DF0(u8 taskId) } } +// See AnimTask_BlendColorCycle. Same, but selects palette by ANIM_TAG_* void AnimTask_BlendColorCycleByTag(u8 taskId) { - u8 paletteIndex; + gTasks[taskId].tPalTag = gBattleAnimArgs[0]; + gTasks[taskId].tDelay = gBattleAnimArgs[1]; + gTasks[taskId].tNumBlends = gBattleAnimArgs[2]; + gTasks[taskId].tInitialBlendY = gBattleAnimArgs[3]; + gTasks[taskId].tTargetBlendY = gBattleAnimArgs[4]; + gTasks[taskId].tBlendColor = gBattleAnimArgs[5]; + gTasks[taskId].tRestoreBlend = FALSE; - gTasks[taskId].data[0] = gBattleAnimArgs[0]; - gTasks[taskId].data[1] = gBattleAnimArgs[1]; - gTasks[taskId].data[2] = gBattleAnimArgs[2]; - gTasks[taskId].data[3] = gBattleAnimArgs[3]; - gTasks[taskId].data[4] = gBattleAnimArgs[4]; - gTasks[taskId].data[5] = gBattleAnimArgs[5]; - gTasks[taskId].data[8] = 0; - sub_80B9EA8(taskId, 0, gTasks[taskId].data[4]); - gTasks[taskId].func = sub_80B9F04; + BlendColorCycleByTag(taskId, 0, gTasks[taskId].tTargetBlendY); + gTasks[taskId].func = AnimTask_BlendColorCycleByTagLoop; } -static void sub_80B9EA8(u8 taskId, u8 initialBlendAmount, u8 targetBlendAmount) +static void BlendColorCycleByTag(u8 taskId, u8 startBlendAmount, u8 targetBlendAmount) { - u8 paletteIndex = IndexOfSpritePaletteTag(gTasks[taskId].data[0]); - - BeginNormalPaletteFade(1 << (paletteIndex + 16), - gTasks[taskId].data[1], - initialBlendAmount, - targetBlendAmount, - gTasks[taskId].data[5]); - --gTasks[taskId].data[2]; - gTasks[taskId].data[8] ^= 1; + u8 paletteIndex = IndexOfSpritePaletteTag(gTasks[taskId].tPalTag); + BeginNormalPaletteFade( + 1 << (paletteIndex + 16), + gTasks[taskId].tDelay, + startBlendAmount, + targetBlendAmount, + gTasks[taskId].tBlendColor); + + gTasks[taskId].tNumBlends--; + gTasks[taskId].tRestoreBlend ^= 1; } -static void sub_80B9F04(u8 taskId) +static void AnimTask_BlendColorCycleByTagLoop(u8 taskId) { - u8 initialBlendAmount, targetBlendAmount; - + u8 startBlendAmount, targetBlendAmount; if (!gPaletteFade.active) { - if (gTasks[taskId].data[2] > 0) + if (gTasks[taskId].tNumBlends > 0) { - if (gTasks[taskId].data[8] == 0) + if (!gTasks[taskId].tRestoreBlend) { - initialBlendAmount = gTasks[taskId].data[3]; - targetBlendAmount = gTasks[taskId].data[4]; + // Blend to designated color + startBlendAmount = gTasks[taskId].tInitialBlendY; + targetBlendAmount = gTasks[taskId].tTargetBlendY; } else { - initialBlendAmount = gTasks[taskId].data[4]; - targetBlendAmount = gTasks[taskId].data[3]; + // Blend back to original color + startBlendAmount = gTasks[taskId].tTargetBlendY; + targetBlendAmount = gTasks[taskId].tInitialBlendY; } - if (gTasks[taskId].data[2] == 1) + if (gTasks[taskId].tNumBlends == 1) targetBlendAmount = 0; - sub_80B9EA8(taskId, initialBlendAmount, targetBlendAmount); + + BlendColorCycleByTag(taskId, startBlendAmount, targetBlendAmount); } else { @@ -585,6 +616,18 @@ static void sub_80B9F04(u8 taskId) } } +#undef tPalSelector +#undef tPalTag +#undef tDelay +#undef tNumBlends +#undef tInitialBlendY +#undef tTargetBlendY +#undef tBlendColor +#undef tRestoreBlend +#undef tPalSelectorHi +#undef tPalSelectorLo + +// Flashes the specified anim tag with given color. Used e.g. to flash the particles red in Hyper Beam void AnimTask_FlashAnimTagWithColor(u8 taskId) { u8 paletteIndex; @@ -603,10 +646,10 @@ void AnimTask_FlashAnimTagWithColor(u8 taskId) gBattleAnimArgs[4], gBattleAnimArgs[4], gBattleAnimArgs[3]); - gTasks[taskId].func = sub_80B9FD8; + gTasks[taskId].func = AnimTask_FlashAnimTagWithColor_Step1; } -static void sub_80B9FD8(u8 taskId) +static void AnimTask_FlashAnimTagWithColor_Step1(u8 taskId) { u32 selectedPalettes; @@ -619,7 +662,7 @@ static void sub_80B9FD8(u8 taskId) return; if (gTasks[taskId].data[2] == 0) { - gTasks[taskId].func = sub_80BA090; + gTasks[taskId].func = AnimTask_FlashAnimTagWithColor_Step2; return; } selectedPalettes = 1 << (IndexOfSpritePaletteTag(gTasks[taskId].data[7]) + 16); @@ -640,7 +683,7 @@ static void sub_80B9FD8(u8 taskId) --gTasks[taskId].data[2]; } -static void sub_80BA090(u8 taskId) +static void AnimTask_FlashAnimTagWithColor_Step2(u8 taskId) { u32 selectedPalettes; @@ -659,7 +702,7 @@ void AnimTask_InvertScreenColor(u8 taskId) u8 targetBattler = gBattleAnimTarget; if (gBattleAnimArgs[0] & 0x100) - selectedPalettes = SelectBattleAnimSpriteAndBgPalettes(1, 0, 0, 0, 0, 0, 0); + selectedPalettes = GetBattlePalettesMask(TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE); if (gBattleAnimArgs[1] & 0x100) selectedPalettes |= (0x10000 << attackerBattler); if (gBattleAnimArgs[2] & 0x100) @@ -668,8 +711,16 @@ void AnimTask_InvertScreenColor(u8 taskId) DestroyAnimVisualTask(taskId); } -// not used -static void sub_80BA16C(u8 taskId) +// Unused +#define tTimer data[0] +#define tLength data[1] +#define tFlagsScenery data[2] +#define tFlagsAttacker data[3] +#define tFlagsTarget data[4] +#define tColorR data[5] +#define tColorG data[6] +#define tColorB data[7] +static void AnimTask_TintPalettes(u8 taskId) { u8 attackerBattler; u8 targetBattler; @@ -708,6 +759,15 @@ static void sub_80BA16C(u8 taskId) } } +#undef tTimer +#undef tLength +#undef tFlagsScenery +#undef tFlagsAttacker +#undef tFlagsTarget +#undef tColorR +#undef tColorG +#undef tColorB + static void AnimShakeMonOrBattleTerrain(struct Sprite *sprite) { u16 var0; @@ -737,11 +797,11 @@ static void AnimShakeMonOrBattleTerrain(struct Sprite *sprite) sprite->data[5] = gBattleAnimArgs[3]; var0 = sprite->data[5] - 2; if (var0 < 2) - sub_80BA3CC(); - sprite->callback = sub_80BA320; + AnimShakeMonOrBattleTerrain_UpdateCoordOffsetEnabled(); + sprite->callback = AnimShakeMonOrBattleTerrain_Step; } -static void sub_80BA320(struct Sprite *sprite) +static void AnimShakeMonOrBattleTerrain_Step(struct Sprite *sprite) { u8 i; u16 var0; @@ -766,58 +826,70 @@ static void sub_80BA320(struct Sprite *sprite) var0 = sprite->data[5] - 2; if (var0 < 2) for (i = 0; i < gBattlersCount; ++i) - gSprites[gBattlerSpriteIds[i]].coordOffsetEnabled = 0; + gSprites[gBattlerSpriteIds[i]].coordOffsetEnabled = FALSE; DestroyAnimSprite(sprite); } } -static void sub_80BA3CC(void) +static void AnimShakeMonOrBattleTerrain_UpdateCoordOffsetEnabled(void) { - gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].coordOffsetEnabled = 0; - gSprites[gBattlerSpriteIds[gBattleAnimTarget]].coordOffsetEnabled = 0; + gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].coordOffsetEnabled = FALSE; + gSprites[gBattlerSpriteIds[gBattleAnimTarget]].coordOffsetEnabled = FALSE; if (gBattleAnimArgs[4] == 2) { - gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].coordOffsetEnabled = 1; - gSprites[gBattlerSpriteIds[gBattleAnimTarget]].coordOffsetEnabled = 1; + gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].coordOffsetEnabled = TRUE; + gSprites[gBattlerSpriteIds[gBattleAnimTarget]].coordOffsetEnabled = TRUE; } else { if (gBattleAnimArgs[4] == 0) - gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].coordOffsetEnabled = 1; + gSprites[gBattlerSpriteIds[gBattleAnimAttacker]].coordOffsetEnabled = TRUE; else - gSprites[gBattlerSpriteIds[gBattleAnimTarget]].coordOffsetEnabled = 1; + gSprites[gBattlerSpriteIds[gBattleAnimTarget]].coordOffsetEnabled = TRUE; } } +// Task data for AnimTask_ShakeBattleTerrain +#define tXOffset data[0] +#define tYOffset data[1] +#define tNumShakes data[2] +#define tTimer data[3] +#define tShakeDelay data[8] + +// Can shake battle terrain back and forth on the X or down and back to original pos on Y (cant shake up from orig pos) +// arg0: x offset of shake +// arg1: y offset of shake +// arg2: number of shakes +// arg3: time between shakes void AnimTask_ShakeBattleTerrain(u8 taskId) { - gTasks[taskId].data[0] = gBattleAnimArgs[0]; - gTasks[taskId].data[1] = gBattleAnimArgs[1]; - gTasks[taskId].data[2] = gBattleAnimArgs[2]; - gTasks[taskId].data[3] = gBattleAnimArgs[3]; - gTasks[taskId].data[8] = gBattleAnimArgs[3]; + gTasks[taskId].tXOffset = gBattleAnimArgs[0]; + gTasks[taskId].tYOffset = gBattleAnimArgs[1]; + gTasks[taskId].tNumShakes = gBattleAnimArgs[2]; + gTasks[taskId].tTimer = gBattleAnimArgs[3]; + gTasks[taskId].tShakeDelay = gBattleAnimArgs[3]; gBattle_BG3_X = gBattleAnimArgs[0]; gBattle_BG3_Y = gBattleAnimArgs[1]; - gTasks[taskId].func = sub_80BA4D0; + gTasks[taskId].func = AnimTask_ShakeBattleTerrain_Step; gTasks[taskId].func(taskId); } -static void sub_80BA4D0(u8 taskId) +static void AnimTask_ShakeBattleTerrain_Step(u8 taskId) { - if (gTasks[taskId].data[3] == 0) + if (gTasks[taskId].tTimer == 0) { - if (gBattle_BG3_X == gTasks[taskId].data[0]) - gBattle_BG3_X = -gTasks[taskId].data[0]; + if (gBattle_BG3_X == gTasks[taskId].tXOffset) + gBattle_BG3_X = -gTasks[taskId].tXOffset; else - gBattle_BG3_X = gTasks[taskId].data[0]; + gBattle_BG3_X = gTasks[taskId].tXOffset; - if (gBattle_BG3_Y == -gTasks[taskId].data[1]) + if (gBattle_BG3_Y == -gTasks[taskId].tYOffset) gBattle_BG3_Y = 0; else - gBattle_BG3_Y = -gTasks[taskId].data[1]; + gBattle_BG3_Y = -gTasks[taskId].tYOffset; - gTasks[taskId].data[3] = gTasks[taskId].data[8]; - if (--gTasks[taskId].data[2] == 0) + gTasks[taskId].tTimer = gTasks[taskId].tShakeDelay; + if (--gTasks[taskId].tNumShakes == 0) { gBattle_BG3_X = 0; gBattle_BG3_Y = 0; @@ -826,26 +898,33 @@ static void sub_80BA4D0(u8 taskId) } else { - --gTasks[taskId].data[3]; + gTasks[taskId].tTimer--; } } +#undef tXOffset +#undef tYOffset +#undef tNumShakes +#undef tTimer +#undef tShakeDelay + static void AnimHitSplatBasic(struct Sprite *sprite) { StartSpriteAffineAnim(sprite, gBattleAnimArgs[3]); if (gBattleAnimArgs[2] == 0) - InitSpritePosToAnimAttacker(sprite, 1); + InitSpritePosToAnimAttacker(sprite, TRUE); else InitSpritePosToAnimTarget(sprite, TRUE); sprite->callback = RunStoredCallbackWhenAffineAnimEnds; StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); } +// Same as basic hit splat but takes a length of time to persist for (arg4) static void AnimHitSplatPersistent(struct Sprite *sprite) { StartSpriteAffineAnim(sprite, gBattleAnimArgs[3]); if (gBattleAnimArgs[2] == 0) - InitSpritePosToAnimAttacker(sprite, 1); + InitSpritePosToAnimAttacker(sprite, TRUE); else InitSpritePosToAnimTarget(sprite, TRUE); sprite->data[0] = gBattleAnimArgs[4]; @@ -853,6 +932,8 @@ static void AnimHitSplatPersistent(struct Sprite *sprite) StoreSpriteCallbackInData6(sprite, DestroyAnimSpriteAfterTimer); } +// For paired hit splats whose position is inverted when used by the opponent on the player. +// Used by Twineedle and Spike Cannon static void AnimHitSplatHandleInvert(struct Sprite *sprite) { if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER && !IsContest()) @@ -865,8 +946,8 @@ static void AnimHitSplatRandom(struct Sprite *sprite) if (gBattleAnimArgs[1] == -1) gBattleAnimArgs[1] = Random() & 3; StartSpriteAffineAnim(sprite, gBattleAnimArgs[1]); - if (gBattleAnimArgs[0] == 0) - InitSpritePosToAnimAttacker(sprite, 0); + if (gBattleAnimArgs[0] == ANIM_ATTACKER) + InitSpritePosToAnimAttacker(sprite, FALSE); else InitSpritePosToAnimTarget(sprite, FALSE); sprite->x2 += (Random() % 48) - 24; @@ -889,8 +970,8 @@ static void AnimHitSplatOnMonEdge(struct Sprite *sprite) static void AnimCrossImpact(struct Sprite *sprite) { - if (gBattleAnimArgs[2] == 0) - InitSpritePosToAnimAttacker(sprite, 1); + if (gBattleAnimArgs[2] == ANIM_ATTACKER) + InitSpritePosToAnimAttacker(sprite, TRUE); else InitSpritePosToAnimTarget(sprite, TRUE); sprite->data[0] = gBattleAnimArgs[3]; @@ -901,14 +982,14 @@ static void AnimCrossImpact(struct Sprite *sprite) static void AnimFlashingHitSplat(struct Sprite *sprite) { StartSpriteAffineAnim(sprite, gBattleAnimArgs[3]); - if (gBattleAnimArgs[2] == 0) - InitSpritePosToAnimAttacker(sprite, 1); + if (gBattleAnimArgs[2] == ANIM_ATTACKER) + InitSpritePosToAnimAttacker(sprite, TRUE); else InitSpritePosToAnimTarget(sprite, TRUE); - sprite->callback = sub_80BA7BC; + sprite->callback = AnimFlashingHitSplat_Step; } -static void sub_80BA7BC(struct Sprite *sprite) +static void AnimFlashingHitSplat_Step(struct Sprite *sprite) { sprite->invisible ^= 1; if (sprite->data[0]++ > 12) diff --git a/src/poison.c b/src/battle_anim_poison.c similarity index 90% rename from src/poison.c rename to src/battle_anim_poison.c index 1a617aeaf..d22696a57 100644 --- a/src/poison.c +++ b/src/battle_anim_poison.c @@ -7,10 +7,10 @@ static void AnimAcidPoisonBubble(struct Sprite *sprite); static void AnimSludgeBombHitParticle(struct Sprite *sprite); static void AnimAcidPoisonDroplet(struct Sprite *sprite); static void AnimBubbleEffect(struct Sprite *sprite); -static void sub_80B1684(struct Sprite *sprite); -static void sub_80B1728(struct Sprite *sprite); -static void sub_80B1798(struct Sprite *sprite); -static void AnimBubbleEffectStep(struct Sprite *sprite); +static void AnimSludgeProjectile_Step(struct Sprite *sprite); +static void AnimAcidPoisonBubble_Step(struct Sprite *sprite); +static void AnimSludgeBombHitParticle_Step(struct Sprite *sprite); +static void AnimBubbleEffect_Step(struct Sprite *sprite); static const union AnimCmd sAnim_ToxicBubble[] = { @@ -190,14 +190,14 @@ static void AnimSludgeProjectile(struct Sprite *sprite) StartSpriteAnim(sprite, 2); InitSpritePosToAnimAttacker(sprite, 1); sprite->data[0] = gBattleAnimArgs[2]; - sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2); - sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); sprite->data[5] = -30; InitAnimArcTranslation(sprite); - sprite->callback = sub_80B1684; + sprite->callback = AnimSludgeProjectile_Step; } -static void sub_80B1684(struct Sprite *sprite) +static void AnimSludgeProjectile_Step(struct Sprite *sprite) { if (TranslateAnimHorizontalArc(sprite)) DestroyAnimSprite(sprite); @@ -218,10 +218,10 @@ static void AnimAcidPoisonBubble(struct Sprite *sprite) sprite->data[4] = l2 + gBattleAnimArgs[5]; sprite->data[5] = -30; InitAnimArcTranslation(sprite); - sprite->callback = sub_80B1728; + sprite->callback = AnimAcidPoisonBubble_Step; } -static void sub_80B1728(struct Sprite *sprite) +static void AnimAcidPoisonBubble_Step(struct Sprite *sprite) { if (TranslateAnimHorizontalArc(sprite)) DestroyAnimSprite(sprite); @@ -237,10 +237,10 @@ static void AnimSludgeBombHitParticle(struct Sprite *sprite) InitSpriteDataForLinearTranslation(sprite); sprite->data[5] = sprite->data[1] / gBattleAnimArgs[2]; sprite->data[6] = sprite->data[2] / gBattleAnimArgs[2]; - sprite->callback = sub_80B1798; + sprite->callback = AnimSludgeBombHitParticle_Step; } -static void sub_80B1798(struct Sprite *sprite) +static void AnimSludgeBombHitParticle_Step(struct Sprite *sprite) { TranslateSpriteLinearFixedPoint(sprite); sprite->data[1] -= sprite->data[5]; @@ -284,10 +284,10 @@ static void AnimBubbleEffect(struct Sprite *sprite) sprite->x += gBattleAnimArgs[0]; sprite->y += gBattleAnimArgs[1]; } - sprite->callback = AnimBubbleEffectStep; + sprite->callback = AnimBubbleEffect_Step; } -static void AnimBubbleEffectStep(struct Sprite *sprite) +static void AnimBubbleEffect_Step(struct Sprite *sprite) { sprite->data[0] = (sprite->data[0] + 0xB) & 0xFF; sprite->x2 = Sin(sprite->data[0], 4); diff --git a/src/psychic.c b/src/battle_anim_psychic.c similarity index 90% rename from src/psychic.c rename to src/battle_anim_psychic.c index 1c31bfdca..64aa452cc 100644 --- a/src/psychic.c +++ b/src/battle_anim_psychic.c @@ -12,18 +12,18 @@ static void AnimQuestionMark(struct Sprite *sprite); static void AnimRedX(struct Sprite *sprite); static void AnimSkillSwapOrb(struct Sprite *sprite); static void AnimPsychoBoost(struct Sprite *sprite); -static void sub_80B300C(struct Sprite *sprite); -static void sub_80B3044(struct Sprite *sprite); -static void sub_80B30B0(struct Sprite *sprite); -static void sub_80B3168(struct Sprite *sprite); -static void sub_80B3384(struct Sprite *sprite); -static void sub_80B33B8(struct Sprite *sprite); -static void sub_80B3454(u8 taskId); -static void sub_80B34DC(u8 taskId); -static void sub_80B3618(u8 taskId); -static void sub_80B3980(u8 taskId); -static void sub_80B3B78(u8 taskId); -static void sub_80B3D78(u8 taskId); +static void AnimDefensiveWall_Step2(struct Sprite *sprite); +static void AnimDefensiveWall_Step3(struct Sprite *sprite); +static void AnimDefensiveWall_Step4(struct Sprite *sprite); +static void AnimDefensiveWall_Step5(struct Sprite *sprite); +static void AnimQuestionMark_Step1(struct Sprite *sprite); +static void AnimQuestionMark_Step2(struct Sprite *sprite); +static void AnimTask_MeditateStretchAttacker_Step(u8 taskId); +static void AnimTask_Teleport_Step(u8 taskId); +static void AnimTask_ImprisonOrbs_Step(u8 taskId); +static void AnimTask_SkillSwap_Step(u8 taskId); +static void AnimTask_ExtrasensoryDistortion_Step(u8 taskId); +static void AnimTask_TransparentCloneGrowAndShrink_Step(u8 taskId); static const union AffineAnimCmd sAffineAnim_PsychUpSpiral[] = { @@ -415,6 +415,7 @@ const struct SpriteTemplate gPsychoBoostOrbSpriteTemplate = .callback = AnimPsychoBoost, }; +// For the rectangular wall sprite used by Reflect, Mirror Coat, etc static void AnimDefensiveWall(struct Sprite *sprite) { if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER || IsContest()) @@ -459,20 +460,22 @@ static void AnimDefensiveWall(struct Sprite *sprite) if (IsContest()) sprite->y += 9; sprite->data[0] = 256 + IndexOfSpritePaletteTag(gBattleAnimArgs[2]) * 16; - sprite->callback = sub_80B300C; - sub_80B300C(sprite); + sprite->callback = AnimDefensiveWall_Step2; + sprite->callback(sprite); } -static void sub_80B300C(struct Sprite *sprite) +// AnimDefensiveWall_Step1 is removed in FRLG from the removal of Contest handling + +static void AnimDefensiveWall_Step2(struct Sprite *sprite) { SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(sprite->data[3], 16 - sprite->data[3])); if (sprite->data[3] == 13) - sprite->callback = sub_80B3044; + sprite->callback = AnimDefensiveWall_Step3; else ++sprite->data[3]; } -static void sub_80B3044(struct Sprite *sprite) +static void AnimDefensiveWall_Step3(struct Sprite *sprite) { u16 color; u16 startOffset; @@ -487,11 +490,11 @@ static void sub_80B3044(struct Sprite *sprite) gPlttBufferFaded[startOffset + i] = gPlttBufferFaded[startOffset + i - 1]; gPlttBufferFaded[startOffset + 1] = color; if (++sprite->data[2] == 16) - sprite->callback = sub_80B30B0; + sprite->callback = AnimDefensiveWall_Step4; } } -static void sub_80B30B0(struct Sprite *sprite) +static void AnimDefensiveWall_Step4(struct Sprite *sprite) { SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(sprite->data[3], 16 - sprite->data[3])); if (--sprite->data[3] == -1) @@ -508,11 +511,11 @@ static void sub_80B30B0(struct Sprite *sprite) gSprites[gBattlerSpriteIds[battler]].invisible = FALSE; } sprite->invisible = TRUE; - sprite->callback = sub_80B3168; + sprite->callback = AnimDefensiveWall_Step5; } } -static void sub_80B3168(struct Sprite *sprite) +static void AnimDefensiveWall_Step5(struct Sprite *sprite) { if (!IsContest()) { @@ -531,13 +534,14 @@ static void sub_80B3168(struct Sprite *sprite) sprite->callback = DestroyAnimSprite; } +// Animates the sparkle that appears during Reflect or Light Screen/Mirror Coat static void AnimWallSparkle(struct Sprite *sprite) { if (sprite->data[0] == 0) { - int arg3 = gBattleAnimArgs[3]; + bool32 ignoreOffsets = gBattleAnimArgs[3]; bool8 respectMonPicOffsets = FALSE; - if (arg3 == 0) + if (!ignoreOffsets) respectMonPicOffsets = TRUE; if (!IsContest() && IsDoubleBattle()) { @@ -589,6 +593,7 @@ static void AnimBentSpoon(struct Sprite *sprite) sprite->callback = RunStoredCallbackWhenAnimEnds; } +// Used by Amnesia static void AnimQuestionMark(struct Sprite *sprite) { s16 x = GetBattlerSpriteCoordAttr(gBattleAnimAttacker, BATTLER_COORD_ATTR_WIDTH) / 2; @@ -596,24 +601,24 @@ static void AnimQuestionMark(struct Sprite *sprite) if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_OPPONENT) x = -x; - sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2) + x; - sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3) + y; + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2) + x; + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET) + y; if (sprite->y < 16) sprite->y = 16; - StoreSpriteCallbackInData6(sprite, sub_80B3384); + StoreSpriteCallbackInData6(sprite, AnimQuestionMark_Step1); sprite->callback = RunStoredCallbackWhenAnimEnds; } -static void sub_80B3384(struct Sprite *sprite) +static void AnimQuestionMark_Step1(struct Sprite *sprite) { sprite->oam.affineMode = ST_OAM_AFFINE_NORMAL; sprite->affineAnims = sAffineAnims_QuestionMark; sprite->data[0] = 0; InitSpriteAffineAnim(sprite); - sprite->callback = sub_80B33B8; + sprite->callback = AnimQuestionMark_Step2; } -static void sub_80B33B8(struct Sprite *sprite) +static void AnimQuestionMark_Step2(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -640,10 +645,10 @@ void AnimTask_MeditateStretchAttacker(u8 taskId) task->data[0] = spriteId; PrepareAffineAnimInTaskData(task, spriteId, sAffineAnim_MeditateStretchAttacker); - task->func = sub_80B3454; + task->func = AnimTask_MeditateStretchAttacker_Step; } -static void sub_80B3454(u8 taskId) +static void AnimTask_MeditateStretchAttacker_Step(u8 taskId) { if (!RunAffineAnimFromTaskData(&gTasks[taskId])) DestroyAnimVisualTask(taskId); @@ -659,10 +664,10 @@ void AnimTask_Teleport(u8 taskId) task->data[2] = 0; task->data[3] = GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER ? 4 : 8; PrepareAffineAnimInTaskData(task, task->data[0], sAffineAnim_Teleport); - task->func = sub_80B34DC; + task->func = AnimTask_Teleport_Step; } -static void sub_80B34DC(u8 taskId) +static void AnimTask_Teleport_Step(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -682,7 +687,7 @@ static void sub_80B34DC(u8 taskId) else { gSprites[task->data[0]].invisible = TRUE; - gSprites[task->data[0]].x = 272; + gSprites[task->data[0]].x = DISPLAY_WIDTH + 32; ResetSpriteRotScale(task->data[0]); DestroyAnimVisualTask(taskId); } @@ -704,10 +709,10 @@ void AnimTask_ImprisonOrbs(u8 taskId) task->data[12] = var0 > var1 ? var0 : var1; SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(16, 0)); - task->func = sub_80B3618; + task->func = AnimTask_ImprisonOrbs_Step; } -static void sub_80B3618(u8 taskId) +static void AnimTask_ImprisonOrbs_Step(u8 taskId) { u16 i; u8 spriteId; @@ -757,7 +762,7 @@ static void sub_80B3618(u8 taskId) if (++task->data[1] == 32) { for (i = 8; i < 13; ++i) - if (task->data[i] != 64) + if (task->data[i] != MAX_SPRITES) DestroySprite(&gSprites[task->data[i]]); ++task->data[0]; } @@ -773,7 +778,7 @@ static void sub_80B3618(u8 taskId) } } -static void sub_80B37A4(struct Sprite *sprite) +static void AnimRedX_Step(struct Sprite *sprite) { if (sprite->data[1] > sprite->data[0] - 10) sprite->invisible = sprite->data[1] & 1; @@ -790,7 +795,7 @@ static void AnimRedX(struct Sprite *sprite) sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); } sprite->data[0] = gBattleAnimArgs[1]; - sprite->callback = sub_80B37A4; + sprite->callback = AnimRedX_Step; } void AnimTask_SkillSwap(u8 taskId) @@ -799,7 +804,7 @@ void AnimTask_SkillSwap(u8 taskId) if (IsContest()) { - if (gBattleAnimArgs[0] == 1) + if (gBattleAnimArgs[0] == ANIM_TARGET) { task->data[10] = -10; task->data[11] = GetBattlerSpriteCoordAttr(gBattleAnimTarget, BATTLER_COORD_ATTR_RIGHT) - 8; @@ -836,10 +841,10 @@ void AnimTask_SkillSwap(u8 taskId) } } task->data[1] = 6; - task->func = sub_80B3980; + task->func = AnimTask_SkillSwap_Step; } -static void sub_80B3980(u8 taskId) +static void AnimTask_SkillSwap_Step(u8 taskId) { u8 spriteId; struct Task *task = &gTasks[taskId]; @@ -881,6 +886,8 @@ static void AnimSkillSwapOrb(struct Sprite *sprite) } } +// The scanline effect that distorts the target during Extrasensory by segmenting the mon vertically and shifting the slices +// arg0: Stage. Stage 0 is a slight right distortion, 1 is a medium left distortion, and 2 is a severe right distortion void AnimTask_ExtrasensoryDistortion(u8 taskId) { s16 i; @@ -932,10 +939,10 @@ void AnimTask_ExtrasensoryDistortion(u8 taskId) scanlineParams.initState = 1; scanlineParams.unused9 = 0; ScanlineEffect_SetParams(scanlineParams); - task->func = sub_80B3B78; + task->func = AnimTask_ExtrasensoryDistortion_Step; } -static void sub_80B3B78(u8 taskId) +static void AnimTask_ExtrasensoryDistortion_Step(u8 taskId) { s16 sineIndex, i; struct Task *task = &gTasks[taskId]; @@ -969,6 +976,8 @@ static void sub_80B3B78(u8 taskId) } } +// Creates a cloned transparent sprite of the battler that grows and then shrinks back to original size. Used by Extrasensory +// arg0: battler void AnimTask_TransparentCloneGrowAndShrink(u8 taskId) { s16 spriteId; @@ -998,10 +1007,10 @@ void AnimTask_TransparentCloneGrowAndShrink(u8 taskId) task->data[13] = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); task->data[14] = matrixNum; task->data[15] = spriteId; - task->func = sub_80B3D78; + task->func = AnimTask_TransparentCloneGrowAndShrink_Step; } -static void sub_80B3D78(u8 taskId) +static void AnimTask_TransparentCloneGrowAndShrink_Step(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -1024,7 +1033,7 @@ static void sub_80B3D78(u8 taskId) ++task->data[0]; break; case 2: - obj_delete_but_dont_free_vram(&gSprites[task->data[15]]); + DestroySpriteWithActiveSheet(&gSprites[task->data[15]]); ++task->data[0]; break; case 3: diff --git a/src/rock.c b/src/battle_anim_rock.c similarity index 84% rename from src/rock.c rename to src/battle_anim_rock.c index 7ec10630a..d7b8057ef 100644 --- a/src/rock.c +++ b/src/battle_anim_rock.c @@ -8,21 +8,21 @@ static void AnimFallingRock(struct Sprite *sprite); static void AnimRockFragment(struct Sprite *sprite); -static void AnimDirtParticleAcrossScreen(struct Sprite *sprite); +static void AnimFlyingSandCrescent(struct Sprite *sprite); static void AnimRaiseSprite(struct Sprite *sprite); -static void sub_80B4D00(u8 taskId); +static void AnimTask_Rollout_Step(u8 taskId); static void AnimRolloutParticle(struct Sprite *sprite); static void AnimRockTomb(struct Sprite *sprite); static void AnimRockBlastRock(struct Sprite *sprite); static void AnimRockScatter(struct Sprite *sprite); static void AnimParticleInVortex(struct Sprite *sprite); -static void sub_80B46B4(struct Sprite *sprite); -static void sub_80B47C4(struct Sprite *sprite); -static void sub_80B490C(u8 taskId); -static void sub_80B4E70(struct Task *task); -static u8 sub_80B4FB8(void); -static void sub_80B5024(struct Sprite *sprite); -static void sub_80B50F8(struct Sprite *sprite); +static void AnimFallingRock_Step(struct Sprite *sprite); +static void AnimParticleInVortex_Step(struct Sprite *sprite); +static void AnimTask_LoadSandstormBackground_Step(u8 taskId); +static void CreateRolloutDirtSprite(struct Task *task); +static u8 GetRolloutCounter(void); +static void AnimRockTomb_Step(struct Sprite *sprite); +static void AnimRockScatter_Step(struct Sprite *sprite); static const union AnimCmd sAnim_FlyingRock_0[] = { @@ -125,7 +125,7 @@ const struct SpriteTemplate gFlyingSandCrescentSpriteTemplate = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = AnimDirtParticleAcrossScreen, + .callback = AnimFlyingSandCrescent, }; static const struct Subsprite sFlyingSandSubsprites[] = @@ -133,16 +133,16 @@ static const struct Subsprite sFlyingSandSubsprites[] = { .x = -16, .y = 0, - .shape = ST_OAM_H_RECTANGLE, - .size = 2, + .shape = SPRITE_SHAPE(32x16), + .size = SPRITE_SIZE(32x16), .tileOffset = 0, .priority = 1, }, { .x = 16, .y = 0, - .shape = ST_OAM_H_RECTANGLE, - .size = 2, + .shape = SPRITE_SHAPE(32x16), + .size = SPRITE_SIZE(32x16), .tileOffset = 8, .priority = 1, }, @@ -153,37 +153,37 @@ static const struct SubspriteTable sFlyingSandSubspriteTable[] = { NELEMS(sFlyingSandSubsprites), sFlyingSandSubsprites }, }; -static const union AnimCmd sAnim_BasicRock_0[] = +static const union AnimCmd sAnim_Rock_Biggest[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END, }; -static const union AnimCmd sAnim_BasicRock_1[] = +static const union AnimCmd sAnim_Rock_Bigger[] = { ANIMCMD_FRAME(16, 1), ANIMCMD_END, }; -static const union AnimCmd sAnim_WeatherBallRockDown_0[] = +static const union AnimCmd sAnim_Rock_Big[] = { ANIMCMD_FRAME(32, 1), ANIMCMD_END, }; -static const union AnimCmd sAnim_WeatherBallRockDown_1[] = +static const union AnimCmd sAnim_Rock_Small[] = { ANIMCMD_FRAME(48, 1), ANIMCMD_END, }; -static const union AnimCmd sAnim_TwisterRock_0[] = +static const union AnimCmd sAnim_Rock_Smaller[] = { ANIMCMD_FRAME(64, 1), ANIMCMD_END, }; -static const union AnimCmd sAnim_TwisterRock_1[] = +static const union AnimCmd sAnim_Rock_Smallest[] = { ANIMCMD_FRAME(80, 1), ANIMCMD_END, @@ -191,20 +191,12 @@ static const union AnimCmd sAnim_TwisterRock_1[] = static const union AnimCmd *const sAnims_BasicRock[] = { - sAnim_BasicRock_0, - sAnim_BasicRock_1, -}; - -static const union AnimCmd *const sAnims_WeatherBallRockDown[] = -{ - sAnim_WeatherBallRockDown_0, - sAnim_WeatherBallRockDown_1, -}; - -static const union AnimCmd *const sAnims_TwisterRock[] = -{ - sAnim_TwisterRock_0, - sAnim_TwisterRock_1, + sAnim_Rock_Biggest, + sAnim_Rock_Bigger, + sAnim_Rock_Big, + sAnim_Rock_Small, + sAnim_Rock_Smaller, + sAnim_Rock_Smallest, }; const struct SpriteTemplate gAncientPowerRockSpriteTemplate = @@ -229,7 +221,7 @@ const struct SpriteTemplate gRolloutMudSpriteTemplate = .callback = AnimRolloutParticle, }; -const struct SpriteTemplate gUnknown_83E74F0 = +const struct SpriteTemplate gRolloutRockSpriteTemplate = { .tileTag = ANIM_TAG_ROCKS, .paletteTag = ANIM_TAG_ROCKS, @@ -296,7 +288,7 @@ const struct SpriteTemplate gTwisterRockSpriteTemplate = .tileTag = ANIM_TAG_ROCKS, .paletteTag = ANIM_TAG_ROCKS, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = sAnims_TwisterRock, + .anims = &sAnims_BasicRock[4], .images = NULL, .affineAnims = sAffineAnims_BasicRock, .callback = AnimMoveTwisterParticle, @@ -307,7 +299,7 @@ const struct SpriteTemplate gWeatherBallRockDownSpriteTemplate = .tileTag = ANIM_TAG_ROCKS, .paletteTag = ANIM_TAG_ROCKS, .oam = &gOamData_AffineNormal_ObjNormal_32x32, - .anims = sAnims_WeatherBallRockDown, + .anims = &sAnims_BasicRock[2], .images = NULL, .affineAnims = sAffineAnims_BasicRock, .callback = AnimWeatherBallDown, @@ -327,12 +319,12 @@ static void AnimFallingRock(struct Sprite *sprite) sprite->data[3] = 16; sprite->data[4] = -70; sprite->data[5] = gBattleAnimArgs[2]; - StoreSpriteCallbackInData6(sprite, sub_80B46B4); - sprite->callback = TranslateSpriteInEllipseOverDuration; + StoreSpriteCallbackInData6(sprite, AnimFallingRock_Step); + sprite->callback = TranslateSpriteInEllipse; sprite->callback(sprite); } -static void sub_80B46B4(struct Sprite *sprite) +static void AnimFallingRock_Step(struct Sprite *sprite) { sprite->x += sprite->data[5]; sprite->data[0] = 192; @@ -341,10 +333,11 @@ static void sub_80B46B4(struct Sprite *sprite) sprite->data[3] = 32; sprite->data[4] = -24; StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix); - sprite->callback = TranslateSpriteInEllipseOverDuration; + sprite->callback = TranslateSpriteInEllipse; sprite->callback(sprite); } +// Animates the rock particles that are shown on the impact for Rock Blast / Rock Smash static void AnimRockFragment(struct Sprite *sprite) { StartSpriteAnim(sprite, gBattleAnimArgs[5]); @@ -366,6 +359,7 @@ static void AnimRockFragment(struct Sprite *sprite) StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix); } +// Swirls particle in vortex. Used for moves like Fire Spin or Sand Tomb static void AnimParticleInVortex(struct Sprite *sprite) { if (gBattleAnimArgs[6] == 0) @@ -376,10 +370,10 @@ static void AnimParticleInVortex(struct Sprite *sprite) sprite->data[1] = gBattleAnimArgs[2]; sprite->data[2] = gBattleAnimArgs[4]; sprite->data[3] = gBattleAnimArgs[5]; - sprite->callback = sub_80B47C4; + sprite->callback = AnimParticleInVortex_Step; } -static void sub_80B47C4(struct Sprite *sprite) +static void AnimParticleInVortex_Step(struct Sprite *sprite) { sprite->data[4] += sprite->data[1]; sprite->y2 = -(sprite->data[4] >> 8); @@ -416,10 +410,10 @@ void AnimTask_LoadSandstormBackground(u8 taskId) if (gBattleAnimArgs[0] && GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) var0 = 1; gTasks[taskId].data[0] = var0; - gTasks[taskId].func = sub_80B490C; + gTasks[taskId].func = AnimTask_LoadSandstormBackground_Step; } -static void sub_80B490C(u8 taskId) +static void AnimTask_LoadSandstormBackground_Step(u8 taskId) { struct BattleAnimBgData animBg; @@ -487,7 +481,7 @@ static void sub_80B490C(u8 taskId) // arg 1: projectile speed // arg 2: y pixel drop // arg 3: ??? unknown (possibly a color bit) -static void AnimDirtParticleAcrossScreen(struct Sprite *sprite) +static void AnimFlyingSandCrescent(struct Sprite *sprite) { if (sprite->data[0] == 0) { @@ -518,7 +512,7 @@ static void AnimDirtParticleAcrossScreen(struct Sprite *sprite) sprite->data[4] &= 0xFF; if (sprite->data[5] == 0) { - if (sprite->x + sprite->x2 > 272) + if (sprite->x + sprite->x2 > DISPLAY_WIDTH + 32) { sprite->callback = DestroyAnimSprite; } @@ -550,23 +544,23 @@ static void AnimRaiseSprite(struct Sprite *sprite) void AnimTask_Rollout(u8 taskId) { u16 var0, var1, var2, var3; - u8 var4; + u8 rolloutCounter; s32 var5; s16 pan1, pan2; struct Task *task; task = &gTasks[taskId]; - var0 = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); - var1 = GetBattlerSpriteCoord(gBattleAnimAttacker, 1) + 24; - var2 = GetBattlerSpriteCoord(gBattleAnimTarget, 2); - var3 = GetBattlerSpriteCoord(gBattleAnimTarget, 1) + 24; + var0 = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); + var1 = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y) + 24; + var2 = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); + var3 = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y) + 24; if (BATTLE_PARTNER(gBattleAnimAttacker) == gBattleAnimTarget) var3 = var1; - var4 = sub_80B4FB8(); - if (var4 == 1) + rolloutCounter = GetRolloutCounter(); + if (rolloutCounter == 1) task->data[8] = 32; else - task->data[8] = 48 - (var4 * 8); + task->data[8] = 48 - (rolloutCounter * 8); task->data[0] = 0; task->data[11] = 0; task->data[9] = 0; @@ -585,12 +579,12 @@ void AnimTask_Rollout(u8 taskId) pan2 = BattleAnimAdjustPanning(SOUND_PAN_TARGET); task->data[13] = pan1; task->data[14] = (pan2 - pan1) / task->data[8]; - task->data[1] = var4; + task->data[1] = rolloutCounter; task->data[15] = GetAnimBattlerSpriteId(ANIM_ATTACKER); - task->func = sub_80B4D00; + task->func = AnimTask_Rollout_Step; } -static void sub_80B4D00(u8 taskId) +static void AnimTask_Rollout_Step(u8 taskId) { struct Task *task; @@ -634,7 +628,7 @@ static void sub_80B4D00(u8 taskId) if (++task->data[9] >= task->data[10]) { task->data[9] = 0; - sub_80B4E70(task); + CreateRolloutDirtSprite(task); task->data[13] += task->data[14]; PlaySE12WithPanning(SE_M_DIG, task->data[13]); } @@ -650,10 +644,10 @@ static void sub_80B4D00(u8 taskId) } } -static void sub_80B4E70(struct Task *task) +static void CreateRolloutDirtSprite(struct Task *task) { const struct SpriteTemplate *spriteTemplate; - s32 var0; + s32 tileOffset; u16 x, y; u8 spriteId; @@ -661,20 +655,20 @@ static void sub_80B4E70(struct Task *task) { case 1: spriteTemplate = &gRolloutMudSpriteTemplate; - var0 = 0; + tileOffset = 0; break; case 2: case 3: - spriteTemplate = &gUnknown_83E74F0; - var0 = 80; + spriteTemplate = &gRolloutRockSpriteTemplate; + tileOffset = 80; break; case 4: - spriteTemplate = &gUnknown_83E74F0; - var0 = 64; + spriteTemplate = &gRolloutRockSpriteTemplate; + tileOffset = 64; break; case 5: - spriteTemplate = &gUnknown_83E74F0; - var0 = 48; + spriteTemplate = &gRolloutRockSpriteTemplate; + tileOffset = 48; break; default: return; @@ -689,7 +683,7 @@ static void sub_80B4E70(struct Task *task) gSprites[spriteId].data[2] = ((task->data[12] * 20) + x) + (task->data[1] * 3); gSprites[spriteId].data[4] = y; gSprites[spriteId].data[5] = -16 - (task->data[1] * 2); - gSprites[spriteId].oam.tileNum += var0; + gSprites[spriteId].oam.tileNum += tileOffset; InitAnimArcTranslation(&gSprites[spriteId]); ++task->data[11]; } @@ -700,15 +694,15 @@ static void AnimRolloutParticle(struct Sprite *sprite) { if (TranslateAnimHorizontalArc(sprite)) { - u8 taskId = FindTaskIdByFunc(sub_80B4D00); + u8 taskId = FindTaskIdByFunc(AnimTask_Rollout_Step); - if (taskId != TAIL_SENTINEL) + if (taskId != TASK_NONE) --gTasks[taskId].data[11]; DestroySprite(sprite); } } -static u8 sub_80B4FB8(void) +static u8 GetRolloutCounter(void) { u8 retVal = gAnimDisableStructPtr->rolloutTimerStartValue - gAnimDisableStructPtr->rolloutTimer; u8 var0 = retVal - 1; @@ -726,11 +720,11 @@ static void AnimRockTomb(struct Sprite *sprite) sprite->data[3] -= gBattleAnimArgs[2]; sprite->data[0] = 3; sprite->data[1] = gBattleAnimArgs[3]; - sprite->callback = sub_80B5024; + sprite->callback = AnimRockTomb_Step; sprite->invisible = TRUE; } -static void sub_80B5024(struct Sprite *sprite) +static void AnimRockTomb_Step(struct Sprite *sprite) { sprite->invisible = FALSE; if (sprite->data[3] != 0) @@ -758,18 +752,18 @@ static void AnimRockBlastRock(struct Sprite *sprite) static void AnimRockScatter(struct Sprite *sprite) { - sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, 0); - sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, 1); + sprite->x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X); + sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y); sprite->x += gBattleAnimArgs[0]; sprite->y += gBattleAnimArgs[1]; sprite->data[1] = gBattleAnimArgs[0]; sprite->data[2] = gBattleAnimArgs[1]; sprite->data[5] = gBattleAnimArgs[2]; StartSpriteAnim(sprite, gBattleAnimArgs[3]); - sprite->callback = sub_80B50F8; + sprite->callback = AnimRockScatter_Step; } -static void sub_80B50F8(struct Sprite *sprite) +static void AnimRockScatter_Step(struct Sprite *sprite) { sprite->data[0] += 8; sprite->data[3] += sprite->data[1]; @@ -783,11 +777,11 @@ static void sub_80B50F8(struct Sprite *sprite) void AnimTask_GetSeismicTossDamageLevel(u8 taskId) { if (gAnimMoveDmg < 33) - gBattleAnimArgs[7] = 0; + gBattleAnimArgs[ARG_RET_ID] = 0; if ((u32)gAnimMoveDmg - 33 < 33) - gBattleAnimArgs[7] = 1; + gBattleAnimArgs[ARG_RET_ID] = 1; if (gAnimMoveDmg > 65) - gBattleAnimArgs[7] = 2; + gBattleAnimArgs[ARG_RET_ID] = 2; DestroyAnimVisualTask(taskId); } diff --git a/src/battle_anim_smokescreen.c b/src/battle_anim_smokescreen.c new file mode 100644 index 000000000..821884baa --- /dev/null +++ b/src/battle_anim_smokescreen.c @@ -0,0 +1,197 @@ +#include "global.h" +#include "battle_gfx_sfx_util.h" +#include "decompress.h" +#include "graphics.h" +#include "util.h" + +#define TAG_SMOKESCREEN 55019 + +#define PALTAG_SHADOW 55039 +#define GFXTAG_SHADOW 55129 + +static void SpriteCB_SmokescreenImpactMain(struct Sprite *); +static void SpriteCB_SmokescreenImpact(struct Sprite *); + +static const struct CompressedSpriteSheet sSmokescreenImpactSpriteSheet = +{ + .data = gSmokescreenImpactTiles, .size = 0x180, .tag = TAG_SMOKESCREEN +}; + +static const struct CompressedSpritePalette sSmokescreenImpactSpritePalette = +{ + .data = gSmokescreenImpactPalette, .tag = TAG_SMOKESCREEN +}; + +static const struct OamData sOamData_SmokescreenImpact = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .mosaic = FALSE, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(16x16), + .x = 0, + .matrixNum = 0, + .size = SPRITE_SIZE(16x16), + .tileNum = 0, + .priority = 1, + .paletteNum = 0, + .affineParam = 0 +}; + +static const union AnimCmd sAnim_SmokescreenImpact_0[] = +{ + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(4, 4), + ANIMCMD_FRAME(8, 4), + ANIMCMD_END +}; + +static const union AnimCmd sAnim_SmokescreenImpact_1[] = +{ + ANIMCMD_FRAME(0, 4, .hFlip = TRUE), + ANIMCMD_FRAME(4, 4, .hFlip = TRUE), + ANIMCMD_FRAME(8, 4, .hFlip = TRUE), + ANIMCMD_END +}; + +static const union AnimCmd sAnim_SmokescreenImpact_2[] = +{ + ANIMCMD_FRAME(0, 4, .vFlip = TRUE), + ANIMCMD_FRAME(4, 4, .vFlip = TRUE), + ANIMCMD_FRAME(8, 4, .vFlip = TRUE), + ANIMCMD_END +}; + +static const union AnimCmd sAnim_SmokescreenImpact_3[] = +{ + ANIMCMD_FRAME(0, 4, .hFlip = TRUE, .vFlip = TRUE), + ANIMCMD_FRAME(4, 4, .hFlip = TRUE, .vFlip = TRUE), + ANIMCMD_FRAME(8, 4, .hFlip = TRUE, .vFlip = TRUE), + ANIMCMD_END +}; + +static const union AnimCmd *const sAnims_SmokescreenImpact[] = +{ + sAnim_SmokescreenImpact_0, + sAnim_SmokescreenImpact_1, + sAnim_SmokescreenImpact_2, + sAnim_SmokescreenImpact_3, +}; + +static const struct SpriteTemplate sSmokescreenImpactSpriteTemplate = +{ + .tileTag = TAG_SMOKESCREEN, + .paletteTag = TAG_SMOKESCREEN, + .oam = &sOamData_SmokescreenImpact, + .anims = sAnims_SmokescreenImpact, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCB_SmokescreenImpact +}; + +const struct CompressedSpriteSheet gSpriteSheet_EnemyShadow = +{ + .data = gEnemyMonShadow_Gfx, .size = 0x80, .tag = GFXTAG_SHADOW +}; + +static const struct OamData sOamData_EnemyShadow = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .mosaic = FALSE, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(32x8), + .x = 0, + .matrixNum = 0, + .size = SPRITE_SIZE(32x8), + .tileNum = 0, + .priority = 3, + .paletteNum = 0, + .affineParam = 0 +}; + +const struct SpriteTemplate gSpriteTemplate_EnemyShadow = +{ + .tileTag = GFXTAG_SHADOW, + .paletteTag = PALTAG_SHADOW, + .oam = &sOamData_EnemyShadow, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCB_SetInvisible +}; + +#define sActiveSprites data[0] +#define sPersist data[1] + +#define sMainSpriteId data[0] + +u8 SmokescreenImpact(s16 x, s16 y, bool8 persist) +{ + u8 mainSpriteId; + u8 spriteId1, spriteId2, spriteId3, spriteId4; + struct Sprite *mainSprite; + + if (GetSpriteTileStartByTag(sSmokescreenImpactSpriteSheet.tag) == 0xFFFF) + { + LoadCompressedSpriteSheetUsingHeap(&sSmokescreenImpactSpriteSheet); + LoadCompressedSpritePaletteUsingHeap(&sSmokescreenImpactSpritePalette); + } + + mainSpriteId = CreateInvisibleSpriteWithCallback(SpriteCB_SmokescreenImpactMain); + mainSprite = &gSprites[mainSpriteId]; + mainSprite->sPersist = persist; + + // Top left sprite + spriteId1 = CreateSprite(&sSmokescreenImpactSpriteTemplate, x - 16, y - 16, 2); + gSprites[spriteId1].sMainSpriteId = mainSpriteId; + mainSprite->sActiveSprites++; + AnimateSprite(&gSprites[spriteId1]); + + // Top right sprite + spriteId2 = CreateSprite(&sSmokescreenImpactSpriteTemplate, x, y - 16, 2); + gSprites[spriteId2].sMainSpriteId = mainSpriteId; + mainSprite->sActiveSprites++; + StartSpriteAnim(&gSprites[spriteId2], 1); + AnimateSprite(&gSprites[spriteId2]); + + // Bottom left sprite + spriteId3 = CreateSprite(&sSmokescreenImpactSpriteTemplate, x - 16, y, 2); + gSprites[spriteId3].sMainSpriteId = mainSpriteId; + mainSprite->sActiveSprites++; + StartSpriteAnim(&gSprites[spriteId3], 2); + AnimateSprite(&gSprites[spriteId3]); + + // Bottom right sprite + spriteId4 = CreateSprite(&sSmokescreenImpactSpriteTemplate, x, y, 2); + gSprites[spriteId4].sMainSpriteId = mainSpriteId; + mainSprite->sActiveSprites++; + StartSpriteAnim(&gSprites[spriteId4], 3); + AnimateSprite(&gSprites[spriteId4]); + + return mainSpriteId; +} + +static void SpriteCB_SmokescreenImpactMain(struct Sprite *sprite) +{ + if (sprite->sActiveSprites == 0) + { + FreeSpriteTilesByTag(sSmokescreenImpactSpriteSheet.tag); + FreeSpritePaletteByTag(sSmokescreenImpactSpritePalette.tag); + if (!sprite->sPersist) + DestroySprite(sprite); + else + sprite->callback = SpriteCallbackDummy; + } +} + +static void SpriteCB_SmokescreenImpact(struct Sprite *sprite) +{ + if (sprite->animEnded) + { + gSprites[sprite->sMainSpriteId].sActiveSprites--; + DestroySprite(sprite); + } +} diff --git a/src/battle_anim_sound_tasks.c b/src/battle_anim_sound_tasks.c index b05819e70..87dc92b15 100644 --- a/src/battle_anim_sound_tasks.c +++ b/src/battle_anim_sound_tasks.c @@ -6,14 +6,21 @@ #include "constants/battle_anim.h" #include "constants/sound.h" -static void sub_80DCE78(u8 taskId); -static void sub_80DCEE4(u8 taskId); -static void sub_80DCFE8(u8 taskId); -static void sub_80DD270(u8 taskId); -static void sub_80DD390(u8 taskId); -static void sub_80DD4D4(u8 taskId); +static void SoundTask_FireBlast_Step1(u8 taskId); +static void SoundTask_FireBlast_Step2(u8 taskId); +static void SoundTask_LoopSEAdjustPanning_Step(u8 taskId); +static void SoundTask_PlayDoubleCry_Step(u8 taskId); +static void SoundTask_PlayCryWithEcho_Step(u8 taskId); +static void SoundTask_AdjustPanningVar_Step(u8 taskId); -void sub_80DCE10(u8 taskId) +// Loops the specified sound effect and pans from the +// attacker to the target. The second specified sound effect +// is played at the very end. This task is effectively +// hardcoded to the move FIRE_BLAST due to the baked-in +// durations. +// arg 0: looped sound effect +// arg 1: ending sound effect +void SoundTask_FireBlast(u8 taskId) { s8 pan1, pan2, panIncrement; @@ -26,10 +33,10 @@ void sub_80DCE10(u8 taskId) gTasks[taskId].data[3] = pan2; gTasks[taskId].data[4] = panIncrement; gTasks[taskId].data[10] = 10; - gTasks[taskId].func = sub_80DCE78; + gTasks[taskId].func = SoundTask_FireBlast_Step1; } -static void sub_80DCE78(u8 taskId) +static void SoundTask_FireBlast_Step1(u8 taskId) { s16 pan = gTasks[taskId].data[2]; s8 panIncrement = gTasks[taskId].data[4]; @@ -38,7 +45,7 @@ static void sub_80DCE78(u8 taskId) { gTasks[taskId].data[10] = 5; gTasks[taskId].data[11] = 0; - gTasks[taskId].func = sub_80DCEE4; + gTasks[taskId].func = SoundTask_FireBlast_Step2; } else { @@ -52,7 +59,7 @@ static void sub_80DCE78(u8 taskId) } } -static void sub_80DCEE4(u8 taskId) +static void SoundTask_FireBlast_Step2(u8 taskId) { if (++gTasks[taskId].data[10] == 6) { @@ -88,11 +95,11 @@ void SoundTask_LoopSEAdjustPanning(u8 taskId) gTasks[taskId].data[10] = 0; gTasks[taskId].data[11] = sourcePan; gTasks[taskId].data[12] = r9; - gTasks[taskId].func = sub_80DCFE8; - sub_80DCFE8(taskId); + gTasks[taskId].func = SoundTask_LoopSEAdjustPanning_Step; + gTasks[taskId].func(taskId); } -static void sub_80DCFE8(u8 taskId) +static void SoundTask_LoopSEAdjustPanning_Step(u8 taskId) { if (gTasks[taskId].data[12]++ == gTasks[taskId].data[6]) { @@ -131,6 +138,7 @@ void SoundTask_PlayCryHighPitch(u8 taskId) battlerId = BATTLE_PARTNER(gBattleAnimAttacker); else battlerId = BATTLE_PARTNER(gBattleAnimTarget); + // Check if battler is visible. if ((gBattleAnimArgs[0] == ANIM_TARGET || gBattleAnimArgs[0] == ANIM_DEF_PARTNER) && !IsBattlerSpriteVisible(battlerId)) @@ -182,7 +190,7 @@ void SoundTask_PlayDoubleCry(u8 taskId) PlayCry_ByMode(species, pan, CRY_MODE_GROWL_1); else // DOUBLE_CRY_ROAR PlayCry_ByMode(species, pan, CRY_MODE_ROAR_1); - gTasks[taskId].func = sub_80DD270; + gTasks[taskId].func = SoundTask_PlayDoubleCry_Step; } else { @@ -190,7 +198,7 @@ void SoundTask_PlayDoubleCry(u8 taskId) } } -static void sub_80DD270(u8 taskId) +static void SoundTask_PlayDoubleCry_Step(u8 taskId) { u16 species = gTasks[taskId].data[1]; s8 pan = gTasks[taskId].data[2]; @@ -199,7 +207,7 @@ static void sub_80DD270(u8 taskId) { ++gTasks[taskId].data[9]; } - else if (gTasks[taskId].data[0] == TAIL_SENTINEL) + else if (gTasks[taskId].data[0] == DOUBLE_CRY_GROWL) { if (!IsCryPlaying()) { @@ -207,10 +215,13 @@ static void sub_80DD270(u8 taskId) DestroyAnimVisualTask(taskId); } } - else if (!IsCryPlaying()) + else // DOUBLE_CRY_ROAR { - PlayCry_ByMode(species, pan, CRY_MODE_ROAR_2); - DestroyAnimVisualTask(taskId); + if (!IsCryPlaying()) + { + PlayCry_ByMode(species, pan, CRY_MODE_ROAR_2); + DestroyAnimVisualTask(taskId); + } } } @@ -222,19 +233,21 @@ void SoundTask_WaitForCry(u8 taskId) DestroyAnimVisualTask(taskId); } -void sub_80DD334(u8 taskId) +#define tSpecies data[1] +#define tPan data[2] +#define tState data[9] + +void SoundTask_PlayCryWithEcho(u8 taskId) { u16 species; - s8 pan; - - pan = BattleAnimAdjustPanning(SOUND_PAN_ATTACKER); + s8 pan = BattleAnimAdjustPanning(SOUND_PAN_ATTACKER); species = gAnimBattlerSpecies[gBattleAnimAttacker]; - gTasks[taskId].data[1] = species; - gTasks[taskId].data[2] = pan; + gTasks[taskId].tSpecies = species; + gTasks[taskId].tPan = pan; if (species != SPECIES_NONE) { PlayCry_ByMode(species, pan, CRY_MODE_ECHO_START); - gTasks[taskId].func = sub_80DD390; + gTasks[taskId].func = SoundTask_PlayCryWithEcho_Step; } else { @@ -242,23 +255,27 @@ void sub_80DD334(u8 taskId) } } -static void sub_80DD390(u8 taskId) +static void SoundTask_PlayCryWithEcho_Step(u8 taskId) { - if (gTasks[taskId].data[9] < 2) + if (gTasks[taskId].tState < 2) { - ++gTasks[taskId].data[9]; + gTasks[taskId].tState++; } else if (!IsCryPlaying()) { - u16 species = gTasks[taskId].data[1]; - s8 pan = gTasks[taskId].data[2]; + u16 species = gTasks[taskId].tSpecies; + s8 pan = gTasks[taskId].tPan; PlayCry_ByMode(species, pan, CRY_MODE_ECHO_END); DestroyAnimVisualTask(taskId); } } +#undef tSpecies +#undef tPan +#undef tState + void SoundTask_PlaySE1WithPanning(u8 taskId) { u16 songId = gBattleAnimArgs[0]; @@ -277,6 +294,8 @@ void SoundTask_PlaySE2WithPanning(u8 taskId) DestroyAnimVisualTask(taskId); } +// Adjusts panning and assigns it to gAnimCustomPanning. Doesnt play sound. +// Used by Confuse Ray and Will-O-Wisp (see uses of gAnimCustomPanning) void SoundTask_AdjustPanningVar(u8 taskId) { s8 targetPan = gBattleAnimArgs[1]; @@ -292,11 +311,11 @@ void SoundTask_AdjustPanningVar(u8 taskId) gTasks[taskId].data[5] = r9; gTasks[taskId].data[10] = 0; gTasks[taskId].data[11] = sourcePan; - gTasks[taskId].func = sub_80DD4D4; - sub_80DD4D4(taskId); + gTasks[taskId].func = SoundTask_AdjustPanningVar_Step; + gTasks[taskId].func(taskId); } -static void sub_80DD4D4(u8 taskId) +static void SoundTask_AdjustPanningVar_Step(u8 taskId) { u16 oldPan, panIncrement = gTasks[taskId].data[3]; @@ -307,7 +326,7 @@ static void sub_80DD4D4(u8 taskId) gTasks[taskId].data[11] = panIncrement + oldPan; gTasks[taskId].data[11] = KeepPanInRange(gTasks[taskId].data[11], oldPan); } - gUnknown_2037F24 = gTasks[taskId].data[11]; + gAnimCustomPanning = gTasks[taskId].data[11]; if (gTasks[taskId].data[11] == gTasks[taskId].data[2]) DestroyAnimVisualTask(taskId); } diff --git a/src/battle_anim_special.c b/src/battle_anim_special.c index 238e0b3bd..78400812d 100644 --- a/src/battle_anim_special.c +++ b/src/battle_anim_special.c @@ -3,6 +3,7 @@ #include "battle.h" #include "battle_anim.h" #include "battle_main.h" +#include "battle_message.h" #include "battle_controllers.h" #include "battle_interface.h" #include "decompress.h" @@ -34,9 +35,9 @@ #define TAG_HEALTHBOX_PALS_2 55050 // RAM -UNUSED u32 gMonShrinkDuration; -UNUSED u16 gMonShrinkDelta; -UNUSED u16 gMonShrinkDistance; +u32 gMonShrinkDuration; +u16 gMonShrinkDelta; +u16 gMonShrinkDistance; // Function Declarations static void AnimTask_UnusedLevelUpHealthBox_Step(u8); @@ -408,7 +409,9 @@ const struct SpriteTemplate gSafariRockTemplate = }; // Functions -UNUSED void AnimTask_UnusedLevelUpHealthBox(u8 taskId) + +// Unused +void AnimTask_LevelUpHealthBox(u8 taskId) { struct BattleAnimBgData animBgData; u8 healthBoxSpriteId; @@ -442,8 +445,8 @@ UNUSED void AnimTask_UnusedLevelUpHealthBox(u8 taskId) gSprites[spriteId3].callback = SpriteCallbackDummy; gSprites[spriteId4].callback = SpriteCallbackDummy; GetBattleAnimBg1Data(&animBgData); - AnimLoadCompressedBgTilemap(animBgData.bgId, gUnknown_D2EC24_Tilemap); - AnimLoadCompressedBgGfx(animBgData.bgId, gUnknown_D2EC24_Gfx, animBgData.tilesOffset); + AnimLoadCompressedBgTilemap(animBgData.bgId, gUnusedLevelupAnimationTilemap); + AnimLoadCompressedBgGfx(animBgData.bgId, gUnusedLevelupAnimationGfx, animBgData.tilesOffset); LoadCompressedPalette(gCureBubblesPal, animBgData.paletteId << 4, 32); gBattle_BG1_X = -gSprites[spriteId3].x + 32; gBattle_BG1_Y = -gSprites[spriteId3].y - 32; @@ -660,7 +663,7 @@ void AnimTask_SwitchOutBallEffect(u8 taskId) priority = gSprites[spriteId].oam.priority; subpriority = gSprites[spriteId].subpriority; gTasks[taskId].data[10] = AnimateBallOpenParticles(x, y + 32, priority, subpriority, ballId); - selectedPalettes = SelectBattleAnimSpriteAndBgPalettes(1, 0, 0, 0, 0, 0, 0); + selectedPalettes = GetBattlePalettesMask(1, 0, 0, 0, 0, 0, 0); gTasks[taskId].data[11] = LaunchBallFadeMonTask(0, gBattleAnimAttacker, selectedPalettes, ballId); gTasks[taskId].data[0]++; break; @@ -2037,7 +2040,7 @@ void AnimTask_IsAttackerBehindSubstitute(u8 taskId) DestroyAnimVisualTask(taskId); } -void AnimTask_TargetToEffectBattler(u8 taskId) +void AnimTask_SetTargetToEffectBattler(u8 taskId) { gBattleAnimTarget = gEffectBattler; DestroyAnimVisualTask(taskId); @@ -2079,7 +2082,7 @@ void TryShinyAnimation(u8 battler, struct Pokemon *mon) } } - gBattleSpritesDataPtr->healthBoxesData[battler].finishedShinyMonAnim = 1; + gBattleSpritesDataPtr->healthBoxesData[battler].finishedShinyMonAnim = TRUE; } static void AnimTask_ShinySparkles(u8 taskId) @@ -2162,7 +2165,7 @@ static void AnimTask_ShinySparkles_WaitSparkles(u8 taskId) if (gTasks[taskId].data[1] == TRUE) { battler = gTasks[taskId].data[0]; - gBattleSpritesDataPtr->healthBoxesData[battler].finishedShinyMonAnim = 1; + gBattleSpritesDataPtr->healthBoxesData[battler].finishedShinyMonAnim = TRUE; } DestroyTask(taskId); @@ -2204,7 +2207,7 @@ static void SpriteCB_ShinySparkles_2(struct Sprite *sprite) void AnimTask_LoadBaitGfx(u8 taskId) { - UNUSED u8 paletteIndex; + u8 paletteIndex; LoadCompressedSpriteSheetUsingHeap(&gBattleAnimPicTable[ANIM_TAG_SAFARI_BAIT - ANIM_SPRITES_START]); LoadCompressedSpritePaletteUsingHeap(&gBattleAnimPaletteTable[ANIM_TAG_SAFARI_BAIT - ANIM_SPRITES_START]); @@ -2278,7 +2281,7 @@ void AnimTask_SafariOrGhost_DecideAnimSides(u8 taskId) void AnimTask_SafariGetReaction(u8 taskId) { - if (gBattleCommunication[MULTISTRING_CHOOSER] > 2) + if (gBattleCommunication[MULTISTRING_CHOOSER] >= NUM_SAFARI_REACTIONS) gBattleAnimArgs[7] = 0; else gBattleAnimArgs[7] = gBattleCommunication[MULTISTRING_CHOOSER]; diff --git a/src/battle_anim_status_effects.c b/src/battle_anim_status_effects.c index 4abcb083a..8307d1786 100644 --- a/src/battle_anim_status_effects.c +++ b/src/battle_anim_status_effects.c @@ -9,19 +9,17 @@ #include "constants/battle_anim.h" #include "constants/pokemon.h" -// Function Declarations -static u8 sub_8078178(u8 battlerId, bool8 b); -static void sub_80782BC(u8 taskId); -static void sub_80784D8(u8 taskId); -static void sub_8078528(u8 taskId); -static void sub_80785D8(u8 taskId); -static void sub_807862C(u8 taskId); +static u8 Task_FlashingCircleImpacts(u8 battlerId, bool8 b); +static void Task_UpdateFlashingCircleImpacts(u8 taskId); +static void AnimTask_FrozenIceCube_Step1(u8 taskId); +static void AnimTask_FrozenIceCube_Step2(u8 taskId); +static void AnimTask_FrozenIceCube_Step3(u8 taskId); +static void AnimTask_FrozenIceCube_Step4(u8 taskId); static void Task_DoStatusAnimation(u8 taskId); -static void sub_807834C(struct Sprite *sprite); -static void sub_8078380(struct Sprite *sprite); +static void AnimFlashingCircleImpact(struct Sprite *sprite); +static void AnimFlashingCircleImpact_Step(struct Sprite *sprite); -// Data -static const union AnimCmd sUnknown_83BF3E0[] = +static const union AnimCmd sAnim_FlickeringOrb[] = { ANIMCMD_FRAME(0, 3), ANIMCMD_FRAME(4, 3), @@ -30,42 +28,44 @@ static const union AnimCmd sUnknown_83BF3E0[] = ANIMCMD_JUMP(0) }; -static const union AnimCmd *const sSpriteAnimTable_83BF3F4[] = +static const union AnimCmd *const sAnims_FlickeringOrb[] = { - sUnknown_83BF3E0 + sAnim_FlickeringOrb }; -const struct SpriteTemplate gSpriteTemplate_83BF3F8 = +// Unused +static const struct SpriteTemplate sFlickeringOrbSpriteTemplate = { .tileTag = ANIM_TAG_ORB, .paletteTag = ANIM_TAG_ORB, .oam = &gOamData_AffineOff_ObjNormal_16x16, - .anims = sSpriteAnimTable_83BF3F4, + .anims = sAnims_FlickeringOrb, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCB_AnimTranslateSpriteLinearAndFlicker2, + .callback = AnimTranslateLinearAndFlicker, }; -const struct SpriteTemplate gSpriteTemplate_83BF410 = +// Unused +static const struct SpriteTemplate sFlickeringOrbFlippedSpriteTemplate = { .tileTag = ANIM_TAG_ORB, .paletteTag = ANIM_TAG_ORB, .oam = &gOamData_AffineOff_ObjNormal_16x16, - .anims = sSpriteAnimTable_83BF3F4, + .anims = sAnims_FlickeringOrb, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCB_AnimTranslateSpriteLinearAndFlicker, + .callback = AnimTranslateLinearAndFlicker_Flipped, }; -static const union AnimCmd sUnknown_83BF428[] = +static const union AnimCmd sAnim_WeatherBallNormal[] = { ANIMCMD_FRAME(0, 3), ANIMCMD_JUMP(0) }; -static const union AnimCmd *const sSpriteAnimTable_83BF430[] = +static const union AnimCmd *const sAnims_WeatherBallNormal[] = { - sUnknown_83BF428 + sAnim_WeatherBallNormal }; const struct SpriteTemplate gWeatherBallUpSpriteTemplate = @@ -73,10 +73,10 @@ const struct SpriteTemplate gWeatherBallUpSpriteTemplate = .tileTag = ANIM_TAG_WEATHER_BALL, .paletteTag = ANIM_TAG_WEATHER_BALL, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = sSpriteAnimTable_83BF430, + .anims = sAnims_WeatherBallNormal, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCB_WeatherBallUp, + .callback = AnimWeatherBallUp, }; const struct SpriteTemplate gWeatherBallNormalDownSpriteTemplate = @@ -84,13 +84,13 @@ const struct SpriteTemplate gWeatherBallNormalDownSpriteTemplate = .tileTag = ANIM_TAG_WEATHER_BALL, .paletteTag = ANIM_TAG_WEATHER_BALL, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = sSpriteAnimTable_83BF430, + .anims = sAnims_WeatherBallNormal, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = AnimWeatherBallDown, }; -static const union AnimCmd sUnknown_83BF464[] = +static const union AnimCmd sAnim_SpinningSparkle[] = { ANIMCMD_FRAME(0, 3), ANIMCMD_FRAME(16, 3), @@ -100,23 +100,24 @@ static const union AnimCmd sUnknown_83BF464[] = ANIMCMD_END }; -static const union AnimCmd *const sSpriteAnimTable_83BF47C[] = +static const union AnimCmd *const sAnims_SpinningSparkle[] = { - sUnknown_83BF464 + sAnim_SpinningSparkle }; -const struct SpriteTemplate gSpriteTemplate_83BF480 = +const struct SpriteTemplate gSpinningSparkleSpriteTemplate = { .tileTag = ANIM_TAG_SPARKLE_4, .paletteTag = ANIM_TAG_SPARKLE_4, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = sSpriteAnimTable_83BF47C, + .anims = sAnims_SpinningSparkle, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCB_TrackOffsetFromAttackerAndWaitAnim, + .callback = AnimSpinningSparkle, }; -const struct SpriteTemplate gSpriteTemplate_83BF498 = +// Unused +static const struct SpriteTemplate sFlickeringFootSpriteTemplate = { .tileTag = ANIM_TAG_MONSTER_FOOT, .paletteTag = ANIM_TAG_MONSTER_FOOT, @@ -124,95 +125,98 @@ const struct SpriteTemplate gSpriteTemplate_83BF498 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCB_AnimTranslateSpriteLinearAndFlicker2, + .callback = AnimTranslateLinearAndFlicker, }; -static const union AnimCmd sUnknown_83BF4B0[] = +static const union AnimCmd sAnim_FlickeringImpact_0[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_JUMP(0) }; -static const union AnimCmd sUnknown_83BF4B8[] = +static const union AnimCmd sAnim_FlickeringImpact_1[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_JUMP(0) }; -static const union AnimCmd sUnknown_83BF4C0[] = +static const union AnimCmd sAnim_FlickeringImpact_2[] = { ANIMCMD_FRAME(0, 5), ANIMCMD_JUMP(0) }; -static const union AnimCmd *const sSpriteAniimTable_83BF4C8[] = +static const union AnimCmd *const sAnims_FlickeringImpact[] = { - sUnknown_83BF4B0, - sUnknown_83BF4B8, - sUnknown_83BF4C0 + sAnim_FlickeringImpact_0, + sAnim_FlickeringImpact_1, + sAnim_FlickeringImpact_2 }; -const struct SpriteTemplate gSpriteTemplate_83BF4D4 = +// Unused +static const struct SpriteTemplate sFlickeringImpactSpriteTemplate = { .tileTag = ANIM_TAG_IMPACT, .paletteTag = ANIM_TAG_IMPACT, .oam = &gOamData_AffineOff_ObjNormal_32x32, - .anims = sSpriteAniimTable_83BF4C8, + .anims = sAnims_FlickeringImpact, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCB_AnimTranslateSpriteLinearAndFlicker2, + .callback = AnimTranslateLinearAndFlicker, }; -static const union AnimCmd sUnknown_83BF4EC[] = +static const union AnimCmd sAnim_FlickeringShrinkOrb[] = { ANIMCMD_FRAME(0, 15), ANIMCMD_JUMP(0) }; -static const union AnimCmd *const sSpriteAnimTable_83BF4F4[] = +static const union AnimCmd *const sAnims_FlickeringShrinkOrb[] = { - sUnknown_83BF4EC + sAnim_FlickeringShrinkOrb }; -static const union AffineAnimCmd sUnknown_83BF4F8[] = +static const union AffineAnimCmd sAffineAnim_FlickeringShrinkOrb[] = { AFFINEANIMCMD_FRAME(96, 96, 0, 0), AFFINEANIMCMD_FRAME(2, 2, 0, 1), AFFINEANIMCMD_JUMP(1) }; -static const union AffineAnimCmd *const sSpriteAffineAnimTable_83BF510[] = +static const union AffineAnimCmd *const sAffineAnims_FlickeringShrinkOrb[] = { - sUnknown_83BF4F8 + sAffineAnim_FlickeringShrinkOrb }; -const struct SpriteTemplate gSpriteTemplate_83BF514 = +// Unused +static const struct SpriteTemplate sFlickeringShrinkOrbSpriteTemplate = { .tileTag = ANIM_TAG_ORB, .paletteTag = ANIM_TAG_ORB, .oam = &gOamData_AffineDouble_ObjNormal_16x16, - .anims = sSpriteAnimTable_83BF4F4, + .anims = sAnims_FlickeringShrinkOrb, .images = NULL, - .affineAnims = sSpriteAffineAnimTable_83BF510, - .callback = SpriteCB_AnimTranslateSpriteLinearAndFlicker, + .affineAnims = sAffineAnims_FlickeringShrinkOrb, + .callback = AnimTranslateLinearAndFlicker_Flipped, }; -static const u8 sUnknown_83BF52C[] = _("TASK OVER\nタスクがオ-バ-しました"); +// Presumably some debug text +static const u8 sText_TaskOver[] = _("TASK OVER\nタスクがオ-バ-しました"); -static const struct Subsprite sSubsprites_83BF544[] = +static const struct Subsprite sFrozenIceCubeSubsprites[] = { - {.x = -16, .y = -16, .shape = SPRITE_SHAPE(8x8), .size = 3, .tileOffset = 0, .priority = 2}, - {.x = -16, .y = 48, .shape = SPRITE_SHAPE(16x8), .size = 3, .tileOffset = 64, .priority = 2}, - {.x = 48, .y = -16, .shape = SPRITE_SHAPE(8x16), .size = 3, .tileOffset = 96, .priority = 2}, - {.x = 48, .y = 48, .shape = SPRITE_SHAPE(8x8), .size = 2, .tileOffset = 128, .priority = 2}, + {.x = -16, .y = -16, .shape = SPRITE_SHAPE(64x64), .size = SPRITE_SIZE(64x64), .tileOffset = 0, .priority = 2}, + {.x = -16, .y = 48, .shape = SPRITE_SHAPE(64x32), .size = SPRITE_SIZE(64x32), .tileOffset = 64, .priority = 2}, + {.x = 48, .y = -16, .shape = SPRITE_SHAPE(32x64), .size = SPRITE_SIZE(32x64), .tileOffset = 96, .priority = 2}, + {.x = 48, .y = 48, .shape = SPRITE_SHAPE(32x32), .size = SPRITE_SIZE(32x32), .tileOffset = 128, .priority = 2}, }; -static const struct SubspriteTable sUnknown_83BF554[] = +static const struct SubspriteTable sFrozenIceCubeSubspriteTable[] = { - {NELEMS(sSubsprites_83BF544), sSubsprites_83BF544}, + {NELEMS(sFrozenIceCubeSubsprites), sFrozenIceCubeSubsprites}, }; -static const struct SpriteTemplate sUnknown_83BF55C = +static const struct SpriteTemplate sFrozenIceCubeSpriteTemplate = { .tileTag = ANIM_TAG_ICE_CUBE, .paletteTag = ANIM_TAG_ICE_CUBE, @@ -223,7 +227,7 @@ static const struct SpriteTemplate sUnknown_83BF55C = .callback = SpriteCallbackDummy, }; -static const struct SpriteTemplate sUnknown_83BF574 = +static const struct SpriteTemplate sFlashingCircleImpactSpriteTemplate = { .tileTag = ANIM_TAG_CIRCLE_IMPACT, .paletteTag = ANIM_TAG_CIRCLE_IMPACT, @@ -231,14 +235,14 @@ static const struct SpriteTemplate sUnknown_83BF574 = .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_807834C, + .callback = AnimFlashingCircleImpact, }; -// Functions -static u8 sub_8078178(u8 battlerId, bool8 b) +// Unused +static u8 Task_FlashingCircleImpacts(u8 battlerId, bool8 b) { u8 battlerSpriteId = gBattlerSpriteIds[battlerId]; - u8 taskId = CreateTask(sub_80782BC, 10); + u8 taskId = CreateTask(Task_UpdateFlashingCircleImpacts, 10); u8 spriteId2; u8 i; @@ -250,7 +254,7 @@ static u8 sub_8078178(u8 battlerId, bool8 b) gTasks[taskId].data[1] = RGB_RED; for (i = 0; i < 10; i++) { - spriteId2 = CreateSprite(&sUnknown_83BF574, gSprites[battlerSpriteId].x, gSprites[battlerSpriteId].y + 32, 0); + spriteId2 = CreateSprite(&sFlashingCircleImpactSpriteTemplate, gSprites[battlerSpriteId].x, gSprites[battlerSpriteId].y + 32, 0); gSprites[spriteId2].data[0] = i * 51; gSprites[spriteId2].data[1] = -256; gSprites[spriteId2].invisible = TRUE; @@ -263,7 +267,7 @@ static u8 sub_8078178(u8 battlerId, bool8 b) gTasks[taskId].data[1] = RGB_BLUE; for (i = 0; i < 10; i++) { - spriteId2 = CreateSprite(&sUnknown_83BF574, gSprites[battlerSpriteId].x, gSprites[battlerSpriteId].y - 32, 0); + spriteId2 = CreateSprite(&sFlashingCircleImpactSpriteTemplate, gSprites[battlerSpriteId].x, gSprites[battlerSpriteId].y - 32, 0); gSprites[spriteId2].data[0] = i * 51; gSprites[spriteId2].data[1] = 256; gSprites[spriteId2].invisible = TRUE; @@ -275,7 +279,7 @@ static u8 sub_8078178(u8 battlerId, bool8 b) return taskId; } -static void sub_80782BC(u8 taskId) +static void Task_UpdateFlashingCircleImpacts(u8 taskId) { if (gTasks[taskId].data[2] == 2) { @@ -308,13 +312,13 @@ static void sub_80782BC(u8 taskId) } } -static void sub_807834C(struct Sprite *sprite) +static void AnimFlashingCircleImpact(struct Sprite *sprite) { if (sprite->data[6] == 0) { sprite->invisible = FALSE; - sprite->callback = sub_8078380; - sub_8078380(sprite); + sprite->callback = AnimFlashingCircleImpact_Step; + sprite->callback(sprite); } else { @@ -322,7 +326,7 @@ static void sub_807834C(struct Sprite *sprite) } } -static void sub_8078380(struct Sprite *sprite) +static void AnimFlashingCircleImpact_Step(struct Sprite *sprite) { sprite->x2 = Cos(sprite->data[0], 32); sprite->y2 = Sin(sprite->data[0], 8); @@ -354,21 +358,21 @@ void AnimTask_FrozenIceCube(u8 taskId) SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 16)); - spriteId = CreateSprite(&sUnknown_83BF55C, x, y, 4); - if (GetSpriteTileStartByTag(ANIM_TAG_ICE_CUBE) == TAG_NONE) + spriteId = CreateSprite(&sFrozenIceCubeSpriteTemplate, x, y, 4); + if (GetSpriteTileStartByTag(ANIM_TAG_ICE_CUBE) == 0xFFFF) gSprites[spriteId].invisible = TRUE; - SetSubspriteTables(&gSprites[spriteId], sUnknown_83BF554); + SetSubspriteTables(&gSprites[spriteId], sFrozenIceCubeSubspriteTable); gTasks[taskId].data[15] = spriteId; - gTasks[taskId].func = sub_80784D8; + gTasks[taskId].func = AnimTask_FrozenIceCube_Step1; } -static void sub_80784D8(u8 taskId) +static void AnimTask_FrozenIceCube_Step1(u8 taskId) { gTasks[taskId].data[1]++; if (gTasks[taskId].data[1] == 10) { - gTasks[taskId].func = sub_8078528; + gTasks[taskId].func = AnimTask_FrozenIceCube_Step2; gTasks[taskId].data[1] = 0; } else @@ -379,7 +383,7 @@ static void sub_80784D8(u8 taskId) } } -static void sub_8078528(u8 taskId) +static void AnimTask_FrozenIceCube_Step2(u8 taskId) { u8 palIndex = IndexOfSpritePaletteTag(ANIM_TAG_ICE_CUBE); @@ -405,19 +409,19 @@ static void sub_8078528(u8 taskId) if (gTasks[taskId].data[4] == 2) { gTasks[taskId].data[1] = 9; - gTasks[taskId].func = sub_80785D8; + gTasks[taskId].func = AnimTask_FrozenIceCube_Step3; } } } } } -static void sub_80785D8(u8 taskId) +static void AnimTask_FrozenIceCube_Step3(u8 taskId) { gTasks[taskId].data[1]--; if (gTasks[taskId].data[1] == -1) { - gTasks[taskId].func = sub_807862C; + gTasks[taskId].func = AnimTask_FrozenIceCube_Step4; gTasks[taskId].data[1] = 0; } else @@ -428,7 +432,7 @@ static void sub_80785D8(u8 taskId) } } -static void sub_807862C(u8 taskId) +static void AnimTask_FrozenIceCube_Step4(u8 taskId) { gTasks[taskId].data[1]++; if (gTasks[taskId].data[1] == 37) diff --git a/src/battle_anim_utility_funcs.c b/src/battle_anim_utility_funcs.c index 184d21884..d231acf08 100644 --- a/src/battle_anim_utility_funcs.c +++ b/src/battle_anim_utility_funcs.c @@ -18,22 +18,22 @@ struct AnimStatsChangeData static void StartBlendAnimSpriteColor(u8 taskId, u32 selectedPalettes); static void AnimTask_BlendSpriteColor_Step2(u8 taskId); -static void Task_WaitHardwarePaletteFade(u8 taskId); -static void Task_DoCloneBattlerSpriteWithBlend(u8 taskId); -static void Task_FinishCloneBattlerSpriteWithBlend(struct Sprite *sprite); +static void AnimTask_HardwarePaletteFade_Step(u8 taskId); +static void AnimTask_TraceMonBlended_Step(u8 taskId); +static void AnimMonTrace(struct Sprite *sprite); static void AnimTask_DrawFallingWhiteLinesOnAttacker_Step(u8 taskId); static void StatsChangeAnimation_Step1(u8 taskId); static void StatsChangeAnimation_Step2(u8 taskId); static void StatsChangeAnimation_Step3(u8 taskId); -static void sub_80BB6CC(u8 taskId); -static void sub_80BB790(u32 selectedPalettes, u16 color); -static void sub_80BB8A4(u8 taskId); -static void sub_80BBC2C(u8 taskId); -static void sub_80BC19C(u8 taskId); +static void AnimTask_Flash_Step(u8 taskId); +static void SetPalettesToColor(u32 selectedPalettes, u16 color); +static void AnimTask_UpdateSlidingBg(u8 taskId); +static void UpdateMonScrollingBgMask(u8 taskId); +static void AnimTask_WaitAndRestoreVisibility(u8 taskId); static EWRAM_DATA struct AnimStatsChangeData *sAnimStatsChangeData = NULL; -static const u16 sRgbWhite[] = { RGB(31, 31, 31) }; +static const u16 sRgbWhite[] = { RGB_WHITE }; const u8 gBattleAnimRegOffsBgCnt[] = { REG_OFFSET_BG0CNT, REG_OFFSET_BG1CNT, REG_OFFSET_BG2CNT, REG_OFFSET_BG3CNT }; const u8 gBattleIntroRegOffsBgCnt[] = { REG_OFFSET_BG0CNT, REG_OFFSET_BG1CNT, REG_OFFSET_BG2CNT, REG_OFFSET_BG3CNT }; @@ -50,11 +50,11 @@ const u8 gBattleIntroRegOffsBgCnt[] = { REG_OFFSET_BG0CNT, REG_OFFSET_BG1CNT, RE // 8: Player battler right // 9: Enemy battler left // 10: Enemy battler right -void AnimTask_BlendSelected(u8 taskId) +void AnimTask_BlendBattleAnimPal(u8 taskId) { - u32 selectedPalettes = UnpackSelectedBattleAnimPalettes(gBattleAnimArgs[0]); + u32 selectedPalettes = UnpackSelectedBattlePalettes(gBattleAnimArgs[0]); - selectedPalettes |= SelectBattlerSpritePalettes( + selectedPalettes |= GetBattleMonSpritePalettesMask( (gBattleAnimArgs[0] >> 7) & 1, (gBattleAnimArgs[0] >> 8) & 1, (gBattleAnimArgs[0] >> 9) & 1, @@ -72,26 +72,26 @@ void AnimTask_BlendSelected(u8 taskId) // 5: Blend all // 6: Neither bg nor attacker's partner // 7: Neither bg nor target's partner -void AnimTask_BlendExcept(u8 taskId) +void AnimTask_BlendBattleAnimPalExclude(u8 taskId) { u8 battler; u32 selectedPalettes; u8 animBattlers[2]; animBattlers[1] = 0xFF; - selectedPalettes = UnpackSelectedBattleAnimPalettes(1); + selectedPalettes = UnpackSelectedBattlePalettes(1); switch (gBattleAnimArgs[0]) { case 2: selectedPalettes = 0; // fall through - case 0: + case ANIM_ATTACKER: animBattlers[0] = gBattleAnimAttacker; break; case 3: selectedPalettes = 0; // fall through - case 1: + case ANIM_TARGET: animBattlers[0] = gBattleAnimTarget; break; case 4: @@ -122,7 +122,7 @@ void AnimTask_BlendExcept(u8 taskId) void AnimTask_SetCamouflageBlend(u8 taskId) { - u32 selectedPalettes = UnpackSelectedBattleAnimPalettes(gBattleAnimArgs[0]); + u32 selectedPalettes = UnpackSelectedBattlePalettes(gBattleAnimArgs[0]); switch (gBattleTerrain) { @@ -217,16 +217,17 @@ void AnimTask_HardwarePaletteFade(u8 taskId) gBattleAnimArgs[2], gBattleAnimArgs[3], gBattleAnimArgs[4]); - gTasks[taskId].func = Task_WaitHardwarePaletteFade; + gTasks[taskId].func = AnimTask_HardwarePaletteFade_Step; } -static void Task_WaitHardwarePaletteFade(u8 taskId) +static void AnimTask_HardwarePaletteFade_Step(u8 taskId) { if (!gPaletteFade.active) DestroyAnimVisualTask(taskId); } -void AnimTask_CloneBattlerSpriteWithBlend(u8 taskId) +// Used to leave blended traces of a mon, usually to imply speed as in Agility or Aerial Ace +void AnimTask_TraceMonBlended(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -236,9 +237,9 @@ void AnimTask_CloneBattlerSpriteWithBlend(u8 taskId) task->data[3] = gBattleAnimArgs[2]; task->data[4] = gBattleAnimArgs[3]; task->data[5] = 0; - task->func = Task_DoCloneBattlerSpriteWithBlend; + task->func = AnimTask_TraceMonBlended_Step; } -static void Task_DoCloneBattlerSpriteWithBlend(u8 taskId) +static void AnimTask_TraceMonBlended_Step(u8 taskId) { struct Task *task = &gTasks[taskId]; @@ -257,7 +258,7 @@ static void Task_DoCloneBattlerSpriteWithBlend(u8 taskId) gSprites[task->data[6]].data[0] = task->data[3]; gSprites[task->data[6]].data[1] = taskId; gSprites[task->data[6]].data[2] = 5; - gSprites[task->data[6]].callback = Task_FinishCloneBattlerSpriteWithBlend; + gSprites[task->data[6]].callback = AnimMonTrace; ++task->data[5]; } --task->data[4]; @@ -270,7 +271,7 @@ static void Task_DoCloneBattlerSpriteWithBlend(u8 taskId) } } -static void Task_FinishCloneBattlerSpriteWithBlend(struct Sprite *sprite) +static void AnimMonTrace(struct Sprite *sprite) { if (sprite->data[0]) { @@ -279,11 +280,12 @@ static void Task_FinishCloneBattlerSpriteWithBlend(struct Sprite *sprite) else { --gTasks[sprite->data[1]].data[sprite->data[2]]; - obj_delete_but_dont_free_vram(sprite); + DestroySpriteWithActiveSheet(sprite); } } -void AnimTask_SetUpCurseBackground(u8 taskId) +// Only used by Curse for non-Ghost mons +void AnimTask_DrawFallingWhiteLinesOnAttacker(u8 taskId) { u16 species; s32 newSpriteId; @@ -330,7 +332,7 @@ void AnimTask_SetUpCurseBackground(u8 taskId) else species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_SPECIES); spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER); - newSpriteId = CreateCloneOfSpriteInWindowMode(gBattleAnimAttacker, spriteId, species); + newSpriteId = CreateInvisibleSpriteCopy(gBattleAnimAttacker, spriteId, species); GetBattleAnimBg1Data(&animBgData); AnimLoadCompressedBgTilemap(animBgData.bgId, gFile_graphics_battle_anims_masks_curse_tilemap); if (IsContest()) @@ -446,11 +448,11 @@ static void StatsChangeAnimation_Step2(u8 taskId) u8 battlerSpriteId; battlerSpriteId = gBattlerSpriteIds[sAnimStatsChangeData->battler1]; - spriteId = CreateCloneOfSpriteInWindowMode(sAnimStatsChangeData->battler1, battlerSpriteId, sAnimStatsChangeData->species); + spriteId = CreateInvisibleSpriteCopy(sAnimStatsChangeData->battler1, battlerSpriteId, sAnimStatsChangeData->species); if (sAnimStatsChangeData->data[3]) { battlerSpriteId = gBattlerSpriteIds[sAnimStatsChangeData->battler2]; - newSpriteId = CreateCloneOfSpriteInWindowMode(sAnimStatsChangeData->battler2, battlerSpriteId, sAnimStatsChangeData->species); + newSpriteId = CreateInvisibleSpriteCopy(sAnimStatsChangeData->battler2, battlerSpriteId, sAnimStatsChangeData->species); } GetBattleAnimBg1Data(&animBgData); if (sAnimStatsChangeData->data[0] == 0) @@ -580,19 +582,19 @@ static void StatsChangeAnimation_Step3(u8 taskId) void AnimTask_Flash(u8 taskId) { - u32 selectedPalettes = SelectBattlerSpritePalettes(1, 1, 1, 1); + u32 selectedPalettes = GetBattleMonSpritePalettesMask(1, 1, 1, 1); - sub_80BB790(selectedPalettes, 0); + SetPalettesToColor(selectedPalettes, 0); gTasks[taskId].data[14] = selectedPalettes >> 16; - selectedPalettes = SelectBattleAnimSpriteAndBgPalettes(1, 0, 0, 0, 0, 0, 0) & 0xFFFF; - sub_80BB790(selectedPalettes, 0xFFFF); + selectedPalettes = GetBattlePalettesMask(1, 0, 0, 0, 0, 0, 0) & 0xFFFF; + SetPalettesToColor(selectedPalettes, 0xFFFF); gTasks[taskId].data[15] = selectedPalettes; gTasks[taskId].data[0] = 0; gTasks[taskId].data[1] = 0; - gTasks[taskId].func = sub_80BB6CC; + gTasks[taskId].func = AnimTask_Flash_Step; } -static void sub_80BB6CC(u8 taskId) +static void AnimTask_Flash_Step(u8 taskId) { u16 i; struct Task *task = &gTasks[taskId]; @@ -637,7 +639,7 @@ static void sub_80BB6CC(u8 taskId) } } -static void sub_80BB790(u32 selectedPalettes, u16 color) +static void SetPalettesToColor(u32 selectedPalettes, u16 color) { u16 i, curOffset, paletteOffset; @@ -665,7 +667,7 @@ void AnimTask_StartSlidingBg(u8 taskId) u8 newTaskId; ToggleBg3Mode(0); - newTaskId = CreateTask(sub_80BB8A4, 5); + newTaskId = CreateTask(AnimTask_UpdateSlidingBg, 5); if (gBattleAnimArgs[2] && GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) { gBattleAnimArgs[0] = -gBattleAnimArgs[0]; @@ -678,7 +680,7 @@ void AnimTask_StartSlidingBg(u8 taskId) DestroyAnimVisualTask(taskId); } -static void sub_80BB8A4(u8 taskId) +static void AnimTask_UpdateSlidingBg(u8 taskId) { gTasks[taskId].data[10] += gTasks[taskId].data[1]; gTasks[taskId].data[11] += gTasks[taskId].data[2]; @@ -713,6 +715,7 @@ void AnimTask_GetTargetIsAttackerPartner(u8 taskId) DestroyAnimVisualTask(taskId); } +// For hiding or subsequently revealing all other battlers void AnimTask_SetAllNonAttackersInvisiblity(u8 taskId) { u16 battler; @@ -723,7 +726,7 @@ void AnimTask_SetAllNonAttackersInvisiblity(u8 taskId) DestroyAnimVisualTask(taskId); } -void StartMonScrollingBgMask(u8 taskId, s32 unused, u16 arg2, u8 battler1, u8 arg4, u8 arg5, u8 arg6, u8 arg7, const u32 *gfx, const u32 *tilemap, const u32 *palette) +void StartMonScrollingBgMask(u8 taskId, s32 unused, u16 scrollSpeed, u8 battler1, bool8 includePartner, u8 numFadeSteps, u8 fadeStepDelay, u8 duration, const u32 *gfx, const u32 *tilemap, const u32 *palette) { u16 species; u8 spriteId, newSpriteId = 0; @@ -731,8 +734,8 @@ void StartMonScrollingBgMask(u8 taskId, s32 unused, u16 arg2, u8 battler1, u8 ar struct BattleAnimBgData animBgData; u8 battler2 = BATTLE_PARTNER(battler1); - if (IsContest() || (arg4 && !IsBattlerSpriteVisible(battler2))) - arg4 = 0; + if (IsContest() || (includePartner && !IsBattlerSpriteVisible(battler2))) + includePartner = FALSE; gBattle_WIN0H = 0; gBattle_WIN0V = 0; SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR @@ -753,9 +756,9 @@ void StartMonScrollingBgMask(u8 taskId, s32 unused, u16 arg2, u8 battler1, u8 ar species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[battler1]], MON_DATA_SPECIES); else species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battler1]], MON_DATA_SPECIES); - spriteId = CreateCloneOfSpriteInWindowMode(battler1, gBattlerSpriteIds[battler1], species); - if (arg4) - newSpriteId = CreateCloneOfSpriteInWindowMode(battler2, gBattlerSpriteIds[battler2], species); + spriteId = CreateInvisibleSpriteCopy(battler1, gBattlerSpriteIds[battler1], species); + if (includePartner) + newSpriteId = CreateInvisibleSpriteCopy(battler2, gBattlerSpriteIds[battler2], species); GetBattleAnimBg1Data(&animBgData); AnimLoadCompressedBgTilemap(animBgData.bgId, tilemap); if (IsContest()) @@ -764,17 +767,17 @@ void StartMonScrollingBgMask(u8 taskId, s32 unused, u16 arg2, u8 battler1, u8 ar LoadCompressedPalette(palette, animBgData.paletteId * 16, 32); gBattle_BG1_X = 0; gBattle_BG1_Y = 0; - gTasks[taskId].data[1] = arg2; - gTasks[taskId].data[4] = arg5; - gTasks[taskId].data[5] = arg7; - gTasks[taskId].data[6] = arg6; + gTasks[taskId].data[1] = scrollSpeed; + gTasks[taskId].data[4] = numFadeSteps; + gTasks[taskId].data[5] = duration; + gTasks[taskId].data[6] = fadeStepDelay; gTasks[taskId].data[0] = spriteId; - gTasks[taskId].data[2] = arg4; + gTasks[taskId].data[2] = includePartner; gTasks[taskId].data[3] = newSpriteId; - gTasks[taskId].func = sub_80BBC2C; + gTasks[taskId].func = UpdateMonScrollingBgMask; } -static void sub_80BBC2C(u8 taskId) +static void UpdateMonScrollingBgMask(u8 taskId) { gTasks[taskId].data[13] += gTasks[taskId].data[1] < 0 ? -gTasks[taskId].data[1] : gTasks[taskId].data[1]; if (gTasks[taskId].data[1] < 0) @@ -856,7 +859,7 @@ void AnimTask_CopyPalUnfadedToBackup(u8 taskId) s32 paletteIndex = 0; if (gBattleAnimArgs[0] == 0) - for (selectedPalettes = SelectBattleAnimSpriteAndBgPalettes(1, 0, 0, 0, 0, 0, 0); + for (selectedPalettes = GetBattlePalettesMask(TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE); (selectedPalettes & 1) == 0; ++paletteIndex) selectedPalettes >>= 1; @@ -874,7 +877,7 @@ void AnimTask_CopyPalUnfadedFromBackup(u8 taskId) s32 paletteIndex = 0; if (gBattleAnimArgs[0] == 0) - for (selectedPalettes = SelectBattleAnimSpriteAndBgPalettes(1, 0, 0, 0, 0, 0, 0); + for (selectedPalettes = GetBattlePalettesMask(TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE); (selectedPalettes & 1) == 0; ++paletteIndex) selectedPalettes >>= 1; @@ -892,7 +895,7 @@ void AnimTask_CopyPalFadedToUnfaded(u8 taskId) s32 paletteIndex = 0; if (gBattleAnimArgs[0] == 0) - for (selectedPalettes = SelectBattleAnimSpriteAndBgPalettes(1, 0, 0, 0, 0, 0, 0); + for (selectedPalettes = GetBattlePalettesMask(TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE); (selectedPalettes & 1) == 0; ++paletteIndex) selectedPalettes >>= 1; @@ -907,9 +910,9 @@ void AnimTask_CopyPalFadedToUnfaded(u8 taskId) void AnimTask_IsContest(u8 taskId) { if (IsContest()) - gBattleAnimArgs[7] = 1; + gBattleAnimArgs[ARG_RET_ID] = TRUE; else - gBattleAnimArgs[7] = 0; + gBattleAnimArgs[ARG_RET_ID] = FALSE; DestroyAnimVisualTask(taskId); } @@ -923,9 +926,9 @@ void AnimTask_SetAnimAttackerAndTargetForEffectTgt(u8 taskId) void AnimTask_IsTargetSameSide(u8 taskId) { if (GetBattlerSide(gBattleAnimAttacker) == GetBattlerSide(gBattleAnimTarget)) - gBattleAnimArgs[7] = 1; + gBattleAnimArgs[ARG_RET_ID] = TRUE; else - gBattleAnimArgs[7] = 0; + gBattleAnimArgs[ARG_RET_ID] = FALSE; DestroyAnimVisualTask(taskId); } @@ -952,12 +955,12 @@ void AnimTask_SetAttackerInvisibleWaitForSignal(u8 taskId) { gTasks[taskId].data[0] = gBattleSpritesDataPtr->battlerData[gBattleAnimAttacker].invisible; gBattleSpritesDataPtr->battlerData[gBattleAnimAttacker].invisible = 1; - gTasks[taskId].func = sub_80BC19C; + gTasks[taskId].func = AnimTask_WaitAndRestoreVisibility; --gAnimVisualTaskCount; } } -static void sub_80BC19C(u8 taskId) +static void AnimTask_WaitAndRestoreVisibility(u8 taskId) { if (gBattleAnimArgs[7] == 0x1000) { diff --git a/src/water.c b/src/battle_anim_water.c similarity index 96% rename from src/water.c rename to src/battle_anim_water.c index 75ea6c7fa..03d65358d 100644 --- a/src/water.c +++ b/src/battle_anim_water.c @@ -12,8 +12,6 @@ #include "trig.h" #include "util.h" -#define ISO_RANDOMIZE2(val)(1103515245 * (val) + 12345) - static void AnimRainDrop(struct Sprite *); static void AnimRainDrop_Step(struct Sprite *); static void AnimWaterBubbleProjectile(struct Sprite *); @@ -55,9 +53,8 @@ static void AnimTask_WaterSport_Step(u8); static void CreateWaterSportDroplet(struct Task *); static void CreateWaterPulseRingBubbles(struct Sprite *, s32, s32); -// Both unused? Comment copied from pokeemerald -static const u8 gUnknown_83E44F4[] = INCBIN_U8("graphics/battle_anims/unk_83E44F4.4bpp"); -static const u8 gUnknown_83E4874[] = INCBIN_U8("graphics/battle_anims/unk_83E4874.bin"); +static const u8 sUnusedWater_Gfx[] = INCBIN_U8("graphics/battle_anims/unk_83E44F4.4bpp"); +static const u8 sUnusedWater[] = INCBIN_U8("graphics/battle_anims/unk_83E4874.bin"); static const union AnimCmd sAnim_RainDrop[] = { @@ -488,8 +485,8 @@ void AnimTask_CreateRaindrops(u8 taskId) gTasks[taskId].data[0]++; if (gTasks[taskId].data[0] % gTasks[taskId].data[2] == 1) { - x = Random() % 240; - y = Random() % 80; + x = Random() % DISPLAY_WIDTH; + y = Random() % (DISPLAY_HEIGHT / 2); CreateSprite(&gRainDropSpriteTemplate, x, y, 4); } if (gTasks[taskId].data[0] == gTasks[taskId].data[3]) @@ -521,23 +518,23 @@ static void AnimWaterBubbleProjectile(struct Sprite *sprite) if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) { - sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2) - gBattleAnimArgs[0]; - sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3) + gBattleAnimArgs[1]; + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2) - gBattleAnimArgs[0]; + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[1]; sprite->animPaused = TRUE; } else { - sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2) + gBattleAnimArgs[0]; - sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3) + gBattleAnimArgs[1]; + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2) + gBattleAnimArgs[0]; + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[1]; sprite->animPaused = TRUE; } if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) gBattleAnimArgs[2] = -gBattleAnimArgs[2]; sprite->data[0] = gBattleAnimArgs[6]; sprite->data[1] = sprite->x; - sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2); + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); sprite->data[3] = sprite->y; - sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); InitAnimLinearTranslation(sprite); spriteId = CreateInvisibleSpriteWithCallback(SpriteCallbackDummy); sprite->data[5] = spriteId; @@ -599,9 +596,9 @@ static void AnimAuroraBeamRings(struct Sprite *sprite) unkArg = gBattleAnimArgs[2]; sprite->data[0] = gBattleAnimArgs[4]; sprite->data[1] = sprite->x; - sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2) + unkArg; + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + unkArg; sprite->data[3] = sprite->y; - sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + gBattleAnimArgs[3]; + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[3]; InitAnimLinearTranslation(sprite); sprite->callback = AnimAuroraBeamRings_Step; sprite->affineAnimPaused = TRUE; @@ -653,9 +650,9 @@ static void AnimToTargetInSinWave(struct Sprite *sprite) InitSpritePosToAnimAttacker(sprite, TRUE); sprite->data[0] = 30; sprite->data[1] = sprite->x; - sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2); + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); sprite->data[3] = sprite->y; - sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); InitAnimLinearTranslation(sprite); sprite->data[5] = 0xD200 / sprite->data[0]; sprite->data[7] = gBattleAnimArgs[3]; @@ -708,8 +705,8 @@ static void AnimHydroCannonCharge(struct Sprite *sprite) { u8 priority; - sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, 0); - sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, 1); + sprite->x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X); + sprite->y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y); sprite->y2 = -10; priority = GetBattlerSpriteSubpriority(gBattleAnimAttacker); if (!IsContest()) @@ -755,14 +752,14 @@ static void AnimHydroCannonBeam(struct Sprite *sprite) else animType = FALSE; if ((u8)gBattleAnimArgs[5] == 0) - coordType = 3; + coordType = BATTLER_COORD_Y_PIC_OFFSET; else coordType = 1; InitSpritePosToAnimAttacker(sprite, animType); if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) gBattleAnimArgs[2] = -gBattleAnimArgs[2]; sprite->data[0] = gBattleAnimArgs[4]; - sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2) + gBattleAnimArgs[2]; + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + gBattleAnimArgs[2]; sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, coordType) + gBattleAnimArgs[3]; sprite->callback = StartAnimLinearTranslation; StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); @@ -1173,8 +1170,8 @@ static u8 GetWaterSpoutPowerForAnim(void) static void CreateWaterSpoutLaunchDroplets(struct Task *task, u8 taskId) { s16 i; - s16 attackerCoordX = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); - s16 attackerCoordY = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); + s16 attackerCoordX = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); + s16 attackerCoordY = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); s16 trigIndex = 172; u8 subpriority = GetBattlerSpriteSubpriority(gBattleAnimAttacker) - 1; s16 increment = 4 - task->data[1]; @@ -1347,8 +1344,8 @@ void AnimTask_WaterSport(u8 taskId) { struct Task *task = &gTasks[taskId]; - task->data[3] = GetBattlerSpriteCoord(gBattleAnimAttacker, 2); - task->data[4] = GetBattlerSpriteCoord(gBattleAnimAttacker, 3); + task->data[3] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2); + task->data[4] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET); task->data[7] = (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) ? 1 : -1; if (IsContest()) task->data[7] *= -1; @@ -1520,8 +1517,8 @@ static void AnimWaterPulseRingBubble(struct Sprite *sprite) void AnimWaterPulseRing(struct Sprite *sprite) { InitSpritePosToAnimAttacker(sprite, TRUE); - sprite->data[1] = GetBattlerSpriteCoord(gBattleAnimTarget, 2); - sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 3); + sprite->data[1] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2); + sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET); sprite->data[3] = gBattleAnimArgs[2]; sprite->data[4] = gBattleAnimArgs[3]; sprite->callback = AnimWaterPulseRing_Step; diff --git a/src/battle_bg.c b/src/battle_bg.c index dd9666499..d44c56cd1 100644 --- a/src/battle_bg.c +++ b/src/battle_bg.c @@ -588,7 +588,8 @@ static const struct { {MAP_BATTLE_SCENE_LINK, BATTLE_TERRAIN_LINK} }; -UNUSED void CreateUnknownDebugSprite(void) +// Unused +void CreateUnknownDebugSprite(void) { u8 spriteId; @@ -634,7 +635,8 @@ static void LoadBattleTerrainEntryGfx(u16 terrain) LZDecompressVram(sBattleTerrainTable[terrain].entryTilemap, (void *)BG_SCREEN_ADDR(28)); } -UNUSED void GetBattleTerrainGfxPtrs(u8 terrain, const u32 **tilesPtr, const u32 **mapPtr, const u32 **palPtr) +// Unused +void GetBattleTerrainGfxPtrs(u8 terrain, const u32 **tilesPtr, const u32 **mapPtr, const u32 **palPtr) { if (terrain > BATTLE_TERRAIN_PLAIN) terrain = BATTLE_TERRAIN_PLAIN; @@ -663,8 +665,8 @@ void InitBattleBgsVideo(void) void LoadBattleMenuWindowGfx(void) { - TextWindow_SetUserSelectedFrame(2, 0x012, 0x10); - TextWindow_SetUserSelectedFrame(2, 0x022, 0x10); + LoadUserWindowGfx(2, 0x012, 0x10); + LoadUserWindowGfx(2, 0x022, 0x10); gPlttBufferUnfaded[0x5C] = RGB( 9, 9, 9); gPlttBufferUnfaded[0x5D] = RGB( 9, 9, 9); gPlttBufferUnfaded[0x5E] = RGB(31, 31, 31); @@ -673,7 +675,7 @@ void LoadBattleMenuWindowGfx(void) if (gBattleTypeFlags & (BATTLE_TYPE_FIRST_BATTLE | BATTLE_TYPE_POKEDUDE)) { Menu_LoadStdPalAt(0x70); - TextWindow_LoadResourcesStdFrame0(0, 0x030, 0x70); + LoadMenuMessageWindowGfx(0, 0x030, 0x70); gPlttBufferUnfaded[0x76] = RGB( 0, 0, 0); CpuCopy16(&gPlttBufferUnfaded[0x76], &gPlttBufferFaded[0x76], 2); } diff --git a/src/battle_controller_link_opponent.c b/src/battle_controller_link_opponent.c index 839a230ad..6e9fb7c61 100644 --- a/src/battle_controller_link_opponent.c +++ b/src/battle_controller_link_opponent.c @@ -1,4 +1,9 @@ #include "global.h" +#include "battle.h" +#include "battle_anim.h" +#include "battle_controllers.h" +#include "battle_interface.h" +#include "battle_message.h" #include "gflib.h" #include "data.h" #include "link.h" @@ -6,11 +11,6 @@ #include "pokeball.h" #include "task.h" #include "util.h" -#include "battle.h" -#include "battle_anim.h" -#include "battle_controllers.h" -#include "battle_interface.h" -#include "battle_message.h" #include "constants/battle_anim.h" #include "constants/songs.h" #include "constants/sound.h" @@ -53,12 +53,12 @@ static void LinkOpponentHandleTwoReturnValues(void); static void LinkOpponentHandleChosenMonReturnValue(void); static void LinkOpponentHandleOneReturnValue(void); static void LinkOpponentHandleOneReturnValue_Duplicate(void); -static void LinkOpponentHandleCmd37(void); -static void LinkOpponentHandleCmd38(void); -static void LinkOpponentHandleCmd39(void); -static void LinkOpponentHandleCmd40(void); +static void LinkOpponentHandleClearUnkVar(void); +static void LinkOpponentHandleSetUnkVar(void); +static void LinkOpponentHandleClearUnkFlag(void); +static void LinkOpponentHandleToggleUnkFlag(void); static void LinkOpponentHandleHitAnimation(void); -static void LinkOpponentHandleCmd42(void); +static void LinkOpponentHandleCantSwitch(void); static void LinkOpponentHandlePlaySE(void); static void LinkOpponentHandlePlayFanfare(void); static void LinkOpponentHandleFaintingCry(void); @@ -71,83 +71,82 @@ static void LinkOpponentHandleSpriteInvisibility(void); static void LinkOpponentHandleBattleAnimation(void); static void LinkOpponentHandleLinkStandbyMsg(void); static void LinkOpponentHandleResetActionMoveSelection(void); -static void LinkOpponentHandleCmd55(void); +static void LinkOpponentHandleEndLinkBattle(void); static void LinkOpponentCmdEnd(void); static void LinkOpponentBufferRunCommand(void); static void LinkOpponentBufferExecCompleted(void); +static void SwitchIn_HandleSoundAndEnd(void); static u32 CopyLinkOpponentMonData(u8 monId, u8 *dst); static void SetLinkOpponentMonData(u8 monId); +static void StartSendOutAnim(u8 battlerId, bool8 dontClearSubstituteBit); static void DoSwitchOutAnimation(void); static void LinkOpponentDoMoveAnimation(void); -static void SwitchIn_HandleSoundAndEnd(void); -static void StartSendOutAnim(u8 battlerId, bool8 dontClearSubstituteBit); static void Task_StartSendOutAnim(u8 taskId); static void SpriteCB_FreeOpponentSprite(struct Sprite *sprite); static void EndDrawPartyStatusSummary(void); static void (*const sLinkOpponentBufferCommands[CONTROLLER_CMDS_COUNT])(void) = { - LinkOpponentHandleGetMonData, - LinkOpponentHandleGetRawMonData, - LinkOpponentHandleSetMonData, - LinkOpponentHandleSetRawMonData, - LinkOpponentHandleLoadMonSprite, - LinkOpponentHandleSwitchInAnim, - LinkOpponentHandleReturnMonToBall, - LinkOpponentHandleDrawTrainerPic, - LinkOpponentHandleTrainerSlide, - LinkOpponentHandleTrainerSlideBack, - LinkOpponentHandleFaintAnimation, - LinkOpponentHandlePaletteFade, - LinkOpponentHandleSuccessBallThrowAnim, - LinkOpponentHandleBallThrowAnim, - LinkOpponentHandlePause, - LinkOpponentHandleMoveAnimation, - LinkOpponentHandlePrintString, - LinkOpponentHandlePrintSelectionString, - LinkOpponentHandleChooseAction, - LinkOpponentHandleUnknownYesNoBox, - LinkOpponentHandleChooseMove, - LinkOpponentHandleChooseItem, - LinkOpponentHandleChoosePokemon, - LinkOpponentHandleCmd23, - LinkOpponentHandleHealthBarUpdate, - LinkOpponentHandleExpUpdate, - LinkOpponentHandleStatusIconUpdate, - LinkOpponentHandleStatusAnimation, - LinkOpponentHandleStatusXor, - LinkOpponentHandleDataTransfer, - LinkOpponentHandleDMA3Transfer, - LinkOpponentHandlePlayBGM, - LinkOpponentHandleCmd32, - LinkOpponentHandleTwoReturnValues, - LinkOpponentHandleChosenMonReturnValue, - LinkOpponentHandleOneReturnValue, - LinkOpponentHandleOneReturnValue_Duplicate, - LinkOpponentHandleCmd37, - LinkOpponentHandleCmd38, - LinkOpponentHandleCmd39, - LinkOpponentHandleCmd40, - LinkOpponentHandleHitAnimation, - LinkOpponentHandleCmd42, - LinkOpponentHandlePlaySE, - LinkOpponentHandlePlayFanfare, - LinkOpponentHandleFaintingCry, - LinkOpponentHandleIntroSlide, - LinkOpponentHandleIntroTrainerBallThrow, - LinkOpponentHandleDrawPartyStatusSummary, - LinkOpponentHandleHidePartyStatusSummary, - LinkOpponentHandleEndBounceEffect, - LinkOpponentHandleSpriteInvisibility, - LinkOpponentHandleBattleAnimation, - LinkOpponentHandleLinkStandbyMsg, - LinkOpponentHandleResetActionMoveSelection, - LinkOpponentHandleCmd55, - LinkOpponentCmdEnd + [CONTROLLER_GETMONDATA] = LinkOpponentHandleGetMonData, + [CONTROLLER_GETRAWMONDATA] = LinkOpponentHandleGetRawMonData, + [CONTROLLER_SETMONDATA] = LinkOpponentHandleSetMonData, + [CONTROLLER_SETRAWMONDATA] = LinkOpponentHandleSetRawMonData, + [CONTROLLER_LOADMONSPRITE] = LinkOpponentHandleLoadMonSprite, + [CONTROLLER_SWITCHINANIM] = LinkOpponentHandleSwitchInAnim, + [CONTROLLER_RETURNMONTOBALL] = LinkOpponentHandleReturnMonToBall, + [CONTROLLER_DRAWTRAINERPIC] = LinkOpponentHandleDrawTrainerPic, + [CONTROLLER_TRAINERSLIDE] = LinkOpponentHandleTrainerSlide, + [CONTROLLER_TRAINERSLIDEBACK] = LinkOpponentHandleTrainerSlideBack, + [CONTROLLER_FAINTANIMATION] = LinkOpponentHandleFaintAnimation, + [CONTROLLER_PALETTEFADE] = LinkOpponentHandlePaletteFade, + [CONTROLLER_SUCCESSBALLTHROWANIM] = LinkOpponentHandleSuccessBallThrowAnim, + [CONTROLLER_BALLTHROWANIM] = LinkOpponentHandleBallThrowAnim, + [CONTROLLER_PAUSE] = LinkOpponentHandlePause, + [CONTROLLER_MOVEANIMATION] = LinkOpponentHandleMoveAnimation, + [CONTROLLER_PRINTSTRING] = LinkOpponentHandlePrintString, + [CONTROLLER_PRINTSTRINGPLAYERONLY] = LinkOpponentHandlePrintSelectionString, + [CONTROLLER_CHOOSEACTION] = LinkOpponentHandleChooseAction, + [CONTROLLER_UNKNOWNYESNOBOX] = LinkOpponentHandleUnknownYesNoBox, + [CONTROLLER_CHOOSEMOVE] = LinkOpponentHandleChooseMove, + [CONTROLLER_OPENBAG] = LinkOpponentHandleChooseItem, + [CONTROLLER_CHOOSEPOKEMON] = LinkOpponentHandleChoosePokemon, + [CONTROLLER_23] = LinkOpponentHandleCmd23, + [CONTROLLER_HEALTHBARUPDATE] = LinkOpponentHandleHealthBarUpdate, + [CONTROLLER_EXPUPDATE] = LinkOpponentHandleExpUpdate, + [CONTROLLER_STATUSICONUPDATE] = LinkOpponentHandleStatusIconUpdate, + [CONTROLLER_STATUSANIMATION] = LinkOpponentHandleStatusAnimation, + [CONTROLLER_STATUSXOR] = LinkOpponentHandleStatusXor, + [CONTROLLER_DATATRANSFER] = LinkOpponentHandleDataTransfer, + [CONTROLLER_DMA3TRANSFER] = LinkOpponentHandleDMA3Transfer, + [CONTROLLER_PLAYBGM] = LinkOpponentHandlePlayBGM, + [CONTROLLER_32] = LinkOpponentHandleCmd32, + [CONTROLLER_TWORETURNVALUES] = LinkOpponentHandleTwoReturnValues, + [CONTROLLER_CHOSENMONRETURNVALUE] = LinkOpponentHandleChosenMonReturnValue, + [CONTROLLER_ONERETURNVALUE] = LinkOpponentHandleOneReturnValue, + [CONTROLLER_ONERETURNVALUE_DUPLICATE] = LinkOpponentHandleOneReturnValue_Duplicate, + [CONTROLLER_CLEARUNKVAR] = LinkOpponentHandleClearUnkVar, + [CONTROLLER_SETUNKVAR] = LinkOpponentHandleSetUnkVar, + [CONTROLLER_CLEARUNKFLAG] = LinkOpponentHandleClearUnkFlag, + [CONTROLLER_TOGGLEUNKFLAG] = LinkOpponentHandleToggleUnkFlag, + [CONTROLLER_HITANIMATION] = LinkOpponentHandleHitAnimation, + [CONTROLLER_CANTSWITCH] = LinkOpponentHandleCantSwitch, + [CONTROLLER_PLAYSE] = LinkOpponentHandlePlaySE, + [CONTROLLER_PLAYFANFARE] = LinkOpponentHandlePlayFanfare, + [CONTROLLER_FAINTINGCRY] = LinkOpponentHandleFaintingCry, + [CONTROLLER_INTROSLIDE] = LinkOpponentHandleIntroSlide, + [CONTROLLER_INTROTRAINERBALLTHROW] = LinkOpponentHandleIntroTrainerBallThrow, + [CONTROLLER_DRAWPARTYSTATUSSUMMARY] = LinkOpponentHandleDrawPartyStatusSummary, + [CONTROLLER_HIDEPARTYSTATUSSUMMARY] = LinkOpponentHandleHidePartyStatusSummary, + [CONTROLLER_ENDBOUNCE] = LinkOpponentHandleEndBounceEffect, + [CONTROLLER_SPRITEINVISIBILITY] = LinkOpponentHandleSpriteInvisibility, + [CONTROLLER_BATTLEANIMATION] = LinkOpponentHandleBattleAnimation, + [CONTROLLER_LINKSTANDBYMSG] = LinkOpponentHandleLinkStandbyMsg, + [CONTROLLER_RESETACTIONMOVESELECTION] = LinkOpponentHandleResetActionMoveSelection, + [CONTROLLER_ENDLINKBATTLE] = LinkOpponentHandleEndLinkBattle, + [CONTROLLER_TERMINATOR_NOP] = LinkOpponentCmdEnd }; - static void LinkOpponentDummy(void) { } @@ -161,7 +160,7 @@ static void LinkOpponentBufferRunCommand(void) { if (gBattleControllerExecFlags & gBitTable[gActiveBattler]) { - if (gBattleBufferA[gActiveBattler][0] < NELEMS(sLinkOpponentBufferCommands)) + if (gBattleBufferA[gActiveBattler][0] < ARRAY_COUNT(sLinkOpponentBufferCommands)) sLinkOpponentBufferCommands[gBattleBufferA[gActiveBattler][0]](); else LinkOpponentBufferExecCompleted(); @@ -188,7 +187,7 @@ static void FreeTrainerSpriteAfterSlide(void) static void Intro_DelayAndEnd(void) { - if (--gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay == 0xFF) + if (--gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay == (u8)-1) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay = 0; LinkOpponentBufferExecCompleted(); @@ -197,31 +196,34 @@ static void Intro_DelayAndEnd(void) static void Intro_WaitForShinyAnimAndHealthbox(void) { - bool8 var = FALSE; + bool32 healthboxAnimDone = FALSE; - if (!IsDoubleBattle() || ((IsDoubleBattle() && (gBattleTypeFlags & BATTLE_TYPE_MULTI)))) + if (!IsDoubleBattle() || (IsDoubleBattle() && (gBattleTypeFlags & BATTLE_TYPE_MULTI))) { if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) - var = TRUE; + healthboxAnimDone = TRUE; } else if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy && gSprites[gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]].callback == gSprites[gHealthboxSpriteIds[gActiveBattler]].callback) { - var = TRUE; + healthboxAnimDone = TRUE; } + if (IsCryPlayingOrClearCrySongs()) - var = FALSE; - if (var) + healthboxAnimDone = FALSE; + + if (healthboxAnimDone) { if (GetBattlerPosition(gActiveBattler) == B_POSITION_OPPONENT_LEFT) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim - || !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim) + || !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim) return; - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].triedShinyMonAnim = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim = 0; + + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = FALSE; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = FALSE; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].triedShinyMonAnim = FALSE; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim = FALSE; FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS); FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS); } @@ -287,8 +289,8 @@ static void TryShinyAnimAfterMonAnim(void) } else if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = FALSE; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = FALSE; FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS); FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS); LinkOpponentBufferExecCompleted(); @@ -301,6 +303,7 @@ static void CompleteOnHealthbarDone(void) s16 hpValue = MoveBattleBar(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], HEALTH_BAR, 0); SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); + if (hpValue != -1) UpdateHpTextInHealthbox(gHealthboxSpriteIds[gActiveBattler], hpValue, HP_CURRENT); else @@ -330,7 +333,7 @@ static void FreeMonSpriteAfterSwitchOutAnim(void) static void CompleteOnInactiveTextPrinter(void) { - if (!IsTextPrinterActive(0)) + if (!IsTextPrinterActive(B_WIN_MSG)) LinkOpponentBufferExecCompleted(); } @@ -347,9 +350,9 @@ static void DoHitAnimBlinkSpriteEffect(void) } else { - if (!(gSprites[spriteId].data[1] % 4)) + if ((gSprites[spriteId].data[1] % 4) == 0) gSprites[spriteId].invisible ^= 1; - ++gSprites[spriteId].data[1]; + gSprites[spriteId].data[1]++; } } @@ -359,6 +362,7 @@ static void SwitchIn_ShowSubstitute(void) { if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute) InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE); + gBattlerControllerFuncs[gActiveBattler] = SwitchIn_HandleSoundAndEnd; } } @@ -376,11 +380,14 @@ static void SwitchIn_ShowHealthbox(void) { if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = FALSE; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = FALSE; + FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS); FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS); + StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 0); + UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_ALL); StartHealthboxSlideIn(gActiveBattler); SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); @@ -392,11 +399,13 @@ static void SwitchIn_ShowHealthbox(void) static void SwitchIn_TryShinyAnim(void) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim) + && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim) + { TryShinyAnimation(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]); + } if (gSprites[gBattleControllerData[gActiveBattler]].callback == SpriteCallbackDummy - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive) + && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive) { DestroySprite(&gSprites[gBattleControllerData[gActiveBattler]]); SetBattlerShadowSpriteCallback(gActiveBattler, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES)); @@ -439,21 +448,21 @@ static void LinkOpponentHandleGetMonData(void) u8 monToCheck; s32 i; - if (!gBattleBufferA[gActiveBattler][2]) + if (gBattleBufferA[gActiveBattler][2] == 0) { size += CopyLinkOpponentMonData(gBattlerPartyIndexes[gActiveBattler], monData); } else { monToCheck = gBattleBufferA[gActiveBattler][2]; - for (i = 0; i < PARTY_SIZE; ++i) + for (i = 0; i < PARTY_SIZE; i++) { if (monToCheck & 1) size += CopyLinkOpponentMonData(i, monData + size); monToCheck >>= 1; } } - BtlController_EmitDataTransfer(1, size, monData); + BtlController_EmitDataTransfer(BUFFER_B, size, monData); LinkOpponentBufferExecCompleted(); } @@ -472,7 +481,7 @@ static u32 CopyLinkOpponentMonData(u8 monId, u8 *dst) case REQUEST_ALL_BATTLE: battleMon.species = GetMonData(&gEnemyParty[monId], MON_DATA_SPECIES); battleMon.item = GetMonData(&gEnemyParty[monId], MON_DATA_HELD_ITEM); - for (size = 0; size < MAX_MON_MOVES; ++size) + for (size = 0; size < MAX_MON_MOVES; size++) { battleMon.moves[size] = GetMonData(&gEnemyParty[monId], MON_DATA_MOVE1 + size); battleMon.pp[size] = GetMonData(&gEnemyParty[monId], MON_DATA_PP1 + size); @@ -503,7 +512,7 @@ static u32 CopyLinkOpponentMonData(u8 monId, u8 *dst) StringCopy_Nickname(battleMon.nickname, nickname); GetMonData(&gEnemyParty[monId], MON_DATA_OT_NAME, battleMon.otName); src = (u8 *)&battleMon; - for (size = 0; size < sizeof(battleMon); ++size) + for (size = 0; size < sizeof(battleMon); size++) dst[size] = src[size]; break; case REQUEST_SPECIES_BATTLE: @@ -519,14 +528,14 @@ static u32 CopyLinkOpponentMonData(u8 monId, u8 *dst) size = 2; break; case REQUEST_MOVES_PP_BATTLE: - for (size = 0; size < MAX_MON_MOVES; ++size) + for (size = 0; size < MAX_MON_MOVES; size++) { moveData.moves[size] = GetMonData(&gEnemyParty[monId], MON_DATA_MOVE1 + size); moveData.pp[size] = GetMonData(&gEnemyParty[monId], MON_DATA_PP1 + size); } moveData.ppBonuses = GetMonData(&gEnemyParty[monId], MON_DATA_PP_BONUSES); src = (u8 *)(&moveData); - for (size = 0; size < sizeof(moveData); ++size) + for (size = 0; size < sizeof(moveData); size++) dst[size] = src[size]; break; case REQUEST_MOVE1_BATTLE: @@ -539,10 +548,10 @@ static u32 CopyLinkOpponentMonData(u8 monId, u8 *dst) size = 2; break; case REQUEST_PP_DATA_BATTLE: - for (size = 0; size < MAX_MON_MOVES; ++size) + for (size = 0; size < MAX_MON_MOVES; size++) dst[size] = GetMonData(&gEnemyParty[monId], MON_DATA_PP1 + size); dst[size] = GetMonData(&gEnemyParty[monId], MON_DATA_PP_BONUSES); - ++size; + size++; break; case REQUEST_PPMOVE1_BATTLE: case REQUEST_PPMOVE2_BATTLE: @@ -772,14 +781,14 @@ static void LinkOpponentHandleSetMonData(void) u8 monToCheck; u8 i; - if (!gBattleBufferA[gActiveBattler][2]) + if (gBattleBufferA[gActiveBattler][2] == 0) { SetLinkOpponentMonData(gBattlerPartyIndexes[gActiveBattler]); } else { monToCheck = gBattleBufferA[gActiveBattler][2]; - for (i = 0; i < PARTY_SIZE; ++i) + for (i = 0; i < PARTY_SIZE; i++) { if (monToCheck & 1) SetLinkOpponentMonData(i); @@ -803,7 +812,7 @@ static void SetLinkOpponentMonData(u8 monId) SetMonData(&gEnemyParty[monId], MON_DATA_SPECIES, &battlePokemon->species); SetMonData(&gEnemyParty[monId], MON_DATA_HELD_ITEM, &battlePokemon->item); - for (i = 0; i < MAX_MON_MOVES; ++i) + for (i = 0; i < MAX_MON_MOVES; i++) { SetMonData(&gEnemyParty[monId], MON_DATA_MOVE1 + i, &battlePokemon->moves[i]); SetMonData(&gEnemyParty[monId], MON_DATA_PP1 + i, &battlePokemon->pp[i]); @@ -842,7 +851,7 @@ static void SetLinkOpponentMonData(u8 monId) SetMonData(&gEnemyParty[monId], MON_DATA_HELD_ITEM, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_MOVES_PP_BATTLE: - for (i = 0; i < MAX_MON_MOVES; ++i) + for (i = 0; i < MAX_MON_MOVES; i++) { SetMonData(&gEnemyParty[monId], MON_DATA_MOVE1 + i, &moveData->moves[i]); SetMonData(&gEnemyParty[monId], MON_DATA_PP1 + i, &moveData->pp[i]); @@ -1010,8 +1019,9 @@ static void LinkOpponentHandleSetRawMonData(void) u8 *dst = (u8 *)&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]] + gBattleBufferA[gActiveBattler][1]; u8 i; - for (i = 0; i < gBattleBufferA[gActiveBattler][2]; ++i) + for (i = 0; i < gBattleBufferA[gActiveBattler][2]; i++) dst[i] = gBattleBufferA[gActiveBattler][3 + i]; + LinkOpponentBufferExecCompleted(); } @@ -1021,15 +1031,19 @@ static void LinkOpponentHandleLoadMonSprite(void) BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); SetMultiuseSpriteTemplateToPokemon(species, GetBattlerPosition(gActiveBattler)); + gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, - GetBattlerSpriteCoord(gActiveBattler, 2), + GetBattlerSpriteCoord(gActiveBattler, BATTLER_COORD_X_2), GetBattlerSpriteDefault_Y(gActiveBattler), GetBattlerSpriteSubpriority(gActiveBattler)); - gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = -240; + + gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = -DISPLAY_WIDTH; gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = gActiveBattler; gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], gBattleMonForms[gActiveBattler]); + SetBattlerShadowSpriteCallback(gActiveBattler, GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES)); + gBattlerControllerFuncs[gActiveBattler] = TryShinyAnimAfterMonAnim; } @@ -1051,22 +1065,27 @@ static void StartSendOutAnim(u8 battlerId, bool8 dontClearSubstituteBit) BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlerPartyIndexes[battlerId]], battlerId); SetMultiuseSpriteTemplateToPokemon(species, GetBattlerPosition(battlerId)); gBattlerSpriteIds[battlerId] = CreateSprite(&gMultiuseSpriteTemplate, - GetBattlerSpriteCoord(battlerId, 2), + GetBattlerSpriteCoord(battlerId, BATTLER_COORD_X_2), GetBattlerSpriteDefault_Y(battlerId), GetBattlerSpriteSubpriority(battlerId)); + gSprites[gBattleControllerData[battlerId]].data[1] = gBattlerSpriteIds[battlerId]; + gSprites[gBattlerSpriteIds[battlerId]].data[0] = battlerId; gSprites[gBattlerSpriteIds[battlerId]].data[2] = species; gSprites[gBattlerSpriteIds[battlerId]].oam.paletteNum = battlerId; + StartSpriteAnim(&gSprites[gBattlerSpriteIds[battlerId]], gBattleMonForms[battlerId]); + gSprites[gBattlerSpriteIds[battlerId]].invisible = TRUE; gSprites[gBattlerSpriteIds[battlerId]].callback = SpriteCallbackDummy; + gSprites[gBattleControllerData[battlerId]].data[0] = DoPokeballSendOutAnimation(0, POKEBALL_OPPONENT_SENDOUT); } static void LinkOpponentHandleReturnMonToBall(void) { - if (!gBattleBufferA[gActiveBattler][1]) + if (gBattleBufferA[gActiveBattler][1] == 0) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; gBattlerControllerFuncs[gActiveBattler] = DoSwitchOutAnimation; @@ -1102,6 +1121,8 @@ static void DoSwitchOutAnimation(void) } } +#define sSpeedX data[0] + static void LinkOpponentHandleDrawTrainerPic(void) { s16 xPos; @@ -1109,10 +1130,11 @@ static void LinkOpponentHandleDrawTrainerPic(void) if (gBattleTypeFlags & BATTLE_TYPE_MULTI) { - if (GetBattlerPosition(gActiveBattler) & BIT_FLANK) // second mon + if ((GetBattlerPosition(gActiveBattler) & BIT_FLANK) != 0) // second mon xPos = 152; else // first mon xPos = 200; + if ((gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_RUBY || (gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_SAPPHIRE || (gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_EMERALD) @@ -1134,7 +1156,7 @@ static void LinkOpponentHandleDrawTrainerPic(void) else { xPos = 176; - if (gTrainerBattleOpponent_A == TRAINER_OPPONENT_C00) + if (gTrainerBattleOpponent_A == TRAINER_UNION_ROOM) { trainerPicId = GetUnionRoomTrainerPic(); } @@ -1162,13 +1184,14 @@ static void LinkOpponentHandleDrawTrainerPic(void) xPos, (8 - gTrainerFrontPicCoords[trainerPicId].size) * 4 + 40, GetBattlerSpriteSubpriority(gActiveBattler)); - gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = -240; - gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 2; + gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = -DISPLAY_WIDTH; + gSprites[gBattlerSpriteIds[gActiveBattler]].sSpeedX = 2; gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag); gSprites[gBattlerSpriteIds[gActiveBattler]].data[5] = gSprites[gBattlerSpriteIds[gActiveBattler]].oam.tileNum; gSprites[gBattlerSpriteIds[gActiveBattler]].oam.tileNum = GetSpriteTileStartByTag(gTrainerFrontPicTable[trainerPicId].tag); gSprites[gBattlerSpriteIds[gActiveBattler]].oam.affineParam = trainerPicId; gSprites[gBattlerSpriteIds[gActiveBattler]].callback = SpriteCB_TrainerSlideIn; + gBattlerControllerFuncs[gActiveBattler] = CompleteOnBattlerSpriteCallbackDummy; } @@ -1177,6 +1200,8 @@ static void LinkOpponentHandleTrainerSlide(void) LinkOpponentBufferExecCompleted(); } +#undef sSpeedX + static void LinkOpponentHandleTrainerSlideBack(void) { SetSpritePrimaryCoordsFromSecondaryCoords(&gSprites[gBattlerSpriteIds[gActiveBattler]]); @@ -1194,7 +1219,7 @@ static void LinkOpponentHandleFaintAnimation(void) { if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute) InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SUBSTITUTE_TO_MON); - ++gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState++; } else { @@ -1262,7 +1287,7 @@ static void LinkOpponentDoMoveAnimation(void) { case 0: if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute - && !gBattleSpritesDataPtr->battlerData[gActiveBattler].flag_x8) + && !gBattleSpritesDataPtr->battlerData[gActiveBattler].flag_x8) { gBattleSpritesDataPtr->battlerData[gActiveBattler].flag_x8 = 1; InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SUBSTITUTE_TO_MON); @@ -1272,7 +1297,7 @@ static void LinkOpponentDoMoveAnimation(void) case 1: if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { - SetBattlerSpriteAffineMode(0); + SetBattlerSpriteAffineMode(ST_OAM_AFFINE_OFF); DoMoveAnim(move); gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 2; } @@ -1281,7 +1306,7 @@ static void LinkOpponentDoMoveAnimation(void) gAnimScriptCallback(); if (!gAnimScriptActive) { - SetBattlerSpriteAffineMode(1); + SetBattlerSpriteAffineMode(ST_OAM_AFFINE_NORMAL); if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute && multihit < 2) { InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE); @@ -1358,6 +1383,7 @@ static void LinkOpponentHandleHealthBarUpdate(void) LoadBattleBarGfx(0); hpVal = gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8); + if (hpVal != INSTANT_HP_BAR_DROP) { u32 maxHP = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MAX_HP); @@ -1371,6 +1397,7 @@ static void LinkOpponentHandleHealthBarUpdate(void) SetBattleBarStruct(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], maxHP, 0, hpVal); } + gBattlerControllerFuncs[gActiveBattler] = CompleteOnHealthbarDone; } @@ -1447,27 +1474,27 @@ static void LinkOpponentHandleOneReturnValue_Duplicate(void) LinkOpponentBufferExecCompleted(); } -static void LinkOpponentHandleCmd37(void) +static void LinkOpponentHandleClearUnkVar(void) { - gUnknown_2022870.field_0 = 0; + gUnusedControllerStruct.unk = 0; LinkOpponentBufferExecCompleted(); } -static void LinkOpponentHandleCmd38(void) +static void LinkOpponentHandleSetUnkVar(void) { - gUnknown_2022870.field_0 = gBattleBufferA[gActiveBattler][1]; + gUnusedControllerStruct.unk = gBattleBufferA[gActiveBattler][1]; LinkOpponentBufferExecCompleted(); } -static void LinkOpponentHandleCmd39(void) +static void LinkOpponentHandleClearUnkFlag(void) { - gUnknown_2022870.flag_x80 = 0; + gUnusedControllerStruct.flag = 0; LinkOpponentBufferExecCompleted(); } -static void LinkOpponentHandleCmd40(void) +static void LinkOpponentHandleToggleUnkFlag(void) { - gUnknown_2022870.flag_x80 ^= 1; + gUnusedControllerStruct.flag ^= 1; LinkOpponentBufferExecCompleted(); } @@ -1486,7 +1513,7 @@ static void LinkOpponentHandleHitAnimation(void) } } -static void LinkOpponentHandleCmd42(void) +static void LinkOpponentHandleCantSwitch(void) { LinkOpponentBufferExecCompleted(); } @@ -1499,6 +1526,7 @@ static void LinkOpponentHandlePlaySE(void) pan = SOUND_PAN_ATTACKER; else pan = SOUND_PAN_TARGET; + PlaySE12WithPanning(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8), pan); LinkOpponentBufferExecCompleted(); } @@ -1526,18 +1554,23 @@ static void LinkOpponentHandleIntroSlide(void) static void LinkOpponentHandleIntroTrainerBallThrow(void) { - u8 paletteNum, taskId; + u8 taskId; SetSpritePrimaryCoordsFromSecondaryCoords(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 35; gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = 280; gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].y; gSprites[gBattlerSpriteIds[gActiveBattler]].callback = StartAnimLinearTranslation; + StoreSpriteCallbackInData6(&gSprites[gBattlerSpriteIds[gActiveBattler]], SpriteCB_FreeOpponentSprite); + taskId = CreateTask(Task_StartSendOutAnim, 5); gTasks[taskId].data[0] = gActiveBattler; + if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusSummaryShown) gTasks[gBattlerStatusSummaryTaskId[gActiveBattler]].func = Task_HidePartyStatusSummary; + gBattleSpritesDataPtr->animationData->introAnimActive = TRUE; gBattlerControllerFuncs[gActiveBattler] = LinkOpponentDummy; } @@ -1576,19 +1609,19 @@ static void SpriteCB_FreeOpponentSprite(struct Sprite *sprite) static void LinkOpponentHandleDrawPartyStatusSummary(void) { - if (gBattleBufferA[gActiveBattler][1] && GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER) + if (gBattleBufferA[gActiveBattler][1] != 0 && GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER) { LinkOpponentBufferExecCompleted(); } else { - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusSummaryShown = 1; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusSummaryShown = TRUE; - if (gBattleBufferA[gActiveBattler][2]) + if (gBattleBufferA[gActiveBattler][2] != 0) { if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].opponentDrawPartyStatusSummaryDelay < 2) { - ++gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].opponentDrawPartyStatusSummaryDelay; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].opponentDrawPartyStatusSummaryDelay++; return; } else @@ -1596,17 +1629,20 @@ static void LinkOpponentHandleDrawPartyStatusSummary(void) gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].opponentDrawPartyStatusSummaryDelay = 0; } } + gBattlerStatusSummaryTaskId[gActiveBattler] = CreatePartyStatusSummarySprites(gActiveBattler, (struct HpAndStatus *)&gBattleBufferA[gActiveBattler][4], gBattleBufferA[gActiveBattler][1], gBattleBufferA[gActiveBattler][2]); gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusDelayTimer = 0; - if (gBattleBufferA[gActiveBattler][2]) - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusDelayTimer = 0x5D; + + if (gBattleBufferA[gActiveBattler][2] != 0) + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusDelayTimer = 93; + gBattlerControllerFuncs[gActiveBattler] = EndDrawPartyStatusSummary; } } static void EndDrawPartyStatusSummary(void) { - if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusDelayTimer++ > 0x5C) + if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusDelayTimer++ > 92) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusDelayTimer = 0; LinkOpponentBufferExecCompleted(); @@ -1659,12 +1695,13 @@ static void LinkOpponentHandleResetActionMoveSelection(void) LinkOpponentBufferExecCompleted(); } -static void LinkOpponentHandleCmd55(void) +static void LinkOpponentHandleEndLinkBattle(void) { if (gBattleBufferA[gActiveBattler][1] == B_OUTCOME_DREW) gBattleOutcome = gBattleBufferA[gActiveBattler][1]; else gBattleOutcome = gBattleBufferA[gActiveBattler][1] ^ B_OUTCOME_DREW; + FadeOutMapMusic(5); BeginFastPaletteFade(3); LinkOpponentBufferExecCompleted(); diff --git a/src/battle_controller_link_partner.c b/src/battle_controller_link_partner.c index 7dbfbde65..de1f98f77 100644 --- a/src/battle_controller_link_partner.c +++ b/src/battle_controller_link_partner.c @@ -51,12 +51,12 @@ static void LinkPartnerHandleTwoReturnValues(void); static void LinkPartnerHandleChosenMonReturnValue(void); static void LinkPartnerHandleOneReturnValue(void); static void LinkPartnerHandleOneReturnValue_Duplicate(void); -static void LinkPartnerHandleCmd37(void); -static void LinkPartnerHandleCmd38(void); -static void LinkPartnerHandleCmd39(void); -static void LinkPartnerHandleCmd40(void); +static void LinkPartnerHandleClearUnkVar(void); +static void LinkPartnerHandleSetUnkVar(void); +static void LinkPartnerHandleClearUnkFlag(void); +static void LinkPartnerHandleToggleUnkFlag(void); static void LinkPartnerHandleHitAnimation(void); -static void LinkPartnerHandleCmd42(void); +static void LinkPartnerHandleCantSwitch(void); static void LinkPartnerHandlePlaySE(void); static void LinkPartnerHandlePlayFanfare(void); static void LinkPartnerHandleFaintingCry(void); @@ -69,7 +69,7 @@ static void LinkPartnerHandleSpriteInvisibility(void); static void LinkPartnerHandleBattleAnimation(void); static void LinkPartnerHandleLinkStandbyMsg(void); static void LinkPartnerHandleResetActionMoveSelection(void); -static void LinkPartnerHandleCmd55(void); +static void LinkPartnerHandleEndLinkBattle(void); static void LinkPartnerCmdEnd(void); static void LinkPartnerBufferRunCommand(void); @@ -85,63 +85,63 @@ static void EndDrawPartyStatusSummary(void); static void (*const sLinkPartnerBufferCommands[CONTROLLER_CMDS_COUNT])(void) = { - LinkPartnerHandleGetMonData, - LinkPartnerHandleGetRawMonData, - LinkPartnerHandleSetMonData, - LinkPartnerHandleSetRawMonData, - LinkPartnerHandleLoadMonSprite, - LinkPartnerHandleSwitchInAnim, - LinkPartnerHandleReturnMonToBall, - LinkPartnerHandleDrawTrainerPic, - LinkPartnerHandleTrainerSlide, - LinkPartnerHandleTrainerSlideBack, - LinkPartnerHandleFaintAnimation, - LinkPartnerHandlePaletteFade, - LinkPartnerHandleSuccessBallThrowAnim, - LinkPartnerHandleBallThrowAnim, - LinkPartnerHandlePause, - LinkPartnerHandleMoveAnimation, - LinkPartnerHandlePrintString, - LinkPartnerHandlePrintSelectionString, - LinkPartnerHandleChooseAction, - LinkPartnerHandleUnknownYesNoBox, - LinkPartnerHandleChooseMove, - LinkPartnerHandleChooseItem, - LinkPartnerHandleChoosePokemon, - LinkPartnerHandleCmd23, - LinkPartnerHandleHealthBarUpdate, - LinkPartnerHandleExpUpdate, - LinkPartnerHandleStatusIconUpdate, - LinkPartnerHandleStatusAnimation, - LinkPartnerHandleStatusXor, - LinkPartnerHandleDataTransfer, - LinkPartnerHandleDMA3Transfer, - LinkPartnerHandlePlayBGM, - LinkPartnerHandleCmd32, - LinkPartnerHandleTwoReturnValues, - LinkPartnerHandleChosenMonReturnValue, - LinkPartnerHandleOneReturnValue, - LinkPartnerHandleOneReturnValue_Duplicate, - LinkPartnerHandleCmd37, - LinkPartnerHandleCmd38, - LinkPartnerHandleCmd39, - LinkPartnerHandleCmd40, - LinkPartnerHandleHitAnimation, - LinkPartnerHandleCmd42, - LinkPartnerHandlePlaySE, - LinkPartnerHandlePlayFanfare, - LinkPartnerHandleFaintingCry, - LinkPartnerHandleIntroSlide, - LinkPartnerHandleIntroTrainerBallThrow, - LinkPartnerHandleDrawPartyStatusSummary, - LinkPartnerHandleHidePartyStatusSummary, - LinkPartnerHandleEndBounceEffect, - LinkPartnerHandleSpriteInvisibility, - LinkPartnerHandleBattleAnimation, - LinkPartnerHandleLinkStandbyMsg, - LinkPartnerHandleResetActionMoveSelection, - LinkPartnerHandleCmd55, - LinkPartnerCmdEnd + [CONTROLLER_GETMONDATA] = LinkPartnerHandleGetMonData, + [CONTROLLER_GETRAWMONDATA] = LinkPartnerHandleGetRawMonData, + [CONTROLLER_SETMONDATA] = LinkPartnerHandleSetMonData, + [CONTROLLER_SETRAWMONDATA] = LinkPartnerHandleSetRawMonData, + [CONTROLLER_LOADMONSPRITE] = LinkPartnerHandleLoadMonSprite, + [CONTROLLER_SWITCHINANIM] = LinkPartnerHandleSwitchInAnim, + [CONTROLLER_RETURNMONTOBALL] = LinkPartnerHandleReturnMonToBall, + [CONTROLLER_DRAWTRAINERPIC] = LinkPartnerHandleDrawTrainerPic, + [CONTROLLER_TRAINERSLIDE] = LinkPartnerHandleTrainerSlide, + [CONTROLLER_TRAINERSLIDEBACK] = LinkPartnerHandleTrainerSlideBack, + [CONTROLLER_FAINTANIMATION] = LinkPartnerHandleFaintAnimation, + [CONTROLLER_PALETTEFADE] = LinkPartnerHandlePaletteFade, + [CONTROLLER_SUCCESSBALLTHROWANIM] = LinkPartnerHandleSuccessBallThrowAnim, + [CONTROLLER_BALLTHROWANIM] = LinkPartnerHandleBallThrowAnim, + [CONTROLLER_PAUSE] = LinkPartnerHandlePause, + [CONTROLLER_MOVEANIMATION] = LinkPartnerHandleMoveAnimation, + [CONTROLLER_PRINTSTRING] = LinkPartnerHandlePrintString, + [CONTROLLER_PRINTSTRINGPLAYERONLY] = LinkPartnerHandlePrintSelectionString, + [CONTROLLER_CHOOSEACTION] = LinkPartnerHandleChooseAction, + [CONTROLLER_UNKNOWNYESNOBOX] = LinkPartnerHandleUnknownYesNoBox, + [CONTROLLER_CHOOSEMOVE] = LinkPartnerHandleChooseMove, + [CONTROLLER_OPENBAG] = LinkPartnerHandleChooseItem, + [CONTROLLER_CHOOSEPOKEMON] = LinkPartnerHandleChoosePokemon, + [CONTROLLER_23] = LinkPartnerHandleCmd23, + [CONTROLLER_HEALTHBARUPDATE] = LinkPartnerHandleHealthBarUpdate, + [CONTROLLER_EXPUPDATE] = LinkPartnerHandleExpUpdate, + [CONTROLLER_STATUSICONUPDATE] = LinkPartnerHandleStatusIconUpdate, + [CONTROLLER_STATUSANIMATION] = LinkPartnerHandleStatusAnimation, + [CONTROLLER_STATUSXOR] = LinkPartnerHandleStatusXor, + [CONTROLLER_DATATRANSFER] = LinkPartnerHandleDataTransfer, + [CONTROLLER_DMA3TRANSFER] = LinkPartnerHandleDMA3Transfer, + [CONTROLLER_PLAYBGM] = LinkPartnerHandlePlayBGM, + [CONTROLLER_32] = LinkPartnerHandleCmd32, + [CONTROLLER_TWORETURNVALUES] = LinkPartnerHandleTwoReturnValues, + [CONTROLLER_CHOSENMONRETURNVALUE] = LinkPartnerHandleChosenMonReturnValue, + [CONTROLLER_ONERETURNVALUE] = LinkPartnerHandleOneReturnValue, + [CONTROLLER_ONERETURNVALUE_DUPLICATE] = LinkPartnerHandleOneReturnValue_Duplicate, + [CONTROLLER_CLEARUNKVAR] = LinkPartnerHandleClearUnkVar, + [CONTROLLER_SETUNKVAR] = LinkPartnerHandleSetUnkVar, + [CONTROLLER_CLEARUNKFLAG] = LinkPartnerHandleClearUnkFlag, + [CONTROLLER_TOGGLEUNKFLAG] = LinkPartnerHandleToggleUnkFlag, + [CONTROLLER_HITANIMATION] = LinkPartnerHandleHitAnimation, + [CONTROLLER_CANTSWITCH] = LinkPartnerHandleCantSwitch, + [CONTROLLER_PLAYSE] = LinkPartnerHandlePlaySE, + [CONTROLLER_PLAYFANFARE] = LinkPartnerHandlePlayFanfare, + [CONTROLLER_FAINTINGCRY] = LinkPartnerHandleFaintingCry, + [CONTROLLER_INTROSLIDE] = LinkPartnerHandleIntroSlide, + [CONTROLLER_INTROTRAINERBALLTHROW] = LinkPartnerHandleIntroTrainerBallThrow, + [CONTROLLER_DRAWPARTYSTATUSSUMMARY] = LinkPartnerHandleDrawPartyStatusSummary, + [CONTROLLER_HIDEPARTYSTATUSSUMMARY] = LinkPartnerHandleHidePartyStatusSummary, + [CONTROLLER_ENDBOUNCE] = LinkPartnerHandleEndBounceEffect, + [CONTROLLER_SPRITEINVISIBILITY] = LinkPartnerHandleSpriteInvisibility, + [CONTROLLER_BATTLEANIMATION] = LinkPartnerHandleBattleAnimation, + [CONTROLLER_LINKSTANDBYMSG] = LinkPartnerHandleLinkStandbyMsg, + [CONTROLLER_RESETACTIONMOVESELECTION] = LinkPartnerHandleResetActionMoveSelection, + [CONTROLLER_ENDLINKBATTLE] = LinkPartnerHandleEndLinkBattle, + [CONTROLLER_TERMINATOR_NOP] = LinkPartnerCmdEnd }; static void LinkPartnerDummy(void) @@ -157,7 +157,7 @@ static void LinkPartnerBufferRunCommand(void) { if (gBattleControllerExecFlags & gBitTable[gActiveBattler]) { - if (gBattleBufferA[gActiveBattler][0] < NELEMS(sLinkPartnerBufferCommands)) + if (gBattleBufferA[gActiveBattler][0] < ARRAY_COUNT(sLinkPartnerBufferCommands)) sLinkPartnerBufferCommands[gBattleBufferA[gActiveBattler][0]](); else LinkPartnerBufferExecCompleted(); @@ -174,7 +174,7 @@ static void FreeTrainerSpriteAfterSlide(void) { if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { - BattleGfxSfxDummy3(0); + BattleGfxSfxDummy3(MALE); FreeSpriteOamMatrix(&gSprites[gBattlerSpriteIds[gActiveBattler]]); DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]); LinkPartnerBufferExecCompleted(); @@ -183,7 +183,7 @@ static void FreeTrainerSpriteAfterSlide(void) static void Intro_DelayAndEnd(void) { - if (--gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay == 0xFF) + if (--gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay == (u8)-1) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay = 0; LinkPartnerBufferExecCompleted(); @@ -192,21 +192,23 @@ static void Intro_DelayAndEnd(void) static void Intro_WaitForHealthbox(void) { - bool32 var = FALSE; + bool32 finished = FALSE; if (!IsDoubleBattle() || (IsDoubleBattle() && (gBattleTypeFlags & BATTLE_TYPE_MULTI))) { if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) - var = TRUE; + finished = TRUE; } else if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy && gSprites[gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]].callback == SpriteCallbackDummy) { - var = TRUE; + finished = TRUE; } + if (IsCryPlayingOrClearCrySongs()) - var = FALSE; - if (var) + finished = FALSE; + + if (finished) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay = 3; gBattlerControllerFuncs[gActiveBattler] = Intro_DelayAndEnd; @@ -216,29 +218,33 @@ static void Intro_WaitForHealthbox(void) static void Intro_ShowHealthbox(void) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive) + && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive + && ++gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay != 1) { - if (++gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay != 1) + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay = 0; + + if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI)) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay = 0; - if (IsDoubleBattle() && !(gBattleTypeFlags & BATTLE_TYPE_MULTI)) - { - DestroySprite(&gSprites[gBattleControllerData[gActiveBattler ^ BIT_FLANK]]); - UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK], - &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], - HEALTHBOX_ALL); - StartHealthboxSlideIn(gActiveBattler ^ BIT_FLANK); - SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]); - } - DestroySprite(&gSprites[gBattleControllerData[gActiveBattler]]); - UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], - &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], + DestroySprite(&gSprites[gBattleControllerData[gActiveBattler ^ BIT_FLANK]]); + UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK], + &gPlayerParty[gBattlerPartyIndexes[gActiveBattler ^ BIT_FLANK]], HEALTHBOX_ALL); - StartHealthboxSlideIn(gActiveBattler); - SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); - gBattleSpritesDataPtr->animationData->introAnimActive = FALSE; - gBattlerControllerFuncs[gActiveBattler] = Intro_WaitForHealthbox; + + StartHealthboxSlideIn(gActiveBattler ^ BIT_FLANK); + + SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler ^ BIT_FLANK]); } + + DestroySprite(&gSprites[gBattleControllerData[gActiveBattler]]); + UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], + &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], + HEALTHBOX_ALL); + StartHealthboxSlideIn(gActiveBattler); + SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); + + gBattleSpritesDataPtr->animationData->introAnimActive = FALSE; + + gBattlerControllerFuncs[gActiveBattler] = Intro_WaitForHealthbox; } } @@ -253,6 +259,7 @@ static void CompleteOnHealthbarDone(void) s16 hpValue = MoveBattleBar(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], HEALTH_BAR, 0); SetHealthboxSpriteVisible(gHealthboxSpriteIds[gActiveBattler]); + if (hpValue != -1) { UpdateHpTextInHealthbox(gHealthboxSpriteIds[gActiveBattler], hpValue, HP_CURRENT); @@ -288,7 +295,7 @@ static void FreeMonSpriteAfterSwitchOutAnim(void) static void CompleteOnInactiveTextPrinter(void) { - if (!IsTextPrinterActive(0)) + if (!IsTextPrinterActive(B_WIN_MSG)) LinkPartnerBufferExecCompleted(); } @@ -305,9 +312,9 @@ static void DoHitAnimBlinkSpriteEffect(void) } else { - if (!(gSprites[spriteId].data[1] % 4)) + if ((gSprites[spriteId].data[1] % 4) == 0) gSprites[spriteId].invisible ^= 1; - ++gSprites[spriteId].data[1]; + gSprites[spriteId].data[1]++; } } @@ -317,6 +324,7 @@ static void SwitchIn_ShowSubstitute(void) { if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute) InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE); + gBattlerControllerFuncs[gActiveBattler] = SwitchIn_WaitAndEnd; } } @@ -324,17 +332,21 @@ static void SwitchIn_ShowSubstitute(void) static void SwitchIn_WaitAndEnd(void) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) + { LinkPartnerBufferExecCompleted(); + } } static void SwitchIn_ShowHealthbox(void) { if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = FALSE; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = FALSE; + FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS); FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS); + CreateTask(Task_PlayerController_RestoreBgmAfterCry, 10); HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 0); @@ -349,8 +361,11 @@ static void SwitchIn_ShowHealthbox(void) static void SwitchIn_TryShinyAnim(void) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive) + && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive) + { TryShinyAnimation(gActiveBattler, &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]]); + } + if (gSprites[gBattleControllerData[gActiveBattler]].callback == SpriteCallbackDummy && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive) { @@ -394,21 +409,21 @@ static void LinkPartnerHandleGetMonData(void) u8 monToCheck; s32 i; - if (!gBattleBufferA[gActiveBattler][2]) + if (gBattleBufferA[gActiveBattler][2] == 0) { size += CopyLinkPartnerMonData(gBattlerPartyIndexes[gActiveBattler], monData); } else { monToCheck = gBattleBufferA[gActiveBattler][2]; - for (i = 0; i < PARTY_SIZE; ++i) + for (i = 0; i < PARTY_SIZE; i++) { if (monToCheck & 1) size += CopyLinkPartnerMonData(i, monData + size); monToCheck >>= 1; } } - BtlController_EmitDataTransfer(1, size, monData); + BtlController_EmitDataTransfer(BUFFER_B, size, monData); LinkPartnerBufferExecCompleted(); } @@ -427,7 +442,7 @@ static u32 CopyLinkPartnerMonData(u8 monId, u8 *dst) case REQUEST_ALL_BATTLE: battleMon.species = GetMonData(&gPlayerParty[monId], MON_DATA_SPECIES); battleMon.item = GetMonData(&gPlayerParty[monId], MON_DATA_HELD_ITEM); - for (size = 0; size < MAX_MON_MOVES; ++size) + for (size = 0; size < MAX_MON_MOVES; size++) { battleMon.moves[size] = GetMonData(&gPlayerParty[monId], MON_DATA_MOVE1 + size); battleMon.pp[size] = GetMonData(&gPlayerParty[monId], MON_DATA_PP1 + size); @@ -458,7 +473,7 @@ static u32 CopyLinkPartnerMonData(u8 monId, u8 *dst) StringCopy_Nickname(battleMon.nickname, nickname); GetMonData(&gPlayerParty[monId], MON_DATA_OT_NAME, battleMon.otName); src = (u8 *)&battleMon; - for (size = 0; size < sizeof(battleMon); ++size) + for (size = 0; size < sizeof(battleMon); size++) dst[size] = src[size]; break; case REQUEST_SPECIES_BATTLE: @@ -474,14 +489,14 @@ static u32 CopyLinkPartnerMonData(u8 monId, u8 *dst) size = 2; break; case REQUEST_MOVES_PP_BATTLE: - for (size = 0; size < MAX_MON_MOVES; ++size) + for (size = 0; size < MAX_MON_MOVES; size++) { moveData.moves[size] = GetMonData(&gPlayerParty[monId], MON_DATA_MOVE1 + size); moveData.pp[size] = GetMonData(&gPlayerParty[monId], MON_DATA_PP1 + size); } moveData.ppBonuses = GetMonData(&gPlayerParty[monId], MON_DATA_PP_BONUSES); src = (u8 *)(&moveData); - for (size = 0; size < sizeof(moveData); ++size) + for (size = 0; size < sizeof(moveData); size++) dst[size] = src[size]; break; case REQUEST_MOVE1_BATTLE: @@ -494,10 +509,10 @@ static u32 CopyLinkPartnerMonData(u8 monId, u8 *dst) size = 2; break; case REQUEST_PP_DATA_BATTLE: - for (size = 0; size < MAX_MON_MOVES; ++size) + for (size = 0; size < MAX_MON_MOVES; size++) dst[size] = GetMonData(&gPlayerParty[monId], MON_DATA_PP1 + size); dst[size] = GetMonData(&gPlayerParty[monId], MON_DATA_PP_BONUSES); - ++size; + size++; break; case REQUEST_PPMOVE1_BATTLE: case REQUEST_PPMOVE2_BATTLE: @@ -714,6 +729,7 @@ static u32 CopyLinkPartnerMonData(u8 monId, u8 *dst) size = 1; break; } + return size; } @@ -727,14 +743,14 @@ static void LinkPartnerHandleSetMonData(void) u8 monToCheck; u8 i; - if (!gBattleBufferA[gActiveBattler][2]) + if (gBattleBufferA[gActiveBattler][2] == 0) { SetLinkPartnerMonData(gBattlerPartyIndexes[gActiveBattler]); } else { monToCheck = gBattleBufferA[gActiveBattler][2]; - for (i = 0; i < PARTY_SIZE; ++i) + for (i = 0; i < PARTY_SIZE; i++) { if (monToCheck & 1) SetLinkPartnerMonData(i); @@ -758,7 +774,7 @@ static void SetLinkPartnerMonData(u8 monId) SetMonData(&gPlayerParty[monId], MON_DATA_SPECIES, &battlePokemon->species); SetMonData(&gPlayerParty[monId], MON_DATA_HELD_ITEM, &battlePokemon->item); - for (i = 0; i < MAX_MON_MOVES; ++i) + for (i = 0; i < MAX_MON_MOVES; i++) { SetMonData(&gPlayerParty[monId], MON_DATA_MOVE1 + i, &battlePokemon->moves[i]); SetMonData(&gPlayerParty[monId], MON_DATA_PP1 + i, &battlePokemon->pp[i]); @@ -797,7 +813,7 @@ static void SetLinkPartnerMonData(u8 monId) SetMonData(&gPlayerParty[monId], MON_DATA_HELD_ITEM, &gBattleBufferA[gActiveBattler][3]); break; case REQUEST_MOVES_PP_BATTLE: - for (i = 0; i < MAX_MON_MOVES; ++i) + for (i = 0; i < MAX_MON_MOVES; i++) { SetMonData(&gPlayerParty[monId], MON_DATA_MOVE1 + i, &moveData->moves[i]); SetMonData(&gPlayerParty[monId], MON_DATA_PP1 + i, &moveData->pp[i]); @@ -958,6 +974,7 @@ static void SetLinkPartnerMonData(u8 monId) SetMonData(&gPlayerParty[monId], MON_DATA_TOUGH_RIBBON, &gBattleBufferA[gActiveBattler][3]); break; } + HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); } @@ -966,8 +983,9 @@ static void LinkPartnerHandleSetRawMonData(void) u8 *dst = (u8 *)&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]] + gBattleBufferA[gActiveBattler][1]; u8 i; - for (i = 0; i < gBattleBufferA[gActiveBattler][2]; ++i) + for (i = 0; i < gBattleBufferA[gActiveBattler][2]; i++) dst[i] = gBattleBufferA[gActiveBattler][3 + i]; + LinkPartnerBufferExecCompleted(); } @@ -978,11 +996,12 @@ static void LinkPartnerHandleLoadMonSprite(void) BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES); SetMultiuseSpriteTemplateToPokemon(species, GetBattlerPosition(gActiveBattler)); + gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, - GetBattlerSpriteCoord(gActiveBattler, 2), + GetBattlerSpriteCoord(gActiveBattler, BATTLER_COORD_X_2), GetBattlerSpriteDefault_Y(gActiveBattler), GetBattlerSpriteSubpriority(gActiveBattler)); - gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = -240; + gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = -DISPLAY_WIDTH; gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = gActiveBattler; gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], gBattleMonForms[gActiveBattler]); @@ -1007,23 +1026,29 @@ static void StartSendOutAnim(u8 battlerId, bool8 dontClearSubstituteBit) species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerId]], MON_DATA_SPECIES); gBattleControllerData[battlerId] = CreateInvisibleSpriteWithCallback(SpriteCB_WaitForBattlerBallReleaseAnim); SetMultiuseSpriteTemplateToPokemon(species, GetBattlerPosition(battlerId)); + gBattlerSpriteIds[battlerId] = CreateSprite(&gMultiuseSpriteTemplate, - GetBattlerSpriteCoord(battlerId, 2), + GetBattlerSpriteCoord(battlerId, BATTLER_COORD_X_2), GetBattlerSpriteDefault_Y(battlerId), GetBattlerSpriteSubpriority(battlerId)); + gSprites[gBattleControllerData[battlerId]].data[1] = gBattlerSpriteIds[battlerId]; + gSprites[gBattlerSpriteIds[battlerId]].data[0] = battlerId; gSprites[gBattlerSpriteIds[battlerId]].data[2] = species; gSprites[gBattlerSpriteIds[battlerId]].oam.paletteNum = battlerId; + StartSpriteAnim(&gSprites[gBattlerSpriteIds[battlerId]], gBattleMonForms[battlerId]); + gSprites[gBattlerSpriteIds[battlerId]].invisible = TRUE; gSprites[gBattlerSpriteIds[battlerId]].callback = SpriteCallbackDummy; + gSprites[gBattleControllerData[battlerId]].data[0] = DoPokeballSendOutAnimation(0, POKEBALL_PLAYER_SENDOUT); } static void LinkPartnerHandleReturnMonToBall(void) { - if (!gBattleBufferA[gActiveBattler][1]) + if (gBattleBufferA[gActiveBattler][1] == 0) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; gBattlerControllerFuncs[gActiveBattler] = DoSwitchOutAnimation; @@ -1044,6 +1069,7 @@ static void DoSwitchOutAnimation(void) case 0: if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute) InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SUBSTITUTE_TO_MON); + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 1; break; case 1: @@ -1057,6 +1083,8 @@ static void DoSwitchOutAnimation(void) } } +#define sSpeedX data[0] + static void LinkPartnerHandleDrawTrainerPic(void) { s16 xPos; @@ -1066,22 +1094,32 @@ static void LinkPartnerHandleDrawTrainerPic(void) xPos = 90; else // First mon, on the left. xPos = 32; + if ((gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_RUBY - || (gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_SAPPHIRE - || (gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_EMERALD) - trainerPicId = gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].gender + 2; + || (gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_SAPPHIRE + || (gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_EMERALD) + { + trainerPicId = gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].gender + TRAINER_BACK_PIC_RUBY_SAPPHIRE_BRENDAN; + } else - trainerPicId = gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].gender + 0; + { + trainerPicId = gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].gender; + } + DecompressTrainerBackPalette(trainerPicId, gActiveBattler); SetMultiuseSpriteTemplateToTrainerBack(trainerPicId, GetBattlerPosition(gActiveBattler)); gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, xPos, (8 - gTrainerBackPicCoords[trainerPicId].size) * 4 + 80, GetBattlerSpriteSubpriority(gActiveBattler)); + gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; - gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = 240; - gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = -2; + gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = DISPLAY_WIDTH; + gSprites[gBattlerSpriteIds[gActiveBattler]].sSpeedX = -2; gSprites[gBattlerSpriteIds[gActiveBattler]].callback = SpriteCB_TrainerSlideIn; + gBattlerControllerFuncs[gActiveBattler] = CompleteOnBattlerSpriteCallbackDummy; } +#undef sSpeedX + static void LinkPartnerHandleTrainerSlide(void) { LinkPartnerBufferExecCompleted(); @@ -1098,13 +1136,16 @@ static void LinkPartnerHandleTrainerSlideBack(void) gBattlerControllerFuncs[gActiveBattler] = FreeTrainerSpriteAfterSlide; } +#define sSpeedX data[1] +#define sSpeedY data[2] + static void LinkPartnerHandleFaintAnimation(void) { if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState == 0) { if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute) InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SUBSTITUTE_TO_MON); - ++gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState++; } else { @@ -1113,14 +1154,17 @@ static void LinkPartnerHandleFaintAnimation(void) gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0; HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); PlaySE12WithPanning(SE_FAINT, SOUND_PAN_ATTACKER); - gSprites[gBattlerSpriteIds[gActiveBattler]].data[1] = 0; - gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = 5; + gSprites[gBattlerSpriteIds[gActiveBattler]].sSpeedX = 0; + gSprites[gBattlerSpriteIds[gActiveBattler]].sSpeedY = 5; gSprites[gBattlerSpriteIds[gActiveBattler]].callback = SpriteCB_FaintSlideAnim; gBattlerControllerFuncs[gActiveBattler] = FreeMonSpriteAfterFaintAnim; } } } +#undef sSpeedX +#undef sSpeedY + static void LinkPartnerHandlePaletteFade(void) { LinkPartnerBufferExecCompleted(); @@ -1175,7 +1219,7 @@ static void LinkPartnerDoMoveAnimation(void) { case 0: if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute - && !gBattleSpritesDataPtr->battlerData[gActiveBattler].flag_x8) + && !gBattleSpritesDataPtr->battlerData[gActiveBattler].flag_x8) { gBattleSpritesDataPtr->battlerData[gActiveBattler].flag_x8 = 1; InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_SUBSTITUTE_TO_MON); @@ -1185,7 +1229,7 @@ static void LinkPartnerDoMoveAnimation(void) case 1: if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { - SetBattlerSpriteAffineMode(0); + SetBattlerSpriteAffineMode(ST_OAM_AFFINE_OFF); DoMoveAnim(move); gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 2; } @@ -1194,7 +1238,7 @@ static void LinkPartnerDoMoveAnimation(void) gAnimScriptCallback(); if (!gAnimScriptActive) { - SetBattlerSpriteAffineMode(1); + SetBattlerSpriteAffineMode(ST_OAM_AFFINE_NORMAL); if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute && multihit < 2) { InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE); @@ -1271,6 +1315,7 @@ static void LinkPartnerHandleHealthBarUpdate(void) LoadBattleBarGfx(0); hpVal = gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8); + if (hpVal != INSTANT_HP_BAR_DROP) { u32 maxHP = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_MAX_HP); @@ -1284,6 +1329,7 @@ static void LinkPartnerHandleHealthBarUpdate(void) SetBattleBarStruct(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], maxHP, 0, hpVal); } + gBattlerControllerFuncs[gActiveBattler] = CompleteOnHealthbarDone; } @@ -1360,27 +1406,27 @@ static void LinkPartnerHandleOneReturnValue_Duplicate(void) LinkPartnerBufferExecCompleted(); } -static void LinkPartnerHandleCmd37(void) +static void LinkPartnerHandleClearUnkVar(void) { - gUnknown_2022870.field_0 = 0; + gUnusedControllerStruct.unk = 0; LinkPartnerBufferExecCompleted(); } -static void LinkPartnerHandleCmd38(void) +static void LinkPartnerHandleSetUnkVar(void) { - gUnknown_2022870.field_0 = gBattleBufferA[gActiveBattler][1]; + gUnusedControllerStruct.unk = gBattleBufferA[gActiveBattler][1]; LinkPartnerBufferExecCompleted(); } -static void LinkPartnerHandleCmd39(void) +static void LinkPartnerHandleClearUnkFlag(void) { - gUnknown_2022870.flag_x80 = 0; + gUnusedControllerStruct.flag = 0; LinkPartnerBufferExecCompleted(); } -static void LinkPartnerHandleCmd40(void) +static void LinkPartnerHandleToggleUnkFlag(void) { - gUnknown_2022870.flag_x80 ^= 1; + gUnusedControllerStruct.flag ^= 1; LinkPartnerBufferExecCompleted(); } @@ -1399,7 +1445,7 @@ static void LinkPartnerHandleHitAnimation(void) } } -static void LinkPartnerHandleCmd42(void) +static void LinkPartnerHandleCantSwitch(void) { LinkPartnerBufferExecCompleted(); } @@ -1412,6 +1458,7 @@ static void LinkPartnerHandlePlaySE(void) pan = SOUND_PAN_ATTACKER; else pan = SOUND_PAN_TARGET; + PlaySE12WithPanning(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8), pan); LinkPartnerBufferExecCompleted(); } @@ -1444,26 +1491,38 @@ static void LinkPartnerHandleIntroTrainerBallThrow(void) u32 trainerPicId; SetSpritePrimaryCoordsFromSecondaryCoords(&gSprites[gBattlerSpriteIds[gActiveBattler]]); + gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 50; gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = -40; gSprites[gBattlerSpriteIds[gActiveBattler]].data[4] = gSprites[gBattlerSpriteIds[gActiveBattler]].y; gSprites[gBattlerSpriteIds[gActiveBattler]].callback = StartAnimLinearTranslation; gSprites[gBattlerSpriteIds[gActiveBattler]].data[5] = gActiveBattler; + StoreSpriteCallbackInData6(&gSprites[gBattlerSpriteIds[gActiveBattler]], SpriteCB_FreePlayerSpriteLoadMonSprite); StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 1); + paletteNum = AllocSpritePalette(0xD6F9); if ((gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_RUBY - || (gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_SAPPHIRE - || (gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_EMERALD) - trainerPicId = gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].gender + 2; + || (gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_SAPPHIRE + || (gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_EMERALD) + { + trainerPicId = gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].gender + TRAINER_BACK_PIC_RUBY_SAPPHIRE_BRENDAN; + } else - trainerPicId = gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].gender + 0; + { + trainerPicId = gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].gender; + } + LoadCompressedPalette(gTrainerBackPicPaletteTable[trainerPicId].data, 0x100 + paletteNum * 16, 32); + gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = paletteNum; + taskId = CreateTask(Task_StartSendOutAnim, 5); gTasks[taskId].data[0] = gActiveBattler; + if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusSummaryShown) gTasks[gBattlerStatusSummaryTaskId[gActiveBattler]].func = Task_HidePartyStatusSummary; + gBattleSpritesDataPtr->animationData->introAnimActive = TRUE; gBattlerControllerFuncs[gActiveBattler] = LinkPartnerDummy; } @@ -1472,7 +1531,7 @@ static void Task_StartSendOutAnim(u8 taskId) { if (gTasks[taskId].data[1] < 24) { - ++gTasks[taskId].data[1]; + gTasks[taskId].data[1]++; } else { @@ -1502,7 +1561,7 @@ static void Task_StartSendOutAnim(u8 taskId) static void LinkPartnerHandleDrawPartyStatusSummary(void) { - if (gBattleBufferA[gActiveBattler][1] && GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER) + if (gBattleBufferA[gActiveBattler][1] != 0 && GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER) { LinkPartnerBufferExecCompleted(); } @@ -1512,7 +1571,7 @@ static void LinkPartnerHandleDrawPartyStatusSummary(void) gBattlerStatusSummaryTaskId[gActiveBattler] = CreatePartyStatusSummarySprites(gActiveBattler, (struct HpAndStatus *)&gBattleBufferA[gActiveBattler][4], gBattleBufferA[gActiveBattler][1], gBattleBufferA[gActiveBattler][2]); gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusDelayTimer = 0; - if (gBattleBufferA[gActiveBattler][2]) // Skip delay on battle start + if (gBattleBufferA[gActiveBattler][2] != 0) // Skip delay on battle start gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusDelayTimer = 93; gBattlerControllerFuncs[gActiveBattler] = EndDrawPartyStatusSummary; @@ -1574,7 +1633,7 @@ static void LinkPartnerHandleResetActionMoveSelection(void) LinkPartnerBufferExecCompleted(); } -static void LinkPartnerHandleCmd55(void) +static void LinkPartnerHandleEndLinkBattle(void) { gBattleOutcome = gBattleBufferA[gActiveBattler][1]; FadeOutMapMusic(5); diff --git a/src/battle_controller_oak_old_man.c b/src/battle_controller_oak_old_man.c index b2c8341ef..a1d06d4d1 100644 --- a/src/battle_controller_oak_old_man.c +++ b/src/battle_controller_oak_old_man.c @@ -15,7 +15,6 @@ #include "battle_interface.h" #include "battle_message.h" #include "reshow_battle_screen.h" -#include "battle_string_ids.h" #include "constants/songs.h" #include "constants/items.h" @@ -442,10 +441,10 @@ static void Intro_WaitForShinyAnimAndHealthbox(void) && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].triedShinyMonAnim = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = FALSE; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = FALSE; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].triedShinyMonAnim = FALSE; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim = FALSE; FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS); FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS); CreateTask(Task_PlayerController_RestoreBgmAfterCry, 10); @@ -987,7 +986,7 @@ static void OakOldManHandleGetMonData(void) monToCheck >>= 1; } } - BtlController_EmitDataTransfer(1, size, monData); + BtlController_EmitDataTransfer(BUFFER_B, size, monData); OakOldManBufferExecCompleted(); } @@ -1575,24 +1574,24 @@ static void OakOldManHandleDrawTrainerPic(void) { if (gBattleTypeFlags & BATTLE_TYPE_FIRST_BATTLE) { - DecompressTrainerBackPalette(BACK_PIC_RED + gSaveBlock2Ptr->playerGender, gActiveBattler); - SetMultiuseSpriteTemplateToTrainerBack(BACK_PIC_RED + gSaveBlock2Ptr->playerGender, GetBattlerPosition(gActiveBattler)); + DecompressTrainerBackPalette(gSaveBlock2Ptr->playerGender, gActiveBattler); + SetMultiuseSpriteTemplateToTrainerBack(gSaveBlock2Ptr->playerGender, GetBattlerPosition(gActiveBattler)); gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, 80, - (8 - gTrainerBackPicCoords[BACK_PIC_RED + gSaveBlock2Ptr->playerGender].size) * 4 + 80, + (8 - gTrainerBackPicCoords[gSaveBlock2Ptr->playerGender].size) * 4 + 80, 30); } else { - DecompressTrainerBackPalette(BACK_PIC_OLDMAN, gActiveBattler); - SetMultiuseSpriteTemplateToTrainerBack(BACK_PIC_OLDMAN, GetBattlerPosition(gActiveBattler)); + DecompressTrainerBackPalette(TRAINER_BACK_PIC_OLD_MAN, gActiveBattler); + SetMultiuseSpriteTemplateToTrainerBack(TRAINER_BACK_PIC_OLD_MAN, GetBattlerPosition(gActiveBattler)); gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, 80, - (8 - gTrainerBackPicCoords[BACK_PIC_OLDMAN].size) * 4 + 80, + (8 - gTrainerBackPicCoords[TRAINER_BACK_PIC_OLD_MAN].size) * 4 + 80, 30); } gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; - gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = 240; + gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = DISPLAY_WIDTH; gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = -2; gSprites[gBattlerSpriteIds[gActiveBattler]].callback = SpriteCB_TrainerSlideIn; gBattlerControllerFuncs[gActiveBattler] = CompleteOnBattlerSpriteCallbackDummy; @@ -1602,20 +1601,20 @@ static void OakOldManHandleTrainerSlide(void) { if (gBattleTypeFlags & BATTLE_TYPE_FIRST_BATTLE) { - DecompressTrainerBackPalette(BACK_PIC_RED + gSaveBlock2Ptr->playerGender, gActiveBattler); - SetMultiuseSpriteTemplateToTrainerBack(BACK_PIC_RED + gSaveBlock2Ptr->playerGender, GetBattlerPosition(gActiveBattler)); + DecompressTrainerBackPalette(gSaveBlock2Ptr->playerGender, gActiveBattler); + SetMultiuseSpriteTemplateToTrainerBack(gSaveBlock2Ptr->playerGender, GetBattlerPosition(gActiveBattler)); gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, 80, - (8 - gTrainerBackPicCoords[BACK_PIC_RED + gSaveBlock2Ptr->playerGender].size) * 4 + 80, + (8 - gTrainerBackPicCoords[gSaveBlock2Ptr->playerGender].size) * 4 + 80, 30); } else { - DecompressTrainerBackPalette(BACK_PIC_OLDMAN, gActiveBattler); - SetMultiuseSpriteTemplateToTrainerBack(BACK_PIC_OLDMAN, GetBattlerPosition(gActiveBattler)); + DecompressTrainerBackPalette(TRAINER_BACK_PIC_OLD_MAN, gActiveBattler); + SetMultiuseSpriteTemplateToTrainerBack(TRAINER_BACK_PIC_OLD_MAN, GetBattlerPosition(gActiveBattler)); gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, 80, - (8 - gTrainerBackPicCoords[BACK_PIC_OLDMAN].size) * 4 + 80, + (8 - gTrainerBackPicCoords[TRAINER_BACK_PIC_OLD_MAN].size) * 4 + 80, 30); } gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; @@ -1662,7 +1661,7 @@ static void OakOldManHandleSuccessBallThrowAnim(void) { gBattleSpritesDataPtr->animationData->ballThrowCaseId = BALL_3_SHAKES_SUCCESS; gDoingBattleAnim = TRUE; - InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT), B_ANIM_SAFARI_BALL_THROW); + InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT), B_ANIM_BALL_THROW_WITH_TRAINER); gBattlerControllerFuncs[gActiveBattler] = CompleteOnSpecialAnimDone; } @@ -1672,7 +1671,7 @@ static void OakOldManHandleBallThrowAnim(void) gBattleSpritesDataPtr->animationData->ballThrowCaseId = ballThrowCaseId; gDoingBattleAnim = TRUE; - InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT), B_ANIM_SAFARI_BALL_THROW); + InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT), B_ANIM_BALL_THROW_WITH_TRAINER); gBattlerControllerFuncs[gActiveBattler] = CompleteOnSpecialAnimDone; } @@ -2087,14 +2086,14 @@ static void OakOldManHandleIntroTrainerBallThrow(void) StoreSpriteCallbackInData6(&gSprites[gBattlerSpriteIds[gActiveBattler]], SpriteCB_FreePlayerSpriteLoadMonSprite); StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 1); paletteNum = AllocSpritePalette(0xD6F8); - LoadCompressedPalette(gTrainerBackPicPaletteTable[BACK_PIC_RED + gSaveBlock2Ptr->playerGender].data, 0x100 + paletteNum * 16, 32); + LoadCompressedPalette(gTrainerBackPicPaletteTable[gSaveBlock2Ptr->playerGender].data, 0x100 + paletteNum * 16, 32); gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = paletteNum; taskId = CreateTask(Task_StartSendOutAnim, 5); gTasks[taskId].data[0] = gActiveBattler; if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusSummaryShown) gTasks[gBattlerStatusSummaryTaskId[gActiveBattler]].func = Task_HidePartyStatusSummary; gBattleSpritesDataPtr->animationData->introAnimActive = TRUE; - gBattlerControllerFuncs[gActiveBattler] = PlayerDummy; + gBattlerControllerFuncs[gActiveBattler] = BattleControllerDummy; } else { @@ -2114,7 +2113,7 @@ static void StartSendOutAnim(u8 battlerId) gBattleControllerData[battlerId] = CreateInvisibleSpriteWithCallback(SpriteCB_WaitForBattlerBallReleaseAnim); SetMultiuseSpriteTemplateToPokemon(species, GetBattlerPosition(battlerId)); gBattlerSpriteIds[battlerId] = CreateSprite(&gMultiuseSpriteTemplate, - GetBattlerSpriteCoord(battlerId, 2), + GetBattlerSpriteCoord(battlerId, BATTLER_COORD_X_2), GetBattlerSpriteDefault_Y(battlerId), GetBattlerSpriteSubpriority(battlerId)); gSprites[gBattleControllerData[battlerId]].data[1] = gBattlerSpriteIds[battlerId]; diff --git a/src/battle_controller_opponent.c b/src/battle_controller_opponent.c index 3aa20e0f3..19ad30441 100644 --- a/src/battle_controller_opponent.c +++ b/src/battle_controller_opponent.c @@ -151,8 +151,8 @@ static void (*const sOpponentBufferCommands[CONTROLLER_CMDS_COUNT])(void) = OpponentCmdEnd }; -// not used -static const u8 gUnknown_8250B18[] = { 0xB0, 0xB0, 0xC8, 0x98, 0x28, 0x28, 0x28, 0x20 }; +// unknown unused data +static const u8 sUnused[] = { 0xB0, 0xB0, 0xC8, 0x98, 0x28, 0x28, 0x28, 0x20 }; static void OpponentDummy(void) { @@ -200,7 +200,7 @@ static void FreeTrainerSpriteAfterSlide(void) static void Intro_DelayAndEnd(void) { - if (--gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay == 0xFF) + if (--gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay == (u8)-1) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay = 0; OpponentBufferExecCompleted(); @@ -225,10 +225,10 @@ static void Intro_WaitForShinyAnimAndHealthbox(void) var = FALSE; if (var && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].triedShinyMonAnim = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = FALSE; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = FALSE; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].triedShinyMonAnim = FALSE; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim = FALSE; FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS); FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS); if (gBattleTypeFlags & BATTLE_TYPE_MULTI) @@ -281,8 +281,8 @@ static void TryShinyAnimAfterMonAnim(void) } else if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = FALSE; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = FALSE; FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS); FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS); OpponentBufferExecCompleted(); @@ -382,8 +382,8 @@ static void SwitchIn_ShowHealthbox(void) { if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = FALSE; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = FALSE; FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS); FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS); StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 0); @@ -447,7 +447,7 @@ static void OpponentHandleGetMonData(void) monToCheck >>= 1; } } - BtlController_EmitDataTransfer(1, size, monData); + BtlController_EmitDataTransfer(BUFFER_B, size, monData); OpponentBufferExecCompleted(); } @@ -765,7 +765,7 @@ static void OpponentHandleGetRawMonData(void) for (i = 0; i < gBattleBufferA[gActiveBattler][2]; ++i) dst[i] = src[i]; - BtlController_EmitDataTransfer(1, gBattleBufferA[gActiveBattler][2], dst); + BtlController_EmitDataTransfer(BUFFER_B, gBattleBufferA[gActiveBattler][2], dst); OpponentBufferExecCompleted(); } @@ -1026,8 +1026,8 @@ static void OpponentHandleLoadMonSprite(void) { DecompressGhostFrontPic(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler); y = GetGhostSpriteDefault_Y(gActiveBattler); - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = 1; - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = 1; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = TRUE; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = TRUE; } else { @@ -1036,10 +1036,10 @@ static void OpponentHandleLoadMonSprite(void) } SetMultiuseSpriteTemplateToPokemon(species, GetBattlerPosition(gActiveBattler)); gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, - GetBattlerSpriteCoord(gActiveBattler, 2), + GetBattlerSpriteCoord(gActiveBattler, BATTLER_COORD_X_2), y, GetBattlerSpriteSubpriority(gActiveBattler)); - gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = -240; + gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = -DISPLAY_WIDTH; gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = gActiveBattler; gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = species; gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; @@ -1068,7 +1068,7 @@ static void StartSendOutAnim(u8 battlerId, bool8 dontClearSubstituteBit) BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlerPartyIndexes[battlerId]], battlerId); SetMultiuseSpriteTemplateToPokemon(species, GetBattlerPosition(battlerId)); gBattlerSpriteIds[battlerId] = CreateSprite(&gMultiuseSpriteTemplate, - GetBattlerSpriteCoord(battlerId, 2), + GetBattlerSpriteCoord(battlerId, BATTLER_COORD_X_2), GetBattlerSpriteDefault_Y(battlerId), GetBattlerSpriteSubpriority(battlerId)); gSprites[gBattlerSpriteIds[battlerId]].data[0] = battlerId; @@ -1122,7 +1122,7 @@ static void OpponentHandleDrawTrainerPic(void) { u32 trainerPicId; - if (gTrainerBattleOpponent_A == 0x400) + if (gTrainerBattleOpponent_A == TRAINER_SECRET_BASE) trainerPicId = GetSecretBaseTrainerPicIndex(); else if (gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER) trainerPicId = GetBattleTowerTrainerFrontSpriteId(); @@ -1138,7 +1138,7 @@ static void OpponentHandleDrawTrainerPic(void) 176, (8 - gTrainerFrontPicCoords[trainerPicId].size) * 4 + 40, GetBattlerSpriteSubpriority(gActiveBattler)); - gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = -240; + gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = -DISPLAY_WIDTH; gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 2; gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag); gSprites[gBattlerSpriteIds[gActiveBattler]].data[5] = gSprites[gBattlerSpriteIds[gActiveBattler]].oam.tileNum; @@ -1152,7 +1152,7 @@ static void OpponentHandleTrainerSlide(void) { u32 trainerPicId; - if (gTrainerBattleOpponent_A == 0x400) + if (gTrainerBattleOpponent_A == TRAINER_SECRET_BASE) trainerPicId = GetSecretBaseTrainerPicIndex(); else if (gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER) trainerPicId = GetBattleTowerTrainerFrontSpriteId(); @@ -1274,7 +1274,7 @@ static void OpponentDoMoveAnimation(void) case 1: if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { - SetBattlerSpriteAffineMode(0); + SetBattlerSpriteAffineMode(ST_OAM_AFFINE_OFF); DoMoveAnim(move); gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 2; } @@ -1283,7 +1283,7 @@ static void OpponentDoMoveAnimation(void) gAnimScriptCallback(); if (!gAnimScriptActive) { - SetBattlerSpriteAffineMode(1); + SetBattlerSpriteAffineMode(ST_OAM_AFFINE_NORMAL); if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute && multihit < 2) { InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE); @@ -1548,25 +1548,25 @@ static void OpponentHandleOneReturnValue_Duplicate(void) static void OpponentHandleCmd37(void) { - gUnknown_2022870.field_0 = 0; + gUnusedControllerStruct.unk = 0; OpponentBufferExecCompleted(); } static void OpponentHandleCmd38(void) { - gUnknown_2022870.field_0 = gBattleBufferA[gActiveBattler][1]; + gUnusedControllerStruct.unk = gBattleBufferA[gActiveBattler][1]; OpponentBufferExecCompleted(); } static void OpponentHandleCmd39(void) { - gUnknown_2022870.flag_x80 = 0; + gUnusedControllerStruct.flag = 0; OpponentBufferExecCompleted(); } static void OpponentHandleCmd40(void) { - gUnknown_2022870.flag_x80 ^= 1; + gUnusedControllerStruct.flag ^= 1; OpponentBufferExecCompleted(); } @@ -1682,7 +1682,7 @@ static void OpponentHandleDrawPartyStatusSummary(void) } else { - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusSummaryShown = 1; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusSummaryShown = TRUE; if (gBattleBufferA[gActiveBattler][2]) { if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].opponentDrawPartyStatusSummaryDelay < 2) diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c index 2ebffdc77..7928a7031 100644 --- a/src/battle_controller_player.c +++ b/src/battle_controller_player.c @@ -170,10 +170,10 @@ static void (*const sPlayerBufferCommands[CONTROLLER_CMDS_COUNT])(void) = static const u8 sTargetIdentities[] = { B_POSITION_PLAYER_LEFT, B_POSITION_PLAYER_RIGHT, B_POSITION_OPPONENT_RIGHT, B_POSITION_OPPONENT_LEFT }; -// not used -static const u8 gUnknown_8250984[] = { 0x48, 0x48, 0x20, 0x5a, 0x50, 0x50, 0x50, 0x58 }; +// unknown unused data +static const u8 sUnused[] = { 0x48, 0x48, 0x20, 0x5a, 0x50, 0x50, 0x50, 0x58 }; -void PlayerDummy(void) +void BattleControllerDummy(void) { } @@ -309,7 +309,8 @@ static void HandleInputChooseAction(void) } } -UNUSED static void UnusedEndBounceEffect(void) +// Unused +static void EndBounceEffect2(void) { EndBounceEffect(gActiveBattler, BOUNCE_HEALTHBOX); EndBounceEffect(gActiveBattler, BOUNCE_MON); @@ -863,7 +864,7 @@ static void FreeTrainerSpriteAfterSlide(void) static void Intro_DelayAndEnd(void) { - if (--gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay == 0xFF) + if (--gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay == (u8)-1) { gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay = 0; PlayerBufferExecCompleted(); @@ -890,10 +891,10 @@ static void Intro_WaitForShinyAnimAndHealthbox(void) if (var && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].triedShinyMonAnim = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = FALSE; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = FALSE; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].triedShinyMonAnim = FALSE; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim = FALSE; FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS); FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS); if (gBattleTypeFlags & BATTLE_TYPE_MULTI) @@ -941,8 +942,8 @@ static void SwitchIn_CleanShinyAnimShowSubstitute(void) if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = FALSE; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = FALSE; FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS); FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS); if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute) @@ -1369,7 +1370,7 @@ static void MoveSelectionDisplayMoveNames(void) for (i = 0; i < MAX_MON_MOVES; ++i) { MoveSelectionDestroyCursorAt(i); - StringCopy(gDisplayedStringBattle, gUnknown_83FE770); + StringCopy(gDisplayedStringBattle, gText_MoveInterfaceDynamicColors); StringAppend(gDisplayedStringBattle, gMoveNames[moveInfo->moves[i]]); BattlePutTextOnWindow(gDisplayedStringBattle, i + 3); if (moveInfo->moves[i] != MOVE_NONE) @@ -1407,7 +1408,7 @@ static void MoveSelectionDisplayMoveType(void) *txtPtr++ = EXT_CTRL_CODE_BEGIN; *txtPtr++ = 6; *txtPtr++ = 1; - txtPtr = StringCopy(txtPtr, gUnknown_83FE770); + txtPtr = StringCopy(txtPtr, gText_MoveInterfaceDynamicColors); StringCopy(txtPtr, gTypeNames[gBattleMoves[moveInfo->moves[gMoveSelectionCursor[gActiveBattler]]].type]); BattlePutTextOnWindow(gDisplayedStringBattle, B_WIN_MOVE_TYPE); } @@ -1505,7 +1506,7 @@ static void PlayerHandleGetMonData(void) monToCheck >>= 1; } } - BtlController_EmitDataTransfer(1, size, monData); + BtlController_EmitDataTransfer(BUFFER_B, size, monData); PlayerBufferExecCompleted(); } @@ -1824,7 +1825,7 @@ void PlayerHandleGetRawMonData(void) for (i = 0; i < gBattleBufferA[gActiveBattler][2]; ++i) dst[i] = src[i]; - BtlController_EmitDataTransfer(1, gBattleBufferA[gActiveBattler][2], dst); + BtlController_EmitDataTransfer(BUFFER_B, gBattleBufferA[gActiveBattler][2], dst); PlayerBufferExecCompleted(); } @@ -2105,7 +2106,7 @@ static void StartSendOutAnim(u8 battlerId, bool8 dontClearSubstituteBit) gBattleControllerData[battlerId] = CreateInvisibleSpriteWithCallback(SpriteCB_WaitForBattlerBallReleaseAnim); SetMultiuseSpriteTemplateToPokemon(species, GetBattlerPosition(battlerId)); gBattlerSpriteIds[battlerId] = CreateSprite(&gMultiuseSpriteTemplate, - GetBattlerSpriteCoord(battlerId, 2), + GetBattlerSpriteCoord(battlerId, BATTLER_COORD_X_2), GetBattlerSpriteDefault_Y(battlerId), GetBattlerSpriteSubpriority(battlerId)); gSprites[gBattleControllerData[battlerId]].data[1] = gBattlerSpriteIds[battlerId]; @@ -2176,13 +2177,13 @@ static void PlayerHandleDrawTrainerPic(void) if ((gLinkPlayers[GetMultiplayerId()].version & 0xFF) == VERSION_RUBY || (gLinkPlayers[GetMultiplayerId()].version & 0xFF) == VERSION_SAPPHIRE || (gLinkPlayers[GetMultiplayerId()].version & 0xFF) == VERSION_EMERALD) - trainerPicId = gLinkPlayers[GetMultiplayerId()].gender + BACK_PIC_RS_BRENDAN; + trainerPicId = gLinkPlayers[GetMultiplayerId()].gender + TRAINER_BACK_PIC_RUBY_SAPPHIRE_BRENDAN; else - trainerPicId = gLinkPlayers[GetMultiplayerId()].gender + BACK_PIC_RED; + trainerPicId = gLinkPlayers[GetMultiplayerId()].gender; } else { - trainerPicId = gSaveBlock2Ptr->playerGender + BACK_PIC_RED; + trainerPicId = gSaveBlock2Ptr->playerGender; } DecompressTrainerBackPalette(trainerPicId, gActiveBattler); SetMultiuseSpriteTemplateToTrainerBack(trainerPicId, GetBattlerPosition(gActiveBattler)); @@ -2191,7 +2192,7 @@ static void PlayerHandleDrawTrainerPic(void) (8 - gTrainerBackPicCoords[trainerPicId].size) * 4 + 80, GetBattlerSpriteSubpriority(gActiveBattler)); gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; - gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = 240; + gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = DISPLAY_WIDTH; gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = -2; gSprites[gBattlerSpriteIds[gActiveBattler]].callback = SpriteCB_TrainerSlideIn; gBattlerControllerFuncs[gActiveBattler] = CompleteOnBattlerSpriteCallbackDummy; @@ -2339,7 +2340,7 @@ static void PlayerDoMoveAnimation(void) case 1: if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { - SetBattlerSpriteAffineMode(0); + SetBattlerSpriteAffineMode(ST_OAM_AFFINE_OFF); DoMoveAnim(move); gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 2; } @@ -2348,7 +2349,7 @@ static void PlayerDoMoveAnimation(void) gAnimScriptCallback(); if (!gAnimScriptActive) { - SetBattlerSpriteAffineMode(1); + SetBattlerSpriteAffineMode(ST_OAM_AFFINE_NORMAL); if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute && multihit < 2) { InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE); @@ -2523,7 +2524,7 @@ static void PlayerHandleExpUpdate(void) gTasks[taskId].tExpTask_monId = monId; gTasks[taskId].tExpTask_gainedExp = expPointsToGive; gTasks[taskId].tExpTask_battler = gActiveBattler; - gBattlerControllerFuncs[gActiveBattler] = PlayerDummy; + gBattlerControllerFuncs[gActiveBattler] = BattleControllerDummy; } } @@ -2626,25 +2627,25 @@ static void PlayerHandleOneReturnValue_Duplicate(void) static void PlayerHandleCmd37(void) { - gUnknown_2022870.field_0 = 0; + gUnusedControllerStruct.unk = 0; PlayerBufferExecCompleted(); } static void PlayerHandleCmd38(void) { - gUnknown_2022870.field_0 = gBattleBufferA[gActiveBattler][1]; + gUnusedControllerStruct.unk = gBattleBufferA[gActiveBattler][1]; PlayerBufferExecCompleted(); } static void PlayerHandleCmd39(void) { - gUnknown_2022870.flag_x80 = 0; + gUnusedControllerStruct.flag = 0; PlayerBufferExecCompleted(); } static void PlayerHandleCmd40(void) { - gUnknown_2022870.flag_x80 ^= 1; + gUnusedControllerStruct.flag ^= 1; PlayerBufferExecCompleted(); } @@ -2720,7 +2721,7 @@ static void PlayerHandleIntroTrainerBallThrow(void) if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusSummaryShown) gTasks[gBattlerStatusSummaryTaskId[gActiveBattler]].func = Task_HidePartyStatusSummary; gBattleSpritesDataPtr->animationData->introAnimActive = TRUE; - gBattlerControllerFuncs[gActiveBattler] = PlayerDummy; + gBattlerControllerFuncs[gActiveBattler] = BattleControllerDummy; } void SpriteCB_FreePlayerSpriteLoadMonSprite(struct Sprite *sprite) @@ -2774,7 +2775,7 @@ static void PlayerHandleDrawPartyStatusSummary(void) } else { - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusSummaryShown = 1; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusSummaryShown = TRUE; gBattlerStatusSummaryTaskId[gActiveBattler] = CreatePartyStatusSummarySprites(gActiveBattler, (struct HpAndStatus *)&gBattleBufferA[gActiveBattler][4], gBattleBufferA[gActiveBattler][1], gBattleBufferA[gActiveBattler][2]); gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusDelayTimer = 0; if (gBattleBufferA[gActiveBattler][2] != 0) diff --git a/src/battle_controller_pokedude.c b/src/battle_controller_pokedude.c index 9f27cd1c3..83c44a19c 100644 --- a/src/battle_controller_pokedude.c +++ b/src/battle_controller_pokedude.c @@ -15,7 +15,6 @@ #include "battle_controllers.h" #include "battle_interface.h" #include "battle_message.h" -#include "battle_string_ids.h" #include "reshow_battle_screen.h" #include "teachy_tv.h" #include "constants/songs.h" @@ -182,8 +181,8 @@ static void (*const sPokedudeBufferCommands[CONTROLLER_CMDS_COUNT])(void) = PokedudeCmdEnd, }; -// not used -static const u8 gUnknown_8479000[] = { 0x48, 0x48, 0x20, 0x5a, 0x50, 0x50, 0x50, 0x58 }; +// unknown unused data +static const u8 sUnused[] = { 0x48, 0x48, 0x20, 0x5a, 0x50, 0x50, 0x50, 0x58 }; #define pdHealthboxPal1 simulatedInputState[0] #define pdHealthboxPal2 simulatedInputState[1] @@ -239,8 +238,8 @@ static void CompleteOnBattlerSpritePosX_0(void) } else if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = FALSE; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = FALSE; FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS); FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS); PokedudeBufferExecCompleted(); @@ -279,8 +278,8 @@ static void SwitchIn_CleanShinyAnimShowSubstitute(void) if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = FALSE; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = FALSE; FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS); FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS); if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute) @@ -423,10 +422,10 @@ static void Intro_WaitForShinyAnimAndHealthbox(void) && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim && gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim) { - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].triedShinyMonAnim = 0; - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim = 0; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = FALSE; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = FALSE; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].triedShinyMonAnim = FALSE; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].finishedShinyMonAnim = FALSE; FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS); FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS); CreateTask(Task_PlayerController_RestoreBgmAfterCry, 10); @@ -730,7 +729,7 @@ static void PokedudeHandleGetMonData(void) monToCheck >>= 1; } } - BtlController_EmitDataTransfer(1, size, monData); + BtlController_EmitDataTransfer(BUFFER_B, size, monData); PokedudeBufferExecCompleted(); } @@ -1307,10 +1306,10 @@ static void PokedudeHandleLoadMonSprite(void) y = GetBattlerSpriteDefault_Y(gActiveBattler); SetMultiuseSpriteTemplateToPokemon(species, GetBattlerPosition(gActiveBattler)); gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, - GetBattlerSpriteCoord(gActiveBattler, 2), + GetBattlerSpriteCoord(gActiveBattler, BATTLER_COORD_X_2), y, GetBattlerSpriteSubpriority(gActiveBattler)); - gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = -240; + gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = -DISPLAY_WIDTH; gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = gActiveBattler; gSprites[gBattlerSpriteIds[gActiveBattler]].data[2] = species; gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; @@ -1351,13 +1350,13 @@ static void PokedudeHandleDrawTrainerPic(void) { if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER) { - DecompressTrainerBackPalette(BACK_PIC_POKEDUDE, gActiveBattler); - SetMultiuseSpriteTemplateToTrainerBack(BACK_PIC_POKEDUDE, GetBattlerPosition(gActiveBattler)); + DecompressTrainerBackPalette(TRAINER_BACK_PIC_POKEDUDE, gActiveBattler); + SetMultiuseSpriteTemplateToTrainerBack(TRAINER_BACK_PIC_POKEDUDE, GetBattlerPosition(gActiveBattler)); gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, 80, - (8 - gTrainerBackPicCoords[BACK_PIC_POKEDUDE].size) * 4 + 80, + (8 - gTrainerBackPicCoords[TRAINER_BACK_PIC_POKEDUDE].size) * 4 + 80, 30); - gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = 240; + gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = DISPLAY_WIDTH; gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = -2; gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; gSprites[gBattlerSpriteIds[gActiveBattler]].callback = SpriteCB_TrainerSlideIn; @@ -1371,7 +1370,7 @@ static void PokedudeHandleDrawTrainerPic(void) 176, (8 - gTrainerFrontPicCoords[tranerPicid].size) * 4 + 40, GetBattlerSpriteSubpriority(gActiveBattler)); - gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = -240; + gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = -DISPLAY_WIDTH; gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 2; gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[tranerPicid].tag); gSprites[gBattlerSpriteIds[gActiveBattler]].data[5] = gSprites[gBattlerSpriteIds[gActiveBattler]].oam.tileNum; @@ -1384,11 +1383,11 @@ static void PokedudeHandleDrawTrainerPic(void) static void PokedudeHandleTrainerSlide(void) { - DecompressTrainerBackPalette(BACK_PIC_POKEDUDE, gActiveBattler); - SetMultiuseSpriteTemplateToTrainerBack(BACK_PIC_POKEDUDE, GetBattlerPosition(gActiveBattler)); + DecompressTrainerBackPalette(TRAINER_BACK_PIC_POKEDUDE, gActiveBattler); + SetMultiuseSpriteTemplateToTrainerBack(TRAINER_BACK_PIC_POKEDUDE, GetBattlerPosition(gActiveBattler)); gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, 80, - (8 - gTrainerBackPicCoords[BACK_PIC_POKEDUDE].size) * 4 + 80, + (8 - gTrainerBackPicCoords[TRAINER_BACK_PIC_POKEDUDE].size) * 4 + 80, 30); gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = -96; @@ -1497,7 +1496,7 @@ static void PokedudeDoMoveAnimation(void) case 1: if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive) { - SetBattlerSpriteAffineMode(0); + SetBattlerSpriteAffineMode(ST_OAM_AFFINE_OFF); DoMoveAnim(move); gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 2; } @@ -1506,7 +1505,7 @@ static void PokedudeDoMoveAnimation(void) gAnimScriptCallback(); if (!gAnimScriptActive) { - SetBattlerSpriteAffineMode(1); + SetBattlerSpriteAffineMode(ST_OAM_AFFINE_NORMAL); if (gBattleSpritesDataPtr->battlerData[gActiveBattler].behindSubstitute) InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, gActiveBattler, B_ANIM_MON_TO_SUBSTITUTE); gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 3; @@ -1859,7 +1858,7 @@ static void PokedudeHandleIntroTrainerBallThrow(void) StoreSpriteCallbackInData6(&gSprites[gBattlerSpriteIds[gActiveBattler]], SpriteCB_FreePlayerSpriteLoadMonSprite); StartSpriteAnim(&gSprites[gBattlerSpriteIds[gActiveBattler]], 1); paletteNum = AllocSpritePalette(0xD6F8); - LoadCompressedPalette(gTrainerBackPicPaletteTable[BACK_PIC_POKEDUDE].data, 0x100 + paletteNum * 16, 32); + LoadCompressedPalette(gTrainerBackPicPaletteTable[TRAINER_BACK_PIC_POKEDUDE].data, 0x100 + paletteNum * 16, 32); gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = paletteNum; taskId = CreateTask(Task_StartSendOutAnim, 5); gTasks[taskId].data[0] = gActiveBattler; @@ -1879,7 +1878,7 @@ static void StartSendOutAnim(u8 battlerId) gBattleControllerData[battlerId] = CreateInvisibleSpriteWithCallback(SpriteCB_WaitForBattlerBallReleaseAnim); SetMultiuseSpriteTemplateToPokemon(species, GetBattlerPosition(battlerId)); gBattlerSpriteIds[battlerId] = CreateSprite(&gMultiuseSpriteTemplate, - GetBattlerSpriteCoord(battlerId, 2), + GetBattlerSpriteCoord(battlerId, BATTLER_COORD_X_2), GetBattlerSpriteDefault_Y(battlerId), GetBattlerSpriteSubpriority(battlerId)); gSprites[gBattleControllerData[battlerId]].data[1] = gBattlerSpriteIds[battlerId]; diff --git a/src/battle_controller_safari.c b/src/battle_controller_safari.c index 6e7b1ee9a..50bfdb205 100644 --- a/src/battle_controller_safari.c +++ b/src/battle_controller_safari.c @@ -346,7 +346,7 @@ static void SafariHandleDrawTrainerPic(void) (8 - gTrainerBackPicCoords[gSaveBlock2Ptr->playerGender].size) * 4 + 80, 30); gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler; - gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = 240; + gSprites[gBattlerSpriteIds[gActiveBattler]].x2 = DISPLAY_WIDTH; gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = -2; gSprites[gBattlerSpriteIds[gActiveBattler]].callback = SpriteCB_TrainerSlideIn; gBattlerControllerFuncs[gActiveBattler] = CompleteOnBattlerSpriteCallbackDummy; @@ -376,7 +376,7 @@ static void SafariHandleSuccessBallThrowAnim(void) { gBattleSpritesDataPtr->animationData->ballThrowCaseId = BALL_3_SHAKES_SUCCESS; gDoingBattleAnim = TRUE; - InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT), B_ANIM_SAFARI_BALL_THROW); + InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT), B_ANIM_BALL_THROW_WITH_TRAINER); gBattlerControllerFuncs[gActiveBattler] = CompleteOnSpecialAnimDone; } @@ -386,7 +386,7 @@ static void SafariHandleBallThrowAnim(void) gBattleSpritesDataPtr->animationData->ballThrowCaseId = ballThrowCaseId; gDoingBattleAnim = TRUE; - InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT), B_ANIM_SAFARI_BALL_THROW); + InitAndLaunchSpecialAnimation(gActiveBattler, gActiveBattler, GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT), B_ANIM_BALL_THROW_WITH_TRAINER); gBattlerControllerFuncs[gActiveBattler] = CompleteOnSpecialAnimDone; } @@ -439,7 +439,7 @@ static void SafariHandleChooseAction(void) gBattlerControllerFuncs[gActiveBattler] = HandleChooseActionAfterDma3; BattlePutTextOnWindow(gText_EmptyString3, B_WIN_MSG); - BattlePutTextOnWindow(gUnknown_83FE747, B_WIN_ACTION_MENU); + BattlePutTextOnWindow(gText_SafariZoneMenu, B_WIN_ACTION_MENU); for (i = 0; i < 4; ++i) ActionSelectionDestroyCursorAt(i); ActionSelectionCreateCursorAt(gActionSelectionCursor[gActiveBattler], 0); diff --git a/src/battle_controllers.c b/src/battle_controllers.c index 205c49362..ba56b0db1 100644 --- a/src/battle_controllers.c +++ b/src/battle_controllers.c @@ -1,25 +1,22 @@ #include "global.h" #include "battle.h" -#include "battle_main.h" #include "battle_ai_script_commands.h" #include "battle_anim.h" -#include "battle_util.h" #include "battle_controllers.h" #include "battle_message.h" +#include "cable_club.h" #include "link.h" #include "link_rfu.h" -#include "cable_club.h" #include "party_menu.h" #include "task.h" #include "util.h" #include "constants/abilities.h" -#include "constants/battle.h" static EWRAM_DATA u8 sLinkSendTaskId = 0; static EWRAM_DATA u8 sLinkReceiveTaskId = 0; -static EWRAM_DATA u8 gUnknown_202286E = 0; -EWRAM_DATA struct UnusedControllerStruct gUnknown_2022870 = {0}; -static EWRAM_DATA u8 sBattleBuffersTransferData[0x100] = {0}; +static EWRAM_DATA u8 sUnused = 0; // Debug? Never read +EWRAM_DATA struct UnusedControllerStruct gUnusedControllerStruct = {}; // Debug? Unused code that writes to it, never read +static EWRAM_DATA u8 sBattleBuffersTransferData[0x100] = {}; static void CreateTasksForSendRecvLinkBuffers(void); static void InitLinkBtlControllers(void); @@ -36,7 +33,7 @@ void HandleLinkBattleSetup(void) SetWirelessCommType1(); if (!gReceivedRemoteLinkPlayers) OpenLink(); - CreateTask(Task_WaitForReceivedRemoteLinkPlayers5SecondTimeout, 0); + CreateTask(Task_WaitForLinkPlayerConnection, 0); CreateTasksForSendRecvLinkBuffers(); } } @@ -45,24 +42,28 @@ void SetUpBattleVars(void) { s32 i; - gBattleMainFunc = BattleDummy; - for (i = 0; i < MAX_BATTLERS_COUNT; ++i) + gBattleMainFunc = BeginBattleIntroDummy; + + for (i = 0; i < MAX_BATTLERS_COUNT; i++) { - gBattlerControllerFuncs[i] = PlayerDummy; + gBattlerControllerFuncs[i] = BattleControllerDummy; gBattlerPositions[i] = 0xFF; gActionSelectionCursor[i] = 0; gMoveSelectionCursor[i] = 0; } + HandleLinkBattleSetup(); gBattleControllerExecFlags = 0; ClearBattleAnimationVars(); ClearBattleMonForms(); BattleAI_HandleItemUseBeforeAISetup(); - gUnknown_2022B54 = 0; - gUnknown_2023DDC = 0; + + // Below are never read + gUnusedFirstBattleVar1 = 0; + gUnusedFirstBattleVar2 = 0; } -void InitBtlControllers(void) +void InitBattleControllers(void) { s32 i; @@ -70,10 +71,14 @@ void InitBtlControllers(void) InitLinkBtlControllers(); else InitSinglePlayerBtlControllers(); + SetBattlePartyIds(); + if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI)) - for (i = 0; i < gBattlersCount; ++i) + { + for (i = 0; i < gBattlersCount; i++) BufferBattlePartyCurrentOrderBySide(i, 0); + } } static void InitSinglePlayerBtlControllers(void) @@ -143,55 +148,71 @@ static void InitLinkBtlControllers(void) if (gBattleTypeFlags & BATTLE_TYPE_IS_MASTER) { gBattleMainFunc = BeginBattleIntro; + gBattlerControllerFuncs[0] = SetControllerToPlayer; gBattlerPositions[0] = B_POSITION_PLAYER_LEFT; + gBattlerControllerFuncs[1] = SetControllerToLinkOpponent; gBattlerPositions[1] = B_POSITION_OPPONENT_LEFT; + gBattlersCount = 2; } else { gBattlerControllerFuncs[1] = SetControllerToPlayer; gBattlerPositions[1] = B_POSITION_PLAYER_LEFT; + gBattlerControllerFuncs[0] = SetControllerToLinkOpponent; gBattlerPositions[0] = B_POSITION_OPPONENT_LEFT; + gBattlersCount = 2; } } - else if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI) && (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) + else if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI) && gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { if (gBattleTypeFlags & BATTLE_TYPE_IS_MASTER) { gBattleMainFunc = BeginBattleIntro; + gBattlerControllerFuncs[0] = SetControllerToPlayer; gBattlerPositions[0] = B_POSITION_PLAYER_LEFT; + gBattlerControllerFuncs[1] = SetControllerToLinkOpponent; gBattlerPositions[1] = B_POSITION_OPPONENT_LEFT; + gBattlerControllerFuncs[2] = SetControllerToPlayer; gBattlerPositions[2] = B_POSITION_PLAYER_RIGHT; + gBattlerControllerFuncs[3] = SetControllerToLinkOpponent; gBattlerPositions[3] = B_POSITION_OPPONENT_RIGHT; + gBattlersCount = MAX_BATTLERS_COUNT; } else { gBattlerControllerFuncs[1] = SetControllerToPlayer; gBattlerPositions[1] = B_POSITION_PLAYER_LEFT; + gBattlerControllerFuncs[0] = SetControllerToLinkOpponent; gBattlerPositions[0] = B_POSITION_OPPONENT_LEFT; + gBattlerControllerFuncs[3] = SetControllerToPlayer; gBattlerPositions[3] = B_POSITION_PLAYER_RIGHT; + gBattlerControllerFuncs[2] = SetControllerToLinkOpponent; gBattlerPositions[2] = B_POSITION_OPPONENT_RIGHT; + gBattlersCount = MAX_BATTLERS_COUNT; } } else { multiplayerId = GetMultiplayerId(); + if (gBattleTypeFlags & BATTLE_TYPE_IS_MASTER) gBattleMainFunc = BeginBattleIntro; - for (i = 0; i < MAX_BATTLERS_COUNT; ++i) + + for (i = 0; i < MAX_BATTLERS_COUNT; i++) { switch (gLinkPlayers[i].id) { @@ -204,6 +225,7 @@ static void InitLinkBtlControllers(void) BufferBattlePartyCurrentOrderBySide(gLinkPlayers[i].id, 1); break; } + if (i == multiplayerId) { gBattlerControllerFuncs[gLinkPlayers[i].id] = SetControllerToPlayer; @@ -223,7 +245,8 @@ static void InitLinkBtlControllers(void) } else { - if ((!(gLinkPlayers[i].id & 1) && !(gLinkPlayers[multiplayerId].id & 1)) || ((gLinkPlayers[i].id & 1) && (gLinkPlayers[multiplayerId].id & 1))) + if ((!(gLinkPlayers[i].id & 1) && !(gLinkPlayers[multiplayerId].id & 1)) + || ((gLinkPlayers[i].id & 1) && (gLinkPlayers[multiplayerId].id & 1))) { gBattlerControllerFuncs[gLinkPlayers[i].id] = SetControllerToLinkPartner; switch (gLinkPlayers[i].id) @@ -259,6 +282,7 @@ static void InitLinkBtlControllers(void) } } } + gBattlersCount = MAX_BATTLERS_COUNT; } } @@ -269,7 +293,7 @@ static void SetBattlePartyIds(void) if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI)) { - for (i = 0; i < gBattlersCount; ++i) + for (i = 0; i < gBattlersCount; i++) { for (j = 0; j < PARTY_SIZE; ++j) { @@ -342,12 +366,12 @@ static void PrepareBufferDataTransfer(u8 bufferId, u8 *data, u16 size) { switch (bufferId) { - case 0: - for (i = 0; i < size; ++data, ++i) + case BUFFER_A: + for (i = 0; i < size; data++, i++) gBattleBufferA[gActiveBattler][i] = *data; break; - case 1: - for (i = 0; i < size; ++data, ++i) + case BUFFER_B: + for (i = 0; i < size; data++, i++) gBattleBufferB[gActiveBattler][i] = *data; break; } @@ -362,12 +386,14 @@ static void CreateTasksForSendRecvLinkBuffers(void) gTasks[sLinkSendTaskId].data[13] = 0; gTasks[sLinkSendTaskId].data[14] = 0; gTasks[sLinkSendTaskId].data[15] = 0; + sLinkReceiveTaskId = CreateTask(Task_HandleCopyReceivedLinkBuffersData, 0); gTasks[sLinkReceiveTaskId].data[12] = 0; gTasks[sLinkReceiveTaskId].data[13] = 0; gTasks[sLinkReceiveTaskId].data[14] = 0; gTasks[sLinkReceiveTaskId].data[15] = 0; - gUnknown_202286E = 0; + + sUnused = 0; } enum @@ -380,12 +406,13 @@ enum LINK_BUFF_SIZE_HI, LINK_BUFF_ABSENT_BATTLER_FLAGS, LINK_BUFF_EFFECT_BATTLER, - LINK_BUFF_DATA + LINK_BUFF_DATA, }; void PrepareBufferDataTransferLink(u8 bufferId, u16 size, u8 *data) { - s32 alignedSize, i; + s32 alignedSize; + s32 i; alignedSize = size - size % 4 + 4; if (gTasks[sLinkSendTaskId].data[14] + alignedSize + LINK_BUFF_DATA + 1 > BATTLE_BUFFER_LINK_SIZE) @@ -401,8 +428,10 @@ void PrepareBufferDataTransferLink(u8 bufferId, u16 size, u8 *data) gLinkBattleSendBuffer[gTasks[sLinkSendTaskId].data[14] + LINK_BUFF_SIZE_HI] = (alignedSize & 0x0000FF00) >> 8; gLinkBattleSendBuffer[gTasks[sLinkSendTaskId].data[14] + LINK_BUFF_ABSENT_BATTLER_FLAGS] = gAbsentBattlerFlags; gLinkBattleSendBuffer[gTasks[sLinkSendTaskId].data[14] + LINK_BUFF_EFFECT_BATTLER] = gEffectBattler; - for (i = 0; i < size; ++i) + + for (i = 0; i < size; i++) gLinkBattleSendBuffer[gTasks[sLinkSendTaskId].data[14] + LINK_BUFF_DATA + i] = data[i]; + gTasks[sLinkSendTaskId].data[14] = gTasks[sLinkSendTaskId].data[14] + alignedSize + LINK_BUFF_DATA; } @@ -415,12 +444,13 @@ static void Task_HandleSendLinkBuffersData(u8 taskId) { case 0: gTasks[taskId].data[10] = 100; - ++gTasks[taskId].data[11]; + gTasks[taskId].data[11]++; break; case 1: - if (!--gTasks[taskId].data[10]) + gTasks[taskId].data[10]--; + if (gTasks[taskId].data[10] == 0) { - ++gTasks[taskId].data[11]; + gTasks[taskId].data[11]++; if (gReceivedRemoteLinkPlayers) gTasks[taskId].data[11] = 3; } @@ -432,18 +462,18 @@ static void Task_HandleSendLinkBuffersData(u8 taskId) if (IsLinkMaster()) { CheckShouldAdvanceLinkState(); - ++gTasks[taskId].data[11]; + gTasks[taskId].data[11]++; } else { - ++gTasks[taskId].data[11]; + gTasks[taskId].data[11]++; } } break; case 3: if (gTasks[taskId].data[15] != gTasks[taskId].data[14]) { - if (!gTasks[taskId].data[13]) + if (gTasks[taskId].data[13] == 0) { if (gTasks[taskId].data[15] > gTasks[taskId].data[14] && gTasks[taskId].data[15] == gTasks[taskId].data[12]) @@ -452,12 +482,12 @@ static void Task_HandleSendLinkBuffersData(u8 taskId) gTasks[taskId].data[15] = 0; } blockSize = (gLinkBattleSendBuffer[gTasks[taskId].data[15] + LINK_BUFF_SIZE_LO] | (gLinkBattleSendBuffer[gTasks[taskId].data[15] + LINK_BUFF_SIZE_HI] << 8)) + LINK_BUFF_DATA; - SendBlock(bitmask_all_link_players_but_self(), &gLinkBattleSendBuffer[gTasks[taskId].data[15]], blockSize); - ++gTasks[taskId].data[11]; + SendBlock(BitmaskAllOtherLinkPlayers(), &gLinkBattleSendBuffer[gTasks[taskId].data[15]], blockSize); + gTasks[taskId].data[11]++; } else { - --gTasks[taskId].data[13]; + gTasks[taskId].data[13]--; break; } } @@ -472,7 +502,7 @@ static void Task_HandleSendLinkBuffersData(u8 taskId) } break; case 5: - if (!--gTasks[taskId].data[13]) + if (--gTasks[taskId].data[13] == 0) { gTasks[taskId].data[13] = 5; gTasks[taskId].data[11] = 3; @@ -487,10 +517,10 @@ void TryReceiveLinkBattleData(void) s32 j; u8 *recvBuffer; - if (gReceivedRemoteLinkPlayers && (gBattleTypeFlags & BATTLE_TYPE_LINK_IN_BATTLE) && (gLinkPlayers[0].linkType == 0x2211)) + if (gReceivedRemoteLinkPlayers != 0 && (gBattleTypeFlags & BATTLE_TYPE_LINK_IN_BATTLE) && (gLinkPlayers[0].linkType == 0x2211)) { LinkRfu_DestroyIdleTask(); - for (i = 0; i < GetLinkPlayerCount(); ++i) + for (i = 0; i < GetLinkPlayerCount(); i++) { if (GetBlockReceivedStatus() & gBitTable[i]) { @@ -498,18 +528,21 @@ void TryReceiveLinkBattleData(void) recvBuffer = (u8 *)gBlockRecvBuffer[i]; { u8 *dest, *src; - u16 r6 = gBlockRecvBuffer[i][2]; + u16 dataSize = gBlockRecvBuffer[i][2]; - if (gTasks[sLinkReceiveTaskId].data[14] + 9 + r6 > 0x1000) + if (gTasks[sLinkReceiveTaskId].data[14] + 9 + dataSize > 0x1000) { gTasks[sLinkReceiveTaskId].data[12] = gTasks[sLinkReceiveTaskId].data[14]; gTasks[sLinkReceiveTaskId].data[14] = 0; } + dest = &gLinkBattleRecvBuffer[gTasks[sLinkReceiveTaskId].data[14]]; src = recvBuffer; - for (j = 0; j < r6 + 8; ++j) + + for (j = 0; j < dataSize + 8; j++) dest[j] = src[j]; - gTasks[sLinkReceiveTaskId].data[14] = gTasks[sLinkReceiveTaskId].data[14] + r6 + 8; + + gTasks[sLinkReceiveTaskId].data[14] = gTasks[sLinkReceiveTaskId].data[14] + dataSize + 8; } } } @@ -532,13 +565,16 @@ static void Task_HandleCopyReceivedLinkBuffersData(u8 taskId) } battlerId = gLinkBattleRecvBuffer[gTasks[taskId].data[15] + LINK_BUFF_ACTIVE_BATTLER]; blockSize = gLinkBattleRecvBuffer[gTasks[taskId].data[15] + LINK_BUFF_SIZE_LO] | (gLinkBattleRecvBuffer[gTasks[taskId].data[15] + LINK_BUFF_SIZE_HI] << 8); + switch (gLinkBattleRecvBuffer[gTasks[taskId].data[15] + 0]) { case 0: if (gBattleControllerExecFlags & gBitTable[battlerId]) return; + memcpy(gBattleBufferA[battlerId], &gLinkBattleRecvBuffer[gTasks[taskId].data[15] + LINK_BUFF_DATA], blockSize); MarkBattlerReceivedLinkData(battlerId); + if (!(gBattleTypeFlags & BATTLE_TYPE_IS_MASTER)) { gBattlerAttacker = gLinkBattleRecvBuffer[gTasks[taskId].data[15] + LINK_BUFF_ATTACKER]; @@ -555,6 +591,7 @@ static void Task_HandleCopyReceivedLinkBuffersData(u8 taskId) gBattleControllerExecFlags &= ~(gBitTable[battlerId] << (var * 4)); break; } + gTasks[taskId].data[15] = gTasks[taskId].data[15] + blockSize + LINK_BUFF_DATA; } } @@ -568,7 +605,7 @@ void BtlController_EmitGetMonData(u8 bufferId, u8 requestId, u8 monToCheck) PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4); } -// not used +// Unused static void BtlController_EmitGetRawMonData(u8 bufferId, u8 monId, u8 bytes) { sBattleBuffersTransferData[0] = CONTROLLER_GETRAWMONDATA; @@ -585,12 +622,12 @@ void BtlController_EmitSetMonData(u8 bufferId, u8 requestId, u8 monToCheck, u8 b sBattleBuffersTransferData[0] = CONTROLLER_SETMONDATA; sBattleBuffersTransferData[1] = requestId; sBattleBuffersTransferData[2] = monToCheck; - for (i = 0; i < bytes; ++i) + for (i = 0; i < bytes; i++) sBattleBuffersTransferData[3 + i] = *(u8 *)(data++); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 3 + bytes); } -// not used +// Unused static void BtlController_EmitSetRawMonData(u8 bufferId, u8 monId, u8 bytes, void *data) { s32 i; @@ -598,7 +635,7 @@ static void BtlController_EmitSetRawMonData(u8 bufferId, u8 monId, u8 bytes, voi sBattleBuffersTransferData[0] = CONTROLLER_SETRAWMONDATA; sBattleBuffersTransferData[1] = monId; sBattleBuffersTransferData[2] = bytes; - for (i = 0; i < bytes; ++i) + for (i = 0; i < bytes; i++) sBattleBuffersTransferData[3 + i] = *(u8 *)(data++); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, bytes + 3); } @@ -664,7 +701,7 @@ void BtlController_EmitFaintAnimation(u8 bufferId) PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4); } -// not used +// Unused static void BtlController_EmitPaletteFade(u8 bufferId) { sBattleBuffersTransferData[0] = CONTROLLER_PALETTEFADE; @@ -674,7 +711,7 @@ static void BtlController_EmitPaletteFade(u8 bufferId) PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4); } -// not used +// Unused static void BtlController_EmitSuccessBallThrowAnim(u8 bufferId) { sBattleBuffersTransferData[0] = CONTROLLER_SUCCESSBALLTHROWANIM; @@ -691,14 +728,14 @@ void BtlController_EmitBallThrowAnim(u8 bufferId, u8 caseId) PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 2); } -// not used +// Unused static void BtlController_EmitPause(u8 bufferId, u8 toWait, void *data) { s32 i; sBattleBuffersTransferData[0] = CONTROLLER_PAUSE; sBattleBuffersTransferData[1] = toWait; - for (i = 0; i < toWait * 3; ++i) + for (i = 0; i < toWait * 3; i++) sBattleBuffersTransferData[2 + i] = *(u8 *)(data++); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, toWait * 3 + 2); } @@ -742,6 +779,7 @@ void BtlController_EmitPrintString(u8 bufferId, u16 stringID) sBattleBuffersTransferData[1] = gBattleOutcome; sBattleBuffersTransferData[2] = stringID; sBattleBuffersTransferData[3] = (stringID & 0xFF00) >> 8; + stringInfo = (struct BattleMsgData *)(&sBattleBuffersTransferData[4]); stringInfo->currentMove = gCurrentMove; stringInfo->originallyUsedMove = gChosenMove; @@ -752,9 +790,10 @@ void BtlController_EmitPrintString(u8 bufferId, u16 stringID) stringInfo->hpScale = gBattleStruct->hpScale; stringInfo->itemEffectBattler = gPotentialItemEffectBattler; stringInfo->moveType = gBattleMoves[gCurrentMove].type; - for (i = 0; i < MAX_BATTLERS_COUNT; ++i) + + for (i = 0; i < MAX_BATTLERS_COUNT; i++) stringInfo->abilities[i] = gBattleMons[i].ability; - for (i = 0; i < TEXT_BUFF_ARRAY_COUNT; ++i) + for (i = 0; i < TEXT_BUFF_ARRAY_COUNT; i++) { stringInfo->textBuffs[0][i] = gBattleTextBuff1[i]; stringInfo->textBuffs[1][i] = gBattleTextBuff2[i]; @@ -772,6 +811,7 @@ void BtlController_EmitPrintSelectionString(u8 bufferId, u16 stringID) sBattleBuffersTransferData[1] = CONTROLLER_PRINTSTRINGPLAYERONLY; sBattleBuffersTransferData[2] = stringID; sBattleBuffersTransferData[3] = (stringID & 0xFF00) >> 8; + stringInfo = (struct BattleMsgData *)(&sBattleBuffersTransferData[4]); stringInfo->currentMove = gCurrentMove; stringInfo->originallyUsedMove = gChosenMove; @@ -779,9 +819,10 @@ void BtlController_EmitPrintSelectionString(u8 bufferId, u16 stringID) stringInfo->lastAbility = gLastUsedAbility; stringInfo->scrActive = gBattleScripting.battler; stringInfo->bakScriptPartyIdx = gBattleStruct->scriptPartyIdx; - for (i = 0; i < MAX_BATTLERS_COUNT; ++i) + + for (i = 0; i < MAX_BATTLERS_COUNT; i++) stringInfo->abilities[i] = gBattleMons[i].ability; - for (i = 0; i < TEXT_BUFF_ARRAY_COUNT; ++i) + for (i = 0; i < TEXT_BUFF_ARRAY_COUNT; i++) { stringInfo->textBuffs[0][i] = gBattleTextBuff1[i]; stringInfo->textBuffs[1][i] = gBattleTextBuff2[i]; @@ -790,16 +831,17 @@ void BtlController_EmitPrintSelectionString(u8 bufferId, u16 stringID) PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, sizeof(struct BattleMsgData) + 4); } -void BtlController_EmitChooseAction(u8 bufferId, u8 arg1, u16 arg2) +// itemId only relevant for B_ACTION_USE_ITEM +void BtlController_EmitChooseAction(u8 bufferId, u8 action, u16 itemId) { sBattleBuffersTransferData[0] = CONTROLLER_CHOOSEACTION; - sBattleBuffersTransferData[1] = arg1; - sBattleBuffersTransferData[2] = arg2; - sBattleBuffersTransferData[3] = (arg2 & 0xFF00) >> 8; + sBattleBuffersTransferData[1] = action; + sBattleBuffersTransferData[2] = itemId; + sBattleBuffersTransferData[3] = (itemId & 0xFF00) >> 8; PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4); } -// not used +// Unused static void BtlController_EmitUnknownYesNoBox(u8 bufferId, u32 arg1) // TODO: Does the function name make sense for pokefirered? { sBattleBuffersTransferData[0] = CONTROLLER_UNKNOWNYESNOBOX; @@ -815,35 +857,35 @@ void BtlController_EmitChooseMove(u8 bufferId, bool8 isDoubleBattle, bool8 NoPpN sBattleBuffersTransferData[1] = isDoubleBattle; sBattleBuffersTransferData[2] = NoPpNumber; sBattleBuffersTransferData[3] = 0; - for (i = 0; i < sizeof(*movePpData); ++i) + for (i = 0; i < sizeof(*movePpData); i++) sBattleBuffersTransferData[4 + i] = *((u8 *)(movePpData) + i); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, sizeof(*movePpData) + 4); } -void BtlController_EmitChooseItem(u8 bufferId, u8 *arg1) +void BtlController_EmitChooseItem(u8 bufferId, u8 *battlePartyOrder) { s32 i; sBattleBuffersTransferData[0] = CONTROLLER_OPENBAG; - for (i = 0; i < 3; ++i) - sBattleBuffersTransferData[1 + i] = arg1[i]; + for (i = 0; i < PARTY_SIZE / 2; i++) + sBattleBuffersTransferData[1 + i] = battlePartyOrder[i]; PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4); } -void BtlController_EmitChoosePokemon(u8 bufferId, u8 caseId, u8 arg2, u8 abilityId, u8 *arg4) +void BtlController_EmitChoosePokemon(u8 bufferId, u8 caseId, u8 slotId, u8 abilityId, u8 *data) { s32 i; sBattleBuffersTransferData[0] = CONTROLLER_CHOOSEPOKEMON; sBattleBuffersTransferData[1] = caseId; - sBattleBuffersTransferData[2] = arg2; + sBattleBuffersTransferData[2] = slotId; sBattleBuffersTransferData[3] = abilityId; - for (i = 0; i < 3; ++i) - sBattleBuffersTransferData[4 + i] = arg4[i]; + for (i = 0; i < 3; i++) + sBattleBuffersTransferData[4 + i] = data[i]; PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 8); // Only 7 bytes were written. } -// not used +// Unused static void BtlController_EmitCmd23(u8 bufferId) { sBattleBuffersTransferData[0] = CONTROLLER_23; @@ -896,7 +938,7 @@ void BtlController_EmitStatusAnimation(u8 bufferId, bool8 status2, u32 status) PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 6); } -// not used +// Unused static void BtlController_EmitStatusXor(u8 bufferId, u8 b) { sBattleBuffersTransferData[0] = CONTROLLER_STATUSXOR; @@ -912,12 +954,12 @@ void BtlController_EmitDataTransfer(u8 bufferId, u16 size, void *data) sBattleBuffersTransferData[1] = CONTROLLER_DATATRANSFER; sBattleBuffersTransferData[2] = size; sBattleBuffersTransferData[3] = (size & 0xFF00) >> 8; - for (i = 0; i < size; ++i) + for (i = 0; i < size; i++) sBattleBuffersTransferData[4 + i] = *(u8 *)(data++); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, size + 4); } -// not used +// Unused static void BtlController_EmitDMA3Transfer(u8 bufferId, void *dst, u16 size, void *data) { s32 i; @@ -929,7 +971,7 @@ static void BtlController_EmitDMA3Transfer(u8 bufferId, void *dst, u16 size, voi sBattleBuffersTransferData[4] = ((u32)(dst) & 0xFF000000) >> 24; sBattleBuffersTransferData[5] = size; sBattleBuffersTransferData[6] = (size & 0xFF00) >> 8; - for (i = 0; i < size; ++i) + for (i = 0; i < size; i++) sBattleBuffersTransferData[7 + i] = *(u8 *)(data++); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, size + 7); } @@ -945,12 +987,12 @@ static void BtlController_EmitPlayBGM(u8 bufferId, u16 songId, void *data) // Nonsense loop using songId as a size // Would go out of bounds for any song id after SE_DEOXYS_MOVE (253) - for (i = 0; i < songId; ++i) + for (i = 0; i < songId; i++) sBattleBuffersTransferData[3 + i] = *(u8 *)(data++); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, songId + 3); } -// not used +// Unused static void BtlController_EmitCmd32(u8 bufferId, u16 size, void *data) { s32 i; @@ -958,84 +1000,84 @@ static void BtlController_EmitCmd32(u8 bufferId, u16 size, void *data) sBattleBuffersTransferData[0] = CONTROLLER_32; sBattleBuffersTransferData[1] = size; sBattleBuffersTransferData[2] = (size & 0xFF00) >> 8; - for (i = 0; i < size; ++i) + for (i = 0; i < size; i++) sBattleBuffersTransferData[3 + i] = *(u8 *)(data++); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, size + 3); } -void BtlController_EmitTwoReturnValues(u8 bufferId, u8 arg1, u16 arg2) +void BtlController_EmitTwoReturnValues(u8 bufferId, u8 ret8, u16 ret16) { sBattleBuffersTransferData[0] = CONTROLLER_TWORETURNVALUES; - sBattleBuffersTransferData[1] = arg1; - sBattleBuffersTransferData[2] = arg2; - sBattleBuffersTransferData[3] = (arg2 & 0xFF00) >> 8; + sBattleBuffersTransferData[1] = ret8; + sBattleBuffersTransferData[2] = ret16; + sBattleBuffersTransferData[3] = (ret16 & 0xFF00) >> 8; PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4); } -void BtlController_EmitChosenMonReturnValue(u8 bufferId, u8 b, u8 *c) +void BtlController_EmitChosenMonReturnValue(u8 bufferId, u8 partyId, u8 *battlePartyOrder) { s32 i; sBattleBuffersTransferData[0] = CONTROLLER_CHOSENMONRETURNVALUE; - sBattleBuffersTransferData[1] = b; - for (i = 0; i < 3; ++i) - sBattleBuffersTransferData[2 + i] = c[i]; + sBattleBuffersTransferData[1] = partyId; + for (i = 0; i < (int)ARRAY_COUNT(gBattlePartyCurrentOrder); i++) + sBattleBuffersTransferData[2 + i] = battlePartyOrder[i]; PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 5); } -void BtlController_EmitOneReturnValue(u8 bufferId, u16 arg1) +void BtlController_EmitOneReturnValue(u8 bufferId, u16 ret) { sBattleBuffersTransferData[0] = CONTROLLER_ONERETURNVALUE; - sBattleBuffersTransferData[1] = arg1; - sBattleBuffersTransferData[2] = (arg1 & 0xFF00) >> 8; + sBattleBuffersTransferData[1] = ret; + sBattleBuffersTransferData[2] = (ret & 0xFF00) >> 8; sBattleBuffersTransferData[3] = 0; PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4); } -void BtlController_EmitOneReturnValue_Duplicate(u8 bufferId, u16 b) +void BtlController_EmitOneReturnValue_Duplicate(u8 bufferId, u16 ret) { sBattleBuffersTransferData[0] = CONTROLLER_ONERETURNVALUE_DUPLICATE; - sBattleBuffersTransferData[1] = b; - sBattleBuffersTransferData[2] = (b & 0xFF00) >> 8; + sBattleBuffersTransferData[1] = ret; + sBattleBuffersTransferData[2] = (ret & 0xFF00) >> 8; sBattleBuffersTransferData[3] = 0; PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4); } -// not used -static void BtlController_EmitCmd37(u8 bufferId) +// Unused +static void BtlController_EmitClearUnkVar(u8 bufferId) { - sBattleBuffersTransferData[0] = CONTROLLER_37; - sBattleBuffersTransferData[1] = CONTROLLER_37; - sBattleBuffersTransferData[2] = CONTROLLER_37; - sBattleBuffersTransferData[3] = CONTROLLER_37; + sBattleBuffersTransferData[0] = CONTROLLER_CLEARUNKVAR; + sBattleBuffersTransferData[1] = CONTROLLER_CLEARUNKVAR; + sBattleBuffersTransferData[2] = CONTROLLER_CLEARUNKVAR; + sBattleBuffersTransferData[3] = CONTROLLER_CLEARUNKVAR; PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4); } -// not used -static void BtlController_EmitCmd38(u8 bufferId, u8 b) +// Unused +static void BtlController_EmitSetUnkVar(u8 bufferId, u8 b) { - sBattleBuffersTransferData[0] = CONTROLLER_38; + sBattleBuffersTransferData[0] = CONTROLLER_SETUNKVAR; sBattleBuffersTransferData[1] = b; PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 2); } -// not used -static void BtlController_EmitCmd39(u8 bufferId) +// Unused +static void BtlController_EmitClearUnkFlag(u8 bufferId) { - sBattleBuffersTransferData[0] = CONTROLLER_39; - sBattleBuffersTransferData[1] = CONTROLLER_39; - sBattleBuffersTransferData[2] = CONTROLLER_39; - sBattleBuffersTransferData[3] = CONTROLLER_39; + sBattleBuffersTransferData[0] = CONTROLLER_CLEARUNKFLAG; + sBattleBuffersTransferData[1] = CONTROLLER_CLEARUNKFLAG; + sBattleBuffersTransferData[2] = CONTROLLER_CLEARUNKFLAG; + sBattleBuffersTransferData[3] = CONTROLLER_CLEARUNKFLAG; PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4); } -// not used -static void BtlController_EmitCmd40(u8 bufferId) +// Unused +static void BtlController_EmitToggleUnkFlag(u8 bufferId) { - sBattleBuffersTransferData[0] = CONTROLLER_40; - sBattleBuffersTransferData[1] = CONTROLLER_40; - sBattleBuffersTransferData[2] = CONTROLLER_40; - sBattleBuffersTransferData[3] = CONTROLLER_40; + sBattleBuffersTransferData[0] = CONTROLLER_TOGGLEUNKFLAG; + sBattleBuffersTransferData[1] = CONTROLLER_TOGGLEUNKFLAG; + sBattleBuffersTransferData[2] = CONTROLLER_TOGGLEUNKFLAG; + sBattleBuffersTransferData[3] = CONTROLLER_TOGGLEUNKFLAG; PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4); } @@ -1050,16 +1092,16 @@ void BtlController_EmitHitAnimation(u8 bufferId) void BtlController_EmitCantSwitch(u8 bufferId) { - sBattleBuffersTransferData[0] = CONTROLLER_42; - sBattleBuffersTransferData[1] = CONTROLLER_42; - sBattleBuffersTransferData[2] = CONTROLLER_42; - sBattleBuffersTransferData[3] = CONTROLLER_42; + sBattleBuffersTransferData[0] = CONTROLLER_CANTSWITCH; + sBattleBuffersTransferData[1] = CONTROLLER_CANTSWITCH; + sBattleBuffersTransferData[2] = CONTROLLER_CANTSWITCH; + sBattleBuffersTransferData[3] = CONTROLLER_CANTSWITCH; PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4); } void BtlController_EmitPlaySE(u8 bufferId, u16 songId) { - sBattleBuffersTransferData[0] = CONTROLLER_EFFECTIVENESSSOUND; + sBattleBuffersTransferData[0] = CONTROLLER_PLAYSE; sBattleBuffersTransferData[1] = songId; sBattleBuffersTransferData[2] = (songId & 0xFF00) >> 8; sBattleBuffersTransferData[3] = 0; @@ -1068,7 +1110,7 @@ void BtlController_EmitPlaySE(u8 bufferId, u16 songId) void BtlController_EmitPlayFanfare(u8 bufferId, u16 songId) { - sBattleBuffersTransferData[0] = CONTROLLER_PLAYFANFAREORBGM; + sBattleBuffersTransferData[0] = CONTROLLER_PLAYFANFARE; sBattleBuffersTransferData[1] = songId; sBattleBuffersTransferData[2] = (songId & 0xFF00) >> 8; sBattleBuffersTransferData[3] = 0; @@ -1108,7 +1150,7 @@ void BtlController_EmitDrawPartyStatusSummary(u8 bufferId, struct HpAndStatus* h sBattleBuffersTransferData[1] = flags & ~PARTY_SUMM_SKIP_DRAW_DELAY; // If true, skip player side sBattleBuffersTransferData[2] = (flags & PARTY_SUMM_SKIP_DRAW_DELAY) >> 7; // If true, skip delay after drawing. True during intro sBattleBuffersTransferData[3] = CONTROLLER_DRAWPARTYSTATUSSUMMARY; - for (i = 0; i < (s32)(sizeof(struct HpAndStatus) * PARTY_SIZE); ++i) + for (i = 0; i < (s32)(sizeof(struct HpAndStatus) * PARTY_SIZE); i++) sBattleBuffersTransferData[4 + i] = *(i + (u8 *)(hpAndStatus)); PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, sizeof(struct HpAndStatus) * PARTY_SIZE + 4); } diff --git a/src/battle_gfx_sfx_util.c b/src/battle_gfx_sfx_util.c index 327253c04..bd43270e0 100644 --- a/src/battle_gfx_sfx_util.c +++ b/src/battle_gfx_sfx_util.c @@ -146,8 +146,8 @@ void SpriteCB_WaitForBattlerBallReleaseAnim(struct Sprite *sprite) } } -// not used -UNUSED static void UnusedDoBattleSpriteAffineAnim(struct Sprite *sprite, bool8 arg1) +// Unused +static void DoBattleSpriteAffineAnim(struct Sprite *sprite, bool8 arg1) { sprite->animPaused = 1; sprite->callback = SpriteCallbackDummy; @@ -452,7 +452,7 @@ void DecompressTrainerBackPalette(u16 index, u8 palette) LoadCompressedPalette(gTrainerBackPicPaletteTable[index].data, (palette + 16) * 16, 0x20); } -void BattleGfxSfxDummy3(u8 a1) +void BattleGfxSfxDummy3(u8 gender) { } @@ -894,12 +894,12 @@ void LoadAndCreateEnemyShadowSprites(void) LoadCompressedSpriteSheetUsingHeap(&gSpriteSheet_EnemyShadow); battlerId = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); - gBattleSpritesDataPtr->healthBoxesData[battlerId].shadowSpriteId = CreateSprite(&gSpriteTemplate_EnemyShadow, GetBattlerSpriteCoord(battlerId, 0), GetBattlerSpriteCoord(battlerId, 1) + 29, 0xC8); + gBattleSpritesDataPtr->healthBoxesData[battlerId].shadowSpriteId = CreateSprite(&gSpriteTemplate_EnemyShadow, GetBattlerSpriteCoord(battlerId, BATTLER_COORD_X), GetBattlerSpriteCoord(battlerId, BATTLER_COORD_Y) + 29, 0xC8); gSprites[gBattleSpritesDataPtr->healthBoxesData[battlerId].shadowSpriteId].data[0] = battlerId; if (IsDoubleBattle()) { battlerId = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT); - gBattleSpritesDataPtr->healthBoxesData[battlerId].shadowSpriteId = CreateSprite(&gSpriteTemplate_EnemyShadow, GetBattlerSpriteCoord(battlerId, 0), GetBattlerSpriteCoord(battlerId, 1) + 29, 0xC8); + gBattleSpritesDataPtr->healthBoxesData[battlerId].shadowSpriteId = CreateSprite(&gSpriteTemplate_EnemyShadow, GetBattlerSpriteCoord(battlerId, BATTLER_COORD_X), GetBattlerSpriteCoord(battlerId, BATTLER_COORD_Y) + 29, 0xC8); gSprites[gBattleSpritesDataPtr->healthBoxesData[battlerId].shadowSpriteId].data[0] = battlerId; } } diff --git a/src/battle_interface.c b/src/battle_interface.c index 57130c9ee..c9575d373 100644 --- a/src/battle_interface.c +++ b/src/battle_interface.c @@ -1473,7 +1473,7 @@ void UpdateNickInHealthbox(u8 healthboxSpriteId, struct Pokemon *mon) ptr = StringCopy(gDisplayedStringBattle, gUnknown_8260556); GetMonData(mon, MON_DATA_NICKNAME, nickname); - StringGetEnd10(nickname); + StringGet_Nickname(nickname); ptr = StringCopy(ptr, nickname); *ptr++ = EXT_CTRL_CODE_BEGIN; *ptr++ = EXT_CTRL_CODE_COLOR; diff --git a/src/battle_intro.c b/src/battle_intro.c index c7a0da2b7..0b5b81ef0 100644 --- a/src/battle_intro.c +++ b/src/battle_intro.c @@ -479,8 +479,8 @@ void CopyBattlerSpriteToBg(s32 bgId, u8 x, u8 y, u8 battlerPosition, u8 palno, u LoadBgTilemap(bgId, tilemapDest, BG_SCREEN_SIZE, 0); } -// not used -static void sub_80BCFCC(u8 arg0, u8 arg1, u8 battlerPosition, u8 arg3, u8 arg4, u16 arg5, u8 arg6, u8 arg7) +// Unused +static void DrawBattlerOnBgDMA(u8 arg0, u8 arg1, u8 battlerPosition, u8 arg3, u8 arg4, u16 arg5, u8 arg6, u8 arg7) { s32 i, j, offset; diff --git a/src/battle_main.c b/src/battle_main.c index 681230482..24615d154 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -9,7 +9,6 @@ #include "battle_message.h" #include "battle_scripts.h" #include "battle_setup.h" -#include "battle_string_ids.h" #include "berry.h" #include "data.h" #include "decompress.h" @@ -77,7 +76,7 @@ static void CB2_EndLinkBattle(void); static void EndLinkBattleInSteps(void); static void SpriteCB_MoveWildMonToRight(struct Sprite *sprite); static void SpriteCB_WildMonShowHealthbox(struct Sprite *sprite); -static void SpriteCB_Unused_8011E28_Step(struct Sprite *sprite); +static void SpriteCB_Flicker(struct Sprite *sprite); static void SpriteCB_AnimFaintOpponent(struct Sprite *sprite); static void SpriteCB_BlinkVisible(struct Sprite *sprite); static void oac_poke_ally_(struct Sprite *sprite); @@ -133,7 +132,7 @@ EWRAM_DATA u8 gBattleTextBuff3[TEXT_BUFF_ARRAY_COUNT] = {0}; static EWRAM_DATA u32 sFlickerArray[25] = {0}; EWRAM_DATA u32 gBattleTypeFlags = 0; EWRAM_DATA u8 gBattleTerrain = 0; -EWRAM_DATA u32 gUnknown_2022B54 = 0; +EWRAM_DATA u32 gUnusedFirstBattleVar1 = 0; EWRAM_DATA struct MultiBattlePokemonTx gMultiPartnerParty[3] = {0}; EWRAM_DATA u8 *gBattleAnimBgTileBuffer = NULL; EWRAM_DATA u8 *gBattleAnimBgTilemapBuffer = NULL; @@ -185,7 +184,7 @@ EWRAM_DATA u8 gMoveResultFlags = 0; EWRAM_DATA u32 gHitMarker = 0; static EWRAM_DATA u8 sUnusedBattlersArray[MAX_BATTLERS_COUNT] = {0}; EWRAM_DATA u8 gTakenDmgByBattler[MAX_BATTLERS_COUNT] = {0}; -EWRAM_DATA u8 gUnknown_2023DDC = 0; +EWRAM_DATA u8 gUnusedFirstBattleVar2 = 0; EWRAM_DATA u16 gSideStatuses[2] = {0}; EWRAM_DATA struct SideTimer gSideTimers[2] = {0}; EWRAM_DATA u32 gStatuses3[MAX_BATTLERS_COUNT] = {0}; @@ -974,7 +973,7 @@ static void CB2_HandleStartBattle(void) *(&gBattleStruct->multiBuffer.linkBattlerHeader.versionSignatureHi) = 2; BufferPartyVsScreenHealth_AtStart(); SetPlayerBerryDataInBattleStruct(); - SendBlock(bitmask_all_link_players_but_self(), &gBattleStruct->multiBuffer.linkBattlerHeader, sizeof(gBattleStruct->multiBuffer.linkBattlerHeader)); + SendBlock(BitmaskAllOtherLinkPlayers(), &gBattleStruct->multiBuffer.linkBattlerHeader, sizeof(gBattleStruct->multiBuffer.linkBattlerHeader)); gBattleCommunication[MULTIUSE_STATE] = 2; } if (gWirelessCommType != 0) @@ -1009,7 +1008,7 @@ static void CB2_HandleStartBattle(void) case 3: if (IsLinkTaskFinished()) { - SendBlock(bitmask_all_link_players_but_self(), gPlayerParty, sizeof(struct Pokemon) * 2); + SendBlock(BitmaskAllOtherLinkPlayers(), gPlayerParty, sizeof(struct Pokemon) * 2); gBattleCommunication[MULTIUSE_STATE]++; } break; @@ -1024,7 +1023,7 @@ static void CB2_HandleStartBattle(void) case 7: if (IsLinkTaskFinished()) { - SendBlock(bitmask_all_link_players_but_self(), gPlayerParty + 2, sizeof(struct Pokemon) * 2); + SendBlock(BitmaskAllOtherLinkPlayers(), gPlayerParty + 2, sizeof(struct Pokemon) * 2); gBattleCommunication[MULTIUSE_STATE]++; } break; @@ -1039,7 +1038,7 @@ static void CB2_HandleStartBattle(void) case 11: if (IsLinkTaskFinished()) { - SendBlock(bitmask_all_link_players_but_self(), gPlayerParty + 4, sizeof(struct Pokemon) * 2); + SendBlock(BitmaskAllOtherLinkPlayers(), gPlayerParty + 4, sizeof(struct Pokemon) * 2); gBattleCommunication[MULTIUSE_STATE]++; } break; @@ -1058,7 +1057,7 @@ static void CB2_HandleStartBattle(void) } break; case 15: - InitBtlControllers(); + InitBattleControllers(); gBattleCommunication[MULTIUSE_STATE]++; gBattleCommunication[SPRITES_INIT_STATE1] = 0; gBattleCommunication[SPRITES_INIT_STATE2] = 0; @@ -1141,7 +1140,7 @@ static void CB2_PreInitMultiBattle(void) if (gReceivedRemoteLinkPlayers && IsLinkTaskFinished()) { PrepareOwnMultiPartnerBuffer(); - SendBlock(bitmask_all_link_players_but_self(), gBattleStruct->multiBuffer.multiBattleMons, sizeof(gBattleStruct->multiBuffer.multiBattleMons)); + SendBlock(BitmaskAllOtherLinkPlayers(), gBattleStruct->multiBuffer.multiBattleMons, sizeof(gBattleStruct->multiBuffer.multiBattleMons)); gBattleCommunication[MULTIUSE_STATE]++; } break; @@ -1230,7 +1229,7 @@ static void CB2_HandleStartMultiBattle(void) *(&gBattleStruct->multiBuffer.linkBattlerHeader.versionSignatureHi) = 2; BufferPartyVsScreenHealth_AtStart(); SetPlayerBerryDataInBattleStruct(); - SendBlock(bitmask_all_link_players_but_self(), &gBattleStruct->multiBuffer.linkBattlerHeader, sizeof(gBattleStruct->multiBuffer.linkBattlerHeader)); + SendBlock(BitmaskAllOtherLinkPlayers(), &gBattleStruct->multiBuffer.linkBattlerHeader, sizeof(gBattleStruct->multiBuffer.linkBattlerHeader)); gBattleCommunication[MULTIUSE_STATE]++; } if (gWirelessCommType) @@ -1281,7 +1280,7 @@ static void CB2_HandleStartMultiBattle(void) case 3: if (IsLinkTaskFinished()) { - SendBlock(bitmask_all_link_players_but_self(), gDecompressionBuffer, sizeof(struct Pokemon) * 2); + SendBlock(BitmaskAllOtherLinkPlayers(), gDecompressionBuffer, sizeof(struct Pokemon) * 2); gBattleCommunication[MULTIUSE_STATE]++; } break; @@ -1344,7 +1343,7 @@ static void CB2_HandleStartMultiBattle(void) case 7: if (IsLinkTaskFinished()) { - SendBlock(bitmask_all_link_players_but_self(), gDecompressionBuffer + sizeof(struct Pokemon) * 2, sizeof(struct Pokemon)); + SendBlock(BitmaskAllOtherLinkPlayers(), gDecompressionBuffer + sizeof(struct Pokemon) * 2, sizeof(struct Pokemon)); gBattleCommunication[MULTIUSE_STATE]++; } break; @@ -1417,7 +1416,7 @@ static void CB2_HandleStartMultiBattle(void) } break; case 11: - InitBtlControllers(); + InitBattleControllers(); gBattleCommunication[MULTIUSE_STATE]++; gBattleCommunication[SPRITES_INIT_STATE1] = 0; gBattleCommunication[SPRITES_INIT_STATE2] = 0; @@ -1918,24 +1917,26 @@ void SpriteCallbackDummy_2(struct Sprite *sprite) { } -// not used -UNUSED static void SpriteCB_Unused_8011E28(struct Sprite *sprite) +#define sNumFlickers data[3] +#define sDelay data[4] + +// Unused +static void SpriteCB_InitFlicker(struct Sprite *sprite) { - sprite->data[3] = 6; - sprite->data[4] = 1; - sprite->callback = SpriteCB_Unused_8011E28_Step; + sprite->sNumFlickers = 6; + sprite->sDelay = 1; + sprite->callback = SpriteCB_Flicker; } -// not used -static void SpriteCB_Unused_8011E28_Step(struct Sprite *sprite) +static void SpriteCB_Flicker(struct Sprite *sprite) { - --sprite->data[4]; - if (sprite->data[4] == 0) + sprite->sDelay--; + if (sprite->sDelay == 0) { - sprite->data[4] = 8; + sprite->sDelay = 8; sprite->invisible ^= 1; - --sprite->data[3]; - if (sprite->data[3] == 0) + sprite->sNumFlickers--; + if (sprite->sNumFlickers == 0) { sprite->invisible = FALSE; sprite->callback = SpriteCallbackDummy_2; @@ -1944,6 +1945,9 @@ static void SpriteCB_Unused_8011E28_Step(struct Sprite *sprite) } } +#undef sNumFlickers +#undef sDelay + void SpriteCB_FaintOpponentMon(struct Sprite *sprite) { u8 battler = sprite->sBattler; @@ -2184,8 +2188,9 @@ static void SpriteCB_PlayerThrowUpdate(struct Sprite *sprite) sprite->callback = SpriteCB_Idle; } -void BattleDummy(void) +void BeginBattleIntroDummy(void) { + } void BeginBattleIntro(void) @@ -2274,8 +2279,8 @@ static void BattleStartClearSetData(void) gLeveledUpInBattle = 0; gAbsentBattlerFlags = 0; gBattleStruct->runTries = 0; - gBattleStruct->safariGoNearCounter = 0; - gBattleStruct->safariPkblThrowCounter = 0; + gBattleStruct->safariRockThrowCounter = 0; + gBattleStruct->safariBaitThrowCounter = 0; *(&gBattleStruct->safariCatchFactor) = gBaseStats[GetMonData(&gEnemyParty[0], MON_DATA_SPECIES)].catchRate * 100 / 1275; *(&gBattleStruct->safariEscapeFactor) = gBaseStats[GetMonData(&gEnemyParty[0], MON_DATA_SPECIES)].safariZoneFleeRate * 100 / 1275; if (gBattleStruct->safariEscapeFactor <= 1) @@ -4331,32 +4336,32 @@ static void HandleAction_WatchesCarefully(void) gBattlerAttacker = gBattlerByTurnOrder[gCurrentTurnActionNumber]; gBattle_BG0_X = 0; gBattle_BG0_Y = 0; - if (gBattleStruct->safariGoNearCounter != 0) + if (gBattleStruct->safariRockThrowCounter != 0) { - --gBattleStruct->safariGoNearCounter; - if (gBattleStruct->safariGoNearCounter == 0) + --gBattleStruct->safariRockThrowCounter; + if (gBattleStruct->safariRockThrowCounter == 0) { *(&gBattleStruct->safariCatchFactor) = gBaseStats[GetMonData(gEnemyParty, MON_DATA_SPECIES)].catchRate * 100 / 1275; - gBattleCommunication[MULTISTRING_CHOOSER] = 0; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_MON_WATCHING; } else { - gBattleCommunication[MULTISTRING_CHOOSER] = 1; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_MON_ANGRY; } } else { - if (gBattleStruct->safariPkblThrowCounter != 0) + if (gBattleStruct->safariBaitThrowCounter != 0) { - --gBattleStruct->safariPkblThrowCounter; - if (gBattleStruct->safariPkblThrowCounter == 0) - gBattleCommunication[MULTISTRING_CHOOSER] = 0; + --gBattleStruct->safariBaitThrowCounter; + if (gBattleStruct->safariBaitThrowCounter == 0) + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_MON_WATCHING; else - gBattleCommunication[5] = 2; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_MON_EATING; } else { - gBattleCommunication[MULTISTRING_CHOOSER] = 0; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_MON_WATCHING; } } gBattlescriptCurrInstr = gBattlescriptsForSafariActions[0]; @@ -4379,10 +4384,10 @@ static void HandleAction_ThrowBait(void) gBattlerAttacker = gBattlerByTurnOrder[gCurrentTurnActionNumber]; gBattle_BG0_X = 0; gBattle_BG0_Y = 0; - gBattleStruct->safariPkblThrowCounter += Random() % 5 + 2; - if (gBattleStruct->safariPkblThrowCounter > 6) - gBattleStruct->safariPkblThrowCounter = 6; - gBattleStruct->safariGoNearCounter = 0; + gBattleStruct->safariBaitThrowCounter += Random() % 5 + 2; + if (gBattleStruct->safariBaitThrowCounter > 6) + gBattleStruct->safariBaitThrowCounter = 6; + gBattleStruct->safariRockThrowCounter = 0; gBattleStruct->safariCatchFactor >>= 1; if (gBattleStruct->safariCatchFactor <= 2) gBattleStruct->safariCatchFactor = 3; @@ -4395,10 +4400,10 @@ static void HandleAction_ThrowRock(void) gBattlerAttacker = gBattlerByTurnOrder[gCurrentTurnActionNumber]; gBattle_BG0_X = 0; gBattle_BG0_Y = 0; - gBattleStruct->safariGoNearCounter += Random() % 5 + 2; - if (gBattleStruct->safariGoNearCounter > 6) - gBattleStruct->safariGoNearCounter = 6; - gBattleStruct->safariPkblThrowCounter = 0; + gBattleStruct->safariRockThrowCounter += Random() % 5 + 2; + if (gBattleStruct->safariRockThrowCounter > 6) + gBattleStruct->safariRockThrowCounter = 6; + gBattleStruct->safariBaitThrowCounter = 0; gBattleStruct->safariCatchFactor <<= 1; if (gBattleStruct->safariCatchFactor > 20) gBattleStruct->safariCatchFactor = 20; diff --git a/src/battle_message.c b/src/battle_message.c index a845fe57c..94d1f190e 100644 --- a/src/battle_message.c +++ b/src/battle_message.c @@ -1,6 +1,5 @@ #include "global.h" #include "gflib.h" -#include "battle_string_ids.h" #include "battle.h" #include "battle_anim.h" #include "strings.h" @@ -16,9 +15,11 @@ #include "new_menu_helpers.h" #include "battle_controllers.h" #include "graphics.h" +#include "battle_ai_switch_items.h" #include "constants/moves.h" #include "constants/items.h" #include "constants/trainers.h" +#include "constants/weather.h" struct BattleWindowText { @@ -43,13 +44,13 @@ static void ExpandBattleTextBuffPlaceholders(const u8 *src, u8 *dst); static const u8 sText_Empty1[] = _(""); static const u8 sText_Trainer1LoseText[] = _("{B_TRAINER1_LOSE_TEXT}"); -static const u8 sText_Trainer2Class[] = _("{B_TRAINER2_CLASS}"); +static const u8 sText_Trainer2LoseText[] = _("{B_TRAINER2_LOSE_TEXT}"); static const u8 sText_Trainer1RecallPkmn1[] = _("{B_TRAINER1_NAME}: {B_OPPONENT_MON1_NAME}, come back!"); static const u8 sText_Trainer1WinText[] = _("{B_TRAINER1_WIN_TEXT}"); static const u8 sText_Trainer1RecallPkmn2[] = _("{B_TRAINER1_NAME}: {B_OPPONENT_MON2_NAME}, come back!"); static const u8 sText_Trainer1RecallBoth[] = _("{B_TRAINER1_NAME}: {B_OPPONENT_MON1_NAME} and\n{B_OPPONENT_MON2_NAME}, come back!"); -static const u8 sText_Trainer2Name[] = _("{B_TRAINER2_NAME}"); -static const u8 sText_PkmnGainedEXP[] = _("{B_BUFF1} gained{B_BUFF2}\n{B_TRAINER2_LOSE_TEXT} EXP. Points!\p"); +static const u8 sText_Trainer2WinText[] = _("{B_TRAINER2_WIN_TEXT}"); +static const u8 sText_PkmnGainedEXP[] = _("{B_BUFF1} gained{B_BUFF2}\n{B_BUFF3} EXP. Points!\p"); static const u8 sText_EmptyString4[] = _(""); static const u8 sText_ABoosted[] = _(" a boosted"); static const u8 sText_PkmnGrewToLv[] = _("{B_BUFF1} grew to\nLV. {B_BUFF2}!{WAIT_SE}\p"); @@ -330,7 +331,7 @@ static const u8 sText_WildFled[] = _("{PLAY_SE SE_FLEE}{B_LINK_OPPONENT1_NAME} f static const u8 sText_TwoWildFled[] = _("{PLAY_SE SE_FLEE}{B_LINK_OPPONENT1_NAME} and\n{B_LINK_OPPONENT2_NAME} fled!"); static const u8 sText_NoRunningFromTrainers[] = _("No! There's no running\nfrom a TRAINER battle!\p"); static const u8 sText_CantEscape[] = _("Can't escape!\p"); -static const u8 sText_EmptyString5[] = _(""); //sText_DontLeaveBirch in pokeem +static const u8 sText_DontLeaveBirch[] = _(""); // Dummied static const u8 sText_ButNothingHappened[] = _("But nothing happened!"); static const u8 sText_ButItFailed[] = _("But it failed!"); static const u8 sText_ItHurtConfusion[] = _("It hurt itself in its\nconfusion!"); @@ -470,7 +471,7 @@ static const u8 sText_PkmnBrokeFree[] = _("Oh, no!\nThe POKéMON broke free!"); static const u8 sText_ItAppearedCaught[] = _("Aww!\nIt appeared to be caught!"); static const u8 sText_AarghAlmostHadIt[] = _("Aargh!\nAlmost had it!"); static const u8 sText_ShootSoClose[] = _("Shoot!\nIt was so close, too!"); -const u8 gUnknown_83FD78A[] = _("よけられた!\nこいつは つかまりそうにないぞ!"); +static const u8 sText_ItDodgedBall2[] = _("よけられた!\nこいつは つかまりそうにないぞ!"); // Unused version of the Marowak ghost dodging text static const u8 sText_GotchaPkmnCaught[] = _("Gotcha!\n{B_OPPONENT_MON1_NAME} was caught!{WAIT_SE}{PLAY_BGM MUS_CAUGHT}\p"); static const u8 sText_GotchaPkmnCaught2[] = _("Gotcha!\n{B_OPPONENT_MON1_NAME} was caught!{WAIT_SE}{PLAY_BGM MUS_CAUGHT}{PAUSE 127}"); static const u8 sText_GiveNicknameCaptured[] = _("Give a nickname to the\ncaptured {B_OPPONENT_MON1_NAME}?"); @@ -483,7 +484,7 @@ static const u8 sText_SandstormIsRaging[] = _("A sandstorm is raging."); static const u8 sText_BoxIsFull[] = _("The BOX is full!\nYou can't catch any more!\p"); static const u8 sText_EnigmaBerry[] = _("ENIGMA BERRY"); static const u8 sText_BerrySuffix[] = _(" BERRY"); -static const u8 gUnknown_83FD8B6[] = _("ナゾ"); +static const u8 sText_Enigma[] = _("ナゾ"); static const u8 sText_PkmnsItemCuredParalysis[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_LAST_ITEM}\ncured paralysis!"); static const u8 sText_PkmnsItemCuredPoison[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_LAST_ITEM}\ncured poison!"); static const u8 sText_PkmnsItemHealedBurn[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_LAST_ITEM}\nhealed its burn!"); @@ -513,7 +514,7 @@ const u8 gText_OakNoRunningFromATrainer[] = _("OAK: No! There's no running away\ const u8 gText_WinEarnsPrizeMoney[] = _("OAK: Hm! Excellent!\pIf you win, you earn prize money,\nand your POKéMON will grow!\pBattle other TRAINERS and make\nyour POKéMON strong!\p"); const u8 gText_HowDissapointing[] = _("OAK: Hm…\nHow disappointing…\pIf you win, you earn prize money,\nand your POKéMON grow.\pBut if you lose, {B_PLAYER_NAME}, you end\nup paying prize money…\pHowever, since you had no warning\nthis time, I'll pay for you.\pBut things won't be this way once\nyou step outside these doors.\pThat's why you must strengthen your\nPOKéMON by battling wild POKéMON.\p"); -const u8 *const gBattleStringsTable[] = { +const u8 *const gBattleStringsTable[BATTLESTRINGS_COUNT - BATTLESTRINGS_TABLE_START] = { [STRINGID_TRAINER1LOSETEXT - BATTLESTRINGS_TABLE_START] = sText_Trainer1LoseText, [STRINGID_PKMNGAINEDEXP - BATTLESTRINGS_TABLE_START] = sText_PkmnGainedEXP, [STRINGID_PKMNGREWTOLV - BATTLESTRINGS_TABLE_START] = sText_PkmnGrewToLv, @@ -625,7 +626,7 @@ const u8 *const gBattleStringsTable[] = { [STRINGID_PKMNSTORINGENERGY - BATTLESTRINGS_TABLE_START] = sText_PkmnStoringEnergy, [STRINGID_PKMNUNLEASHEDENERGY - BATTLESTRINGS_TABLE_START] = sText_PkmnUnleashedEnergy, [STRINGID_PKMNFATIGUECONFUSION - BATTLESTRINGS_TABLE_START] = sText_PkmnFatigueConfusion, - [STRINGID_PLAYERPICKEDUPMONEY - BATTLESTRINGS_TABLE_START] = sText_PkmnPickedUpItem, + [STRINGID_PLAYERPICKEDUPMONEY - BATTLESTRINGS_TABLE_START] = sText_PkmnPickedUpItem, [STRINGID_PKMNUNAFFECTED - BATTLESTRINGS_TABLE_START] = sText_PkmnUnaffected, [STRINGID_PKMNTRANSFORMEDINTO - BATTLESTRINGS_TABLE_START] = sText_PkmnTransformedInto, [STRINGID_PKMNMADESUBSTITUTE - BATTLESTRINGS_TABLE_START] = sText_PkmnMadeSubstitute, @@ -729,7 +730,7 @@ const u8 *const gBattleStringsTable[] = { [STRINGID_WILDPKMNFLED - BATTLESTRINGS_TABLE_START] = sText_WildPkmnFled, [STRINGID_NORUNNINGFROMTRAINERS - BATTLESTRINGS_TABLE_START] = sText_NoRunningFromTrainers, [STRINGID_CANTESCAPE - BATTLESTRINGS_TABLE_START] = sText_CantEscape, - [STRINGID_DONTLEAVEBIRCH - BATTLESTRINGS_TABLE_START] = sText_EmptyString5, + [STRINGID_DONTLEAVEBIRCH - BATTLESTRINGS_TABLE_START] = sText_DontLeaveBirch, [STRINGID_BUTNOTHINGHAPPENED - BATTLESTRINGS_TABLE_START] = sText_ButNothingHappened, [STRINGID_BUTITFAILED - BATTLESTRINGS_TABLE_START] = sText_ButItFailed, [STRINGID_ITHURTCONFUSION - BATTLESTRINGS_TABLE_START] = sText_ItHurtConfusion, @@ -877,8 +878,8 @@ const u8 *const gBattleStringsTable[] = { [STRINGID_POKEFLUTECATCHY - BATTLESTRINGS_TABLE_START] = sText_PlayedFluteCatchyTune, [STRINGID_POKEFLUTE - BATTLESTRINGS_TABLE_START] = sText_PlayedThe, [STRINGID_MONHEARINGFLUTEAWOKE - BATTLESTRINGS_TABLE_START] = sText_PkmnHearingFluteAwoke, - [STRINGID_TRAINER2CLASS - BATTLESTRINGS_TABLE_START] = sText_Trainer2Class, - [STRINGID_TRAINER2NAME - BATTLESTRINGS_TABLE_START] = sText_Trainer2Name, + [STRINGID_TRAINER2LOSETEXT - BATTLESTRINGS_TABLE_START] = sText_Trainer2LoseText, + [STRINGID_TRAINER2WINTEXT - BATTLESTRINGS_TABLE_START] = sText_Trainer2WinText, [STRINGID_PLAYERWHITEDOUT - BATTLESTRINGS_TABLE_START] = sText_PlayerWhiteout2, [STRINGID_MONTOOSCAREDTOMOVE - BATTLESTRINGS_TABLE_START] = sText_TooScaredToMove, [STRINGID_GHOSTGETOUTGETOUT - BATTLESTRINGS_TABLE_START] = sText_GetOutGetOut, @@ -890,104 +891,120 @@ const u8 *const gBattleStringsTable[] = { [STRINGID_TRAINER1MON1AND2COMEBACK - BATTLESTRINGS_TABLE_START] = sText_Trainer1RecallBoth }; -const u16 gMissStringIds[] = { - STRINGID_ATTACKMISSED, - STRINGID_PKMNPROTECTEDITSELF, - STRINGID_PKMNAVOIDEDATTACK, - STRINGID_AVOIDEDDAMAGE, - STRINGID_PKMNMAKESGROUNDMISS +const u16 gMissStringIds[] = +{ + [B_MSG_MISSED] = STRINGID_ATTACKMISSED, + [B_MSG_PROTECTED] = STRINGID_PKMNPROTECTEDITSELF, + [B_MSG_AVOIDED_ATK] = STRINGID_PKMNAVOIDEDATTACK, + [B_MSG_AVOIDED_DMG] = STRINGID_AVOIDEDDAMAGE, + [B_MSG_GROUND_MISS] = STRINGID_PKMNMAKESGROUNDMISS }; -const u16 gNoEscapeStringIds[] = { - STRINGID_CANTESCAPE, - STRINGID_DONTLEAVEBIRCH, - STRINGID_PREVENTSESCAPE, - STRINGID_CANTESCAPE2, - STRINGID_ATTACKERCANTESCAPE +const u16 gNoEscapeStringIds[] = +{ + [B_MSG_CANT_ESCAPE] = STRINGID_CANTESCAPE, + [B_MSG_DONT_LEAVE_BIRCH] = STRINGID_DONTLEAVEBIRCH, + [B_MSG_PREVENTS_ESCAPE] = STRINGID_PREVENTSESCAPE, + [B_MSG_CANT_ESCAPE_2] = STRINGID_CANTESCAPE2, + [B_MSG_ATTACKER_CANT_ESCAPE] = STRINGID_ATTACKERCANTESCAPE }; -const u16 gMoveWeatherChangeStringIds[] = { - STRINGID_STARTEDTORAIN, - STRINGID_DOWNPOURSTARTED, - STRINGID_BUTITFAILED, - STRINGID_SANDSTORMBREWED, - STRINGID_SUNLIGHTGOTBRIGHT, - STRINGID_STARTEDHAIL +const u16 gMoveWeatherChangeStringIds[] = +{ + [B_MSG_STARTED_RAIN] = STRINGID_STARTEDTORAIN, + [B_MSG_STARTED_DOWNPOUR] = STRINGID_DOWNPOURSTARTED, + [B_MSG_WEATHER_FAILED] = STRINGID_BUTITFAILED, + [B_MSG_STARTED_SANDSTORM] = STRINGID_SANDSTORMBREWED, + [B_MSG_STARTED_SUNLIGHT] = STRINGID_SUNLIGHTGOTBRIGHT, + [B_MSG_STARTED_HAIL] = STRINGID_STARTEDHAIL }; -const u16 gSandstormHailContinuesStringIds[] = { - STRINGID_SANDSTORMRAGES, - STRINGID_HAILCONTINUES +const u16 gSandstormHailContinuesStringIds[] = +{ + [B_MSG_SANDSTORM] = STRINGID_SANDSTORMRAGES, + [B_MSG_HAIL] = STRINGID_HAILCONTINUES }; -const u16 gSandstormHailDmgStringIds[] = { - STRINGID_PKMNBUFFETEDBYSANDSTORM, - STRINGID_PKMNPELTEDBYHAIL +const u16 gSandstormHailDmgStringIds[] = +{ + [B_MSG_SANDSTORM] = STRINGID_PKMNBUFFETEDBYSANDSTORM, + [B_MSG_HAIL] = STRINGID_PKMNPELTEDBYHAIL }; -const u16 gSandstormHailEndStringIds[] = { - STRINGID_SANDSTORMSUBSIDED, - STRINGID_HAILSTOPPED +const u16 gSandstormHailEndStringIds[] = +{ + [B_MSG_SANDSTORM] = STRINGID_SANDSTORMSUBSIDED, + [B_MSG_HAIL] = STRINGID_HAILSTOPPED }; -const u16 gRainContinuesStringIds[] = { - STRINGID_RAINCONTINUES, - STRINGID_DOWNPOURCONTINUES, - STRINGID_RAINSTOPPED +const u16 gRainContinuesStringIds[] = +{ + [B_MSG_RAIN_CONTINUES] = STRINGID_RAINCONTINUES, + [B_MSG_DOWNPOUR_CONTINUES] = STRINGID_DOWNPOURCONTINUES, + [B_MSG_RAIN_STOPPED] = STRINGID_RAINSTOPPED }; -const u16 gProtectLikeUsedStringIds[] = { - STRINGID_PKMNPROTECTEDITSELF2, - STRINGID_PKMNBRACEDITSELF, - STRINGID_BUTITFAILED +const u16 gProtectLikeUsedStringIds[] = +{ + [B_MSG_PROTECTED_ITSELF] = STRINGID_PKMNPROTECTEDITSELF2, + [B_MSG_BRACED_ITSELF] = STRINGID_PKMNBRACEDITSELF, + [B_MSG_PROTECT_FAILED] = STRINGID_BUTITFAILED }; -const u16 gReflectLightScreenSafeguardStringIds[] = { - STRINGID_BUTITFAILED, - STRINGID_PKMNRAISEDDEF, - STRINGID_PKMNRAISEDDEFALITTLE, - STRINGID_PKMNRAISEDSPDEF, - STRINGID_PKMNRAISEDSPDEFALITTLE, - STRINGID_PKMNCOVEREDBYVEIL +const u16 gReflectLightScreenSafeguardStringIds[] = +{ + [B_MSG_SIDE_STATUS_FAILED] = STRINGID_BUTITFAILED, + [B_MSG_SET_REFLECT_SINGLE] = STRINGID_PKMNRAISEDDEF, + [B_MSG_SET_REFLECT_DOUBLE] = STRINGID_PKMNRAISEDDEFALITTLE, + [B_MSG_SET_LIGHTSCREEN_SINGLE] = STRINGID_PKMNRAISEDSPDEF, + [B_MSG_SET_LIGHTSCREEN_DOUBLE] = STRINGID_PKMNRAISEDSPDEFALITTLE, + [B_MSG_SET_SAFEGUARD] = STRINGID_PKMNCOVEREDBYVEIL }; -const u16 gLeechSeedStringIds[] = { - STRINGID_PKMNSEEDED, - STRINGID_PKMNEVADEDATTACK, - STRINGID_ITDOESNTAFFECT, - STRINGID_PKMNSAPPEDBYLEECHSEED, - STRINGID_ITSUCKEDLIQUIDOOZE +const u16 gLeechSeedStringIds[] = +{ + [B_MSG_LEECH_SEED_SET] = STRINGID_PKMNSEEDED, + [B_MSG_LEECH_SEED_MISS] = STRINGID_PKMNEVADEDATTACK, + [B_MSG_LEECH_SEED_FAIL] = STRINGID_ITDOESNTAFFECT, + [B_MSG_LEECH_SEED_DRAIN] = STRINGID_PKMNSAPPEDBYLEECHSEED, + [B_MSG_LEECH_SEED_OOZE] = STRINGID_ITSUCKEDLIQUIDOOZE }; -const u16 gRestUsedStringIds[] = { - STRINGID_PKMNWENTTOSLEEP, - STRINGID_PKMNSLEPTHEALTHY +const u16 gRestUsedStringIds[] = +{ + [B_MSG_REST] = STRINGID_PKMNWENTTOSLEEP, + [B_MSG_REST_STATUSED] = STRINGID_PKMNSLEPTHEALTHY }; -const u16 gUproarOverTurnStringIds[] = { - STRINGID_PKMNMAKINGUPROAR, - STRINGID_PKMNCALMEDDOWN +const u16 gUproarOverTurnStringIds[] = +{ + [B_MSG_UPROAR_CONTINUES] = STRINGID_PKMNMAKINGUPROAR, + [B_MSG_UPROAR_ENDS] = STRINGID_PKMNCALMEDDOWN }; -const u16 gStockpileUsedStringIds[] = { - STRINGID_PKMNSTOCKPILED, - STRINGID_PKMNCANTSTOCKPILE +const u16 gStockpileUsedStringIds[] = +{ + [B_MSG_STOCKPILED] = STRINGID_PKMNSTOCKPILED, + [B_MSG_CANT_STOCKPILE] = STRINGID_PKMNCANTSTOCKPILE }; -const u16 gWokeUpStringIds[] = { - STRINGID_PKMNWOKEUP, - STRINGID_PKMNWOKEUPINUPROAR +const u16 gWokeUpStringIds[] = +{ + [B_MSG_WOKE_UP] = STRINGID_PKMNWOKEUP, + [B_MSG_WOKE_UP_UPROAR] = STRINGID_PKMNWOKEUPINUPROAR }; -const u16 gSwallowFailStringIds[] = { - STRINGID_FAILEDTOSWALLOW, - STRINGID_PKMNHPFULL +const u16 gSwallowFailStringIds[] = +{ + [B_MSG_SWALLOW_FAILED] = STRINGID_FAILEDTOSWALLOW, + [B_MSG_SWALLOW_FULL_HP] = STRINGID_PKMNHPFULL }; -const u16 gUproarAwakeStringIds[] = { - STRINGID_PKMNCANTSLEEPINUPROAR2, - STRINGID_UPROARKEPTPKMNAWAKE, - STRINGID_PKMNSTAYEDAWAKEUSING +const u16 gUproarAwakeStringIds[] = +{ + [B_MSG_CANT_SLEEP_UPROAR] = STRINGID_PKMNCANTSLEEPINUPROAR2, + [B_MSG_UPROAR_KEPT_AWAKE] = STRINGID_UPROARKEPTPKMNAWAKE, + [B_MSG_STAYED_AWAKE_USING] = STRINGID_PKMNSTAYEDAWAKEUSING }; const u16 gStatUpStringIds[] = @@ -1000,220 +1017,258 @@ const u16 gStatUpStringIds[] = [B_MSG_USED_DIRE_HIT] = STRINGID_PKMNUSEDXTOGETPUMPED, }; -const u16 gStatDownStringIds[] = { - STRINGID_ATTACKERSSTATFELL, - STRINGID_DEFENDERSSTATFELL, - STRINGID_STATSWONTDECREASE, - STRINGID_EMPTYSTRING3 +const u16 gStatDownStringIds[] = +{ + [B_MSG_ATTACKER_STAT_FELL] = STRINGID_ATTACKERSSTATFELL, + [B_MSG_DEFENDER_STAT_FELL] = STRINGID_DEFENDERSSTATFELL, + [B_MSG_STAT_WONT_DECREASE] = STRINGID_STATSWONTDECREASE, + [B_MSG_STAT_FELL_EMPTY] = STRINGID_EMPTYSTRING3 }; -const u16 gFirstTurnOfTwoStringIds[] = { - STRINGID_PKMNWHIPPEDWHIRLWIND, - STRINGID_PKMNTOOKSUNLIGHT, - STRINGID_PKMNLOWEREDHEAD, - STRINGID_PKMNISGLOWING, - STRINGID_PKMNFLEWHIGH, - STRINGID_PKMNDUGHOLE, - STRINGID_PKMNHIDUNDERWATER, - STRINGID_PKMNSPRANGUP +// Index read from sTWOTURN_STRINGID +const u16 gFirstTurnOfTwoStringIds[] = +{ + [B_MSG_TURN1_RAZOR_WIND] = STRINGID_PKMNWHIPPEDWHIRLWIND, + [B_MSG_TURN1_SOLAR_BEAM] = STRINGID_PKMNTOOKSUNLIGHT, + [B_MSG_TURN1_SKULL_BASH] = STRINGID_PKMNLOWEREDHEAD, + [B_MSG_TURN1_SKY_ATTACK] = STRINGID_PKMNISGLOWING, + [B_MSG_TURN1_FLY] = STRINGID_PKMNFLEWHIGH, + [B_MSG_TURN1_DIG] = STRINGID_PKMNDUGHOLE, + [B_MSG_TURN1_DIVE] = STRINGID_PKMNHIDUNDERWATER, + [B_MSG_TURN1_BOUNCE] = STRINGID_PKMNSPRANGUP }; -const u16 gWrappedStringIds[] = { - STRINGID_PKMNSQUEEZEDBYBIND, - STRINGID_PKMNWRAPPEDBY, - STRINGID_PKMNTRAPPEDINVORTEX, - STRINGID_PKMNCLAMPED, - STRINGID_PKMNTRAPPEDINVORTEX, - STRINGID_PKMNTRAPPEDBYSANDTOMB +// Index copied from move's index in gTrappingMoves +const u16 gWrappedStringIds[] = +{ + STRINGID_PKMNSQUEEZEDBYBIND, // MOVE_BIND + STRINGID_PKMNWRAPPEDBY, // MOVE_WRAP + STRINGID_PKMNTRAPPEDINVORTEX, // MOVE_FIRE_SPIN + STRINGID_PKMNCLAMPED, // MOVE_CLAMP + STRINGID_PKMNTRAPPEDINVORTEX, // MOVE_WHIRLPOOL + STRINGID_PKMNTRAPPEDBYSANDTOMB // MOVE_SAND_TOMB }; -const u16 gMistUsedStringIds[] = { - STRINGID_PKMNSHROUDEDINMIST, - STRINGID_BUTITFAILED +const u16 gMistUsedStringIds[] = +{ + [B_MSG_SET_MIST] = STRINGID_PKMNSHROUDEDINMIST, + [B_MSG_MIST_FAILED] = STRINGID_BUTITFAILED }; -const u16 gFocusEnergyUsedStringIds[] = { - STRINGID_PKMNGETTINGPUMPED, - STRINGID_BUTITFAILED +const u16 gFocusEnergyUsedStringIds[] = +{ + [B_MSG_GETTING_PUMPED] = STRINGID_PKMNGETTINGPUMPED, + [B_MSG_FOCUS_ENERGY_FAILED] = STRINGID_BUTITFAILED }; -const u16 gTransformUsedStringIds[] = { - STRINGID_PKMNTRANSFORMEDINTO, - STRINGID_BUTITFAILED +const u16 gTransformUsedStringIds[] = +{ + [B_MSG_TRANSFORMED] = STRINGID_PKMNTRANSFORMEDINTO, + [B_MSG_TRANSFORM_FAILED] = STRINGID_BUTITFAILED }; -const u16 gSubstituteUsedStringIds[] = { - STRINGID_PKMNMADESUBSTITUTE, - STRINGID_TOOWEAKFORSUBSTITUTE +const u16 gSubstituteUsedStringIds[] = +{ + [B_MSG_SET_SUBSTITUTE] = STRINGID_PKMNMADESUBSTITUTE, + [B_MSG_SUBSTITUTE_FAILED] = STRINGID_TOOWEAKFORSUBSTITUTE }; -const u16 gGotPoisonedStringIds[] = { - STRINGID_PKMNWASPOISONED, - STRINGID_PKMNPOISONEDBY +const u16 gGotPoisonedStringIds[] = +{ + [B_MSG_STATUSED] = STRINGID_PKMNWASPOISONED, + [B_MSG_STATUSED_BY_ABILITY] = STRINGID_PKMNPOISONEDBY }; -const u16 gGotParalyzedStringIds[] = { - STRINGID_PKMNWASPARALYZED, - STRINGID_PKMNWASPARALYZEDBY +const u16 gGotParalyzedStringIds[] = +{ + [B_MSG_STATUSED] = STRINGID_PKMNWASPARALYZED, + [B_MSG_STATUSED_BY_ABILITY] = STRINGID_PKMNWASPARALYZEDBY }; -const u16 gFellAsleepStringIds[] = { - STRINGID_PKMNFELLASLEEP, - STRINGID_PKMNMADESLEEP +const u16 gFellAsleepStringIds[] = +{ + [B_MSG_STATUSED] = STRINGID_PKMNFELLASLEEP, + [B_MSG_STATUSED_BY_ABILITY] = STRINGID_PKMNMADESLEEP }; -const u16 gGotBurnedStringIds[] = { - STRINGID_PKMNWASBURNED, - STRINGID_PKMNBURNEDBY +const u16 gGotBurnedStringIds[] = +{ + [B_MSG_STATUSED] = STRINGID_PKMNWASBURNED, + [B_MSG_STATUSED_BY_ABILITY] = STRINGID_PKMNBURNEDBY }; -const u16 gGotFrozenStringIds[] = { - STRINGID_PKMNWASFROZEN, - STRINGID_PKMNFROZENBY +const u16 gGotFrozenStringIds[] = +{ + [B_MSG_STATUSED] = STRINGID_PKMNWASFROZEN, + [B_MSG_STATUSED_BY_ABILITY] = STRINGID_PKMNFROZENBY }; -const u16 gGotDefrostedStringIds[] = { - STRINGID_PKMNWASDEFROSTED2, - STRINGID_PKMNWASDEFROSTEDBY +const u16 gGotDefrostedStringIds[] = +{ + [B_MSG_DEFROSTED] = STRINGID_PKMNWASDEFROSTED2, + [B_MSG_DEFROSTED_BY_MOVE] = STRINGID_PKMNWASDEFROSTEDBY }; -const u16 gKOFailedStringIds[] = { - STRINGID_ATTACKMISSED, - STRINGID_PKMNUNAFFECTED +const u16 gKOFailedStringIds[] = +{ + [B_MSG_KO_MISS] = STRINGID_ATTACKMISSED, + [B_MSG_KO_UNAFFECTED] = STRINGID_PKMNUNAFFECTED }; -const u16 gAttractUsedStringIds[] = { - STRINGID_PKMNFELLINLOVE, - STRINGID_PKMNSXINFATUATEDY +const u16 gAttractUsedStringIds[] = +{ + [B_MSG_STATUSED] = STRINGID_PKMNFELLINLOVE, + [B_MSG_STATUSED_BY_ABILITY] = STRINGID_PKMNSXINFATUATEDY }; -const u16 gAbsorbDrainStringIds[] = { - STRINGID_PKMNENERGYDRAINED, - STRINGID_ITSUCKEDLIQUIDOOZE +const u16 gAbsorbDrainStringIds[] = +{ + [B_MSG_ABSORB] = STRINGID_PKMNENERGYDRAINED, + [B_MSG_ABSORB_OOZE] = STRINGID_ITSUCKEDLIQUIDOOZE }; -const u16 gSportsUsedStringIds[] = { - STRINGID_ELECTRICITYWEAKENED, - STRINGID_FIREWEAKENED +const u16 gSportsUsedStringIds[] = +{ + [B_MSG_WEAKEN_ELECTRIC] = STRINGID_ELECTRICITYWEAKENED, + [B_MSG_WEAKEN_FIRE] = STRINGID_FIREWEAKENED }; -const u16 gPartyStatusHealStringIds[] = { - STRINGID_BELLCHIMED, - STRINGID_BELLCHIMED, - STRINGID_BELLCHIMED, - STRINGID_BELLCHIMED, - STRINGID_SOOTHINGAROMA +const u16 gPartyStatusHealStringIds[] = +{ + [B_MSG_BELL] = STRINGID_BELLCHIMED, + [B_MSG_BELL_SOUNDPROOF_ATTACKER] = STRINGID_BELLCHIMED, + [B_MSG_BELL_SOUNDPROOF_PARTNER] = STRINGID_BELLCHIMED, + [B_MSG_BELL_BOTH_SOUNDPROOF] = STRINGID_BELLCHIMED, + [B_MSG_SOOTHING_AROMA] = STRINGID_SOOTHINGAROMA }; -const u16 gFutureMoveUsedStringIds[] = { - STRINGID_PKMNFORESAWATTACK, - STRINGID_PKMNCHOSEXASDESTINY +const u16 gFutureMoveUsedStringIds[] = +{ + [B_MSG_FUTURE_SIGHT] = STRINGID_PKMNFORESAWATTACK, + [B_MSG_DOOM_DESIRE] = STRINGID_PKMNCHOSEXASDESTINY }; -const u16 gBallEscapeStringIds[] = { - STRINGID_PKMNBROKEFREE, - STRINGID_ITAPPEAREDCAUGHT, - STRINGID_AARGHALMOSTHADIT, - STRINGID_SHOOTSOCLOSE +const u16 gBallEscapeStringIds[] = +{ + [BALL_NO_SHAKES] = STRINGID_PKMNBROKEFREE, + [BALL_1_SHAKE] = STRINGID_ITAPPEAREDCAUGHT, + [BALL_2_SHAKES] = STRINGID_AARGHALMOSTHADIT, + [BALL_3_SHAKES_FAIL] = STRINGID_SHOOTSOCLOSE }; -const u16 gWeatherStartsStringIds[] = { - STRINGID_ITISRAINING, - STRINGID_ITISRAINING, - STRINGID_ITISRAINING, - STRINGID_ITISRAINING, - STRINGID_ITISRAINING, - STRINGID_ITISRAINING, - STRINGID_ITISRAINING, - STRINGID_ITISRAINING, - STRINGID_SANDSTORMISRAGING, - STRINGID_ITISRAINING, - STRINGID_ITISRAINING, - STRINGID_ITISRAINING, - STRINGID_SUNLIGHTSTRONG, - STRINGID_ITISRAINING, - STRINGID_ITISRAINING, - STRINGID_ITISRAINING +// Overworld weathers that don't have an associated battle weather default to "It is raining." +const u16 gWeatherStartsStringIds[] = +{ + [WEATHER_NONE] = STRINGID_ITISRAINING, + [WEATHER_SUNNY_CLOUDS] = STRINGID_ITISRAINING, + [WEATHER_SUNNY] = STRINGID_ITISRAINING, + [WEATHER_RAIN] = STRINGID_ITISRAINING, + [WEATHER_SNOW] = STRINGID_ITISRAINING, + [WEATHER_RAIN_THUNDERSTORM] = STRINGID_ITISRAINING, + [WEATHER_FOG_HORIZONTAL] = STRINGID_ITISRAINING, + [WEATHER_VOLCANIC_ASH] = STRINGID_ITISRAINING, + [WEATHER_SANDSTORM] = STRINGID_SANDSTORMISRAGING, + [WEATHER_FOG_DIAGONAL] = STRINGID_ITISRAINING, + [WEATHER_UNDERWATER] = STRINGID_ITISRAINING, + [WEATHER_SHADE] = STRINGID_ITISRAINING, + [WEATHER_DROUGHT] = STRINGID_SUNLIGHTSTRONG, + [WEATHER_DOWNPOUR] = STRINGID_ITISRAINING, + [WEATHER_UNDERWATER_BUBBLES] = STRINGID_ITISRAINING, + [WEATHER_ABNORMAL] = STRINGID_ITISRAINING }; -const u16 gInobedientStringIds[] = { - STRINGID_PKMNLOAFING, - STRINGID_PKMNWONTOBEY, - STRINGID_PKMNTURNEDAWAY, - STRINGID_PKMNPRETENDNOTNOTICE +const u16 gInobedientStringIds[] = +{ + [B_MSG_LOAFING] = STRINGID_PKMNLOAFING, + [B_MSG_WONT_OBEY] = STRINGID_PKMNWONTOBEY, + [B_MSG_TURNED_AWAY] = STRINGID_PKMNTURNEDAWAY, + [B_MSG_PRETEND_NOT_NOTICE] = STRINGID_PKMNPRETENDNOTNOTICE }; -const u16 gSafariPokeblockResultStringIds[] = { - STRINGID_PKMNWATCHINGCAREFULLY, - STRINGID_PKMNANGRY, - STRINGID_PKMNEATING +const u16 gSafariReactionStringIds[NUM_SAFARI_REACTIONS] = +{ + [B_MSG_MON_WATCHING] = STRINGID_PKMNWATCHINGCAREFULLY, + [B_MSG_MON_ANGRY] = STRINGID_PKMNANGRY, + [B_MSG_MON_EATING] = STRINGID_PKMNEATING }; -const u16 gTrainerItemCuredStatusStringIds[] = { - STRINGID_PKMNSITEMSNAPPEDOUT, - STRINGID_PKMNSITEMCUREDPARALYSIS, - STRINGID_PKMNSITEMDEFROSTEDIT, - STRINGID_PKMNSITEMHEALEDBURN, - STRINGID_PKMNSITEMCUREDPOISON, - STRINGID_PKMNSITEMWOKEIT +const u16 gTrainerItemCuredStatusStringIds[] = +{ + [AI_HEAL_CONFUSION] = STRINGID_PKMNSITEMSNAPPEDOUT, + [AI_HEAL_PARALYSIS] = STRINGID_PKMNSITEMCUREDPARALYSIS, + [AI_HEAL_FREEZE] = STRINGID_PKMNSITEMDEFROSTEDIT, + [AI_HEAL_BURN] = STRINGID_PKMNSITEMHEALEDBURN, + [AI_HEAL_POISON] = STRINGID_PKMNSITEMCUREDPOISON, + [AI_HEAL_SLEEP] = STRINGID_PKMNSITEMWOKEIT }; -const u16 gBerryEffectStringIds[] = { - STRINGID_PKMNSITEMCUREDPROBLEM, - STRINGID_PKMNSITEMNORMALIZEDSTATUS +const u16 gBerryEffectStringIds[] = +{ + [B_MSG_CURED_PROBLEM] = STRINGID_PKMNSITEMCUREDPROBLEM, + [B_MSG_NORMALIZED_STATUS] = STRINGID_PKMNSITEMNORMALIZEDSTATUS }; -const u16 gBRNPreventionStringIds[] = { - STRINGID_PKMNSXPREVENTSBURNS, - STRINGID_PKMNSXPREVENTSYSZ, - STRINGID_PKMNSXHADNOEFFECTONY +const u16 gBRNPreventionStringIds[] = +{ + [B_MSG_ABILITY_PREVENTS_MOVE_STATUS] = STRINGID_PKMNSXPREVENTSBURNS, + [B_MSG_ABILITY_PREVENTS_ABILITY_STATUS] = STRINGID_PKMNSXPREVENTSYSZ, + [B_MSG_STATUS_HAD_NO_EFFECT] = STRINGID_PKMNSXHADNOEFFECTONY }; -const u16 gPRLZPreventionStringIds[] = { - STRINGID_PKMNPREVENTSPARALYSISWITH, - STRINGID_PKMNSXPREVENTSYSZ, - STRINGID_PKMNSXHADNOEFFECTONY +const u16 gPRLZPreventionStringIds[] = +{ + [B_MSG_ABILITY_PREVENTS_MOVE_STATUS] = STRINGID_PKMNPREVENTSPARALYSISWITH, + [B_MSG_ABILITY_PREVENTS_ABILITY_STATUS] = STRINGID_PKMNSXPREVENTSYSZ, + [B_MSG_STATUS_HAD_NO_EFFECT] = STRINGID_PKMNSXHADNOEFFECTONY }; -const u16 gPSNPreventionStringIds[] = { - STRINGID_PKMNPREVENTSPOISONINGWITH, - STRINGID_PKMNSXPREVENTSYSZ, - STRINGID_PKMNSXHADNOEFFECTONY +const u16 gPSNPreventionStringIds[] = +{ + [B_MSG_ABILITY_PREVENTS_MOVE_STATUS] = STRINGID_PKMNPREVENTSPOISONINGWITH, + [B_MSG_ABILITY_PREVENTS_ABILITY_STATUS] = STRINGID_PKMNSXPREVENTSYSZ, + [B_MSG_STATUS_HAD_NO_EFFECT] = STRINGID_PKMNSXHADNOEFFECTONY }; -const u16 gItemSwapStringIds[] = { - STRINGID_PKMNOBTAINEDX, - STRINGID_PKMNOBTAINEDX2, - STRINGID_PKMNOBTAINEDXYOBTAINEDZ +const u16 gItemSwapStringIds[] = +{ + [B_MSG_ITEM_SWAP_TAKEN] = STRINGID_PKMNOBTAINEDX, + [B_MSG_ITEM_SWAP_GIVEN] = STRINGID_PKMNOBTAINEDX2, + [B_MSG_ITEM_SWAP_BOTH] = STRINGID_PKMNOBTAINEDXYOBTAINEDZ }; -const u16 gFlashFireStringIds[] = { - STRINGID_PKMNRAISEDFIREPOWERWITH, - STRINGID_PKMNSXMADEYINEFFECTIVE +const u16 gFlashFireStringIds[] = +{ + [B_MSG_FLASH_FIRE_BOOST] = STRINGID_PKMNRAISEDFIREPOWERWITH, + [B_MSG_FLASH_FIRE_NO_BOOST] = STRINGID_PKMNSXMADEYINEFFECTIVE }; -const u16 gCaughtMonStringIds[] = { - STRINGID_PKMNTRANSFERREDSOMEONESPC, - STRINGID_PKMNTRANSFERREDBILLSPC, - STRINGID_PKMNBOXSOMEONESPCFULL, - STRINGID_PKMNBOXBILLSPCFULL +const u16 gCaughtMonStringIds[] = +{ + [B_MSG_SENT_SOMEONES_PC] = STRINGID_PKMNTRANSFERREDSOMEONESPC, + [B_MSG_SENT_BILLS_PC] = STRINGID_PKMNTRANSFERREDBILLSPC, + [B_MSG_SOMEONES_BOX_FULL] = STRINGID_PKMNBOXSOMEONESPCFULL, + [B_MSG_BILLS_BOX_FULL] = STRINGID_PKMNBOXBILLSPCFULL }; -const u16 gDoubleBattleRecallStrings[] = { +// Index is determined in VARIOUS_GET_BATTLERS_FOR_RECALL by ORing flags for each present battler on the losing side. +// No battlers (0) is skipped. +const u16 gDoubleBattleRecallStrings[1 << (MAX_BATTLERS_COUNT / 2)] = +{ STRINGID_TRAINER1MON1COMEBACK, STRINGID_TRAINER1MON1COMEBACK, STRINGID_TRAINER1MON2COMEBACK, STRINGID_TRAINER1MON1AND2COMEBACK }; -const u16 gTrappingMoves[] = { +const u16 gTrappingMoves[NUM_TRAPPING_MOVES + 1] = +{ MOVE_BIND, MOVE_WRAP, MOVE_FIRE_SPIN, MOVE_CLAMP, MOVE_WHIRLPOOL, MOVE_SAND_TOMB, - 0xFFFF + 0xFFFF // Never read }; const u8 gText_PkmnIsEvolving[] = _("What?\n{STR_VAR_1} is evolving!"); @@ -1225,30 +1280,32 @@ const u8 gText_WhatWillPlayerThrow[] = _("What will {B_PLAYER_NAME}\nthrow?"); const u8 gText_WhatWillOldManDo[] = _("What will the\nold man do?"); const u8 gText_LinkStandby[] = _("{PAUSE 16}Link standby…"); const u8 gText_BattleMenu[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW 13 14 15}FIGHT{CLEAR_TO 56}BAG\nPOKéMON{CLEAR_TO 56}RUN"); -const u8 gUnknown_83FE747[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW 13 14 15}BALL{CLEAR_TO 56}BAIT\nROCK{CLEAR_TO 56}RUN"); +const u8 gText_SafariZoneMenu[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW 13 14 15}BALL{CLEAR_TO 56}BAIT\nROCK{CLEAR_TO 56}RUN"); const u8 gText_MoveInterfacePP[] = _("PP "); const u8 gText_MoveInterfaceType[] = _("TYPE/"); -const u8 gUnknown_83FE770[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW 13 14 15}"); -const u8 gUnknown_83FE779[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW 13 14 15}どの わざを\nわすれさせたい?"); +const u8 gText_MoveInterfaceDynamicColors[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW 13 14 15}"); +const u8 gText_WhichMoveToForget_Unused[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW 13 14 15}どの わざを\nわすれさせたい?"); const u8 gText_BattleYesNoChoice[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW 13 14 15}Yes\nNo"); const u8 gText_BattleSwitchWhich[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW 13 14 15}Switch\nwhich?"); -const u8 gUnknown_83FE7B6[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW 13 14 15}"); -const u8 gUnknown_83FE7BF[] = _("{RIGHT_ARROW_2}"); -const u8 gUnknown_83FE7C2[] = _("{PLUS}"); -const u8 gUnknown_83FE7C5[] = _("-"); +static const u8 sText_UnusedColors[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW 13 14 15}"); +static const u8 sText_RightArrow2[] = _("{RIGHT_ARROW_2}"); +static const u8 sText_Plus[] = _("{PLUS}"); +static const u8 sText_Dash[] = _("-"); -const u8 gUnknown_83FE7C7[] = _("{FONT_0}Max{FONT_2} HP"); -const u8 gUnknown_83FE7D4[] = _("ATTACK "); -const u8 gUnknown_83FE7DC[] = _("DEFENSE"); -const u8 gUnknown_83FE7E4[] = _("SP. ATK"); -const u8 gUnknown_83FE7EC[] = _("SP. DEF"); +static const u8 sText_MaxHP[] = _("{FONT_0}Max{FONT_2} HP"); +static const u8 sText_Attack[] = _("ATTACK "); +static const u8 sText_Defense[] = _("DEFENSE"); +static const u8 sText_SpAtk[] = _("SP. ATK"); +static const u8 sText_SpDef[] = _("SP. DEF"); -const u8 *const gUnknown_83FE7F4[] = { - gUnknown_83FE7C7, - gUnknown_83FE7E4, - gUnknown_83FE7D4, - gUnknown_83FE7EC, - gUnknown_83FE7DC, +// Unused +static const u8 *const sStatNamesTable2[] = +{ + sText_MaxHP, + sText_SpAtk, + sText_Attack, + sText_SpDef, + sText_Defense, sText_Speed }; @@ -1262,81 +1319,84 @@ const u8 gText_Paralysis[] = _("paralysis"); const u8 gText_Ice[] = _("ice"); const u8 gText_Confusion[] = _("confusion"); const u8 gText_Love[] = _("love"); -const u8 gUnknown_83FE859[] = _(" "); -const u8 gUnknown_83FE85C[] = _("\n"); -const u8 gUnknown_83FE85E[] = _("\n"); -const u8 gUnknown_83FE860[] = _(" is"); -const u8 gUnknown_83FE864[] = _(" is"); +const u8 gText_BattleTowerBan_Space[] = _(" "); +const u8 gText_BattleTowerBan_Newline1[] = _("\n"); +const u8 gText_BattleTowerBan_Newline2[] = _("\n"); +const u8 gText_BattleTowerBan_Is1[] = _(" is"); +const u8 gText_BattleTowerBan_Is2[] = _(" is"); const u8 gText_BadEgg[] = _("Bad EGG"); -const u8 gUnknown_83FE870[] = _("ミツル"); +const u8 gText_BattleWallyName[] = _("ミツル"); const u8 gText_Win[] = _("{HIGHLIGHT 0}Win"); const u8 gText_Loss[] = _("{HIGHLIGHT 0}Loss"); const u8 gText_Draw[] = _("{HIGHLIGHT 0}Draw"); static const u8 sText_SpaceIs[] = _(" is"); static const u8 sText_ApostropheS[] = _("'s"); -const u8 gUnknown_83FE892[] = _("a NORMAL move"); -const u8 gUnknown_83FE8A0[] = _("a FIGHTING move"); -const u8 gUnknown_83FE8B0[] = _("a FLYING move"); -const u8 gUnknown_83FE8BE[] = _("a POISON move"); -const u8 gUnknown_83FE8CC[] = _("a GROUND move"); -const u8 gUnknown_83FE8DA[] = _("a ROCK move"); -const u8 gUnknown_83FE8E6[] = _("a BUG move"); -const u8 gUnknown_83FE8F1[] = _("a GHOST move"); -const u8 gUnknown_83FE8FE[] = _("a STEEL move"); -const u8 gUnknown_83FE90B[] = _("a ??? move"); -const u8 gUnknown_83FE916[] = _("a FIRE move"); -const u8 gUnknown_83FE922[] = _("a WATER move"); -const u8 gUnknown_83FE92F[] = _("a GRASS move"); -const u8 gUnknown_83FE93C[] = _("an ELECTRIC move"); -const u8 gUnknown_83FE94D[] = _("a PSYCHIC move"); -const u8 gUnknown_83FE95C[] = _("an ICE move"); -const u8 gUnknown_83FE968[] = _("a DRAGON move"); -const u8 gUnknown_83FE976[] = _("a DARK move"); +const u8 gText_ANormalMove[] = _("a NORMAL move"); +const u8 gText_AFightingMove[] = _("a FIGHTING move"); +const u8 gText_AFlyingMove[] = _("a FLYING move"); +const u8 gText_APoisonMove[] = _("a POISON move"); +const u8 gText_AGroundMove[] = _("a GROUND move"); +const u8 gText_ARockMove[] = _("a ROCK move"); +const u8 gText_ABugMove[] = _("a BUG move"); +const u8 gText_AGhostMove[] = _("a GHOST move"); +const u8 gText_ASteelMove[] = _("a STEEL move"); +const u8 gText_AMysteryMove[] = _("a ??? move"); +const u8 gText_AFireMove[] = _("a FIRE move"); +const u8 gText_AWaterMove[] = _("a WATER move"); +const u8 gText_AGrassMove[] = _("a GRASS move"); +const u8 gText_AnElectricMove[] = _("an ELECTRIC move"); +const u8 gText_APsychicMove[] = _("a PSYCHIC move"); +const u8 gText_AnIceMove[] = _("an ICE move"); +const u8 gText_ADragonMove[] = _("a DRAGON move"); +const u8 gText_ADarkMove[] = _("a DARK move"); const u8 gText_TimeBoard[] = _("TIME BOARD"); const u8 gText_ClearTime[] = _("CLEAR TIME"); // Unused const u8 gText_XMinYZSec[] = _("{STR_VAR_1}MIN. {STR_VAR_2}.{STR_VAR_3}SEC."); -const u8 gUnknown_83FE9A9[] = _("1F"); -const u8 gUnknown_83FE9AC[] = _("2F"); -const u8 gUnknown_83FE9AF[] = _("3F"); -const u8 gUnknown_83FE9B2[] = _("4F"); -const u8 gUnknown_83FE9B5[] = _("5F"); -const u8 gUnknown_83FE9B8[] = _("6F"); -const u8 gUnknown_83FE9BB[] = _("7F"); -const u8 gUnknown_83FE9BE[] = _("8F"); +const u8 gText_Unused_1F[] = _("1F"); +const u8 gText_Unused_2F[] = _("2F"); +const u8 gText_Unused_3F[] = _("3F"); +const u8 gText_Unused_4F[] = _("4F"); +const u8 gText_Unused_5F[] = _("5F"); +const u8 gText_Unused_6F[] = _("6F"); +const u8 gText_Unused_7F[] = _("7F"); +const u8 gText_Unused_8F[] = _("8F"); -const u8 *const gTrainerTowerChallengeTypeTexts[NUM_TOWER_CHALLENGE_TYPES] = { +const u8 *const gTrainerTowerChallengeTypeTexts[NUM_TOWER_CHALLENGE_TYPES] = +{ gOtherText_Single, gOtherText_Double, gOtherText_Knockout, gOtherText_Mixed }; -const u8 gUnknown_83FE9D4[] = _("{PLAY_SE SE_FLEE}{B_TRAINER1_CLASS} {B_TRAINER1_NAME} fled!"); // +static const u8 sText_Trainer1Fled[] = _("{PLAY_SE SE_FLEE}{B_TRAINER1_CLASS} {B_TRAINER1_NAME} fled!"); static const u8 sText_PlayerLostAgainstTrainer1[] = _("Player lost against\n{B_TRAINER1_CLASS} {B_TRAINER1_NAME}!"); static const u8 sText_PlayerBattledToDrawTrainer1[] = _("Player battled to a draw against\n{B_TRAINER1_CLASS} {B_TRAINER1_NAME}!"); -static const u8 *const sATypeMove_Table[] = { - gUnknown_83FE892, - gUnknown_83FE8A0, - gUnknown_83FE8B0, - gUnknown_83FE8BE, - gUnknown_83FE8CC, - gUnknown_83FE8DA, - gUnknown_83FE8E6, - gUnknown_83FE8F1, - gUnknown_83FE8FE, - gUnknown_83FE90B, - gUnknown_83FE916, - gUnknown_83FE922, - gUnknown_83FE92F, - gUnknown_83FE93C, - gUnknown_83FE94D, - gUnknown_83FE95C, - gUnknown_83FE968, - gUnknown_83FE976 +static const u8 *const sATypeMove_Table[NUMBER_OF_MON_TYPES] = +{ + [TYPE_NORMAL] = gText_ANormalMove, + [TYPE_FIGHTING] = gText_AFightingMove, + [TYPE_FLYING] = gText_AFlyingMove, + [TYPE_POISON] = gText_APoisonMove, + [TYPE_GROUND] = gText_AGroundMove, + [TYPE_ROCK] = gText_ARockMove, + [TYPE_BUG] = gText_ABugMove, + [TYPE_GHOST] = gText_AGhostMove, + [TYPE_STEEL] = gText_ASteelMove, + [TYPE_MYSTERY] = gText_AMysteryMove, + [TYPE_FIRE] = gText_AFireMove, + [TYPE_WATER] = gText_AWaterMove, + [TYPE_GRASS] = gText_AGrassMove, + [TYPE_ELECTRIC] = gText_AnElectricMove, + [TYPE_PSYCHIC] = gText_APsychicMove, + [TYPE_ICE] = gText_AnIceMove, + [TYPE_DRAGON] = gText_ADragonMove, + [TYPE_DARK] = gText_ADarkMove }; -static const u16 sGrammarMoveUsedTable[] = { +static const u16 sGrammarMoveUsedTable[] = +{ MOVE_SWORDS_DANCE, MOVE_STRENGTH, MOVE_GROWTH, @@ -1460,7 +1520,6 @@ static const u16 sGrammarMoveUsedTable[] = { MOVE_NONE }; -// code void BufferStringBattle(u16 stringId) { s32 i; @@ -1499,7 +1558,7 @@ void BufferStringBattle(u16 stringId) } else { - if (gTrainerBattleOpponent_A == TRAINER_OPPONENT_C00) + if (gTrainerBattleOpponent_A == TRAINER_UNION_ROOM) stringPtr = sText_Trainer1WantsToBattle; else stringPtr = sText_LinkTrainerWantsToBattle; @@ -1559,7 +1618,7 @@ void BufferStringBattle(u16 stringId) { if (!(gBattleTypeFlags & BATTLE_TYPE_LINK)) stringPtr = sText_Trainer1SentOutPkmn; - else if (gTrainerBattleOpponent_A == TRAINER_OPPONENT_C00) + else if (gTrainerBattleOpponent_A == TRAINER_UNION_ROOM) stringPtr = sText_Trainer1SentOutPkmn; else stringPtr = sText_LinkTrainerSentOutPkmn; @@ -1611,7 +1670,7 @@ void BufferStringBattle(u16 stringId) { if (gBattleTypeFlags & BATTLE_TYPE_MULTI) stringPtr = sText_LinkTrainerMultiSentOutPkmn; - else if (gTrainerBattleOpponent_A == TRAINER_OPPONENT_C00) + else if (gTrainerBattleOpponent_A == TRAINER_UNION_ROOM) stringPtr = sText_Trainer1SentOutPkmn2; else stringPtr = sText_LinkTrainerSentOutPkmn2; @@ -1644,8 +1703,8 @@ void BufferStringBattle(u16 stringId) stringPtr = sText_GotAwaySafely; else if (gBattleTypeFlags & BATTLE_TYPE_MULTI) stringPtr = sText_TwoWildFled; - else if (gTrainerBattleOpponent_A == TRAINER_OPPONENT_C00) - stringPtr = gUnknown_83FE9D4; + else if (gTrainerBattleOpponent_A == TRAINER_UNION_ROOM) + stringPtr = sText_Trainer1Fled; else stringPtr = sText_WildFled; } @@ -1669,7 +1728,7 @@ void BufferStringBattle(u16 stringId) break; } } - else if (gTrainerBattleOpponent_A == TRAINER_OPPONENT_C00) + else if (gTrainerBattleOpponent_A == TRAINER_UNION_ROOM) { switch (gBattleTextBuff1[0]) { @@ -1702,7 +1761,7 @@ void BufferStringBattle(u16 stringId) } break; default: // load a string from the table - if (stringId >= BATTLESTRINGS_COUNT + BATTLESTRINGS_TABLE_START) + if (stringId >= BATTLESTRINGS_COUNT) { gDisplayedStringBattle[0] = EOS; return; @@ -1770,7 +1829,7 @@ static const u8 *TryGetStatusString(u8 *src) { \ GetMonData(&gPlayerParty[monIndex], MON_DATA_NICKNAME, text); \ } \ - StringGetEnd10(text); \ + StringGet_Nickname(text); \ toCpy = text; u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst) @@ -1833,49 +1892,49 @@ u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst) case B_TXT_PLAYER_MON1_NAME: // first player poke name GetMonData(&gPlayerParty[gBattlerPartyIndexes[GetBattlerAtPosition(B_POSITION_PLAYER_LEFT)]], MON_DATA_NICKNAME, text); - StringGetEnd10(text); + StringGet_Nickname(text); toCpy = text; break; case B_TXT_OPPONENT_MON1_NAME: // first enemy poke name GetMonData(&gEnemyParty[gBattlerPartyIndexes[GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT)]], MON_DATA_NICKNAME, text); - StringGetEnd10(text); + StringGet_Nickname(text); toCpy = text; break; case B_TXT_PLAYER_MON2_NAME: // second player poke name GetMonData(&gPlayerParty[gBattlerPartyIndexes[GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT)]], MON_DATA_NICKNAME, text); - StringGetEnd10(text); + StringGet_Nickname(text); toCpy = text; break; case B_TXT_OPPONENT_MON2_NAME: // second enemy poke name GetMonData(&gEnemyParty[gBattlerPartyIndexes[GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT)]], MON_DATA_NICKNAME, text); - StringGetEnd10(text); + StringGet_Nickname(text); toCpy = text; break; case B_TXT_LINK_PLAYER_MON1_NAME: // link first player poke name GetMonData(&gPlayerParty[gBattlerPartyIndexes[gLinkPlayers[multiplayerId].id]], MON_DATA_NICKNAME, text); - StringGetEnd10(text); + StringGet_Nickname(text); toCpy = text; break; case B_TXT_LINK_OPPONENT_MON1_NAME: // link first opponent poke name GetMonData(&gEnemyParty[gBattlerPartyIndexes[gLinkPlayers[multiplayerId].id ^ 1]], MON_DATA_NICKNAME, text); - StringGetEnd10(text); + StringGet_Nickname(text); toCpy = text; break; case B_TXT_LINK_PLAYER_MON2_NAME: // link second player poke name GetMonData(&gPlayerParty[gBattlerPartyIndexes[gLinkPlayers[multiplayerId].id ^ 2]], MON_DATA_NICKNAME, text); - StringGetEnd10(text); + StringGet_Nickname(text); toCpy = text; break; case B_TXT_LINK_OPPONENT_MON2_NAME: // link second opponent poke name GetMonData(&gEnemyParty[gBattlerPartyIndexes[gLinkPlayers[multiplayerId].id ^ 3]], MON_DATA_NICKNAME, text); - StringGetEnd10(text); + StringGet_Nickname(text); toCpy = text; break; case B_TXT_ATK_NAME_WITH_PREFIX_MON1: // attacker name with prefix, only battlerId 0/1 @@ -1892,7 +1951,7 @@ u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst) &gEnemyParty[gBattlerPartyIndexes[GetBattlerAtPosition(GET_BATTLER_SIDE(gBattlerAttacker)) + 2]], MON_DATA_NICKNAME, text); - StringGetEnd10(text); + StringGet_Nickname(text); toCpy = text; break; case B_TXT_ATK_NAME_WITH_PREFIX: // attacker name with prefix @@ -1981,9 +2040,9 @@ u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst) toCpy = gAbilityNames[sBattlerAbilities[gEffectBattler]]; break; case B_TXT_TRAINER1_CLASS: // trainer class name - if (gTrainerBattleOpponent_A == SECRET_BASE_OPPONENT) + if (gTrainerBattleOpponent_A == TRAINER_SECRET_BASE) toCpy = gTrainerClassNames[GetSecretBaseTrainerNameIndex()]; - else if (gTrainerBattleOpponent_A == TRAINER_OPPONENT_C00) + else if (gTrainerBattleOpponent_A == TRAINER_UNION_ROOM) toCpy = gTrainerClassNames[GetUnionRoomTrainerClass()]; else if (gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER) toCpy = gTrainerClassNames[GetBattleTowerTrainerClassNameId()]; @@ -1995,14 +2054,14 @@ u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst) toCpy = gTrainerClassNames[gTrainers[gTrainerBattleOpponent_A].trainerClass]; break; case B_TXT_TRAINER1_NAME: // trainer1 name - if (gTrainerBattleOpponent_A == SECRET_BASE_OPPONENT) + if (gTrainerBattleOpponent_A == TRAINER_SECRET_BASE) { for (i = 0; i < (s32)NELEMS(gBattleResources->secretBase->trainerName); i++) text[i] = gBattleResources->secretBase->trainerName[i]; text[i] = EOS; toCpy = text; } - if (gTrainerBattleOpponent_A == TRAINER_OPPONENT_C00) + if (gTrainerBattleOpponent_A == TRAINER_UNION_ROOM) { toCpy = gLinkPlayers[multiplayerId ^ BIT_SIDE].name; } @@ -2129,29 +2188,24 @@ u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst) // missing if (toCpy != NULL) check while (*toCpy != EOS) { - dst[dstId] = *toCpy; - dstId++; + dst[dstId++] = *toCpy; toCpy++; } if (*src == B_TXT_TRAINER1_LOSE_TEXT || *src == B_TXT_TRAINER1_WIN_TEXT || *src == B_TXT_TRAINER2_LOSE_TEXT || *src == B_TXT_TRAINER2_WIN_TEXT) { - dst[dstId] = EXT_CTRL_CODE_BEGIN; - dstId++; - dst[dstId] = 9; - dstId++; + dst[dstId++] = EXT_CTRL_CODE_BEGIN; + dst[dstId++] = EXT_CTRL_CODE_WAIT_BUTTON; } } else { - dst[dstId] = *src; - dstId++; + dst[dstId++] = *src; } src++; } - dst[dstId] = *src; - dstId++; + dst[dstId++] = *src; return dstId; } @@ -2211,7 +2265,7 @@ static void ExpandBattleTextBuffPlaceholders(const u8 *src, u8 *dst) GetMonData(&gEnemyParty[src[srcId + 2]], MON_DATA_NICKNAME, text); } - StringGetEnd10(text); + StringGet_Nickname(text); StringAppend(dst, text); srcId += 3; break; @@ -2228,7 +2282,7 @@ static void ExpandBattleTextBuffPlaceholders(const u8 *src, u8 *dst) GetMonData(&gPlayerParty[src[srcId + 2]], MON_DATA_NICKNAME, dst); else GetMonData(&gEnemyParty[src[srcId + 2]], MON_DATA_NICKNAME, dst); - StringGetEnd10(dst); + StringGet_Nickname(dst); srcId += 3; break; case B_BUFF_NEGATIVE_FLAVOR: // flavor table @@ -2351,31 +2405,306 @@ static void ChooseTypeOfMoveUsedString(u8 *dst) } static const struct BattleWindowText sTextOnWindowsInfo_Normal[] = { - {PIXEL_FILL(0xf), 2, 0x02, 2, 0, 2, 1, 0x1, 0xf, 0x6}, - {PIXEL_FILL(0xf), 2, 0x02, 2, 0, 2, 0, 0x1, 0xf, 0x6}, - {PIXEL_FILL(0xe), 1, 0x00, 2, 0, 2, 0, 0xd, 0xe, 0xf}, - {PIXEL_FILL(0xe), 0, 0x00, 1, 0, 0, 0, 0xd, 0xe, 0xf}, - {PIXEL_FILL(0xe), 0, 0x00, 1, 0, 0, 0, 0xd, 0xe, 0xf}, - {PIXEL_FILL(0xe), 0, 0x00, 1, 0, 0, 0, 0xd, 0xe, 0xf}, - {PIXEL_FILL(0xe), 0, 0x00, 1, 0, 0, 0, 0xd, 0xe, 0xf}, - {PIXEL_FILL(0xe), 0, 0x00, 2, 0, 0, 0, 0xc, 0xe, 0xb}, - {PIXEL_FILL(0xe), 0, 0x00, 2, 0, 0, 0, 0xd, 0xe, 0xf}, - {PIXEL_FILL(0xe), 1, 0x0a, 2, 0, 2, 0, 0xc, 0xe, 0xb}, - {PIXEL_FILL(0xe), 1, 0x00, 2, 0, 2, 0, 0xd, 0xe, 0xf}, - {PIXEL_FILL(0xe), 1, 0x00, 2, 0, 2, 0, 0xd, 0xe, 0xf}, - {PIXEL_FILL(0xe), 2, 0x00, 0, 0, 0, 0, 0xd, 0xe, 0xf}, - {PIXEL_FILL(0x0), 0, 0x20, 0, 0, 0, 0, 0x1, 0x0, 0x2}, - {PIXEL_FILL(0xe), 2, 0x00, 2, 1, 2, 0, 0xd, 0xe, 0xf}, - {PIXEL_FILL(0xe), 2, 0x00, 2, 0, 0, 0, 0xd, 0xe, 0xf}, - {PIXEL_FILL(0xe), 2, 0x00, 2, 0, 0, 0, 0xd, 0xe, 0xf}, - {PIXEL_FILL(0xe), 2, 0x00, 2, 0, 0, 0, 0xd, 0xe, 0xf}, - {PIXEL_FILL(0xe), 2, 0x00, 2, 0, 0, 0, 0xd, 0xe, 0xf}, - {PIXEL_FILL(0xe), 2, 0x00, 2, 0, 0, 0, 0xd, 0xe, 0xf}, - {PIXEL_FILL(0xe), 2, 0x00, 2, 0, 0, 0, 0xd, 0xe, 0xf}, - {PIXEL_FILL(0x0), 2, 0x00, 2, 0, 0, 0, 0x1, 0x0, 0x6}, - {PIXEL_FILL(0x0), 2, 0x00, 2, 0, 0, 0, 0x1, 0x0, 0x6}, - {PIXEL_FILL(0x0), 2, 0x00, 2, 0, 0, 0, 0x1, 0x0, 0x6}, - {PIXEL_FILL(0x1), 4, 0x00, 1, 0, 1, 1, 0x2, 0x1, 0x3} + [B_WIN_MSG] = { + .fillValue = PIXEL_FILL(0xf), + .fontId = FONT_2, + .x = 2, + .y = 2, + .letterSpacing = 0, + .lineSpacing = 2, + .speed = 1, + .fgColor = 1, + .bgColor = 15, + .shadowColor = 6, + }, + [B_WIN_ACTION_PROMPT] = { + .fillValue = PIXEL_FILL(0xf), + .fontId = FONT_2, + .x = 2, + .y = 2, + .letterSpacing = 0, + .lineSpacing = 2, + .speed = 0, + .fgColor = 1, + .bgColor = 15, + .shadowColor = 6, + }, + [B_WIN_ACTION_MENU] = { + .fillValue = PIXEL_FILL(0xe), + .fontId = FONT_1, + .x = 0, + .y = 2, + .letterSpacing = 0, + .lineSpacing = 2, + .speed = 0, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, + }, + [B_WIN_MOVE_NAME_1] = { + .fillValue = PIXEL_FILL(0xe), + .fontId = FONT_0, + .x = 0, + .y = 1, + .letterSpacing = 0, + .lineSpacing = 0, + .speed = 0, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, + }, + [B_WIN_MOVE_NAME_2] = { + .fillValue = PIXEL_FILL(0xe), + .fontId = FONT_0, + .x = 0, + .y = 1, + .letterSpacing = 0, + .lineSpacing = 0, + .speed = 0, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, + }, + [B_WIN_MOVE_NAME_3] = { + .fillValue = PIXEL_FILL(0xe), + .fontId = FONT_0, + .x = 0, + .y = 1, + .letterSpacing = 0, + .lineSpacing = 0, + .speed = 0, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, + }, + [B_WIN_MOVE_NAME_4] = { + .fillValue = PIXEL_FILL(0xe), + .fontId = FONT_0, + .x = 0, + .y = 1, + .letterSpacing = 0, + .lineSpacing = 0, + .speed = 0, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, + }, + [B_WIN_PP] = { + .fillValue = PIXEL_FILL(0xe), + .fontId = FONT_0, + .x = 0, + .y = 2, + .letterSpacing = 0, + .lineSpacing = 0, + .speed = 0, + .fgColor = 12, + .bgColor = 14, + .shadowColor = 11, + }, + [B_WIN_MOVE_TYPE] = { + .fillValue = PIXEL_FILL(0xe), + .fontId = FONT_0, + .x = 0, + .y = 2, + .letterSpacing = 0, + .lineSpacing = 0, + .speed = 0, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, + }, + [B_WIN_PP_REMAINING] = { + .fillValue = PIXEL_FILL(0xe), + .fontId = FONT_1, + .x = 10, + .y = 2, + .letterSpacing = 0, + .lineSpacing = 2, + .speed = 0, + .fgColor = 12, + .bgColor = 14, + .shadowColor = 11, + }, + [B_WIN_DUMMY] = { + .fillValue = PIXEL_FILL(0xe), + .fontId = FONT_1, + .x = 0, + .y = 2, + .letterSpacing = 0, + .lineSpacing = 2, + .speed = 0, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, + }, + [B_WIN_SWITCH_PROMPT] = { + .fillValue = PIXEL_FILL(0xe), + .fontId = FONT_1, + .x = 0, + .y = 2, + .letterSpacing = 0, + .lineSpacing = 2, + .speed = 0, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, + }, + [B_WIN_LEVEL_UP_BOX] = { + .fillValue = PIXEL_FILL(0xe), + .fontId = FONT_2, + .x = 0, + .y = 0, + .letterSpacing = 0, + .lineSpacing = 0, + .speed = 0, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, + }, + [B_WIN_LEVEL_UP_BANNER] = { + .fillValue = PIXEL_FILL(0x0), + .fontId = FONT_0, + .x = 0x20, + .y = 0, + .letterSpacing = 0, + .lineSpacing = 0, + .speed = 0, + .fgColor = 1, + .bgColor = 0, + .shadowColor = 2, + }, + [B_WIN_YESNO] = { + .fillValue = PIXEL_FILL(0xe), + .fontId = FONT_2, + .x = 0, + .y = 2, + .letterSpacing = 1, + .lineSpacing = 2, + .speed = 0, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, + }, + [B_WIN_VS_PLAYER] = { + .fillValue = PIXEL_FILL(0xe), + .fontId = FONT_2, + .x = 0, + .y = 2, + .letterSpacing = 0, + .lineSpacing = 0, + .speed = 0, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, + }, + [B_WIN_VS_OPPONENT] = { + .fillValue = PIXEL_FILL(0xe), + .fontId = FONT_2, + .x = 0, + .y = 2, + .letterSpacing = 0, + .lineSpacing = 0, + .speed = 0, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, + }, + [B_WIN_VS_MULTI_PLAYER_1] = { + .fillValue = PIXEL_FILL(0xe), + .fontId = FONT_2, + .x = 0, + .y = 2, + .letterSpacing = 0, + .lineSpacing = 0, + .speed = 0, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, + }, + [B_WIN_VS_MULTI_PLAYER_2] = { + .fillValue = PIXEL_FILL(0xe), + .fontId = FONT_2, + .x = 0, + .y = 2, + .letterSpacing = 0, + .lineSpacing = 0, + .speed = 0, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, + }, + [B_WIN_VS_MULTI_PLAYER_3] = { + .fillValue = PIXEL_FILL(0xe), + .fontId = FONT_2, + .x = 0, + .y = 2, + .letterSpacing = 0, + .lineSpacing = 0, + .speed = 0, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, + }, + [B_WIN_VS_MULTI_PLAYER_4] = { + .fillValue = PIXEL_FILL(0xe), + .fontId = FONT_2, + .x = 0, + .y = 2, + .letterSpacing = 0, + .lineSpacing = 0, + .speed = 0, + .fgColor = 13, + .bgColor = 14, + .shadowColor = 15, + }, + [B_WIN_VS_OUTCOME_DRAW] = { + .fillValue = PIXEL_FILL(0x0), + .fontId = FONT_2, + .x = 0, + .y = 2, + .letterSpacing = 0, + .lineSpacing = 0, + .speed = 0, + .fgColor = 1, + .bgColor = 0, + .shadowColor = 6, + }, + [B_WIN_VS_OUTCOME_LEFT] = { + .fillValue = PIXEL_FILL(0x0), + .fontId = FONT_2, + .x = 0, + .y = 2, + .letterSpacing = 0, + .lineSpacing = 0, + .speed = 0, + .fgColor = 1, + .bgColor = 0, + .shadowColor = 6, + }, + [B_WIN_VS_OUTCOME_RIGHT] = { + .fillValue = PIXEL_FILL(0x0), + .fontId = FONT_2, + .x = 0, + .y = 2, + .letterSpacing = 0, + .lineSpacing = 0, + .speed = 0, + .fgColor = 1, + .bgColor = 0, + .shadowColor = 6, + }, + [B_WIN_OAK_OLD_MAN] = { + .fillValue = PIXEL_FILL(0x1), + .fontId = FONT_4, + .x = 0, + .y = 1, + .letterSpacing = 0, + .lineSpacing = 1, + .speed = 1, + .fgColor = 2, + .bgColor = 1, + .shadowColor = 3, + } }; static const u8 sNpcTextColorToFont[] = @@ -2409,11 +2738,18 @@ void BattlePutTextOnWindow(const u8 *text, u8 windowId) { } switch (windowId) { - case 15 ... 20: + case B_WIN_VS_PLAYER: + case B_WIN_VS_OPPONENT: + case B_WIN_VS_MULTI_PLAYER_1: + case B_WIN_VS_MULTI_PLAYER_2: + case B_WIN_VS_MULTI_PLAYER_3: + case B_WIN_VS_MULTI_PLAYER_4: x = (48 - GetStringWidth(sTextOnWindowsInfo_Normal[windowId].fontId, text, sTextOnWindowsInfo_Normal[windowId].letterSpacing)) / 2; break; - case 21 ... 23: + case B_WIN_VS_OUTCOME_DRAW: + case B_WIN_VS_OUTCOME_LEFT: + case B_WIN_VS_OUTCOME_RIGHT: x = (64 - GetStringWidth(sTextOnWindowsInfo_Normal[windowId].fontId, text, sTextOnWindowsInfo_Normal[windowId].letterSpacing)) / 2; break; @@ -2435,17 +2771,17 @@ void BattlePutTextOnWindow(const u8 *text, u8 windowId) { printerTemplate.fgColor = sTextOnWindowsInfo_Normal[windowId].fgColor; printerTemplate.bgColor = sTextOnWindowsInfo_Normal[windowId].bgColor; printerTemplate.shadowColor = sTextOnWindowsInfo_Normal[windowId].shadowColor; - if (windowId == 24) + if (windowId == B_WIN_OAK_OLD_MAN) gTextFlags.useAlternateDownArrow = FALSE; else gTextFlags.useAlternateDownArrow = TRUE; - if ((gBattleTypeFlags & BATTLE_TYPE_LINK) || ((gBattleTypeFlags & BATTLE_TYPE_POKEDUDE) && windowId != 24)) + if ((gBattleTypeFlags & BATTLE_TYPE_LINK) || ((gBattleTypeFlags & BATTLE_TYPE_POKEDUDE) && windowId != B_WIN_OAK_OLD_MAN)) gTextFlags.autoScroll = TRUE; else gTextFlags.autoScroll = FALSE; - if (windowId == 0 || windowId == 24) + if (windowId == B_WIN_MSG || windowId == B_WIN_OAK_OLD_MAN) { if (gBattleTypeFlags & BATTLE_TYPE_LINK) speed = 1; @@ -2469,7 +2805,10 @@ void BattlePutTextOnWindow(const u8 *text, u8 windowId) { bool8 BattleStringShouldBeColored(u16 stringId) { - if (stringId == STRINGID_TRAINER1LOSETEXT || stringId == STRINGID_TRAINER2CLASS || stringId == STRINGID_TRAINER1WINTEXT || stringId == STRINGID_TRAINER2NAME) + if (stringId == STRINGID_TRAINER1LOSETEXT + || stringId == STRINGID_TRAINER2LOSETEXT + || stringId == STRINGID_TRAINER1WINTEXT + || stringId == STRINGID_TRAINER2WINTEXT) return TRUE; return FALSE; } @@ -2477,7 +2816,7 @@ bool8 BattleStringShouldBeColored(u16 stringId) void SetPpNumbersPaletteInMoveSelection(void) { struct ChooseMoveStruct *chooseMoveStruct = (struct ChooseMoveStruct *)(&gBattleBufferA[gActiveBattler][4]); - const u16 *palPtr = gUnknown_8D2FBB4; + const u16 *palPtr = gPPTextPalette; u8 var = GetCurrentPpToMaxPpState(chooseMoveStruct->currentPp[gMoveSelectionCursor[gActiveBattler]], chooseMoveStruct->maxPp[gMoveSelectionCursor[gActiveBattler]]); diff --git a/src/battle_records.c b/src/battle_records.c index 4bde6aec9..cc3acd38f 100644 --- a/src/battle_records.c +++ b/src/battle_records.c @@ -109,7 +109,7 @@ static void MainCB2_SetUp(void) break; case 3: LoadFrameGfxOnBg(3); - LoadPalette(stdpal_get(0), 0xF0, 0x20); + LoadPalette(GetTextWindowPalette(0), 0xF0, 0x20); gMain.state++; break; case 4: @@ -440,7 +440,7 @@ static void UpdateBattleOutcomeOnTrainerCards(s32 battlerId) } } -void TryRecordLinkBattleOutcome(s32 battlerId) +void UpdatePlayerLinkBattleRecords(s32 battlerId) { if (gSaveBlock1Ptr->location.mapGroup != MAP_GROUP(UNION_ROOM) || gSaveBlock1Ptr->location.mapNum != MAP_NUM(UNION_ROOM)) { diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 92dc9ecf4..9afeb1e58 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -23,7 +23,6 @@ #include "battle_anim.h" #include "battle_ai_script_commands.h" #include "battle_scripts.h" -#include "battle_string_ids.h" #include "reshow_battle_screen.h" #include "battle_controllers.h" #include "battle_interface.h" @@ -674,7 +673,7 @@ static const u8 sRubyLevelUpStatBoxStats[] = static const struct OamData sOamData_MonIconOnLvlUpBanner = { .y = 0, - .affineMode = 0, + .affineMode = ST_OAM_AFFINE_OFF, .objMode = 0, .mosaic = FALSE, .bpp = 0, @@ -814,8 +813,8 @@ static const u8 sBallCatchBonuses[] = [ITEM_SAFARI_BALL - ITEM_ULTRA_BALL] = 15 }; -// not used -static const u32 gUnknown_8250898 = 0xFF7EAE60; +// unknown unused data +static const u32 sUnused = 0xFF7EAE60; static void Cmd_attackcanceler(void) { @@ -6125,7 +6124,7 @@ static void Cmd_various(void) gHitMarker &= ~HITMARKER_PLAYER_FAINTED; } break; - case VARIOUS_CASE_8: + case VARIOUS_GET_BATTLERS_FOR_RECALL: i = 0; // redundant gBattleCommunication[MULTISTRING_CHOOSER] = 0; gActiveBattler = 1; diff --git a/src/battle_setup.c b/src/battle_setup.c index 9f99defd5..c056bba39 100644 --- a/src/battle_setup.c +++ b/src/battle_setup.c @@ -236,7 +236,7 @@ void StartWildBattle(void) static void DoStandardWildBattle(void) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); FreezeObjectEvents(); StopPlayerAvatar(); gMain.savedCallback = CB2_EndWildBattle; @@ -248,7 +248,7 @@ static void DoStandardWildBattle(void) void StartRoamerBattle(void) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); FreezeObjectEvents(); StopPlayerAvatar(); gMain.savedCallback = CB2_EndWildBattle; @@ -260,7 +260,7 @@ void StartRoamerBattle(void) static void DoSafariBattle(void) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); FreezeObjectEvents(); StopPlayerAvatar(); gMain.savedCallback = CB2_EndSafariBattle; @@ -270,7 +270,7 @@ static void DoSafariBattle(void) static void DoGhostBattle(void) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); FreezeObjectEvents(); StopPlayerAvatar(); gMain.savedCallback = CB2_EndWildBattle; @@ -291,7 +291,7 @@ static void DoTrainerBattle(void) void StartOldManTutorialBattle(void) { CreateMaleMon(&gEnemyParty[0], SPECIES_WEEDLE, 5); - ScriptContext2_Enable(); + LockPlayerFieldControls(); gMain.savedCallback = CB2_ReturnToFieldContinueScriptPlayMapMusic; gBattleTypeFlags = BATTLE_TYPE_OLD_MAN_TUTORIAL; CreateBattleStartTask(B_TRANSITION_SLICED_SCREEN, 0); @@ -299,7 +299,7 @@ void StartOldManTutorialBattle(void) void StartScriptedWildBattle(void) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); gMain.savedCallback = CB2_EndScriptedWildBattle; gBattleTypeFlags = BATTLE_TYPE_WILD_SCRIPTED; CreateBattleStartTask(GetWildBattleTransition(), 0); @@ -309,7 +309,7 @@ void StartScriptedWildBattle(void) void StartMarowakBattle(void) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); gMain.savedCallback = CB2_EndMarowakBattle; if (CheckBagHasItem(ITEM_SILPH_SCOPE, 1)) { @@ -328,7 +328,7 @@ void StartMarowakBattle(void) void StartSouthernIslandBattle(void) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); gMain.savedCallback = CB2_EndScriptedWildBattle; gBattleTypeFlags = BATTLE_TYPE_LEGENDARY; CreateBattleStartTask(GetWildBattleTransition(), 0); @@ -340,7 +340,7 @@ void StartLegendaryBattle(void) { u16 species; - ScriptContext2_Enable(); + LockPlayerFieldControls(); gMain.savedCallback = CB2_EndScriptedWildBattle; gBattleTypeFlags = BATTLE_TYPE_LEGENDARY | BATTLE_TYPE_LEGENDARY_FRLG; species = GetMonData(&gEnemyParty[0], MON_DATA_SPECIES); @@ -369,7 +369,7 @@ void StartLegendaryBattle(void) void StartGroudonKyogreBattle(void) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); gMain.savedCallback = CB2_EndScriptedWildBattle; gBattleTypeFlags = BATTLE_TYPE_LEGENDARY | BATTLE_TYPE_KYOGRE_GROUDON; if (gGameVersion == VERSION_FIRE_RED) @@ -382,7 +382,7 @@ void StartGroudonKyogreBattle(void) void StartRegiBattle(void) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); gMain.savedCallback = CB2_EndScriptedWildBattle; gBattleTypeFlags = BATTLE_TYPE_LEGENDARY | BATTLE_TYPE_REGI; CreateBattleStartTask(B_TRANSITION_BLUR, MUS_RS_VS_TRAINER); @@ -390,20 +390,20 @@ void StartRegiBattle(void) IncrementGameStat(GAME_STAT_WILD_BATTLES); } -// not used -static void sub_807FAF8(void) +// Unused +static void EndPokedudeBattle(void) { LoadPlayerParty(); CB2_EndWildBattle(); } -// not used -static void sub_807FB08(void) +// Unused +static void StartPokedudeBattle(void) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); FreezeObjectEvents(); StopPlayerAvatar(); - gMain.savedCallback = sub_807FAF8; + gMain.savedCallback = EndPokedudeBattle; SavePlayerParty(); InitPokedudePartyAndOpponent(); CreateBattleStartTask(GetWildBattleTransition(), 0); @@ -823,8 +823,8 @@ void ConfigureAndSetUpOneTrainerBattle(u8 trainerEventObjId, const u8 *trainerSc gSelectedObjectEvent = trainerEventObjId; gSpecialVar_LastTalked = gObjectEvents[trainerEventObjId].localId; BattleSetup_ConfigureTrainerBattle(trainerScript + 1); - ScriptContext1_SetupScript(EventScript_DoTrainerBattleFromApproach); - ScriptContext2_Enable(); + ScriptContext_SetupScript(EventScript_DoTrainerBattleFromApproach); + LockPlayerFieldControls(); } bool32 GetTrainerFlagFromScriptPointer(const u8 *data) @@ -889,7 +889,7 @@ void StartTrainerBattle(void) gBattleTypeFlags |= BATTLE_TYPE_FIRST_BATTLE; gMain.savedCallback = CB2_EndTrainerBattle; DoTrainerBattle(); - ScriptContext1_Stop(); + ScriptContext_Stop(); } static void CB2_EndTrainerBattle(void) @@ -964,7 +964,7 @@ void StartRematchBattle(void) gBattleTypeFlags = BATTLE_TYPE_TRAINER; gMain.savedCallback = CB2_EndRematchBattle; DoTrainerBattle(); - ScriptContext1_Stop(); + ScriptContext_Stop(); } void ShowTrainerIntroSpeech(void) diff --git a/src/battle_tower.c b/src/battle_tower.c index 5c6672f6e..9ec6d3838 100644 --- a/src/battle_tower.c +++ b/src/battle_tower.c @@ -41,13 +41,14 @@ static u16 GetCurrentBattleTowerWinStreak(u8 levelType); static void SetEReaderTrainerChecksum(struct BattleTowerEReaderTrainer * eReaderTrainer); static void PrintEReaderTrainerFarewellMessage(void); -const u8 unref_83FFAAC[] = { - 0x05, 0x04, 0x01, 0x10, 0x04, 0x02, 0x05, 0x06, - 0x03, 0x10, 0x06, 0x04, 0x00, 0x01, 0x02, 0x03, - 0x00, 0x02, 0x03 +// unknown unused data +static const u8 sUnused[] = { + 5, 4, 1, 16, 4, 2, 5, 6, + 3, 16, 6, 4, 0, 1, 2, 3, + 0, 2, 3 }; -const u8 unref_83FFABF[] = _("100"); +static const u8 sText_100[] = _("100"); static const struct BattleTowerTrainer sBattleTowerTrainers[] = { @@ -717,21 +718,21 @@ static u8 AppendBattleTowerBannedSpeciesName(u16 species, u8 count) if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(species), FLAG_GET_CAUGHT)) { if (count == 0) - StringAppend(gStringVar1, gUnknown_83FE859); + StringAppend(gStringVar1, gText_BattleTowerBan_Space); count++; StringAppend(gStringVar1, gSpeciesNames[species]); switch (count) { case 2: - StringAppend(gStringVar1, gUnknown_83FE85E); + StringAppend(gStringVar1, gText_BattleTowerBan_Newline2); break; case 5: case 8: case 11: - StringAppend(gStringVar1, gUnknown_83FE85C); + StringAppend(gStringVar1, gText_BattleTowerBan_Newline1); break; default: - StringAppend(gStringVar1, gUnknown_83FE859); + StringAppend(gStringVar1, gText_BattleTowerBan_Space); break; } } @@ -815,9 +816,9 @@ void CheckPartyBattleTowerBanlist(void) i = StringLength(gStringVar1); gStringVar1[i - 1] = EOS; if (counter < 3) - StringAppend(gStringVar1, gUnknown_83FE860); + StringAppend(gStringVar1, gText_BattleTowerBan_Is1); else - StringAppend(gStringVar1, gUnknown_83FE864); + StringAppend(gStringVar1, gText_BattleTowerBan_Is2); } else { @@ -1119,7 +1120,7 @@ static void SetPlayerBattleTowerRecord(void) playerRecord->trainerClass = trainerClass; CopyTrainerId(playerRecord->trainerId, gSaveBlock2Ptr->playerTrainerId); - StringCopy7(playerRecord->name, gSaveBlock2Ptr->playerName); + StringCopy_PlayerName(playerRecord->name, gSaveBlock2Ptr->playerName); playerRecord->winStreak = GetCurrentBattleTowerWinStreak(battleTowerLevelType); @@ -1310,7 +1311,7 @@ static void Debug_FillEReaderTrainerWithPlayerData(void) } CopyTrainerId(ereaderTrainer->trainerId, gSaveBlock2Ptr->playerTrainerId); - StringCopy7(ereaderTrainer->name, gSaveBlock2Ptr->playerName); + StringCopy_PlayerName(ereaderTrainer->name, gSaveBlock2Ptr->playerName); ereaderTrainer->winStreak = 1; diff --git a/src/battle_transition.c b/src/battle_transition.c index 21d732aa5..fc164b1b9 100644 --- a/src/battle_transition.c +++ b/src/battle_transition.c @@ -478,7 +478,7 @@ static const struct SpriteTemplate sSpriteTemplate_SlidingPokeball = static const struct OamData sOamData_Unused = { .y = 0, - .affineMode = 0, + .affineMode = ST_OAM_AFFINE_OFF, .objMode = 0, .mosaic = FALSE, .bpp = 0, @@ -1076,7 +1076,7 @@ bool8 FldEff_Pokeball(void) u8 spriteId = CreateSpriteAtEnd(&sSpriteTemplate_SlidingPokeball, gFieldEffectArguments[0], gFieldEffectArguments[1], 0); gSprites[spriteId].oam.priority = 0; - gSprites[spriteId].oam.affineMode = 1; + gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL; gSprites[spriteId].data[0] = gFieldEffectArguments[2]; gSprites[spriteId].data[1] = gFieldEffectArguments[3]; gSprites[spriteId].data[2] = -1; diff --git a/src/battle_util.c b/src/battle_util.c index bad9457a2..be2422ff7 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -15,7 +15,6 @@ #include "battle_message.h" #include "constants/battle_anim.h" #include "battle_controllers.h" -#include "battle_string_ids.h" #include "battle_ai_script_commands.h" #include "constants/battle.h" #include "constants/moves.h" diff --git a/src/berry_crush.c b/src/berry_crush.c index 7843ce5cb..d116a112f 100644 --- a/src/berry_crush.c +++ b/src/berry_crush.c @@ -659,7 +659,7 @@ static const u32 sBg_Tilemap[] = INCBIN_U32("graphics/berry_crush/bg.bin.lz"); // Takes the number of players - 2 and a player id and returns the // index into sPlayerCoords where that player should be seated -static const u8 gUnknown_846F280[MAX_RFU_PLAYERS - 1][MAX_RFU_PLAYERS] = { +static const u8 sPlayerIdToPosId[MAX_RFU_PLAYERS - 1][MAX_RFU_PLAYERS] = { {1, 3}, {0, 1, 3}, {1, 3, 2, 4}, @@ -932,7 +932,7 @@ static const struct DigitObjUtilTemplate sDigitObjTemplates[] = { }; static const u8 *const sBCRankingHeaders[] = { - [RESULTS_PAGE_PRESSES] = gText_SpaceTimes, + [RESULTS_PAGE_PRESSES] = gText_SpaceTimes2, [RESULTS_PAGE_RANDOM] = gText_XDotY, [RESULTS_PAGE_CRUSHING] = gText_StrVar1Berry, @@ -1299,21 +1299,21 @@ static u32 Cmd_PrintMessage(struct BerryCrushGame * game, u8 *args) return 0; } -static u32 Cmd_ShowGameDisplay(struct BerryCrushGame * game, UNUSED u8 *args) +static u32 Cmd_ShowGameDisplay(struct BerryCrushGame * game, u8 *args) { if (ShowGameDisplay()) RunOrScheduleCommand(game->nextCmd, RUN_CMD, game->commandParams); return 0; } -static u32 Cmd_HideGameDisplay(struct BerryCrushGame * game, UNUSED u8 *args) +static u32 Cmd_HideGameDisplay(struct BerryCrushGame * game, u8 *args) { if (HideGameDisplay()) RunOrScheduleCommand(game->nextCmd, RUN_CMD, game->commandParams); return 0; } -static u32 Cmd_SignalReadyToBegin(struct BerryCrushGame * game, UNUSED u8 *args) +static u32 Cmd_SignalReadyToBegin(struct BerryCrushGame * game, u8 *args) { switch (game->cmdState) { @@ -1356,7 +1356,7 @@ static u32 Cmd_AskPickBerry(struct BerryCrushGame * game, u8 *args) return 0; } -static u32 Cmd_GoToBerryPouch(struct BerryCrushGame * game, UNUSED u8 *args) +static u32 Cmd_GoToBerryPouch(struct BerryCrushGame * game, u8 *args) { game->cmdCallback = NULL; SetMainCallback2(ChooseBerry); @@ -1415,7 +1415,7 @@ static u32 Cmd_WaitForOthersToPickBerries(struct BerryCrushGame * game, u8 *args return 0; } -static u32 Cmd_DropBerriesIntoCrusher(struct BerryCrushGame * game, UNUSED u8 *args) +static u32 Cmd_DropBerriesIntoCrusher(struct BerryCrushGame * game, u8 *args) { switch (game->cmdState) { @@ -1470,7 +1470,7 @@ static u32 Cmd_DropBerriesIntoCrusher(struct BerryCrushGame * game, UNUSED u8 *a return 0; } -static u32 Cmd_DropLid(struct BerryCrushGame * game, UNUSED u8 *args) +static u32 Cmd_DropLid(struct BerryCrushGame * game, u8 *args) { switch (game->cmdState) { @@ -1517,7 +1517,7 @@ static u32 Cmd_DropLid(struct BerryCrushGame * game, UNUSED u8 *args) return 0; } -static u32 Cmd_Countdown(struct BerryCrushGame * game, UNUSED u8 *args) +static u32 Cmd_Countdown(struct BerryCrushGame * game, u8 *args) { switch (game-> cmdState) { @@ -1822,7 +1822,7 @@ static void RecvLinkData(struct BerryCrushGame * game) game->endGame = TRUE; } -static u32 Cmd_PlayGame_Leader(struct BerryCrushGame * game, UNUSED u8 *args) +static u32 Cmd_PlayGame_Leader(struct BerryCrushGame * game, u8 *args) { memset(&game->localState, 0, sizeof(game->localState)); memset(&game->recvCmd, 0, sizeof(game->recvCmd)); @@ -1855,7 +1855,7 @@ static u32 Cmd_PlayGame_Leader(struct BerryCrushGame * game, UNUSED u8 *args) } } -static u32 Cmd_PlayGame_Member(struct BerryCrushGame * game, UNUSED u8 *args) +static u32 Cmd_PlayGame_Member(struct BerryCrushGame * game, u8 *args) { memset(&game->localState, 0, sizeof(game->localState)); memset(&game->recvCmd, 0, sizeof(game->recvCmd)); @@ -1886,7 +1886,7 @@ static u32 Cmd_PlayGame_Member(struct BerryCrushGame * game, UNUSED u8 *args) } // Game was 'won', crusher was pushed down fully before time was up -static u32 Cmd_FinishGame(struct BerryCrushGame * game, UNUSED u8 *args) +static u32 Cmd_FinishGame(struct BerryCrushGame * game, u8 *args) { switch (game->cmdState) { @@ -1983,7 +1983,7 @@ static u32 Cmd_HandleTimeUp(struct BerryCrushGame * game, u8 *args) return 0; } -static u32 Cmd_TabulateResults(struct BerryCrushGame * game, UNUSED u8 *args) +static u32 Cmd_TabulateResults(struct BerryCrushGame * game, u8 *args) { u8 i, j, tempPlayerId; s32 temp1, temp2; @@ -2283,7 +2283,7 @@ static u32 Cmd_AskPlayAgain(struct BerryCrushGame * game, u8 *args) return 0; } -static u32 Cmd_CommunicatePlayAgainResponses(struct BerryCrushGame * game, UNUSED u8 *args) +static u32 Cmd_CommunicatePlayAgainResponses(struct BerryCrushGame * game, u8 *args) { u8 i = 0; @@ -2330,7 +2330,7 @@ static u32 Cmd_CommunicatePlayAgainResponses(struct BerryCrushGame * game, UNUSE return 0; } -static u32 Cmd_PlayAgain(struct BerryCrushGame * game, UNUSED u8 *args) +static u32 Cmd_PlayAgain(struct BerryCrushGame * game, u8 *args) { switch (game->cmdState) { @@ -2360,7 +2360,7 @@ static u32 Cmd_PlayAgain(struct BerryCrushGame * game, UNUSED u8 *args) return 0; } -static u32 Cmd_StopGame(struct BerryCrushGame * game, UNUSED u8 *args) +static u32 Cmd_StopGame(struct BerryCrushGame * game, u8 *args) { switch (game->cmdState) { @@ -2391,7 +2391,7 @@ static u32 Cmd_StopGame(struct BerryCrushGame * game, UNUSED u8 *args) return 0; } -static u32 Cmd_CloseLink(struct BerryCrushGame * game, UNUSED u8 *args) +static u32 Cmd_CloseLink(struct BerryCrushGame * game, u8 *args) { switch (game->cmdState) { @@ -2415,7 +2415,7 @@ static u32 Cmd_CloseLink(struct BerryCrushGame * game, UNUSED u8 *args) return 0; } -static u32 Cmd_Quit(UNUSED struct BerryCrushGame * game, UNUSED u8 *args) +static u32 Cmd_Quit(struct BerryCrushGame * game, u8 *args) { QuitBerryCrush(NULL); return 0; @@ -2766,7 +2766,7 @@ static void SpriteCB_DropBerryIntoCrusher(struct Sprite *sprite) #undef MASK_TARGET_Y #undef F_MOVE_HORIZ -static void BerryCrushFreeBerrySpriteGfx(struct BerryCrushGame * game, UNUSED struct BerryCrushGame_Gfx * gfx) +static void BerryCrushFreeBerrySpriteGfx(struct BerryCrushGame * game, struct BerryCrushGame_Gfx * gfx) { u8 i; for (i = 0; i < game->playerCount; i++) @@ -3046,7 +3046,7 @@ static bool32 OpenResultsWindow(struct BerryCrushGame * game, struct BerryCrushG FillWindowPixelBuffer(spriteManager->resultsWindowId, PIXEL_FILL(0)); break; case 2: - TextWindow_SetStdFrame0_WithPal(spriteManager->resultsWindowId, 0x21D, 0xD0); + LoadStdWindowGfx(spriteManager->resultsWindowId, 0x21D, 0xD0); DrawStdFrameWithCustomTileAndPalette(spriteManager->resultsWindowId, FALSE, 541, 13); break; case 3: @@ -3105,7 +3105,7 @@ static void Task_ShowBerryCrushRankings(u8 taskId) tWindowId = AddWindow(&sWindowTemplate_BerryCrushRankings); PutWindowTilemap(tWindowId); FillWindowPixelBuffer(tWindowId, PIXEL_FILL(0)); - TextWindow_SetStdFrame0_WithPal(tWindowId, 0x21D, 0xD0); + LoadStdWindowGfx(tWindowId, 0x21D, 0xD0); DrawStdFrameWithCustomTileAndPalette(tWindowId, 0, 0x21D, 0xD); break; case 1: @@ -3178,8 +3178,8 @@ static void Task_ShowBerryCrushRankings(u8 taskId) ClearWindowTilemap(tWindowId); RemoveWindow(tWindowId); DestroyTask(taskId); - EnableBothScriptContexts(); - ScriptContext2_Disable(); + ScriptContext_Enable(); + UnlockPlayerFieldControls(); tState = 0; return; } @@ -3190,7 +3190,7 @@ void ShowBerryCrushRankings(void) { u8 taskId; - ScriptContext2_Enable(); + LockPlayerFieldControls(); taskId = CreateTask(Task_ShowBerryCrushRankings, 0); gTasks[taskId].tPressingSpeeds(0) = gSaveBlock2Ptr->berryCrush.pressingSpeeds[0]; gTasks[taskId].tPressingSpeeds(1) = gSaveBlock2Ptr->berryCrush.pressingSpeeds[1]; @@ -3221,7 +3221,7 @@ static void CreatePlayerNameWindows(struct BerryCrushGame * game) for (i = 0; i < game->playerCount; ++i) { - game->gfx.playerCoords[i] = &sPlayerCoords[gUnknown_846F280[game->playerCount - 2][i]]; + game->gfx.playerCoords[i] = &sPlayerCoords[sPlayerIdToPosId[game->playerCount - 2][i]]; game->gfx.nameWindowIds[i] = AddWindow(&sWindowTemplates_PlayerNames[game->gfx.playerCoords[i]->playerId]); PutWindowTilemap(game->gfx.nameWindowIds[i]); FillWindowPixelBuffer(game->gfx.nameWindowIds[i], PIXEL_FILL(0)); diff --git a/src/berry_fix_program.c b/src/berry_fix_program.c index 5eb053ec5..67aece9a1 100644 --- a/src/berry_fix_program.c +++ b/src/berry_fix_program.c @@ -9,51 +9,64 @@ #include "help_system.h" #include "m4a.h" -// Static type declarations +enum { + SCENE_ENSURE_CONNECT, + SCENE_TURN_OFF_POWER, + SCENE_TRANSMITTING, + SCENE_FOLLOW_INSTRUCT, + SCENE_TRANSMIT_FAILED, + SCENE_BEGIN, +}; -typedef struct { - u8 state; - u8 unk1; - u16 unk2; - struct MultiBootParam mb; -} berryfix_t; +enum { + STATE_BEGIN, + STATE_CONNECT, + STATE_TURN_OFF_POWER, + STATE_UNUSED, + STATE_INIT_MULTIBOOT, + STATE_MULTIBOOT, + STATE_TRANSMIT, + STATE_SUCCEEDED, + STATE_EXIT, + STATE_FAILED, + STATE_RETRY, +}; -// Static RAM declarations +const void *gMultibootStart; +int gMultibootStatus; +size_t gMultibootSize; +struct MultiBootParam gMultibootParam; -const void *gUnknown_3005EF0; -int gUnknown_3005EF4; -size_t gUnknown_3005EF8; -struct MultiBootParam gUnknown_3005F00; +static void CB2_BerryFix(void); +static void Task_BerryFixMain(u8 taskId); -// Static ROM declarations - -static void mb_berry_fix_maincb(void); -static void mb_berry_fix_task(u8 taskId); - -// .rodata - -static const void *const gUnknown_847A890[][3] = { - { +static const void *const sBerryFixGraphics[][3] = { + [SCENE_ENSURE_CONNECT] = { gBerryFixGameboy_Gfx, gBerryFixGameboy_Tilemap, gBerryFixGameboy_Pal - }, { + }, + [SCENE_TURN_OFF_POWER] = { gBerryFixGameboyLogo_Gfx, gBerryFixGameboyLogo_Tilemap, gBerryFixGameboyLogo_Pal - }, { + }, + [SCENE_TRANSMITTING] = { gBerryFixGbaTransfer_Gfx, gBerryFixGbaTransfer_Tilemap, gBerryFixGbaTransfer_Pal - }, { + }, + [SCENE_FOLLOW_INSTRUCT] = { gBerryFixGbaTransferHighlight_Gfx, gBerryFixGbaTransferHighlight_Tilemap, gBerryFixGbaTransferHighlight_Pal - }, { + }, + [SCENE_TRANSMIT_FAILED] = { gBerryFixGbaTransferError_Gfx, gBerryFixGbaTransferError_Tilemap, gBerryFixGbaTransferError_Pal - }, { + }, + [SCENE_BEGIN] = { gBerryFixWindow_Gfx, gBerryFixWindow_Tilemap, gBerryFixWindow_Pal @@ -63,22 +76,23 @@ static const void *const gUnknown_847A890[][3] = { extern const u8 gMultiBootProgram_BerryGlitchFix_Start[0x3BF4]; extern const u8 gMultiBootProgram_BerryGlitchFix_End[]; -// .text - -static void mb_berry_fix_print(int scene) +static void SetScene(int scene) { REG_DISPCNT = 0; REG_BG0HOFS = 0; REG_BG0VOFS = 0; REG_BLDCNT = 0; - LZ77UnCompVram(gUnknown_847A890[scene][0], (void *)BG_CHAR_ADDR(0)); - LZ77UnCompVram(gUnknown_847A890[scene][1], (void *)BG_SCREEN_ADDR(31)); - CpuCopy16(gUnknown_847A890[scene][2], (void *)BG_PLTT, 0x200); + LZ77UnCompVram(sBerryFixGraphics[scene][0], (void *)BG_CHAR_ADDR(0)); + LZ77UnCompVram(sBerryFixGraphics[scene][1], (void *)BG_SCREEN_ADDR(31)); + CpuCopy16(sBerryFixGraphics[scene][2], (void *)BG_PLTT, 0x200); REG_BG0CNT = BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) | BGCNT_16COLOR | BGCNT_SCREENBASE(31) | BGCNT_TXT256x256; REG_DISPCNT = DISPCNT_BG0_ON; } -void mb_berry_fix_serve(void) // noreturn +#define tState data[0] +#define tTimer data[1] + +void CB2_InitBerryFixProgram(void) { u8 taskId; DisableInterrupts(0xFFFF); @@ -91,96 +105,99 @@ void mb_berry_fix_serve(void) // noreturn ResetTasks(); ScanlineEffect_Stop(); gHelpSystemEnabled = FALSE; - taskId = CreateTask(mb_berry_fix_task, 0); - gTasks[taskId].data[0] = 0; - SetMainCallback2(mb_berry_fix_maincb); + taskId = CreateTask(Task_BerryFixMain, 0); + gTasks[taskId].tState = STATE_BEGIN; + SetMainCallback2(CB2_BerryFix); } -static void mb_berry_fix_maincb(void) +static void CB2_BerryFix(void) { RunTasks(); } -static void mb_berry_fix_task(u8 taskId) +static void Task_BerryFixMain(u8 taskId) { s16 * data = gTasks[taskId].data; - switch (data[0]) + switch (tState) { - case 0: - mb_berry_fix_print(5); - data[0] = 1; + case STATE_BEGIN: + SetScene(SCENE_BEGIN); + tState = STATE_CONNECT; break; - case 1: + case STATE_CONNECT: if (JOY_NEW(A_BUTTON)) { - mb_berry_fix_print(0); - data[0] = 2; + SetScene(SCENE_ENSURE_CONNECT); + tState = STATE_TURN_OFF_POWER; } break; - case 2: + case STATE_TURN_OFF_POWER: if (JOY_NEW(A_BUTTON)) { - mb_berry_fix_print(1); - data[0] = 4; + SetScene(SCENE_TURN_OFF_POWER); + tState = STATE_INIT_MULTIBOOT; } break; - case 4: - gUnknown_3005EF0 = gMultiBootProgram_BerryGlitchFix_Start; - gUnknown_3005EF8 = gMultiBootProgram_BerryGlitchFix_End - gMultiBootProgram_BerryGlitchFix_Start; - gUnknown_3005F00.masterp = (void *)gMultiBootProgram_BerryGlitchFix_Start; - gUnknown_3005F00.server_type = MULTIBOOT_SERVER_TYPE_NORMAL; - MultiBootInit(&gUnknown_3005F00); - data[1] = 0; - data[0] = 5; + case STATE_INIT_MULTIBOOT: + gMultibootStart = gMultiBootProgram_BerryGlitchFix_Start; + gMultibootSize = gMultiBootProgram_BerryGlitchFix_End - gMultiBootProgram_BerryGlitchFix_Start; + gMultibootParam.masterp = (void *)gMultiBootProgram_BerryGlitchFix_Start; + gMultibootParam.server_type = MULTIBOOT_SERVER_TYPE_NORMAL; + MultiBootInit(&gMultibootParam); + tTimer = 0; + tState = STATE_MULTIBOOT; break; - case 5: - if (gUnknown_3005F00.probe_count == 0 && gUnknown_3005F00.response_bit & 0x2 && gUnknown_3005F00.client_bit & 0x2) + case STATE_MULTIBOOT: + if (gMultibootParam.probe_count == 0 && gMultibootParam.response_bit & 0x2 && gMultibootParam.client_bit & 0x2) { - data[1]++; - if (data[1] > 180) + if (++tTimer > 180) { - mb_berry_fix_print(2); - MultiBootStartMaster(&gUnknown_3005F00, gUnknown_3005EF0 + MULTIBOOT_HEADER_SIZE, gUnknown_3005EF8 - MULTIBOOT_HEADER_SIZE, 4, 1); - data[1] = 0; - data[0] = 6; + SetScene(SCENE_TRANSMITTING); + MultiBootStartMaster(&gMultibootParam, gMultibootStart + MULTIBOOT_HEADER_SIZE, gMultibootSize - MULTIBOOT_HEADER_SIZE, 4, 1); + tTimer = 0; + tState = STATE_TRANSMIT; } else - gUnknown_3005EF4 = MultiBootMain(&gUnknown_3005F00); + { + gMultibootStatus = MultiBootMain(&gMultibootParam); + } } else { - data[1] = 0; - gUnknown_3005EF4 = MultiBootMain(&gUnknown_3005F00); + tTimer = 0; + gMultibootStatus = MultiBootMain(&gMultibootParam); } break; - case 6: - gUnknown_3005EF4 = MultiBootMain(&gUnknown_3005F00); - if (MultiBootCheckComplete(&gUnknown_3005F00)) + case STATE_TRANSMIT: + gMultibootStatus = MultiBootMain(&gMultibootParam); + if (MultiBootCheckComplete(&gMultibootParam)) { - mb_berry_fix_print(3); - data[0] = 7; + SetScene(SCENE_FOLLOW_INSTRUCT); + tState = STATE_SUCCEEDED; + } + else if (!(gMultibootParam.client_bit & 2)) + { + tState = STATE_FAILED; } - else if (!(gUnknown_3005F00.client_bit & 2)) - data[0] = 9; break; - case 7: - data[0] = 8; + case STATE_SUCCEEDED: + tState = STATE_EXIT; break; - case 8: + case STATE_EXIT: if (JOY_NEW(A_BUTTON)) { DestroyTask(taskId); DoSoftReset(); } break; - case 9: - mb_berry_fix_print(4); - data[0] = 10; + case STATE_FAILED: + SetScene(SCENE_TRANSMIT_FAILED); + tState = STATE_RETRY; break; - case 10: + case STATE_RETRY: if (JOY_NEW(A_BUTTON)) - data[0] = 0; + tState = STATE_BEGIN; break; } } diff --git a/src/berry_pouch.c b/src/berry_pouch.c index 80fa333f7..e113fd2d9 100644 --- a/src/berry_pouch.c +++ b/src/berry_pouch.c @@ -685,7 +685,7 @@ static void SetUpListMenuTemplate(void) static void GetBerryNameAndIndexForMenu(u8 * dest, u16 itemId) { StringCopy(gStringVar4, gText_FontSize0); - StringAppend(gStringVar4, gOtherText_UnkF9_08_Clear_01); + StringAppend(gStringVar4, gText_NumberClear01); ConvertIntToDecimalStringN(gStringVar1, itemId - FIRST_BERRY_INDEX + 1, STR_CONV_MODE_LEADING_ZEROS, 2); StringAppend(gStringVar4, gStringVar1); CopyItemName(itemId, gStringVar1); @@ -709,9 +709,9 @@ static void BerryPouchMoveCursorFunc(s32 itemIndex, bool8 onInit, struct ListMen } DestroyItemMenuIcon(sResources->itemMenuIconId ^ 1); if (sResources->listMenuNumItems != itemIndex) - sub_80989A0(BagGetItemIdByPocketPosition(POCKET_BERRY_POUCH, itemIndex), sResources->itemMenuIconId); + CreateBerryPouchItemIcon(BagGetItemIdByPocketPosition(POCKET_BERRY_POUCH, itemIndex), sResources->itemMenuIconId); else - sub_80989A0(ITEM_N_A, sResources->itemMenuIconId); + CreateBerryPouchItemIcon(ITEMS_COUNT, sResources->itemMenuIconId); sResources->itemMenuIconId ^= 1; PrintSelectedBerryDescription(itemIndex); } @@ -1074,7 +1074,7 @@ static void Task_BerryPouch_Use(u8 taskId) else ItemId_GetBattleFunc(gSpecialVar_ItemId)(taskId); } - else if (CalculatePlayerPartyCount() == 0 && ItemId_GetType(gSpecialVar_ItemId) == 1) + else if (CalculatePlayerPartyCount() == 0 && ItemId_GetType(gSpecialVar_ItemId) == ITEM_TYPE_PARTY_MENU) Task_Give_PrintThereIsNoPokemon(taskId); else ItemId_GetFieldFunc(gSpecialVar_ItemId)(taskId); @@ -1258,7 +1258,7 @@ static void Task_ContextMenu_FromPartyGiveMenu(u8 taskId) static void Task_ContextMenu_FromPokemonPC(u8 taskId) { - sResources->exitCallback = Cb2_ReturnToPSS; + sResources->exitCallback = CB2_ReturnToPokeStorage; gTasks[taskId].func = BerryPouch_StartFadeToExitCallback; } @@ -1411,10 +1411,10 @@ static void BerryPouchInitWindows(void) u8 i; InitWindows(sWindowTemplates_Main); DeactivateAllTextPrinters(); - TextWindow_SetUserSelectedFrame(0, 0x001, 0xE0); - TextWindow_LoadResourcesStdFrame0(0, 0x013, 0xD0); - TextWindow_SetStdFrame0_WithPal(0, 0x00A, 0xC0); - LoadPalette(gTMCaseMainWindowPalette, 0xF0, 0x20); + LoadUserWindowGfx(0, 0x001, 0xE0); + LoadMenuMessageWindowGfx(0, 0x013, 0xD0); + LoadStdWindowGfx(0, 0x00A, 0xC0); + LoadPalette(gStandardMenuPalette, 0xF0, 0x20); for (i = 0; i < 3; i++) FillWindowPixelBuffer(i, PIXEL_FILL(0)); PutWindowTilemap(0); diff --git a/src/berry_powder.c b/src/berry_powder.c index fdb94feae..9482d1a57 100644 --- a/src/berry_powder.c +++ b/src/berry_powder.c @@ -119,7 +119,7 @@ void DisplayBerryPowderVendorMenu(void) sBerryPowderVendorWindowId = AddWindow(&template); FillWindowPixelBuffer(sBerryPowderVendorWindowId, 0); PutWindowTilemap(sBerryPowderVendorWindowId); - TextWindow_SetStdFrame0_WithPal(sBerryPowderVendorWindowId, 0x21D, 0xD0); + LoadStdWindowGfx(sBerryPowderVendorWindowId, 0x21D, 0xD0); DrawPlayerPowderAmount(sBerryPowderVendorWindowId, 0x21D, 0xD, GetBerryPowder()); } } diff --git a/src/bg.c b/src/bg.c index 287569fa6..251f42616 100644 --- a/src/bg.c +++ b/src/bg.c @@ -600,58 +600,58 @@ u32 ChangeBgX(u8 bg, u32 value, u8 op) switch (op) { - case 0: - default: - sGpuBgConfigs2[bg].bg_x = value; - break; - case 1: - sGpuBgConfigs2[bg].bg_x += value; - break; - case 2: - sGpuBgConfigs2[bg].bg_x -= value; - break; + case BG_COORD_SET: + default: + sGpuBgConfigs2[bg].bg_x = value; + break; + case BG_COORD_ADD: + sGpuBgConfigs2[bg].bg_x += value; + break; + case BG_COORD_SUB: + sGpuBgConfigs2[bg].bg_x -= value; + break; } mode = GetBgMode(); switch (bg) { - case 0: - temp1 = sGpuBgConfigs2[0].bg_x >> 0x8; - SetGpuReg(REG_OFFSET_BG0HOFS, temp1); - break; - case 1: - temp1 = sGpuBgConfigs2[1].bg_x >> 0x8; - SetGpuReg(REG_OFFSET_BG1HOFS, temp1); - break; - case 2: - if (mode == 0) - { - temp1 = sGpuBgConfigs2[2].bg_x >> 0x8; - SetGpuReg(REG_OFFSET_BG2HOFS, temp1); - } - else - { - temp1 = sGpuBgConfigs2[2].bg_x >> 0x10; - temp2 = sGpuBgConfigs2[2].bg_x & 0xFFFF; - SetGpuReg(REG_OFFSET_BG2X_H, temp1); - SetGpuReg(REG_OFFSET_BG2X_L, temp2); - } - break; - case 3: - if (mode == 0) - { - temp1 = sGpuBgConfigs2[3].bg_x >> 0x8; - SetGpuReg(REG_OFFSET_BG3HOFS, temp1); - } - else if (mode == 2) - { - temp1 = sGpuBgConfigs2[3].bg_x >> 0x10; - temp2 = sGpuBgConfigs2[3].bg_x & 0xFFFF; - SetGpuReg(REG_OFFSET_BG3X_H, temp1); - SetGpuReg(REG_OFFSET_BG3X_L, temp2); - } - break; + case 0: + temp1 = sGpuBgConfigs2[0].bg_x >> 0x8; + SetGpuReg(REG_OFFSET_BG0HOFS, temp1); + break; + case 1: + temp1 = sGpuBgConfigs2[1].bg_x >> 0x8; + SetGpuReg(REG_OFFSET_BG1HOFS, temp1); + break; + case 2: + if (mode == 0) + { + temp1 = sGpuBgConfigs2[2].bg_x >> 0x8; + SetGpuReg(REG_OFFSET_BG2HOFS, temp1); + } + else + { + temp1 = sGpuBgConfigs2[2].bg_x >> 0x10; + temp2 = sGpuBgConfigs2[2].bg_x & 0xFFFF; + SetGpuReg(REG_OFFSET_BG2X_H, temp1); + SetGpuReg(REG_OFFSET_BG2X_L, temp2); + } + break; + case 3: + if (mode == 0) + { + temp1 = sGpuBgConfigs2[3].bg_x >> 0x8; + SetGpuReg(REG_OFFSET_BG3HOFS, temp1); + } + else if (mode == 2) + { + temp1 = sGpuBgConfigs2[3].bg_x >> 0x10; + temp2 = sGpuBgConfigs2[3].bg_x & 0xFFFF; + SetGpuReg(REG_OFFSET_BG3X_H, temp1); + SetGpuReg(REG_OFFSET_BG3X_L, temp2); + } + break; } return sGpuBgConfigs2[bg].bg_x; @@ -679,58 +679,58 @@ u32 ChangeBgY(u8 bg, u32 value, u8 op) switch (op) { - case 0: - default: - sGpuBgConfigs2[bg].bg_y = value; - break; - case 1: - sGpuBgConfigs2[bg].bg_y += value; - break; - case 2: - sGpuBgConfigs2[bg].bg_y -= value; - break; + case BG_COORD_SET: + default: + sGpuBgConfigs2[bg].bg_y = value; + break; + case BG_COORD_ADD: + sGpuBgConfigs2[bg].bg_y += value; + break; + case BG_COORD_SUB: + sGpuBgConfigs2[bg].bg_y -= value; + break; } mode = GetBgMode(); switch (bg) { - case 0: - temp1 = sGpuBgConfigs2[0].bg_y >> 0x8; - SetGpuReg(REG_OFFSET_BG0VOFS, temp1); - break; - case 1: - temp1 = sGpuBgConfigs2[1].bg_y >> 0x8; - SetGpuReg(REG_OFFSET_BG1VOFS, temp1); - break; - case 2: - if (mode == 0) - { - temp1 = sGpuBgConfigs2[2].bg_y >> 0x8; - SetGpuReg(REG_OFFSET_BG2VOFS, temp1); - } - else - { - temp1 = sGpuBgConfigs2[2].bg_y >> 0x10; - temp2 = sGpuBgConfigs2[2].bg_y & 0xFFFF; - SetGpuReg(REG_OFFSET_BG2Y_H, temp1); - SetGpuReg(REG_OFFSET_BG2Y_L, temp2); - } - break; - case 3: - if (mode == 0) - { - temp1 = sGpuBgConfigs2[3].bg_y >> 0x8; - SetGpuReg(REG_OFFSET_BG3VOFS, temp1); - } - else if (mode == 2) - { - temp1 = sGpuBgConfigs2[3].bg_y >> 0x10; - temp2 = sGpuBgConfigs2[3].bg_y & 0xFFFF; - SetGpuReg(REG_OFFSET_BG3Y_H, temp1); - SetGpuReg(REG_OFFSET_BG3Y_L, temp2); - } - break; + case 0: + temp1 = sGpuBgConfigs2[0].bg_y >> 0x8; + SetGpuReg(REG_OFFSET_BG0VOFS, temp1); + break; + case 1: + temp1 = sGpuBgConfigs2[1].bg_y >> 0x8; + SetGpuReg(REG_OFFSET_BG1VOFS, temp1); + break; + case 2: + if (mode == 0) + { + temp1 = sGpuBgConfigs2[2].bg_y >> 0x8; + SetGpuReg(REG_OFFSET_BG2VOFS, temp1); + } + else + { + temp1 = sGpuBgConfigs2[2].bg_y >> 0x10; + temp2 = sGpuBgConfigs2[2].bg_y & 0xFFFF; + SetGpuReg(REG_OFFSET_BG2Y_H, temp1); + SetGpuReg(REG_OFFSET_BG2Y_L, temp2); + } + break; + case 3: + if (mode == 0) + { + temp1 = sGpuBgConfigs2[3].bg_y >> 0x8; + SetGpuReg(REG_OFFSET_BG3VOFS, temp1); + } + else if (mode == 2) + { + temp1 = sGpuBgConfigs2[3].bg_y >> 0x10; + temp2 = sGpuBgConfigs2[3].bg_y & 0xFFFF; + SetGpuReg(REG_OFFSET_BG3Y_H, temp1); + SetGpuReg(REG_OFFSET_BG3Y_L, temp2); + } + break; } return sGpuBgConfigs2[bg].bg_y; diff --git a/src/bike.c b/src/bike.c index 4a24fb2a3..ddaae0fa6 100644 --- a/src/bike.c +++ b/src/bike.c @@ -100,7 +100,7 @@ static u8 BikeInputHandler_Normal(u8 *direction_p, u16 newKeys, u16 heldKeys) } } -static u8 BikeInputHandler_Turning(u8 *direction_p, UNUSED u16 newKeys, UNUSED u16 heldKeys) +static u8 BikeInputHandler_Turning(u8 *direction_p, u16 newKeys, u16 heldKeys) { *direction_p = gPlayerAvatar.newDirBackup; gPlayerAvatar.runningState = TURN_DIRECTION; @@ -187,21 +187,21 @@ static void BikeTransition_MoveDirection(u8 direction) { if (collision == COLLISION_COUNT) - PlayerGoSpeed2(direction); + PlayerWalkFast(direction); else if (PlayerIsMovingOnRockStairs(direction)) - PlayerGoSpeed2(direction); + PlayerWalkFast(direction); else PlayerRideWaterCurrent(direction); } } } -static void BikeTransition_Downhill(UNUSED u8 v) +static void BikeTransition_Downhill(u8 v) { u8 collision = GetBikeCollision(DIR_SOUTH); if (collision == COLLISION_NONE) - PlayerGoSpeed4(DIR_SOUTH); + PlayerWalkFaster(DIR_SOUTH); else if (collision == COLLISION_LEDGE_JUMP) PlayerJumpLedge(DIR_SOUTH); } @@ -209,7 +209,7 @@ static void BikeTransition_Downhill(UNUSED u8 v) static void BikeTransition_Uphill(u8 direction) { if (GetBikeCollision(direction) == COLLISION_NONE) - PlayerGoSpeed1(direction); + PlayerWalkNormal(direction); } static u8 GetBikeCollision(u8 direction) @@ -266,7 +266,7 @@ static bool8 MetatileBehaviorForbidsBiking(u8 metatileBehavior) return TRUE; if (!MetatileBehavior_IsFortreeBridge(metatileBehavior)) return FALSE; - if (PlayerGetZCoord() & 1) + if (PlayerGetElevation() & 1) return FALSE; return TRUE; } diff --git a/src/box_party_pokemon_dropdown.c b/src/box_party_pokemon_dropdown.c deleted file mode 100644 index 09767f3d9..000000000 --- a/src/box_party_pokemon_dropdown.c +++ /dev/null @@ -1,212 +0,0 @@ -#include "global.h" -#include "bg.h" -#include "box_party_pokemon_dropdown.h" -#include "malloc.h" - -struct BPPD_MapRect -{ - s16 destX; - s16 destY; - u16 width; - u16 height; - s16 destX2; - s16 destY2; -}; - -struct BPPD_Struct -{ - struct BPPD_MapRect map1Rect; - struct BPPD_MapRect map2Rect; - const void *src1; - const void *src2; - u16 src1Height; - u16 src1Width; - u16 src2Width; - u16 src2Height; - u16 bytesPerRow; - u8 mapSize; - u8 bgId; - bool8 bgUpdateScheduled; -}; - -static EWRAM_DATA struct BPPD_Struct * sBoxPartyPokemonDropdownPtr = NULL; -static EWRAM_DATA u16 sBoxPartyPokemonDropdownCount = 0; - -static void PushMap1(u8 idx); -static void PushMap2(u8 idx); - -static const struct { - u16 height; - u16 width; -} sBGdims[2][4] = { - { - {0x0100, 0x0100}, - {0x0200, 0x0100}, - {0x0100, 0x0200}, - {0x0200, 0x0200} - }, { - {0x0080, 0x0080}, - {0x0100, 0x0100}, - {0x0200, 0x0200}, - {0x0400, 0x0400} - } -}; - -void AllocBoxPartyPokemonDropdowns(u8 num) -{ - u16 i; - sBoxPartyPokemonDropdownPtr = Alloc(num * sizeof(struct BPPD_Struct)); - sBoxPartyPokemonDropdownCount = sBoxPartyPokemonDropdownPtr == NULL ? 0 : num; - for (i = 0; i < sBoxPartyPokemonDropdownCount; i++) - { - sBoxPartyPokemonDropdownPtr[i].src1 = NULL; - sBoxPartyPokemonDropdownPtr[i].bgUpdateScheduled = FALSE; - } -} - -void FreeBoxPartyPokemonDropdowns(void) -{ - Free(sBoxPartyPokemonDropdownPtr); -} - -void CopyAllBoxPartyPokemonDropdownsToVram(void) -{ - int i; - - for (i = 0; i < sBoxPartyPokemonDropdownCount; i++) - { - if (sBoxPartyPokemonDropdownPtr[i].bgUpdateScheduled == TRUE) - CopyBoxPartyPokemonDropdownToBgTilemapBuffer(i); - } -} - -void SetBoxPartyPokemonDropdownMap2(u8 idx, u8 bgId, const void *src, u16 width, u16 height) -{ - u16 screenSize; - u16 bgType; - - if (idx < sBoxPartyPokemonDropdownCount) - { - sBoxPartyPokemonDropdownPtr[idx].src1 = NULL; - sBoxPartyPokemonDropdownPtr[idx].src2 = src; - sBoxPartyPokemonDropdownPtr[idx].bgId = bgId; - sBoxPartyPokemonDropdownPtr[idx].src2Width = width; - sBoxPartyPokemonDropdownPtr[idx].src2Height = height; - screenSize = GetBgAttribute(bgId, BG_ATTR_SCREENSIZE); - bgType = GetBgAttribute(bgId, BG_ATTR_BGTYPE); - sBoxPartyPokemonDropdownPtr[idx].src1Height = sBGdims[bgType][screenSize].height; - sBoxPartyPokemonDropdownPtr[idx].src1Width = sBGdims[bgType][screenSize].width; - if (bgType != 0) - sBoxPartyPokemonDropdownPtr[idx].mapSize = 1; - else - sBoxPartyPokemonDropdownPtr[idx].mapSize = 2; - sBoxPartyPokemonDropdownPtr[idx].bytesPerRow = width * sBoxPartyPokemonDropdownPtr[idx].mapSize; - sBoxPartyPokemonDropdownPtr[idx].map2Rect.width = width; - sBoxPartyPokemonDropdownPtr[idx].map2Rect.height = height; - sBoxPartyPokemonDropdownPtr[idx].map2Rect.destX = 0; - sBoxPartyPokemonDropdownPtr[idx].map2Rect.destY = 0; - sBoxPartyPokemonDropdownPtr[idx].map2Rect.destX2 = 0; - sBoxPartyPokemonDropdownPtr[idx].map2Rect.destY2 = 0; - sBoxPartyPokemonDropdownPtr[idx].map1Rect = sBoxPartyPokemonDropdownPtr[idx].map2Rect; - sBoxPartyPokemonDropdownPtr[idx].bgUpdateScheduled = TRUE; - } -} - -void SetBoxPartyPokemonDropdownMap1Tiles(u8 idx, const void *src) -{ - if (idx < sBoxPartyPokemonDropdownCount) - { - sBoxPartyPokemonDropdownPtr[idx].src1 = src; - sBoxPartyPokemonDropdownPtr[idx].bgUpdateScheduled = TRUE; - } -} - -void SetBoxPartyPokemonDropdownMap2Pos(u8 idx, u16 x, u16 y) -{ - if (idx < sBoxPartyPokemonDropdownCount) - { - sBoxPartyPokemonDropdownPtr[idx].map2Rect.destX2 = x; - sBoxPartyPokemonDropdownPtr[idx].map2Rect.destY2 = y; - sBoxPartyPokemonDropdownPtr[idx].bgUpdateScheduled = TRUE; - } -} - -void SetBoxPartyPokemonDropdownMap2Rect(u8 idx, u16 x, u16 y, u16 width, u16 height) -{ - if (idx < sBoxPartyPokemonDropdownCount) - { - sBoxPartyPokemonDropdownPtr[idx].map2Rect.destX = x; - sBoxPartyPokemonDropdownPtr[idx].map2Rect.destY = y; - sBoxPartyPokemonDropdownPtr[idx].map2Rect.width = width; - sBoxPartyPokemonDropdownPtr[idx].map2Rect.height = height; - sBoxPartyPokemonDropdownPtr[idx].bgUpdateScheduled = TRUE; - } -} - -void AdjustBoxPartyPokemonDropdownPos(u8 idx, u8 op, s8 param) -{ - if (idx < sBoxPartyPokemonDropdownCount) - { - switch (op) - { - case BPPD_MOVE_INNER_LEFT: - sBoxPartyPokemonDropdownPtr[idx].map2Rect.destX2 += param; - sBoxPartyPokemonDropdownPtr[idx].map2Rect.width -= param; - break; - case BPPD_MOVE_OUTER_LEFT: - sBoxPartyPokemonDropdownPtr[idx].map2Rect.destX += param; - sBoxPartyPokemonDropdownPtr[idx].map2Rect.width += param; - break; - case BPPD_MOVE_INNER_TOP: - sBoxPartyPokemonDropdownPtr[idx].map2Rect.destY2 += param; - sBoxPartyPokemonDropdownPtr[idx].map2Rect.height -= param; - break; - case BPPD_MOVE_OUTER_TOP: - sBoxPartyPokemonDropdownPtr[idx].map2Rect.destY -= param; - sBoxPartyPokemonDropdownPtr[idx].map2Rect.height += param; - break; - case BPPD_MOVE_INNER_X: - sBoxPartyPokemonDropdownPtr[idx].map2Rect.destX2 += param; - break; - case BPPD_MOVE_INNER_Y: - sBoxPartyPokemonDropdownPtr[idx].map2Rect.destY2 += param; - break; - } - sBoxPartyPokemonDropdownPtr[idx].bgUpdateScheduled = TRUE; - } -} - -void CopyBoxPartyPokemonDropdownToBgTilemapBuffer(u8 idx) -{ - if (idx < sBoxPartyPokemonDropdownCount) - { - if (sBoxPartyPokemonDropdownPtr[idx].src1 != NULL) - PushMap1(idx); - PushMap2(idx); - sBoxPartyPokemonDropdownPtr[idx].map1Rect = sBoxPartyPokemonDropdownPtr[idx].map2Rect; - } -} - -static void PushMap1(u8 idx) -{ - int i; - int run = sBoxPartyPokemonDropdownPtr[idx].mapSize * sBoxPartyPokemonDropdownPtr[idx].src1Height; - const void *addr = sBoxPartyPokemonDropdownPtr[idx].src1 + run * sBoxPartyPokemonDropdownPtr[idx].map1Rect.destY2 + sBoxPartyPokemonDropdownPtr[idx].map1Rect.destX2 * sBoxPartyPokemonDropdownPtr[idx].mapSize; - for (i = 0; i < sBoxPartyPokemonDropdownPtr[idx].map1Rect.height; i++) - { - CopyToBgTilemapBufferRect(sBoxPartyPokemonDropdownPtr[idx].bgId, addr, sBoxPartyPokemonDropdownPtr[idx].map1Rect.destX2, sBoxPartyPokemonDropdownPtr[idx].map1Rect.destY2 + i, sBoxPartyPokemonDropdownPtr[idx].map1Rect.width, 1); - addr += run; - } -} - -static void PushMap2(u8 idx) -{ - int i; - int run = sBoxPartyPokemonDropdownPtr[idx].mapSize * sBoxPartyPokemonDropdownPtr[idx].src2Width; - const void *addr = sBoxPartyPokemonDropdownPtr[idx].src2 + run * sBoxPartyPokemonDropdownPtr[idx].map2Rect.destY + sBoxPartyPokemonDropdownPtr[idx].map2Rect.destX * sBoxPartyPokemonDropdownPtr[idx].mapSize; - for (i = 0; i < sBoxPartyPokemonDropdownPtr[idx].map2Rect.height; i++) - { - CopyToBgTilemapBufferRect(sBoxPartyPokemonDropdownPtr[idx].bgId, addr, sBoxPartyPokemonDropdownPtr[idx].map2Rect.destX2, sBoxPartyPokemonDropdownPtr[idx].map2Rect.destY2 + i, sBoxPartyPokemonDropdownPtr[idx].map2Rect.width, 1); - addr += run; - } -} diff --git a/src/braille_text.c b/src/braille_text.c index c58df8e8e..ae61842bd 100644 --- a/src/braille_text.c +++ b/src/braille_text.c @@ -4,7 +4,11 @@ #include "text.h" #include "sound.h" -static const u8 gUnknown_846FB08[] = {1, 2, 4}; +static const u8 sScrollDistances[] = { + [OPTIONS_TEXT_SPEED_SLOW] = 1, + [OPTIONS_TEXT_SPEED_MID] = 2, + [OPTIONS_TEXT_SPEED_FAST] = 4, +}; static const u16 sFont6BrailleGlyphs[] = INCBIN_U16("graphics/fonts/font6.fwjpnfont"); static void DecompressGlyphFont6(u16); @@ -163,15 +167,15 @@ u16 Font6Func(struct TextPrinter *textPrinter) case 4: if (textPrinter->scrollDistance) { - if (textPrinter->scrollDistance < gUnknown_846FB08[gSaveBlock2Ptr->optionsTextSpeed]) + if (textPrinter->scrollDistance < sScrollDistances[gSaveBlock2Ptr->optionsTextSpeed]) { ScrollWindow(textPrinter->printerTemplate.windowId, 0, textPrinter->scrollDistance, PIXEL_FILL(textPrinter->printerTemplate.bgColor)); textPrinter->scrollDistance = 0; } else { - ScrollWindow(textPrinter->printerTemplate.windowId, 0, gUnknown_846FB08[gSaveBlock2Ptr->optionsTextSpeed], PIXEL_FILL(textPrinter->printerTemplate.bgColor)); - textPrinter->scrollDistance -= gUnknown_846FB08[gSaveBlock2Ptr->optionsTextSpeed]; + ScrollWindow(textPrinter->printerTemplate.windowId, 0, sScrollDistances[gSaveBlock2Ptr->optionsTextSpeed], PIXEL_FILL(textPrinter->printerTemplate.bgColor)); + textPrinter->scrollDistance -= sScrollDistances[gSaveBlock2Ptr->optionsTextSpeed]; } CopyWindowToVram(textPrinter->printerTemplate.windowId, COPYWIN_GFX); } diff --git a/src/buy_menu_helpers.c b/src/buy_menu_helpers.c index c0fef9fd8..ccf13ad45 100644 --- a/src/buy_menu_helpers.c +++ b/src/buy_menu_helpers.c @@ -162,9 +162,9 @@ void BuyMenuInitWindows(bool32 isSellingTM) else InitWindows(sShopBuyMenuWindowTemplatesTM); DeactivateAllTextPrinters(); - TextWindow_SetUserSelectedFrame(0, 0x1, 0xD0); - TextWindow_LoadResourcesStdFrame0(0, 0x13, 0xE0); - TextWindow_SetStdFrame0_WithPal(0, 0xA, 0xF0); + LoadUserWindowGfx(0, 0x1, 0xD0); + LoadMenuMessageWindowGfx(0, 0x13, 0xE0); + LoadStdWindowGfx(0, 0xA, 0xF0); PutWindowTilemap(0); PutWindowTilemap(4); PutWindowTilemap(5); diff --git a/src/cable_club.c b/src/cable_club.c index e4238bb40..1c80945be 100644 --- a/src/cable_club.c +++ b/src/cable_club.c @@ -25,28 +25,38 @@ #include "constants/songs.h" #include "constants/cable_club.h" #include "constants/field_weather.h" +#include "constants/maps.h" u32 UnusedVarNeededToMatch[8]; -static void Task_Linkup0(u8 taskId); -static void Task_Linkup1(u8 taskId); -static void Task_LinkupMaster_2(u8 taskId); -static void Task_LinkupMaster_3(u8 taskId); -static void Task_LinkupMaster_4(u8 taskId); -static void Task_LinkupMaster_5(u8 taskId); -static void Task_LinkupSlave_2(u8 taskId); -static void Task_LinkupMaster_6(u8 taskId); -static void Task_Linkup_6a(u8 taskId); -static void Task_Linkup_7(u8 taskId); -static void Task_Linkup_Canceled(u8 taskId); -static void Task_Linkup_ErroredOut(u8 taskId); -static bool8 Task_Linkup_TimedOut(u8 taskId); -static void Task_ReestablishLinkInCableClubRoom_0(u8 taskId); -static void Task_ReestablishLinkInCableClubRoom_1(u8 taskId); -static void Task_ReestablishLinkInCableClubRoom_Master(u8 taskId); -static void Task_ReestablishLinkInCableClubRoom_2(u8 taskId); +static void Task_LinkupStart(u8 taskId); +static void Task_LinkupAwaitConnection(u8 taskId); +static void Task_LinkupConfirmWhenReady(u8 taskId); +static void Task_LinkupAwaitConfirmation(u8 taskId); +static void Task_LinkupTryConfirmation(u8 taskId); +static void Task_LinkupConfirm(u8 taskId); +static void Task_LinkupExchangeDataWithLeader(u8 taskId); +static void Task_LinkupCheckStatusAfterConfirm(u8 taskId); +static void Task_LinkupAwaitTrainerCardData(u8 taskId); +static void Task_StopLinkup(u8 taskId); +static void Task_LinkupFailed(u8 taskId); +static void Task_LinkupConnectionError(u8 taskId); +static bool8 TryLinkTimeout(u8 taskId); +static void Task_ReestablishLink(u8 taskId); +static void Task_ReestablishLinkAwaitConnection(u8 taskId); +static void Task_ReestablishLinkLeader(u8 taskId); +static void Task_ReestablishLinkAwaitConfirmation(u8 taskId); -static const struct WindowTemplate gUnknown_83C6AB0 = { +#define tState data[0] + + +#define tMinPlayers data[1] +#define tMaxPlayers data[2] +#define tNumPlayers data[3] +#define tTimer data[4] +#define tWindowId data[5] + +static const struct WindowTemplate sWindowTemplate_LinkPlayerCount = { .bg = 0, .tilemapLeft = 16, .tilemapTop = 11, @@ -56,270 +66,290 @@ static const struct WindowTemplate gUnknown_83C6AB0 = { .baseBlock = 0x125 }; -static const u8 *const sStarsMessagePtrs[] = { - gUnknown_841DF8B, - gUnknown_841DF92, - gUnknown_841DF99, - gUnknown_841DFA0 +static const u8 *const sTrainerCardColorNames[] = { + gText_BronzeCard, + gText_CopperCard, + gText_SilverCard, + gText_GoldCard }; -static void CreateLinkupTask(u8 lower, u8 higher) +static void CreateLinkupTask(u8 minPlayers, u8 maxPlayers) { u8 taskId; - if (FindTaskIdByFunc(Task_Linkup0) == 0xFF) + if (FindTaskIdByFunc(Task_LinkupStart) == TASK_NONE) { - taskId = CreateTask(Task_Linkup0, 80); - gTasks[taskId].data[1] = lower; - gTasks[taskId].data[2] = higher; + taskId = CreateTask(Task_LinkupStart, 80); + gTasks[taskId].tMinPlayers = minPlayers; + gTasks[taskId].tMaxPlayers = maxPlayers; } } -static void PrintNewCountOnLinkPlayerCountDisplayWindow(u16 windowId, s32 num) +static void PrintNumPlayersInLink(u16 windowId, s32 numPlayers) { - ConvertIntToDecimalStringN(gStringVar1, num, STR_CONV_MODE_LEFT_ALIGN, 1); + ConvertIntToDecimalStringN(gStringVar1, numPlayers, STR_CONV_MODE_LEFT_ALIGN, 1); SetStdWindowBorderStyle(windowId, FALSE); - StringExpandPlaceholders(gStringVar4, gUnknown_841DF82); + StringExpandPlaceholders(gStringVar4, gText_NumPlayerLink); AddTextPrinterParameterized(windowId, FONT_2, gStringVar4, 0, 0, TEXT_SKIP_DRAW, NULL); CopyWindowToVram(windowId, COPYWIN_FULL); } -static void DestroyLinkPlayerCountDisplayWindow(u16 windowId) +static void ClearLinkPlayerCountWindow(u16 windowId) { ClearStdWindowAndFrame(windowId, FALSE); CopyWindowToVram(windowId, COPYWIN_FULL); } -static void UpdateLinkPlayerCountDisplay(u8 taskId, u8 num) +static void UpdateLinkPlayerCountDisplay(u8 taskId, u8 numPlayers) { s16 *data = gTasks[taskId].data; - if (num != data[3]) + if (numPlayers != tNumPlayers) { - if (num < 2) - DestroyLinkPlayerCountDisplayWindow(data[5]); + if (numPlayers < 2) + ClearLinkPlayerCountWindow(tWindowId); else - PrintNewCountOnLinkPlayerCountDisplayWindow(data[5], num); - data[3] = num; + PrintNumPlayersInLink(tWindowId, numPlayers); + tNumPlayers = numPlayers; } } -static u16 sub_8080844(u8 lower, u8 higher) +static u16 ExchangeDataAndGetLinkupStatus(u8 minPlayers, u8 maxPlayers) { - switch (GetLinkPlayerDataExchangeStatusTimed(lower, higher)) + switch (GetLinkPlayerDataExchangeStatusTimed(minPlayers, maxPlayers)) { case EXCHANGE_COMPLETE: - return 1; - case EXCHANGE_IN_PROGRESS: - return 3; - case EXCHANGE_STAT_4: - return 7; - case EXCHANGE_STAT_5: - return 9; - case EXCHANGE_STAT_6: + return LINKUP_SUCCESS; + case EXCHANGE_DIFF_SELECTIONS: + return LINKUP_DIFF_SELECTIONS; + case EXCHANGE_PLAYER_NOT_READY: + return LINKUP_PLAYER_NOT_READY; + case EXCHANGE_PARTNER_NOT_READY: + return LINKUP_PARTNER_NOT_READY; + case EXCHANGE_WRONG_NUM_PLAYERS: ConvertIntToDecimalStringN(gStringVar1, GetLinkPlayerCount_2(), STR_CONV_MODE_LEFT_ALIGN, 1); - return 4; + return LINKUP_WRONG_NUM_PLAYERS; default: - return 0; + return LINKUP_ONGOING; } } -static bool32 sub_80808BC(u8 taskId) +static bool32 CheckLinkErrored(u8 taskId) { if (HasLinkErrorOccurred() == TRUE) { - gTasks[taskId].func = Task_Linkup_ErroredOut; + gTasks[taskId].func = Task_LinkupConnectionError; return TRUE; } return FALSE; } -static bool32 sub_80808F0(u8 taskId) +static bool32 CheckLinkCanceledBeforeConnection(u8 taskId) { if (JOY_NEW(B_BUTTON) && !IsLinkConnectionEstablished()) { gLinkType = 0; - gTasks[taskId].func = Task_Linkup_Canceled; + gTasks[taskId].func = Task_LinkupFailed; return TRUE; } return FALSE; } -static bool32 sub_808093C(u8 taskId) +static bool32 CheckLinkCanceled(u8 taskId) { if (IsLinkConnectionEstablished()) - { SetSuppressLinkErrorMessage(TRUE); - } + if (JOY_NEW(B_BUTTON)) { gLinkType = 0; - gTasks[taskId].func = Task_Linkup_Canceled; + gTasks[taskId].func = Task_LinkupFailed; return TRUE; } return FALSE; } -static bool32 sub_8080990(u8 taskId) +static bool32 CheckSioErrored(u8 taskId) { if (GetSioMultiSI() == TRUE) { - gTasks[taskId].func = Task_Linkup_ErroredOut; + gTasks[taskId].func = Task_LinkupConnectionError; return TRUE; } return FALSE; } -static void sub_80809C4(u8 taskId) +// Unused +static void Task_DelayedBlockRequest(u8 taskId) { gTasks[taskId].data[0]++; if (gTasks[taskId].data[0] == 10) { - Link_PrepareCmd0xCCCC_Rfu0xA100(2); + SendBlockRequest(BLOCK_REQ_SIZE_100); DestroyTask(taskId); } } -static void Task_Linkup0(u8 taskId) +static void Task_LinkupStart(u8 taskId) { s16 *data = gTasks[taskId].data; if (data[0] == 0) { OpenLinkTimed(); - sub_800AA24(); + ResetLinkPlayerCount(); ResetLinkPlayers(); - data[5] = AddWindow(&gUnknown_83C6AB0); + tWindowId = AddWindow(&sWindowTemplate_LinkPlayerCount); } else if (data[0] > 9) { - gTasks[taskId].func = Task_Linkup1; + gTasks[taskId].func = Task_LinkupAwaitConnection; } data[0]++; } -static void Task_Linkup1(u8 taskId) +static void Task_LinkupAwaitConnection(u8 taskId) { - u8 linkPlayerCount = GetLinkPlayerCount_2(); - if (sub_80808F0(taskId) != TRUE && sub_808093C(taskId) != TRUE && linkPlayerCount >= 2) + u8 playerCount = GetLinkPlayerCount_2(); + if (CheckLinkCanceledBeforeConnection(taskId) == TRUE + || CheckLinkCanceled(taskId) == TRUE + || playerCount < 2) + return; + + SetSuppressLinkErrorMessage(TRUE); + gTasks[taskId].data[3] = 0; + if (IsLinkMaster() == TRUE) { - SetSuppressLinkErrorMessage(TRUE); - gTasks[taskId].data[3] = 0; - if (IsLinkMaster() == TRUE) - { - PlaySE(SE_PIN); - ShowFieldAutoScrollMessage(CableClub_Text_WhenAllPlayersReadyAConfirmBCancel); - gTasks[taskId].func = Task_LinkupMaster_2; - } - else - { - PlaySE(SE_BOO); - ShowFieldAutoScrollMessage(CableClub_Text_AwaitingLinkupBCancel); - gTasks[taskId].func = Task_LinkupSlave_2; - } + PlaySE(SE_PIN); + ShowFieldAutoScrollMessage(CableClub_Text_WhenAllPlayersReadyAConfirmBCancel); + gTasks[taskId].func = Task_LinkupConfirmWhenReady; + } + else + { + PlaySE(SE_BOO); + ShowFieldAutoScrollMessage(CableClub_Text_AwaitingLinkupBCancel); + gTasks[taskId].func = Task_LinkupExchangeDataWithLeader; } } -static void Task_LinkupMaster_2(u8 taskId) +static void Task_LinkupConfirmWhenReady(u8 taskId) { - if (sub_80808F0(taskId) != TRUE && sub_8080990(taskId) != TRUE && sub_80808BC(taskId) != TRUE && !GetFieldMessageBoxType()) + if (CheckLinkCanceledBeforeConnection(taskId) == TRUE + || CheckSioErrored(taskId) == TRUE + || CheckLinkErrored(taskId) == TRUE) + return; + + if (GetFieldMessageBoxType() == FIELD_MESSAGE_BOX_HIDDEN) { - gTasks[taskId].data[3] = 0; - gTasks[taskId].func = Task_LinkupMaster_3; + gTasks[taskId].tNumPlayers = 0; + gTasks[taskId].func = Task_LinkupAwaitConfirmation; } } -static void Task_LinkupMaster_3(u8 taskId) +static void Task_LinkupAwaitConfirmation(u8 taskId) { s16 *data = gTasks[taskId].data; s32 linkPlayerCount = GetLinkPlayerCount_2(); - if (sub_80808F0(taskId) != TRUE && sub_8080990(taskId) != TRUE && sub_80808BC(taskId) != TRUE) + + if (CheckLinkCanceledBeforeConnection(taskId) == TRUE + || CheckSioErrored(taskId) == TRUE + || CheckLinkErrored(taskId) == TRUE) + return; + + UpdateLinkPlayerCountDisplay(taskId, linkPlayerCount); + if (JOY_NEW(A_BUTTON) && linkPlayerCount >= tMinPlayers) { - UpdateLinkPlayerCountDisplay(taskId, linkPlayerCount); - if (JOY_NEW(A_BUTTON) && linkPlayerCount >= data[1]) - { - sub_800A900(linkPlayerCount); - DestroyLinkPlayerCountDisplayWindow(data[5]); - ConvertIntToDecimalStringN(gStringVar1, linkPlayerCount, STR_CONV_MODE_LEFT_ALIGN, 1); - ShowFieldAutoScrollMessage(CableClub_Text_StartLinkWithXPlayersAConfirmBCancel); - gTasks[taskId].func = Task_LinkupMaster_4; - } + SaveLinkPlayers(linkPlayerCount); + ClearLinkPlayerCountWindow(tWindowId); + ConvertIntToDecimalStringN(gStringVar1, linkPlayerCount, STR_CONV_MODE_LEFT_ALIGN, 1); + ShowFieldAutoScrollMessage(CableClub_Text_StartLinkWithXPlayersAConfirmBCancel); + gTasks[taskId].func = Task_LinkupTryConfirmation; } + } -static void Task_LinkupMaster_4(u8 taskId) +static void Task_LinkupTryConfirmation(u8 taskId) { - if (sub_80808F0(taskId) != TRUE && sub_8080990(taskId) != TRUE && sub_80808BC(taskId) != TRUE && !GetFieldMessageBoxType()) + if (CheckLinkCanceledBeforeConnection(taskId) == TRUE + || CheckSioErrored(taskId) == TRUE + || CheckLinkErrored(taskId) == TRUE) + return; + + if (GetFieldMessageBoxType() == FIELD_MESSAGE_BOX_HIDDEN) { if (GetSavedPlayerCount() != GetLinkPlayerCount_2()) { ShowFieldAutoScrollMessage(CableClub_Text_WhenAllPlayersReadyAConfirmBCancel); - gTasks[taskId].func = Task_LinkupMaster_2; + gTasks[taskId].func = Task_LinkupConfirmWhenReady; } else if (JOY_HELD(B_BUTTON)) { ShowFieldAutoScrollMessage(CableClub_Text_WhenAllPlayersReadyAConfirmBCancel); - gTasks[taskId].func = Task_LinkupMaster_2; + gTasks[taskId].func = Task_LinkupConfirmWhenReady; } else if (JOY_HELD(A_BUTTON)) { PlaySE(SE_SELECT); CheckShouldAdvanceLinkState(); - gTasks[taskId].func = Task_LinkupMaster_5; + gTasks[taskId].func = Task_LinkupConfirm; } } } -static void Task_LinkupMaster_5(u8 taskId) +static void Task_LinkupConfirm(u8 taskId) { - u8 lower = gTasks[taskId].data[1]; - u8 higher = gTasks[taskId].data[2]; - u16 *res; - if (sub_80808BC(taskId) != TRUE && Task_Linkup_TimedOut(taskId) != TRUE) + u8 minPlayers = gTasks[taskId].tMinPlayers; + u8 maxPlayers = gTasks[taskId].tMaxPlayers; + + if (CheckLinkErrored(taskId) == TRUE + || TryLinkTimeout(taskId) == TRUE) + return; + + if (GetLinkPlayerCount_2() != GetSavedPlayerCount()) { - if (GetLinkPlayerCount_2() != GetSavedPlayerCount()) - { - gTasks[taskId].func = Task_Linkup_ErroredOut; - } - else - { - res = &gSpecialVar_Result; - *res = sub_8080844(lower, higher); - if (*res) - gTasks[taskId].func = Task_LinkupMaster_6; - } + gTasks[taskId].func = Task_LinkupConnectionError; + } + else + { + u16 *result = &gSpecialVar_Result; + *result = ExchangeDataAndGetLinkupStatus(minPlayers, maxPlayers); + if (*result) + gTasks[taskId].func = Task_LinkupCheckStatusAfterConfirm; } } -static void Task_LinkupSlave_2(u8 taskId) +static void Task_LinkupExchangeDataWithLeader(u8 taskId) { - u8 lower = gTasks[taskId].data[1]; - u8 higher = gTasks[taskId].data[2]; - u16 *res; - if (sub_80808F0(taskId) != TRUE && sub_80808BC(taskId) != TRUE) + u8 minPlayers = gTasks[taskId].tMinPlayers; + u8 maxPlayers = gTasks[taskId].tMaxPlayers; + u16 *result; + + if (CheckLinkCanceledBeforeConnection(taskId) == TRUE + || CheckLinkErrored(taskId) == TRUE) + return; + + result = &gSpecialVar_Result; + *result = ExchangeDataAndGetLinkupStatus(minPlayers, maxPlayers); + if (*result == LINKUP_ONGOING) + return; + if (*result == LINKUP_DIFF_SELECTIONS + || *result == LINKUP_WRONG_NUM_PLAYERS) { - res = &gSpecialVar_Result; - *res = sub_8080844(lower, higher); - if (*res) - { - if (*res == 3 || *res == 4) - { - SetCloseLinkCallback(); - HideFieldMessageBox(); - gTasks[taskId].func = Task_Linkup_7; - } - else if (*res == 7 || *res == 9) - { - CloseLink(); - HideFieldMessageBox(); - gTasks[taskId].func = Task_Linkup_7; - } - else - { - gFieldLinkPlayerCount = GetLinkPlayerCount_2(); - gLocalLinkPlayerId = GetMultiplayerId(); - sub_800A900(gFieldLinkPlayerCount); - TrainerCard_GenerateCardForLinkPlayer((void *)gBlockSendBuffer); - gTasks[taskId].func = Task_Linkup_6a; - } - } + SetCloseLinkCallback(); + HideFieldMessageBox(); + gTasks[taskId].func = Task_StopLinkup; + } + else if (*result == LINKUP_PLAYER_NOT_READY + || *result == LINKUP_PARTNER_NOT_READY) + { + CloseLink(); + HideFieldMessageBox(); + gTasks[taskId].func = Task_StopLinkup; + } + else + { + gFieldLinkPlayerCount = GetLinkPlayerCount_2(); + gLocalLinkPlayerId = GetMultiplayerId(); + SaveLinkPlayers(gFieldLinkPlayerCount); + TrainerCard_GenerateCardForLinkPlayer((void *)gBlockSendBuffer); + gTasks[taskId].func = Task_LinkupAwaitTrainerCardData; } } @@ -337,120 +367,124 @@ static bool32 AnyConnectedPartnersPlayingRS(void) return FALSE; } -static void Task_LinkupMaster_6(u8 taskId) +static void Task_LinkupCheckStatusAfterConfirm(u8 taskId) { - if (sub_80808BC(taskId) != TRUE) + if (CheckLinkErrored(taskId) == TRUE) + return; + + if (gSpecialVar_Result == LINKUP_WRONG_NUM_PLAYERS) { - if (gSpecialVar_Result == 4) - { - if (AnyConnectedPartnersPlayingRS() == TRUE) - CloseLink(); - else - SetCloseLinkCallback(); - HideFieldMessageBox(); - gTasks[taskId].func = Task_Linkup_7; - } - else if (gSpecialVar_Result == 3) - { - SetCloseLinkCallback(); - HideFieldMessageBox(); - gTasks[taskId].func = Task_Linkup_7; - } - else if (gSpecialVar_Result == 7 || gSpecialVar_Result == 9) - { + if (AnyConnectedPartnersPlayingRS() == TRUE) CloseLink(); - HideFieldMessageBox(); - gTasks[taskId].func = Task_Linkup_7; - } else - { - gFieldLinkPlayerCount = GetLinkPlayerCount_2(); - gLocalLinkPlayerId = GetMultiplayerId(); - sub_800A900(gFieldLinkPlayerCount); - TrainerCard_GenerateCardForLinkPlayer((void *)gBlockSendBuffer); - gTasks[taskId].func = Task_Linkup_6a; - Link_PrepareCmd0xCCCC_Rfu0xA100(2); - } + SetCloseLinkCallback(); + HideFieldMessageBox(); + gTasks[taskId].func = Task_StopLinkup; + } + else if (gSpecialVar_Result == LINKUP_DIFF_SELECTIONS) + { + SetCloseLinkCallback(); + HideFieldMessageBox(); + gTasks[taskId].func = Task_StopLinkup; + } + else if (gSpecialVar_Result == LINKUP_PLAYER_NOT_READY + || gSpecialVar_Result == LINKUP_PARTNER_NOT_READY) + { + CloseLink(); + HideFieldMessageBox(); + gTasks[taskId].func = Task_StopLinkup; + } + else + { + gFieldLinkPlayerCount = GetLinkPlayerCount_2(); + gLocalLinkPlayerId = GetMultiplayerId(); + SaveLinkPlayers(gFieldLinkPlayerCount); + TrainerCard_GenerateCardForLinkPlayer((void *)gBlockSendBuffer); + gTasks[taskId].func = Task_LinkupAwaitTrainerCardData; + SendBlockRequest(BLOCK_REQ_SIZE_100); } } -static void Task_Linkup_6a(u8 taskId) +static void Task_LinkupAwaitTrainerCardData(u8 taskId) { u8 i; u16 version; u8 * dest; - if (sub_80808BC(taskId) != TRUE && GetBlockReceivedStatus() == sub_800A8A4()) + + if (CheckLinkErrored(taskId) == TRUE) + return; + + if (GetBlockReceivedStatus() != GetSavedLinkPlayerCountAsBitFlags()) + return; + + for (i = 0; i < GetLinkPlayerCount(); i++) { - for(i = 0; i < GetLinkPlayerCount(); i++) + version = gLinkPlayers[i].version & 0xFF; + if (version != VERSION_FIRE_RED && version != VERSION_LEAF_GREEN) { - version = gLinkPlayers[i].version & 0xFF; - if (version != VERSION_FIRE_RED && version != VERSION_LEAF_GREEN) - { - const struct TrainerCardRSE * src = (const struct TrainerCardRSE *)gBlockRecvBuffer[i]; - gTrainerCards[i].rse = *src; - gTrainerCards[i].version = gLinkPlayers[i].version; - } - else - { - const struct TrainerCard * src = (const struct TrainerCard *)gBlockRecvBuffer[i]; - gTrainerCards[i] = *src; - } - } - SetSuppressLinkErrorMessage(FALSE); - ResetBlockReceivedFlags(); - HideFieldMessageBox(); - if (gSpecialVar_Result == 1) - { - // Dumb trick required to match - if (gLinkType == LINKTYPE_BERRY_BLENDER_SETUP) - *UnusedVarNeededToMatch += 0; - DestroyLinkPlayerCountDisplayWindow(gTasks[taskId].data[5]); - EnableBothScriptContexts(); - DestroyTask(taskId); + const struct TrainerCardRSE * src = (const struct TrainerCardRSE *)gBlockRecvBuffer[i]; + gTrainerCards[i].rse = *src; + gTrainerCards[i].version = gLinkPlayers[i].version; } else { - SetCloseLinkCallback(); - gTasks[taskId].func = Task_Linkup_7; + const struct TrainerCard * src = (const struct TrainerCard *)gBlockRecvBuffer[i]; + gTrainerCards[i] = *src; } } + SetSuppressLinkErrorMessage(FALSE); + ResetBlockReceivedFlags(); + HideFieldMessageBox(); + if (gSpecialVar_Result == LINKUP_SUCCESS) + { + // Dumb trick required to match + if (gLinkType == LINKTYPE_BERRY_BLENDER_SETUP) + *UnusedVarNeededToMatch += 0; + ClearLinkPlayerCountWindow(gTasks[taskId].tWindowId); + ScriptContext_Enable(); + DestroyTask(taskId); + } + else + { + SetCloseLinkCallback(); + gTasks[taskId].func = Task_StopLinkup; + } } -static void Task_Linkup_7(u8 taskId) +static void Task_StopLinkup(u8 taskId) { if (!gReceivedRemoteLinkPlayers) { - DestroyLinkPlayerCountDisplayWindow(gTasks[taskId].data[5]); - EnableBothScriptContexts(); - RemoveWindow(gTasks[taskId].data[5]); + ClearLinkPlayerCountWindow(gTasks[taskId].tWindowId); + ScriptContext_Enable(); + RemoveWindow(gTasks[taskId].tWindowId); DestroyTask(taskId); } } -static void Task_Linkup_Canceled(u8 taskId) +static void Task_LinkupFailed(u8 taskId) { - gSpecialVar_Result = 5; - DestroyLinkPlayerCountDisplayWindow(gTasks[taskId].data[5]); + gSpecialVar_Result = LINKUP_FAILED; + ClearLinkPlayerCountWindow(gTasks[taskId].tWindowId); HideFieldMessageBox(); - EnableBothScriptContexts(); + ScriptContext_Enable(); DestroyTask(taskId); } -static void Task_Linkup_ErroredOut(u8 taskId) +static void Task_LinkupConnectionError(u8 taskId) { - gSpecialVar_Result = 6; - DestroyLinkPlayerCountDisplayWindow(gTasks[taskId].data[5]); + gSpecialVar_Result = LINKUP_CONNECTION_ERROR; + ClearLinkPlayerCountWindow(gTasks[taskId].tWindowId); HideFieldMessageBox(); - EnableBothScriptContexts(); + ScriptContext_Enable(); DestroyTask(taskId); } -static bool8 Task_Linkup_TimedOut(u8 taskId) +static bool8 TryLinkTimeout(u8 taskId) { - gTasks[taskId].data[4]++; - if (gTasks[taskId].data[4] > 600) + if (++gTasks[taskId].tTimer > 600) { - gTasks[taskId].func = Task_Linkup_ErroredOut; + gTasks[taskId].func = Task_LinkupConnectionError; return TRUE; } return FALSE; @@ -458,37 +492,47 @@ static bool8 Task_Linkup_TimedOut(u8 taskId) void TryBattleLinkup(void) { - u8 lower, higher; - higher = lower = 2; + u8 minPlayers = 2; + u8 maxPlayers = 2; + switch (gSpecialVar_0x8004) { case USING_SINGLE_BATTLE: - higher = lower = 2; + minPlayers = 2; + maxPlayers = 2; gLinkType = LINKTYPE_SINGLE_BATTLE; break; case USING_DOUBLE_BATTLE: - higher = lower = 2; + minPlayers = 2; + maxPlayers = 2; gLinkType = LINKTYPE_DOUBLE_BATTLE; break; case USING_MULTI_BATTLE: - higher = lower = 4; + minPlayers = 4; + maxPlayers = 4; gLinkType = LINKTYPE_MULTI_BATTLE; break; } - CreateLinkupTask(lower, higher); + CreateLinkupTask(minPlayers, maxPlayers); } +#undef tMinPlayers +#undef tMaxPlayers +#undef tNumPlayers +#undef tTimer +#undef tWindowId + void TryTradeLinkup(void) { - gLinkType = LINKTYPE_0x1133; + gLinkType = LINKTYPE_TRADE_SETUP; gBattleTypeFlags = 0; CreateLinkupTask(2, 2); } void TryRecordMixLinkup(void) { - gSpecialVar_Result = 0; - gLinkType = LINKTYPE_0x3311; + gSpecialVar_Result = LINKUP_ONGOING; + gLinkType = LINKTYPE_RECORD_MIX_BEFORE; gBattleTypeFlags = 0; CreateLinkupTask(2, 4); } @@ -500,10 +544,11 @@ void TryContestLinkup(void) CreateLinkupTask(4, 4); } -u8 CreateTask_ReestablishLinkInCableClubRoom(void) +u8 CreateTask_ReestablishCableClubLink(void) { - if (FuncIsActiveTask(Task_ReestablishLinkInCableClubRoom_0)) - return 0xFF; + if (FuncIsActiveTask(Task_ReestablishLink)) + return TASK_NONE; + switch (gSpecialVar_0x8004) { case USING_SINGLE_BATTLE: @@ -519,92 +564,94 @@ u8 CreateTask_ReestablishLinkInCableClubRoom(void) gLinkType = LINKTYPE_TRADE; break; case USING_RECORD_CORNER: - gLinkType = LINKTYPE_0x3322; + gLinkType = LINKTYPE_RECORD_MIX_AFTER; break; } - return CreateTask(Task_ReestablishLinkInCableClubRoom_0, 80); + return CreateTask(Task_ReestablishLink, 80); } -static void Task_ReestablishLinkInCableClubRoom_0(u8 taskId) +static void Task_ReestablishLink(u8 taskId) { s16 *data = gTasks[taskId].data; + if (data[0] == 0) { OpenLink(); ResetLinkPlayers(); - CreateTask(Task_WaitForReceivedRemoteLinkPlayers5SecondTimeout, 80); + CreateTask(Task_WaitForLinkPlayerConnection, 80); } else if (data[0] > 9) - gTasks[taskId].func = Task_ReestablishLinkInCableClubRoom_1; + { + gTasks[taskId].func = Task_ReestablishLinkAwaitConnection; + } data[0]++; } -static void Task_ReestablishLinkInCableClubRoom_1(u8 taskId) +static void Task_ReestablishLinkAwaitConnection(u8 taskId) { if (GetLinkPlayerCount_2() >= 2) { if (IsLinkMaster() == TRUE) - { - gTasks[taskId].func = Task_ReestablishLinkInCableClubRoom_Master; - } + gTasks[taskId].func = Task_ReestablishLinkLeader; else - { - gTasks[taskId].func = Task_ReestablishLinkInCableClubRoom_2; - } + gTasks[taskId].func = Task_ReestablishLinkAwaitConfirmation; } } -static void Task_ReestablishLinkInCableClubRoom_Master(u8 taskId) +static void Task_ReestablishLinkLeader(u8 taskId) { if (GetSavedPlayerCount() == GetLinkPlayerCount_2()) { CheckShouldAdvanceLinkState(); - gTasks[taskId].func = Task_ReestablishLinkInCableClubRoom_2; + gTasks[taskId].func = Task_ReestablishLinkAwaitConfirmation; } } -static void Task_ReestablishLinkInCableClubRoom_2(u8 taskId) +static void Task_ReestablishLinkAwaitConfirmation(u8 taskId) { if (gReceivedRemoteLinkPlayers == TRUE && IsLinkPlayerDataExchangeComplete() == TRUE) { - sub_800A9A4(); + CheckLinkPlayersMatchSaved(); StartSendingKeysToLink(); DestroyTask(taskId); } } +// Unused void CableClub_AskSaveTheGame(void) { Field_AskSaveTheGame(); } +#define tTimer data[1] + static void Task_StartWiredCableClubBattle(u8 taskId) { struct Task *task = &gTasks[taskId]; - switch (task->data[0]) + + switch (task->tState) { case 0: FadeScreen(FADE_TO_BLACK, 0); gLinkType = LINKTYPE_BATTLE; ClearLinkCallback_2(); - task->data[0]++; + task->tState++; break; case 1: if (!gPaletteFade.active) - task->data[0]++; + task->tState++; break; case 2: - task->data[1]++; - if (task->data[1] > 20) - task->data[0]++; + if (++task->tTimer > 20) + task->tState++; break; case 3: SetCloseLinkCallback(); - task->data[0]++; + task->tState++; break; case 4: if (!gReceivedRemoteLinkPlayers) - task->data[0]++; + task->tState++; break; case 5: if (gLinkPlayers[0].trainerId & 1) @@ -637,24 +684,25 @@ static void Task_StartWirelessCableClubBattle(u8 taskId) { s16 *data = gTasks[taskId].data; int i; - switch (data[0]) + + switch (tState) { case 0: FadeScreen(FADE_TO_BLACK, 0); gLinkType = LINKTYPE_BATTLE; ClearLinkCallback_2(); - data[0] = 1; + tState = 1; break; case 1: if (!gPaletteFade.active) - data[0] = 2; + tState = 2; break; case 2: - SendBlock(0, &gLocalLinkPlayer, sizeof(struct LinkPlayer)); - data[0] = 3; + SendBlock(0, &gLocalLinkPlayer, sizeof(gLocalLinkPlayer)); + tState = 3; break; case 3: - if (GetBlockReceivedStatus() == sub_800A8D4()) + if (GetBlockReceivedStatus() == GetLinkPlayerCountAsBitFlags()) { for (i = 0; i < GetLinkPlayerCount(); i++) { @@ -662,21 +710,20 @@ static void Task_StartWirelessCableClubBattle(u8 taskId) ConvertLinkPlayerName(&gLinkPlayers[i]); ResetBlockReceivedFlag(i); } - data[0] = 4; + tState = 4; } break; case 4: - data[1]++; - if (data[1] > 20) - data[0] = 5; + if (++tTimer > 20) + tState = 5; break; case 5: SetLinkStandbyCallback(); - data[0] = 6; + tState = 6; break; case 6: if (IsLinkTaskFinished()) - data[0] = 7; + tState = 7; break; case 7: if (gLinkPlayers[0].trainerId & 1) @@ -706,7 +753,9 @@ static void Task_StartWirelessCableClubBattle(u8 taskId) } } -static void sub_8081624(void) +#undef tTimer + +static void CB2_ReturnFromUnionRoomBattle(void) { switch (gMain.state) { @@ -728,41 +777,42 @@ void CB2_ReturnFromCableClubBattle(void) LoadPlayerParty(); SavePlayerBag(); Special_UpdateTrainerFansAfterLinkBattle(); + if (gSpecialVar_0x8004 != USING_MULTI_BATTLE) { - TryRecordLinkBattleOutcome(gLocalLinkPlayerId ^ 1); + UpdatePlayerLinkBattleRecords(gLocalLinkPlayerId ^ 1); if (gWirelessCommType != 0) { switch (gBattleOutcome) { case B_OUTCOME_WON: - MEvent_RecordIdOfWonderCardSenderByEventType(0, gLinkPlayers[GetMultiplayerId() ^ 1].trainerId); + MysteryGift_TryIncrementStat(CARD_STAT_BATTLES_WON, gLinkPlayers[GetMultiplayerId() ^ 1].trainerId); break; case B_OUTCOME_LOST: - MEvent_RecordIdOfWonderCardSenderByEventType(1, gLinkPlayers[GetMultiplayerId() ^ 1].trainerId); + MysteryGift_TryIncrementStat(CARD_STAT_BATTLES_LOST, gLinkPlayers[GetMultiplayerId() ^ 1].trainerId); break; } } } + if (InUnionRoom() == TRUE) - { - gMain.savedCallback = sub_8081624; - } + gMain.savedCallback = CB2_ReturnFromUnionRoomBattle; else - { gMain.savedCallback = CB2_ReturnToFieldFromMultiplayer; - } + SetMainCallback2(CB2_SetUpSaveAfterLinkBattle); } void CleanupLinkRoomState(void) { - if (gSpecialVar_0x8004 == USING_SINGLE_BATTLE || gSpecialVar_0x8004 == USING_DOUBLE_BATTLE || gSpecialVar_0x8004 == USING_MULTI_BATTLE) + if (gSpecialVar_0x8004 == USING_SINGLE_BATTLE + || gSpecialVar_0x8004 == USING_DOUBLE_BATTLE + || gSpecialVar_0x8004 == USING_MULTI_BATTLE) { LoadPlayerParty(); SavePlayerBag(); } - SetWarpDestinationToDynamicWarp(127); + SetWarpDestinationToDynamicWarp(WARP_ID_DYNAMIC); } void ExitLinkRoom(void) @@ -770,76 +820,79 @@ void ExitLinkRoom(void) QueueExitLinkRoomKey(); } +// Note: gSpecialVar_0x8005 contains the id of the seat the player entered static void Task_EnterCableClubSeat(u8 taskId) { struct Task *task = &gTasks[taskId]; - switch (task->data[0]) + switch (task->tState) { case 0: ShowFieldMessage(CableClub_Text_PleaseWaitBCancel); - task->data[0] = 1; + task->tState = 1; break; case 1: if (IsFieldMessageBoxHidden()) { SetInCableClubSeat(); SetLocalLinkPlayerId(gSpecialVar_0x8005); - task->data[0] = 2; + task->tState = 2; } break; case 2: switch (GetCableClubPartnersReady()) { - case 0: + case CABLE_SEAT_WAITING: break; - case 1: + case CABLE_SEAT_SUCCESS: + // Partners linked and ready, switch to relevant link function HideFieldMessageBox(); - task->data[0] = 0; + task->tState = 0; SetStartedCableClubActivity(); SwitchTaskToFollowupFunc(taskId); break; - case 2: - task->data[0] = 3; + case CABLE_SEAT_FAILED: + task->tState = 3; break; } break; case 3: + // Exit, failure SetLinkWaitingForScript(); - sub_80F771C(TRUE); + EraseFieldMessageBox(TRUE); DestroyTask(taskId); - EnableBothScriptContexts(); + ScriptContext_Enable(); break; } } -static void CreateEnterCableClubSeatTaskWithFollowupFunc(TaskFunc followUpFunc) +static void CreateTask_EnterCableClubSeat(TaskFunc followUpFunc) { u8 taskId = CreateTask(Task_EnterCableClubSeat, 80); SetTaskFuncWithFollowupFunc(taskId, Task_EnterCableClubSeat, followUpFunc); - ScriptContext1_Stop(); + ScriptContext_Stop(); } -static void Task_StartWiredCableClubTrade(u8 taskId) +static void Task_StartWiredTrade(u8 taskId) { struct Task *task = &gTasks[taskId]; - switch (task->data[0]) + switch (task->tState) { case 0: - ScriptContext2_Enable(); + LockPlayerFieldControls(); FadeScreen(FADE_TO_BLACK, 0); ClearLinkCallback_2(); - task->data[0]++; + task->tState++; break; case 1: if (!gPaletteFade.active) - task->data[0]++; + task->tState++; break; case 2: - gSelectedTradeMonPositions[0] = 0; - gSelectedTradeMonPositions[1] = 0; + gSelectedTradeMonPositions[TRADE_PLAYER] = 0; + gSelectedTradeMonPositions[TRADE_PARTNER] = 0; m4aMPlayAllStop(); SetCloseLinkCallback(); - task->data[0]++; + task->tState++; break; case 3: if (!gReceivedRemoteLinkPlayers) @@ -851,27 +904,27 @@ static void Task_StartWiredCableClubTrade(u8 taskId) } } -static void Task_StartWirelessCableClubTrade(u8 taskId) +static void Task_StartWirelessTrade(u8 taskId) { s16 *data = gTasks[taskId].data; - switch (data[0]) + switch (tState) { case 0: - ScriptContext2_Enable(); + LockPlayerFieldControls(); FadeScreen(FADE_TO_BLACK, 0); ClearLinkRfuCallback(); - data[0]++; + tState++; break; case 1: if (!gPaletteFade.active) - data[0]++; + tState++; break; case 2: - gSelectedTradeMonPositions[0] = 0; - gSelectedTradeMonPositions[1] = 0; + gSelectedTradeMonPositions[TRADE_PLAYER] = 0; + gSelectedTradeMonPositions[TRADE_PARTNER] = 0; m4aMPlayAllStop(); SetLinkStandbyCallback(); - data[0]++; + tState++; break; case 3: if (IsLinkTaskFinished()) @@ -886,35 +939,36 @@ static void Task_StartWirelessCableClubTrade(u8 taskId) void EnterTradeSeat(void) { if (gWirelessCommType) - CreateEnterCableClubSeatTaskWithFollowupFunc(Task_StartWirelessCableClubTrade); + CreateTask_EnterCableClubSeat(Task_StartWirelessTrade); else - CreateEnterCableClubSeatTaskWithFollowupFunc(Task_StartWiredCableClubTrade); + CreateTask_EnterCableClubSeat(Task_StartWiredTrade); } -static void CreateTask_StartWiredCableClubTrade(void) +static void CreateTask_StartWiredTrade(void) { - CreateTask(Task_StartWiredCableClubTrade, 80); + CreateTask(Task_StartWiredTrade, 80); } void StartWiredCableClubTrade(void) { - CreateTask_StartWiredCableClubTrade(); - ScriptContext1_Stop(); + CreateTask_StartWiredTrade(); + ScriptContext_Stop(); } void EnterColosseumPlayerSpot(void) { gLinkType = LINKTYPE_BATTLE; if (gWirelessCommType) - CreateEnterCableClubSeatTaskWithFollowupFunc(Task_StartWirelessCableClubBattle); + CreateTask_EnterCableClubSeat(Task_StartWirelessCableClubBattle); else - CreateEnterCableClubSeatTaskWithFollowupFunc(Task_StartWiredCableClubBattle); + CreateTask_EnterCableClubSeat(Task_StartWiredCableClubBattle); } -static void Debug_CreateTaskEnterCableClubSeat(void) +// Unused +static void CreateTask_EnterCableClubSeatNoFollowup(void) { CreateTask(Task_EnterCableClubSeat, 80); - ScriptContext1_Stop(); + ScriptContext_Stop(); } void Script_ShowLinkTrainerCard(void) @@ -922,43 +976,51 @@ void Script_ShowLinkTrainerCard(void) ShowTrainerCardInLink(gSpecialVar_0x8006, CB2_ReturnToFieldContinueScriptPlayMapMusic); } -bool32 GetSeeingLinkPlayerCardMsg(u8 who) +bool32 GetSeeingLinkPlayerCardMsg(u8 linkPlayerIndex) { - u8 stars; - gSpecialVar_0x8006 = who; - StringCopy(gStringVar1, gLinkPlayers[who].name); - stars = GetTrainerCardStars(who); - if (stars == 0) + u8 numStars; + + gSpecialVar_0x8006 = linkPlayerIndex; + StringCopy(gStringVar1, gLinkPlayers[linkPlayerIndex].name); + + numStars = GetTrainerCardStars(linkPlayerIndex); + if (numStars == 0) return FALSE; - StringCopy(gStringVar2, sStarsMessagePtrs[stars - 1]); + + StringCopy(gStringVar2, sTrainerCardColorNames[numStars - 1]); return TRUE; } -void Task_WaitForReceivedRemoteLinkPlayers5SecondTimeout(u8 taskId) +#define tTimer data[0] + +void Task_WaitForLinkPlayerConnection(u8 taskId) { struct Task *task = &gTasks[taskId]; - task->data[0]++; - if (task->data[0] > 300) + if (++task->tTimer > 300) { CloseLink(); SetMainCallback2(CB2_LinkError); DestroyTask(taskId); } + if (gReceivedRemoteLinkPlayers) DestroyTask(taskId); } -static void sub_8081AE4(u8 taskId) +#undef tTimer + +static void Task_WaitExitToScript(u8 taskId) { if (!gReceivedRemoteLinkPlayers) { - EnableBothScriptContexts(); + ScriptContext_Enable(); DestroyTask(taskId); } } -static void sub_8081B08(u8 taskId) +// Unused +static void ExitLinkToScript(u8 taskId) { SetCloseLinkCallback(); - gTasks[taskId].func = sub_8081AE4; + gTasks[taskId].func = Task_WaitExitToScript; } diff --git a/src/cereader_tool.c b/src/cereader_tool.c index ebe0965ac..395be0bcb 100644 --- a/src/cereader_tool.c +++ b/src/cereader_tool.c @@ -10,7 +10,7 @@ // The trainer tower data exceeds SECTOR_DATA_SIZE. They're allowed to use the full save sector up to the counter field. STATIC_ASSERT(SEC30_SIZE + SEC31_SIZE <= SECTOR_COUNTER_OFFSET * 2, EReaderTrainerTowerSetFreeSpace); -u8 sub_815D654(void) +static u8 GetTrainerHillUnkVal(void) { return (gSaveBlock1Ptr->trainerTower[0].unk9 + 1) % 256; } @@ -49,7 +49,7 @@ static bool32 CEReaderTool_SaveTrainerTower_r(struct EReaderTrainerTowerSet * tt memset(buffer, 0, SECTOR_SIZE); memcpy(buffer, ttdata, SEC30_SIZE); - buffer[1] = sub_815D654(); + buffer[1] = GetTrainerHillUnkVal(); if (TryWriteSpecialSaveSector(SECTOR_ID_TRAINER_TOWER_1, buffer) != TRUE) return FALSE; memset(buffer, 0, SECTOR_SIZE); diff --git a/src/clear_save_data_screen.c b/src/clear_save_data_screen.c index 6a09328ce..4cddf5f03 100644 --- a/src/clear_save_data_screen.c +++ b/src/clear_save_data_screen.c @@ -101,12 +101,12 @@ static void Task_DrawClearSaveDataScreen(u8 taskId) SaveClearScreen_GpuInit(); break; case 3: - TextWindow_SetStdFrame0_WithPal(0, 0x001, 0xF0); - TextWindow_SetStdFrame0_WithPal(1, 0x001, 0xF0); + LoadStdWindowGfx(0, 0x001, 0xF0); + LoadStdWindowGfx(1, 0x001, 0xF0); break; case 4: DrawStdFrameWithCustomTileAndPalette(1, TRUE, 0x001, 0xF); - AddTextPrinterParameterized4(1, FONT_2, 0, 3, 1, 1, sTextColor, 0, gUnknown_841B69E); + AddTextPrinterParameterized4(1, FONT_2, 0, 3, 1, 1, sTextColor, 0, gText_ClearAllSaveData); CopyWindowToVram(1, COPYWIN_GFX); break; case 5: @@ -138,7 +138,7 @@ static void Task_HandleYesNoMenu(u8 taskId) case 0: PlaySE(SE_SELECT); FillWindowPixelBuffer(1, PIXEL_FILL(1)); - AddTextPrinterParameterized4(1, FONT_2, 0, 3, 1, 1, sTextColor, 0, gUnknown_841B6B9); + AddTextPrinterParameterized4(1, FONT_2, 0, 3, 1, 1, sTextColor, 0, gText_ClearingData); CopyWindowToVram(1, COPYWIN_FULL); ClearSaveData(); break; diff --git a/src/coins.c b/src/coins.c index 3a8019b75..2de263bb1 100644 --- a/src/coins.c +++ b/src/coins.c @@ -49,14 +49,15 @@ bool8 RemoveCoins(u16 toSub) return FALSE; } -void PrintCoinsString_Parameterized(u8 windowId, u32 coinAmount, u8 x, u8 y, u8 speed) +static void PrintCoinsString_Parameterized(u8 windowId, u32 coinAmount, u8 x, u8 y, u8 speed) { ConvertIntToDecimalStringN(gStringVar1, coinAmount, STR_CONV_MODE_RIGHT_ALIGN, 4); StringExpandPlaceholders(gStringVar4, gText_Coins); AddTextPrinterParameterized(windowId, FONT_0, gStringVar4, x, y, speed, NULL); } -void sub_80D0674(u8 windowId, u16 tileStart, u8 palette, u32 coinAmount) +// Unused +static void ShowCoinsWindow_Parameterized(u8 windowId, u16 tileStart, u8 palette, u32 coinAmount) { DrawStdFrameWithCustomTileAndPalette(windowId, FALSE, tileStart, palette); AddTextPrinterParameterized(windowId, FONT_2, gText_Coins_2, 0, 0, 0xFF, 0); @@ -83,7 +84,7 @@ void ShowCoinsWindow(u32 coinAmount, u8 x, u8 y) sCoinsWindowId = AddWindow(&template); FillWindowPixelBuffer(sCoinsWindowId, 0); PutWindowTilemap(sCoinsWindowId); - TextWindow_SetStdFrame0_WithPal(sCoinsWindowId, 0x21D, 0xD0); + LoadStdWindowGfx(sCoinsWindowId, 0x21D, 0xD0); DrawStdFrameWithCustomTileAndPalette(sCoinsWindowId, FALSE, 0x21D, 0xD); AddTextPrinterParameterized(sCoinsWindowId, FONT_2, gText_Coins_2, 0, 0, 0xFF, 0); PrintCoinsString(coinAmount); diff --git a/src/credits.c b/src/credits.c index af2ea3889..daa03fb69 100644 --- a/src/credits.c +++ b/src/credits.c @@ -346,7 +346,7 @@ static const u32 sWindow2Map_Blastoise[] = INCBIN_U32("graphics/credits/unk_840F static const u32 sWindow1Map_Pikachu[] = INCBIN_U32("graphics/credits/unk_8410198.bin.lz"); static const u32 sWindow2Map_Pikachu[] = INCBIN_U32("graphics/credits/unk_84105B4.bin.lz"); -static const u32 filler_8410AFC = 0xF0; +static const u32 sUnused = 0xF0; static const u16 sTheEndGfxPal[] = INCBIN_U16("graphics/credits/unk_8410B20.gbapal"); static const u8 sTheEndGfxTiles[] = INCBIN_U8("graphics/credits/unk_8410B20.4bpp.lz"); @@ -776,7 +776,7 @@ static void DestroyCreditsWindow(void) } } -static bool32 DoOverworldMapScrollScene(UNUSED u8 unused) +static bool32 DoOverworldMapScrollScene(u8 whichMon) { switch (sCreditsMgr->subseqno) { diff --git a/src/data/battle_anim.h b/src/data/battle_anim.h new file mode 100644 index 000000000..ec8dc3de7 --- /dev/null +++ b/src/data/battle_anim.h @@ -0,0 +1,1625 @@ +const struct OamData gOamData_AffineOff_ObjNormal_8x8 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(8x8), + .x = 0, + .size = SPRITE_SIZE(8x8), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + + +const struct OamData gOamData_AffineOff_ObjNormal_16x16 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(16x16), + .x = 0, + .size = SPRITE_SIZE(16x16), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineOff_ObjNormal_32x32 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(32x32), + .x = 0, + .size = SPRITE_SIZE(32x32), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineOff_ObjNormal_64x64 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(64x64), + .x = 0, + .size = SPRITE_SIZE(64x64), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineOff_ObjNormal_16x8 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(16x8), + .x = 0, + .size = SPRITE_SIZE(16x8), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineOff_ObjNormal_32x8 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(32x8), + .x = 0, + .size = SPRITE_SIZE(32x8), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineOff_ObjNormal_32x16 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(32x16), + .x = 0, + .size = SPRITE_SIZE(32x16), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineOff_ObjNormal_64x32 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(64x32), + .x = 0, + .size = SPRITE_SIZE(64x32), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineOff_ObjNormal_8x16 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(8x16), + .x = 0, + .size = SPRITE_SIZE(8x16), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineOff_ObjNormal_8x32 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(8x32), + .x = 0, + .size = SPRITE_SIZE(8x32), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineOff_ObjNormal_16x32 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(16x32), + .x = 0, + .size = SPRITE_SIZE(16x32), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineOff_ObjNormal_32x64 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(32x64), + .x = 0, + .size = SPRITE_SIZE(32x64), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineNormal_ObjNormal_8x8 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_NORMAL, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(8x8), + .x = 0, + .size = SPRITE_SIZE(8x8), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineNormal_ObjNormal_16x16 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_NORMAL, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(16x16), + .x = 0, + .size = SPRITE_SIZE(16x16), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineNormal_ObjNormal_32x32 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_NORMAL, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(32x32), + .x = 0, + .size = SPRITE_SIZE(32x32), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineNormal_ObjNormal_64x64 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_NORMAL, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(64x64), + .x = 0, + .size = SPRITE_SIZE(64x64), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineNormal_ObjNormal_16x8 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_NORMAL, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(16x8), + .x = 0, + .size = SPRITE_SIZE(16x8), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineNormal_ObjNormal_32x8 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_NORMAL, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(32x8), + .x = 0, + .size = SPRITE_SIZE(32x8), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineNormal_ObjNormal_32x16 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_NORMAL, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(32x16), + .x = 0, + .size = SPRITE_SIZE(32x16), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineNormal_ObjNormal_64x32 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_NORMAL, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(64x32), + .x = 0, + .size = SPRITE_SIZE(64x32), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineNormal_ObjNormal_8x16 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_NORMAL, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(8x16), + .x = 0, + .size = SPRITE_SIZE(8x16), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineNormal_ObjNormal_8x32 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_NORMAL, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(8x32), + .x = 0, + .size = SPRITE_SIZE(8x32), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineNormal_ObjNormal_16x32 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_NORMAL, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(16x32), + .x = 0, + .size = SPRITE_SIZE(16x32), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineNormal_ObjNormal_32x64 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_NORMAL, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(32x64), + .x = 0, + .size = SPRITE_SIZE(32x64), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineDouble_ObjNormal_8x8 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_DOUBLE, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(8x8), + .x = 0, + .size = SPRITE_SIZE(8x8), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineDouble_ObjNormal_16x16 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_DOUBLE, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(16x16), + .x = 0, + .size = SPRITE_SIZE(16x16), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineDouble_ObjNormal_32x32 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_DOUBLE, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(32x32), + .x = 0, + .size = SPRITE_SIZE(32x32), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineDouble_ObjNormal_64x64 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_DOUBLE, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(64x64), + .x = 0, + .size = SPRITE_SIZE(64x64), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineDouble_ObjNormal_16x8 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_DOUBLE, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(16x8), + .x = 0, + .size = SPRITE_SIZE(16x8), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineDouble_ObjNormal_32x8 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_DOUBLE, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(32x8), + .x = 0, + .size = SPRITE_SIZE(32x8), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineDouble_ObjNormal_32x16 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_DOUBLE, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(32x16), + .x = 0, + .size = SPRITE_SIZE(32x16), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineDouble_ObjNormal_64x32 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_DOUBLE, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(64x32), + .x = 0, + .size = SPRITE_SIZE(64x32), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineDouble_ObjNormal_8x16 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_DOUBLE, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(8x16), + .x = 0, + .size = SPRITE_SIZE(8x16), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineDouble_ObjNormal_8x32 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_DOUBLE, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(8x32), + .x = 0, + .size = SPRITE_SIZE(8x32), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineDouble_ObjNormal_16x32 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_DOUBLE, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(16x32), + .x = 0, + .size = SPRITE_SIZE(16x32), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineDouble_ObjNormal_32x64 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_DOUBLE, + .objMode = ST_OAM_OBJ_NORMAL, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(32x64), + .x = 0, + .size = SPRITE_SIZE(32x64), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineOff_ObjBlend_8x8 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(8x8), + .x = 0, + .size = SPRITE_SIZE(8x8), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineOff_ObjBlend_16x16 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(16x16), + .x = 0, + .size = SPRITE_SIZE(16x16), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineOff_ObjBlend_32x32 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(32x32), + .x = 0, + .size = SPRITE_SIZE(32x32), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineOff_ObjBlend_64x64 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(64x64), + .x = 0, + .size = SPRITE_SIZE(64x64), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineOff_ObjBlend_16x8 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(16x8), + .x = 0, + .size = SPRITE_SIZE(16x8), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineOff_ObjBlend_32x8 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(32x8), + .x = 0, + .size = SPRITE_SIZE(32x8), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineOff_ObjBlend_32x16 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(32x16), + .x = 0, + .size = SPRITE_SIZE(32x16), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineOff_ObjBlend_64x32 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(64x32), + .x = 0, + .size = SPRITE_SIZE(64x32), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineOff_ObjBlend_8x16 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(8x16), + .x = 0, + .size = SPRITE_SIZE(8x16), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineOff_ObjBlend_8x32 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(8x32), + .x = 0, + .size = SPRITE_SIZE(8x32), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineOff_ObjBlend_16x32 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(16x32), + .x = 0, + .size = SPRITE_SIZE(16x32), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineOff_ObjBlend_32x64 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(32x64), + .x = 0, + .size = SPRITE_SIZE(32x64), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineNormal_ObjBlend_8x8 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_NORMAL, + .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(8x8), + .x = 0, + .size = SPRITE_SIZE(8x8), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineNormal_ObjBlend_16x16 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_NORMAL, + .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(16x16), + .x = 0, + .size = SPRITE_SIZE(16x16), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineNormal_ObjBlend_32x32 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_NORMAL, + .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(32x32), + .x = 0, + .size = SPRITE_SIZE(32x32), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineNormal_ObjBlend_64x64 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_NORMAL, + .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(64x64), + .x = 0, + .size = SPRITE_SIZE(64x64), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineNormal_ObjBlend_16x8 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_NORMAL, + .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(16x8), + .x = 0, + .size = SPRITE_SIZE(16x8), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineNormal_ObjBlend_32x8 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_NORMAL, + .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(32x8), + .x = 0, + .size = SPRITE_SIZE(32x8), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineNormal_ObjBlend_32x16 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_NORMAL, + .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(32x16), + .x = 0, + .size = SPRITE_SIZE(32x16), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineNormal_ObjBlend_64x32 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_NORMAL, + .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(64x32), + .x = 0, + .size = SPRITE_SIZE(64x32), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineNormal_ObjBlend_8x16 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_NORMAL, + .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(8x16), + .x = 0, + .size = SPRITE_SIZE(8x16), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineNormal_ObjBlend_8x32 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_NORMAL, + .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(8x32), + .x = 0, + .size = SPRITE_SIZE(8x32), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineNormal_ObjBlend_16x32 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_NORMAL, + .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(16x32), + .x = 0, + .size = SPRITE_SIZE(16x32), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineNormal_ObjBlend_32x64 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_NORMAL, + .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(32x64), + .x = 0, + .size = SPRITE_SIZE(32x64), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineDouble_ObjBlend_8x8 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_DOUBLE, + .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(8x8), + .x = 0, + .size = SPRITE_SIZE(8x8), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineDouble_ObjBlend_16x16 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_DOUBLE, + .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(16x16), + .x = 0, + .size = SPRITE_SIZE(16x16), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineDouble_ObjBlend_32x32 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_DOUBLE, + .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(32x32), + .x = 0, + .size = SPRITE_SIZE(32x32), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineDouble_ObjBlend_64x64 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_DOUBLE, + .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(64x64), + .x = 0, + .size = SPRITE_SIZE(64x64), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineDouble_ObjBlend_16x8 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_DOUBLE, + .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(16x8), + .x = 0, + .size = SPRITE_SIZE(16x8), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineDouble_ObjBlend_32x8 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_DOUBLE, + .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(32x8), + .x = 0, + .size = SPRITE_SIZE(32x8), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineDouble_ObjBlend_32x16 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_DOUBLE, + .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(32x16), + .x = 0, + .size = SPRITE_SIZE(32x16), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineDouble_ObjBlend_64x32 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_DOUBLE, + .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(64x32), + .x = 0, + .size = SPRITE_SIZE(64x32), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineDouble_ObjBlend_8x16 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_DOUBLE, + .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(8x16), + .x = 0, + .size = SPRITE_SIZE(8x16), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineDouble_ObjBlend_8x32 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_DOUBLE, + .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(8x32), + .x = 0, + .size = SPRITE_SIZE(8x32), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineDouble_ObjBlend_16x32 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_DOUBLE, + .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(16x32), + .x = 0, + .size = SPRITE_SIZE(16x32), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct OamData gOamData_AffineDouble_ObjBlend_32x64 = +{ + .y = 0, + .affineMode = ST_OAM_AFFINE_DOUBLE, + .objMode = ST_OAM_OBJ_BLEND, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(32x64), + .x = 0, + .size = SPRITE_SIZE(32x64), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct CompressedSpriteSheet gBattleAnimPicTable[] = +{ + {gBattleAnimSpriteGfx_Bone, 0x0200, ANIM_TAG_BONE}, + {gBattleAnimSpriteGfx_Spark, 0x0300, ANIM_TAG_SPARK}, + {gBattleAnimSpriteGfx_Pencil, 0x0200, ANIM_TAG_PENCIL}, + {gBattleAnimSpriteGfx_AirWave, 0x0100, ANIM_TAG_AIR_WAVE}, + {gBattleAnimSpriteGfx_Orb, 0x0200, ANIM_TAG_ORB}, + {gBattleAnimSpriteGfx_Sword, 0x0400, ANIM_TAG_SWORD}, + {gBattleAnimSpriteGfx_Seed, 0x0180, ANIM_TAG_SEED}, + {gBattleAnimSpriteGfx_Explosion6, 0x0800, ANIM_TAG_EXPLOSION_6}, + {gBattleAnimSpriteGfx_PinkOrb, 0x0020, ANIM_TAG_PINK_ORB}, + {gBattleAnimSpriteGfx_Gust, 0x0400, ANIM_TAG_GUST}, + {gBattleAnimSpriteGfx_IceCube, 0x1200, ANIM_TAG_ICE_CUBE}, + {gBattleAnimSpriteGfx_Spark2, 0x0180, ANIM_TAG_SPARK_2}, + {gBattleAnimSpriteGfx_Orange, 0x0080, ANIM_TAG_ORANGE}, + {gBattleAnimSpriteGfx_YellowBall, 0x0080, ANIM_TAG_YELLOW_BALL}, + {gBattleAnimSpriteGfx_LockOn, 0x0280, ANIM_TAG_LOCK_ON}, + {gBattleAnimSpriteGfx_TiedBag, 0x0080, ANIM_TAG_TIED_BAG}, + {gBattleAnimSpriteGfx_BlackSmoke, 0x0100, ANIM_TAG_BLACK_SMOKE}, + {gBattleAnimSpriteGfx_BlackBall, 0x0020, ANIM_TAG_BLACK_BALL}, + {gBattleAnimSpriteGfx_Conversion, 0x0080, ANIM_TAG_CONVERSION}, + {gBattleAnimSpriteGfx_Glass, 0x0400, ANIM_TAG_GLASS}, + {gBattleAnimSpriteGfx_HornHit, 0x0200, ANIM_TAG_HORN_HIT}, + {gBattleAnimSpriteGfx_Hit, 0x0A00, ANIM_TAG_HIT}, + {gBattleAnimSpriteGfx_Hit, 0x0A00, ANIM_TAG_HIT_2}, + {gBattleAnimSpriteGfx_BlueShards, 0x0380, ANIM_TAG_BLUE_SHARDS}, + {gBattleAnimSpriteGfx_ClosingEye, 0x0300, ANIM_TAG_CLOSING_EYE}, + {gBattleAnimSpriteGfx_WavingHand, 0x0A00, ANIM_TAG_WAVING_HAND}, + {gBattleAnimSpriteGfx_HitDuplicate, 0x0A00, ANIM_TAG_HIT_DUPLICATE}, + {gBattleAnimSpriteGfx_Leer, 0x0A00, ANIM_TAG_LEER}, + {gBattleAnimSpriteGfx_BlueBurst, 0x0A00, ANIM_TAG_BLUE_BURST}, + {gBattleAnimSpriteGfx_SmallEmber, 0x0A00, ANIM_TAG_SMALL_EMBER}, + {gBattleAnimSpriteGfx_GraySmoke, 0x0A00, ANIM_TAG_GRAY_SMOKE}, + {gBattleAnimSpriteGfx_BlueStar, 0x0E00, ANIM_TAG_BLUE_STAR}, + {gBattleAnimSpriteGfx_BubbleBurst, 0x0380, ANIM_TAG_BUBBLE_BURST}, + {gBattleAnimSpriteGfx_Fire, 0x1000, ANIM_TAG_FIRE}, + {gBattleAnimSpriteGfx_SpinningFire, 0x0800, ANIM_TAG_SPINNING_FIRE}, + {gBattleAnimSpriteGfx_FirePlume, 0x0A00, ANIM_TAG_FIRE_PLUME}, + {gBattleAnimSpriteGfx_Lightning2, 0x0800, ANIM_TAG_LIGHTNING_2}, + {gBattleAnimSpriteGfx_Lightning, 0x0A00, ANIM_TAG_LIGHTNING}, + {gBattleAnimSpriteGfx_ClawSlash2, 0x0A00, ANIM_TAG_CLAW_SLASH_2}, + {gBattleAnimSpriteGfx_ClawSlash, 0x0A00, ANIM_TAG_CLAW_SLASH}, + {gBattleAnimSpriteGfx_Scratch3, 0x0A00, ANIM_TAG_SCRATCH_3}, + {gBattleAnimSpriteGfx_Scratch2, 0x0A00, ANIM_TAG_SCRATCH_2}, + {gBattleAnimSpriteGfx_BubbleBurst2, 0x0A00, ANIM_TAG_BUBBLE_BURST_2}, + {gBattleAnimSpriteGfx_IceChunk, 0x0A00, ANIM_TAG_ICE_CHUNK}, + {gBattleAnimSpriteGfx_Glass2, 0x0A00, ANIM_TAG_GLASS_2}, + {gBattleAnimSpriteGfx_PinkHeart2, 0x0A00, ANIM_TAG_PINK_HEART_2}, + {gBattleAnimSpriteGfx_SapDrip, 0x1000, ANIM_TAG_SAP_DRIP}, + {gBattleAnimSpriteGfx_SapDrip, 0x1000, ANIM_TAG_SAP_DRIP_2}, + {gBattleAnimSpriteGfx_Sparkle1, 0x1000, ANIM_TAG_SPARKLE_1}, + {gBattleAnimSpriteGfx_Sparkle1, 0x1000, ANIM_TAG_SPARKLE_2}, + {gBattleAnimSpriteGfx_HumanoidFoot, 0x0200, ANIM_TAG_HUMANOID_FOOT}, + {gBattleAnimSpriteGfx_MonsterFoot, 0x0200, ANIM_TAG_MONSTER_FOOT}, + {gBattleAnimSpriteGfx_HumanoidHand, 0x0200, ANIM_TAG_HUMANOID_HAND}, + {gBattleAnimSpriteGfx_NoiseLine, 0x0800, ANIM_TAG_NOISE_LINE}, + {gBattleAnimSpriteGfx_YellowUnk, 0x0080, ANIM_TAG_YELLOW_UNK}, + {gBattleAnimSpriteGfx_RedFist, 0x0200, ANIM_TAG_RED_FIST}, + {gBattleAnimSpriteGfx_SlamHit, 0x1000, ANIM_TAG_SLAM_HIT}, + {gBattleAnimSpriteGfx_Ring, 0x0180, ANIM_TAG_RING}, + {gBattleAnimSpriteGfx_Rocks, 0x0C00, ANIM_TAG_ROCKS}, + {gBattleAnimSpriteGfx_Z, 0x0100, ANIM_TAG_Z}, + {gBattleAnimSpriteGfx_YellowUnk2, 0x0040, ANIM_TAG_YELLOW_UNK_2}, + {gBattleAnimSpriteGfx_AirSlash, 0x0180, ANIM_TAG_AIR_SLASH}, + {gBattleAnimSpriteGfx_SpinningGreenOrbs, 0x0800, ANIM_TAG_SPINNING_GREEN_ORBS}, + {gBattleAnimSpriteGfx_Leaf, 0x0480, ANIM_TAG_LEAF}, + {gBattleAnimSpriteGfx_Finger, 0x0200, ANIM_TAG_FINGER}, + {gBattleAnimSpriteGfx_PoisonPowder, 0x0200, ANIM_TAG_POISON_POWDER}, + {gBattleAnimSpriteGfx_BrownTriangle, 0x0100, ANIM_TAG_BROWN_TRIANGLE}, + {gBattleAnimSpriteGfx_PoisonPowder, 0x0200, ANIM_TAG_SLEEP_POWDER}, + {gBattleAnimSpriteGfx_PoisonPowder, 0x0200, ANIM_TAG_STUN_SPORE}, + {gBattleAnimSpriteGfx_PoisonPowder, 0x0200, ANIM_TAG_POWDER}, + {gBattleAnimSpriteGfx_Sparkle3, 0x0200, ANIM_TAG_SPARKLE_3}, + {gBattleAnimSpriteGfx_Sparkle4, 0x0A00, ANIM_TAG_SPARKLE_4}, + {gBattleAnimSpriteGfx_MusicNotes, 0x0300, ANIM_TAG_MUSIC_NOTES}, + {gBattleAnimSpriteGfx_Duck, 0x0180, ANIM_TAG_DUCK}, + {gBattleAnimSpriteGfx_MudSand, 0x00A0, ANIM_TAG_MUD_SAND}, + {gBattleAnimSpriteGfx_Alert, 0x0700, ANIM_TAG_ALERT}, + {gBattleAnimSpriteGfx_BlueFlames, 0x0400, ANIM_TAG_BLUE_FLAMES}, + {gBattleAnimSpriteGfx_BlueFlames2, 0x0200, ANIM_TAG_BLUE_FLAMES_2}, + {gBattleAnimSpriteGfx_Shock4, 0x0300, ANIM_TAG_SHOCK_4}, + {gBattleAnimSpriteGfx_Shock, 0x0C00, ANIM_TAG_SHOCK}, + {gBattleAnimSpriteGfx_Bell2, 0x0A00, ANIM_TAG_BELL_2}, + {gBattleAnimSpriteGfx_PinkGlove, 0x0080, ANIM_TAG_PINK_GLOVE}, + {gBattleAnimSpriteGfx_BlueLines, 0x0040, ANIM_TAG_BLUE_LINES}, + {gBattleAnimSpriteGfx_Impact3, 0x0E00, ANIM_TAG_IMPACT_3}, + {gBattleAnimSpriteGfx_Impact2, 0x0E00, ANIM_TAG_IMPACT_2}, + {gBattleAnimSpriteGfx_Reticle, 0x0280, ANIM_TAG_RETICLE}, + {gBattleAnimSpriteGfx_Breath, 0x0200, ANIM_TAG_BREATH}, + {gBattleAnimSpriteGfx_Anger, 0x0080, ANIM_TAG_ANGER}, + {gBattleAnimSpriteGfx_Snowball, 0x00C0, ANIM_TAG_SNOWBALL}, + {gBattleAnimSpriteGfx_Vine, 0x0A00, ANIM_TAG_VINE}, + {gBattleAnimSpriteGfx_Sword2, 0x0200, ANIM_TAG_SWORD_2}, + {gBattleAnimSpriteGfx_Clapping, 0x0180, ANIM_TAG_CLAPPING}, + {gBattleAnimSpriteGfx_RedTube, 0x0080, ANIM_TAG_RED_TUBE}, + {gBattleAnimSpriteGfx_Amnesia, 0x1000, ANIM_TAG_AMNESIA}, + {gBattleAnimSpriteGfx_String2, 0x0A00, ANIM_TAG_STRING_2}, + {gBattleAnimSpriteGfx_Pencil2, 0x0180, ANIM_TAG_PENCIL_2}, + {gBattleAnimSpriteGfx_Petal, 0x0380, ANIM_TAG_PETAL}, + {gBattleAnimSpriteGfx_BentSpoon, 0x0C00, ANIM_TAG_BENT_SPOON}, + {gBattleAnimSpriteGfx_Web, 0x0200, ANIM_TAG_WEB}, + {gBattleAnimSpriteGfx_MilkBottle, 0x0200, ANIM_TAG_MILK_BOTTLE}, + {gBattleAnimSpriteGfx_Coin, 0x0200, ANIM_TAG_COIN}, + {gBattleAnimSpriteGfx_CrackedEgg, 0x0200, ANIM_TAG_CRACKED_EGG}, + {gBattleAnimSpriteGfx_HatchedEgg, 0x0400, ANIM_TAG_HATCHED_EGG}, + {gBattleAnimSpriteGfx_FreshEgg, 0x0080, ANIM_TAG_FRESH_EGG}, + {gBattleAnimSpriteGfx_Fangs, 0x0400, ANIM_TAG_FANGS}, + {gBattleAnimSpriteGfx_Explosion2, 0x0c00, ANIM_TAG_EXPLOSION_2}, + {gBattleAnimSpriteGfx_Explosion3, 0x0200, ANIM_TAG_EXPLOSION_3}, + {gBattleAnimSpriteGfx_WaterDroplet, 0x1000, ANIM_TAG_WATER_DROPLET}, + {gBattleAnimSpriteGfx_WaterDroplet2, 0x0a00, ANIM_TAG_WATER_DROPLET_2}, + {gBattleAnimSpriteGfx_Seed2, 0x0020, ANIM_TAG_SEED_2}, + {gBattleAnimSpriteGfx_Sprout, 0x0e00, ANIM_TAG_SPROUT}, + {gBattleAnimSpriteGfx_RedWand, 0x0080, ANIM_TAG_RED_WAND}, + {gBattleAnimSpriteGfx_PurpleGreenUnk, 0x0a00, ANIM_TAG_PURPLE_GREEN_UNK}, + {gBattleAnimSpriteGfx_WaterColumn, 0x0400, ANIM_TAG_WATER_COLUMN}, + {gBattleAnimSpriteGfx_MudUnk, 0x0200, ANIM_TAG_MUD_UNK}, + {gBattleAnimSpriteGfx_RainDrops, 0x0700, ANIM_TAG_RAIN_DROPS}, + {gBattleAnimSpriteGfx_FurySwipes, 0x0800, ANIM_TAG_FURY_SWIPES}, + {gBattleAnimSpriteGfx_Vine2, 0x0a00, ANIM_TAG_VINE_2}, + {gBattleAnimSpriteGfx_Teeth, 0x0600, ANIM_TAG_TEETH}, + {gBattleAnimSpriteGfx_Bone2, 0x0800, ANIM_TAG_BONE_2}, + {gBattleAnimSpriteGfx_WhiteBag, 0x0200, ANIM_TAG_WHITE_BAG}, + {gBattleAnimSpriteGfx_Unknown, 0x0040, ANIM_TAG_UNKNOWN}, + {gBattleAnimSpriteGfx_PurpleCoral, 0x0180, ANIM_TAG_PURPLE_CORAL}, + {gBattleAnimSpriteGfx_PurpleDroplet, 0x0600, ANIM_TAG_PURPLE_DROPLET}, + {gBattleAnimSpriteGfx_Shock2, 0x0600, ANIM_TAG_SHOCK_2}, + {gBattleAnimSpriteGfx_ClosingEye2, 0x0200, ANIM_TAG_CLOSING_EYE_2}, + {gBattleAnimSpriteGfx_MetalBall, 0x0080, ANIM_TAG_METAL_BALL}, + {gBattleAnimSpriteGfx_MonsterDoll, 0x0200, ANIM_TAG_MONSTER_DOLL}, + {gBattleAnimSpriteGfx_Whirlwind, 0x0800, ANIM_TAG_WHIRLWIND}, + {gBattleAnimSpriteGfx_Whirlwind2, 0x0080, ANIM_TAG_WHIRLWIND_2}, + {gBattleAnimSpriteGfx_Explosion4, 0x0a00, ANIM_TAG_EXPLOSION_4}, + {gBattleAnimSpriteGfx_Explosion5, 0x0280, ANIM_TAG_EXPLOSION_5}, + {gBattleAnimSpriteGfx_Tongue, 0x0280, ANIM_TAG_TONGUE}, + {gBattleAnimSpriteGfx_Smoke, 0x0100, ANIM_TAG_SMOKE}, + {gBattleAnimSpriteGfx_Smoke2, 0x0200, ANIM_TAG_SMOKE_2}, + {gBattleAnimSpriteGfx_Impact, 0x0200, ANIM_TAG_IMPACT}, + {gBattleAnimSpriteGfx_CircleImpact, 0x0020, ANIM_TAG_CIRCLE_IMPACT}, + {gBattleAnimSpriteGfx_Scratch, 0x0a00, ANIM_TAG_SCRATCH}, + {gBattleAnimSpriteGfx_Cut, 0x0800, ANIM_TAG_CUT}, + {gBattleAnimSpriteGfx_SharpTeeth, 0x0800, ANIM_TAG_SHARP_TEETH}, + {gBattleAnimSpriteGfx_RainbowRings, 0x00c0, ANIM_TAG_RAINBOW_RINGS}, + {gBattleAnimSpriteGfx_IceCrystals, 0x01c0, ANIM_TAG_ICE_CRYSTALS}, + {gBattleAnimSpriteGfx_IceSpikes, 0x0100, ANIM_TAG_ICE_SPIKES}, + {gBattleAnimSpriteGfx_HandsAndFeet, 0x0800, ANIM_TAG_HANDS_AND_FEET}, + {gBattleAnimSpriteGfx_MistCloud, 0x0200, ANIM_TAG_MIST_CLOUD}, + {gBattleAnimSpriteGfx_Clamp, 0x0800, ANIM_TAG_CLAMP}, + {gBattleAnimSpriteGfx_Bubble, 0x0180, ANIM_TAG_BUBBLE}, + {gBattleAnimSpriteGfx_Orbs, 0x0180, ANIM_TAG_ORBS}, + {gBattleAnimSpriteGfx_WaterImpact, 0x0200, ANIM_TAG_WATER_IMPACT}, + {gBattleAnimSpriteGfx_WaterOrb, 0x0200, ANIM_TAG_WATER_ORB}, + {gBattleAnimSpriteGfx_PoisonBubble, 0x0180, ANIM_TAG_POISON_BUBBLE}, + {gBattleAnimSpriteGfx_ToxicBubble, 0x0400, ANIM_TAG_TOXIC_BUBBLE}, + {gBattleAnimSpriteGfx_Spikes, 0x0080, ANIM_TAG_SPIKES}, + {gBattleAnimSpriteGfx_HornHit2, 0x0100, ANIM_TAG_HORN_HIT_2}, + {gBattleAnimSpriteGfx_AirWave2, 0x0100, ANIM_TAG_AIR_WAVE_2}, + {gBattleAnimSpriteGfx_SmallBubbles, 0x0140, ANIM_TAG_SMALL_BUBBLES}, + {gBattleAnimSpriteGfx_RoundShadow, 0x0800, ANIM_TAG_ROUND_SHADOW}, + {gBattleAnimSpriteGfx_Sunlight, 0x0200, ANIM_TAG_SUNLIGHT}, + {gBattleAnimSpriteGfx_Spore, 0x0100, ANIM_TAG_SPORE}, + {gBattleAnimSpriteGfx_Flower, 0x00a0, ANIM_TAG_FLOWER}, + {gBattleAnimSpriteGfx_RazorLeaf, 0x0100, ANIM_TAG_RAZOR_LEAF}, + {gBattleAnimSpriteGfx_Needle, 0x0080, ANIM_TAG_NEEDLE}, + {gBattleAnimSpriteGfx_WhirlwindLines, 0x0300, ANIM_TAG_WHIRLWIND_LINES}, + {gBattleAnimSpriteGfx_GoldRing, 0x0100, ANIM_TAG_GOLD_RING}, + {gBattleAnimSpriteGfx_GoldRing, 0x0100, ANIM_TAG_PURPLE_RING}, + {gBattleAnimSpriteGfx_GoldRing, 0x0100, ANIM_TAG_BLUE_RING}, + {gBattleAnimSpriteGfx_GreenLightWall, 0x0800, ANIM_TAG_GREEN_LIGHT_WALL}, + {gBattleAnimSpriteGfx_GreenLightWall, 0x0800, ANIM_TAG_BLUE_LIGHT_WALL}, + {gBattleAnimSpriteGfx_GreenLightWall, 0x0800, ANIM_TAG_RED_LIGHT_WALL}, + {gBattleAnimSpriteGfx_GreenLightWall, 0x0800, ANIM_TAG_GRAY_LIGHT_WALL}, + {gBattleAnimSpriteGfx_GreenLightWall, 0x0800, ANIM_TAG_ORANGE_LIGHT_WALL}, + {gBattleAnimSpriteGfx_BlackBall2, 0x0080, ANIM_TAG_BLACK_BALL_2}, + {gBattleAnimSpriteGfx_MistCloud, 0x0200, ANIM_TAG_PURPLE_GAS_CLOUD}, + {gBattleAnimSpriteGfx_SparkH, 0x0200, ANIM_TAG_SPARK_H}, + {gBattleAnimSpriteGfx_YellowStar, 0x0200, ANIM_TAG_YELLOW_STAR}, + {gBattleAnimSpriteGfx_LargeFreshEgg, 0x0080, ANIM_TAG_LARGE_FRESH_EGG}, + {gBattleAnimSpriteGfx_ShadowBall, 0x0200, ANIM_TAG_SHADOW_BALL}, + {gBattleAnimSpriteGfx_Lick, 0x0500, ANIM_TAG_LICK}, + {gBattleAnimSpriteGfx_VoidLines, 0x0800, ANIM_TAG_VOID_LINES}, + {gBattleAnimSpriteGfx_String, 0x0400, ANIM_TAG_STRING}, + {gBattleAnimSpriteGfx_WebThread, 0x0020, ANIM_TAG_WEB_THREAD}, + {gBattleAnimSpriteGfx_SpiderWeb, 0x0800, ANIM_TAG_SPIDER_WEB}, + {gBattleAnimSpriteGfx_Lightbulb, 0x0100, ANIM_TAG_LIGHTBULB}, + {gBattleAnimSpriteGfx_Slash, 0x0800, ANIM_TAG_SLASH}, + {gBattleAnimSpriteGfx_FocusEnergy, 0x0400, ANIM_TAG_FOCUS_ENERGY}, + {gBattleAnimSpriteGfx_SphereToCube, 0x0a00, ANIM_TAG_SPHERE_TO_CUBE}, + {gBattleAnimSpriteGfx_Tendrils, 0x1000, ANIM_TAG_TENDRILS}, + {gBattleAnimSpriteGfx_Eye, 0x0800, ANIM_TAG_EYE}, + {gBattleAnimSpriteGfx_WhiteShadow, 0x0400, ANIM_TAG_WHITE_SHADOW}, + {gBattleAnimSpriteGfx_TealAlert, 0x0200, ANIM_TAG_TEAL_ALERT}, + {gBattleAnimSpriteGfx_OpeningEye, 0x0800, ANIM_TAG_OPENING_EYE}, + {gBattleAnimSpriteGfx_RoundWhiteHalo, 0x0800, ANIM_TAG_ROUND_WHITE_HALO}, + {gBattleAnimSpriteGfx_FangAttack, 0x0800, ANIM_TAG_FANG_ATTACK}, + {gBattleAnimSpriteGfx_PurpleHandOutline, 0x0200, ANIM_TAG_PURPLE_HAND_OUTLINE}, + {gBattleAnimSpriteGfx_Moon, 0x0800, ANIM_TAG_MOON}, + {gBattleAnimSpriteGfx_GreenSparkle, 0x0200, ANIM_TAG_GREEN_SPARKLE}, + {gBattleAnimSpriteGfx_Spiral, 0x0800, ANIM_TAG_SPIRAL}, + {gBattleAnimSpriteGfx_SnoreZ, 0x0200, ANIM_TAG_SNORE_Z}, + {gBattleAnimSpriteGfx_Explosion, 0x0800, ANIM_TAG_EXPLOSION}, + {gBattleAnimSpriteGfx_Nail, 0x0400, ANIM_TAG_NAIL}, + {gBattleAnimSpriteGfx_GhostlySpirit, 0x0200, ANIM_TAG_GHOSTLY_SPIRIT}, + {gBattleAnimSpriteGfx_WarmRock, 0x0a80, ANIM_TAG_WARM_ROCK}, + {gBattleAnimSpriteGfx_BreakingEgg, 0x0600, ANIM_TAG_BREAKING_EGG}, + {gBattleAnimSpriteGfx_ThinRing, 0x0800, ANIM_TAG_THIN_RING}, + {gBattleAnimSpriteGfx_PunchImpact, 0x0200, ANIM_TAG_PUNCH_IMPACT}, + {gBattleAnimSpriteGfx_Bell, 0x0600, ANIM_TAG_BELL}, + {gBattleAnimSpriteGfx_MusicNotes2, 0x0800, ANIM_TAG_MUSIC_NOTES_2}, + {gBattleAnimSpriteGfx_SpeedDust, 0x0180, ANIM_TAG_SPEED_DUST}, + {gBattleAnimSpriteGfx_TornMetal, 0x0800, ANIM_TAG_TORN_METAL}, + {gBattleAnimSpriteGfx_ThoughtBubble, 0x0800, ANIM_TAG_THOUGHT_BUBBLE}, + {gBattleAnimSpriteGfx_MagentaHeart, 0x0080, ANIM_TAG_MAGENTA_HEART}, + {gBattleAnimSpriteGfx_ElectricOrbs, 0x0080, ANIM_TAG_ELECTRIC_ORBS}, + {gBattleAnimSpriteGfx_CircleOfLight, 0x0800, ANIM_TAG_CIRCLE_OF_LIGHT}, + {gBattleAnimSpriteGfx_Electricity, 0x0800, ANIM_TAG_ELECTRICITY}, + {gBattleAnimSpriteGfx_Finger2, 0x0600, ANIM_TAG_FINGER_2}, + {gBattleAnimSpriteGfx_MovementWaves, 0x0600, ANIM_TAG_MOVEMENT_WAVES}, + {gBattleAnimSpriteGfx_MagentaHeart, 0x0080, ANIM_TAG_RED_HEART}, + {gBattleAnimSpriteGfx_RedOrb, 0x0080, ANIM_TAG_RED_ORB}, + {gBattleAnimSpriteGfx_EyeSparkle, 0x0180, ANIM_TAG_EYE_SPARKLE}, + {gBattleAnimSpriteGfx_MagentaHeart, 0x0080, ANIM_TAG_PINK_HEART}, + {gBattleAnimSpriteGfx_Angel, 0x0200, ANIM_TAG_ANGEL}, + {gBattleAnimSpriteGfx_Devil, 0x0400, ANIM_TAG_DEVIL}, + {gBattleAnimSpriteGfx_Swipe, 0x0a00, ANIM_TAG_SWIPE}, + {gBattleAnimSpriteGfx_Roots, 0x0800, ANIM_TAG_ROOTS}, + {gBattleAnimSpriteGfx_ItemBag, 0x0200, ANIM_TAG_ITEM_BAG}, + {gBattleAnimSpriteGfx_JaggedMusicNote, 0x0400, ANIM_TAG_JAGGED_MUSIC_NOTE}, + {gBattleAnimSpriteGfx_Pokeball, 0x0080, ANIM_TAG_POKEBALL}, + {gBattleAnimSpriteGfx_Spotlight, 0x0800, ANIM_TAG_SPOTLIGHT}, + {gBattleAnimSpriteGfx_LetterZ, 0x0200, ANIM_TAG_LETTER_Z}, + {gBattleAnimSpriteGfx_RapidSpin, 0x0300, ANIM_TAG_RAPID_SPIN}, + {gBattleAnimSpriteGfx_TriAttackTriangle, 0x0800, ANIM_TAG_TRI_ATTACK_TRIANGLE}, + {gBattleAnimSpriteGfx_WispOrb, 0x0380, ANIM_TAG_WISP_ORB}, + {gBattleAnimSpriteGfx_WispFire, 0x0800, ANIM_TAG_WISP_FIRE}, + {gBattleAnimSpriteGfx_GoldStars, 0x00c0, ANIM_TAG_GOLD_STARS}, + {gBattleAnimSpriteGfx_EclipsingOrb, 0x0800, ANIM_TAG_ECLIPSING_ORB}, + {gBattleAnimSpriteGfx_GrayOrb, 0x0060, ANIM_TAG_GRAY_ORB}, + {gBattleAnimSpriteGfx_GrayOrb, 0x0060, ANIM_TAG_BLUE_ORB}, + {gBattleAnimSpriteGfx_GrayOrb, 0x0060, ANIM_TAG_RED_ORB_2}, + {gBattleAnimSpriteGfx_PinkPetal, 0x0080, ANIM_TAG_PINK_PETAL}, + {gBattleAnimSpriteGfx_PainSplit, 0x0180, ANIM_TAG_PAIN_SPLIT}, + {gBattleAnimSpriteGfx_Confetti, 0x0180, ANIM_TAG_CONFETTI}, + {gBattleAnimSpriteGfx_GreenStar, 0x0200, ANIM_TAG_GREEN_STAR}, + {gBattleAnimSpriteGfx_PinkCloud, 0x0200, ANIM_TAG_PINK_CLOUD}, + {gBattleAnimSpriteGfx_SweatDrop, 0x0020, ANIM_TAG_SWEAT_DROP}, + {gBattleAnimSpriteGfx_GuardRing, 0x0400, ANIM_TAG_GUARD_RING}, + {gBattleAnimSpriteGfx_PurpleScratch, 0x0600, ANIM_TAG_PURPLE_SCRATCH}, + {gBattleAnimSpriteGfx_PurpleSwipe, 0x1000, ANIM_TAG_PURPLE_SWIPE}, + {gBattleAnimSpriteGfx_TagHand, 0x0400, ANIM_TAG_TAG_HAND}, + {gBattleAnimSpriteGfx_SmallRedEye, 0x0020, ANIM_TAG_SMALL_RED_EYE}, + {gBattleAnimSpriteGfx_HollowOrb, 0x0080, ANIM_TAG_HOLLOW_ORB}, + {gBattleAnimSpriteGfx_XSign, 0x0800, ANIM_TAG_X_SIGN}, + {gBattleAnimSpriteGfx_BluegreenOrb, 0x0080, ANIM_TAG_BLUEGREEN_ORB}, + {gBattleAnimSpriteGfx_PawPrint, 0x0200, ANIM_TAG_PAW_PRINT}, + {gBattleAnimSpriteGfx_PurpleFlame, 0x0400, ANIM_TAG_PURPLE_FLAME}, + {gBattleAnimSpriteGfx_RedBall, 0x0200, ANIM_TAG_RED_BALL}, + {gBattleAnimSpriteGfx_SmellingsaltEffect, 0x0200, ANIM_TAG_SMELLINGSALT_EFFECT}, + {gBattleAnimSpriteGfx_Meteor, 0x0800, ANIM_TAG_METEOR}, + {gBattleAnimSpriteGfx_FlatRock, 0x0280, ANIM_TAG_FLAT_ROCK}, + {gBattleAnimSpriteGfx_MagnifyingGlass, 0x0200, ANIM_TAG_MAGNIFYING_GLASS}, + {gBattleAnimSpriteGfx_WaterOrb, 0x0200, ANIM_TAG_BROWN_ORB}, + {gBattleAnimSpriteGfx_MetalSoundWaves, 0x0400, ANIM_TAG_METAL_SOUND_WAVES}, + {gBattleAnimSpriteGfx_FlyingDirt, 0x0200, ANIM_TAG_FLYING_DIRT}, + {gBattleAnimSpriteGfx_IcicleSpear, 0x0200, ANIM_TAG_ICICLE_SPEAR}, + {gBattleAnimSpriteGfx_Hail, 0x0080, ANIM_TAG_HAIL}, + {gBattleAnimSpriteGfx_GlowyRedOrb, 0x0020, ANIM_TAG_GLOWY_RED_ORB}, + {gBattleAnimSpriteGfx_GlowyRedOrb, 0x0020, ANIM_TAG_GLOWY_GREEN_ORB}, + {gBattleAnimSpriteGfx_GreenSpike, 0x0080, ANIM_TAG_GREEN_SPIKE}, + {gBattleAnimSpriteGfx_CircleOfLight, 0x0800, ANIM_TAG_WHITE_CIRCLE_OF_LIGHT}, + {gBattleAnimSpriteGfx_GlowyRedOrb, 0x0020, ANIM_TAG_GLOWY_BLUE_ORB}, + {gBattleAnimSpriteGfx_SafariBait, 0x0080, ANIM_TAG_SAFARI_BAIT}, + {gBattleAnimSpriteGfx_WhiteFeather, 0x0400, ANIM_TAG_WHITE_FEATHER}, + {gBattleAnimSpriteGfx_Sparkle6, 0x0080, ANIM_TAG_SPARKLE_6}, + {gBattleAnimSpriteGfx_Splash, 0x0800, ANIM_TAG_SPLASH}, + {gBattleAnimSpriteGfx_SweatBead, 0x0020, ANIM_TAG_SWEAT_BEAD}, + {gBattleAnimSpriteGfx_Gem1, 0x0800, ANIM_TAG_GEM_1}, + {gBattleAnimSpriteGfx_Gem2, 0x0800, ANIM_TAG_GEM_2}, + {gBattleAnimSpriteGfx_Gem3, 0x0800, ANIM_TAG_GEM_3}, + {gBattleAnimSpriteGfx_SlamHit2, 0x1000, ANIM_TAG_SLAM_HIT_2}, + {gBattleAnimSpriteGfx_Recycle, 0x0800, ANIM_TAG_RECYCLE}, + {gBattleAnimSpriteGfx_RedParticles, 0x00a0, ANIM_TAG_RED_PARTICLES}, + {gBattleAnimSpriteGfx_Protect, 0x0800, ANIM_TAG_PROTECT}, + {gBattleAnimSpriteGfx_DirtMound, 0x0200, ANIM_TAG_DIRT_MOUND}, + {gBattleAnimSpriteGfx_Shock3, 0x0600, ANIM_TAG_SHOCK_3}, + {gBattleAnimSpriteGfx_WeatherBall, 0x0200, ANIM_TAG_WEATHER_BALL}, + {gBattleAnimSpriteGfx_Bird, 0x0800, ANIM_TAG_BIRD}, + {gBattleAnimSpriteGfx_CrossImpact, 0x0200, ANIM_TAG_CROSS_IMPACT}, + {gBattleAnimSpriteGfx_Slash, 0x0800, ANIM_TAG_SLASH_2}, + {gBattleAnimSpriteGfx_SlamHit, 0x1000, ANIM_TAG_WHIP_HIT}, + {gBattleAnimSpriteGfx_GoldRing, 0x0100, ANIM_TAG_BLUE_RING_2}, +}; + +const struct CompressedSpritePalette gBattleAnimPaletteTable[] = +{ + {gBattleAnimSpritePal_Bone, ANIM_TAG_BONE}, + {gBattleAnimSpritePal_Spark, ANIM_TAG_SPARK}, + {gBattleAnimSpritePal_Pencil, ANIM_TAG_PENCIL}, + {gBattleAnimSpritePal_AirWave, ANIM_TAG_AIR_WAVE}, + {gBattleAnimSpritePal_Orb, ANIM_TAG_ORB}, + {gBattleAnimSpritePal_Sword, ANIM_TAG_SWORD}, + {gBattleAnimSpritePal_Seed, ANIM_TAG_SEED}, + {gBattleAnimSpritePal_Explosion6, ANIM_TAG_EXPLOSION_6}, + {gBattleAnimSpritePal_PinkOrb, ANIM_TAG_PINK_ORB}, + {gBattleAnimSpritePal_Gust, ANIM_TAG_GUST}, + {gBattleAnimSpritePal_IceCube, ANIM_TAG_ICE_CUBE}, + {gBattleAnimSpritePal_Spark2, ANIM_TAG_SPARK_2}, + {gBattleAnimSpritePal_Orange, ANIM_TAG_ORANGE}, + {gBattleAnimSpritePal_YellowBall, ANIM_TAG_YELLOW_BALL}, + {gBattleAnimSpritePal_LockOn, ANIM_TAG_LOCK_ON}, + {gBattleAnimSpritePal_TiedBag, ANIM_TAG_TIED_BAG}, + {gBattleAnimSpritePal_BlackSmoke, ANIM_TAG_BLACK_SMOKE}, + {gBattleAnimSpritePal_BlackSmoke, ANIM_TAG_BLACK_BALL}, + {gBattleAnimSpritePal_Conversion, ANIM_TAG_CONVERSION}, + {gBattleAnimSpritePal_Glass, ANIM_TAG_GLASS}, + {gBattleAnimSpritePal_HornHit, ANIM_TAG_HORN_HIT}, + {gBattleAnimSpritePal_Hit, ANIM_TAG_HIT}, + {gBattleAnimSpritePal_Hit2, ANIM_TAG_HIT_2}, + {gBattleAnimSpritePal_BlueShards, ANIM_TAG_BLUE_SHARDS}, + {gBattleAnimSpritePal_ClosingEye, ANIM_TAG_CLOSING_EYE}, + {gBattleAnimSpritePal_WavingHand, ANIM_TAG_WAVING_HAND}, + {gBattleAnimSpritePal_HitDuplicate, ANIM_TAG_HIT_DUPLICATE}, + {gBattleAnimSpritePal_Leer, ANIM_TAG_LEER}, + {gBattleAnimSpritePal_BlueBurst, ANIM_TAG_BLUE_BURST}, + {gBattleAnimSpritePal_SmallEmber, ANIM_TAG_SMALL_EMBER}, + {gBattleAnimSpritePal_GraySmoke, ANIM_TAG_GRAY_SMOKE}, + {gBattleAnimSpritePal_BlueStar, ANIM_TAG_BLUE_STAR}, + {gBattleAnimSpritePal_BubbleBurst, ANIM_TAG_BUBBLE_BURST}, + {gBattleAnimSpritePal_Fire, ANIM_TAG_FIRE}, + {gBattleAnimSpritePal_Fire, ANIM_TAG_SPINNING_FIRE}, + {gBattleAnimSpritePal_Fire, ANIM_TAG_FIRE_PLUME}, + {gBattleAnimSpritePal_Lightning2, ANIM_TAG_LIGHTNING_2}, + {gBattleAnimSpritePal_Lightning2, ANIM_TAG_LIGHTNING}, + {gBattleAnimSpritePal_ClawSlash2, ANIM_TAG_CLAW_SLASH_2}, + {gBattleAnimSpritePal_ClawSlash, ANIM_TAG_CLAW_SLASH}, + {gBattleAnimSpritePal_ClawSlash2, ANIM_TAG_SCRATCH_3}, + {gBattleAnimSpritePal_ClawSlash2, ANIM_TAG_SCRATCH_2}, + {gBattleAnimSpritePal_BubbleBurst2, ANIM_TAG_BUBBLE_BURST_2}, + {gBattleAnimSpritePal_IceChunk, ANIM_TAG_ICE_CHUNK}, + {gBattleAnimSpritePal_Glass2, ANIM_TAG_GLASS_2}, + {gBattleAnimSpritePal_PinkHeart2, ANIM_TAG_PINK_HEART_2}, + {gBattleAnimSpritePal_SapDrip, ANIM_TAG_SAP_DRIP}, + {gBattleAnimSpritePal_SapDrip2, ANIM_TAG_SAP_DRIP}, + {gBattleAnimSpritePal_Sparkle1, ANIM_TAG_SPARKLE_1}, + {gBattleAnimSpritePal_Sparkle2, ANIM_TAG_SPARKLE_2}, + {gBattleAnimSpritePal_HumanoidFoot, ANIM_TAG_HUMANOID_FOOT}, + {gBattleAnimSpritePal_HumanoidFoot, ANIM_TAG_MONSTER_FOOT}, + {gBattleAnimSpritePal_HumanoidFoot, ANIM_TAG_HUMANOID_HAND}, + {gBattleAnimSpritePal_HitDuplicate, ANIM_TAG_NOISE_LINE}, + {gBattleAnimSpritePal_YellowUnk, ANIM_TAG_YELLOW_UNK}, + {gBattleAnimSpritePal_HumanoidFoot, ANIM_TAG_RED_FIST}, + {gBattleAnimSpritePal_SlamHit, ANIM_TAG_SLAM_HIT}, + {gBattleAnimSpritePal_Ring, ANIM_TAG_RING}, + {gBattleAnimSpritePal_Rocks, ANIM_TAG_ROCKS}, + {gBattleAnimSpritePal_Z, ANIM_TAG_Z}, + {gBattleAnimSpritePal_YellowUnk2, ANIM_TAG_YELLOW_UNK_2}, + {gBattleAnimSpritePal_AirSlash, ANIM_TAG_AIR_SLASH}, + {gBattleAnimSpritePal_SpinningGreenOrbs, ANIM_TAG_SPINNING_GREEN_ORBS}, + {gBattleAnimSpritePal_Leaf, ANIM_TAG_LEAF}, + {gBattleAnimSpritePal_Finger, ANIM_TAG_FINGER}, + {gBattleAnimSpritePal_PoisonPowder, ANIM_TAG_POISON_POWDER}, + {gBattleAnimSpritePal_BrownTriangle, ANIM_TAG_BROWN_TRIANGLE}, + {gBattleAnimSpritePal_SleepPowder, ANIM_TAG_SLEEP_POWDER}, + {gBattleAnimSpritePal_StunSpore, ANIM_TAG_STUN_SPORE}, + {gBattleAnimSpritePal_PoisonPowder, ANIM_TAG_POWDER}, + {gBattleAnimSpritePal_Sparkle3, ANIM_TAG_SPARKLE_3}, + {gBattleAnimSpritePal_Sparkle3, ANIM_TAG_SPARKLE_4}, + {gBattleAnimSpritePal_MusicNotes, ANIM_TAG_MUSIC_NOTES}, + {gBattleAnimSpritePal_Duck, ANIM_TAG_DUCK}, + {gBattleAnimSpritePal_MudSand, ANIM_TAG_MUD_SAND}, + {gBattleAnimSpritePal_Alert, ANIM_TAG_ALERT}, + {gBattleAnimSpritePal_BlueFlames, ANIM_TAG_BLUE_FLAMES}, + {gBattleAnimSpritePal_BlueFlames, ANIM_TAG_BLUE_FLAMES_2}, + {gBattleAnimSpritePal_Shock4, ANIM_TAG_SHOCK_4}, + {gBattleAnimSpritePal_Shock4, ANIM_TAG_SHOCK}, + {gBattleAnimSpritePal_Bell2, ANIM_TAG_BELL_2}, + {gBattleAnimSpritePal_PinkGlove, ANIM_TAG_PINK_GLOVE}, + {gBattleAnimSpritePal_BlueLines, ANIM_TAG_BLUE_LINES}, + {gBattleAnimSpritePal_Impact3, ANIM_TAG_IMPACT_3}, + {gBattleAnimSpritePal_Impact2, ANIM_TAG_IMPACT_2}, + {gBattleAnimSpritePal_Reticle, ANIM_TAG_RETICLE}, + {gBattleAnimSpritePal_Breath, ANIM_TAG_BREATH}, + {gBattleAnimSpritePal_Anger, ANIM_TAG_ANGER}, + {gBattleAnimSpritePal_Snowball, ANIM_TAG_SNOWBALL}, + {gBattleAnimSpritePal_Vine, ANIM_TAG_VINE}, + {gBattleAnimSpritePal_Sword2, ANIM_TAG_SWORD_2}, + {gBattleAnimSpritePal_Clapping, ANIM_TAG_CLAPPING}, + {gBattleAnimSpritePal_RedTube, ANIM_TAG_RED_TUBE}, + {gBattleAnimSpritePal_Amnesia, ANIM_TAG_AMNESIA}, + {gBattleAnimSpritePal_String2, ANIM_TAG_STRING_2}, + {gBattleAnimSpritePal_Pencil2, ANIM_TAG_PENCIL_2}, + {gBattleAnimSpritePal_Petal, ANIM_TAG_PETAL}, + {gBattleAnimSpritePal_BentSpoon, ANIM_TAG_BENT_SPOON}, + {gBattleAnimSpritePal_String2, ANIM_TAG_WEB}, + {gBattleAnimSpritePal_MilkBottle, ANIM_TAG_MILK_BOTTLE}, + {gBattleAnimSpritePal_Coin, ANIM_TAG_COIN}, + {gBattleAnimSpritePal_CrackedEgg, ANIM_TAG_CRACKED_EGG}, + {gBattleAnimSpritePal_CrackedEgg, ANIM_TAG_HATCHED_EGG}, + {gBattleAnimSpritePal_FreshEgg, ANIM_TAG_FRESH_EGG}, + {gBattleAnimSpritePal_Fangs, ANIM_TAG_FANGS}, + {gBattleAnimSpritePal_Explosion2, ANIM_TAG_EXPLOSION_2}, + {gBattleAnimSpritePal_Explosion2, ANIM_TAG_EXPLOSION_3}, + {gBattleAnimSpritePal_WaterDroplet, ANIM_TAG_WATER_DROPLET}, + {gBattleAnimSpritePal_WaterDroplet, ANIM_TAG_WATER_DROPLET_2}, + {gBattleAnimSpritePal_Seed2, ANIM_TAG_SEED_2}, + {gBattleAnimSpritePal_Seed2, ANIM_TAG_SPROUT}, + {gBattleAnimSpritePal_RedWand, ANIM_TAG_RED_WAND}, + {gBattleAnimSpritePal_PurpleGreenUnk, ANIM_TAG_PURPLE_GREEN_UNK}, + {gBattleAnimSpritePal_WaterColumn, ANIM_TAG_WATER_COLUMN}, + {gBattleAnimSpritePal_MudUnk, ANIM_TAG_MUD_UNK}, + {gBattleAnimSpritePal_RainDrops, ANIM_TAG_RAIN_DROPS}, + {gBattleAnimSpritePal_FurySwipes, ANIM_TAG_FURY_SWIPES}, + {gBattleAnimSpritePal_Vine2, ANIM_TAG_VINE_2}, + {gBattleAnimSpritePal_Teeth, ANIM_TAG_TEETH}, + {gBattleAnimSpritePal_Bone2, ANIM_TAG_BONE_2}, + {gBattleAnimSpritePal_WhiteBag, ANIM_TAG_WHITE_BAG}, + {gBattleAnimSpritePal_Unknown, ANIM_TAG_UNKNOWN}, + {gBattleAnimSpritePal_PurpleCoral, ANIM_TAG_PURPLE_CORAL}, + {gBattleAnimSpritePal_PurpleCoral, ANIM_TAG_PURPLE_DROPLET}, + {gBattleAnimSpritePal_Shock2, ANIM_TAG_SHOCK_2}, + {gBattleAnimSpritePal_ClosingEye2, ANIM_TAG_CLOSING_EYE_2}, + {gBattleAnimSpritePal_MetalBall, ANIM_TAG_METAL_BALL}, + {gBattleAnimSpritePal_MonsterDoll, ANIM_TAG_MONSTER_DOLL}, + {gBattleAnimSpritePal_Whirlwind, ANIM_TAG_WHIRLWIND}, + {gBattleAnimSpritePal_Whirlwind, ANIM_TAG_WHIRLWIND_2}, + {gBattleAnimSpritePal_Explosion4, ANIM_TAG_EXPLOSION_4}, + {gBattleAnimSpritePal_Explosion4, ANIM_TAG_EXPLOSION_5}, + {gBattleAnimSpritePal_Tongue, ANIM_TAG_TONGUE}, + {gBattleAnimSpritePal_Smoke, ANIM_TAG_SMOKE}, + {gBattleAnimSpritePal_Smoke, ANIM_TAG_SMOKE_2}, + {gBattleAnimSpritePal_Impact, ANIM_TAG_IMPACT}, + {gBattleAnimSpritePal_CircleImpact, ANIM_TAG_CIRCLE_IMPACT}, + {gBattleAnimSpritePal_Impact, ANIM_TAG_SCRATCH}, + {gBattleAnimSpritePal_Impact, ANIM_TAG_CUT}, + {gBattleAnimSpritePal_SharpTeeth, ANIM_TAG_SHARP_TEETH}, + {gBattleAnimSpritePal_RainbowRings, ANIM_TAG_RAINBOW_RINGS}, + {gBattleAnimSpritePal_IceCrystals, ANIM_TAG_ICE_CRYSTALS}, + {gBattleAnimSpritePal_IceCrystals, ANIM_TAG_ICE_SPIKES}, + {gBattleAnimSpritePal_HandsAndFeet, ANIM_TAG_HANDS_AND_FEET}, + {gBattleAnimSpritePal_MistCloud, ANIM_TAG_MIST_CLOUD}, + {gBattleAnimSpritePal_SharpTeeth, ANIM_TAG_CLAMP}, + {gBattleAnimSpritePal_RainDrops, ANIM_TAG_BUBBLE}, + {gBattleAnimSpritePal_Orbs, ANIM_TAG_ORBS}, + {gBattleAnimSpritePal_WaterImpact, ANIM_TAG_WATER_IMPACT}, + {gBattleAnimSpritePal_WaterImpact, ANIM_TAG_WATER_ORB}, + {gBattleAnimSpritePal_PoisonBubble, ANIM_TAG_POISON_BUBBLE}, + {gBattleAnimSpritePal_PoisonBubble, ANIM_TAG_TOXIC_BUBBLE}, + {gBattleAnimSpritePal_Spikes, ANIM_TAG_SPIKES}, + {gBattleAnimSpritePal_HornHit2, ANIM_TAG_HORN_HIT_2}, + {gBattleAnimSpritePal_AirWave2, ANIM_TAG_AIR_WAVE_2}, + {gBattleAnimSpritePal_SmallBubbles, ANIM_TAG_SMALL_BUBBLES}, + {gBattleAnimSpritePal_RoundShadow, ANIM_TAG_ROUND_SHADOW}, + {gBattleAnimSpritePal_Sunlight, ANIM_TAG_SUNLIGHT}, + {gBattleAnimSpritePal_Spore, ANIM_TAG_SPORE}, + {gBattleAnimSpritePal_Flower, ANIM_TAG_FLOWER}, + {gBattleAnimSpritePal_RazorLeaf, ANIM_TAG_RAZOR_LEAF}, + {gBattleAnimSpritePal_Needle, ANIM_TAG_NEEDLE}, + {gBattleAnimSpritePal_WhirlwindLines, ANIM_TAG_WHIRLWIND_LINES}, + {gBattleAnimSpritePal_GoldRing, ANIM_TAG_GOLD_RING}, + {gBattleAnimSpritePal_PurpleRing, ANIM_TAG_PURPLE_RING}, + {gBattleAnimSpritePal_BlueRing, ANIM_TAG_BLUE_RING}, + {gBattleAnimSpritePal_GreenLightWall, ANIM_TAG_GREEN_LIGHT_WALL}, + {gBattleAnimSpritePal_BlueLightWall, ANIM_TAG_BLUE_LIGHT_WALL}, + {gBattleAnimSpritePal_RedLightWall, ANIM_TAG_RED_LIGHT_WALL}, + {gBattleAnimSpritePal_GrayLightWall, ANIM_TAG_GRAY_LIGHT_WALL}, + {gBattleAnimSpritePal_OrangeLightWall, ANIM_TAG_ORANGE_LIGHT_WALL}, + {gBattleAnimSpritePal_BlackBall2, ANIM_TAG_BLACK_BALL_2}, + {gBattleAnimSpritePal_PurpleGasCloud, ANIM_TAG_PURPLE_GAS_CLOUD}, + {gBattleAnimSpritePal_Spark, ANIM_TAG_SPARK_H}, + {gBattleAnimSpritePal_YellowStar, ANIM_TAG_YELLOW_STAR}, + {gBattleAnimSpritePal_LargeFreshEgg, ANIM_TAG_LARGE_FRESH_EGG}, + {gBattleAnimSpritePal_ShadowBall, ANIM_TAG_SHADOW_BALL}, + {gBattleAnimSpritePal_Lick, ANIM_TAG_LICK}, + {gBattleAnimSpritePal_VoidLines, ANIM_TAG_VOID_LINES}, + {gBattleAnimSpritePal_String, ANIM_TAG_STRING}, + {gBattleAnimSpritePal_String, ANIM_TAG_WEB_THREAD}, + {gBattleAnimSpritePal_String, ANIM_TAG_SPIDER_WEB}, + {gBattleAnimSpritePal_Lightbulb, ANIM_TAG_LIGHTBULB}, + {gBattleAnimSpritePal_Slash, ANIM_TAG_SLASH}, + {gBattleAnimSpritePal_FocusEnergy, ANIM_TAG_FOCUS_ENERGY}, + {gBattleAnimSpritePal_SphereToCube, ANIM_TAG_SPHERE_TO_CUBE}, + {gBattleAnimSpritePal_Tendrils, ANIM_TAG_TENDRILS}, + {gBattleAnimSpritePal_Eye, ANIM_TAG_EYE}, + {gBattleAnimSpritePal_WhiteShadow, ANIM_TAG_WHITE_SHADOW}, + {gBattleAnimSpritePal_TealAlert, ANIM_TAG_TEAL_ALERT}, + {gBattleAnimSpritePal_OpeningEye, ANIM_TAG_OPENING_EYE}, + {gBattleAnimSpritePal_RoundWhiteHalo, ANIM_TAG_ROUND_WHITE_HALO}, + {gBattleAnimSpritePal_FangAttack, ANIM_TAG_FANG_ATTACK}, + {gBattleAnimSpritePal_PurpleHandOutline, ANIM_TAG_PURPLE_HAND_OUTLINE}, + {gBattleAnimSpritePal_Moon, ANIM_TAG_MOON}, + {gBattleAnimSpritePal_GreenSparkle, ANIM_TAG_GREEN_SPARKLE}, + {gBattleAnimSpritePal_Spiral, ANIM_TAG_SPIRAL}, + {gBattleAnimSpritePal_SnoreZ, ANIM_TAG_SNORE_Z}, + {gBattleAnimSpritePal_Explosion, ANIM_TAG_EXPLOSION}, + {gBattleAnimSpritePal_Nail, ANIM_TAG_NAIL}, + {gBattleAnimSpritePal_GhostlySpirit, ANIM_TAG_GHOSTLY_SPIRIT}, + {gBattleAnimSpritePal_WarmRock, ANIM_TAG_WARM_ROCK}, + {gBattleAnimSpritePal_BreakingEgg, ANIM_TAG_BREAKING_EGG}, + {gBattleAnimSpritePal_ThinRing, ANIM_TAG_THIN_RING}, + {gBattleAnimSpritePal_PunchImpact, ANIM_TAG_PUNCH_IMPACT}, + {gBattleAnimSpritePal_Bell, ANIM_TAG_BELL}, + {gBattleAnimSpritePal_MusicNotes2, ANIM_TAG_MUSIC_NOTES_2}, + {gBattleAnimSpritePal_SpeedDust, ANIM_TAG_SPEED_DUST}, + {gBattleAnimSpritePal_BlueLightWall, ANIM_TAG_TORN_METAL}, + {gBattleAnimSpritePal_ThoughtBubble, ANIM_TAG_THOUGHT_BUBBLE}, + {gBattleAnimSpritePal_MagentaHeart, ANIM_TAG_MAGENTA_HEART}, + {gBattleAnimSpritePal_ElectricOrbs, ANIM_TAG_ELECTRIC_ORBS}, + {gBattleAnimSpritePal_ElectricOrbs, ANIM_TAG_CIRCLE_OF_LIGHT}, + {gBattleAnimSpritePal_ElectricOrbs, ANIM_TAG_ELECTRICITY}, + {gBattleAnimSpritePal_Finger, ANIM_TAG_FINGER_2}, + {gBattleAnimSpritePal_MovementWaves, ANIM_TAG_MOVEMENT_WAVES}, + {gBattleAnimSpritePal_RedHeart, ANIM_TAG_RED_HEART}, + {gBattleAnimSpritePal_RedOrb, ANIM_TAG_RED_ORB}, + {gBattleAnimSpritePal_EyeSparkle, ANIM_TAG_EYE_SPARKLE}, + {gBattleAnimSpritePal_PinkHeart, ANIM_TAG_PINK_HEART}, + {gBattleAnimSpritePal_Angel, ANIM_TAG_ANGEL}, + {gBattleAnimSpritePal_Devil, ANIM_TAG_DEVIL}, + {gBattleAnimSpritePal_Swipe, ANIM_TAG_SWIPE}, + {gBattleAnimSpritePal_Roots, ANIM_TAG_ROOTS}, + {gBattleAnimSpritePal_ItemBag, ANIM_TAG_ITEM_BAG}, + {gBattleAnimSpritePal_JaggedMusicNote, ANIM_TAG_JAGGED_MUSIC_NOTE}, + {gBattleAnimSpritePal_Pokeball, ANIM_TAG_POKEBALL}, + {gBattleAnimSpritePal_Pokeball, ANIM_TAG_SPOTLIGHT}, + {gBattleAnimSpritePal_LetterZ, ANIM_TAG_LETTER_Z}, + {gBattleAnimSpritePal_RapidSpin, ANIM_TAG_RAPID_SPIN}, + {gBattleAnimSpritePal_TriAttackTriangle, ANIM_TAG_TRI_ATTACK_TRIANGLE}, + {gBattleAnimSpritePal_WispOrb, ANIM_TAG_WISP_ORB}, + {gBattleAnimSpritePal_WispOrb, ANIM_TAG_WISP_FIRE}, + {gBattleAnimSpritePal_GoldStars, ANIM_TAG_GOLD_STARS}, + {gBattleAnimSpritePal_EclipsingOrb, ANIM_TAG_ECLIPSING_ORB}, + {gBattleAnimSpritePal_GrayOrb, ANIM_TAG_GRAY_ORB}, + {gBattleAnimSpritePal_BlueOrb, ANIM_TAG_BLUE_ORB}, + {gBattleAnimSpritePal_RedOrb2, ANIM_TAG_RED_ORB_2}, + {gBattleAnimSpritePal_PinkPetal, ANIM_TAG_PINK_PETAL}, + {gBattleAnimSpritePal_PainSplit, ANIM_TAG_PAIN_SPLIT}, + {gBattleAnimSpritePal_Confetti, ANIM_TAG_CONFETTI}, + {gBattleAnimSpritePal_GreenStar, ANIM_TAG_GREEN_STAR}, + {gBattleAnimSpritePal_PinkCloud, ANIM_TAG_PINK_CLOUD}, + {gBattleAnimSpritePal_SweatDrop, ANIM_TAG_SWEAT_DROP}, + {gBattleAnimSpritePal_GuardRing, ANIM_TAG_GUARD_RING}, + {gBattleAnimSpritePal_PurpleScratch, ANIM_TAG_PURPLE_SCRATCH}, + {gBattleAnimSpritePal_PurpleScratch, ANIM_TAG_PURPLE_SWIPE}, + {gBattleAnimSpritePal_Finger, ANIM_TAG_TAG_HAND}, + {gBattleAnimSpritePal_SmallRedEye, ANIM_TAG_SMALL_RED_EYE}, + {gBattleAnimSpritePal_HollowOrb, ANIM_TAG_HOLLOW_ORB}, + {gBattleAnimSpritePal_HollowOrb, ANIM_TAG_X_SIGN}, + {gBattleAnimSpritePal_BluegreenOrb, ANIM_TAG_BLUEGREEN_ORB}, + {gBattleAnimSpritePal_PawPrint, ANIM_TAG_PAW_PRINT}, + {gBattleAnimSpritePal_PurpleFlame, ANIM_TAG_PURPLE_FLAME}, + {gBattleAnimSpritePal_RedBall, ANIM_TAG_RED_BALL}, + {gBattleAnimSpritePal_SmellingsaltEffect, ANIM_TAG_SMELLINGSALT_EFFECT}, + {gBattleAnimSpritePal_Meteor, ANIM_TAG_METEOR}, + {gBattleAnimSpritePal_FlatRock, ANIM_TAG_FLAT_ROCK}, + {gBattleAnimSpritePal_MagnifyingGlass, ANIM_TAG_MAGNIFYING_GLASS}, + {gBattleAnimSpritePal_BrownOrb, ANIM_TAG_BROWN_ORB}, + {gBattleAnimSpritePal_MetalSoundWaves, ANIM_TAG_METAL_SOUND_WAVES}, + {gBattleAnimSpritePal_FlyingDirt, ANIM_TAG_FLYING_DIRT}, + {gBattleAnimSpritePal_IcicleSpear, ANIM_TAG_ICICLE_SPEAR}, + {gBattleAnimSpritePal_Hail, ANIM_TAG_HAIL}, + {gBattleAnimSpritePal_GlowyRedOrb, ANIM_TAG_GLOWY_RED_ORB}, + {gBattleAnimSpritePal_GlowyGreenOrb, ANIM_TAG_GLOWY_GREEN_ORB}, + {gBattleAnimSpritePal_GreenSpike, ANIM_TAG_GREEN_SPIKE}, + {gBattleAnimSpritePal_WhiteCircleOfLight, ANIM_TAG_WHITE_CIRCLE_OF_LIGHT}, + {gBattleAnimSpritePal_GlowyBlueOrb, ANIM_TAG_GLOWY_BLUE_ORB}, + {gBattleAnimSpritePal_SafariBait, ANIM_TAG_SAFARI_BAIT}, + {gBattleAnimSpritePal_WhiteFeather, ANIM_TAG_WHITE_FEATHER}, + {gBattleAnimSpritePal_Sparkle6, ANIM_TAG_SPARKLE_6}, + {gBattleAnimSpritePal_Splash, ANIM_TAG_SPLASH}, + {gBattleAnimSpritePal_Splash, ANIM_TAG_SWEAT_BEAD}, + {gBattleAnimSpritePal_Gem1, ANIM_TAG_GEM_1}, + {gBattleAnimSpritePal_Gem1, ANIM_TAG_GEM_2}, + {gBattleAnimSpritePal_Gem1, ANIM_TAG_GEM_3}, + {gBattleAnimSpritePal_SlamHit2, ANIM_TAG_SLAM_HIT_2}, + {gBattleAnimSpritePal_Recycle, ANIM_TAG_RECYCLE}, + {gBattleAnimSpritePal_RedParticles, ANIM_TAG_RED_PARTICLES}, + {gBattleAnimSpritePal_Protect, ANIM_TAG_PROTECT}, + {gBattleAnimSpritePal_DirtMound, ANIM_TAG_DIRT_MOUND}, + {gBattleAnimSpritePal_Shock3, ANIM_TAG_SHOCK_3}, + {gBattleAnimSpritePal_WeatherBall, ANIM_TAG_WEATHER_BALL}, + {gBattleAnimSpritePal_Bird, ANIM_TAG_BIRD}, + {gBattleAnimSpritePal_CrossImpact, ANIM_TAG_CROSS_IMPACT}, + {gBattleAnimSpritePal_Slash2, ANIM_TAG_SLASH_2}, + {gBattleAnimSpritePal_WhipHit, ANIM_TAG_WHIP_HIT}, + {gBattleAnimSpritePal_BlueRing2, ANIM_TAG_BLUE_RING_2}, +}; + +const struct BattleAnimBackground gBattleAnimBackgroundTable[] = +{ + [BG_NONE] = {gBattleAnimBgImage_Dark, gBattleAnimBgPalette_Dark, gBattleAnimBgTilemap_Dark}, + [BG_DARK] = {gBattleAnimBgImage_Dark, gBattleAnimBgPalette_Dark, gBattleAnimBgTilemap_Dark}, + [BG_GHOST] = {gBattleAnimBgImage_Ghost, gBattleAnimBgPalette_Ghost, gBattleAnimBgTilemap_Ghost}, + [BG_PSYCHIC] = {gBattleAnimBgImage_Psychic, gBattleAnimBgPalette_Psychic, gBattleAnimBgTilemap_Psychic}, + [BG_IMPACT_OPPONENT] = {gBattleAnimBgImage_Impact, gBattleAnimBgPalette_Impact, gBattleAnimBgTilemap_ImpactOpponent}, + [BG_IMPACT_PLAYER] = {gBattleAnimBgImage_Impact, gBattleAnimBgPalette_Impact, gBattleAnimBgTilemap_ImpactPlayer}, + [BG_IMPACT_CONTESTS] = {gBattleAnimBgImage_Impact, gBattleAnimBgPalette_Impact, gBattleAnimBgTilemap_ImpactContests}, + [BG_DRILL] = {gBattleAnimBgImage_Drill, gBattleAnimBgPalette_Drill, gBattleAnimBgTilemap_Drill}, + [BG_DRILL_CONTESTS] = {gBattleAnimBgImage_Drill, gBattleAnimBgPalette_Drill, gBattleAnimBgTilemap_DrillContests}, + [BG_HIGHSPEED_OPPONENT] = {gBattleAnimBgImage_Highspeed, gBattleAnimBgPalette_Highspeed, gBattleAnimBgTilemap_HighspeedOpponent}, + [BG_HIGHSPEED_PLAYER] = {gBattleAnimBgImage_Highspeed, gBattleAnimBgPalette_Highspeed, gBattleAnimBgTilemap_HighspeedPlayer}, + [BG_THUNDER] = {gBattleAnimBgImage_Thunder, gBattleAnimBgPalette_Thunder, gBattleAnimBgTilemap_Thunder}, + [BG_GUILLOTINE_OPPONENT] = {gBattleAnimBgImage_Guillotine, gBattleAnimBgPalette_Guillotine, gBattleAnimBgTilemap_GuillotineOpponent}, + [BG_GUILLOTINE_PLAYER] = {gBattleAnimBgImage_Guillotine, gBattleAnimBgPalette_Guillotine, gBattleAnimBgTilemap_GuillotinePlayer}, + [BG_GUILLOTINE_CONTESTS] = {gBattleAnimBgImage_Guillotine, gBattleAnimBgPalette_Guillotine, gBattleAnimBgTilemap_GuillotineContests}, + [BG_ICE] = {gBattleAnimBgImage_Ice, gBattleAnimBgPalette_Ice, gBattleAnimBgTilemap_Ice}, + [BG_COSMIC] = {gBattleAnimBgImage_Cosmic, gBattleAnimBgPalette_Cosmic, gBattleAnimBgTilemap_Cosmic}, + [BG_IN_AIR] = {gBattleAnimBgImage_InAir, gBattleAnimBgPalette_InAir, gBattleAnimBgTilemap_InAir}, + [BG_SKY] = {gBattleAnimBgImage_Drill, gBattleAnimBgPalette_Sky, gBattleAnimBgTilemap_Drill}, + [BG_SKY_CONTESTS] = {gBattleAnimBgImage_Drill, gBattleAnimBgPalette_Sky, gBattleAnimBgTilemap_DrillContests}, + [BG_AURORA] = {gBattleAnimBgImage_Aurora, gBattleAnimBgPalette_Aurora, gBattleAnimBgTilemap_Aurora}, + [BG_FISSURE] = {gBattleAnimBgImage_Fissure, gBattleAnimBgPalette_Fissure, gBattleAnimBgTilemap_Fissure}, + [BG_BUG_OPPONENT] = {gBattleAnimBgImage_Highspeed, gBattleAnimBgPalette_Bug, gBattleAnimBgTilemap_HighspeedOpponent}, + [BG_BUG_PLAYER] = {gBattleAnimBgImage_Highspeed, gBattleAnimBgPalette_Bug, gBattleAnimBgTilemap_HighspeedPlayer}, + [BG_SOLAR_BEAM_OPPONENT] = {gBattleAnimBgImage_Impact, gBattleAnimBgPalette_SolarBeam, gBattleAnimBgTilemap_ImpactOpponent}, + [BG_SOLAR_BEAM_PLAYER] = {gBattleAnimBgImage_Impact, gBattleAnimBgPalette_SolarBeam, gBattleAnimBgTilemap_ImpactPlayer}, + [BG_SOLAR_BEAM_CONTESTS] = {gBattleAnimBgImage_Impact, gBattleAnimBgPalette_SolarBeam, gBattleAnimBgTilemap_ImpactContests}, +}; diff --git a/src/data/item_icon_table.h b/src/data/item_icon_table.h new file mode 100644 index 000000000..1fd403366 --- /dev/null +++ b/src/data/item_icon_table.h @@ -0,0 +1,379 @@ +static const void *const sItemIconTable[ITEMS_COUNT + 1][2] = +{ + [ITEM_NONE] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_MASTER_BALL] = {gFile_graphics_items_icons_master_ball_sheet, gFile_graphics_items_icon_palettes_master_ball_palette}, + [ITEM_ULTRA_BALL] = {gFile_graphics_items_icons_ultra_ball_sheet, gFile_graphics_items_icon_palettes_ultra_ball_palette}, + [ITEM_GREAT_BALL] = {gFile_graphics_items_icons_great_ball_sheet, gFile_graphics_items_icon_palettes_great_ball_palette}, + [ITEM_POKE_BALL] = {gFile_graphics_items_icons_poke_ball_sheet, gFile_graphics_items_icon_palettes_poke_ball_palette}, + [ITEM_SAFARI_BALL] = {gFile_graphics_items_icons_safari_ball_sheet, gFile_graphics_items_icon_palettes_safari_ball_palette}, + [ITEM_NET_BALL] = {gFile_graphics_items_icons_net_ball_sheet, gFile_graphics_items_icon_palettes_net_ball_palette}, + [ITEM_DIVE_BALL] = {gFile_graphics_items_icons_dive_ball_sheet, gFile_graphics_items_icon_palettes_dive_ball_palette}, + [ITEM_NEST_BALL] = {gFile_graphics_items_icons_nest_ball_sheet, gFile_graphics_items_icon_palettes_nest_ball_palette}, + [ITEM_REPEAT_BALL] = {gFile_graphics_items_icons_repeat_ball_sheet, gFile_graphics_items_icon_palettes_repeat_ball_palette}, + [ITEM_TIMER_BALL] = {gFile_graphics_items_icons_timer_ball_sheet, gFile_graphics_items_icon_palettes_repeat_ball_palette}, + [ITEM_LUXURY_BALL] = {gFile_graphics_items_icons_luxury_ball_sheet, gFile_graphics_items_icon_palettes_luxury_ball_palette}, + [ITEM_PREMIER_BALL] = {gFile_graphics_items_icons_premier_ball_sheet, gFile_graphics_items_icon_palettes_luxury_ball_palette}, + [ITEM_POTION] = {gFile_graphics_items_icons_potion_sheet, gFile_graphics_items_icon_palettes_potion_palette}, + [ITEM_ANTIDOTE] = {gFile_graphics_items_icons_antidote_sheet, gFile_graphics_items_icon_palettes_antidote_palette}, + [ITEM_BURN_HEAL] = {gFile_graphics_items_icons_status_heal_sheet, gFile_graphics_items_icon_palettes_burn_heal_palette}, + [ITEM_ICE_HEAL] = {gFile_graphics_items_icons_status_heal_sheet, gFile_graphics_items_icon_palettes_ice_heal_palette}, + [ITEM_AWAKENING] = {gFile_graphics_items_icons_status_heal_sheet, gFile_graphics_items_icon_palettes_awakening_palette}, + [ITEM_PARALYZE_HEAL] = {gFile_graphics_items_icons_status_heal_sheet, gFile_graphics_items_icon_palettes_paralyze_heal_palette}, + [ITEM_FULL_RESTORE] = {gFile_graphics_items_icons_large_potion_sheet, gFile_graphics_items_icon_palettes_full_restore_palette}, + [ITEM_MAX_POTION] = {gFile_graphics_items_icons_large_potion_sheet, gFile_graphics_items_icon_palettes_max_potion_palette}, + [ITEM_HYPER_POTION] = {gFile_graphics_items_icons_potion_sheet, gFile_graphics_items_icon_palettes_hyper_potion_palette}, + [ITEM_SUPER_POTION] = {gFile_graphics_items_icons_potion_sheet, gFile_graphics_items_icon_palettes_super_potion_palette}, + [ITEM_FULL_HEAL] = {gFile_graphics_items_icons_full_heal_sheet, gFile_graphics_items_icon_palettes_full_heal_palette}, + [ITEM_REVIVE] = {gFile_graphics_items_icons_revive_sheet, gFile_graphics_items_icon_palettes_revive_palette}, + [ITEM_MAX_REVIVE] = {gFile_graphics_items_icons_max_revive_sheet, gFile_graphics_items_icon_palettes_revive_palette}, + [ITEM_FRESH_WATER] = {gFile_graphics_items_icons_fresh_water_sheet, gFile_graphics_items_icon_palettes_fresh_water_palette}, + [ITEM_SODA_POP] = {gFile_graphics_items_icons_soda_pop_sheet, gFile_graphics_items_icon_palettes_soda_pop_palette}, + [ITEM_LEMONADE] = {gFile_graphics_items_icons_lemonade_sheet, gFile_graphics_items_icon_palettes_lemonade_palette}, + [ITEM_MOOMOO_MILK] = {gFile_graphics_items_icons_moomoo_milk_sheet, gFile_graphics_items_icon_palettes_moomoo_milk_palette}, + [ITEM_ENERGY_POWDER] = {gFile_graphics_items_icons_powder_sheet, gFile_graphics_items_icon_palettes_energy_powder_palette}, + [ITEM_ENERGY_ROOT] = {gFile_graphics_items_icons_energy_root_sheet, gFile_graphics_items_icon_palettes_energy_root_palette}, + [ITEM_HEAL_POWDER] = {gFile_graphics_items_icons_powder_sheet, gFile_graphics_items_icon_palettes_heal_powder_palette}, + [ITEM_REVIVAL_HERB] = {gFile_graphics_items_icons_revival_herb_sheet, gFile_graphics_items_icon_palettes_revival_herb_palette}, + [ITEM_ETHER] = {gFile_graphics_items_icons_ether_sheet, gFile_graphics_items_icon_palettes_ether_palette}, + [ITEM_MAX_ETHER] = {gFile_graphics_items_icons_ether_sheet, gFile_graphics_items_icon_palettes_max_ether_palette}, + [ITEM_ELIXIR] = {gFile_graphics_items_icons_ether_sheet, gFile_graphics_items_icon_palettes_elixir_palette}, + [ITEM_MAX_ELIXIR] = {gFile_graphics_items_icons_ether_sheet, gFile_graphics_items_icon_palettes_max_elixir_palette}, + [ITEM_LAVA_COOKIE] = {gFile_graphics_items_icons_lava_cookie_sheet, gFile_graphics_items_icon_palettes_lava_cookie_and_letter_palette}, + [ITEM_BLUE_FLUTE] = {gFile_graphics_items_icons_flute_sheet, gFile_graphics_items_icon_palettes_blue_flute_palette}, + [ITEM_YELLOW_FLUTE] = {gFile_graphics_items_icons_flute_sheet, gFile_graphics_items_icon_palettes_yellow_flute_palette}, + [ITEM_RED_FLUTE] = {gFile_graphics_items_icons_flute_sheet, gFile_graphics_items_icon_palettes_red_flute_palette}, + [ITEM_BLACK_FLUTE] = {gFile_graphics_items_icons_flute_sheet, gFile_graphics_items_icon_palettes_black_flute_palette}, + [ITEM_WHITE_FLUTE] = {gFile_graphics_items_icons_flute_sheet, gFile_graphics_items_icon_palettes_white_flute_palette}, + [ITEM_BERRY_JUICE] = {gFile_graphics_items_icons_berry_juice_sheet, gFile_graphics_items_icon_palettes_berry_juice_palette}, + [ITEM_SACRED_ASH] = {gFile_graphics_items_icons_sacred_ash_sheet, gFile_graphics_items_icon_palettes_sacred_ash_palette}, + [ITEM_SHOAL_SALT] = {gFile_graphics_items_icons_powder_sheet, gFile_graphics_items_icon_palettes_shoal_salt_palette}, + [ITEM_SHOAL_SHELL] = {gFile_graphics_items_icons_shoal_shell_sheet, gFile_graphics_items_icon_palettes_shell_palette}, + [ITEM_RED_SHARD] = {gFile_graphics_items_icons_shard_sheet, gFile_graphics_items_icon_palettes_red_shard_palette}, + [ITEM_BLUE_SHARD] = {gFile_graphics_items_icons_shard_sheet, gFile_graphics_items_icon_palettes_blue_shard_palette}, + [ITEM_YELLOW_SHARD] = {gFile_graphics_items_icons_shard_sheet, gFile_graphics_items_icon_palettes_yellow_shard_palette}, + [ITEM_GREEN_SHARD] = {gFile_graphics_items_icons_shard_sheet, gFile_graphics_items_icon_palettes_green_shard_palette}, + [ITEM_034] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_035] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_036] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_037] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_038] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_039] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_03A] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_03B] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_03C] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_03D] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_03E] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_HP_UP] = {gFile_graphics_items_icons_hp_up_sheet, gFile_graphics_items_icon_palettes_hp_up_palette}, + [ITEM_PROTEIN] = {gFile_graphics_items_icons_vitamin_sheet, gFile_graphics_items_icon_palettes_protein_palette}, + [ITEM_IRON] = {gFile_graphics_items_icons_vitamin_sheet, gFile_graphics_items_icon_palettes_iron_palette}, + [ITEM_CARBOS] = {gFile_graphics_items_icons_vitamin_sheet, gFile_graphics_items_icon_palettes_carbos_palette}, + [ITEM_CALCIUM] = {gFile_graphics_items_icons_vitamin_sheet, gFile_graphics_items_icon_palettes_calcium_palette}, + [ITEM_RARE_CANDY] = {gFile_graphics_items_icons_rare_candy_sheet, gFile_graphics_items_icon_palettes_rare_candy_palette}, + [ITEM_PP_UP] = {gFile_graphics_items_icons_pp_up_sheet, gFile_graphics_items_icon_palettes_pp_up_palette}, + [ITEM_ZINC] = {gFile_graphics_items_icons_vitamin_sheet, gFile_graphics_items_icon_palettes_zinc_palette}, + [ITEM_PP_MAX] = {gFile_graphics_items_icons_pp_max_sheet, gFile_graphics_items_icon_palettes_pp_max_palette}, + [ITEM_048] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_GUARD_SPEC] = {gFile_graphics_items_icons_battle_stat_item_sheet, gFile_graphics_items_icon_palettes_guard_spec_palette}, + [ITEM_DIRE_HIT] = {gFile_graphics_items_icons_battle_stat_item_sheet, gFile_graphics_items_icon_palettes_dire_hit_palette}, + [ITEM_X_ATTACK] = {gFile_graphics_items_icons_battle_stat_item_sheet, gFile_graphics_items_icon_palettes_x_attack_palette}, + [ITEM_X_DEFEND] = {gFile_graphics_items_icons_battle_stat_item_sheet, gFile_graphics_items_icon_palettes_x_defend_palette}, + [ITEM_X_SPEED] = {gFile_graphics_items_icons_battle_stat_item_sheet, gFile_graphics_items_icon_palettes_x_speed_palette}, + [ITEM_X_ACCURACY] = {gFile_graphics_items_icons_battle_stat_item_sheet, gFile_graphics_items_icon_palettes_x_accuracy_palette}, + [ITEM_X_SPECIAL] = {gFile_graphics_items_icons_battle_stat_item_sheet, gFile_graphics_items_icon_palettes_x_special_palette}, + [ITEM_POKE_DOLL] = {gFile_graphics_items_icons_poke_doll_sheet, gFile_graphics_items_icon_palettes_poke_doll_palette}, + [ITEM_FLUFFY_TAIL] = {gFile_graphics_items_icons_fluffy_tail_sheet, gFile_graphics_items_icon_palettes_fluffy_tail_palette}, + [ITEM_052] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_SUPER_REPEL] = {gFile_graphics_items_icons_repel_sheet, gFile_graphics_items_icon_palettes_super_repel_palette}, + [ITEM_MAX_REPEL] = {gFile_graphics_items_icons_repel_sheet, gFile_graphics_items_icon_palettes_max_repel_palette}, + [ITEM_ESCAPE_ROPE] = {gFile_graphics_items_icons_escape_rope_sheet, gFile_graphics_items_icon_palettes_escape_rope_palette}, + [ITEM_REPEL] = {gFile_graphics_items_icons_repel_sheet, gFile_graphics_items_icon_palettes_repel_palette}, + [ITEM_057] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_058] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_059] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_05A] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_05B] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_05C] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_SUN_STONE] = {gFile_graphics_items_icons_sun_stone_sheet, gFile_graphics_items_icon_palettes_sun_stone_palette}, + [ITEM_MOON_STONE] = {gFile_graphics_items_icons_moon_stone_sheet, gFile_graphics_items_icon_palettes_moon_stone_palette}, + [ITEM_FIRE_STONE] = {gFile_graphics_items_icons_fire_stone_sheet, gFile_graphics_items_icon_palettes_fire_stone_palette}, + [ITEM_THUNDER_STONE] = {gFile_graphics_items_icons_thunder_stone_sheet, gFile_graphics_items_icon_palettes_thunder_stone_palette}, + [ITEM_WATER_STONE] = {gFile_graphics_items_icons_water_stone_sheet, gFile_graphics_items_icon_palettes_water_stone_palette}, + [ITEM_LEAF_STONE] = {gFile_graphics_items_icons_leaf_stone_sheet, gFile_graphics_items_icon_palettes_leaf_stone_palette}, + [ITEM_063] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_064] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_065] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_066] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_TINY_MUSHROOM] = {gFile_graphics_items_icons_tiny_mushroom_sheet, gFile_graphics_items_icon_palettes_mushroom_palette}, + [ITEM_BIG_MUSHROOM] = {gFile_graphics_items_icons_big_mushroom_sheet, gFile_graphics_items_icon_palettes_mushroom_palette}, + [ITEM_069] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_PEARL] = {gFile_graphics_items_icons_pearl_sheet, gFile_graphics_items_icon_palettes_pearl_palette}, + [ITEM_BIG_PEARL] = {gFile_graphics_items_icons_big_pearl_sheet, gFile_graphics_items_icon_palettes_pearl_palette}, + [ITEM_STARDUST] = {gFile_graphics_items_icons_stardust_sheet, gFile_graphics_items_icon_palettes_star_palette}, + [ITEM_STAR_PIECE] = {gFile_graphics_items_icons_star_piece_sheet, gFile_graphics_items_icon_palettes_star_palette}, + [ITEM_NUGGET] = {gFile_graphics_items_icons_nugget_sheet, gFile_graphics_items_icon_palettes_nugget_palette}, + [ITEM_HEART_SCALE] = {gFile_graphics_items_icons_heart_scale_sheet, gFile_graphics_items_icon_palettes_heart_scale_palette}, + [ITEM_070] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_071] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_072] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_073] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_074] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_075] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_076] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_077] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_078] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_ORANGE_MAIL] = {gFile_graphics_items_icons_orange_mail_sheet, gFile_graphics_items_icon_palettes_orange_mail_palette}, + [ITEM_HARBOR_MAIL] = {gFile_graphics_items_icons_harbor_mail_sheet, gFile_graphics_items_icon_palettes_harbor_mail_palette}, + [ITEM_GLITTER_MAIL] = {gFile_graphics_items_icons_glitter_mail_sheet, gFile_graphics_items_icon_palettes_glitter_mail_palette}, + [ITEM_MECH_MAIL] = {gFile_graphics_items_icons_mech_mail_sheet, gFile_graphics_items_icon_palettes_mech_mail_palette}, + [ITEM_WOOD_MAIL] = {gFile_graphics_items_icons_wood_mail_sheet, gFile_graphics_items_icon_palettes_wood_mail_palette}, + [ITEM_WAVE_MAIL] = {gFile_graphics_items_icons_wave_mail_sheet, gFile_graphics_items_icon_palettes_wave_mail_palette}, + [ITEM_BEAD_MAIL] = {gFile_graphics_items_icons_bead_mail_sheet, gFile_graphics_items_icon_palettes_bead_mail_palette}, + [ITEM_SHADOW_MAIL] = {gFile_graphics_items_icons_shadow_mail_sheet, gFile_graphics_items_icon_palettes_shadow_mail_palette}, + [ITEM_TROPIC_MAIL] = {gFile_graphics_items_icons_tropic_mail_sheet, gFile_graphics_items_icon_palettes_tropic_mail_palette}, + [ITEM_DREAM_MAIL] = {gFile_graphics_items_icons_dream_mail_sheet, gFile_graphics_items_icon_palettes_dream_mail_palette}, + [ITEM_FAB_MAIL] = {gFile_graphics_items_icons_fab_mail_sheet, gFile_graphics_items_icon_palettes_fab_mail_palette}, + [ITEM_RETRO_MAIL] = {gFile_graphics_items_icons_retro_mail_sheet, gFile_graphics_items_icon_palettes_retro_mail_palette}, + [ITEM_CHERI_BERRY] = {gFile_graphics_items_icons_cheri_berry_sheet, gFile_graphics_items_icon_palettes_cheri_berry_palette}, + [ITEM_CHESTO_BERRY] = {gFile_graphics_items_icons_chesto_berry_sheet, gFile_graphics_items_icon_palettes_chesto_berry_palette}, + [ITEM_PECHA_BERRY] = {gFile_graphics_items_icons_pecha_berry_sheet, gFile_graphics_items_icon_palettes_pecha_berry_palette}, + [ITEM_RAWST_BERRY] = {gFile_graphics_items_icons_rawst_berry_sheet, gFile_graphics_items_icon_palettes_rawst_berry_palette}, + [ITEM_ASPEAR_BERRY] = {gFile_graphics_items_icons_aspear_berry_sheet, gFile_graphics_items_icon_palettes_aspear_berry_palette}, + [ITEM_LEPPA_BERRY] = {gFile_graphics_items_icons_leppa_berry_sheet, gFile_graphics_items_icon_palettes_leppa_berry_palette}, + [ITEM_ORAN_BERRY] = {gFile_graphics_items_icons_oran_berry_sheet, gFile_graphics_items_icon_palettes_oran_berry_palette}, + [ITEM_PERSIM_BERRY] = {gFile_graphics_items_icons_persim_berry_sheet, gFile_graphics_items_icon_palettes_persim_berry_palette}, + [ITEM_LUM_BERRY] = {gFile_graphics_items_icons_lum_berry_sheet, gFile_graphics_items_icon_palettes_lum_berry_palette}, + [ITEM_SITRUS_BERRY] = {gFile_graphics_items_icons_sitrus_berry_sheet, gFile_graphics_items_icon_palettes_sitrus_berry_palette}, + [ITEM_FIGY_BERRY] = {gFile_graphics_items_icons_figy_berry_sheet, gFile_graphics_items_icon_palettes_figy_berry_palette}, + [ITEM_WIKI_BERRY] = {gFile_graphics_items_icons_wiki_berry_sheet, gFile_graphics_items_icon_palettes_wiki_berry_palette}, + [ITEM_MAGO_BERRY] = {gFile_graphics_items_icons_mago_berry_sheet, gFile_graphics_items_icon_palettes_mago_berry_palette}, + [ITEM_AGUAV_BERRY] = {gFile_graphics_items_icons_aguav_berry_sheet, gFile_graphics_items_icon_palettes_aguav_berry_palette}, + [ITEM_IAPAPA_BERRY] = {gFile_graphics_items_icons_iapapa_berry_sheet, gFile_graphics_items_icon_palettes_iapapa_berry_palette}, + [ITEM_RAZZ_BERRY] = {gFile_graphics_items_icons_razz_berry_sheet, gFile_graphics_items_icon_palettes_razz_berry_palette}, + [ITEM_BLUK_BERRY] = {gFile_graphics_items_icons_bluk_berry_sheet, gFile_graphics_items_icon_palettes_bluk_berry_palette}, + [ITEM_NANAB_BERRY] = {gFile_graphics_items_icons_nanab_berry_sheet, gFile_graphics_items_icon_palettes_nanab_berry_palette}, + [ITEM_WEPEAR_BERRY] = {gFile_graphics_items_icons_wepear_berry_sheet, gFile_graphics_items_icon_palettes_wepear_berry_palette}, + [ITEM_PINAP_BERRY] = {gFile_graphics_items_icons_pinap_berry_sheet, gFile_graphics_items_icon_palettes_pinap_berry_palette}, + [ITEM_POMEG_BERRY] = {gFile_graphics_items_icons_pomeg_berry_sheet, gFile_graphics_items_icon_palettes_pomeg_berry_palette}, + [ITEM_KELPSY_BERRY] = {gFile_graphics_items_icons_kelpsy_berry_sheet, gFile_graphics_items_icon_palettes_kelpsy_berry_palette}, + [ITEM_QUALOT_BERRY] = {gFile_graphics_items_icons_qualot_berry_sheet, gFile_graphics_items_icon_palettes_qualot_berry_palette}, + [ITEM_HONDEW_BERRY] = {gFile_graphics_items_icons_hondew_berry_sheet, gFile_graphics_items_icon_palettes_hondew_berry_palette}, + [ITEM_GREPA_BERRY] = {gFile_graphics_items_icons_grepa_berry_sheet, gFile_graphics_items_icon_palettes_grepa_berry_palette}, + [ITEM_TAMATO_BERRY] = {gFile_graphics_items_icons_tamato_berry_sheet, gFile_graphics_items_icon_palettes_tamato_berry_palette}, + [ITEM_CORNN_BERRY] = {gFile_graphics_items_icons_cornn_berry_sheet, gFile_graphics_items_icon_palettes_cornn_berry_palette}, + [ITEM_MAGOST_BERRY] = {gFile_graphics_items_icons_magost_berry_sheet, gFile_graphics_items_icon_palettes_magost_berry_palette}, + [ITEM_RABUTA_BERRY] = {gFile_graphics_items_icons_rabuta_berry_sheet, gFile_graphics_items_icon_palettes_rabuta_berry_palette}, + [ITEM_NOMEL_BERRY] = {gFile_graphics_items_icons_nomel_berry_sheet, gFile_graphics_items_icon_palettes_nomel_berry_palette}, + [ITEM_SPELON_BERRY] = {gFile_graphics_items_icons_spelon_berry_sheet, gFile_graphics_items_icon_palettes_spelon_berry_palette}, + [ITEM_PAMTRE_BERRY] = {gFile_graphics_items_icons_pamtre_berry_sheet, gFile_graphics_items_icon_palettes_pamtre_berry_palette}, + [ITEM_WATMEL_BERRY] = {gFile_graphics_items_icons_watmel_berry_sheet, gFile_graphics_items_icon_palettes_watmel_berry_palette}, + [ITEM_DURIN_BERRY] = {gFile_graphics_items_icons_durin_berry_sheet, gFile_graphics_items_icon_palettes_durin_berry_palette}, + [ITEM_BELUE_BERRY] = {gFile_graphics_items_icons_belue_berry_sheet, gFile_graphics_items_icon_palettes_belue_berry_palette}, + [ITEM_LIECHI_BERRY] = {gFile_graphics_items_icons_liechi_berry_sheet, gFile_graphics_items_icon_palettes_liechi_berry_palette}, + [ITEM_GANLON_BERRY] = {gFile_graphics_items_icons_ganlon_berry_sheet, gFile_graphics_items_icon_palettes_ganlon_berry_palette}, + [ITEM_SALAC_BERRY] = {gFile_graphics_items_icons_salac_berry_sheet, gFile_graphics_items_icon_palettes_salac_berry_palette}, + [ITEM_PETAYA_BERRY] = {gFile_graphics_items_icons_petaya_berry_sheet, gFile_graphics_items_icon_palettes_petaya_berry_palette}, + [ITEM_APICOT_BERRY] = {gFile_graphics_items_icons_apicot_berry_sheet, gFile_graphics_items_icon_palettes_apicot_berry_palette}, + [ITEM_LANSAT_BERRY] = {gFile_graphics_items_icons_lansat_berry_sheet, gFile_graphics_items_icon_palettes_lansat_berry_palette}, + [ITEM_STARF_BERRY] = {gFile_graphics_items_icons_starf_berry_sheet, gFile_graphics_items_icon_palettes_starf_berry_palette}, + [ITEM_ENIGMA_BERRY] = {gFile_graphics_items_icons_enigma_berry_sheet, gFile_graphics_items_icon_palettes_enigma_berry_palette}, + [ITEM_0B0] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_0B1] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_0B2] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_BRIGHT_POWDER] = {gFile_graphics_items_icons_bright_powder_sheet, gFile_graphics_items_icon_palettes_bright_powder_palette}, + [ITEM_WHITE_HERB] = {gFile_graphics_items_icons_in_battle_herb_sheet, gFile_graphics_items_icon_palettes_white_herb_palette}, + [ITEM_MACHO_BRACE] = {gFile_graphics_items_icons_macho_brace_sheet, gFile_graphics_items_icon_palettes_macho_brace_palette}, + [ITEM_EXP_SHARE] = {gFile_graphics_items_icons_exp_share_sheet, gFile_graphics_items_icon_palettes_exp_share_palette}, + [ITEM_QUICK_CLAW] = {gFile_graphics_items_icons_quick_claw_sheet, gFile_graphics_items_icon_palettes_quick_claw_palette}, + [ITEM_SOOTHE_BELL] = {gFile_graphics_items_icons_soothe_bell_sheet, gFile_graphics_items_icon_palettes_soothe_bell_palette}, + [ITEM_MENTAL_HERB] = {gFile_graphics_items_icons_in_battle_herb_sheet, gFile_graphics_items_icon_palettes_mental_herb_palette}, + [ITEM_CHOICE_BAND] = {gFile_graphics_items_icons_choice_band_sheet, gFile_graphics_items_icon_palettes_choice_band_palette}, + [ITEM_KINGS_ROCK] = {gFile_graphics_items_icons_kings_rock_sheet, gFile_graphics_items_icon_palettes_kings_rock_palette}, + [ITEM_SILVER_POWDER] = {gFile_graphics_items_icons_silver_powder_sheet, gFile_graphics_items_icon_palettes_silver_powder_palette}, + [ITEM_AMULET_COIN] = {gFile_graphics_items_icons_amulet_coin_sheet, gFile_graphics_items_icon_palettes_amulet_coin_palette}, + [ITEM_CLEANSE_TAG] = {gFile_graphics_items_icons_cleanse_tag_sheet, gFile_graphics_items_icon_palettes_cleanse_tag_palette}, + [ITEM_SOUL_DEW] = {gFile_graphics_items_icons_soul_dew_sheet, gFile_graphics_items_icon_palettes_soul_dew_palette}, + [ITEM_DEEP_SEA_TOOTH] = {gFile_graphics_items_icons_deep_sea_tooth_sheet, gFile_graphics_items_icon_palettes_deep_sea_tooth_palette}, + [ITEM_DEEP_SEA_SCALE] = {gFile_graphics_items_icons_deep_sea_scale_sheet, gFile_graphics_items_icon_palettes_deep_sea_scale_palette}, + [ITEM_SMOKE_BALL] = {gFile_graphics_items_icons_smoke_ball_sheet, gFile_graphics_items_icon_palettes_smoke_ball_palette}, + [ITEM_EVERSTONE] = {gFile_graphics_items_icons_everstone_sheet, gFile_graphics_items_icon_palettes_everstone_palette}, + [ITEM_FOCUS_BAND] = {gFile_graphics_items_icons_focus_band_sheet, gFile_graphics_items_icon_palettes_focus_band_palette}, + [ITEM_LUCKY_EGG] = {gFile_graphics_items_icons_lucky_egg_sheet, gFile_graphics_items_icon_palettes_lucky_egg_palette}, + [ITEM_SCOPE_LENS] = {gFile_graphics_items_icons_scope_lens_sheet, gFile_graphics_items_icon_palettes_scope_lens_palette}, + [ITEM_METAL_COAT] = {gFile_graphics_items_icons_metal_coat_sheet, gFile_graphics_items_icon_palettes_metal_coat_palette}, + [ITEM_LEFTOVERS] = {gFile_graphics_items_icons_leftovers_sheet, gFile_graphics_items_icon_palettes_leftovers_palette}, + [ITEM_DRAGON_SCALE] = {gFile_graphics_items_icons_dragon_scale_sheet, gFile_graphics_items_icon_palettes_dragon_scale_palette}, + [ITEM_LIGHT_BALL] = {gFile_graphics_items_icons_light_ball_sheet, gFile_graphics_items_icon_palettes_light_ball_palette}, + [ITEM_SOFT_SAND] = {gFile_graphics_items_icons_soft_sand_sheet, gFile_graphics_items_icon_palettes_soft_sand_palette}, + [ITEM_HARD_STONE] = {gFile_graphics_items_icons_hard_stone_sheet, gFile_graphics_items_icon_palettes_hard_stone_palette}, + [ITEM_MIRACLE_SEED] = {gFile_graphics_items_icons_miracle_seed_sheet, gFile_graphics_items_icon_palettes_miracle_seed_palette}, + [ITEM_BLACK_GLASSES] = {gFile_graphics_items_icons_black_glasses_sheet, gFile_graphics_items_icon_palettes_black_type_enhancing_item_palette}, + [ITEM_BLACK_BELT] = {gFile_graphics_items_icons_black_belt_sheet, gFile_graphics_items_icon_palettes_black_type_enhancing_item_palette}, + [ITEM_MAGNET] = {gFile_graphics_items_icons_magnet_sheet, gFile_graphics_items_icon_palettes_magnet_palette}, + [ITEM_MYSTIC_WATER] = {gFile_graphics_items_icons_mystic_water_sheet, gFile_graphics_items_icon_palettes_mystic_water_palette}, + [ITEM_SHARP_BEAK] = {gFile_graphics_items_icons_sharp_beak_sheet, gFile_graphics_items_icon_palettes_sharp_beak_palette}, + [ITEM_POISON_BARB] = {gFile_graphics_items_icons_poison_barb_sheet, gFile_graphics_items_icon_palettes_poison_barb_palette}, + [ITEM_NEVER_MELT_ICE] = {gFile_graphics_items_icons_never_melt_ice_sheet, gFile_graphics_items_icon_palettes_never_melt_ice_palette}, + [ITEM_SPELL_TAG] = {gFile_graphics_items_icons_spell_tag_sheet, gFile_graphics_items_icon_palettes_spell_tag_palette}, + [ITEM_TWISTED_SPOON] = {gFile_graphics_items_icons_twisted_spoon_sheet, gFile_graphics_items_icon_palettes_twisted_spoon_palette}, + [ITEM_CHARCOAL] = {gFile_graphics_items_icons_charcoal_sheet, gFile_graphics_items_icon_palettes_charcoal_palette}, + [ITEM_DRAGON_FANG] = {gFile_graphics_items_icons_dragon_fang_sheet, gFile_graphics_items_icon_palettes_dragon_fang_palette}, + [ITEM_SILK_SCARF] = {gFile_graphics_items_icons_silk_scarf_sheet, gFile_graphics_items_icon_palettes_silk_scarf_palette}, + [ITEM_UP_GRADE] = {gFile_graphics_items_icons_up_grade_sheet, gFile_graphics_items_icon_palettes_up_grade_palette}, + [ITEM_SHELL_BELL] = {gFile_graphics_items_icons_shell_bell_sheet, gFile_graphics_items_icon_palettes_shell_palette}, + [ITEM_SEA_INCENSE] = {gFile_graphics_items_icons_sea_incense_sheet, gFile_graphics_items_icon_palettes_sea_incense_palette}, + [ITEM_LAX_INCENSE] = {gFile_graphics_items_icons_lax_incense_sheet, gFile_graphics_items_icon_palettes_lax_incense_palette}, + [ITEM_LUCKY_PUNCH] = {gFile_graphics_items_icons_lucky_punch_sheet, gFile_graphics_items_icon_palettes_lucky_punch_palette}, + [ITEM_METAL_POWDER] = {gFile_graphics_items_icons_metal_powder_sheet, gFile_graphics_items_icon_palettes_metal_powder_palette}, + [ITEM_THICK_CLUB] = {gFile_graphics_items_icons_thick_club_sheet, gFile_graphics_items_icon_palettes_thick_club_palette}, + [ITEM_STICK] = {gFile_graphics_items_icons_stick_sheet, gFile_graphics_items_icon_palettes_stick_palette}, + [ITEM_0E2] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_0E3] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_0E4] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_0E5] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_0E6] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_0E7] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_0E8] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_0E9] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_0EA] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_0EB] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_0EC] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_0ED] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_0EE] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_0EF] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_0F0] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_0F1] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_0F2] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_0F3] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_0F4] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_0F5] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_0F6] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_0F7] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_0F8] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_0F9] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_0FA] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_0FB] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_0FC] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_0FD] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_RED_SCARF] = {gFile_graphics_items_icons_scarf_sheet, gFile_graphics_items_icon_palettes_red_scarf_palette}, + [ITEM_BLUE_SCARF] = {gFile_graphics_items_icons_scarf_sheet, gFile_graphics_items_icon_palettes_blue_scarf_palette}, + [ITEM_PINK_SCARF] = {gFile_graphics_items_icons_scarf_sheet, gFile_graphics_items_icon_palettes_pink_scarf_palette}, + [ITEM_GREEN_SCARF] = {gFile_graphics_items_icons_scarf_sheet, gFile_graphics_items_icon_palettes_green_scarf_palette}, + [ITEM_YELLOW_SCARF] = {gFile_graphics_items_icons_scarf_sheet, gFile_graphics_items_icon_palettes_yellow_scarf_palette}, + [ITEM_MACH_BIKE] = {gFile_graphics_items_icons_mach_bike_sheet, gFile_graphics_items_icon_palettes_mach_bike_palette}, + [ITEM_COIN_CASE] = {gFile_graphics_items_icons_coin_case_sheet, gFile_graphics_items_icon_palettes_coin_case_palette}, + [ITEM_ITEMFINDER] = {gFile_graphics_items_icons_itemfinder_sheet, gFile_graphics_items_icon_palettes_itemfinder_palette}, + [ITEM_OLD_ROD] = {gFile_graphics_items_icons_old_rod_sheet, gFile_graphics_items_icon_palettes_old_rod_palette}, + [ITEM_GOOD_ROD] = {gFile_graphics_items_icons_good_rod_sheet, gFile_graphics_items_icon_palettes_good_rod_palette}, + [ITEM_SUPER_ROD] = {gFile_graphics_items_icons_super_rod_sheet, gFile_graphics_items_icon_palettes_super_rod_palette}, + [ITEM_SS_TICKET] = {gFile_graphics_items_icons_ss_ticket_sheet, gFile_graphics_items_icon_palettes_ss_ticket_palette}, + [ITEM_CONTEST_PASS] = {gFile_graphics_items_icons_contest_pass_sheet, gFile_graphics_items_icon_palettes_contest_pass_palette}, + [ITEM_10B] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_WAILMER_PAIL] = {gFile_graphics_items_icons_wailmer_pail_sheet, gFile_graphics_items_icon_palettes_wailmer_pail_palette}, + [ITEM_DEVON_GOODS] = {gFile_graphics_items_icons_devon_goods_sheet, gFile_graphics_items_icon_palettes_devon_goods_palette}, + [ITEM_SOOT_SACK] = {gFile_graphics_items_icons_soot_sack_sheet, gFile_graphics_items_icon_palettes_soot_sack_palette}, + [ITEM_BASEMENT_KEY] = {gFile_graphics_items_icons_basement_key_sheet, gFile_graphics_items_icon_palettes_old_key_palette}, + [ITEM_ACRO_BIKE] = {gFile_graphics_items_icons_acro_bike_sheet, gFile_graphics_items_icon_palettes_acro_bike_palette}, + [ITEM_POKEBLOCK_CASE] = {gFile_graphics_items_icons_pokeblock_case_sheet, gFile_graphics_items_icon_palettes_pokeblock_case_palette}, + [ITEM_LETTER] = {gFile_graphics_items_icons_letter_sheet, gFile_graphics_items_icon_palettes_lava_cookie_and_letter_palette}, + [ITEM_EON_TICKET] = {gFile_graphics_items_icons_eon_ticket_sheet, gFile_graphics_items_icon_palettes_eon_ticket_palette}, + [ITEM_RED_ORB] = {gFile_graphics_items_icons_orb_sheet, gFile_graphics_items_icon_palettes_red_orb_palette}, + [ITEM_BLUE_ORB] = {gFile_graphics_items_icons_orb_sheet, gFile_graphics_items_icon_palettes_blue_orb_palette}, + [ITEM_SCANNER] = {gFile_graphics_items_icons_scanner_sheet, gFile_graphics_items_icon_palettes_scanner_palette}, + [ITEM_GO_GOGGLES] = {gFile_graphics_items_icons_go_goggles_sheet, gFile_graphics_items_icon_palettes_go_goggles_palette}, + [ITEM_METEORITE] = {gFile_graphics_items_icons_meteorite_sheet, gFile_graphics_items_icon_palettes_meteorite_palette}, + [ITEM_ROOM_1_KEY] = {gFile_graphics_items_icons_room1_key_sheet, gFile_graphics_items_icon_palettes_key_palette}, + [ITEM_ROOM_2_KEY] = {gFile_graphics_items_icons_room2_key_sheet, gFile_graphics_items_icon_palettes_key_palette}, + [ITEM_ROOM_4_KEY] = {gFile_graphics_items_icons_room4_key_sheet, gFile_graphics_items_icon_palettes_key_palette}, + [ITEM_ROOM_6_KEY] = {gFile_graphics_items_icons_room6_key_sheet, gFile_graphics_items_icon_palettes_key_palette}, + [ITEM_STORAGE_KEY] = {gFile_graphics_items_icons_storage_key_sheet, gFile_graphics_items_icon_palettes_old_key_palette}, + [ITEM_ROOT_FOSSIL] = {gFile_graphics_items_icons_root_fossil_sheet, gFile_graphics_items_icon_palettes_hoenn_fossil_palette}, + [ITEM_CLAW_FOSSIL] = {gFile_graphics_items_icons_claw_fossil_sheet, gFile_graphics_items_icon_palettes_hoenn_fossil_palette}, + [ITEM_DEVON_SCOPE] = {gFile_graphics_items_icons_devon_scope_sheet, gFile_graphics_items_icon_palettes_devon_scope_palette}, + [ITEM_TM01] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_fighting_tm_hm_palette}, + [ITEM_TM02] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_dragon_tm_hm_palette}, + [ITEM_TM03] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_water_tm_hm_palette}, + [ITEM_TM04] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_psychic_tm_hm_palette}, + [ITEM_TM05] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette}, + [ITEM_TM06] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_poison_tm_hm_palette}, + [ITEM_TM07] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_ice_tm_hm_palette}, + [ITEM_TM08] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_fighting_tm_hm_palette}, + [ITEM_TM09] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_grass_tm_hm_palette}, + [ITEM_TM10] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette}, + [ITEM_TM11] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_fire_tm_hm_palette}, + [ITEM_TM12] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_dark_tm_hm_palette}, + [ITEM_TM13] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_ice_tm_hm_palette}, + [ITEM_TM14] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_ice_tm_hm_palette}, + [ITEM_TM15] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette}, + [ITEM_TM16] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_psychic_tm_hm_palette}, + [ITEM_TM17] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette}, + [ITEM_TM18] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_water_tm_hm_palette}, + [ITEM_TM19] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_grass_tm_hm_palette}, + [ITEM_TM20] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette}, + [ITEM_TM21] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette}, + [ITEM_TM22] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_grass_tm_hm_palette}, + [ITEM_TM23] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_steel_tm_hm_palette}, + [ITEM_TM24] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_electric_tm_hm_palette}, + [ITEM_TM25] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_electric_tm_hm_palette}, + [ITEM_TM26] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_ground_tm_hm_palette}, + [ITEM_TM27] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette}, + [ITEM_TM28] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_ground_tm_hm_palette}, + [ITEM_TM29] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_psychic_tm_hm_palette}, + [ITEM_TM30] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_ghost_tm_hm_palette}, + [ITEM_TM31] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_fighting_tm_hm_palette}, + [ITEM_TM32] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette}, + [ITEM_TM33] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_psychic_tm_hm_palette}, + [ITEM_TM34] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_electric_tm_hm_palette}, + [ITEM_TM35] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_fire_tm_hm_palette}, + [ITEM_TM36] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_poison_tm_hm_palette}, + [ITEM_TM37] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_rock_tm_hm_palette}, + [ITEM_TM38] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_fire_tm_hm_palette}, + [ITEM_TM39] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_rock_tm_hm_palette}, + [ITEM_TM40] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_flying_tm_hm_palette}, + [ITEM_TM41] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_dark_tm_hm_palette}, + [ITEM_TM42] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette}, + [ITEM_TM43] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette}, + [ITEM_TM44] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_psychic_tm_hm_palette}, + [ITEM_TM45] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette}, + [ITEM_TM46] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_dark_tm_hm_palette}, + [ITEM_TM47] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_steel_tm_hm_palette}, + [ITEM_TM48] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_psychic_tm_hm_palette}, + [ITEM_TM49] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_dark_tm_hm_palette}, + [ITEM_TM50] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_fire_tm_hm_palette}, + [ITEM_HM01] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette}, + [ITEM_HM02] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_flying_tm_hm_palette}, + [ITEM_HM03] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_water_tm_hm_palette}, + [ITEM_HM04] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette}, + [ITEM_HM05] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette}, + [ITEM_HM06] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_fighting_tm_hm_palette}, + [ITEM_HM07] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_water_tm_hm_palette}, + [ITEM_HM08] = {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_water_tm_hm_palette}, + [ITEM_15B] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_15C] = {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, + [ITEM_OAKS_PARCEL] = {gFile_graphics_items_icons_oaks_parcel_sheet, gFile_graphics_items_icon_palettes_oaks_parcel_palette}, + [ITEM_POKE_FLUTE] = {gFile_graphics_items_icons_poke_flute_sheet, gFile_graphics_items_icon_palettes_poke_flute_palette}, + [ITEM_SECRET_KEY] = {gFile_graphics_items_icons_secret_key_sheet, gFile_graphics_items_icon_palettes_secret_key_palette}, + [ITEM_BIKE_VOUCHER] = {gFile_graphics_items_icons_bike_voucher_sheet, gFile_graphics_items_icon_palettes_bike_voucher_palette}, + [ITEM_GOLD_TEETH] = {gFile_graphics_items_icons_gold_teeth_sheet, gFile_graphics_items_icon_palettes_gold_teeth_palette}, + [ITEM_OLD_AMBER] = {gFile_graphics_items_icons_old_amber_sheet, gFile_graphics_items_icon_palettes_old_amber_palette}, + [ITEM_CARD_KEY] = {gFile_graphics_items_icons_card_key_sheet, gFile_graphics_items_icon_palettes_card_key_palette}, + [ITEM_LIFT_KEY] = {gFile_graphics_items_icons_lift_key_sheet, gFile_graphics_items_icon_palettes_key_palette}, + [ITEM_HELIX_FOSSIL] = {gFile_graphics_items_icons_helix_fossil_sheet, gFile_graphics_items_icon_palettes_kanto_fossil_palette}, + [ITEM_DOME_FOSSIL] = {gFile_graphics_items_icons_dome_fossil_sheet, gFile_graphics_items_icon_palettes_kanto_fossil_palette}, + [ITEM_SILPH_SCOPE] = {gFile_graphics_items_icons_silph_scope_sheet, gFile_graphics_items_icon_palettes_silph_scope_palette}, + [ITEM_BICYCLE] = {gFile_graphics_items_icons_bicycle_sheet, gFile_graphics_items_icon_palettes_bicycle_palette}, + [ITEM_TOWN_MAP] = {gFile_graphics_items_icons_town_map_sheet, gFile_graphics_items_icon_palettes_town_map_palette}, + [ITEM_VS_SEEKER] = {gFile_graphics_items_icons_vs_seeker_sheet, gFile_graphics_items_icon_palettes_vs_seeker_palette}, + [ITEM_FAME_CHECKER] = {gFile_graphics_items_icons_fame_checker_sheet, gFile_graphics_items_icon_palettes_fame_checker_palette}, + [ITEM_TM_CASE] = {gFile_graphics_items_icons_tm_case_sheet, gFile_graphics_items_icon_palettes_tm_case_palette}, + [ITEM_BERRY_POUCH] = {gFile_graphics_items_icons_berry_pouch_sheet, gFile_graphics_items_icon_palettes_berry_pouch_palette}, + [ITEM_TEACHY_TV] = {gFile_graphics_items_icons_teachy_tv_sheet, gFile_graphics_items_icon_palettes_teachy_tv_palette}, + [ITEM_TRI_PASS] = {gFile_graphics_items_icons_tri_pass_sheet, gFile_graphics_items_icon_palettes_tri_pass_palette}, + [ITEM_RAINBOW_PASS] = {gFile_graphics_items_icons_rainbow_pass_sheet, gFile_graphics_items_icon_palettes_rainbow_pass_palette}, + [ITEM_TEA] = {gFile_graphics_items_icons_tea_sheet, gFile_graphics_items_icon_palettes_tea_palette}, + [ITEM_MYSTIC_TICKET] = {gFile_graphics_items_icons_mystic_ticket_sheet, gFile_graphics_items_icon_palettes_mystic_ticket_palette}, + [ITEM_AURORA_TICKET] = {gFile_graphics_items_icons_aurora_ticket_sheet, gFile_graphics_items_icon_palettes_aurora_ticket_palette}, + [ITEM_POWDER_JAR] = {gFile_graphics_items_icons_powder_jar_sheet, gFile_graphics_items_icon_palettes_powder_jar_palette}, + [ITEM_RUBY] = {gFile_graphics_items_icons_gem_sheet, gFile_graphics_items_icon_palettes_ruby_palette}, + [ITEM_SAPPHIRE] = {gFile_graphics_items_icons_gem_sheet, gFile_graphics_items_icon_palettes_sapphire_palette}, + [ITEMS_COUNT] = {gFile_graphics_items_icons_return_to_field_arrow_sheet, gFile_graphics_items_icon_palettes_return_to_field_arrow_palette} +}; diff --git a/src/data/items.json b/src/data/items.json index 48d614a80..9527febe7 100644 --- a/src/data/items.json +++ b/src/data/items.json @@ -10,7 +10,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -218,7 +218,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Medicine", "battleUsage": 1, "battleUseFunc": "BattleUseFunc_Medicine", @@ -234,7 +234,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Medicine", "battleUsage": 1, "battleUseFunc": "BattleUseFunc_Medicine", @@ -250,7 +250,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Medicine", "battleUsage": 1, "battleUseFunc": "BattleUseFunc_Medicine", @@ -266,7 +266,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Medicine", "battleUsage": 1, "battleUseFunc": "BattleUseFunc_Medicine", @@ -282,7 +282,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Medicine", "battleUsage": 1, "battleUseFunc": "BattleUseFunc_Medicine", @@ -298,7 +298,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Medicine", "battleUsage": 1, "battleUseFunc": "BattleUseFunc_Medicine", @@ -314,7 +314,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Medicine", "battleUsage": 1, "battleUseFunc": "BattleUseFunc_Medicine", @@ -330,7 +330,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Medicine", "battleUsage": 1, "battleUseFunc": "BattleUseFunc_Medicine", @@ -346,7 +346,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Medicine", "battleUsage": 1, "battleUseFunc": "BattleUseFunc_Medicine", @@ -362,7 +362,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Medicine", "battleUsage": 1, "battleUseFunc": "BattleUseFunc_Medicine", @@ -378,7 +378,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Medicine", "battleUsage": 1, "battleUseFunc": "BattleUseFunc_Medicine", @@ -394,7 +394,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Medicine", "battleUsage": 1, "battleUseFunc": "BattleUseFunc_Medicine", @@ -410,7 +410,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Medicine", "battleUsage": 1, "battleUseFunc": "BattleUseFunc_Medicine", @@ -426,7 +426,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Medicine", "battleUsage": 1, "battleUseFunc": "BattleUseFunc_Medicine", @@ -442,7 +442,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Medicine", "battleUsage": 1, "battleUseFunc": "BattleUseFunc_Medicine", @@ -458,7 +458,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Medicine", "battleUsage": 1, "battleUseFunc": "BattleUseFunc_Medicine", @@ -474,7 +474,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Medicine", "battleUsage": 1, "battleUseFunc": "BattleUseFunc_Medicine", @@ -490,7 +490,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Medicine", "battleUsage": 1, "battleUseFunc": "BattleUseFunc_Medicine", @@ -506,7 +506,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Medicine", "battleUsage": 1, "battleUseFunc": "BattleUseFunc_Medicine", @@ -522,7 +522,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Medicine", "battleUsage": 1, "battleUseFunc": "BattleUseFunc_Medicine", @@ -538,7 +538,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Medicine", "battleUsage": 1, "battleUseFunc": "BattleUseFunc_Medicine", @@ -554,7 +554,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Ether", "battleUsage": 1, "battleUseFunc": "BattleUseFunc_Ether", @@ -570,7 +570,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Ether", "battleUsage": 1, "battleUseFunc": "BattleUseFunc_Ether", @@ -586,7 +586,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Ether", "battleUsage": 1, "battleUseFunc": "BattleUseFunc_Ether", @@ -602,7 +602,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Ether", "battleUsage": 1, "battleUseFunc": "BattleUseFunc_Ether", @@ -618,7 +618,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Medicine", "battleUsage": 1, "battleUseFunc": "BattleUseFunc_Medicine", @@ -634,7 +634,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Medicine", "battleUsage": 1, "battleUseFunc": "BattleUseFunc_Medicine", @@ -650,7 +650,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 1, "battleUseFunc": "BattleUseFunc_Medicine", @@ -666,7 +666,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 1, "battleUseFunc": "BattleUseFunc_Medicine", @@ -682,8 +682,8 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, - "fieldUseFunc": "FieldUseFunc_BlackFlute", + "type": "ITEM_TYPE_PARTY_MENU", + "fieldUseFunc": "FieldUseFunc_BlackWhiteFlute", "battleUsage": 0, "battleUseFunc": "NULL", "secondaryId": 0 @@ -698,8 +698,8 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, - "fieldUseFunc": "FieldUseFunc_BlackFlute", + "type": "ITEM_TYPE_PARTY_MENU", + "fieldUseFunc": "FieldUseFunc_BlackWhiteFlute", "battleUsage": 0, "battleUseFunc": "NULL", "secondaryId": 0 @@ -714,7 +714,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Medicine", "battleUsage": 1, "battleUseFunc": "BattleUseFunc_Medicine", @@ -730,7 +730,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_SacredAsh", "battleUsage": 0, "battleUseFunc": "NULL", @@ -746,7 +746,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -762,7 +762,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -778,7 +778,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -794,7 +794,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -810,7 +810,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -826,7 +826,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -842,7 +842,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -858,7 +858,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -874,7 +874,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -890,7 +890,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -906,7 +906,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -922,7 +922,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -938,7 +938,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -954,7 +954,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -970,7 +970,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -986,7 +986,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1002,7 +1002,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1018,7 +1018,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Medicine", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1034,7 +1034,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Medicine", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1050,7 +1050,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Medicine", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1066,7 +1066,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Medicine", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1082,7 +1082,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Medicine", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1098,7 +1098,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_RareCandy", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1114,7 +1114,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_PpUp", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1130,7 +1130,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Medicine", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1146,7 +1146,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_PpUp", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1162,7 +1162,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1178,10 +1178,10 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 2, - "battleUseFunc": "BattleUseFunc_GuardSpec", + "battleUseFunc": "BattleUseFunc_StatBooster", "secondaryId": 0 }, { @@ -1194,10 +1194,10 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 2, - "battleUseFunc": "BattleUseFunc_GuardSpec", + "battleUseFunc": "BattleUseFunc_StatBooster", "secondaryId": 0 }, { @@ -1210,10 +1210,10 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 2, - "battleUseFunc": "BattleUseFunc_GuardSpec", + "battleUseFunc": "BattleUseFunc_StatBooster", "secondaryId": 0 }, { @@ -1226,10 +1226,10 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 2, - "battleUseFunc": "BattleUseFunc_GuardSpec", + "battleUseFunc": "BattleUseFunc_StatBooster", "secondaryId": 0 }, { @@ -1242,10 +1242,10 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 2, - "battleUseFunc": "BattleUseFunc_GuardSpec", + "battleUseFunc": "BattleUseFunc_StatBooster", "secondaryId": 0 }, { @@ -1258,10 +1258,10 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 2, - "battleUseFunc": "BattleUseFunc_GuardSpec", + "battleUseFunc": "BattleUseFunc_StatBooster", "secondaryId": 0 }, { @@ -1274,10 +1274,10 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 2, - "battleUseFunc": "BattleUseFunc_GuardSpec", + "battleUseFunc": "BattleUseFunc_StatBooster", "secondaryId": 0 }, { @@ -1290,7 +1290,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 2, "battleUseFunc": "BattleUseFunc_PokeDoll", @@ -1306,7 +1306,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 2, "battleUseFunc": "BattleUseFunc_PokeDoll", @@ -1322,7 +1322,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1338,8 +1338,8 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, - "fieldUseFunc": "FieldUseFunc_SuperRepel", + "type": "ITEM_TYPE_BAG_MENU", + "fieldUseFunc": "FieldUseFunc_Repel", "battleUsage": 0, "battleUseFunc": "NULL", "secondaryId": 0 @@ -1354,8 +1354,8 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, - "fieldUseFunc": "FieldUseFunc_SuperRepel", + "type": "ITEM_TYPE_BAG_MENU", + "fieldUseFunc": "FieldUseFunc_Repel", "battleUsage": 0, "battleUseFunc": "NULL", "secondaryId": 0 @@ -1370,7 +1370,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 2, + "type": "ITEM_TYPE_FIELD", "fieldUseFunc": "ItemUseOutOfBattle_EscapeRope", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1386,8 +1386,8 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, - "fieldUseFunc": "FieldUseFunc_SuperRepel", + "type": "ITEM_TYPE_BAG_MENU", + "fieldUseFunc": "FieldUseFunc_Repel", "battleUsage": 0, "battleUseFunc": "NULL", "secondaryId": 0 @@ -1402,7 +1402,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1418,7 +1418,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1434,7 +1434,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1450,7 +1450,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1466,7 +1466,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1482,7 +1482,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1498,7 +1498,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_EvoItem", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1514,7 +1514,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_EvoItem", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1530,7 +1530,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_EvoItem", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1546,7 +1546,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_EvoItem", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1562,7 +1562,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_EvoItem", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1578,7 +1578,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_EvoItem", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1594,7 +1594,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1610,7 +1610,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1626,7 +1626,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1642,7 +1642,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1658,7 +1658,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1674,7 +1674,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1690,7 +1690,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1706,7 +1706,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1722,7 +1722,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1738,7 +1738,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1754,7 +1754,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1770,7 +1770,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1786,7 +1786,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1802,7 +1802,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1818,7 +1818,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1834,7 +1834,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1850,7 +1850,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1866,7 +1866,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1882,7 +1882,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1898,7 +1898,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1914,7 +1914,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1930,7 +1930,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -1946,8 +1946,8 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 0, - "fieldUseFunc": "FieldUseFunc_OrangeMail", + "type": "ITEM_TYPE_MAIL", + "fieldUseFunc": "FieldUseFunc_Mail", "battleUsage": 0, "battleUseFunc": "NULL", "secondaryId": 0 @@ -1962,8 +1962,8 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 0, - "fieldUseFunc": "FieldUseFunc_OrangeMail", + "type": "ITEM_TYPE_MAIL", + "fieldUseFunc": "FieldUseFunc_Mail", "battleUsage": 0, "battleUseFunc": "NULL", "secondaryId": 1 @@ -1978,8 +1978,8 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 0, - "fieldUseFunc": "FieldUseFunc_OrangeMail", + "type": "ITEM_TYPE_MAIL", + "fieldUseFunc": "FieldUseFunc_Mail", "battleUsage": 0, "battleUseFunc": "NULL", "secondaryId": 2 @@ -1994,8 +1994,8 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 0, - "fieldUseFunc": "FieldUseFunc_OrangeMail", + "type": "ITEM_TYPE_MAIL", + "fieldUseFunc": "FieldUseFunc_Mail", "battleUsage": 0, "battleUseFunc": "NULL", "secondaryId": 3 @@ -2010,8 +2010,8 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 0, - "fieldUseFunc": "FieldUseFunc_OrangeMail", + "type": "ITEM_TYPE_MAIL", + "fieldUseFunc": "FieldUseFunc_Mail", "battleUsage": 0, "battleUseFunc": "NULL", "secondaryId": 4 @@ -2026,8 +2026,8 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 0, - "fieldUseFunc": "FieldUseFunc_OrangeMail", + "type": "ITEM_TYPE_MAIL", + "fieldUseFunc": "FieldUseFunc_Mail", "battleUsage": 0, "battleUseFunc": "NULL", "secondaryId": 5 @@ -2042,8 +2042,8 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 0, - "fieldUseFunc": "FieldUseFunc_OrangeMail", + "type": "ITEM_TYPE_MAIL", + "fieldUseFunc": "FieldUseFunc_Mail", "battleUsage": 0, "battleUseFunc": "NULL", "secondaryId": 6 @@ -2058,8 +2058,8 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 0, - "fieldUseFunc": "FieldUseFunc_OrangeMail", + "type": "ITEM_TYPE_MAIL", + "fieldUseFunc": "FieldUseFunc_Mail", "battleUsage": 0, "battleUseFunc": "NULL", "secondaryId": 7 @@ -2074,8 +2074,8 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 0, - "fieldUseFunc": "FieldUseFunc_OrangeMail", + "type": "ITEM_TYPE_MAIL", + "fieldUseFunc": "FieldUseFunc_Mail", "battleUsage": 0, "battleUseFunc": "NULL", "secondaryId": 8 @@ -2090,8 +2090,8 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 0, - "fieldUseFunc": "FieldUseFunc_OrangeMail", + "type": "ITEM_TYPE_MAIL", + "fieldUseFunc": "FieldUseFunc_Mail", "battleUsage": 0, "battleUseFunc": "NULL", "secondaryId": 9 @@ -2106,8 +2106,8 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 0, - "fieldUseFunc": "FieldUseFunc_OrangeMail", + "type": "ITEM_TYPE_MAIL", + "fieldUseFunc": "FieldUseFunc_Mail", "battleUsage": 0, "battleUseFunc": "NULL", "secondaryId": 10 @@ -2122,8 +2122,8 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 0, - "fieldUseFunc": "FieldUseFunc_OrangeMail", + "type": "ITEM_TYPE_MAIL", + "fieldUseFunc": "FieldUseFunc_Mail", "battleUsage": 0, "battleUseFunc": "NULL", "secondaryId": 11 @@ -2138,7 +2138,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Medicine", "battleUsage": 1, "battleUseFunc": "BattleUseFunc_Medicine", @@ -2154,7 +2154,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Medicine", "battleUsage": 1, "battleUseFunc": "BattleUseFunc_Medicine", @@ -2170,7 +2170,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Medicine", "battleUsage": 1, "battleUseFunc": "BattleUseFunc_Medicine", @@ -2186,7 +2186,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Medicine", "battleUsage": 1, "battleUseFunc": "BattleUseFunc_Medicine", @@ -2202,7 +2202,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Medicine", "battleUsage": 1, "battleUseFunc": "BattleUseFunc_Medicine", @@ -2218,7 +2218,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Ether", "battleUsage": 1, "battleUseFunc": "BattleUseFunc_Ether", @@ -2234,7 +2234,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Medicine", "battleUsage": 1, "battleUseFunc": "BattleUseFunc_Medicine", @@ -2250,7 +2250,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 1, "battleUseFunc": "BattleUseFunc_Medicine", @@ -2266,7 +2266,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Medicine", "battleUsage": 1, "battleUseFunc": "BattleUseFunc_Medicine", @@ -2282,7 +2282,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "FieldUseFunc_Medicine", "battleUsage": 1, "battleUseFunc": "BattleUseFunc_Medicine", @@ -2298,7 +2298,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2314,7 +2314,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2330,7 +2330,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2346,7 +2346,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2362,7 +2362,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2378,7 +2378,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2394,7 +2394,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2410,7 +2410,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2426,7 +2426,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2442,7 +2442,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2458,7 +2458,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2474,7 +2474,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2490,7 +2490,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2506,7 +2506,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2522,7 +2522,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2538,7 +2538,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2554,7 +2554,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2570,7 +2570,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2586,7 +2586,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2602,7 +2602,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2618,7 +2618,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2634,7 +2634,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2650,7 +2650,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2666,7 +2666,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2682,7 +2682,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2698,7 +2698,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2714,7 +2714,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2730,7 +2730,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2746,7 +2746,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2762,7 +2762,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2778,7 +2778,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2794,7 +2794,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2810,7 +2810,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_BERRY_POUCH", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "ItemUseOutOfBattle_EnigmaBerry", "battleUsage": 1, "battleUseFunc": "ItemUseInBattle_EnigmaBerry", @@ -2826,7 +2826,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2842,7 +2842,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2858,7 +2858,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2874,7 +2874,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2890,7 +2890,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2906,7 +2906,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2922,7 +2922,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2938,7 +2938,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2954,7 +2954,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2970,7 +2970,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -2986,7 +2986,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3002,7 +3002,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3018,7 +3018,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3034,7 +3034,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3050,7 +3050,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3066,7 +3066,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3082,7 +3082,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3098,7 +3098,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3114,7 +3114,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3130,7 +3130,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3146,7 +3146,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3162,7 +3162,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3178,7 +3178,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3194,7 +3194,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3210,7 +3210,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3226,7 +3226,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3242,7 +3242,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3258,7 +3258,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3274,7 +3274,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3290,7 +3290,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3306,7 +3306,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3322,7 +3322,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3338,7 +3338,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3354,7 +3354,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3370,7 +3370,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3386,7 +3386,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3402,7 +3402,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3418,7 +3418,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3434,7 +3434,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3450,7 +3450,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3466,7 +3466,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3482,7 +3482,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3498,7 +3498,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3514,7 +3514,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3530,7 +3530,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3546,7 +3546,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3562,7 +3562,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3578,7 +3578,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3594,7 +3594,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3610,7 +3610,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3626,7 +3626,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3642,7 +3642,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3658,7 +3658,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3674,7 +3674,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3690,7 +3690,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3706,7 +3706,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3722,7 +3722,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3738,7 +3738,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3754,7 +3754,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3770,7 +3770,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3786,7 +3786,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3802,7 +3802,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3818,7 +3818,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3834,7 +3834,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3850,7 +3850,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3866,7 +3866,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3882,7 +3882,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3898,7 +3898,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3914,7 +3914,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3930,7 +3930,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3946,7 +3946,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3962,7 +3962,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3978,7 +3978,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -3994,7 +3994,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4010,7 +4010,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4026,7 +4026,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4042,7 +4042,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4058,7 +4058,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4074,7 +4074,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4090,7 +4090,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4106,7 +4106,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4122,7 +4122,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4138,7 +4138,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4154,8 +4154,8 @@ "importance": 1, "exitsBagOnUse": 1, "pocket": "POCKET_KEY_ITEMS", - "type": 2, - "fieldUseFunc": "FieldUseFunc_MachBike", + "type": "ITEM_TYPE_FIELD", + "fieldUseFunc": "FieldUseFunc_Bike", "battleUsage": 0, "battleUseFunc": "NULL", "secondaryId": 0 @@ -4170,7 +4170,7 @@ "importance": 1, "exitsBagOnUse": 0, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_CoinCase", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4186,7 +4186,7 @@ "importance": 1, "exitsBagOnUse": 1, "pocket": "POCKET_KEY_ITEMS", - "type": 2, + "type": "ITEM_TYPE_FIELD", "fieldUseFunc": "ItemUseOutOfBattle_Itemfinder", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4202,11 +4202,11 @@ "importance": 1, "exitsBagOnUse": 1, "pocket": "POCKET_KEY_ITEMS", - "type": 2, - "fieldUseFunc": "FieldUseFunc_OldRod", + "type": "ITEM_TYPE_FIELD", + "fieldUseFunc": "FieldUseFunc_Rod", "battleUsage": 0, "battleUseFunc": "NULL", - "secondaryId": 0 + "secondaryId": "OLD_ROD" }, { "english": "GOOD ROD", @@ -4218,11 +4218,11 @@ "importance": 1, "exitsBagOnUse": 1, "pocket": "POCKET_KEY_ITEMS", - "type": 2, - "fieldUseFunc": "FieldUseFunc_OldRod", + "type": "ITEM_TYPE_FIELD", + "fieldUseFunc": "FieldUseFunc_Rod", "battleUsage": 0, "battleUseFunc": "NULL", - "secondaryId": 1 + "secondaryId": "GOOD_ROD" }, { "english": "SUPER ROD", @@ -4234,11 +4234,11 @@ "importance": 1, "exitsBagOnUse": 1, "pocket": "POCKET_KEY_ITEMS", - "type": 2, - "fieldUseFunc": "FieldUseFunc_OldRod", + "type": "ITEM_TYPE_FIELD", + "fieldUseFunc": "FieldUseFunc_Rod", "battleUsage": 0, "battleUseFunc": "NULL", - "secondaryId": 2 + "secondaryId": "SUPER_ROD" }, { "english": "S.S. TICKET", @@ -4250,7 +4250,7 @@ "importance": 1, "exitsBagOnUse": 0, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4266,7 +4266,7 @@ "importance": 1, "exitsBagOnUse": 0, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4282,7 +4282,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4298,7 +4298,7 @@ "importance": 1, "exitsBagOnUse": 0, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4314,7 +4314,7 @@ "importance": 2, "exitsBagOnUse": 0, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4330,7 +4330,7 @@ "importance": 1, "exitsBagOnUse": 0, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4346,7 +4346,7 @@ "importance": 1, "exitsBagOnUse": 0, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4362,8 +4362,8 @@ "importance": 1, "exitsBagOnUse": 1, "pocket": "POCKET_KEY_ITEMS", - "type": 2, - "fieldUseFunc": "FieldUseFunc_MachBike", + "type": "ITEM_TYPE_FIELD", + "fieldUseFunc": "FieldUseFunc_Bike", "battleUsage": 0, "battleUseFunc": "NULL", "secondaryId": 1 @@ -4378,7 +4378,7 @@ "importance": 1, "exitsBagOnUse": 1, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4394,7 +4394,7 @@ "importance": 2, "exitsBagOnUse": 0, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4410,7 +4410,7 @@ "importance": 1, "exitsBagOnUse": 0, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4426,7 +4426,7 @@ "importance": 2, "exitsBagOnUse": 0, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4442,7 +4442,7 @@ "importance": 2, "exitsBagOnUse": 0, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4458,7 +4458,7 @@ "importance": 1, "exitsBagOnUse": 0, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4474,7 +4474,7 @@ "importance": 1, "exitsBagOnUse": 0, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4490,7 +4490,7 @@ "importance": 1, "exitsBagOnUse": 0, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4506,7 +4506,7 @@ "importance": 1, "exitsBagOnUse": 0, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4522,7 +4522,7 @@ "importance": 1, "exitsBagOnUse": 0, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4538,7 +4538,7 @@ "importance": 1, "exitsBagOnUse": 0, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4554,7 +4554,7 @@ "importance": 1, "exitsBagOnUse": 0, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4570,7 +4570,7 @@ "importance": 1, "exitsBagOnUse": 0, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4586,7 +4586,7 @@ "importance": 1, "exitsBagOnUse": 0, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4602,7 +4602,7 @@ "importance": 1, "exitsBagOnUse": 0, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4618,7 +4618,7 @@ "importance": 1, "exitsBagOnUse": 0, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4634,7 +4634,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4651,7 +4651,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4668,7 +4668,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4685,7 +4685,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4702,7 +4702,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4719,7 +4719,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4736,7 +4736,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4753,7 +4753,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4770,7 +4770,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4787,7 +4787,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4804,7 +4804,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4821,7 +4821,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4838,7 +4838,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4855,7 +4855,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4872,7 +4872,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4889,7 +4889,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4906,7 +4906,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4923,7 +4923,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4940,7 +4940,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4957,7 +4957,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4974,7 +4974,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -4991,7 +4991,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5008,7 +5008,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5025,7 +5025,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5042,7 +5042,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5059,7 +5059,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5076,7 +5076,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5093,7 +5093,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5110,7 +5110,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5127,7 +5127,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5144,7 +5144,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5161,7 +5161,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5178,7 +5178,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5195,7 +5195,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5212,7 +5212,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5229,7 +5229,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5246,7 +5246,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5263,7 +5263,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5280,7 +5280,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5297,7 +5297,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5314,7 +5314,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5331,7 +5331,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5348,7 +5348,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5365,7 +5365,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5382,7 +5382,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5399,7 +5399,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5416,7 +5416,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5433,7 +5433,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5450,7 +5450,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5467,7 +5467,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5484,7 +5484,7 @@ "importance": 1, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5501,7 +5501,7 @@ "importance": 1, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5518,7 +5518,7 @@ "importance": 1, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5535,7 +5535,7 @@ "importance": 1, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5552,7 +5552,7 @@ "importance": 1, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5569,7 +5569,7 @@ "importance": 1, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5586,7 +5586,7 @@ "importance": 1, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5603,7 +5603,7 @@ "importance": 1, "exitsBagOnUse": 0, "pocket": "POCKET_TM_CASE", - "type": 1, + "type": "ITEM_TYPE_PARTY_MENU", "fieldUseFunc": "NULL", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5620,7 +5620,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5636,7 +5636,7 @@ "importance": 0, "exitsBagOnUse": 0, "pocket": "POCKET_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5652,7 +5652,7 @@ "importance": 2, "exitsBagOnUse": 0, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5668,7 +5668,7 @@ "importance": 1, "exitsBagOnUse": 0, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_PokeFlute", "battleUsage": 2, "battleUseFunc": "BattleUseFunc_PokeFlute", @@ -5684,7 +5684,7 @@ "importance": 1, "exitsBagOnUse": 0, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5700,7 +5700,7 @@ "importance": 1, "exitsBagOnUse": 0, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5716,7 +5716,7 @@ "importance": 1, "exitsBagOnUse": 0, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5732,7 +5732,7 @@ "importance": 1, "exitsBagOnUse": 0, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5748,7 +5748,7 @@ "importance": 1, "exitsBagOnUse": 0, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5764,7 +5764,7 @@ "importance": 1, "exitsBagOnUse": 0, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5780,7 +5780,7 @@ "importance": 1, "exitsBagOnUse": 0, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5796,7 +5796,7 @@ "importance": 1, "exitsBagOnUse": 0, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5812,7 +5812,7 @@ "importance": 1, "exitsBagOnUse": 0, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5828,8 +5828,8 @@ "importance": 1, "exitsBagOnUse": 1, "pocket": "POCKET_KEY_ITEMS", - "type": 2, - "fieldUseFunc": "FieldUseFunc_MachBike", + "type": "ITEM_TYPE_FIELD", + "fieldUseFunc": "FieldUseFunc_Bike", "battleUsage": 0, "battleUseFunc": "NULL", "secondaryId": 0 @@ -5844,7 +5844,7 @@ "importance": 1, "exitsBagOnUse": 1, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_TownMap", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5860,7 +5860,7 @@ "importance": 1, "exitsBagOnUse": 1, "pocket": "POCKET_KEY_ITEMS", - "type": 2, + "type": "ITEM_TYPE_FIELD", "fieldUseFunc": "FieldUseFunc_VsSeeker", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5876,7 +5876,7 @@ "importance": 1, "exitsBagOnUse": 1, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_FameChecker", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5892,7 +5892,7 @@ "importance": 1, "exitsBagOnUse": 1, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_TmCase", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5908,7 +5908,7 @@ "importance": 1, "exitsBagOnUse": 1, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_BerryPouch", "battleUsage": 3, "battleUseFunc": "BattleUseFunc_BerryPouch", @@ -5924,7 +5924,7 @@ "importance": 1, "exitsBagOnUse": 1, "pocket": "POCKET_KEY_ITEMS", - "type": 2, + "type": "ITEM_TYPE_FIELD", "fieldUseFunc": "FieldUseFunc_TeachyTv", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5940,7 +5940,7 @@ "importance": 1, "exitsBagOnUse": 1, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5956,7 +5956,7 @@ "importance": 1, "exitsBagOnUse": 1, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5972,7 +5972,7 @@ "importance": 1, "exitsBagOnUse": 1, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -5988,7 +5988,7 @@ "importance": 1, "exitsBagOnUse": 1, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -6004,7 +6004,7 @@ "importance": 1, "exitsBagOnUse": 1, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -6020,7 +6020,7 @@ "importance": 1, "exitsBagOnUse": 1, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_PowderJar", "battleUsage": 0, "battleUseFunc": "NULL", @@ -6036,7 +6036,7 @@ "importance": 1, "exitsBagOnUse": 1, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", @@ -6052,7 +6052,7 @@ "importance": 1, "exitsBagOnUse": 1, "pocket": "POCKET_KEY_ITEMS", - "type": 4, + "type": "ITEM_TYPE_BAG_MENU", "fieldUseFunc": "FieldUseFunc_OakStopsYou", "battleUsage": 0, "battleUseFunc": "NULL", diff --git a/src/data/object_events/movement_type_func_tables.h b/src/data/object_events/movement_type_func_tables.h index 4799a7edd..b14421986 100644 --- a/src/data/object_events/movement_type_func_tables.h +++ b/src/data/object_events/movement_type_func_tables.h @@ -134,7 +134,7 @@ static bool8 MovementType_CopyPlayer_Step2(struct ObjectEvent *objectEvent, stru static bool8 MovementType_Buried_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite); static bool8 MovementType_WalkInPlace_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite); static bool8 MovementType_MoveInPlace_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite); -static bool8 MovementType_WalkSlowlyInPlace_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite); +static bool8 MovementType_WalkInPlaceFast_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite); static bool8 MovementType_MoveInPlace_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite); static bool8 MovementType_JogInPlace_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite); static bool8 MovementType_MoveInPlace_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite); @@ -580,8 +580,8 @@ u8 (*const gMovementTypeFuncs_WalkInPlace[])(struct ObjectEvent *, struct Sprite MovementType_MoveInPlace_Step1, }; -u8 (*const gMovementTypeFuncs_WalkSlowlyInPlace[])(struct ObjectEvent *, struct Sprite *) = { - MovementType_WalkSlowlyInPlace_Step0, +u8 (*const gMovementTypeFuncs_WalkInPlaceFast[])(struct ObjectEvent *, struct Sprite *) = { + MovementType_WalkInPlaceFast_Step0, MovementType_MoveInPlace_Step1, }; diff --git a/src/data/object_events/object_event_graphics.h b/src/data/object_events/object_event_graphics.h index 7d0f57e3c..97da9e822 100644 --- a/src/data/object_events/object_event_graphics.h +++ b/src/data/object_events/object_event_graphics.h @@ -191,9 +191,9 @@ const u16 gFieldEffectObjectPic_ShadowMedium[] = INCBIN_U16("graphics/field_effe const u16 gFieldEffectObjectPic_ShadowLarge[] = INCBIN_U16("graphics/field_effects/pics/shadow_large.4bpp"); const u16 gFieldEffectObjectPic_ShadowExtraLarge[] = INCBIN_U16("graphics/field_effects/pics/shadow_extra_large.4bpp"); const u16 filler_8398188[0x90] = {}; -const u16 gUnknown_8398648[] = INCBIN_U16("graphics/field_effects/fldeff_cut.4bpp"); -const u16 gUnknown_8398668[] = INCBIN_U16("graphics/field_effects/fldeff_cut.4bpp"); -const u16 gUnknown_8398688[] = INCBIN_U16("graphics/field_effects/fldeff_cut.gbapal"); +const u16 gFieldEffectObjectPic_CutGrass[] = INCBIN_U16("graphics/field_effects/fldeff_cut.4bpp"); +const u16 gFieldEffectObjectPic_CutGrass2[] = INCBIN_U16("graphics/field_effects/fldeff_cut.4bpp"); // Unused +const u16 gFieldEffectPal_CutGrass[] = INCBIN_U16("graphics/field_effects/fldeff_cut.gbapal"); const u16 gFieldEffectObjectPic_Ripple[] = INCBIN_U16("graphics/field_effects/pics/ripple.4bpp"); const u16 gFieldEffectObjectPic_Ash[] = INCBIN_U16("graphics/field_effects/pics/ash.4bpp"); const u16 gFieldEffectObjectPic_Arrow[] = INCBIN_U16("graphics/field_effects/pics/arrow.4bpp"); @@ -201,9 +201,9 @@ const u16 gFieldEffectObjectPalette0[] = INCBIN_U16("graphics/field_effects/pale const u16 gFieldEffectObjectPalette1[] = INCBIN_U16("graphics/field_effects/palettes/general_1.gbapal"); const u16 filler_8398FE8[16] = {0}; const u16 gFieldEffectObjectPic_GroundImpactDust[] = INCBIN_U16("graphics/field_effects/pics/ground_impact_dust.4bpp"); -UNUSED const u16 gFieldEffectObjectPic_UnusedGrass3[] = INCBIN_U16("graphics/field_effects/pics/unused_grass_3.4bpp"); +const u16 gFieldEffectObjectPic_UnusedGrass3[] = INCBIN_U16("graphics/field_effects/pics/unused_grass_3.4bpp"); // Unused const u16 gFieldEffectObjectPic_JumpTallGrass[] = INCBIN_U16("graphics/field_effects/pics/jump_tall_grass.4bpp"); -UNUSED const u16 gFieldEffectObjectPic_UnusedGrass4[] = INCBIN_U16("graphics/field_effects/pics/unused_grass_4.4bpp"); +const u16 gFieldEffectObjectPic_UnusedGrass4[] = INCBIN_U16("graphics/field_effects/pics/unused_grass_4.4bpp"); // Unused const u16 gFieldEffectObjectPic_JumpLongGrass[] = INCBIN_U16("graphics/field_effects/pics/jump_long_grass.4bpp"); const u16 gFieldEffectObjectPic_UnusedGrass[] = INCBIN_U16("graphics/field_effects/pics/unused_grass.4bpp"); const u16 gFieldEffectObjectPic_UnusedGrass2[] = INCBIN_U16("graphics/field_effects/pics/unused_grass_2.4bpp"); diff --git a/src/data/object_events/object_event_graphics_info.h b/src/data/object_events/object_event_graphics_info.h index 03632fc16..3b1671d5a 100644 --- a/src/data/object_events/object_event_graphics_info.h +++ b/src/data/object_events/object_event_graphics_info.h @@ -1,154 +1,2925 @@ -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RedNormal = {TAG_NONE, OBJ_EVENT_PAL_TAG_PLAYER_RED, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 16, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_RedGreenNormal, sPicTable_RedNormal, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RedBike = {TAG_NONE, OBJ_EVENT_PAL_TAG_PLAYER_RED, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, sAnimTable_Standard, sPicTable_RedBike, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RedSurf = {TAG_NONE, OBJ_EVENT_PAL_TAG_PLAYER_RED, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 0, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_RedGreenSurf, sPicTable_RedSurf, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RedFieldMove = {TAG_NONE, OBJ_EVENT_PAL_TAG_PLAYER_RED, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 256, 16, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_RedGreenFieldMove, sPicTable_RedItem, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Policeman = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_Policeman, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RSBrendan = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_RSBrendan, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RSMay = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_RSMay, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_LittleBoy = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Standard, sPicTable_LittleBoy, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_LittleGirl = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Standard, sPicTable_LittleGirl, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SittingBoy = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_SittingBoy, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Lass = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_Lass, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Youngster = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_Youngster, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Woman1 = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_GREEN, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_Woman1, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Woman3 = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_Woman3, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Boy = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_GREEN, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_Boy, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BattleGirl = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_BattleGirl, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BugCatcher = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_GREEN, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_BugCatcher, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_FatMan = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_FatMan, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BaldingMan = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_BaldingMan, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Woman2 = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_Woman2, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_OldMan1 = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_OldMan1, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_WorkerM = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_WorkerM, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_WorkerF = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_GREEN, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_WorkerF, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Beauty = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_Beauty, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Chef = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_Chef, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_OldMan2 = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_OldMan2, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_OldWoman = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_OldWoman, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Camper = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_GREEN, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_Camper, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Picnicker = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_GREEN, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_Picnicker, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_CooltrainerM = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_CooltrainerM, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_CooltrainerF = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_CooltrainerF, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SuperNerd = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_SuperNerd, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Channeler = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_Channeler, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RocketF = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_RocketF, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SwimmerMWater = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_SwimmerMWater, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SwimmerFWater = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_GREEN, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_SwimmerFWater, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SwimmerMLand = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_SwimmerMLand, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SwimmerFLand = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_SwimmerFLand, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Blackbelt = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_Blackbelt, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Scientist = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_Scientist, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Gentleman = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_Gentleman, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Sailor = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_Sailor, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Captain = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_Captain, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Fisher = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_Fisher, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TeachyTVHost = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_TeachyTVHost, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnusedWoman = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_UnusedWoman, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TuberF = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Standard, sPicTable_TuberF, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TuberMWater = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Standard, sPicTable_TuberMWater, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TuberMLand = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Standard, sPicTable_TuberMLand, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Hiker = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_Hiker, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Biker = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, sAnimTable_Standard, sPicTable_Biker, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GymGuy = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_GymGuy, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Nurse = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Nurse, sPicTable_Nurse, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnusedMaleReceptionist = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_UnusedMaleReceptionist, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ItemBall = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Inanimate, sPicTable_ItemBall, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ProfOak = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_ProfOak, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Man = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_Man, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Rocker = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_Rocker, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MrFuji = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_MrFuji, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Bruno = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_Bruno, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_OldManLyingDown = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, sAnimTable_Standard, sPicTable_OldManLyingDown, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_CutTree = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_GREEN, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_CutTree, sPicTable_CutTree, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Clerk = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_Clerk, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MGDeliveryman = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_GREEN, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_MGDeliveryman, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TrainerTowerDude = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_TrainerTowerDude, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_CableClubReceptionist = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_CableClubReceptionist, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnionRoomReceptionist = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_UnionRoomReceptionist, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RockSmashRock = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_RockSmashRock, sPicTable_RockSmashRock, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_StrengthBoulder = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Inanimate, sPicTable_StrengthBoulder, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GreenNormal = {TAG_NONE, OBJ_EVENT_PAL_TAG_PLAYER_GREEN, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 16, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_RedGreenNormal, sPicTable_GreenNormal, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GreenBike = {TAG_NONE, OBJ_EVENT_PAL_TAG_PLAYER_GREEN, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, sAnimTable_Standard, sPicTable_GreenBike, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GreenSurf = {TAG_NONE, OBJ_EVENT_PAL_TAG_PLAYER_GREEN, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 0, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_RedGreenSurf, sPicTable_GreenSurf, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GreenFieldMove = {TAG_NONE, OBJ_EVENT_PAL_TAG_PLAYER_GREEN, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 256, 16, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_RedGreenFieldMove, sPicTable_GreenItem, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RedBikeAlt = {TAG_NONE, OBJ_EVENT_PAL_TAG_PLAYER_RED, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, sAnimTable_Standard, sPicTable_RedBike, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RocketM = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_RocketM, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Celio = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_Celio, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Agatha = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_Agatha, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Brock = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_GREEN, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_Brock, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Misty = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_Misty, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_LtSurge = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_GREEN, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_LtSurge, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Erika = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_Erika, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Koga = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_Koga, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Giovanni = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_Giovanni, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Blaine = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_Blaine, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Sabrina = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_Sabrina, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Bill = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_Bill, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Daisy = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_GREEN, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_Daisy, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Lorelei = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_Lorelei, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Lance = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_Lance, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Blue = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_GREEN, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_Blue, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RedFish = {TAG_NONE, OBJ_EVENT_PAL_TAG_PLAYER_RED, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, sAnimTable_RedGreenFish, sPicTable_RedFish, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GreenFish = {TAG_NONE, OBJ_EVENT_PAL_TAG_PLAYER_GREEN, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, sAnimTable_RedGreenFish, sPicTable_GreenFish, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RedVSSeeker = {TAG_NONE, OBJ_EVENT_PAL_TAG_PLAYER_RED, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 256, 16, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_RedGreenVSSeeker, sPicTable_RedItem, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RedVSSeekerBike = {TAG_NONE, OBJ_EVENT_PAL_TAG_PLAYER_RED, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, sAnimTable_RedGreenVSSeekerBike, sPicTable_RedVSSeekerBike, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GreenVSSeeker = {TAG_NONE, OBJ_EVENT_PAL_TAG_PLAYER_RED, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 256, 16, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_RedGreenVSSeeker, sPicTable_GreenItem, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GreenVSSeekerBike = {TAG_NONE, OBJ_EVENT_PAL_TAG_PLAYER_RED, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, sAnimTable_RedGreenVSSeekerBike, sPicTable_GreenVSSeekerBike, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TownMap = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 256, 32, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Inanimate, sPicTable_TownMap, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Pokedex = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Inanimate, sPicTable_Pokedex, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GBAKid = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_GBAKid, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Snorlax = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, sAnimTable_Standard, sPicTable_Snorlax, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Fossil = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Inanimate, sPicTable_Fossil, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Ruby = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Inanimate, sPicTable_Ruby, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Sapphire = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Inanimate, sPicTable_Sapphire, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_OldAmber = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Inanimate, sPicTable_OldAmber, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GymSign = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Inanimate, sPicTable_GymSign, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Sign = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Inanimate, sPicTable_Sign, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TrainerTips = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Inanimate, sPicTable_WoodenSign, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Clipboard = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Inanimate, sPicTable_Clipboard, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Meteorite = {TAG_NONE, OBJ_EVENT_PAL_TAG_METEORITE, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, sAnimTable_Inanimate, sPicTable_BirthIslandStone, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_LaprasDoll = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, sAnimTable_Inanimate, sPicTable_LaprasDoll, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Spearow = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Standard, sPicTable_Spearow, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Omanyte = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Standard, sPicTable_Omanyte, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Kangaskhan = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Standard, sPicTable_Kangaskhan, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Psyduck = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Standard, sPicTable_Psyduck, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_NidoranF = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Standard, sPicTable_NidoranF, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_NidoranM = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_GREEN, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Standard, sPicTable_NidoranM, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Nidorino = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_GREEN, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Standard, sPicTable_Nidorino, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Meowth = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Standard, sPicTable_Meowth, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Seel = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Standard, sPicTable_Seel, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Voltorb = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Standard, sPicTable_Voltorb, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Slowpoke = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Standard, sPicTable_Slowpoke, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Slowbro = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Standard, sPicTable_Slowbro, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Machop = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Standard, sPicTable_Machop, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Wigglytuff = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Standard, sPicTable_Wigglytuff, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Doduo = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Standard, sPicTable_Doduo, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Fearow = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Standard, sPicTable_Fearow, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Lapras = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Standard, sPicTable_Lapras, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Zapdos = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, sAnimTable_Standard, sPicTable_Zapdos, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Moltres = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, sAnimTable_Standard, sPicTable_Moltres, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Articuno = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, sAnimTable_Standard, sPicTable_Articuno, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_DeoxysD = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, sAnimTable_Standard, sPicTable_DeoxysD, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_DeoxysA = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, sAnimTable_Standard, sPicTable_DeoxysA, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_DeoxysN = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, sAnimTable_Standard, sPicTable_DeoxysN, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Mewtwo = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Standard, sPicTable_Mewtwo, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Mew = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_GREEN, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Standard, sPicTable_Mew, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Entei = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Standard, sPicTable_Entei, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Raikou = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_GREEN, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Standard, sPicTable_Raikou, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Suicune = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Standard, sPicTable_Suicune, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Lugia = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, sAnimTable_Standard, sPicTable_Lugia, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_HoOh = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, sAnimTable_HoOh, sPicTable_HoOh, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Celebi = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_GREEN, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Standard, sPicTable_Celebi, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Cubone = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_WHITE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Standard, sPicTable_Cubone, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Machoke = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Standard, sPicTable_Machoke, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Kabuto = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Standard, sPicTable_Kabuto, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Poliwrath = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Standard, sPicTable_Poliwrath, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Pidgeot = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Standard, sPicTable_Pidgeot, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Chansey = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Standard, sPicTable_Chansey, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Pikachu = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Standard, sPicTable_Pikachu, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Jigglypuff = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Standard, sPicTable_Jigglypuff, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Pidgey = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Standard, sPicTable_Pidgey, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Clefairy = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_PINK, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, sAnimTable_Standard, sPicTable_Clefairy, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Mom = {TAG_NONE, OBJ_EVENT_PAL_TAG_NPC_BLUE, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, sAnimTable_Standard, sPicTable_Mom, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Seagallop = {TAG_NONE, OBJ_EVENT_PAL_TAG_SEAGALLOP, OBJ_EVENT_PAL_TAG_NONE, 2048, 64, 64, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_64x64, gObjectEventSpriteOamTables_64x64, sAnimTable_Standard, sPicTable_Seagallop, gDummySpriteAffineAnimTable}; -const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SSAnne = {TAG_NONE, OBJ_EVENT_PAL_TAG_SS_ANNE, OBJ_EVENT_PAL_TAG_NONE, 4096, 128, 64, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_8x8, gObjectEventSpriteOamTables_128x64, sAnimTable_Standard, sPicTable_SSAnne, gDummySpriteAffineAnimTable}; +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RedNormal = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_PLAYER_RED, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, + .size = 512, + .width = 16, + .height = 32, + .paletteSlot = 0, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_RedGreenNormal, + .images = sPicTable_RedNormal, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RedBike = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_PLAYER_RED, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, + .size = 512, + .width = 32, + .height = 32, + .paletteSlot = 0, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_BIKE_TIRE, + .oam = &gObjectEventBaseOam_32x32, + .subspriteTables = gObjectEventSpriteOamTables_32x32, + .anims = sAnimTable_Standard, + .images = sPicTable_RedBike, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RedSurf = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_PLAYER_RED, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 0, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = TRUE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_RedGreenSurf, + .images = sPicTable_RedSurf, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RedFieldMove = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_PLAYER_RED, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 0, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_RedGreenFieldMove, + .images = sPicTable_RedItem, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Policeman = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_BLUE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 2, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Policeman, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RSBrendan = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_RSBrendan, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RSMay = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_RSMay, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_LittleBoy = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Standard, + .images = sPicTable_LittleBoy, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_LittleGirl = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_PINK, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 3, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Standard, + .images = sPicTable_LittleGirl, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SittingBoy = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_SittingBoy, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Lass = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_BLUE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 2, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Lass, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Youngster = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_BLUE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 2, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Youngster, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Woman1 = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_GREEN, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 4, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Woman1, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Woman3 = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Woman3, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Boy = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_GREEN, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 4, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Boy, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BattleGirl = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_BattleGirl, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BugCatcher = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_GREEN, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 4, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_BugCatcher, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_FatMan = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_FatMan, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BaldingMan = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_BaldingMan, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Woman2 = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Woman2, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_OldMan1 = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_PINK, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 3, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_OldMan1, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_WorkerM = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_WorkerM, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_WorkerF = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_GREEN, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 4, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_WorkerF, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Beauty = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_BLUE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 2, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Beauty, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Chef = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Chef, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_OldMan2 = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_OldMan2, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_OldWoman = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_PINK, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 3, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_OldWoman, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Camper = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_GREEN, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 4, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Camper, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Picnicker = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_GREEN, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 4, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Picnicker, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_CooltrainerM = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_BLUE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 2, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_CooltrainerM, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_CooltrainerF = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_BLUE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 2, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_CooltrainerF, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SuperNerd = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_PINK, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 3, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_SuperNerd, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Channeler = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Channeler, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RocketF = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_RocketF, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SwimmerMWater = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_SwimmerMWater, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SwimmerFWater = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_GREEN, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 4, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_SwimmerFWater, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SwimmerMLand = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_SwimmerMLand, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SwimmerFLand = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_BLUE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 2, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_SwimmerFLand, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Blackbelt = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Blackbelt, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Scientist = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Scientist, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Gentleman = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Gentleman, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Sailor = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_PINK, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 3, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Sailor, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Captain = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Captain, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Fisher = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Fisher, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TeachyTVHost = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_TeachyTVHost, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnusedWoman = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_PINK, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 3, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_UnusedWoman, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TuberF = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Standard, + .images = sPicTable_TuberF, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TuberMWater = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_BLUE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 2, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Standard, + .images = sPicTable_TuberMWater, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TuberMLand = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_BLUE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 2, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Standard, + .images = sPicTable_TuberMLand, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Hiker = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Hiker, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Biker = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_PINK, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 512, + .width = 32, + .height = 32, + .paletteSlot = 3, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_BIKE_TIRE, + .oam = &gObjectEventBaseOam_32x32, + .subspriteTables = gObjectEventSpriteOamTables_32x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Biker, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GymGuy = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_PINK, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 3, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_BIKE_TIRE, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_GymGuy, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Nurse = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_PINK, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 3, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Nurse, + .images = sPicTable_Nurse, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnusedMaleReceptionist = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_UnusedMaleReceptionist, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ItemBall = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_S, + .inanimate = TRUE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_NONE, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Inanimate, + .images = sPicTable_ItemBall, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ProfOak = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_ProfOak, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Man = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Man, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Rocker = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_BLUE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 2, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Rocker, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MrFuji = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_MrFuji, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Bruno = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Bruno, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_OldManLyingDown = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_PINK, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 512, + .width = 32, + .height = 32, + .paletteSlot = 3, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_32x32, + .subspriteTables = gObjectEventSpriteOamTables_32x32, + .anims = sAnimTable_Standard, + .images = sPicTable_OldManLyingDown, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_CutTree = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_GREEN, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 4, + .shadowSize = SHADOW_SIZE_S, + .inanimate = TRUE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_NONE, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_CutTree, + .images = sPicTable_CutTree, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Clerk = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Clerk, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MGDeliveryman = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_GREEN, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 4, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_MGDeliveryman, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TrainerTowerDude = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_TrainerTowerDude, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_CableClubReceptionist = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_CableClubReceptionist, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnionRoomReceptionist = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_UnionRoomReceptionist, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RockSmashRock = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_S, + .inanimate = TRUE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_NONE, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_RockSmashRock, + .images = sPicTable_RockSmashRock, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_StrengthBoulder = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_S, + .inanimate = TRUE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_NONE, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Inanimate, + .images = sPicTable_StrengthBoulder, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GreenNormal = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_PLAYER_GREEN, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, + .size = 512, + .width = 16, + .height = 32, + .paletteSlot = 0, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_RedGreenNormal, + .images = sPicTable_GreenNormal, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GreenBike = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_PLAYER_GREEN, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, + .size = 512, + .width = 32, + .height = 32, + .paletteSlot = 0, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_BIKE_TIRE, + .oam = &gObjectEventBaseOam_32x32, + .subspriteTables = gObjectEventSpriteOamTables_32x32, + .anims = sAnimTable_Standard, + .images = sPicTable_GreenBike, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GreenSurf = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_PLAYER_GREEN, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 0, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = TRUE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_RedGreenSurf, + .images = sPicTable_GreenSurf, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GreenFieldMove = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_PLAYER_GREEN, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 0, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_RedGreenFieldMove, + .images = sPicTable_GreenItem, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RedBikeAlt = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_PLAYER_RED, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, + .size = 512, + .width = 32, + .height = 32, + .paletteSlot = 10, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_BIKE_TIRE, + .oam = &gObjectEventBaseOam_32x32, + .subspriteTables = gObjectEventSpriteOamTables_32x32, + .anims = sAnimTable_Standard, + .images = sPicTable_RedBike, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RocketM = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_RocketM, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Celio = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Celio, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Agatha = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_PINK, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 3, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Agatha, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Brock = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_GREEN, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 4, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Brock, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Misty = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_BLUE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 2, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Misty, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_LtSurge = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_GREEN, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 4, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_LtSurge, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Erika = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_BLUE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 2, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Erika, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Koga = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Koga, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Giovanni = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Giovanni, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Blaine = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_PINK, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 3, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Blaine, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Sabrina = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_BLUE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 2, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Sabrina, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Bill = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_BLUE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 2, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Bill, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Daisy = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_GREEN, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 4, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Daisy, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Lorelei = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Lorelei, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Lance = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Lance, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Blue = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_GREEN, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 4, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Blue, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RedFish = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_PLAYER_RED, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, + .size = 512, + .width = 32, + .height = 32, + .paletteSlot = 0, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_32x32, + .subspriteTables = gObjectEventSpriteOamTables_32x32, + .anims = sAnimTable_RedGreenFish, + .images = sPicTable_RedFish, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GreenFish = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_PLAYER_GREEN, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, + .size = 512, + .width = 32, + .height = 32, + .paletteSlot = 0, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_32x32, + .subspriteTables = gObjectEventSpriteOamTables_32x32, + .anims = sAnimTable_RedGreenFish, + .images = sPicTable_GreenFish, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RedVSSeeker = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_PLAYER_RED, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 0, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_RedGreenVSSeeker, + .images = sPicTable_RedItem, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RedVSSeekerBike = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_PLAYER_RED, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, + .size = 512, + .width = 32, + .height = 32, + .paletteSlot = 0, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_32x32, + .subspriteTables = gObjectEventSpriteOamTables_32x32, + .anims = sAnimTable_RedGreenVSSeekerBike, + .images = sPicTable_RedVSSeekerBike, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GreenVSSeeker = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_PLAYER_RED, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 0, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_RedGreenVSSeeker, + .images = sPicTable_GreenItem, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GreenVSSeekerBike = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_PLAYER_RED, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, + .size = 512, + .width = 32, + .height = 32, + .paletteSlot = 0, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_32x32, + .subspriteTables = gObjectEventSpriteOamTables_32x32, + .anims = sAnimTable_RedGreenVSSeekerBike, + .images = sPicTable_GreenVSSeekerBike, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TownMap = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_BLUE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 32, + .height = 16, + .paletteSlot = 2, + .shadowSize = SHADOW_SIZE_S, + .inanimate = TRUE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_NONE, + .oam = &gObjectEventBaseOam_32x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Inanimate, + .images = sPicTable_TownMap, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Pokedex = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_BLUE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 2, + .shadowSize = SHADOW_SIZE_S, + .inanimate = TRUE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_NONE, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Inanimate, + .images = sPicTable_Pokedex, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GBAKid = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_PINK, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 3, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_GBAKid, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Snorlax = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_BLUE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 512, + .width = 32, + .height = 32, + .paletteSlot = 2, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_32x32, + .subspriteTables = gObjectEventSpriteOamTables_32x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Snorlax, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Fossil = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_S, + .inanimate = TRUE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_NONE, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Inanimate, + .images = sPicTable_Fossil, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Ruby = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_BLUE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 2, + .shadowSize = SHADOW_SIZE_S, + .inanimate = TRUE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_NONE, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Inanimate, + .images = sPicTable_Ruby, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Sapphire = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_BLUE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 2, + .shadowSize = SHADOW_SIZE_S, + .inanimate = TRUE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_NONE, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Inanimate, + .images = sPicTable_Sapphire, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_OldAmber = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_BLUE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 2, + .shadowSize = SHADOW_SIZE_S, + .inanimate = TRUE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_NONE, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Inanimate, + .images = sPicTable_OldAmber, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GymSign = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_S, + .inanimate = TRUE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_NONE, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Inanimate, + .images = sPicTable_GymSign, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Sign = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_S, + .inanimate = TRUE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_NONE, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Inanimate, + .images = sPicTable_Sign, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TrainerTips = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_S, + .inanimate = TRUE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_NONE, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Inanimate, + .images = sPicTable_WoodenSign, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Clipboard = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_S, + .inanimate = TRUE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_NONE, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Inanimate, + .images = sPicTable_Clipboard, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Meteorite = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_METEORITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 512, + .width = 32, + .height = 32, + .paletteSlot = 10, + .shadowSize = SHADOW_SIZE_S, + .inanimate = TRUE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_NONE, + .oam = &gObjectEventBaseOam_32x32, + .subspriteTables = gObjectEventSpriteOamTables_32x32, + .anims = sAnimTable_Inanimate, + .images = sPicTable_BirthIslandStone, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_LaprasDoll = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_PINK, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 512, + .width = 32, + .height = 32, + .paletteSlot = 3, + .shadowSize = SHADOW_SIZE_S, + .inanimate = TRUE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_NONE, + .oam = &gObjectEventBaseOam_32x32, + .subspriteTables = gObjectEventSpriteOamTables_32x32, + .anims = sAnimTable_Inanimate, + .images = sPicTable_LaprasDoll, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Spearow = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Standard, + .images = sPicTable_Spearow, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Omanyte = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_BLUE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 2, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Standard, + .images = sPicTable_Omanyte, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Kangaskhan = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_BLUE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 2, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Standard, + .images = sPicTable_Kangaskhan, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Psyduck = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_BLUE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 2, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Standard, + .images = sPicTable_Psyduck, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_NidoranF = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_PINK, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 3, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Standard, + .images = sPicTable_NidoranF, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_NidoranM = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_GREEN, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 4, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Standard, + .images = sPicTable_NidoranM, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Nidorino = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_GREEN, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 4, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Standard, + .images = sPicTable_Nidorino, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Meowth = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_BLUE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 2, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Standard, + .images = sPicTable_Meowth, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Seel = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_PINK, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 3, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Standard, + .images = sPicTable_Seel, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Voltorb = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Standard, + .images = sPicTable_Voltorb, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Slowpoke = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_PINK, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 3, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Standard, + .images = sPicTable_Slowpoke, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Slowbro = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_PINK, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 3, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Standard, + .images = sPicTable_Slowbro, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Machop = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_PINK, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 3, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Standard, + .images = sPicTable_Machop, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Wigglytuff = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_PINK, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 3, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Standard, + .images = sPicTable_Wigglytuff, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Doduo = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_BLUE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 2, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Standard, + .images = sPicTable_Doduo, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Fearow = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Standard, + .images = sPicTable_Fearow, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Lapras = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_PINK, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 3, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Standard, + .images = sPicTable_Lapras, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Zapdos = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_BLUE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 512, + .width = 32, + .height = 32, + .paletteSlot = 2, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_32x32, + .subspriteTables = gObjectEventSpriteOamTables_32x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Zapdos, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Moltres = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_BLUE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 512, + .width = 32, + .height = 32, + .paletteSlot = 2, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_32x32, + .subspriteTables = gObjectEventSpriteOamTables_32x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Moltres, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Articuno = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_PINK, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 512, + .width = 32, + .height = 32, + .paletteSlot = 3, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_32x32, + .subspriteTables = gObjectEventSpriteOamTables_32x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Articuno, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_DeoxysD = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_BLUE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 512, + .width = 32, + .height = 32, + .paletteSlot = 2, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_32x32, + .subspriteTables = gObjectEventSpriteOamTables_32x32, + .anims = sAnimTable_Standard, + .images = sPicTable_DeoxysD, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_DeoxysA = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_BLUE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 512, + .width = 32, + .height = 32, + .paletteSlot = 2, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_32x32, + .subspriteTables = gObjectEventSpriteOamTables_32x32, + .anims = sAnimTable_Standard, + .images = sPicTable_DeoxysA, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_DeoxysN = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_BLUE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 512, + .width = 32, + .height = 32, + .paletteSlot = 2, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_32x32, + .subspriteTables = gObjectEventSpriteOamTables_32x32, + .anims = sAnimTable_Standard, + .images = sPicTable_DeoxysN, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Mewtwo = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_PINK, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 3, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Standard, + .images = sPicTable_Mewtwo, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Mew = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_GREEN, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 4, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Standard, + .images = sPicTable_Mew, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Entei = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_BLUE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 2, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Standard, + .images = sPicTable_Entei, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Raikou = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_GREEN, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 4, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Standard, + .images = sPicTable_Raikou, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Suicune = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_PINK, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 3, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Standard, + .images = sPicTable_Suicune, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Lugia = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_PINK, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 512, + .width = 32, + .height = 32, + .paletteSlot = 3, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_32x32, + .subspriteTables = gObjectEventSpriteOamTables_32x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Lugia, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_HoOh = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_BLUE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 512, + .width = 32, + .height = 32, + .paletteSlot = 2, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_32x32, + .subspriteTables = gObjectEventSpriteOamTables_32x32, + .anims = sAnimTable_HoOh, + .images = sPicTable_HoOh, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Celebi = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_GREEN, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 4, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Standard, + .images = sPicTable_Celebi, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Cubone = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_WHITE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 5, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Standard, + .images = sPicTable_Cubone, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Machoke = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_BLUE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 2, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Standard, + .images = sPicTable_Machoke, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Kabuto = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_BLUE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 2, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Standard, + .images = sPicTable_Kabuto, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Poliwrath = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_BLUE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 2, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Standard, + .images = sPicTable_Poliwrath, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Pidgeot = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_BLUE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 2, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Standard, + .images = sPicTable_Pidgeot, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Chansey = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_PINK, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 3, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Standard, + .images = sPicTable_Chansey, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Pikachu = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_BLUE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 2, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Standard, + .images = sPicTable_Pikachu, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Jigglypuff = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_PINK, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 3, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Standard, + .images = sPicTable_Jigglypuff, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Pidgey = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_BLUE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 2, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Standard, + .images = sPicTable_Pidgey, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Clefairy = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_PINK, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 128, + .width = 16, + .height = 16, + .paletteSlot = 3, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x16, + .subspriteTables = gObjectEventSpriteOamTables_16x16, + .anims = sAnimTable_Standard, + .images = sPicTable_Clefairy, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Mom = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_NPC_BLUE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 256, + .width = 16, + .height = 32, + .paletteSlot = 2, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_FOOT, + .oam = &gObjectEventBaseOam_16x32, + .subspriteTables = gObjectEventSpriteOamTables_16x32, + .anims = sAnimTable_Standard, + .images = sPicTable_Mom, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Seagallop = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_SEAGALLOP, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 2048, + .width = 64, + .height = 64, + .paletteSlot = 10, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_NONE, + .oam = &gObjectEventBaseOam_64x64, + .subspriteTables = gObjectEventSpriteOamTables_64x64, + .anims = sAnimTable_Standard, + .images = sPicTable_Seagallop, + .affineAnims = gDummySpriteAffineAnimTable, +}; + +const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SSAnne = { + .tileTag = TAG_NONE, + .paletteTag = OBJ_EVENT_PAL_TAG_SS_ANNE, + .reflectionPaletteTag = OBJ_EVENT_PAL_TAG_NONE, + .size = 4096, + .width = 128, + .height = 64, + .paletteSlot = 10, + .shadowSize = SHADOW_SIZE_M, + .inanimate = FALSE, + .disableReflectionPaletteLoad = FALSE, + .tracks = TRACKS_NONE, + .oam = &gObjectEventBaseOam_8x8, + .subspriteTables = gObjectEventSpriteOamTables_128x64, + .anims = sAnimTable_Standard, + .images = sPicTable_SSAnne, + .affineAnims = gDummySpriteAffineAnimTable, +}; diff --git a/src/data/party_menu.h b/src/data/party_menu.h index 689ee6da5..de330200a 100644 --- a/src/data/party_menu.h +++ b/src/data/party_menu.h @@ -48,7 +48,7 @@ static const struct PartyMenuBoxInfoRects sPartyBoxInfoRects[] = 38, 36, 24, 8, // HP 53, 36, 24, 8, // Max HP 24, 35, 48, 3 // HP bar - }, + }, 12, 34, 64, 16 // Description text (e.g. NO USE) }, [PARTY_BOX_RIGHT_COLUMN] = @@ -71,6 +71,7 @@ static const u8 sPartyMenuSpriteCoords[PARTY_LAYOUT_COUNT][PARTY_SIZE][4 * 2] = { [PARTY_LAYOUT_SINGLE] = { + // pokemon coords, held item coords, status coords, pokeball coords { 16, 40, 20, 50, 56, 52, 16, 34}, {104, 18, 108, 28, 144, 27, 102, 25}, {104, 42, 108, 52, 144, 51, 102, 49}, @@ -537,7 +538,7 @@ static const struct WindowTemplate sWindowTemplate_FirstBattleOakVoiceover = .baseBlock = 0x1DF, }; -static const struct WindowTemplate gUnknown_845A178 = +static const struct WindowTemplate sFieldMoveDescriptionWindowTemplate = { .bg = 2, .tilemapLeft = 0, @@ -572,32 +573,23 @@ static const u8 sMainSlotTileNums_Egg[] = static const u8 sOtherSlotsTileNums[] = { - 43, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 45, 49, 33, - 33, 33, 33, 33, 33, 33, 33, 52, 53, 51, - 51, 51, 51, 51, 51, 54, 55, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 57, + 43, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 45, + 49, 33, 33, 33, 33, 33, 33, 33, 33, 52, 53, 51, 51, 51, 51, 51, 51, 54, + 55, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 57, }; static const u8 sOtherSlotsTileNums_Egg[] = { - 43, 44, 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 45, 49, 33, - 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, - 33, 33, 33, 33, 33, 50, 55, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 57, + 43, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 45, + 49, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 50, + 55, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 57, }; static const u8 sEmptySlotTileNums[] = { - 21, 22, 22, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 22, 22, 22, 23, 30, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 31, 37, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 39, + 21, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23, + 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, + 37, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 39, }; static const u8 sGenderPalOffsets[] = {11, 12}; @@ -687,20 +679,20 @@ static const u8 *const sDescriptionStringTable[] = [PARTYBOX_DESC_LEARNED] = gText_Learned, }; -static const u8 *const sHMDescriptionTable[] = +static const u8 *const sFieldMoveDescriptionTable[] = { - gText_LightUpDarkness, - gText_CutATreeOrGrass, - gText_FlyToAKnownTown, - gText_MoveHeavyBoulders, - gText_TravelOnWater, - gText_ShatterACrackedRock, - gText_ClimbAWaterfall, - gText_ReturnToAHealingSpot, - gText_EscapeFromHere, - gText_ShareHp, - gText_ShareHp, - gText_LureWildPokemon, + [FIELD_MOVE_FLASH] = gText_LightUpDarkness, + [FIELD_MOVE_CUT] = gText_CutATreeOrGrass, + [FIELD_MOVE_FLY] = gText_FlyToAKnownTown, + [FIELD_MOVE_STRENGTH] = gText_MoveHeavyBoulders, + [FIELD_MOVE_SURF] = gText_TravelOnWater, + [FIELD_MOVE_ROCK_SMASH] = gText_ShatterACrackedRock, + [FIELD_MOVE_WATERFALL] = gText_ClimbAWaterfall, + [FIELD_MOVE_TELEPORT] = gText_ReturnToAHealingSpot, + [FIELD_MOVE_DIG] = gText_EscapeFromHere, + [FIELD_MOVE_MILK_DRINK] = gText_ShareHp, + [FIELD_MOVE_SOFT_BOILED] = gText_ShareHp, + [FIELD_MOVE_SWEET_SCENT] = gText_LureWildPokemon, }; static const u32 sHeldItemGfx[] = INCBIN_U32("graphics/interface/hold_icons.4bpp"); @@ -709,7 +701,7 @@ static const u16 sHeldItemPalette[] = INCBIN_U16("graphics/interface/hold_icons. static const struct OamData sOamData_HeldItem = { .y = 0, - .affineMode = 0, + .affineMode = ST_OAM_AFFINE_OFF, .objMode = 0, .mosaic = FALSE, .bpp = 0, @@ -765,7 +757,7 @@ static const struct SpriteTemplate sSpriteTemplate_HeldItem = static const struct OamData sOamData_MenuPokeball = { .y = 0, - .affineMode = 0, + .affineMode = ST_OAM_AFFINE_OFF, .objMode = 0, .mosaic = FALSE, .bpp = 0, @@ -822,7 +814,7 @@ static const struct SpriteTemplate sSpriteTemplate_MenuPokeball = static const struct OamData sOamData_MenuPokeballSmall = { .y = 0, - .affineMode = 0, + .affineMode = ST_OAM_AFFINE_OFF, .objMode = 0, .mosaic = FALSE, .bpp = 0, @@ -903,7 +895,7 @@ static const struct SpriteTemplate sSpriteTemplate_MenuPokeballSmall = static const struct OamData sOamData_StatusCondition = { .y = 0, - .affineMode = 0, + .affineMode = ST_OAM_AFFINE_OFF, .objMode = 0, .mosaic = FALSE, .bpp = 0, @@ -1073,25 +1065,25 @@ static const u16 sTMHMMoves_Duplicate[] = enum { - MENU_SUMMARY, - MENU_SWITCH, - MENU_CANCEL1, - MENU_ITEM, - MENU_GIVE, - MENU_TAKE_ITEM, - MENU_MAIL, - MENU_TAKE_MAIL, - MENU_READ, - MENU_CANCEL2, - MENU_SHIFT, - MENU_SEND_OUT, - MENU_ENTER, - MENU_NO_ENTRY, - MENU_STORE, - MENU_REGISTER, - MENU_TRADE1, - MENU_TRADE2, - MENU_FIELD_MOVES, + CURSOR_OPTION_SUMMARY, + CURSOR_OPTION_SWITCH, + CURSOR_OPTION_CANCEL1, + CURSOR_OPTION_ITEM, + CURSOR_OPTION_GIVE, + CURSOR_OPTION_TAKE_ITEM, + CURSOR_OPTION_MAIL, + CURSOR_OPTION_TAKE_MAIL, + CURSOR_OPTION_READ, + CURSOR_OPTION_CANCEL2, + CURSOR_OPTION_SHIFT, + CURSOR_OPTION_SEND_OUT, + CURSOR_OPTION_ENTER, + CURSOR_OPTION_NO_ENTRY, + CURSOR_OPTION_STORE, + CURSOR_OPTION_REGISTER, + CURSOR_OPTION_TRADE1, + CURSOR_OPTION_TRADE2, + CURSOR_OPTION_FIELD_MOVES, }; static struct @@ -1100,50 +1092,50 @@ static struct TaskFunc func; } const sCursorOptions[] = { - [MENU_SUMMARY] = {gText_Summary5, CursorCB_Summary}, - [MENU_SWITCH] = {gText_Switch2, CursorCB_Switch}, - [MENU_CANCEL1] = {gFameCheckerText_Cancel, CursorCB_Cancel1}, - [MENU_ITEM] = {gText_Item, CursorCB_Item}, - [MENU_GIVE] = {gOtherText_Give, CursorCB_Give}, - [MENU_TAKE_ITEM] = {gText_Take, CursorCB_TakeItem}, - [MENU_MAIL] = {gText_Mail, CursorCB_Mail}, - [MENU_TAKE_MAIL] = {gText_Take2, CursorCB_TakeMail}, - [MENU_READ] = {gText_Read2, CursorCB_Read}, - [MENU_CANCEL2] = {gFameCheckerText_Cancel, CursorCB_Cancel2}, - [MENU_SHIFT] = {gText_Shift, CursorCB_SendMon}, - [MENU_SEND_OUT] = {gText_SendOut, CursorCB_SendMon}, - [MENU_ENTER] = {gText_Enter, CursorCB_Enter}, - [MENU_NO_ENTRY] = {gText_NoEntry, CursorCB_NoEntry}, - [MENU_STORE] = {gText_Store, CursorCB_Store}, - [MENU_REGISTER] = {gText_Register, CursorCB_Register}, - [MENU_TRADE1] = {gText_Trade4, CursorCB_Trade1}, - [MENU_TRADE2] = {gText_Trade4, CursorCB_Trade2}, - [MENU_FIELD_MOVES + FIELD_MOVE_FLASH] = {gMoveNames[MOVE_FLASH], CursorCB_FieldMove}, - [MENU_FIELD_MOVES + FIELD_MOVE_CUT] = {gMoveNames[MOVE_CUT], CursorCB_FieldMove}, - [MENU_FIELD_MOVES + FIELD_MOVE_FLY] = {gMoveNames[MOVE_FLY], CursorCB_FieldMove}, - [MENU_FIELD_MOVES + FIELD_MOVE_STRENGTH] = {gMoveNames[MOVE_STRENGTH], CursorCB_FieldMove}, - [MENU_FIELD_MOVES + FIELD_MOVE_SURF] = {gMoveNames[MOVE_SURF], CursorCB_FieldMove}, - [MENU_FIELD_MOVES + FIELD_MOVE_ROCK_SMASH] = {gMoveNames[MOVE_ROCK_SMASH], CursorCB_FieldMove}, - [MENU_FIELD_MOVES + FIELD_MOVE_WATERFALL] = {gMoveNames[MOVE_WATERFALL], CursorCB_FieldMove}, - [MENU_FIELD_MOVES + FIELD_MOVE_TELEPORT] = {gMoveNames[MOVE_TELEPORT], CursorCB_FieldMove}, - [MENU_FIELD_MOVES + FIELD_MOVE_DIG] = {gMoveNames[MOVE_DIG], CursorCB_FieldMove}, - [MENU_FIELD_MOVES + FIELD_MOVE_MILK_DRINK] = {gMoveNames[MOVE_MILK_DRINK], CursorCB_FieldMove}, - [MENU_FIELD_MOVES + FIELD_MOVE_SOFT_BOILED] = {gMoveNames[MOVE_SOFT_BOILED], CursorCB_FieldMove}, - [MENU_FIELD_MOVES + FIELD_MOVE_SWEET_SCENT] = {gMoveNames[MOVE_SWEET_SCENT], CursorCB_FieldMove}, + [CURSOR_OPTION_SUMMARY] = {gText_Summary5, CursorCB_Summary }, + [CURSOR_OPTION_SWITCH] = {gText_Switch2, CursorCB_Switch }, + [CURSOR_OPTION_CANCEL1] = {gFameCheckerText_Cancel, CursorCB_Cancel1 }, + [CURSOR_OPTION_ITEM] = {gText_Item, CursorCB_Item }, + [CURSOR_OPTION_GIVE] = {gOtherText_Give, CursorCB_Give }, + [CURSOR_OPTION_TAKE_ITEM] = {gText_Take, CursorCB_TakeItem }, + [CURSOR_OPTION_MAIL] = {gText_Mail, CursorCB_Mail }, + [CURSOR_OPTION_TAKE_MAIL] = {gText_Take2, CursorCB_TakeMail }, + [CURSOR_OPTION_READ] = {gText_Read2, CursorCB_Read }, + [CURSOR_OPTION_CANCEL2] = {gFameCheckerText_Cancel, CursorCB_Cancel2 }, + [CURSOR_OPTION_SHIFT] = {gText_Shift, CursorCB_SendMon }, + [CURSOR_OPTION_SEND_OUT] = {gText_SendOut, CursorCB_SendMon }, + [CURSOR_OPTION_ENTER] = {gText_Enter, CursorCB_Enter }, + [CURSOR_OPTION_NO_ENTRY] = {gText_NoEntry, CursorCB_NoEntry }, + [CURSOR_OPTION_STORE] = {gText_Store, CursorCB_Store }, + [CURSOR_OPTION_REGISTER] = {gText_Register, CursorCB_Register }, + [CURSOR_OPTION_TRADE1] = {gText_Trade4, CursorCB_Trade1 }, + [CURSOR_OPTION_TRADE2] = {gText_Trade4, CursorCB_Trade2 }, + [CURSOR_OPTION_FIELD_MOVES + FIELD_MOVE_FLASH] = {gMoveNames[MOVE_FLASH], CursorCB_FieldMove}, + [CURSOR_OPTION_FIELD_MOVES + FIELD_MOVE_CUT] = {gMoveNames[MOVE_CUT], CursorCB_FieldMove}, + [CURSOR_OPTION_FIELD_MOVES + FIELD_MOVE_FLY] = {gMoveNames[MOVE_FLY], CursorCB_FieldMove}, + [CURSOR_OPTION_FIELD_MOVES + FIELD_MOVE_STRENGTH] = {gMoveNames[MOVE_STRENGTH], CursorCB_FieldMove}, + [CURSOR_OPTION_FIELD_MOVES + FIELD_MOVE_SURF] = {gMoveNames[MOVE_SURF], CursorCB_FieldMove}, + [CURSOR_OPTION_FIELD_MOVES + FIELD_MOVE_ROCK_SMASH] = {gMoveNames[MOVE_ROCK_SMASH], CursorCB_FieldMove}, + [CURSOR_OPTION_FIELD_MOVES + FIELD_MOVE_WATERFALL] = {gMoveNames[MOVE_WATERFALL], CursorCB_FieldMove}, + [CURSOR_OPTION_FIELD_MOVES + FIELD_MOVE_TELEPORT] = {gMoveNames[MOVE_TELEPORT], CursorCB_FieldMove}, + [CURSOR_OPTION_FIELD_MOVES + FIELD_MOVE_DIG] = {gMoveNames[MOVE_DIG], CursorCB_FieldMove}, + [CURSOR_OPTION_FIELD_MOVES + FIELD_MOVE_MILK_DRINK] = {gMoveNames[MOVE_MILK_DRINK], CursorCB_FieldMove}, + [CURSOR_OPTION_FIELD_MOVES + FIELD_MOVE_SOFT_BOILED] = {gMoveNames[MOVE_SOFT_BOILED], CursorCB_FieldMove}, + [CURSOR_OPTION_FIELD_MOVES + FIELD_MOVE_SWEET_SCENT] = {gMoveNames[MOVE_SWEET_SCENT], CursorCB_FieldMove}, }; -static const u8 sPartyMenuAction_SummarySwitchCancel[] = {MENU_SUMMARY, MENU_SWITCH, MENU_CANCEL1}; -static const u8 sPartyMenuAction_ShiftSummaryCancel[] = {MENU_SHIFT, MENU_SUMMARY, MENU_CANCEL1}; -static const u8 sPartyMenuAction_SendOutSummaryCancel[] = {MENU_SEND_OUT, MENU_SUMMARY, MENU_CANCEL1}; -static const u8 sPartyMenuAction_SummaryCancel[] = {MENU_SUMMARY, MENU_CANCEL1}; -static const u8 sPartyMenuAction_EnterSummaryCancel[] = {MENU_ENTER, MENU_SUMMARY, MENU_CANCEL1}; -static const u8 sPartyMenuAction_NoEntrySummaryCancel[] = {MENU_NO_ENTRY, MENU_SUMMARY, MENU_CANCEL1}; -static const u8 sPartyMenuAction_StoreSummaryCancel[] = {MENU_STORE, MENU_SUMMARY, MENU_CANCEL1}; -static const u8 sPartyMenuAction_GiveTakeItemCancel[] = {MENU_GIVE, MENU_TAKE_ITEM, MENU_CANCEL2}; -static const u8 sPartyMenuAction_ReadTakeMailCancel[] = {MENU_READ, MENU_TAKE_MAIL, MENU_CANCEL2}; -static const u8 sPartyMenuAction_RegisterSummaryCancel[] = {MENU_REGISTER, MENU_SUMMARY, MENU_CANCEL1}; -static const u8 sPartyMenuAction_TradeSummaryCancel1[] = {MENU_TRADE1, MENU_SUMMARY, MENU_CANCEL1}; -static const u8 sPartyMenuAction_TradeSummaryCancel2[] = {MENU_TRADE2, MENU_SUMMARY, MENU_CANCEL1}; +static const u8 sPartyMenuAction_SummarySwitchCancel[] = {CURSOR_OPTION_SUMMARY, CURSOR_OPTION_SWITCH, CURSOR_OPTION_CANCEL1}; +static const u8 sPartyMenuAction_ShiftSummaryCancel[] = {CURSOR_OPTION_SHIFT, CURSOR_OPTION_SUMMARY, CURSOR_OPTION_CANCEL1}; +static const u8 sPartyMenuAction_SendOutSummaryCancel[] = {CURSOR_OPTION_SEND_OUT, CURSOR_OPTION_SUMMARY, CURSOR_OPTION_CANCEL1}; +static const u8 sPartyMenuAction_SummaryCancel[] = {CURSOR_OPTION_SUMMARY, CURSOR_OPTION_CANCEL1}; +static const u8 sPartyMenuAction_EnterSummaryCancel[] = {CURSOR_OPTION_ENTER, CURSOR_OPTION_SUMMARY, CURSOR_OPTION_CANCEL1}; +static const u8 sPartyMenuAction_NoEntrySummaryCancel[] = {CURSOR_OPTION_NO_ENTRY, CURSOR_OPTION_SUMMARY, CURSOR_OPTION_CANCEL1}; +static const u8 sPartyMenuAction_StoreSummaryCancel[] = {CURSOR_OPTION_STORE, CURSOR_OPTION_SUMMARY, CURSOR_OPTION_CANCEL1}; +static const u8 sPartyMenuAction_GiveTakeItemCancel[] = {CURSOR_OPTION_GIVE, CURSOR_OPTION_TAKE_ITEM, CURSOR_OPTION_CANCEL2}; +static const u8 sPartyMenuAction_ReadTakeMailCancel[] = {CURSOR_OPTION_READ, CURSOR_OPTION_TAKE_MAIL, CURSOR_OPTION_CANCEL2}; +static const u8 sPartyMenuAction_RegisterSummaryCancel[] = {CURSOR_OPTION_REGISTER, CURSOR_OPTION_SUMMARY, CURSOR_OPTION_CANCEL1}; +static const u8 sPartyMenuAction_TradeSummaryCancel1[] = {CURSOR_OPTION_TRADE1, CURSOR_OPTION_SUMMARY, CURSOR_OPTION_CANCEL1}; +static const u8 sPartyMenuAction_TradeSummaryCancel2[] = {CURSOR_OPTION_TRADE2, CURSOR_OPTION_SUMMARY, CURSOR_OPTION_CANCEL1}; // IDs for the action lists that appear when a party mon is selected enum diff --git a/src/data/region_map/region_map_layout_kanto.h b/src/data/region_map/region_map_layout_kanto.h new file mode 100644 index 000000000..80fb433eb --- /dev/null +++ b/src/data/region_map/region_map_layout_kanto.h @@ -0,0 +1,38 @@ +static const u8 sRegionMapSections_Kanto[LAYER_COUNT][MAP_HEIGHT][MAP_WIDTH] = { + [LAYER_MAP] = + { + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_ROUTE_24, MAPSEC_ROUTE_25, MAPSEC_ROUTE_25, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_ROUTE_24, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_INDIGO_PLATEAU, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_ROUTE_4_POKECENTER, MAPSEC_ROUTE_4, MAPSEC_ROUTE_4, MAPSEC_ROUTE_4, MAPSEC_ROUTE_4, MAPSEC_ROUTE_4, MAPSEC_CERULEAN_CITY, MAPSEC_ROUTE_9, MAPSEC_ROUTE_9, MAPSEC_ROUTE_9, MAPSEC_ROUTE_10_POKECENTER, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_ROUTE_23, MAPSEC_NONE, MAPSEC_PEWTER_CITY, MAPSEC_ROUTE_3, MAPSEC_ROUTE_3, MAPSEC_ROUTE_3, MAPSEC_ROUTE_3, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_ROUTE_5, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_ROUTE_10, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_ROUTE_23, MAPSEC_NONE, MAPSEC_ROUTE_2, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_ROUTE_5, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_ROUTE_10, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_ROUTE_23, MAPSEC_NONE, MAPSEC_ROUTE_2, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_ROUTE_16, MAPSEC_ROUTE_16, MAPSEC_ROUTE_16, MAPSEC_ROUTE_16, MAPSEC_CELADON_CITY, MAPSEC_ROUTE_7, MAPSEC_ROUTE_7, MAPSEC_SAFFRON_CITY, MAPSEC_ROUTE_8, MAPSEC_ROUTE_8, MAPSEC_ROUTE_8, MAPSEC_LAVENDER_TOWN, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_ROUTE_23, MAPSEC_NONE, MAPSEC_ROUTE_2, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_ROUTE_17, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_ROUTE_6, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_ROUTE_12, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_ROUTE_22, MAPSEC_ROUTE_22, MAPSEC_VIRIDIAN_CITY, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_ROUTE_17, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_ROUTE_6, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_ROUTE_12, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_ROUTE_1, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_ROUTE_17, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_VERMILION_CITY, MAPSEC_ROUTE_11, MAPSEC_ROUTE_11, MAPSEC_ROUTE_11, MAPSEC_ROUTE_12, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_ROUTE_1, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_ROUTE_17, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_ROUTE_12, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_PALLET_TOWN, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_ROUTE_17, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_ROUTE_14, MAPSEC_ROUTE_13, MAPSEC_ROUTE_13, MAPSEC_ROUTE_12, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_ROUTE_21, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_ROUTE_18, MAPSEC_ROUTE_18, MAPSEC_ROUTE_18, MAPSEC_ROUTE_18, MAPSEC_ROUTE_18, MAPSEC_FUCHSIA_CITY, MAPSEC_ROUTE_15, MAPSEC_ROUTE_15, MAPSEC_ROUTE_14, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_ROUTE_21, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_ROUTE_19, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_CINNABAR_ISLAND, MAPSEC_ROUTE_20, MAPSEC_ROUTE_20, MAPSEC_ROUTE_20, MAPSEC_ROUTE_20, MAPSEC_ROUTE_20, MAPSEC_ROUTE_20, MAPSEC_ROUTE_20, MAPSEC_ROUTE_19, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + }, + [LAYER_DUNGEON] = + { + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_MT_MOON, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_CERULEAN_CAVE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_ROCK_TUNNEL, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_KANTO_VICTORY_ROAD, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_POWER_PLANT, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_DIGLETTS_CAVE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_VIRIDIAN_FOREST, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_POKEMON_TOWER, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_DIGLETTS_CAVE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_KANTO_SAFARI_ZONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_POKEMON_MANSION, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_SEAFOAM_ISLANDS, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + } +}; diff --git a/src/data/region_map/region_map_layout_sevii_123.h b/src/data/region_map/region_map_layout_sevii_123.h new file mode 100644 index 000000000..2a5c0fbe0 --- /dev/null +++ b/src/data/region_map/region_map_layout_sevii_123.h @@ -0,0 +1,38 @@ +static const u8 sRegionMapSections_Sevii123[LAYER_COUNT][MAP_HEIGHT][MAP_WIDTH] = { + [LAYER_MAP] = + { + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_KINDLE_ROAD, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_KINDLE_ROAD, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_KINDLE_ROAD, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_KINDLE_ROAD, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_KINDLE_ROAD, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_CAPE_BRINK, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_ONE_ISLAND, MAPSEC_KINDLE_ROAD, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_CAPE_BRINK, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_TREASURE_BEACH, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_TWO_ISLAND, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_TREASURE_BEACH, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_BOND_BRIDGE, MAPSEC_BOND_BRIDGE, MAPSEC_BOND_BRIDGE, MAPSEC_BOND_BRIDGE, MAPSEC_THREE_ISLAND, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_THREE_ISLE_PORT, MAPSEC_THREE_ISLE_PORT, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE} + }, + [LAYER_DUNGEON] = + { + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_MT_EMBER, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_BERRY_FOREST, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE} + } +}; diff --git a/src/data/region_map/region_map_layout_sevii_45.h b/src/data/region_map/region_map_layout_sevii_45.h new file mode 100644 index 000000000..01709819b --- /dev/null +++ b/src/data/region_map/region_map_layout_sevii_45.h @@ -0,0 +1,38 @@ +static const u8 sRegionMapSections_Sevii45[LAYER_COUNT][MAP_HEIGHT][MAP_WIDTH] = { + [LAYER_MAP] = + { + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_FOUR_ISLAND, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NAVEL_ROCK, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_RESORT_GORGEOUS, MAPSEC_RESORT_GORGEOUS, MAPSEC_RESORT_GORGEOUS, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_WATER_LABYRINTH, MAPSEC_WATER_LABYRINTH, MAPSEC_WATER_LABYRINTH, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_FIVE_ISLAND, MAPSEC_FIVE_ISLE_MEADOW, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_FIVE_ISLE_MEADOW, MAPSEC_MEMORIAL_PILLAR, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_MEMORIAL_PILLAR, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_MEMORIAL_PILLAR, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE} + }, + [LAYER_DUNGEON] = + { + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_ICEFALL_CAVE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_LOST_CAVE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE} + } +}; diff --git a/src/data/region_map/region_map_layout_sevii_67.h b/src/data/region_map/region_map_layout_sevii_67.h new file mode 100644 index 000000000..f09475fd3 --- /dev/null +++ b/src/data/region_map/region_map_layout_sevii_67.h @@ -0,0 +1,38 @@ +static const u8 sRegionMapSections_Sevii67[LAYER_COUNT][MAP_HEIGHT][MAP_WIDTH] = { + [LAYER_MAP] = + { + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_OUTCAST_ISLAND, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_OUTCAST_ISLAND, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_OUTCAST_ISLAND, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_GREEN_PATH, MAPSEC_GREEN_PATH, MAPSEC_GREEN_PATH, MAPSEC_WATER_PATH, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_WATER_PATH, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_SIX_ISLAND, MAPSEC_WATER_PATH, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_TRAINER_TOWER, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_WATER_PATH, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_TRAINER_TOWER, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_RUIN_VALLEY, MAPSEC_RUIN_VALLEY, MAPSEC_WATER_PATH, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_SEVEN_ISLAND, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_RUIN_VALLEY, MAPSEC_RUIN_VALLEY, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_CANYON_ENTRANCE, MAPSEC_SEVAULT_CANYON, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_SEVAULT_CANYON, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_SEVAULT_CANYON, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_TANOBY_RUINS, MAPSEC_TANOBY_RUINS, MAPSEC_TANOBY_RUINS, MAPSEC_TANOBY_RUINS, MAPSEC_TANOBY_RUINS, MAPSEC_TANOBY_RUINS, MAPSEC_TANOBY_RUINS, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_BIRTH_ISLAND, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE} + }, + [LAYER_DUNGEON] = + { + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_ALTERING_CAVE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_PATTERN_BUSH, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_DOTTED_HOLE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_TANOBY_CHAMBERS, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, + {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE} + } +}; diff --git a/src/data/region_map/region_map_sections.entries.json.txt b/src/data/region_map/region_map_sections.entries.json.txt new file mode 100644 index 000000000..7cce3705c --- /dev/null +++ b/src/data/region_map/region_map_sections.entries.json.txt @@ -0,0 +1,27 @@ +{{ doNotModifyHeader }} +#ifndef GUARD_DATA_REGION_MAP_REGION_MAP_ENTRIES_H +#define GUARD_DATA_REGION_MAP_REGION_MAP_ENTRIES_H + +## for map_section in map_sections +{% if isEmptyString(getVar(map_section.name)) and not existsIn(map_section, "name_clone") %}{{ setVar(map_section.name, map_section.map_section) }}{% endif %} +## endfor + +static const u8 *const sMapNames[] = { +## for map_section in map_sections + [{{ map_section.map_section }} - MAPSECS_KANTO] = sMapsecName_{{ cleanString(map_section.name) }}{% if existsIn(map_section, "name_clone") %}_Clone{% endif %}, +## endfor +}; + +static const u16 sMapSectionTopLeftCorners[MAPSEC_COUNT][2] = { +## for map_section in map_sections + [{{ map_section.map_section }} - MAPSECS_KANTO] = { {{ map_section.x }}, {{ map_section.y }} }, +## endfor +}; + +static const u16 sMapSectionDimensions[MAPSEC_COUNT][2] = { +## for map_section in map_sections + [{{ map_section.map_section }} - MAPSECS_KANTO] = { {{ map_section.width }}, {{ map_section.height }} }, +## endfor +}; + +#endif // GUARD_DATA_REGION_MAP_REGION_MAP_ENTRIES_H diff --git a/src/data/region_map/region_map_sections.json b/src/data/region_map/region_map_sections.json new file mode 100644 index 000000000..63947d4f0 --- /dev/null +++ b/src/data/region_map/region_map_sections.json @@ -0,0 +1,880 @@ +{ + "map_sections": [ + { + "map_section": "MAPSEC_PALLET_TOWN", + "name": "PALLET TOWN", + "x": 4, + "y": 11, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_VIRIDIAN_CITY", + "name": "VIRIDIAN CITY", + "x": 4, + "y": 8, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_PEWTER_CITY", + "name": "PEWTER CITY", + "x": 4, + "y": 4, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_CERULEAN_CITY", + "name": "CERULEAN CITY", + "x": 14, + "y": 3, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_LAVENDER_TOWN", + "name": "LAVENDER TOWN", + "x": 18, + "y": 6, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_VERMILION_CITY", + "name": "VERMILION CITY", + "x": 14, + "y": 9, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_CELADON_CITY", + "name": "CELADON CITY", + "x": 11, + "y": 6, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_FUCHSIA_CITY", + "name": "FUCHSIA CITY", + "x": 12, + "y": 12, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_CINNABAR_ISLAND", + "name": "CINNABAR ISLAND", + "x": 4, + "y": 14, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_INDIGO_PLATEAU", + "name": "INDIGO PLATEAU", + "x": 2, + "y": 3, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_SAFFRON_CITY", + "name": "SAFFRON CITY", + "x": 14, + "y": 6, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_ROUTE_4_POKECENTER", + "name": "ROUTE 4", + "name_clone": true, + "x": 8, + "y": 3, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_ROUTE_10_POKECENTER", + "name": "ROUTE 10", + "name_clone": true, + "x": 18, + "y": 3, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_ROUTE_1", + "name": "ROUTE 1", + "x": 4, + "y": 9, + "width": 1, + "height": 2 + }, + { + "map_section": "MAPSEC_ROUTE_2", + "name": "ROUTE 2", + "x": 4, + "y": 5, + "width": 1, + "height": 3 + }, + { + "map_section": "MAPSEC_ROUTE_3", + "name": "ROUTE 3", + "x": 5, + "y": 4, + "width": 4, + "height": 1 + }, + { + "map_section": "MAPSEC_ROUTE_4", + "name": "ROUTE 4", + "x": 8, + "y": 3, + "width": 6, + "height": 1 + }, + { + "map_section": "MAPSEC_ROUTE_5", + "name": "ROUTE 5", + "x": 14, + "y": 4, + "width": 1, + "height": 2 + }, + { + "map_section": "MAPSEC_ROUTE_6", + "name": "ROUTE 6", + "x": 14, + "y": 7, + "width": 1, + "height": 2 + }, + { + "map_section": "MAPSEC_ROUTE_7", + "name": "ROUTE 7", + "x": 12, + "y": 6, + "width": 2, + "height": 1 + }, + { + "map_section": "MAPSEC_ROUTE_8", + "name": "ROUTE 8", + "x": 15, + "y": 6, + "width": 3, + "height": 1 + }, + { + "map_section": "MAPSEC_ROUTE_9", + "name": "ROUTE 9", + "x": 15, + "y": 3, + "width": 3, + "height": 1 + }, + { + "map_section": "MAPSEC_ROUTE_10", + "name": "ROUTE 10", + "x": 18, + "y": 3, + "width": 1, + "height": 3 + }, + { + "map_section": "MAPSEC_ROUTE_11", + "name": "ROUTE 11", + "x": 15, + "y": 9, + "width": 3, + "height": 1 + }, + { + "map_section": "MAPSEC_ROUTE_12", + "name": "ROUTE 12", + "x": 18, + "y": 7, + "width": 1, + "height": 5 + }, + { + "map_section": "MAPSEC_ROUTE_13", + "name": "ROUTE 13", + "x": 16, + "y": 11, + "width": 2, + "height": 1 + }, + { + "map_section": "MAPSEC_ROUTE_14", + "name": "ROUTE 14", + "x": 15, + "y": 11, + "width": 1, + "height": 2 + }, + { + "map_section": "MAPSEC_ROUTE_15", + "name": "ROUTE 15", + "x": 13, + "y": 12, + "width": 2, + "height": 1 + }, + { + "map_section": "MAPSEC_ROUTE_16", + "name": "ROUTE 16", + "x": 7, + "y": 6, + "width": 4, + "height": 1 + }, + { + "map_section": "MAPSEC_ROUTE_17", + "name": "ROUTE 17", + "x": 7, + "y": 7, + "width": 1, + "height": 5 + }, + { + "map_section": "MAPSEC_ROUTE_18", + "name": "ROUTE 18", + "x": 7, + "y": 12, + "width": 5, + "height": 1 + }, + { + "map_section": "MAPSEC_ROUTE_19", + "name": "ROUTE 19", + "x": 12, + "y": 13, + "width": 1, + "height": 2 + }, + { + "map_section": "MAPSEC_ROUTE_20", + "name": "ROUTE 20", + "x": 5, + "y": 14, + "width": 7, + "height": 1 + }, + { + "map_section": "MAPSEC_ROUTE_21", + "name": "ROUTE 21", + "x": 4, + "y": 12, + "width": 1, + "height": 2 + }, + { + "map_section": "MAPSEC_ROUTE_22", + "name": "ROUTE 22", + "x": 2, + "y": 8, + "width": 2, + "height": 1 + }, + { + "map_section": "MAPSEC_ROUTE_23", + "name": "ROUTE 23", + "x": 2, + "y": 4, + "width": 1, + "height": 4 + }, + { + "map_section": "MAPSEC_ROUTE_24", + "name": "ROUTE 24", + "x": 14, + "y": 1, + "width": 1, + "height": 2 + }, + { + "map_section": "MAPSEC_ROUTE_25", + "name": "ROUTE 25", + "x": 15, + "y": 1, + "width": 2, + "height": 1 + }, + { + "map_section": "MAPSEC_VIRIDIAN_FOREST", + "name": "VIRIDIAN FOREST", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_MT_MOON", + "name": "MT. MOON", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_S_S_ANNE", + "name": "S.S. ANNE", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_UNDERGROUND_PATH", + "name": "UNDERGROUND PATH", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_UNDERGROUND_PATH_2", + "name": "UNDERGROUND PATH", + "name_clone": true, + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_DIGLETTS_CAVE", + "name": "DIGLETT'S CAVE", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_KANTO_VICTORY_ROAD", + "name": "VICTORY ROAD", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_ROCKET_HIDEOUT", + "name": "ROCKET HIDEOUT", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_SILPH_CO", + "name": "SILPH CO.", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_POKEMON_MANSION", + "name": "POKéMON MANSION", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_KANTO_SAFARI_ZONE", + "name": "SAFARI ZONE", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_POKEMON_LEAGUE", + "name": "POKéMON LEAGUE", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_ROCK_TUNNEL", + "name": "ROCK TUNNEL", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_SEAFOAM_ISLANDS", + "name": "SEAFOAM ISLANDS", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_POKEMON_TOWER", + "name": "POKéMON TOWER", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_CERULEAN_CAVE", + "name": "CERULEAN CAVE", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_POWER_PLANT", + "name": "POWER PLANT", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_ONE_ISLAND", + "name": "ONE ISLAND", + "x": 1, + "y": 8, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_TWO_ISLAND", + "name": "TWO ISLAND", + "x": 9, + "y": 9, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_THREE_ISLAND", + "name": "THREE ISLAND", + "x": 18, + "y": 12, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_FOUR_ISLAND", + "name": "FOUR ISLAND", + "x": 3, + "y": 4, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_FIVE_ISLAND", + "name": "FIVE ISLAND", + "x": 16, + "y": 11, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_SEVEN_ISLAND", + "name": "SEVEN ISLAND", + "x": 5, + "y": 8, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_SIX_ISLAND", + "name": "SIX ISLAND", + "x": 17, + "y": 5, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_KINDLE_ROAD", + "name": "KINDLE ROAD", + "x": 2, + "y": 3, + "width": 1, + "height": 6 + }, + { + "map_section": "MAPSEC_TREASURE_BEACH", + "name": "TREASURE BEACH", + "x": 1, + "y": 9, + "width": 1, + "height": 2 + }, + { + "map_section": "MAPSEC_CAPE_BRINK", + "name": "CAPE BRINK", + "x": 9, + "y": 7, + "width": 1, + "height": 2 + }, + { + "map_section": "MAPSEC_BOND_BRIDGE", + "name": "BOND BRIDGE", + "x": 13, + "y": 12, + "width": 4, + "height": 1 + }, + { + "map_section": "MAPSEC_THREE_ISLE_PORT", + "name": "THREE ISLE PORT", + "x": 18, + "y": 13, + "width": 2, + "height": 1 + }, + { + "map_section": "MAPSEC_SEVII_ISLE_6", + "name": "SEVII ISLE 6", + "x": 4, + "y": 3, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_SEVII_ISLE_7", + "name": "SEVII ISLE 7", + "x": 5, + "y": 4, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_SEVII_ISLE_8", + "name": "SEVII ISLE 8", + "x": 1, + "y": 4, + "width": 3, + "height": 1 + }, + { + "map_section": "MAPSEC_SEVII_ISLE_9", + "name": "SEVII ISLE 9", + "x": 4, + "y": 5, + "width": 1, + "height": 2 + }, + { + "map_section": "MAPSEC_RESORT_GORGEOUS", + "name": "RESORT GORGEOUS", + "x": 16, + "y": 9, + "width": 3, + "height": 1 + }, + { + "map_section": "MAPSEC_WATER_LABYRINTH", + "name": "WATER LABYRINTH", + "x": 14, + "y": 10, + "width": 3, + "height": 1 + }, + { + "map_section": "MAPSEC_FIVE_ISLE_MEADOW", + "name": "FIVE ISLE MEADOW", + "x": 17, + "y": 10, + "width": 1, + "height": 3 + }, + { + "map_section": "MAPSEC_MEMORIAL_PILLAR", + "name": "MEMORIAL PILLAR", + "x": 18, + "y": 12, + "width": 1, + "height": 3 + }, + { + "map_section": "MAPSEC_OUTCAST_ISLAND", + "name": "OUTCAST ISLAND", + "x": 15, + "y": 0, + "width": 1, + "height": 3 + }, + { + "map_section": "MAPSEC_GREEN_PATH", + "name": "GREEN PATH", + "x": 15, + "y": 3, + "width": 3, + "height": 1 + }, + { + "map_section": "MAPSEC_WATER_PATH", + "name": "WATER PATH", + "x": 18, + "y": 3, + "width": 1, + "height": 5 + }, + { + "map_section": "MAPSEC_RUIN_VALLEY", + "name": "RUIN VALLEY", + "x": 16, + "y": 7, + "width": 2, + "height": 2 + }, + { + "map_section": "MAPSEC_TRAINER_TOWER", + "name": "TRAINER TOWER", + "x": 5, + "y": 6, + "width": 1, + "height": 2 + }, + { + "map_section": "MAPSEC_CANYON_ENTRANCE", + "name": "CANYON ENTRANCE", + "x": 5, + "y": 9, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_SEVAULT_CANYON", + "name": "SEVAULT CANYON", + "x": 6, + "y": 9, + "width": 1, + "height": 3 + }, + { + "map_section": "MAPSEC_TANOBY_RUINS", + "name": "TANOBY RUINS", + "x": 3, + "y": 12, + "width": 7, + "height": 1 + }, + { + "map_section": "MAPSEC_SEVII_ISLE_22", + "name": "SEVII ISLE 22", + "x": 9, + "y": 12, + "width": 1, + "height": 3 + }, + { + "map_section": "MAPSEC_SEVII_ISLE_23", + "name": "SEVII ISLE 23", + "x": 3, + "y": 14, + "width": 6, + "height": 1 + }, + { + "map_section": "MAPSEC_SEVII_ISLE_24", + "name": "SEVII ISLE 24", + "x": 2, + "y": 12, + "width": 1, + "height": 3 + }, + { + "map_section": "MAPSEC_NAVEL_ROCK", + "name": "NAVEL ROCK", + "x": 10, + "y": 8, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_MT_EMBER", + "name": "MT. EMBER", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_BERRY_FOREST", + "name": "BERRY FOREST", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_ICEFALL_CAVE", + "name": "ICEFALL CAVE", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_ROCKET_WAREHOUSE", + "name": "ROCKET WAREHOUSE", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_TRAINER_TOWER_2", + "name": "TRAINER TOWER", + "name_clone": true, + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_DOTTED_HOLE", + "name": "DOTTED HOLE", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_LOST_CAVE", + "name": "LOST CAVE", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_PATTERN_BUSH", + "name": "PATTERN BUSH", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_ALTERING_CAVE", + "name": "ALTERING CAVE", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_TANOBY_CHAMBERS", + "name": "TANOBY CHAMBERS", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_THREE_ISLE_PATH", + "name": "THREE ISLE PATH", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_TANOBY_KEY", + "name": "TANOBY KEY", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_BIRTH_ISLAND", + "name": "BIRTH ISLAND", + "x": 18, + "y": 13, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_MONEAN_CHAMBER", + "name": "MONEAN CHAMBER", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_LIPTOO_CHAMBER", + "name": "LIPTOO CHAMBER", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_WEEPTH_CHAMBER", + "name": "WEEPTH CHAMBER", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_DILFORD_CHAMBER", + "name": "DILFORD CHAMBER", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_SCUFIB_CHAMBER", + "name": "SCUFIB CHAMBER", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_RIXY_CHAMBER", + "name": "RIXY CHAMBER", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_VIAPOIS_CHAMBER", + "name": "VIAPOIS CHAMBER", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_EMBER_SPA", + "name": "EMBER SPA", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + { + "map_section": "MAPSEC_SPECIAL_AREA", + "name": "CELADON DEPT.", + "x": 0, + "y": 0, + "width": 0, + "height": 0 + } + ] +} diff --git a/src/data/region_map/region_map_sections.strings.json.txt b/src/data/region_map/region_map_sections.strings.json.txt new file mode 100644 index 000000000..c81a10419 --- /dev/null +++ b/src/data/region_map/region_map_sections.strings.json.txt @@ -0,0 +1,18 @@ +{{ doNotModifyHeader }} +#ifndef GUARD_DATA_REGION_MAP_REGION_MAP_ENTRY_STRINGS_H +#define GUARD_DATA_REGION_MAP_REGION_MAP_ENTRY_STRINGS_H + +## for map_section in map_sections +{% if isEmptyString(getVar(map_section.name)) and not existsIn(map_section, "name_clone") %}{{ setVar(map_section.name, map_section.map_section) }}{% endif %} +## endfor + +## for map_section in map_sections +{% if getVar(map_section.name) == map_section.map_section %} +static const u8 sMapsecName_{{ cleanString(map_section.name) }}[] = _("{{ map_section.name }}"); +{% endif %} +{% if existsIn(map_section, "name_clone") %} +static const u8 sMapsecName_{{ cleanString(map_section.name) }}_Clone[] = _("{{ map_section.name }}"); +{% endif %} +## endfor + +#endif // GUARD_DATA_REGION_MAP_REGION_MAP_ENTRY_STRINGS_H diff --git a/src/data/text/map_section_names.h b/src/data/text/map_section_names.h deleted file mode 100644 index 5a18fa7c9..000000000 --- a/src/data/text/map_section_names.h +++ /dev/null @@ -1,109 +0,0 @@ -const u8 gMapSecName_PalletTown[] = _("PALLET TOWN"); -const u8 gMapSecName_ViridianCity[] = _("VIRIDIAN CITY"); -const u8 gMapSecName_PewterCity[] = _("PEWTER CITY"); -const u8 gMapSecName_CeruleanCity[] = _("CERULEAN CITY"); -const u8 gMapSecName_LavenderTown[] = _("LAVENDER TOWN"); -const u8 gMapSecName_VermilionCity[] = _("VERMILION CITY"); -const u8 gMapSecName_CeladonCity[] = _("CELADON CITY"); -const u8 gMapSecName_FuchsiaCity[] = _("FUCHSIA CITY"); -const u8 gMapSecName_CinnabarIsland[] = _("CINNABAR ISLAND"); -const u8 gMapSecName_IndigoPlateau[] = _("INDIGO PLATEAU"); -const u8 gMapSecName_SaffronCity[] = _("SAFFRON CITY"); -const u8 gMapSecName_Route4[] = _("ROUTE 4"); -const u8 gMapSecName_Route10[] = _("ROUTE 10"); -const u8 gMapSecName_Route1[] = _("ROUTE 1"); -const u8 gMapSecName_Route2[] = _("ROUTE 2"); -const u8 gMapSecName_Route3[] = _("ROUTE 3"); -const u8 gMapSecName_Route4_2[] = _("ROUTE 4"); -const u8 gMapSecName_Route5[] = _("ROUTE 5"); -const u8 gMapSecName_Route6[] = _("ROUTE 6"); -const u8 gMapSecName_Route7[] = _("ROUTE 7"); -const u8 gMapSecName_Route8[] = _("ROUTE 8"); -const u8 gMapSecName_Route9[] = _("ROUTE 9"); -const u8 gMapSecName_Route10_2[] = _("ROUTE 10"); -const u8 gMapSecName_Route11[] = _("ROUTE 11"); -const u8 gMapSecName_Route12[] = _("ROUTE 12"); -const u8 gMapSecName_Route13[] = _("ROUTE 13"); -const u8 gMapSecName_Route14[] = _("ROUTE 14"); -const u8 gMapSecName_Route15[] = _("ROUTE 15"); -const u8 gMapSecName_Route16[] = _("ROUTE 16"); -const u8 gMapSecName_Route17[] = _("ROUTE 17"); -const u8 gMapSecName_Route18[] = _("ROUTE 18"); -const u8 gMapSecName_Route19[] = _("ROUTE 19"); -const u8 gMapSecName_Route20[] = _("ROUTE 20"); -const u8 gMapSecName_Route21[] = _("ROUTE 21"); -const u8 gMapSecName_Route22[] = _("ROUTE 22"); -const u8 gMapSecName_Route23[] = _("ROUTE 23"); -const u8 gMapSecName_Route24[] = _("ROUTE 24"); -const u8 gMapSecName_Route25[] = _("ROUTE 25"); -const u8 gMapSecName_ViridianForest[] = _("VIRIDIAN FOREST"); -const u8 gMapSecName_MtMoon[] = _("MT. MOON"); -const u8 gMapSecName_SSAnne[] = _("S.S. ANNE"); -const u8 gMapSecName_UndergroundPath[] = _("UNDERGROUND PATH"); -const u8 gMapSecName_UndergroundPath_2[] = _("UNDERGROUND PATH"); -const u8 gMapSecName_DiglettsCave[] = _("DIGLETT'S CAVE"); -const u8 gMapSecName_VictoryRoad[] = _("VICTORY ROAD"); -const u8 gMapSecName_RocketHideout[] = _("ROCKET HIDEOUT"); -const u8 gMapSecName_SilphCo[] = _("SILPH CO."); -const u8 gMapSecName_PokemonMansion[] = _("POKéMON MANSION"); -const u8 gMapSecName_SafariZone[] = _("SAFARI ZONE"); -const u8 gMapSecName_PokemonLeague[] = _("POKéMON LEAGUE"); -const u8 gMapSecName_RockTunnel[] = _("ROCK TUNNEL"); -const u8 gMapSecName_SeafoamIslands[] = _("SEAFOAM ISLANDS"); -const u8 gMapSecName_PokemonTower[] = _("POKéMON TOWER"); -const u8 gMapSecName_CeruleanCave[] = _("CERULEAN CAVE"); -const u8 gMapSecName_PowerPlant[] = _("POWER PLANT"); -const u8 gMapSecName_OneIsland[] = _("ONE ISLAND"); -const u8 gMapSecName_TwoIsland[] = _("TWO ISLAND"); -const u8 gMapSecName_ThreeIsland[] = _("THREE ISLAND"); -const u8 gMapSecName_FourIsland[] = _("FOUR ISLAND"); -const u8 gMapSecName_FiveIsland[] = _("FIVE ISLAND"); -const u8 gMapSecName_SevenIsland[] = _("SEVEN ISLAND"); -const u8 gMapSecName_SixIsland[] = _("SIX ISLAND"); -const u8 gMapSecName_KindleRoad[] = _("KINDLE ROAD"); -const u8 gMapSecName_TreasureBeach[] = _("TREASURE BEACH"); -const u8 gMapSecName_CapeBrink[] = _("CAPE BRINK"); -const u8 gMapSecName_BondBridge[] = _("BOND BRIDGE"); -const u8 gMapSecName_ThreeIslePort[] = _("THREE ISLE PORT"); -const u8 gMapSecName_SeviiIsle6[] = _("SEVII ISLE 6"); -const u8 gMapSecName_SeviiIsle7[] = _("SEVII ISLE 7"); -const u8 gMapSecName_SeviiIsle8[] = _("SEVII ISLE 8"); -const u8 gMapSecName_SeviiIsle9[] = _("SEVII ISLE 9"); -const u8 gMapSecName_ResortGorgeous[] = _("RESORT GORGEOUS"); -const u8 gMapSecName_WaterLabyrinth[] = _("WATER LABYRINTH"); -const u8 gMapSecName_FiveIsleMeadow[] = _("FIVE ISLE MEADOW"); -const u8 gMapSecName_MemorialPillar[] = _("MEMORIAL PILLAR"); -const u8 gMapSecName_OutcastIsland[] = _("OUTCAST ISLAND"); -const u8 gMapSecName_GreenPath[] = _("GREEN PATH"); -const u8 gMapSecName_WaterPath[] = _("WATER PATH"); -const u8 gMapSecName_RuinValley[] = _("RUIN VALLEY"); -const u8 gMapSecName_TrainerTower[] = _("TRAINER TOWER"); -const u8 gMapSecName_CanyonEntrance[] = _("CANYON ENTRANCE"); -const u8 gMapSecName_SevaultCanyon[] = _("SEVAULT CANYON"); -const u8 gMapSecName_TanobyRuins[] = _("TANOBY RUINS"); -const u8 gMapSecName_SeviiIsle22[] = _("SEVII ISLE 22"); -const u8 gMapSecName_SeviiIsle23[] = _("SEVII ISLE 23"); -const u8 gMapSecName_SeviiIsle24[] = _("SEVII ISLE 24"); -const u8 gMapSecName_NavelRock[] = _("NAVEL ROCK"); -const u8 gMapSecName_MtEmber[] = _("MT. EMBER"); -const u8 gMapSecName_BerryForest[] = _("BERRY FOREST"); -const u8 gMapSecName_IcefallCave[] = _("ICEFALL CAVE"); -const u8 gMapSecName_RocketWarehouse[] = _("ROCKET WAREHOUSE"); -const u8 gMapSecName_TrainerTower_2[] = _("TRAINER TOWER"); -const u8 gMapSecName_DottedHole[] = _("DOTTED HOLE"); -const u8 gMapSecName_LostCave[] = _("LOST CAVE"); -const u8 gMapSecName_PatternBush[] = _("PATTERN BUSH"); -const u8 gMapSecName_AlteringCave[] = _("ALTERING CAVE"); -const u8 gMapSecName_TanobyChambers[] = _("TANOBY CHAMBERS"); -const u8 gMapSecName_ThreeIslePath[] = _("THREE ISLE PATH"); -const u8 gMapSecName_TanobyKey[] = _("TANOBY KEY"); -const u8 gMapSecName_BirthIsland[] = _("BIRTH ISLAND"); -const u8 gMapSecName_MoneanChamber[] = _("MONEAN CHAMBER"); -const u8 gMapSecName_LiptooChamber[] = _("LIPTOO CHAMBER"); -const u8 gMapSecName_WeepthChamber[] = _("WEEPTH CHAMBER"); -const u8 gMapSecName_DilfordChamber[] = _("DILFORD CHAMBER"); -const u8 gMapSecName_ScufibChamber[] = _("SCUFIB CHAMBER"); -const u8 gMapSecName_RixyChamber[] = _("RIXY CHAMBER"); -const u8 gMapSecName_ViapoisChamber[] = _("VIAPOIS CHAMBER"); -const u8 gMapSecName_EmberSpa[] = _("EMBER SPA"); -const u8 gMapSecName_CeladonDept[] = _("CELADON DEPT."); diff --git a/src/data/tilesets/graphics.h b/src/data/tilesets/graphics.h new file mode 100644 index 000000000..f82df8a6e --- /dev/null +++ b/src/data/tilesets/graphics.h @@ -0,0 +1,1407 @@ +const u32 gTilesetTiles_PalletTown[] = INCBIN_U32("data/tilesets/secondary/pallet_town/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_PalletTown[][16] = +{ + INCBIN_U16("data/tilesets/secondary/pallet_town/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/pallet_town/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/pallet_town/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/pallet_town/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/pallet_town/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/pallet_town/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/pallet_town/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/pallet_town/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/pallet_town/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/pallet_town/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/pallet_town/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/pallet_town/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/pallet_town/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/pallet_town/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/pallet_town/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/pallet_town/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_ViridianCity[] = INCBIN_U32("data/tilesets/secondary/viridian_city/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_ViridianCity[][16] = +{ + INCBIN_U16("data/tilesets/secondary/viridian_city/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_city/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_city/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_city/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_city/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_city/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_city/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_city/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_city/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_city/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_city/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_city/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_city/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_city/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_city/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_city/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_PewterCity[] = INCBIN_U32("data/tilesets/secondary/pewter_city/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_PewterCity[][16] = +{ + INCBIN_U16("data/tilesets/secondary/pewter_city/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/pewter_city/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/pewter_city/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/pewter_city/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/pewter_city/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/pewter_city/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/pewter_city/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/pewter_city/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/pewter_city/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/pewter_city/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/pewter_city/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/pewter_city/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/pewter_city/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/pewter_city/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/pewter_city/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/pewter_city/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_CeruleanCity[] = INCBIN_U32("data/tilesets/secondary/cerulean_city/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_CeruleanCity[][16] = +{ + INCBIN_U16("data/tilesets/secondary/cerulean_city/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_city/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_city/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_city/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_city/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_city/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_city/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_city/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_city/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_city/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_city/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_city/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_city/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_city/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_city/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_city/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_LavenderTown[] = INCBIN_U32("data/tilesets/secondary/lavender_town/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_LavenderTown[][16] = +{ + INCBIN_U16("data/tilesets/secondary/lavender_town/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/lavender_town/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/lavender_town/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/lavender_town/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/lavender_town/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/lavender_town/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/lavender_town/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/lavender_town/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/lavender_town/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/lavender_town/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/lavender_town/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/lavender_town/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/lavender_town/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/lavender_town/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/lavender_town/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/lavender_town/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_VermilionCity[] = INCBIN_U32("data/tilesets/secondary/vermilion_city/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_VermilionCity[][16] = +{ + INCBIN_U16("data/tilesets/secondary/vermilion_city/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/vermilion_city/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/vermilion_city/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/vermilion_city/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/vermilion_city/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/vermilion_city/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/vermilion_city/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/vermilion_city/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/vermilion_city/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/vermilion_city/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/vermilion_city/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/vermilion_city/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/vermilion_city/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/vermilion_city/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/vermilion_city/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/vermilion_city/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_CeladonCity[] = INCBIN_U32("data/tilesets/secondary/celadon_city/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_CeladonCity[][16] = +{ + INCBIN_U16("data/tilesets/secondary/celadon_city/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/celadon_city/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/celadon_city/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/celadon_city/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/celadon_city/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/celadon_city/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/celadon_city/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/celadon_city/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/celadon_city/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/celadon_city/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/celadon_city/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/celadon_city/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/celadon_city/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/celadon_city/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/celadon_city/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/celadon_city/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_FuchsiaCity[] = INCBIN_U32("data/tilesets/secondary/fuchsia_city/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_FuchsiaCity[][16] = +{ + INCBIN_U16("data/tilesets/secondary/fuchsia_city/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/fuchsia_city/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/fuchsia_city/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/fuchsia_city/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/fuchsia_city/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/fuchsia_city/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/fuchsia_city/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/fuchsia_city/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/fuchsia_city/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/fuchsia_city/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/fuchsia_city/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/fuchsia_city/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/fuchsia_city/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/fuchsia_city/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/fuchsia_city/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/fuchsia_city/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_CinnabarIsland[] = INCBIN_U32("data/tilesets/secondary/cinnabar_island/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_CinnabarIsland[][16] = +{ + INCBIN_U16("data/tilesets/secondary/cinnabar_island/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/cinnabar_island/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/cinnabar_island/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/cinnabar_island/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/cinnabar_island/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/cinnabar_island/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/cinnabar_island/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/cinnabar_island/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/cinnabar_island/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/cinnabar_island/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/cinnabar_island/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/cinnabar_island/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/cinnabar_island/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/cinnabar_island/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/cinnabar_island/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/cinnabar_island/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_IndigoPlateau[] = INCBIN_U32("data/tilesets/secondary/indigo_plateau/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_IndigoPlateau[][16] = +{ + INCBIN_U16("data/tilesets/secondary/indigo_plateau/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/indigo_plateau/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/indigo_plateau/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/indigo_plateau/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/indigo_plateau/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/indigo_plateau/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/indigo_plateau/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/indigo_plateau/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/indigo_plateau/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/indigo_plateau/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/indigo_plateau/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/indigo_plateau/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/indigo_plateau/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/indigo_plateau/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/indigo_plateau/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/indigo_plateau/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_SaffronCity[] = INCBIN_U32("data/tilesets/secondary/saffron_city/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_SaffronCity[][16] = +{ + INCBIN_U16("data/tilesets/secondary/saffron_city/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/saffron_city/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/saffron_city/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/saffron_city/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/saffron_city/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/saffron_city/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/saffron_city/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/saffron_city/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/saffron_city/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/saffron_city/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/saffron_city/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/saffron_city/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/saffron_city/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/saffron_city/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/saffron_city/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/saffron_city/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_Building[] = INCBIN_U32("data/tilesets/primary/building/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_Building[][16] = +{ + INCBIN_U16("data/tilesets/primary/building/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/primary/building/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/primary/building/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/primary/building/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/primary/building/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/primary/building/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/primary/building/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/primary/building/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/primary/building/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/primary/building/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/primary/building/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/primary/building/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/primary/building/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/primary/building/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/primary/building/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/primary/building/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_Mart[] = INCBIN_U32("data/tilesets/secondary/mart/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_Mart[][16] = +{ + INCBIN_U16("data/tilesets/secondary/mart/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/mart/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/mart/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/mart/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/mart/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/mart/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/mart/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/mart/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/mart/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/mart/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/mart/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/mart/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/mart/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/mart/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/mart/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/mart/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_PokemonCenter[] = INCBIN_U32("data/tilesets/secondary/pokemon_center/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_PokemonCenter[][16] = +{ + INCBIN_U16("data/tilesets/secondary/pokemon_center/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_center/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_center/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_center/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_center/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_center/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_center/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_center/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_center/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_center/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_center/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_center/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_center/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_center/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_center/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_center/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_Cave[] = INCBIN_U32("data/tilesets/secondary/cave/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_Cave[][16] = +{ + INCBIN_U16("data/tilesets/secondary/cave/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/cave/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/cave/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/cave/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/cave/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/cave/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/cave/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/cave/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/cave/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/cave/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/cave/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/cave/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/cave/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/cave/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/cave/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/cave/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_Dummy1[] = INCBIN_U32("data/tilesets/secondary/dummy_1/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_Dummy1[][16] = +{ + INCBIN_U16("data/tilesets/secondary/dummy_1/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_1/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_1/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_1/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_1/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_1/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_1/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_1/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_1/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_1/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_1/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_1/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_1/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_1/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_1/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_1/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_Museum[] = INCBIN_U32("data/tilesets/secondary/museum/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_Museum[][16] = +{ + INCBIN_U16("data/tilesets/secondary/museum/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/museum/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/museum/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/museum/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/museum/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/museum/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/museum/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/museum/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/museum/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/museum/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/museum/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/museum/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/museum/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/museum/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/museum/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/museum/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_CableClub[] = INCBIN_U32("data/tilesets/secondary/cable_club/tiles.4bpp"); + +const u16 gTilesetPalettes_CableClub[][16] = +{ + INCBIN_U16("data/tilesets/secondary/cable_club/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/cable_club/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/cable_club/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/cable_club/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/cable_club/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/cable_club/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/cable_club/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/cable_club/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/cable_club/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/cable_club/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/cable_club/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/cable_club/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/cable_club/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/cable_club/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/cable_club/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/cable_club/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_BikeShop[] = INCBIN_U32("data/tilesets/secondary/bike_shop/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_BikeShop[][16] = +{ + INCBIN_U16("data/tilesets/secondary/bike_shop/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/bike_shop/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/bike_shop/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/bike_shop/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/bike_shop/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/bike_shop/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/bike_shop/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/bike_shop/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/bike_shop/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/bike_shop/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/bike_shop/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/bike_shop/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/bike_shop/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/bike_shop/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/bike_shop/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/bike_shop/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_Lab[] = INCBIN_U32("data/tilesets/secondary/lab/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_Lab[][16] = +{ + INCBIN_U16("data/tilesets/secondary/lab/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/lab/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/lab/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/lab/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/lab/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/lab/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/lab/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/lab/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/lab/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/lab/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/lab/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/lab/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/lab/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/lab/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/lab/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/lab/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_HoennBuilding[] = INCBIN_U32("data/tilesets/secondary/hoenn_building/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_HoennBuilding[][16] = +{ + INCBIN_U16("data/tilesets/secondary/hoenn_building/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/hoenn_building/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/hoenn_building/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/hoenn_building/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/hoenn_building/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/hoenn_building/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/hoenn_building/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/hoenn_building/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/hoenn_building/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/hoenn_building/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/hoenn_building/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/hoenn_building/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/hoenn_building/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/hoenn_building/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/hoenn_building/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/hoenn_building/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_GameCorner[] = INCBIN_U32("data/tilesets/secondary/game_corner/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_GameCorner[][16] = +{ + INCBIN_U16("data/tilesets/secondary/game_corner/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/game_corner/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/game_corner/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/game_corner/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/game_corner/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/game_corner/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/game_corner/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/game_corner/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/game_corner/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/game_corner/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/game_corner/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/game_corner/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/game_corner/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/game_corner/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/game_corner/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/game_corner/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_PewterGym[] = INCBIN_U32("data/tilesets/secondary/pewter_gym/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_PewterGym[][16] = +{ + INCBIN_U16("data/tilesets/secondary/pewter_gym/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/pewter_gym/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/pewter_gym/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/pewter_gym/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/pewter_gym/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/pewter_gym/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/pewter_gym/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/pewter_gym/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/pewter_gym/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/pewter_gym/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/pewter_gym/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/pewter_gym/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/pewter_gym/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/pewter_gym/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/pewter_gym/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/pewter_gym/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_CeruleanGym[] = INCBIN_U32("data/tilesets/secondary/cerulean_gym/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_CeruleanGym[][16] = +{ + INCBIN_U16("data/tilesets/secondary/cerulean_gym/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_gym/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_gym/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_gym/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_gym/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_gym/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_gym/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_gym/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_gym/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_gym/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_gym/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_gym/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_gym/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_gym/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_gym/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_gym/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_VermilionGym[] = INCBIN_U32("data/tilesets/secondary/vermilion_gym/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_VermilionGym[][16] = +{ + INCBIN_U16("data/tilesets/secondary/vermilion_gym/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/vermilion_gym/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/vermilion_gym/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/vermilion_gym/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/vermilion_gym/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/vermilion_gym/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/vermilion_gym/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/vermilion_gym/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/vermilion_gym/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/vermilion_gym/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/vermilion_gym/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/vermilion_gym/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/vermilion_gym/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/vermilion_gym/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/vermilion_gym/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/vermilion_gym/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_CeladonGym[] = INCBIN_U32("data/tilesets/secondary/celadon_gym/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_CeladonGym[][16] = +{ + INCBIN_U16("data/tilesets/secondary/celadon_gym/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/celadon_gym/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/celadon_gym/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/celadon_gym/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/celadon_gym/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/celadon_gym/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/celadon_gym/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/celadon_gym/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/celadon_gym/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/celadon_gym/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/celadon_gym/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/celadon_gym/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/celadon_gym/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/celadon_gym/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/celadon_gym/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/celadon_gym/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_FuchsiaGym[] = INCBIN_U32("data/tilesets/secondary/fuchsia_gym/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_FuchsiaGym[][16] = +{ + INCBIN_U16("data/tilesets/secondary/fuchsia_gym/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/fuchsia_gym/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/fuchsia_gym/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/fuchsia_gym/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/fuchsia_gym/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/fuchsia_gym/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/fuchsia_gym/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/fuchsia_gym/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/fuchsia_gym/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/fuchsia_gym/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/fuchsia_gym/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/fuchsia_gym/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/fuchsia_gym/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/fuchsia_gym/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/fuchsia_gym/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/fuchsia_gym/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_SaffronGym[] = INCBIN_U32("data/tilesets/secondary/saffron_gym/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_SaffronGym[][16] = +{ + INCBIN_U16("data/tilesets/secondary/saffron_gym/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/saffron_gym/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/saffron_gym/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/saffron_gym/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/saffron_gym/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/saffron_gym/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/saffron_gym/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/saffron_gym/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/saffron_gym/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/saffron_gym/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/saffron_gym/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/saffron_gym/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/saffron_gym/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/saffron_gym/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/saffron_gym/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/saffron_gym/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_CinnabarGym[] = INCBIN_U32("data/tilesets/secondary/cinnabar_gym/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_CinnabarGym[][16] = +{ + INCBIN_U16("data/tilesets/secondary/cinnabar_gym/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/cinnabar_gym/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/cinnabar_gym/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/cinnabar_gym/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/cinnabar_gym/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/cinnabar_gym/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/cinnabar_gym/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/cinnabar_gym/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/cinnabar_gym/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/cinnabar_gym/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/cinnabar_gym/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/cinnabar_gym/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/cinnabar_gym/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/cinnabar_gym/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/cinnabar_gym/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/cinnabar_gym/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_ViridianGym[] = INCBIN_U32("data/tilesets/secondary/viridian_gym/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_ViridianGym[][16] = +{ + INCBIN_U16("data/tilesets/secondary/viridian_gym/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_gym/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_gym/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_gym/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_gym/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_gym/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_gym/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_gym/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_gym/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_gym/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_gym/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_gym/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_gym/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_gym/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_gym/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_gym/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_SSAnne[] = INCBIN_U32("data/tilesets/secondary/ss_anne/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_SSAnne[][16] = +{ + INCBIN_U16("data/tilesets/secondary/ss_anne/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/ss_anne/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/ss_anne/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/ss_anne/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/ss_anne/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/ss_anne/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/ss_anne/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/ss_anne/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/ss_anne/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/ss_anne/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/ss_anne/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/ss_anne/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/ss_anne/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/ss_anne/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/ss_anne/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/ss_anne/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_Dummy2[] = INCBIN_U32("data/tilesets/secondary/dummy_2/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_Dummy2[][16] = +{ + INCBIN_U16("data/tilesets/secondary/dummy_2/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_2/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_2/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_2/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_2/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_2/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_2/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_2/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_2/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_2/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_2/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_2/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_2/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_2/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_2/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_2/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_ViridianForest[] = INCBIN_U32("data/tilesets/secondary/viridian_forest/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_ViridianForest[][16] = +{ + INCBIN_U16("data/tilesets/secondary/viridian_forest/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_forest/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_forest/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_forest/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_forest/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_forest/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_forest/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_forest/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_forest/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_forest/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_forest/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_forest/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_forest/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_forest/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_forest/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/viridian_forest/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_UnusedGatehouse1[] = INCBIN_U32("data/tilesets/secondary/unused_gatehouse_1/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_UnusedGatehouse1[][16] = +{ + INCBIN_U16("data/tilesets/secondary/unused_gatehouse_1/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/unused_gatehouse_1/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/unused_gatehouse_1/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/unused_gatehouse_1/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/unused_gatehouse_1/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/unused_gatehouse_1/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/unused_gatehouse_1/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/unused_gatehouse_1/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/unused_gatehouse_1/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/unused_gatehouse_1/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/unused_gatehouse_1/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/unused_gatehouse_1/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/unused_gatehouse_1/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/unused_gatehouse_1/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/unused_gatehouse_1/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/unused_gatehouse_1/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_RockTunnel[] = INCBIN_U32("data/tilesets/secondary/rock_tunnel/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_RockTunnel[][16] = +{ + INCBIN_U16("data/tilesets/secondary/rock_tunnel/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/rock_tunnel/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/rock_tunnel/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/rock_tunnel/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/rock_tunnel/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/rock_tunnel/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/rock_tunnel/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/rock_tunnel/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/rock_tunnel/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/rock_tunnel/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/rock_tunnel/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/rock_tunnel/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/rock_tunnel/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/rock_tunnel/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/rock_tunnel/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/rock_tunnel/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_DiglettsCave[] = INCBIN_U32("data/tilesets/secondary/digletts_cave/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_DiglettsCave[][16] = +{ + INCBIN_U16("data/tilesets/secondary/digletts_cave/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/digletts_cave/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/digletts_cave/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/digletts_cave/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/digletts_cave/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/digletts_cave/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/digletts_cave/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/digletts_cave/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/digletts_cave/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/digletts_cave/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/digletts_cave/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/digletts_cave/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/digletts_cave/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/digletts_cave/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/digletts_cave/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/digletts_cave/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_SeafoamIslands[] = INCBIN_U32("data/tilesets/secondary/seafoam_islands/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_SeafoamIslands[][16] = +{ + INCBIN_U16("data/tilesets/secondary/seafoam_islands/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/seafoam_islands/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/seafoam_islands/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/seafoam_islands/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/seafoam_islands/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/seafoam_islands/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/seafoam_islands/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/seafoam_islands/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/seafoam_islands/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/seafoam_islands/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/seafoam_islands/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/seafoam_islands/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/seafoam_islands/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/seafoam_islands/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/seafoam_islands/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/seafoam_islands/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_UnusedGatehouse2[] = INCBIN_U32("data/tilesets/secondary/unused_gatehouse_2/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_UnusedGatehouse2[][16] = +{ + INCBIN_U16("data/tilesets/secondary/unused_gatehouse_2/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/unused_gatehouse_2/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/unused_gatehouse_2/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/unused_gatehouse_2/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/unused_gatehouse_2/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/unused_gatehouse_2/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/unused_gatehouse_2/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/unused_gatehouse_2/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/unused_gatehouse_2/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/unused_gatehouse_2/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/unused_gatehouse_2/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/unused_gatehouse_2/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/unused_gatehouse_2/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/unused_gatehouse_2/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/unused_gatehouse_2/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/unused_gatehouse_2/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_CeruleanCave[] = INCBIN_U32("data/tilesets/secondary/cerulean_cave/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_CeruleanCave[][16] = +{ + INCBIN_U16("data/tilesets/secondary/cerulean_cave/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_cave/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_cave/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_cave/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_cave/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_cave/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_cave/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_cave/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_cave/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_cave/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_cave/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_cave/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_cave/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_cave/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_cave/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/cerulean_cave/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_GenericBuilding2[] = INCBIN_U32("data/tilesets/secondary/generic_building_2/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_GenericBuilding2[][16] = +{ + INCBIN_U16("data/tilesets/secondary/generic_building_2/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/generic_building_2/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/generic_building_2/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/generic_building_2/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/generic_building_2/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/generic_building_2/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/generic_building_2/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/generic_building_2/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/generic_building_2/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/generic_building_2/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/generic_building_2/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/generic_building_2/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/generic_building_2/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/generic_building_2/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/generic_building_2/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/generic_building_2/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_PowerPlant[] = INCBIN_U32("data/tilesets/secondary/power_plant/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_PowerPlant[][16] = +{ + INCBIN_U16("data/tilesets/secondary/power_plant/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/power_plant/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/power_plant/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/power_plant/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/power_plant/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/power_plant/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/power_plant/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/power_plant/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/power_plant/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/power_plant/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/power_plant/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/power_plant/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/power_plant/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/power_plant/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/power_plant/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/power_plant/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_SeaCottage[] = INCBIN_U32("data/tilesets/secondary/sea_cottage/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_SeaCottage[][16] = +{ + INCBIN_U16("data/tilesets/secondary/sea_cottage/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/sea_cottage/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/sea_cottage/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/sea_cottage/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/sea_cottage/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/sea_cottage/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/sea_cottage/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/sea_cottage/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/sea_cottage/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/sea_cottage/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/sea_cottage/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/sea_cottage/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/sea_cottage/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/sea_cottage/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/sea_cottage/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/sea_cottage/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_SilphCo[] = INCBIN_U32("data/tilesets/secondary/condominiums/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_SilphCo[][16] = +{ + INCBIN_U16("data/tilesets/secondary/condominiums/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/condominiums/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/condominiums/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/condominiums/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/condominiums/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/condominiums/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/condominiums/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/condominiums/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/condominiums/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/condominiums/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/condominiums/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/condominiums/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/condominiums/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/condominiums/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/condominiums/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/condominiums/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_UndergroundPath[] = INCBIN_U32("data/tilesets/secondary/underground_path/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_UndergroundPath[][16] = +{ + INCBIN_U16("data/tilesets/secondary/underground_path/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/underground_path/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/underground_path/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/underground_path/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/underground_path/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/underground_path/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/underground_path/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/underground_path/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/underground_path/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/underground_path/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/underground_path/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/underground_path/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/underground_path/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/underground_path/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/underground_path/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/underground_path/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_PokemonTower[] = INCBIN_U32("data/tilesets/secondary/pokemon_tower/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_PokemonTower[][16] = +{ + INCBIN_U16("data/tilesets/secondary/pokemon_tower/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_tower/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_tower/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_tower/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_tower/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_tower/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_tower/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_tower/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_tower/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_tower/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_tower/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_tower/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_tower/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_tower/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_tower/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_tower/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_SafariZoneBuilding[] = INCBIN_U32("data/tilesets/secondary/safari_zone_building/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_SafariZoneBuilding[][16] = +{ + INCBIN_U16("data/tilesets/secondary/safari_zone_building/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/safari_zone_building/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/safari_zone_building/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/safari_zone_building/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/safari_zone_building/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/safari_zone_building/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/safari_zone_building/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/safari_zone_building/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/safari_zone_building/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/safari_zone_building/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/safari_zone_building/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/safari_zone_building/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/safari_zone_building/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/safari_zone_building/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/safari_zone_building/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/safari_zone_building/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_PokemonMansion[] = INCBIN_U32("data/tilesets/secondary/pokemon_mansion/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_PokemonMansion[][16] = +{ + INCBIN_U16("data/tilesets/secondary/pokemon_mansion/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_mansion/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_mansion/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_mansion/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_mansion/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_mansion/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_mansion/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_mansion/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_mansion/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_mansion/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_mansion/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_mansion/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_mansion/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_mansion/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_mansion/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_mansion/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_RestaurantHotel[] = INCBIN_U32("data/tilesets/secondary/restaurant_hotel/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_RestaurantHotel[][16] = +{ + INCBIN_U16("data/tilesets/secondary/restaurant_hotel/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/restaurant_hotel/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/restaurant_hotel/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/restaurant_hotel/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/restaurant_hotel/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/restaurant_hotel/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/restaurant_hotel/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/restaurant_hotel/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/restaurant_hotel/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/restaurant_hotel/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/restaurant_hotel/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/restaurant_hotel/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/restaurant_hotel/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/restaurant_hotel/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/restaurant_hotel/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/restaurant_hotel/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_School[] = INCBIN_U32("data/tilesets/secondary/school/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_School[][16] = +{ + INCBIN_U16("data/tilesets/secondary/school/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/school/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/school/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/school/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/school/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/school/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/school/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/school/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/school/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/school/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/school/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/school/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/school/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/school/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/school/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/school/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_FanClubDaycare[] = INCBIN_U32("data/tilesets/secondary/fan_club_daycare/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_FanClubDaycare[][16] = +{ + INCBIN_U16("data/tilesets/secondary/fan_club_daycare/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/fan_club_daycare/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/fan_club_daycare/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/fan_club_daycare/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/fan_club_daycare/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/fan_club_daycare/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/fan_club_daycare/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/fan_club_daycare/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/fan_club_daycare/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/fan_club_daycare/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/fan_club_daycare/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/fan_club_daycare/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/fan_club_daycare/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/fan_club_daycare/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/fan_club_daycare/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/fan_club_daycare/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_BurgledHouse[] = INCBIN_U32("data/tilesets/secondary/burgled_house/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_BurgledHouse[][16] = +{ + INCBIN_U16("data/tilesets/secondary/burgled_house/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/burgled_house/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/burgled_house/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/burgled_house/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/burgled_house/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/burgled_house/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/burgled_house/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/burgled_house/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/burgled_house/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/burgled_house/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/burgled_house/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/burgled_house/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/burgled_house/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/burgled_house/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/burgled_house/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/burgled_house/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_Dummy3[] = INCBIN_U32("data/tilesets/secondary/dummy_3/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_Dummy3[][16] = +{ + INCBIN_U16("data/tilesets/secondary/dummy_3/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_3/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_3/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_3/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_3/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_3/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_3/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_3/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_3/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_3/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_3/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_3/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_3/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_3/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_3/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_3/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_Dummy4[] = INCBIN_U32("data/tilesets/secondary/dummy_4/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_Dummy4[][16] = +{ + INCBIN_U16("data/tilesets/secondary/dummy_4/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_4/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_4/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_4/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_4/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_4/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_4/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_4/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_4/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_4/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_4/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_4/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_4/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_4/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_4/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/dummy_4/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_MtEmber[] = INCBIN_U32("data/tilesets/secondary/mt_ember/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_MtEmber[][16] = +{ + INCBIN_U16("data/tilesets/secondary/mt_ember/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/mt_ember/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/mt_ember/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/mt_ember/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/mt_ember/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/mt_ember/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/mt_ember/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/mt_ember/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/mt_ember/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/mt_ember/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/mt_ember/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/mt_ember/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/mt_ember/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/mt_ember/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/mt_ember/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/mt_ember/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_BerryForest[] = INCBIN_U32("data/tilesets/secondary/berry_forest/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_BerryForest[][16] = +{ + INCBIN_U16("data/tilesets/secondary/berry_forest/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/berry_forest/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/berry_forest/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/berry_forest/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/berry_forest/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/berry_forest/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/berry_forest/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/berry_forest/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/berry_forest/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/berry_forest/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/berry_forest/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/berry_forest/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/berry_forest/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/berry_forest/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/berry_forest/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/berry_forest/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_NavelRock[] = INCBIN_U32("data/tilesets/secondary/navel_rock/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_NavelRock[][16] = +{ + INCBIN_U16("data/tilesets/secondary/navel_rock/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/navel_rock/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/navel_rock/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/navel_rock/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/navel_rock/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/navel_rock/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/navel_rock/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/navel_rock/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/navel_rock/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/navel_rock/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/navel_rock/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/navel_rock/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/navel_rock/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/navel_rock/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/navel_rock/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/navel_rock/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_TanobyRuins[] = INCBIN_U32("data/tilesets/secondary/tanoby_ruins/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_TanobyRuins[][16] = +{ + INCBIN_U16("data/tilesets/secondary/tanoby_ruins/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/tanoby_ruins/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/tanoby_ruins/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/tanoby_ruins/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/tanoby_ruins/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/tanoby_ruins/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/tanoby_ruins/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/tanoby_ruins/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/tanoby_ruins/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/tanoby_ruins/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/tanoby_ruins/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/tanoby_ruins/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/tanoby_ruins/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/tanoby_ruins/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/tanoby_ruins/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/tanoby_ruins/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_SeviiIslands123[] = INCBIN_U32("data/tilesets/secondary/sevii_islands_123/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_SeviiIslands123[][16] = +{ + INCBIN_U16("data/tilesets/secondary/sevii_islands_123/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_123/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_123/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_123/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_123/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_123/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_123/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_123/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_123/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_123/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_123/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_123/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_123/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_123/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_123/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_123/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_SeviiIslands45[] = INCBIN_U32("data/tilesets/secondary/sevii_islands_45/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_SeviiIslands45[][16] = +{ + INCBIN_U16("data/tilesets/secondary/sevii_islands_45/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_45/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_45/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_45/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_45/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_45/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_45/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_45/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_45/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_45/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_45/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_45/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_45/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_45/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_45/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_45/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_SeviiIslands67[] = INCBIN_U32("data/tilesets/secondary/sevii_islands_67/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_SeviiIslands67[][16] = +{ + INCBIN_U16("data/tilesets/secondary/sevii_islands_67/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_67/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_67/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_67/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_67/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_67/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_67/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_67/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_67/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_67/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_67/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_67/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_67/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_67/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_67/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/sevii_islands_67/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_TrainerTower[] = INCBIN_U32("data/tilesets/secondary/trainer_tower/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_TrainerTower[][16] = +{ + INCBIN_U16("data/tilesets/secondary/trainer_tower/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/trainer_tower/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/trainer_tower/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/trainer_tower/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/trainer_tower/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/trainer_tower/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/trainer_tower/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/trainer_tower/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/trainer_tower/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/trainer_tower/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/trainer_tower/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/trainer_tower/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/trainer_tower/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/trainer_tower/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/trainer_tower/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/trainer_tower/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_IslandHarbor[] = INCBIN_U32("data/tilesets/secondary/island_harbor/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_IslandHarbor[][16] = +{ + INCBIN_U16("data/tilesets/secondary/island_harbor/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/island_harbor/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/island_harbor/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/island_harbor/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/island_harbor/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/island_harbor/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/island_harbor/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/island_harbor/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/island_harbor/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/island_harbor/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/island_harbor/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/island_harbor/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/island_harbor/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/island_harbor/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/island_harbor/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/island_harbor/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_PokemonLeague[] = INCBIN_U32("data/tilesets/secondary/pokemon_league/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_PokemonLeague[][16] = +{ + INCBIN_U16("data/tilesets/secondary/pokemon_league/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_league/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_league/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_league/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_league/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_league/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_league/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_league/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_league/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_league/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_league/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_league/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_league/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_league/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_league/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/pokemon_league/palettes/15.gbapal"), +}; + +const u32 gTilesetTiles_HallOfFame[] = INCBIN_U32("data/tilesets/secondary/hall_of_fame/tiles.4bpp.lz"); + +const u16 gTilesetPalettes_HallOfFame[][16] = +{ + INCBIN_U16("data/tilesets/secondary/hall_of_fame/palettes/00.gbapal"), + INCBIN_U16("data/tilesets/secondary/hall_of_fame/palettes/01.gbapal"), + INCBIN_U16("data/tilesets/secondary/hall_of_fame/palettes/02.gbapal"), + INCBIN_U16("data/tilesets/secondary/hall_of_fame/palettes/03.gbapal"), + INCBIN_U16("data/tilesets/secondary/hall_of_fame/palettes/04.gbapal"), + INCBIN_U16("data/tilesets/secondary/hall_of_fame/palettes/05.gbapal"), + INCBIN_U16("data/tilesets/secondary/hall_of_fame/palettes/06.gbapal"), + INCBIN_U16("data/tilesets/secondary/hall_of_fame/palettes/07.gbapal"), + INCBIN_U16("data/tilesets/secondary/hall_of_fame/palettes/08.gbapal"), + INCBIN_U16("data/tilesets/secondary/hall_of_fame/palettes/09.gbapal"), + INCBIN_U16("data/tilesets/secondary/hall_of_fame/palettes/10.gbapal"), + INCBIN_U16("data/tilesets/secondary/hall_of_fame/palettes/11.gbapal"), + INCBIN_U16("data/tilesets/secondary/hall_of_fame/palettes/12.gbapal"), + INCBIN_U16("data/tilesets/secondary/hall_of_fame/palettes/13.gbapal"), + INCBIN_U16("data/tilesets/secondary/hall_of_fame/palettes/14.gbapal"), + INCBIN_U16("data/tilesets/secondary/hall_of_fame/palettes/15.gbapal"), +}; diff --git a/src/data/tilesets/headers.h b/src/data/tilesets/headers.h new file mode 100644 index 000000000..2e4ddb901 --- /dev/null +++ b/src/data/tilesets/headers.h @@ -0,0 +1,748 @@ +const struct Tileset gTileset_General = +{ + .isCompressed = TRUE, + .isSecondary = FALSE, + .tiles = gTilesetTiles_General, + .palettes = gTilesetPalettes_General, + .metatiles = gMetatiles_General, + .metatileAttributes = gMetatileAttributes_General, + .callback = InitTilesetAnim_General, +}; + +const struct Tileset gTileset_PalletTown = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_PalletTown, + .palettes = gTilesetPalettes_PalletTown, + .metatiles = gMetatiles_PalletTown, + .metatileAttributes = gMetatileAttributes_PalletTown, + .callback = NULL, +}; + +const struct Tileset gTileset_ViridianCity = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_ViridianCity, + .palettes = gTilesetPalettes_ViridianCity, + .metatiles = gMetatiles_ViridianCity, + .metatileAttributes = gMetatileAttributes_ViridianCity, + .callback = NULL, +}; + +const struct Tileset gTileset_PewterCity = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_PewterCity, + .palettes = gTilesetPalettes_PewterCity, + .metatiles = gMetatiles_PewterCity, + .metatileAttributes = gMetatileAttributes_PewterCity, + .callback = NULL, +}; + +const struct Tileset gTileset_CeruleanCity = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_CeruleanCity, + .palettes = gTilesetPalettes_CeruleanCity, + .metatiles = gMetatiles_CeruleanCity, + .metatileAttributes = gMetatileAttributes_CeruleanCity, + .callback = NULL, +}; + +const struct Tileset gTileset_LavenderTown = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_LavenderTown, + .palettes = gTilesetPalettes_LavenderTown, + .metatiles = gMetatiles_LavenderTown, + .metatileAttributes = gMetatileAttributes_LavenderTown, + .callback = NULL, +}; + +const struct Tileset gTileset_VermilionCity = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_VermilionCity, + .palettes = gTilesetPalettes_VermilionCity, + .metatiles = gMetatiles_VermilionCity, + .metatileAttributes = gMetatileAttributes_VermilionCity, + .callback = NULL, +}; + +const struct Tileset gTileset_CeladonCity = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_CeladonCity, + .palettes = gTilesetPalettes_CeladonCity, + .metatiles = gMetatiles_CeladonCity, + .metatileAttributes = gMetatileAttributes_CeladonCity, + .callback = InitTilesetAnim_CeladonCity, +}; + +const struct Tileset gTileset_FuchsiaCity = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_FuchsiaCity, + .palettes = gTilesetPalettes_FuchsiaCity, + .metatiles = gMetatiles_FuchsiaCity, + .metatileAttributes = gMetatileAttributes_FuchsiaCity, + .callback = NULL, +}; + +const struct Tileset gTileset_CinnabarIsland = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_CinnabarIsland, + .palettes = gTilesetPalettes_CinnabarIsland, + .metatiles = gMetatiles_CinnabarIsland, + .metatileAttributes = gMetatileAttributes_CinnabarIsland, + .callback = NULL, +}; + +const struct Tileset gTileset_IndigoPlateau = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_IndigoPlateau, + .palettes = gTilesetPalettes_IndigoPlateau, + .metatiles = gMetatiles_IndigoPlateau, + .metatileAttributes = gMetatileAttributes_IndigoPlateau, + .callback = NULL, +}; + +const struct Tileset gTileset_SaffronCity = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_SaffronCity, + .palettes = gTilesetPalettes_SaffronCity, + .metatiles = gMetatiles_SaffronCity, + .metatileAttributes = gMetatileAttributes_SaffronCity, + .callback = NULL, +}; + +const struct Tileset gTileset_Building = +{ + .isCompressed = TRUE, + .isSecondary = FALSE, + .tiles = gTilesetTiles_Building, + .palettes = gTilesetPalettes_Building, + .metatiles = gMetatiles_Building, + .metatileAttributes = gMetatileAttributes_Building, + .callback = NULL, +}; + +const struct Tileset gTileset_Mart = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_Mart, + .palettes = gTilesetPalettes_Mart, + .metatiles = gMetatiles_Mart, + .metatileAttributes = gMetatileAttributes_Mart, + .callback = NULL, +}; + +const struct Tileset gTileset_PokemonCenter = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_PokemonCenter, + .palettes = gTilesetPalettes_PokemonCenter, + .metatiles = gMetatiles_PokemonCenter, + .metatileAttributes = gMetatileAttributes_PokemonCenter, + .callback = NULL, +}; + +const struct Tileset gTileset_Cave = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_Cave, + .palettes = gTilesetPalettes_Cave, + .metatiles = gMetatiles_Cave, + .metatileAttributes = gMetatileAttributes_Cave, + .callback = NULL, +}; + +const struct Tileset gTileset_Dummy1 = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_Dummy1, + .palettes = gTilesetPalettes_Dummy1, + .metatiles = gMetatiles_Dummy1, + .metatileAttributes = gMetatileAttributes_Dummy1, + .callback = NULL, +}; + +const struct Tileset gTileset_Museum = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_Museum, + .palettes = gTilesetPalettes_Museum, + .metatiles = gMetatiles_Museum, + .metatileAttributes = gMetatileAttributes_Museum, + .callback = NULL, +}; + +const struct Tileset gTileset_CableClub = +{ + .isCompressed = FALSE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_CableClub, + .palettes = gTilesetPalettes_CableClub, + .metatiles = gMetatiles_CableClub, + .metatileAttributes = gMetatileAttributes_CableClub, + .callback = NULL, +}; + +const struct Tileset gTileset_BikeShop = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_BikeShop, + .palettes = gTilesetPalettes_BikeShop, + .metatiles = gMetatiles_BikeShop, + .metatileAttributes = gMetatileAttributes_BikeShop, + .callback = NULL, +}; + +const struct Tileset gTileset_GenericBuilding1 = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_GenericBuilding1, + .palettes = gTilesetPalettes_GenericBuilding1, + .metatiles = gMetatiles_GenericBuilding1, + .metatileAttributes = gMetatileAttributes_GenericBuilding1, + .callback = NULL, +}; + +const struct Tileset gTileset_Lab = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_Lab, + .palettes = gTilesetPalettes_Lab, + .metatiles = gMetatiles_Lab, + .metatileAttributes = gMetatileAttributes_Lab, + .callback = NULL, +}; + +const struct Tileset gTileset_FuchsiaGym = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_FuchsiaGym, + .palettes = gTilesetPalettes_FuchsiaGym, + .metatiles = gMetatiles_FuchsiaGym, + .metatileAttributes = gMetatileAttributes_FuchsiaGym, + .callback = NULL, +}; + +const struct Tileset gTileset_ViridianGym = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_ViridianGym, + .palettes = gTilesetPalettes_ViridianGym, + .metatiles = gMetatiles_ViridianGym, + .metatileAttributes = gMetatileAttributes_ViridianGym, + .callback = NULL, +}; + +const struct Tileset gTileset_HoennBuilding = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_HoennBuilding, + .palettes = gTilesetPalettes_HoennBuilding, + .metatiles = gMetatiles_HoennBuilding, + .metatileAttributes = gMetatileAttributes_HoennBuilding, + .callback = NULL, +}; + +const struct Tileset gTileset_GameCorner = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_GameCorner, + .palettes = gTilesetPalettes_GameCorner, + .metatiles = gMetatiles_GameCorner, + .metatileAttributes = gMetatileAttributes_GameCorner, + .callback = NULL, +}; + +const struct Tileset gTileset_PewterGym = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_PewterGym, + .palettes = gTilesetPalettes_PewterGym, + .metatiles = gMetatiles_PewterGym, + .metatileAttributes = gMetatileAttributes_PewterGym, + .callback = NULL, +}; + +const struct Tileset gTileset_CeruleanGym = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_CeruleanGym, + .palettes = gTilesetPalettes_CeruleanGym, + .metatiles = gMetatiles_CeruleanGym, + .metatileAttributes = gMetatileAttributes_CeruleanGym, + .callback = NULL, +}; + +const struct Tileset gTileset_VermilionGym = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_VermilionGym, + .palettes = gTilesetPalettes_VermilionGym, + .metatiles = gMetatiles_VermilionGym, + .metatileAttributes = gMetatileAttributes_VermilionGym, + .callback = InitTilesetAnim_VermilionGym, +}; + +const struct Tileset gTileset_CeladonGym = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_CeladonGym, + .palettes = gTilesetPalettes_CeladonGym, + .metatiles = gMetatiles_CeladonGym, + .metatileAttributes = gMetatileAttributes_CeladonGym, + .callback = InitTilesetAnim_CeladonGym, +}; + +const struct Tileset gTileset_SaffronGym = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_SaffronGym, + .palettes = gTilesetPalettes_SaffronGym, + .metatiles = gMetatiles_SaffronGym, + .metatileAttributes = gMetatileAttributes_SaffronGym, + .callback = NULL, +}; + +const struct Tileset gTileset_CinnabarGym = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_CinnabarGym, + .palettes = gTilesetPalettes_CinnabarGym, + .metatiles = gMetatiles_CinnabarGym, + .metatileAttributes = gMetatileAttributes_CinnabarGym, + .callback = NULL, +}; + +const struct Tileset gTileset_SSAnne = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_SSAnne, + .palettes = gTilesetPalettes_SSAnne, + .metatiles = gMetatiles_SSAnne, + .metatileAttributes = gMetatileAttributes_SSAnne, + .callback = NULL, +}; + +const struct Tileset gTileset_Dummy2 = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_Dummy2, + .palettes = gTilesetPalettes_Dummy2, + .metatiles = gMetatiles_Dummy2, + .metatileAttributes = gMetatileAttributes_Dummy2, + .callback = NULL, +}; + +const struct Tileset gTileset_ViridianForest = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_ViridianForest, + .palettes = gTilesetPalettes_ViridianForest, + .metatiles = gMetatiles_ViridianForest, + .metatileAttributes = gMetatileAttributes_ViridianForest, + .callback = NULL, +}; + +const struct Tileset gTileset_UnusedGatehouse1 = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_UnusedGatehouse1, + .palettes = gTilesetPalettes_UnusedGatehouse1, + .metatiles = gMetatiles_UnusedGatehouse1, + .metatileAttributes = gMetatileAttributes_UnusedGatehouse1, + .callback = NULL, +}; + +const struct Tileset gTileset_RockTunnel = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_RockTunnel, + .palettes = gTilesetPalettes_RockTunnel, + .metatiles = gMetatiles_RockTunnel, + .metatileAttributes = gMetatileAttributes_RockTunnel, + .callback = NULL, +}; + +const struct Tileset gTileset_DiglettsCave = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_DiglettsCave, + .palettes = gTilesetPalettes_DiglettsCave, + .metatiles = gMetatiles_DiglettsCave, + .metatileAttributes = gMetatileAttributes_DiglettsCave, + .callback = NULL, +}; + +const struct Tileset gTileset_SeafoamIslands = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_SeafoamIslands, + .palettes = gTilesetPalettes_SeafoamIslands, + .metatiles = gMetatiles_SeafoamIslands, + .metatileAttributes = gMetatileAttributes_SeafoamIslands, + .callback = NULL, +}; + +const struct Tileset gTileset_UnusedGatehouse2 = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_UnusedGatehouse2, + .palettes = gTilesetPalettes_UnusedGatehouse2, + .metatiles = gMetatiles_UnusedGatehouse2, + .metatileAttributes = gMetatileAttributes_UnusedGatehouse2, + .callback = NULL, +}; + +const struct Tileset gTileset_CeruleanCave = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_CeruleanCave, + .palettes = gTilesetPalettes_CeruleanCave, + .metatiles = gMetatiles_CeruleanCave, + .metatileAttributes = gMetatileAttributes_CeruleanCave, + .callback = NULL, +}; + +const struct Tileset gTileset_DepartmentStore = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_DepartmentStore, + .palettes = gTilesetPalettes_DepartmentStore, + .metatiles = gMetatiles_DepartmentStore, + .metatileAttributes = gMetatileAttributes_DepartmentStore, + .callback = NULL, +}; + +const struct Tileset gTileset_GenericBuilding2 = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_GenericBuilding2, + .palettes = gTilesetPalettes_GenericBuilding2, + .metatiles = gMetatiles_GenericBuilding2, + .metatileAttributes = gMetatileAttributes_GenericBuilding2, + .callback = NULL, +}; + +const struct Tileset gTileset_PowerPlant = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_PowerPlant, + .palettes = gTilesetPalettes_PowerPlant, + .metatiles = gMetatiles_PowerPlant, + .metatileAttributes = gMetatileAttributes_PowerPlant, + .callback = NULL, +}; + +const struct Tileset gTileset_SeaCottage = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_SeaCottage, + .palettes = gTilesetPalettes_SeaCottage, + .metatiles = gMetatiles_SeaCottage, + .metatileAttributes = gMetatileAttributes_SeaCottage, + .callback = NULL, +}; + +const struct Tileset gTileset_SilphCo = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_SilphCo, + .palettes = gTilesetPalettes_SilphCo, + .metatiles = gMetatiles_SilphCo, + .metatileAttributes = gMetatileAttributes_SilphCo, + .callback = InitTilesetAnim_SilphCo, +}; + +const struct Tileset gTileset_UndergroundPath = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_UndergroundPath, + .palettes = gTilesetPalettes_UndergroundPath, + .metatiles = gMetatiles_UndergroundPath, + .metatileAttributes = gMetatileAttributes_UndergroundPath, + .callback = NULL, +}; + +const struct Tileset gTileset_PokemonTower = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_PokemonTower, + .palettes = gTilesetPalettes_PokemonTower, + .metatiles = gMetatiles_PokemonTower, + .metatileAttributes = gMetatileAttributes_PokemonTower, + .callback = NULL, +}; + +const struct Tileset gTileset_SafariZoneBuilding = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_SafariZoneBuilding, + .palettes = gTilesetPalettes_SafariZoneBuilding, + .metatiles = gMetatiles_SafariZoneBuilding, + .metatileAttributes = gMetatileAttributes_SafariZoneBuilding, + .callback = NULL, +}; + +const struct Tileset gTileset_PokemonMansion = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_PokemonMansion, + .palettes = gTilesetPalettes_PokemonMansion, + .metatiles = gMetatiles_PokemonMansion, + .metatileAttributes = gMetatileAttributes_PokemonMansion, + .callback = NULL, +}; + +const struct Tileset gTileset_RestaurantHotel = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_RestaurantHotel, + .palettes = gTilesetPalettes_RestaurantHotel, + .metatiles = gMetatiles_RestaurantHotel, + .metatileAttributes = gMetatileAttributes_RestaurantHotel, + .callback = NULL, +}; + +const struct Tileset gTileset_School = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_School, + .palettes = gTilesetPalettes_School, + .metatiles = gMetatiles_School, + .metatileAttributes = gMetatileAttributes_School, + .callback = NULL, +}; + +const struct Tileset gTileset_FanClubDaycare = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_FanClubDaycare, + .palettes = gTilesetPalettes_FanClubDaycare, + .metatiles = gMetatiles_FanClubDaycare, + .metatileAttributes = gMetatileAttributes_FanClubDaycare, + .callback = NULL, +}; + +const struct Tileset gTileset_Condominiums = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_SilphCo, + .palettes = gTilesetPalettes_SilphCo, + .metatiles = gMetatiles_Condominiums, + .metatileAttributes = gMetatileAttributes_Condominiums, + .callback = NULL, +}; + +const struct Tileset gTileset_BurgledHouse = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_BurgledHouse, + .palettes = gTilesetPalettes_BurgledHouse, + .metatiles = gMetatiles_BurgledHouse, + .metatileAttributes = gMetatileAttributes_BurgledHouse, + .callback = NULL, +}; + +const struct Tileset gTileset_Dummy3 = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_Dummy3, + .palettes = gTilesetPalettes_Dummy3, + .metatiles = gMetatiles_Dummy3, + .metatileAttributes = gMetatileAttributes_Dummy3, + .callback = NULL, +}; + +const struct Tileset gTileset_Dummy4 = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_Dummy4, + .palettes = gTilesetPalettes_Dummy4, + .metatiles = gMetatiles_Dummy4, + .metatileAttributes = gMetatileAttributes_Dummy4, + .callback = NULL, +}; + +const struct Tileset gTileset_MtEmber = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_MtEmber, + .palettes = gTilesetPalettes_MtEmber, + .metatiles = gMetatiles_MtEmber, + .metatileAttributes = gMetatileAttributes_MtEmber, + .callback = InitTilesetAnim_MtEmber, +}; + +const struct Tileset gTileset_BerryForest = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_BerryForest, + .palettes = gTilesetPalettes_BerryForest, + .metatiles = gMetatiles_BerryForest, + .metatileAttributes = gMetatileAttributes_BerryForest, + .callback = NULL, +}; + +const struct Tileset gTileset_NavelRock = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_NavelRock, + .palettes = gTilesetPalettes_NavelRock, + .metatiles = gMetatiles_NavelRock, + .metatileAttributes = gMetatileAttributes_NavelRock, + .callback = NULL, +}; + +const struct Tileset gTileset_TanobyRuins = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_TanobyRuins, + .palettes = gTilesetPalettes_TanobyRuins, + .metatiles = gMetatiles_TanobyRuins, + .metatileAttributes = gMetatileAttributes_TanobyRuins, + .callback = NULL, +}; + +const struct Tileset gTileset_SeviiIslands123 = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_SeviiIslands123, + .palettes = gTilesetPalettes_SeviiIslands123, + .metatiles = gMetatiles_SeviiIslands123, + .metatileAttributes = gMetatileAttributes_SeviiIslands123, + .callback = NULL, +}; + +const struct Tileset gTileset_SeviiIslands45 = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_SeviiIslands45, + .palettes = gTilesetPalettes_SeviiIslands45, + .metatiles = gMetatiles_SeviiIslands45, + .metatileAttributes = gMetatileAttributes_SeviiIslands45, + .callback = NULL, +}; + +const struct Tileset gTileset_SeviiIslands67 = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_SeviiIslands67, + .palettes = gTilesetPalettes_SeviiIslands67, + .metatiles = gMetatiles_SeviiIslands67, + .metatileAttributes = gMetatileAttributes_SeviiIslands67, + .callback = NULL, +}; + +const struct Tileset gTileset_TrainerTower = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_TrainerTower, + .palettes = gTilesetPalettes_TrainerTower, + .metatiles = gMetatiles_TrainerTower, + .metatileAttributes = gMetatileAttributes_TrainerTower, + .callback = NULL, +}; + +const struct Tileset gTileset_IslandHarbor = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_IslandHarbor, + .palettes = gTilesetPalettes_IslandHarbor, + .metatiles = gMetatiles_IslandHarbor, + .metatileAttributes = gMetatileAttributes_IslandHarbor, + .callback = NULL, +}; + +const struct Tileset gTileset_PokemonLeague = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_PokemonLeague, + .palettes = gTilesetPalettes_PokemonLeague, + .metatiles = gMetatiles_PokemonLeague, + .metatileAttributes = gMetatileAttributes_PokemonLeague, + .callback = NULL, +}; + +const struct Tileset gTileset_HallOfFame = +{ + .isCompressed = TRUE, + .isSecondary = TRUE, + .tiles = gTilesetTiles_HallOfFame, + .palettes = gTilesetPalettes_HallOfFame, + .metatiles = gMetatiles_HallOfFame, + .metatileAttributes = gMetatileAttributes_HallOfFame, + .callback = NULL, +}; + diff --git a/src/data/tilesets/metatiles.h b/src/data/tilesets/metatiles.h new file mode 100644 index 000000000..a9f267159 --- /dev/null +++ b/src/data/tilesets/metatiles.h @@ -0,0 +1,203 @@ +const u16 gMetatiles_General[] = INCBIN_U16("data/tilesets/primary/general/metatiles.bin"); +const u32 gMetatileAttributes_General[] = INCBIN_U32("data/tilesets/primary/general/metatile_attributes.bin"); + +const u16 gMetatiles_PalletTown[] = INCBIN_U16("data/tilesets/secondary/pallet_town/metatiles.bin"); +const u32 gMetatileAttributes_PalletTown[] = INCBIN_U32("data/tilesets/secondary/pallet_town/metatile_attributes.bin"); + +const u16 gMetatiles_ViridianCity[] = INCBIN_U16("data/tilesets/secondary/viridian_city/metatiles.bin"); +const u32 gMetatileAttributes_ViridianCity[] = INCBIN_U32("data/tilesets/secondary/viridian_city/metatile_attributes.bin"); + +const u16 gMetatiles_PewterCity[] = INCBIN_U16("data/tilesets/secondary/pewter_city/metatiles.bin"); +const u32 gMetatileAttributes_PewterCity[] = INCBIN_U32("data/tilesets/secondary/pewter_city/metatile_attributes.bin"); + +const u16 gMetatiles_CeruleanCity[] = INCBIN_U16("data/tilesets/secondary/cerulean_city/metatiles.bin"); +const u32 gMetatileAttributes_CeruleanCity[] = INCBIN_U32("data/tilesets/secondary/cerulean_city/metatile_attributes.bin"); + +const u16 gMetatiles_LavenderTown[] = INCBIN_U16("data/tilesets/secondary/lavender_town/metatiles.bin"); +const u32 gMetatileAttributes_LavenderTown[] = INCBIN_U32("data/tilesets/secondary/lavender_town/metatile_attributes.bin"); + +const u16 gMetatiles_VermilionCity[] = INCBIN_U16("data/tilesets/secondary/vermilion_city/metatiles.bin"); +const u32 gMetatileAttributes_VermilionCity[] = INCBIN_U32("data/tilesets/secondary/vermilion_city/metatile_attributes.bin"); + +const u16 gMetatiles_CeladonCity[] = INCBIN_U16("data/tilesets/secondary/celadon_city/metatiles.bin"); +const u32 gMetatileAttributes_CeladonCity[] = INCBIN_U32("data/tilesets/secondary/celadon_city/metatile_attributes.bin"); + +const u16 gMetatiles_FuchsiaCity[] = INCBIN_U16("data/tilesets/secondary/fuchsia_city/metatiles.bin"); +const u32 gMetatileAttributes_FuchsiaCity[] = INCBIN_U32("data/tilesets/secondary/fuchsia_city/metatile_attributes.bin"); + +const u16 gMetatiles_CinnabarIsland[] = INCBIN_U16("data/tilesets/secondary/cinnabar_island/metatiles.bin"); +const u32 gMetatileAttributes_CinnabarIsland[] = INCBIN_U32("data/tilesets/secondary/cinnabar_island/metatile_attributes.bin"); + +const u16 gMetatiles_IndigoPlateau[] = INCBIN_U16("data/tilesets/secondary/indigo_plateau/metatiles.bin"); +const u32 gMetatileAttributes_IndigoPlateau[] = INCBIN_U32("data/tilesets/secondary/indigo_plateau/metatile_attributes.bin"); + +const u16 gMetatiles_SaffronCity[] = INCBIN_U16("data/tilesets/secondary/saffron_city/metatiles.bin"); +const u32 gMetatileAttributes_SaffronCity[] = INCBIN_U32("data/tilesets/secondary/saffron_city/metatile_attributes.bin"); + +const u16 gMetatiles_PewterGym[] = INCBIN_U16("data/tilesets/secondary/pewter_gym/metatiles.bin"); +const u32 gMetatileAttributes_PewterGym[] = INCBIN_U32("data/tilesets/secondary/pewter_gym/metatile_attributes.bin"); + +const u16 gMetatiles_CeruleanGym[] = INCBIN_U16("data/tilesets/secondary/cerulean_gym/metatiles.bin"); +const u32 gMetatileAttributes_CeruleanGym[] = INCBIN_U32("data/tilesets/secondary/cerulean_gym/metatile_attributes.bin"); + +const u16 gMetatiles_VermilionGym[] = INCBIN_U16("data/tilesets/secondary/vermilion_gym/metatiles.bin"); +const u32 gMetatileAttributes_VermilionGym[] = INCBIN_U32("data/tilesets/secondary/vermilion_gym/metatile_attributes.bin"); + +const u16 gMetatiles_CeladonGym[] = INCBIN_U16("data/tilesets/secondary/celadon_gym/metatiles.bin"); +const u32 gMetatileAttributes_CeladonGym[] = INCBIN_U32("data/tilesets/secondary/celadon_gym/metatile_attributes.bin"); + +const u16 gMetatiles_FuchsiaGym[] = INCBIN_U16("data/tilesets/secondary/fuchsia_gym/metatiles.bin"); +const u32 gMetatileAttributes_FuchsiaGym[] = INCBIN_U32("data/tilesets/secondary/fuchsia_gym/metatile_attributes.bin"); + +const u16 gMetatiles_SaffronGym[] = INCBIN_U16("data/tilesets/secondary/saffron_gym/metatiles.bin"); +const u32 gMetatileAttributes_SaffronGym[] = INCBIN_U32("data/tilesets/secondary/saffron_gym/metatile_attributes.bin"); + +const u16 gMetatiles_CinnabarGym[] = INCBIN_U16("data/tilesets/secondary/cinnabar_gym/metatiles.bin"); +const u32 gMetatileAttributes_CinnabarGym[] = INCBIN_U32("data/tilesets/secondary/cinnabar_gym/metatile_attributes.bin"); + +const u16 gMetatiles_ViridianGym[] = INCBIN_U16("data/tilesets/secondary/viridian_gym/metatiles.bin"); +const u32 gMetatileAttributes_ViridianGym[] = INCBIN_U32("data/tilesets/secondary/viridian_gym/metatile_attributes.bin"); + +const u16 gMetatiles_Building[] = INCBIN_U16("data/tilesets/primary/building/metatiles.bin"); +const u32 gMetatileAttributes_Building[] = INCBIN_U32("data/tilesets/primary/building/metatile_attributes.bin"); + +const u16 gMetatiles_Dummy1[] = INCBIN_U16("data/tilesets/secondary/dummy_1/metatiles.bin"); +const u32 gMetatileAttributes_Dummy1[] = INCBIN_U32("data/tilesets/secondary/dummy_1/metatile_attributes.bin"); + +const u16 gMetatiles_HoennBuilding[] = INCBIN_U16("data/tilesets/secondary/hoenn_building/metatiles.bin"); +const u32 gMetatileAttributes_HoennBuilding[] = INCBIN_U32("data/tilesets/secondary/hoenn_building/metatile_attributes.bin"); + +const u16 gMetatiles_BikeShop[] = INCBIN_U16("data/tilesets/secondary/bike_shop/metatiles.bin"); +const u32 gMetatileAttributes_BikeShop[] = INCBIN_U32("data/tilesets/secondary/bike_shop/metatile_attributes.bin"); + +const u16 gMetatiles_Mart[] = INCBIN_U16("data/tilesets/secondary/mart/metatiles.bin"); +const u32 gMetatileAttributes_Mart[] = INCBIN_U32("data/tilesets/secondary/mart/metatile_attributes.bin"); + +const u16 gMetatiles_PokemonCenter[] = INCBIN_U16("data/tilesets/secondary/pokemon_center/metatiles.bin"); +const u32 gMetatileAttributes_PokemonCenter[] = INCBIN_U32("data/tilesets/secondary/pokemon_center/metatile_attributes.bin"); + +const u16 gMetatiles_GenericBuilding1[] = INCBIN_U16("data/tilesets/secondary/generic_building_1/metatiles.bin"); +const u32 gMetatileAttributes_GenericBuilding1[] = INCBIN_U32("data/tilesets/secondary/generic_building_1/metatile_attributes.bin"); + +const u16 gMetatiles_Cave[] = INCBIN_U16("data/tilesets/secondary/cave/metatiles.bin"); +const u32 gMetatileAttributes_Cave[] = INCBIN_U32("data/tilesets/secondary/cave/metatile_attributes.bin"); + +const u16 gMetatiles_GameCorner[] = INCBIN_U16("data/tilesets/secondary/game_corner/metatiles.bin"); +const u32 gMetatileAttributes_GameCorner[] = INCBIN_U32("data/tilesets/secondary/game_corner/metatile_attributes.bin"); + +const u16 gMetatiles_Lab[] = INCBIN_U16("data/tilesets/secondary/lab/metatiles.bin"); +const u32 gMetatileAttributes_Lab[] = INCBIN_U32("data/tilesets/secondary/lab/metatile_attributes.bin"); + +const u16 gMetatiles_SSAnne[] = INCBIN_U16("data/tilesets/secondary/ss_anne/metatiles.bin"); +const u32 gMetatileAttributes_SSAnne[] = INCBIN_U32("data/tilesets/secondary/ss_anne/metatile_attributes.bin"); + +const u16 gMetatiles_Dummy2[] = INCBIN_U16("data/tilesets/secondary/dummy_2/metatiles.bin"); +const u32 gMetatileAttributes_Dummy2[] = INCBIN_U32("data/tilesets/secondary/dummy_2/metatile_attributes.bin"); + +const u16 gMetatiles_ViridianForest[] = INCBIN_U16("data/tilesets/secondary/viridian_forest/metatiles.bin"); +const u32 gMetatileAttributes_ViridianForest[] = INCBIN_U32("data/tilesets/secondary/viridian_forest/metatile_attributes.bin"); + +const u16 gMetatiles_UnusedGatehouse1[] = INCBIN_U16("data/tilesets/secondary/unused_gatehouse_1/metatiles.bin"); +const u32 gMetatileAttributes_UnusedGatehouse1[] = INCBIN_U32("data/tilesets/secondary/unused_gatehouse_1/metatile_attributes.bin"); + +const u16 gMetatiles_RockTunnel[] = INCBIN_U16("data/tilesets/secondary/rock_tunnel/metatiles.bin"); +const u32 gMetatileAttributes_RockTunnel[] = INCBIN_U32("data/tilesets/secondary/rock_tunnel/metatile_attributes.bin"); + +const u16 gMetatiles_DiglettsCave[] = INCBIN_U16("data/tilesets/secondary/digletts_cave/metatiles.bin"); +const u32 gMetatileAttributes_DiglettsCave[] = INCBIN_U32("data/tilesets/secondary/digletts_cave/metatile_attributes.bin"); + +const u16 gMetatiles_SeafoamIslands[] = INCBIN_U16("data/tilesets/secondary/seafoam_islands/metatiles.bin"); +const u32 gMetatileAttributes_SeafoamIslands[] = INCBIN_U32("data/tilesets/secondary/seafoam_islands/metatile_attributes.bin"); + +const u16 gMetatiles_UnusedGatehouse2[] = INCBIN_U16("data/tilesets/secondary/unused_gatehouse_2/metatiles.bin"); +const u32 gMetatileAttributes_UnusedGatehouse2[] = INCBIN_U32("data/tilesets/secondary/unused_gatehouse_2/metatile_attributes.bin"); + +const u16 gMetatiles_CeruleanCave[] = INCBIN_U16("data/tilesets/secondary/cerulean_cave/metatiles.bin"); +const u32 gMetatileAttributes_CeruleanCave[] = INCBIN_U32("data/tilesets/secondary/cerulean_cave/metatile_attributes.bin"); + +const u16 gMetatiles_DepartmentStore[] = INCBIN_U16("data/tilesets/secondary/department_store/metatiles.bin"); +const u32 gMetatileAttributes_DepartmentStore[] = INCBIN_U32("data/tilesets/secondary/department_store/metatile_attributes.bin"); + +const u16 gMetatiles_GenericBuilding2[] = INCBIN_U16("data/tilesets/secondary/generic_building_2/metatiles.bin"); +const u32 gMetatileAttributes_GenericBuilding2[] = INCBIN_U32("data/tilesets/secondary/generic_building_2/metatile_attributes.bin"); + +const u16 gMetatiles_PowerPlant[] = INCBIN_U16("data/tilesets/secondary/power_plant/metatiles.bin"); +const u32 gMetatileAttributes_PowerPlant[] = INCBIN_U32("data/tilesets/secondary/power_plant/metatile_attributes.bin"); + +const u16 gMetatiles_SeaCottage[] = INCBIN_U16("data/tilesets/secondary/sea_cottage/metatiles.bin"); +const u32 gMetatileAttributes_SeaCottage[] = INCBIN_U32("data/tilesets/secondary/sea_cottage/metatile_attributes.bin"); + +const u16 gMetatiles_SilphCo[] = INCBIN_U16("data/tilesets/secondary/silph_co/metatiles.bin"); +const u32 gMetatileAttributes_SilphCo[] = INCBIN_U32("data/tilesets/secondary/silph_co/metatile_attributes.bin"); + +const u16 gMetatiles_UndergroundPath[] = INCBIN_U16("data/tilesets/secondary/underground_path/metatiles.bin"); +const u32 gMetatileAttributes_UndergroundPath[] = INCBIN_U32("data/tilesets/secondary/underground_path/metatile_attributes.bin"); + +const u16 gMetatiles_PokemonTower[] = INCBIN_U16("data/tilesets/secondary/pokemon_tower/metatiles.bin"); +const u32 gMetatileAttributes_PokemonTower[] = INCBIN_U32("data/tilesets/secondary/pokemon_tower/metatile_attributes.bin"); + +const u16 gMetatiles_SafariZoneBuilding[] = INCBIN_U16("data/tilesets/secondary/safari_zone_building/metatiles.bin"); +const u32 gMetatileAttributes_SafariZoneBuilding[] = INCBIN_U32("data/tilesets/secondary/safari_zone_building/metatile_attributes.bin"); + +const u16 gMetatiles_PokemonMansion[] = INCBIN_U16("data/tilesets/secondary/pokemon_mansion/metatiles.bin"); +const u32 gMetatileAttributes_PokemonMansion[] = INCBIN_U32("data/tilesets/secondary/pokemon_mansion/metatile_attributes.bin"); + +const u16 gMetatiles_Museum[] = INCBIN_U16("data/tilesets/secondary/museum/metatiles.bin"); +const u32 gMetatileAttributes_Museum[] = INCBIN_U32("data/tilesets/secondary/museum/metatile_attributes.bin"); + +const u16 gMetatiles_CableClub[] = INCBIN_U16("data/tilesets/secondary/cable_club/metatiles.bin"); +const u32 gMetatileAttributes_CableClub[] = INCBIN_U32("data/tilesets/secondary/cable_club/metatile_attributes.bin"); + +const u16 gMetatiles_RestaurantHotel[] = INCBIN_U16("data/tilesets/secondary/restaurant_hotel/metatiles.bin"); +const u32 gMetatileAttributes_RestaurantHotel[] = INCBIN_U32("data/tilesets/secondary/restaurant_hotel/metatile_attributes.bin"); + +const u16 gMetatiles_School[] = INCBIN_U16("data/tilesets/secondary/school/metatiles.bin"); +const u32 gMetatileAttributes_School[] = INCBIN_U32("data/tilesets/secondary/school/metatile_attributes.bin"); + +const u16 gMetatiles_FanClubDaycare[] = INCBIN_U16("data/tilesets/secondary/fan_club_daycare/metatiles.bin"); +const u32 gMetatileAttributes_FanClubDaycare[] = INCBIN_U32("data/tilesets/secondary/fan_club_daycare/metatile_attributes.bin"); + +const u16 gMetatiles_Condominiums[] = INCBIN_U16("data/tilesets/secondary/condominiums/metatiles.bin"); +const u32 gMetatileAttributes_Condominiums[] = INCBIN_U32("data/tilesets/secondary/condominiums/metatile_attributes.bin"); + +const u16 gMetatiles_BurgledHouse[] = INCBIN_U16("data/tilesets/secondary/burgled_house/metatiles.bin"); +const u32 gMetatileAttributes_BurgledHouse[] = INCBIN_U32("data/tilesets/secondary/burgled_house/metatile_attributes.bin"); + +const u16 gMetatiles_Dummy3[] = INCBIN_U16("data/tilesets/secondary/dummy_3/metatiles.bin"); +const u32 gMetatileAttributes_Dummy3[] = INCBIN_U32("data/tilesets/secondary/dummy_3/metatile_attributes.bin"); + +const u16 gMetatiles_Dummy4[] = INCBIN_U16("data/tilesets/secondary/dummy_4/metatiles.bin"); +const u32 gMetatileAttributes_Dummy4[] = INCBIN_U32("data/tilesets/secondary/dummy_4/metatile_attributes.bin"); + +const u16 gMetatiles_MtEmber[] = INCBIN_U16("data/tilesets/secondary/mt_ember/metatiles.bin"); +const u32 gMetatileAttributes_MtEmber[] = INCBIN_U32("data/tilesets/secondary/mt_ember/metatile_attributes.bin"); + +const u16 gMetatiles_BerryForest[] = INCBIN_U16("data/tilesets/secondary/berry_forest/metatiles.bin"); +const u32 gMetatileAttributes_BerryForest[] = INCBIN_U32("data/tilesets/secondary/berry_forest/metatile_attributes.bin"); + +const u16 gMetatiles_NavelRock[] = INCBIN_U16("data/tilesets/secondary/navel_rock/metatiles.bin"); +const u32 gMetatileAttributes_NavelRock[] = INCBIN_U32("data/tilesets/secondary/navel_rock/metatile_attributes.bin"); + +const u16 gMetatiles_TanobyRuins[] = INCBIN_U16("data/tilesets/secondary/tanoby_ruins/metatiles.bin"); +const u32 gMetatileAttributes_TanobyRuins[] = INCBIN_U32("data/tilesets/secondary/tanoby_ruins/metatile_attributes.bin"); + +const u16 gMetatiles_SeviiIslands123[] = INCBIN_U16("data/tilesets/secondary/sevii_islands_123/metatiles.bin"); +const u32 gMetatileAttributes_SeviiIslands123[] = INCBIN_U32("data/tilesets/secondary/sevii_islands_123/metatile_attributes.bin"); + +const u16 gMetatiles_SeviiIslands45[] = INCBIN_U16("data/tilesets/secondary/sevii_islands_45/metatiles.bin"); +const u32 gMetatileAttributes_SeviiIslands45[] = INCBIN_U32("data/tilesets/secondary/sevii_islands_45/metatile_attributes.bin"); + +const u16 gMetatiles_SeviiIslands67[] = INCBIN_U16("data/tilesets/secondary/sevii_islands_67/metatiles.bin"); +const u32 gMetatileAttributes_SeviiIslands67[] = INCBIN_U32("data/tilesets/secondary/sevii_islands_67/metatile_attributes.bin"); + +const u16 gMetatiles_TrainerTower[] = INCBIN_U16("data/tilesets/secondary/trainer_tower/metatiles.bin"); +const u32 gMetatileAttributes_TrainerTower[] = INCBIN_U32("data/tilesets/secondary/trainer_tower/metatile_attributes.bin"); + +const u16 gMetatiles_IslandHarbor[] = INCBIN_U16("data/tilesets/secondary/island_harbor/metatiles.bin"); +const u32 gMetatileAttributes_IslandHarbor[] = INCBIN_U32("data/tilesets/secondary/island_harbor/metatile_attributes.bin"); + +const u16 gMetatiles_PokemonLeague[] = INCBIN_U16("data/tilesets/secondary/pokemon_league/metatiles.bin"); +const u32 gMetatileAttributes_PokemonLeague[] = INCBIN_U32("data/tilesets/secondary/pokemon_league/metatile_attributes.bin"); + +const u16 gMetatiles_HallOfFame[] = INCBIN_U16("data/tilesets/secondary/hall_of_fame/metatiles.bin"); +const u32 gMetatileAttributes_HallOfFame[] = INCBIN_U32("data/tilesets/secondary/hall_of_fame/metatile_attributes.bin"); diff --git a/src/data/trainer_graphics/back_pic_tables.h b/src/data/trainer_graphics/back_pic_tables.h index 4d0c129a8..116dd02de 100644 --- a/src/data/trainer_graphics/back_pic_tables.h +++ b/src/data/trainer_graphics/back_pic_tables.h @@ -1,10 +1,10 @@ const struct MonCoords gTrainerBackPicCoords[] = { - {.size = 8, .y_offset = 5}, - {.size = 8, .y_offset = 5}, - {.size = 8, .y_offset = 4}, - {.size = 8, .y_offset = 4}, - {.size = 8, .y_offset = 4}, - {.size = 8, .y_offset = 4} + [TRAINER_BACK_PIC_RED] = {.size = 8, .y_offset = 5}, + [TRAINER_BACK_PIC_LEAF] = {.size = 8, .y_offset = 5}, + [TRAINER_BACK_PIC_RUBY_SAPPHIRE_BRENDAN] = {.size = 8, .y_offset = 4}, + [TRAINER_BACK_PIC_RUBY_SAPPHIRE_MAY] = {.size = 8, .y_offset = 4}, + [TRAINER_BACK_PIC_POKEDUDE] = {.size = 8, .y_offset = 4}, + [TRAINER_BACK_PIC_OLD_MAN] = {.size = 8, .y_offset = 4} }; const struct CompressedSpriteSheet gTrainerBackPicTable[] = { diff --git a/src/data/wild_encounters.json.txt b/src/data/wild_encounters.json.txt index b63f6ee47..a972e88b1 100644 --- a/src/data/wild_encounters.json.txt +++ b/src/data/wild_encounters.json.txt @@ -24,8 +24,11 @@ ## for encounter in wild_encounter_group.encounters -{% if contains(encounter.base_label, "LeafGreen") %}#ifdef LEAFGREEN -{% else if contains(encounter.base_label, "FireRed") %}#ifdef FIRERED{% endif %} +{% if contains(encounter.base_label, "LeafGreen") %} +#ifdef LEAFGREEN +{% else if contains(encounter.base_label, "FireRed") %} +#ifdef FIRERED +{% endif %} {% if existsIn(encounter, "land_mons") %} const struct WildPokemon {{ encounter.base_label }}_LandMons[] = { @@ -66,15 +69,20 @@ const struct WildPokemon {{ encounter.base_label }}_FishingMons[] = const struct WildPokemonInfo {{ encounter.base_label }}_FishingMonsInfo = { {{encounter.fishing_mons.encounter_rate}}, {{ encounter.base_label }}_FishingMons }; {% endif %} -{% if contains(encounter.base_label, "FireRed") or contains(encounter.base_label, "LeafGreen") %}#endif{% endif %} +{% if contains(encounter.base_label, "FireRed") or contains(encounter.base_label, "LeafGreen") %} +#endif +{% endif %} ## endfor const struct WildPokemonHeader {{ wild_encounter_group.label }}[] = { ## for encounter in wild_encounter_group.encounters -{% if contains(encounter.base_label, "LeafGreen") %}#ifdef LEAFGREEN -{% else if contains(encounter.base_label, "FireRed") %}#ifdef FIRERED{% endif %} +{% if contains(encounter.base_label, "LeafGreen") %} +#ifdef LEAFGREEN +{% else if contains(encounter.base_label, "FireRed") %} +#ifdef FIRERED +{% endif %} { .mapGroup = {% if wild_encounter_group.for_maps %}MAP_GROUP({{ removePrefix(encounter.map, "MAP_") }}){% else %}0{% endif %}, .mapNum = {% if wild_encounter_group.for_maps %}MAP_NUM({{ removePrefix(encounter.map, "MAP_") }}){% else %}{{ loop.index1 }}{% endif %}, @@ -83,7 +91,9 @@ const struct WildPokemonHeader {{ wild_encounter_group.label }}[] = .rockSmashMonsInfo = {% if existsIn(encounter, "rock_smash_mons") %}&{{ encounter.base_label }}_RockSmashMonsInfo{% else %}NULL{% endif %}, .fishingMonsInfo = {% if existsIn(encounter, "fishing_mons") %}&{{ encounter.base_label }}_FishingMonsInfo{% else %}NULL{% endif %}, }, -{% if contains(encounter.base_label, "FireRed") or contains(encounter.base_label, "LeafGreen") %}#endif{% endif %} +{% if contains(encounter.base_label, "FireRed") or contains(encounter.base_label, "LeafGreen") %} +#endif +{% endif %} ## endfor { .mapGroup = MAP_GROUP(UNDEFINED), diff --git a/src/daycare.c b/src/daycare.c index f45aaceff..d7d2a8caa 100644 --- a/src/daycare.c +++ b/src/daycare.c @@ -141,7 +141,7 @@ static const u8 sEggShardTiles[] = INCBIN_U8("graphics/misc/egg_shard.4bpp"); static const struct OamData sOamData_EggHatch = { .y = 0, - .affineMode = 0, + .affineMode = ST_OAM_AFFINE_OFF, .objMode = 0, .mosaic = FALSE, .bpp = 0, @@ -221,7 +221,7 @@ static const struct SpriteTemplate sSpriteTemplate_EggHatch = static const struct OamData sOamData_EggShard = { .y = 0, - .affineMode = 0, + .affineMode = ST_OAM_AFFINE_OFF, .objMode = 0, .mosaic = FALSE, .bpp = 0, @@ -1515,7 +1515,7 @@ static void Task_HandleDaycareLevelMenuInput(u8 taskId) ClearStdWindowAndFrame(gTasks[taskId].tWindowId, TRUE); RemoveWindow(gTasks[taskId].tWindowId); DestroyTask(taskId); - EnableBothScriptContexts(); + ScriptContext_Enable(); } else if (gMain.newKeys & B_BUTTON) { @@ -1524,7 +1524,7 @@ static void Task_HandleDaycareLevelMenuInput(u8 taskId) ClearStdWindowAndFrame(gTasks[taskId].tWindowId, TRUE); RemoveWindow(gTasks[taskId].tWindowId); DestroyTask(taskId); - EnableBothScriptContexts(); + ScriptContext_Enable(); } } @@ -1756,7 +1756,7 @@ static void VBlankCB_EggHatch(void) void EggHatch(void) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); CreateTask(Task_EggHatch, 10); BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, 0); HelpSystem_Disable(); @@ -1956,7 +1956,7 @@ static void CB2_EggHatch_1(void) case 9: if (!IsTextPrinterActive(sEggHatchData->windowId)) { - LoadUserWindowBorderGfx(sEggHatchData->windowId, 0x140, 0xE0); + LoadUserWindowGfx2(sEggHatchData->windowId, 0x140, 0xE0); CreateYesNoMenu(&sYesNoWinTemplate, FONT_3, 0, 2, 0x140, 0xE, 0); sEggHatchData->CB2_state++; } diff --git a/src/decompress.c b/src/decompress.c index ea61482d0..f4740f917 100644 --- a/src/decompress.c +++ b/src/decompress.c @@ -116,7 +116,7 @@ static void Unused_LZDecompressWramIndirect(const void **src, void *dest) LZ77UnCompWram(*src, dest); } -static void sub_800EDDC(s32 object_size, s32 object_count, u8 *src_tiles, u8 *dest_tiles) +static void StitchObjectsOn8x8Canvas(s32 object_size, s32 object_count, u8 *src_tiles, u8 *dest_tiles) { /* This function appears to emulate behaviour found in the GB(C) versions regarding how the Pokemon images diff --git a/src/digit_obj_util.c b/src/digit_obj_util.c index 3f7128513..d012896bd 100644 --- a/src/digit_obj_util.c +++ b/src/digit_obj_util.c @@ -64,9 +64,9 @@ static const u8 sTilesPerImage[4][4] = } }; -const u16 gUnknown_8479668[] = INCBIN_U16("graphics/misc/unk_8479688.gbapal"); -const u32 gUnknown_8479688[] = INCBIN_U32("graphics/misc/unk_8479688.4bpp.lz"); -const u32 gUnknown_8479748[] = INCBIN_U32("graphics/misc/unk_8479748.4bpp.lz"); +const u16 gMinigameDigits_Pal[] = INCBIN_U16("graphics/misc/minigame_digits.gbapal"); +const u32 gMinigameDigits_Gfx[] = INCBIN_U32("graphics/misc/minigame_digits.4bpp.lz"); +static const u32 sUnusedMinigameDigits_Gfx[] = INCBIN_U32("graphics/misc/minigame_digits_unused.4bpp.lz"); // code bool32 DigitObjUtil_Init(u32 count) diff --git a/src/diploma.c b/src/diploma.c index 21125d257..3edd1836a 100644 --- a/src/diploma.c +++ b/src/diploma.c @@ -12,40 +12,54 @@ struct Diploma { - u8 state; - u8 gfxStep; - u8 callbackStep; + u8 mainState; + u8 gfxState; + u8 initState; u16 tilemapBuffer[0x800]; }; -static EWRAM_DATA struct Diploma *gDiploma = NULL; +enum { + WIN_TEXT, + WIN_COUNT +}; -static void DiplomaBgInit(void); +enum { + BG_TEXT, + BG_DIPLOMA, +}; + +static EWRAM_DATA struct Diploma *sDiploma = NULL; + +static void DiplomaReset(void); static void DiplomaPrintText(void); -static u8 DiplomaLoadGfx(void); -static void DiplomaVblankHandler(void); +static bool8 DiplomaLoadGfx(void); +static void DiplomaInitScreen(void); static void CB2_Diploma(void); -static void Task_WaitForExit(u8); +static void Task_HandleDiplomaInput(u8); static void Task_DiplomaInit(u8); -static void Task_DiplomaReturnToOverworld(u8); +static void Task_DiplomaExit(u8); static const u32 sDiplomaGfx[] = INCBIN_U32("graphics/diploma/diploma.4bpp.lz"); static const u32 sDiplomaTilemap[] = INCBIN_U32("graphics/diploma/diploma.bin.lz"); static const u16 sDiplomaPal[] = INCBIN_U16("graphics/diploma/diploma.gbapal"); -static const u8 gUnknown_8415994[] = _("{HIGHLIGHT TRANSPARENT}プレイヤー"); -static const u8 gUnknown_841599D[] = _("{HIGHLIGHT TRANSPARENT}さま"); -static const u8 gUnknown_84159A3[] = _("{HIGHLIGHT TRANSPARENT}ホウエン"); -static const u8 gUnknown_84159AB[] = _("{HIGHLIGHT TRANSPARENT}ぜんこく"); -static const u8 gUnknown_84159B3[] = _("{HIGHLIGHT TRANSPARENT}     ポケモンずかんを\nみごと かんせい させた\nいだいなこうせきを たたえ\nここに しょうめい します"); -static const u8 gUnknown_84159ED[] = _("{COLOR DARK_GRAY}{HIGHLIGHT TRANSPARENT}ゲームフリーク"); -static const u8 gUnknown_84159FB[] = _("{COLOR DARK_GRAY}{HIGHLIGHT TRANSPARENT}"); +// Leftover text from RSE (some of which is also unused there) +static const u8 sText_Player[] = _("{HIGHLIGHT TRANSPARENT}プレイヤー"); +static const u8 sText_Sama[] = _("{HIGHLIGHT TRANSPARENT}さま"); +static const u8 sText_Hoenn[] = _("{HIGHLIGHT TRANSPARENT}ホウエン"); +static const u8 sText_National[] = _("{HIGHLIGHT TRANSPARENT}ぜんこく"); +static const u8 sText_CertifiesPokedexComplete[] = _("{HIGHLIGHT TRANSPARENT}     ポケモンずかんを\n" + "みごと かんせい させた\n" + "いだいなこうせきを たたえ\n" + "ここに しょうめい します"); +static const u8 sText_GameFreak[] = _("{COLOR DARK_GRAY}{HIGHLIGHT TRANSPARENT}ゲームフリーク"); +static const u8 sText_Empty[] = _("{COLOR DARK_GRAY}{HIGHLIGHT TRANSPARENT}"); -static const ALIGNED(4) u8 gUnknown_8415A04[3] = {0, 2, 3}; +static const ALIGNED(4) u8 sTextColors[3] = {0, 2, 3}; -static const struct BgTemplate gUnknown_8415A08[] = { +static const struct BgTemplate sBgTemplates[] = { { - .bg = 0, + .bg = BG_TEXT, .charBaseIndex = 0, .mapBaseIndex = 31, .screenSize = 0, @@ -53,7 +67,7 @@ static const struct BgTemplate gUnknown_8415A08[] = { .priority = 0, .baseTile = 1, }, { - .bg = 1, + .bg = BG_DIPLOMA, .charBaseIndex = 1, .mapBaseIndex = 29, .screenSize = 1, @@ -63,19 +77,20 @@ static const struct BgTemplate gUnknown_8415A08[] = { } }; -static const struct WindowTemplate gUnknown_8415A10[] = { - { - .bg = 0, +static const struct WindowTemplate sWindowTemplates[WIN_COUNT + 1] = { + [WIN_TEXT] = { + .bg = BG_TEXT, .tilemapLeft = 0, .tilemapTop = 2, .width = 29, .height = 16, .paletteNum = 15, .baseBlock = 0x000 - }, DUMMY_WIN_TEMPLATE + }, + [WIN_COUNT] = DUMMY_WIN_TEMPLATE }; -static void VCBC_DiplomaOam(void) +static void VBlankCB_Diploma(void) { LoadOam(); ProcessSpriteCopyRequests(); @@ -84,11 +99,11 @@ static void VCBC_DiplomaOam(void) void CB2_ShowDiploma(void) { - gDiploma = AllocZeroed(sizeof(*gDiploma)); - gDiploma->state = 0; - gDiploma->gfxStep = 0; - gDiploma->callbackStep = 0; - DiplomaBgInit(); + sDiploma = AllocZeroed(sizeof(*sDiploma)); + sDiploma->mainState = 0; + sDiploma->gfxState = 0; + sDiploma->initState = 0; + DiplomaReset(); CreateTask(Task_DiplomaInit, 0); SetMainCallback2(CB2_Diploma); } @@ -103,91 +118,81 @@ static void CB2_Diploma(void) static void Task_DiplomaInit(u8 taskId) { - switch (gDiploma->callbackStep) + switch (sDiploma->initState) { case 0: SetVBlankCallback(NULL); break; case 1: - DiplomaVblankHandler(); + DiplomaInitScreen(); break; case 2: if (!DiplomaLoadGfx()) - { return; - } break; case 3: - CopyToBgTilemapBuffer(1, sDiplomaTilemap, 0, 0); + CopyToBgTilemapBuffer(BG_DIPLOMA, sDiplomaTilemap, 0, 0); break; case 4: if (HasAllMons()) - { SetGpuReg(REG_OFFSET_BG1HOFS, 0x100); - } else - { SetGpuReg(REG_OFFSET_BG1HOFS, 0); - } break; case 5: DiplomaPrintText(); break; case 6: - CopyBgTilemapBufferToVram(0); - CopyBgTilemapBufferToVram(1); + CopyBgTilemapBufferToVram(BG_TEXT); + CopyBgTilemapBufferToVram(BG_DIPLOMA); break; case 7: BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_BLACK); break; case 8: - SetVBlankCallback(VCBC_DiplomaOam); + SetVBlankCallback(VBlankCB_Diploma); break; default: if (gPaletteFade.active) - { break; - } PlayFanfareByFanfareNum(FANFARE_OBTAIN_BADGE); - gTasks[taskId].func = Task_WaitForExit; + gTasks[taskId].func = Task_HandleDiplomaInput; } - gDiploma->callbackStep++; + sDiploma->initState++; } -static void Task_WaitForExit(u8 taskId) +static void Task_HandleDiplomaInput(u8 taskId) { - switch (gDiploma->state) + switch (sDiploma->mainState) { case 0: - if (WaitFanfare(0)) - { - gDiploma->state++; - } + if (WaitFanfare(FALSE)) + sDiploma->mainState++; break; case 1: if (JOY_NEW(A_BUTTON)) { BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); - gDiploma->state++; + sDiploma->mainState++; } break; case 2: - Task_DiplomaReturnToOverworld(taskId); + Task_DiplomaExit(taskId); break; } } -static void Task_DiplomaReturnToOverworld(u8 taskId) +static void Task_DiplomaExit(u8 taskId) { if (gPaletteFade.active) return; DestroyTask(taskId); FreeAllWindowBuffers(); - FREE_AND_SET_NULL(gDiploma); + FREE_AND_SET_NULL(sDiploma); SetMainCallback2(CB2_ReturnToFieldFromDiploma); } -static void DiplomaBgInit(void) +static void DiplomaReset(void) { ResetSpriteData(); ResetPaletteFade(); @@ -196,7 +201,7 @@ static void DiplomaBgInit(void) ScanlineEffect_Stop(); } -static void DiplomaVblankHandler(void) +static void DiplomaInitScreen(void) { void *vram = (void *)VRAM; DmaClearLarge16(3, vram, VRAM_SIZE, 0x1000); @@ -204,71 +209,67 @@ static void DiplomaVblankHandler(void) DmaClear16(3, (void *)PLTT, PLTT_SIZE); SetGpuReg(REG_OFFSET_DISPCNT, 0); ResetBgsAndClearDma3BusyFlags(0); - InitBgsFromTemplates(0, gUnknown_8415A08, 2); - ChangeBgX(0, 0, 0); - ChangeBgY(0, 0, 0); - ChangeBgX(1, 0, 0); - ChangeBgY(1, 0, 0); - ChangeBgX(2, 0, 0); - ChangeBgY(2, 0, 0); - ChangeBgX(3, 0, 0); - ChangeBgY(3, 0, 0); - InitWindows(gUnknown_8415A10); + InitBgsFromTemplates(0, sBgTemplates, ARRAY_COUNT(sBgTemplates)); + ChangeBgX(0, 0, BG_COORD_SET); + ChangeBgY(0, 0, BG_COORD_SET); + ChangeBgX(1, 0, BG_COORD_SET); + ChangeBgY(1, 0, BG_COORD_SET); + ChangeBgX(2, 0, BG_COORD_SET); + ChangeBgY(2, 0, BG_COORD_SET); + ChangeBgX(3, 0, BG_COORD_SET); + ChangeBgY(3, 0, BG_COORD_SET); + InitWindows(sWindowTemplates); DeactivateAllTextPrinters(); SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_1D_MAP | DISPCNT_OBJ_ON); - SetBgTilemapBuffer(1, gDiploma->tilemapBuffer); - ShowBg(0); - ShowBg(1); - FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 30, 20); - FillBgTilemapBufferRect_Palette0(1, 0, 0, 0, 30, 20); + SetBgTilemapBuffer(BG_DIPLOMA, sDiploma->tilemapBuffer); + ShowBg(BG_TEXT); + ShowBg(BG_DIPLOMA); + FillBgTilemapBufferRect_Palette0(BG_TEXT, 0, 0, 0, 30, 20); + FillBgTilemapBufferRect_Palette0(BG_DIPLOMA, 0, 0, 0, 30, 20); } -static u8 DiplomaLoadGfx(void) +static bool8 DiplomaLoadGfx(void) { - switch (gDiploma->gfxStep) + switch (sDiploma->gfxState) { case 0: ResetTempTileDataBuffers(); break; case 1: - DecompressAndCopyTileDataToVram(1, sDiplomaGfx, 0, 0, 0); + DecompressAndCopyTileDataToVram(BG_DIPLOMA, sDiplomaGfx, 0, 0, 0); break; case 2: - if (!(FreeTempTileDataBuffersIfPossible() == 1)) - { - break; - } - return 0; + if (FreeTempTileDataBuffersIfPossible() == TRUE) + return FALSE; + break; case 3: - LoadPalette(sDiplomaPal, 0, 0x40); + LoadPalette(sDiplomaPal, 0, sizeof(sDiplomaPal)); + // fallthrough default: - return 1; + // Finished + return TRUE; } - gDiploma->gfxStep++; - return 0; + sDiploma->gfxState++; + return FALSE; } static void DiplomaPrintText(void) { - u8 arr[160]; + u8 str[160]; u32 width; DynamicPlaceholderTextUtil_Reset(); DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gSaveBlock2Ptr->playerName); if (HasAllMons()) - { - DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, gUnknown_841B68F); - } + DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, gText_Diploma_National); else - { - DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, gUnknown_841B698); - } - FillWindowPixelBuffer(0, 0); - DynamicPlaceholderTextUtil_ExpandPlaceholders(arr, gUnknown_841B60E); - width = GetStringWidth(FONT_2, arr, -1); - AddTextPrinterParameterized3(0, FONT_2, 120 - (width / 2), 4, gUnknown_8415A04, -1, arr); - DynamicPlaceholderTextUtil_ExpandPlaceholders(arr, gUnknown_841B619); - width = GetStringWidth(FONT_2, arr, -1); - AddTextPrinterParameterized3(0, FONT_2, 120 - (width / 2), 0x1E, gUnknown_8415A04, -1, arr); - AddTextPrinterParameterized3(0, FONT_2, 120, 105, gUnknown_8415A04, 0, gUnknown_841B684); - PutWindowTilemap(0); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, gText_Diploma_Kanto); + FillWindowPixelBuffer(WIN_TEXT, PIXEL_FILL(0)); + DynamicPlaceholderTextUtil_ExpandPlaceholders(str, gText_Diploma_Player); + width = GetStringWidth(FONT_2, str, -1); + AddTextPrinterParameterized3(WIN_TEXT, FONT_2, 120 - (width / 2), 4, sTextColors, TEXT_SKIP_DRAW, str); + DynamicPlaceholderTextUtil_ExpandPlaceholders(str, gText_Diploma_ThisDocument); + width = GetStringWidth(FONT_2, str, -1); + AddTextPrinterParameterized3(WIN_TEXT, FONT_2, 120 - (width / 2), 30, sTextColors, TEXT_SKIP_DRAW, str); + AddTextPrinterParameterized3(WIN_TEXT, FONT_2, 120, 105, sTextColors, 0, gText_Diploma_GameFreak); + PutWindowTilemap(WIN_TEXT); } diff --git a/src/dodrio_berry_picking.c b/src/dodrio_berry_picking.c index 24f5bc8e6..d339a2277 100644 --- a/src/dodrio_berry_picking.c +++ b/src/dodrio_berry_picking.c @@ -2984,7 +2984,7 @@ static void Task_ShowDodrioBerryPickingRecords(u8 taskId) { RemoveWindow(tWindowId); DestroyTask(taskId); - EnableBothScriptContexts(); + ScriptContext_Enable(); } break; } @@ -3002,7 +3002,7 @@ static void PrintRecordsText(u8 windowId) recordNums[1] = gSaveBlock2Ptr->berryPick.bestScore; recordNums[2] = gSaveBlock2Ptr->berryPick.berriesPickedInRow; - TextWindow_SetStdFrame0_WithPal(windowId, 0x21D, 0xD0); + LoadStdWindowGfx(windowId, 0x21D, 0xD0); DrawTextBorderOuter(windowId, 0x21D, 0xD); FillWindowPixelBuffer(windowId, PIXEL_FILL(1)); AddTextPrinterParameterized(windowId, FONT_2, sRecordsTexts[0], 1, 1, TEXT_SKIP_DRAW, NULL); @@ -4160,13 +4160,13 @@ static void ResetBerryAndStatusBarSprites(void) static void LoadWindowFrameGfx(u8 frameId) { - LoadBgTiles(BG_INTERFACE, GetWindowFrameTilesPal(frameId)->tiles, 0x120, 1); - LoadPalette(GetWindowFrameTilesPal(frameId)->palette, 0xA0, 0x20); + LoadBgTiles(BG_INTERFACE, GetUserWindowGraphics(frameId)->tiles, 0x120, 1); + LoadPalette(GetUserWindowGraphics(frameId)->palette, 0xA0, 0x20); } -static void LoadUserWindowFrameGfx(void) +static void DBP_LoadStdWindowGfx(void) { - TextWindow_SetStdFrame0_WithPal(0, 0xA, 0xB0); + LoadStdWindowGfx(0, 0xA, 0xB0); } static void ResetGfxState(void) @@ -4341,7 +4341,7 @@ static void LoadGfx(void) break; case 4: LoadWindowFrameGfx(gSaveBlock2Ptr->optionsWindowFrameType); - LoadUserWindowFrameGfx(); + DBP_LoadStdWindowGfx(); sGfx->state++; break; default: @@ -4942,7 +4942,7 @@ static bool32 LoadBgGfx(void) return FALSE; break; case 5: - LoadPalette(stdpal_get(3), 0xD0, 0x20); + LoadPalette(GetTextWindowPalette(3), 0xD0, 0x20); break; default: sGfx->loadState = 0; diff --git a/src/easy_chat_2.c b/src/easy_chat_2.c index 90d066674..20aac1312 100644 --- a/src/easy_chat_2.c +++ b/src/easy_chat_2.c @@ -312,98 +312,98 @@ static const struct EasyChatScreenTemplate sEasyChatScreenTemplates[] = { .numColumns = 2, .numRows = 2, .frameId = 0, - .titleText = gUnknown_8418A2B, - .instructionsText1 = gUnknown_84186D1, - .instructionsText2 = gUnknown_84186EF, - .confirmText1 = gUnknown_841880E, - .confirmText2 = gUnknown_8418902 + .titleText = gText_Profile, + .instructionsText1 = gText_CombineFourWordsOrPhrases, + .instructionsText2 = gText_AndMakeYourProfile, + .confirmText1 = gText_YourProfile, + .confirmText2 = gText_IsAsShownOkay }, { .type = EASY_CHAT_TYPE_BATTLE_START, .numColumns = 2, .numRows = 3, .frameId = 1, - .titleText = gUnknown_8418A33, - .instructionsText1 = gUnknown_8418706, - .instructionsText2 = gUnknown_8418725, - .confirmText1 = gUnknown_841881B, - .confirmText2 = gUnknown_8418902 + .titleText = gText_AtTheBattlesStart, + .instructionsText1 = gText_MakeMessageSixPhrases, + .instructionsText2 = gText_MaxTwoTwelveLetterPhrases, + .confirmText1 = gText_YourFeelingAtTheBattlesStart, + .confirmText2 = gText_IsAsShownOkay }, { .type = EASY_CHAT_TYPE_BATTLE_WON, .numColumns = 2, .numRows = 3, .frameId = 1, - .titleText = gUnknown_8418A4A, - .instructionsText1 = gUnknown_8418706, - .instructionsText2 = gUnknown_8418725, - .confirmText1 = gUnknown_841883E, - .confirmText2 = gUnknown_8418902 + .titleText = gText_UponWinningABattle, + .instructionsText1 = gText_MakeMessageSixPhrases, + .instructionsText2 = gText_MaxTwoTwelveLetterPhrases, + .confirmText1 = gText_WhatYouSayIfYouWin, + .confirmText2 = gText_IsAsShownOkay }, { .type = EASY_CHAT_TYPE_BATTLE_LOST, .numColumns = 2, .numRows = 3, .frameId = 1, - .titleText = gUnknown_8418A61, - .instructionsText1 = gUnknown_8418706, - .instructionsText2 = gUnknown_8418725, - .confirmText1 = gUnknown_841885F, - .confirmText2 = gUnknown_8418902 + .titleText = gText_UponLosingABattle, + .instructionsText1 = gText_MakeMessageSixPhrases, + .instructionsText2 = gText_MaxTwoTwelveLetterPhrases, + .confirmText1 = gText_WhatYouSayIfYouLose, + .confirmText2 = gText_IsAsShownOkay }, { .type = EASY_CHAT_TYPE_MAIL, .numColumns = 2, .numRows = 5, .frameId = 2, .titleText = NULL, - .instructionsText1 = gUnknown_8418780, - .instructionsText2 = gUnknown_841879E, - .confirmText1 = gUnknown_841888C, - .confirmText2 = gUnknown_8418902 + .instructionsText1 = gText_CombineNineWordsOrPhrases, + .instructionsText2 = gText_AndMakeAMessage, + .confirmText1 = gText_TheMailMessage, + .confirmText2 = gText_IsAsShownOkay }, { .type = EASY_CHAT_TYPE_MAIL_NO_CONFIRM, .numColumns = 2, .numRows = 2, .frameId = 0, - .instructionsText1 = gUnknown_8418780, - .instructionsText2 = gUnknown_841879E, + .instructionsText1 = gText_CombineNineWordsOrPhrases, + .instructionsText2 = gText_AndMakeAMessage, }, { .type = EASY_CHAT_TYPE_BARD_SONG, .numColumns = 2, .numRows = 3, .frameId = 1, - .titleText = gUnknown_8418A77, - .instructionsText1 = gUnknown_84187B2, - .instructionsText2 = gUnknown_84187D1, - .confirmText1 = gUnknown_84188AC, - .confirmText2 = gUnknown_8418902 + .titleText = gText_TheBardsSong, + .instructionsText1 = gText_ChangeJustOneWordOrPhrase, + .instructionsText2 = gText_AndImproveTheBardsSong, + .confirmText1 = gText_TheNewSong, + .confirmText2 = gText_IsAsShownOkay }, { .type = EASY_CHAT_TYPE_INTERVIEW, .numColumns = 2, .numRows = 3, .frameId = 1, - .titleText = gUnknown_8418AA1, - .instructionsText1 = gUnknown_8418745, - .instructionsText2 = gUnknown_8418763, - .confirmText1 = gUnknown_8418881, - .confirmText2 = gUnknown_8418902 + .titleText = gText_Interview, + .instructionsText1 = gText_FindWordsThatDescribeYour, + .instructionsText2 = gText_FeelingsRightNow, + .confirmText1 = gText_TheAnswer, + .confirmText2 = gText_IsAsShownOkay }, { .type = EASY_CHAT_TYPE_TRENDY_PHRASE, .numColumns = 2, .numRows = 1, .frameId = 3, - .titleText = gUnknown_8418A87, - .instructionsText1 = gUnknown_84188B9, - .instructionsText2 = gUnknown_84188D6, - .confirmText1 = gUnknown_84188F0, - .confirmText2 = gUnknown_8418902 + .titleText = gText_WhatsHipAndHappening, + .instructionsText1 = gText_CombineTwoWordsOrPhrases, + .instructionsText2 = gText_AndMakeATrendySaying, + .confirmText1 = gText_TheTrendySaying, + .confirmText2 = gText_IsAsShownOkay }, { .type = EASY_CHAT_TYPE_QUESTIONNAIRE, .numColumns = 2, .numRows = 2, .frameId = 0, - .titleText = gUnknown_8418AB2, - .instructionsText1 = gUnknown_84186D1, - .instructionsText2 = gUnknown_84187EE, - .confirmText1 = gUnknown_8418881, - .confirmText2 = gUnknown_8418902 + .titleText = gText_Questionnaire, + .instructionsText1 = gText_CombineFourWordsOrPhrases, + .instructionsText2 = gText_AndFillOutTheQuestionnaire, + .confirmText1 = gText_TheAnswer, + .confirmText2 = gText_IsAsShownOkay } }; @@ -1235,11 +1235,11 @@ void GetEasyChatConfirmCancelText(const u8 **str1, const u8 **str2) switch (sEasyChatScreen->type) { case EASY_CHAT_TYPE_MAIL: - *str1 = gUnknown_84189EE; + *str1 = gText_StopGivingPkmnMail; *str2 = NULL; break; default: - *str1 = gUnknown_84189E0; + *str1 = gText_QuitEditing; *str2 = NULL; break; } @@ -1248,8 +1248,8 @@ void GetEasyChatConfirmCancelText(const u8 **str1, const u8 **str2) void GetEasyChatConfirmDeletionText(const u8 **str1, const u8 **str2) { - *str1 = gUnknown_8418937; - *str2 = gUnknown_8418956; + *str1 = gText_AllTextBeingEditedWill; + *str2 = gText_BeDeletedThatOkay; } void GetECSelectGroupCursorCoords(u8 *Xp, u8 *Yp) diff --git a/src/easy_chat_3.c b/src/easy_chat_3.c index 1660b0cb7..6b135cdf2 100644 --- a/src/easy_chat_3.c +++ b/src/easy_chat_3.c @@ -275,10 +275,10 @@ static const u8 gUnknown_843F8D8[] = _("{UNDERSCORE}"); static const u8 sText_Clear17[] = _("{CLEAR 17}"); static const u8 *const sEasyChatKeyboardText[] = { - gUnknown_847A8D8, - gUnknown_847A8FA, - gUnknown_847A913, - gUnknown_847A934 + gText_EasyChatKeyboard_ABCDEFothers, + gText_EasyChatKeyboard_GHIJKL, + gText_EasyChatKeyboard_MNOPQRS, + gText_EasyChatKeyboard_TUVWXYZ }; static const struct SpriteSheet sEasyChatSpriteSheets[] = { @@ -1347,7 +1347,7 @@ static void EC_AddTextPrinterParameterized2(u8 windowId, u8 fontId, const u8 *st static void PrintECInstructionsText(void) { FillBgTilemapBufferRect(0, 0, 0, 0, 32, 20, 17); - TextWindow_SetUserSelectedFrame(1, 1, 0xE0); + LoadUserWindowGfx(1, 1, 0xE0); DrawTextBorderOuter(1, 1, 14); PrintECInterfaceTextById(0); PutWindowTilemap(1); @@ -2295,6 +2295,6 @@ static void CreateFooterWindow(void) template.baseBlock = 0x030; windowId = AddWindow(&template); FillWindowPixelBuffer(windowId, PIXEL_FILL(1)); - EC_AddTextPrinterParameterized(windowId, FONT_1, gUnknown_841EE2B, 0, 0, 0, NULL); + EC_AddTextPrinterParameterized(windowId, FONT_1, gText_DelAllCancelOk, 0, 0, 0, NULL); PutWindowTilemap(windowId); } diff --git a/src/event_data.c b/src/event_data.c index f5ec179e0..5d3bad5d6 100644 --- a/src/event_data.c +++ b/src/event_data.c @@ -5,6 +5,14 @@ static bool8 IsFlagOrVarStoredInQuestLog(u16 idx, u8 a1); +#define NUM_SPECIAL_FLAGS (SPECIAL_FLAGS_END - SPECIAL_FLAGS_START + 1) +#define NUM_TEMP_FLAGS (TEMP_FLAGS_END - TEMP_FLAGS_START + 1) +#define NUM_TEMP_VARS (TEMP_VARS_END - TEMP_VARS_START + 1) + +#define SPECIAL_FLAGS_SIZE (NUM_SPECIAL_FLAGS / 8) // 8 flags per byte +#define TEMP_FLAGS_SIZE (NUM_TEMP_FLAGS / 8) +#define TEMP_VARS_SIZE (NUM_TEMP_VARS * 2) // 1/2 var per byte + EWRAM_DATA u16 gSpecialVar_0x8000 = 0; EWRAM_DATA u16 gSpecialVar_0x8001 = 0; EWRAM_DATA u16 gSpecialVar_0x8002 = 0; @@ -25,7 +33,7 @@ EWRAM_DATA u16 gSpecialVar_MonBoxPos = 0; EWRAM_DATA u16 gSpecialVar_TextColor = 0; EWRAM_DATA u16 gSpecialVar_PrevTextColor = 0; EWRAM_DATA u16 gSpecialVar_0x8014 = 0; -EWRAM_DATA u8 sSpecialFlags[SPECIAL_FLAGS_COUNT] = {}; +EWRAM_DATA u8 sSpecialFlags[SPECIAL_FLAGS_SIZE] = {}; u16 gLastQuestLogStoredFlagOrVarIdx; @@ -33,15 +41,15 @@ extern u16 *const gSpecialVars[]; void InitEventData(void) { - memset(gSaveBlock1Ptr->flags, 0, NUM_FLAG_BYTES); - memset(gSaveBlock1Ptr->vars, 0, VARS_COUNT * 2); - memset(sSpecialFlags, 0, SPECIAL_FLAGS_COUNT); + memset(gSaveBlock1Ptr->flags, 0, sizeof(gSaveBlock1Ptr->flags)); + memset(gSaveBlock1Ptr->vars, 0, sizeof(gSaveBlock1Ptr->vars)); + memset(sSpecialFlags, 0, sizeof(sSpecialFlags)); } void ClearTempFieldEventData(void) { - memset(gSaveBlock1Ptr->flags, 0, 4); - memset(gSaveBlock1Ptr->vars, 0, 16 * 2); + memset(gSaveBlock1Ptr->flags + (TEMP_FLAGS_START / 8), 0, TEMP_FLAGS_SIZE); + memset(gSaveBlock1Ptr->vars + ((TEMP_VARS_START - VARS_START) * 2), 0, TEMP_VARS_SIZE); FlagClear(FLAG_SYS_WHITE_FLUTE_ACTIVE); FlagClear(FLAG_SYS_BLACK_FLUTE_ACTIVE); FlagClear(FLAG_SYS_USE_STRENGTH); @@ -49,37 +57,41 @@ void ClearTempFieldEventData(void) FlagClear(FLAG_SYS_INFORMED_OF_LOCAL_WIRELESS_PLAYER); } -void sub_806E168(void) // Unused +// Unused +static void DisableNationalPokedex_RSE(void) { u16 *ptr = GetVarPointer(VAR_0x403C); - gSaveBlock2Ptr->pokedex.nationalMagic = 0; + gSaveBlock2Ptr->pokedex.unused = 0; *ptr = 0; FlagClear(FLAG_0x838); } -void sub_806E190(void) +// The magic numbers used here (0xDA and 0x0302) correspond to those +// used in RSE for enabling the national Pokedex +void EnableNationalPokedex_RSE(void) { + // Note: the var, struct member, and flag are never used u16 *ptr = GetVarPointer(VAR_0x403C); - gSaveBlock2Ptr->pokedex.nationalMagic = 0xDA; + gSaveBlock2Ptr->pokedex.unused = 0xDA; *ptr = 0x0302; FlagSet(FLAG_0x838); } -bool32 sub_806E1C0(void) // Unused +// Unused +static bool32 IsNationalPokedexEnabled_RSE(void) { - if (gSaveBlock2Ptr->pokedex.nationalMagic != 0xDA) - return FALSE; - if (VarGet(VAR_0x403C) != 0x0302) - return FALSE; - if (!FlagGet(FLAG_0x838)) - return FALSE; - return TRUE; + if (gSaveBlock2Ptr->pokedex.unused == 0xDA + && VarGet(VAR_0x403C) == 0x0302 + && FlagGet(FLAG_0x838)) + return TRUE; + + return FALSE; } void DisableNationalPokedex(void) { u16 *nationalDexVar = GetVarPointer(VAR_NATIONAL_DEX); - gSaveBlock2Ptr->pokedex.unknown2 = 0; + gSaveBlock2Ptr->pokedex.nationalMagic = 0; *nationalDexVar = 0; FlagClear(FLAG_SYS_NATIONAL_DEX); } @@ -87,20 +99,19 @@ void DisableNationalPokedex(void) void EnableNationalPokedex(void) { u16 *nationalDexVar = GetVarPointer(VAR_NATIONAL_DEX); - gSaveBlock2Ptr->pokedex.unknown2 = 0xB9; + gSaveBlock2Ptr->pokedex.nationalMagic = 0xB9; *nationalDexVar = 0x6258; FlagSet(FLAG_SYS_NATIONAL_DEX); } bool32 IsNationalPokedexEnabled(void) { - if (gSaveBlock2Ptr->pokedex.unknown2 != 0xB9) - return FALSE; - if (VarGet(VAR_NATIONAL_DEX) != 0x6258) - return FALSE; - if (!FlagGet(FLAG_SYS_NATIONAL_DEX)) - return FALSE; - return TRUE; + if (gSaveBlock2Ptr->pokedex.nationalMagic == 0xB9 + && VarGet(VAR_NATIONAL_DEX) == 0x6258 + && FlagGet(FLAG_SYS_NATIONAL_DEX)) + return TRUE; + + return FALSE; } void DisableMysteryGift(void) @@ -141,33 +152,33 @@ void ResetMysteryEventFlags(void) void ResetMysteryEventVars(void) { VarSet(VAR_EVENT_PICHU_SLOT, 0); - VarSet(VAR_0x40B6, 0); - VarSet(VAR_0x40B7, 0); - VarSet(VAR_0x40B8, 0); - VarSet(VAR_0x40B9, 0); - VarSet(VAR_0x40BA, 0); - VarSet(VAR_0x40BB, 0); - VarSet(VAR_0x40BC, 0); + VarSet(VAR_MYSTERY_GIFT_1, 0); + VarSet(VAR_MYSTERY_GIFT_2, 0); + VarSet(VAR_MYSTERY_GIFT_3, 0); + VarSet(VAR_MYSTERY_GIFT_4, 0); + VarSet(VAR_MYSTERY_GIFT_5, 0); + VarSet(VAR_MYSTERY_GIFT_6, 0); + VarSet(VAR_MYSTERY_GIFT_7, 0); VarSet(VAR_ALTERING_CAVE_WILD_SET, 0); } void DisableResetRTC(void) { - VarSet(VAR_0x4032, 0); - FlagClear(FLAG_0x837); + VarSet(VAR_RESET_RTC_ENABLE, 0); + FlagClear(FLAG_SYS_RESET_RTC_ENABLE); } void EnableResetRTC(void) { - VarSet(VAR_0x4032, 0x0920); - FlagSet(FLAG_0x837); + VarSet(VAR_RESET_RTC_ENABLE, 0x0920); + FlagSet(FLAG_SYS_RESET_RTC_ENABLE); } bool32 CanResetRTC(void) { - if (!FlagGet(FLAG_0x837)) + if (!FlagGet(FLAG_SYS_RESET_RTC_ENABLE)) return FALSE; - if (VarGet(VAR_0x4032) != 0x0920) + if (VarGet(VAR_RESET_RTC_ENABLE) != 0x0920) return FALSE; return TRUE; } diff --git a/src/event_object_movement.c b/src/event_object_movement.c index 3c2707173..0a1fe3bd7 100644 --- a/src/event_object_movement.c +++ b/src/event_object_movement.c @@ -19,6 +19,7 @@ #include "constants/event_object_movement.h" #include "constants/event_objects.h" #include "constants/trainer_types.h" +#include "constants/union_room.h" static void MoveCoordsInDirection(u32, s16 *, s16 *, s16, s16); static bool8 ObjectEventExecSingleMovementAction(struct ObjectEvent *, struct Sprite *); @@ -49,7 +50,7 @@ static void GetGroundEffectFlags_Seaweed(struct ObjectEvent *, u32 *); static void GetGroundEffectFlags_JumpLanding(struct ObjectEvent *, u32 *); static u8 ObjectEventCheckForReflectiveSurface(struct ObjectEvent *); static u8 GetReflectionTypeByMetatileBehavior(u32); -static void InitObjectPriorityByZCoord(struct Sprite *sprite, u8 z); +static void InitObjectPriorityByElevation(struct Sprite *sprite, u8 elevation); static void ObjectEventUpdateSubpriority(struct ObjectEvent *, struct Sprite *); static void DoTracksGroundEffect_None(struct ObjectEvent *, struct Sprite *, u8); static void DoTracksGroundEffect_Footprints(struct ObjectEvent *, struct Sprite *, u8); @@ -71,12 +72,14 @@ static void GetObjectEventMovingCameraOffset(s16 *, s16 *); static struct ObjectEventTemplate *GetObjectEventTemplateByLocalIdAndMap(u8, u8, u8); static void LoadObjectEventPalette(u16); static void RemoveObjectEventIfOutsideView(struct ObjectEvent *); -static void ReloadMapObjectWithOffset(u8 objectEventId, s16 x, s16 y); +static void SpawnObjectEventOnReturnToField(u8 objectEventId, s16 x, s16 y); static void SetPlayerAvatarObjectEventIdAndObjectId(u8, u8); static void ResetObjectEventFldEffData(struct ObjectEvent *); static u8 TryLoadObjectPalette(const struct SpritePalette *spritePalette); static u8 FindObjectEventPaletteIndexByTag(u16); -static bool8 ObjectEventDoesZCoordMatch(struct ObjectEvent *, u8); +static bool8 ObjectEventDoesElevationMatch(struct ObjectEvent *, u8); +static bool8 IsElevationMismatchAt(u8 elevation, s16 x, s16 y); +static bool8 AreElevationsCompatible(u8 a, u8 b); static void ObjectCB_CameraObject(struct Sprite *); static void CameraObject_0(struct Sprite *); static void CameraObject_1(struct Sprite *); @@ -84,17 +87,17 @@ static void CameraObject_2(struct Sprite *); static struct ObjectEventTemplate *FindObjectEventTemplateByLocalId(u8 localId, struct ObjectEventTemplate *templates, u8 count); static void ClearObjectEventMovement(struct ObjectEvent *, struct Sprite *); static void ObjectEventSetSingleMovement(struct ObjectEvent *, struct Sprite *, u8); -static bool8 sub_805E238(struct ObjectEventTemplate *, u8, s16, s16); -static bool8 sub_805E27C(struct ObjectEventTemplate *, s16, s16); -static bool8 sub_805E2E8(struct ObjectEventTemplate *, s16, s16); -static void sub_805E384(struct ObjectEventTemplate *); +static bool8 ShouldInitObjectEventStateFromTemplate(struct ObjectEventTemplate *, u8, s16, s16); +static bool8 TemplateIsObstacleAndWithinView(struct ObjectEventTemplate *, s16, s16); +static bool8 TemplateIsObstacleAndVisibleFromConnectingMap(struct ObjectEventTemplate *, s16, s16); +static void SetHideObstacleFlag(struct ObjectEventTemplate *); static bool8 MovementType_Disguise_Callback(struct ObjectEvent *, struct Sprite *); static bool8 MovementType_Buried_Callback(struct ObjectEvent *, struct Sprite *); static u8 MovementType_RaiseHandAndStop_Callback(struct ObjectEvent *, struct Sprite *); static u8 MovementType_RaiseHandAndJump_Callback(struct ObjectEvent *, struct Sprite *); static u8 MovementType_RaiseHandAndSwim_Callback(struct ObjectEvent *, struct Sprite *); -static void sub_8064544(struct ObjectEvent *, struct Sprite *); -static void DoObjectUnionRoomWarpYDisplacement(struct Sprite *sprite); +static void QuestLogObjectEventExecHeldMovementAction(struct ObjectEvent *, struct Sprite *); +static void VirtualObject_UpdateAnim(struct Sprite *sprite); static void MovementType_None(struct Sprite *); static void MovementType_LookAround(struct Sprite *); static void MovementType_WanderAround(struct Sprite *); @@ -144,7 +147,7 @@ static void MovementType_MountainDisguise(struct Sprite *); static void MovementType_CopyPlayerInGrass(struct Sprite *); static void MovementType_Buried(struct Sprite *); static void MovementType_WalkInPlace(struct Sprite *); -static void MovementType_WalkSlowlyInPlace(struct Sprite *); +static void MovementType_WalkInPlaceFast(struct Sprite *); static void MovementType_JogInPlace(struct Sprite *); static void MovementType_Invisible(struct Sprite *); static void MovementType_RaiseHandAndStop(struct Sprite *); @@ -191,7 +194,20 @@ static u8 setup##_callback(struct ObjectEvent *objectEvent, struct Sprite *sprit EWRAM_DATA u8 sCurrentReflectionType = 0; EWRAM_DATA u16 sCurrentSpecialObjectPaletteTag = 0; -const u8 gReflectionEffectPaletteMap[16] = {1, 1, 6, 7, 8, 9, 6, 7, 8, 9, 11, 11, 0, 0, 0, 0}; +const u8 gReflectionEffectPaletteMap[16] = { + [PALSLOT_PLAYER] = PALSLOT_PLAYER_REFLECTION, + [PALSLOT_PLAYER_REFLECTION] = PALSLOT_PLAYER_REFLECTION, + [PALSLOT_NPC_1] = PALSLOT_NPC_1_REFLECTION, + [PALSLOT_NPC_2] = PALSLOT_NPC_2_REFLECTION, + [PALSLOT_NPC_3] = PALSLOT_NPC_3_REFLECTION, + [PALSLOT_NPC_4] = PALSLOT_NPC_4_REFLECTION, + [PALSLOT_NPC_1_REFLECTION] = PALSLOT_NPC_1_REFLECTION, + [PALSLOT_NPC_2_REFLECTION] = PALSLOT_NPC_2_REFLECTION, + [PALSLOT_NPC_3_REFLECTION] = PALSLOT_NPC_3_REFLECTION, + [PALSLOT_NPC_4_REFLECTION] = PALSLOT_NPC_4_REFLECTION, + [PALSLOT_NPC_SPECIAL] = PALSLOT_NPC_SPECIAL_REFLECTION, + [PALSLOT_NPC_SPECIAL_REFLECTION] = PALSLOT_NPC_SPECIAL_REFLECTION +}; static const struct SpriteTemplate gCameraSpriteTemplate = { .tileTag = 0, @@ -280,10 +296,10 @@ static void (*const sMovementTypeCallbacks[MOVEMENT_TYPES_COUNT])(struct Sprite [MOVEMENT_TYPE_WALK_IN_PLACE_UP] = MovementType_WalkInPlace, [MOVEMENT_TYPE_WALK_IN_PLACE_LEFT] = MovementType_WalkInPlace, [MOVEMENT_TYPE_WALK_IN_PLACE_RIGHT] = MovementType_WalkInPlace, - [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_DOWN] = MovementType_WalkSlowlyInPlace, - [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_UP] = MovementType_WalkSlowlyInPlace, - [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_LEFT] = MovementType_WalkSlowlyInPlace, - [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_RIGHT] = MovementType_WalkSlowlyInPlace, + [MOVEMENT_TYPE_WALK_IN_PLACE_FAST_DOWN] = MovementType_WalkInPlaceFast, + [MOVEMENT_TYPE_WALK_IN_PLACE_FAST_UP] = MovementType_WalkInPlaceFast, + [MOVEMENT_TYPE_WALK_IN_PLACE_FAST_LEFT] = MovementType_WalkInPlaceFast, + [MOVEMENT_TYPE_WALK_IN_PLACE_FAST_RIGHT] = MovementType_WalkInPlaceFast, [MOVEMENT_TYPE_JOG_IN_PLACE_DOWN] = MovementType_JogInPlace, [MOVEMENT_TYPE_JOG_IN_PLACE_UP] = MovementType_JogInPlace, [MOVEMENT_TYPE_JOG_IN_PLACE_LEFT] = MovementType_JogInPlace, @@ -409,10 +425,10 @@ static const u8 gInitialMovementTypeFacingDirections[MOVEMENT_TYPES_COUNT] = { [MOVEMENT_TYPE_WALK_IN_PLACE_UP] = DIR_NORTH, [MOVEMENT_TYPE_WALK_IN_PLACE_LEFT] = DIR_WEST, [MOVEMENT_TYPE_WALK_IN_PLACE_RIGHT] = DIR_EAST, - [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_DOWN] = DIR_SOUTH, - [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_UP] = DIR_NORTH, - [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_LEFT] = DIR_WEST, - [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_RIGHT] = DIR_EAST, + [MOVEMENT_TYPE_WALK_IN_PLACE_FAST_DOWN] = DIR_SOUTH, + [MOVEMENT_TYPE_WALK_IN_PLACE_FAST_UP] = DIR_NORTH, + [MOVEMENT_TYPE_WALK_IN_PLACE_FAST_LEFT] = DIR_WEST, + [MOVEMENT_TYPE_WALK_IN_PLACE_FAST_RIGHT] = DIR_EAST, [MOVEMENT_TYPE_JOG_IN_PLACE_DOWN] = DIR_SOUTH, [MOVEMENT_TYPE_JOG_IN_PLACE_UP] = DIR_NORTH, [MOVEMENT_TYPE_JOG_IN_PLACE_LEFT] = DIR_WEST, @@ -896,7 +912,7 @@ static const struct Coords16 sDirectionToVectors[] = { [DIR_NORTHEAST] = { 1, -1}, }; -static const u8 gFaceDirectionMovementActions[] = { +static const u8 sFaceDirectionMovementActions[] = { [DIR_NONE] = MOVEMENT_ACTION_FACE_DOWN, [DIR_SOUTH] = MOVEMENT_ACTION_FACE_DOWN, [DIR_NORTH] = MOVEMENT_ACTION_FACE_UP, @@ -904,7 +920,7 @@ static const u8 gFaceDirectionMovementActions[] = { [DIR_EAST] = MOVEMENT_ACTION_FACE_RIGHT, }; -static const u8 gFaceDirectionFastMovementActions[] = { +static const u8 sFaceDirectionFastMovementActions[] = { [DIR_NONE] = MOVEMENT_ACTION_FACE_DOWN_FAST, [DIR_SOUTH] = MOVEMENT_ACTION_FACE_DOWN_FAST, [DIR_NORTH] = MOVEMENT_ACTION_FACE_UP_FAST, @@ -912,7 +928,7 @@ static const u8 gFaceDirectionFastMovementActions[] = { [DIR_EAST] = MOVEMENT_ACTION_FACE_RIGHT_FAST, }; -static const u8 gWalkSlowestMovementActions[] = { +static const u8 sWalkSlowestMovementActions[] = { [DIR_NONE] = MOVEMENT_ACTION_WALK_SLOWEST_DOWN, [DIR_SOUTH] = MOVEMENT_ACTION_WALK_SLOWEST_DOWN, [DIR_NORTH] = MOVEMENT_ACTION_WALK_SLOWEST_UP, @@ -920,7 +936,7 @@ static const u8 gWalkSlowestMovementActions[] = { [DIR_EAST] = MOVEMENT_ACTION_WALK_SLOWEST_RIGHT, }; -static const u8 gUnknown_83A64FB[] = { +static const u8 sWalkSlowerMovementActions[] = { [DIR_NONE] = MOVEMENT_ACTION_WALK_SLOWER_DOWN, [DIR_SOUTH] = MOVEMENT_ACTION_WALK_SLOWER_DOWN, [DIR_NORTH] = MOVEMENT_ACTION_WALK_SLOWER_UP, @@ -928,7 +944,7 @@ static const u8 gUnknown_83A64FB[] = { [DIR_EAST] = MOVEMENT_ACTION_WALK_SLOWER_RIGHT, }; -static const u8 gUnknown_83A6500[] = { +static const u8 sWalkSlowMovementActions[] = { [DIR_NONE] = MOVEMENT_ACTION_WALK_SLOW_DOWN, [DIR_SOUTH] = MOVEMENT_ACTION_WALK_SLOW_DOWN, [DIR_NORTH] = MOVEMENT_ACTION_WALK_SLOW_UP, @@ -936,7 +952,7 @@ static const u8 gUnknown_83A6500[] = { [DIR_EAST] = MOVEMENT_ACTION_WALK_SLOW_RIGHT, }; -static const u8 gUnknown_83A6505[] = { +static const u8 sWalkNormalMovementActions[] = { [DIR_NONE] = MOVEMENT_ACTION_WALK_NORMAL_DOWN, [DIR_SOUTH] = MOVEMENT_ACTION_WALK_NORMAL_DOWN, [DIR_NORTH] = MOVEMENT_ACTION_WALK_NORMAL_UP, @@ -944,7 +960,7 @@ static const u8 gUnknown_83A6505[] = { [DIR_EAST] = MOVEMENT_ACTION_WALK_NORMAL_RIGHT, }; -static const u8 gUnknown_83A650A[] = { +static const u8 sWalkFastMovementActions[] = { [DIR_NONE] = MOVEMENT_ACTION_WALK_FAST_DOWN, [DIR_SOUTH] = MOVEMENT_ACTION_WALK_FAST_DOWN, [DIR_NORTH] = MOVEMENT_ACTION_WALK_FAST_UP, @@ -952,7 +968,7 @@ static const u8 gUnknown_83A650A[] = { [DIR_EAST] = MOVEMENT_ACTION_WALK_FAST_RIGHT, }; -static const u8 gUnknown_83A650F[] = { +static const u8 sGlideMovementActions[] = { [DIR_NONE] = MOVEMENT_ACTION_GLIDE_DOWN, [DIR_SOUTH] = MOVEMENT_ACTION_GLIDE_DOWN, [DIR_NORTH] = MOVEMENT_ACTION_GLIDE_UP, @@ -960,7 +976,7 @@ static const u8 gUnknown_83A650F[] = { [DIR_EAST] = MOVEMENT_ACTION_GLIDE_RIGHT, }; -static const u8 gUnknown_83A6514[] = { +static const u8 sRideWaterCurrentMovementActions[] = { [DIR_NONE] = MOVEMENT_ACTION_RIDE_WATER_CURRENT_DOWN, [DIR_SOUTH] = MOVEMENT_ACTION_RIDE_WATER_CURRENT_DOWN, [DIR_NORTH] = MOVEMENT_ACTION_RIDE_WATER_CURRENT_UP, @@ -968,7 +984,7 @@ static const u8 gUnknown_83A6514[] = { [DIR_EAST] = MOVEMENT_ACTION_RIDE_WATER_CURRENT_RIGHT, }; -static const u8 gUnknown_83A6519[] = { +static const u8 sWalkFasterMovementActions[] = { [DIR_NONE] = MOVEMENT_ACTION_WALK_FASTER_DOWN, [DIR_SOUTH] = MOVEMENT_ACTION_WALK_FASTER_DOWN, [DIR_NORTH] = MOVEMENT_ACTION_WALK_FASTER_UP, @@ -976,7 +992,7 @@ static const u8 gUnknown_83A6519[] = { [DIR_EAST] = MOVEMENT_ACTION_WALK_FASTER_RIGHT, }; -static const u8 gUnknown_83A651E[] = { +static const u8 sSlideMovementActions[] = { [DIR_NONE] = MOVEMENT_ACTION_SLIDE_DOWN, [DIR_SOUTH] = MOVEMENT_ACTION_SLIDE_DOWN, [DIR_NORTH] = MOVEMENT_ACTION_SLIDE_UP, @@ -984,7 +1000,7 @@ static const u8 gUnknown_83A651E[] = { [DIR_EAST] = MOVEMENT_ACTION_SLIDE_RIGHT, }; -static const u8 gUnknown_83A6523[] = { +static const u8 sPlayerRunMovementActions[] = { [DIR_NONE] = MOVEMENT_ACTION_PLAYER_RUN_DOWN, [DIR_SOUTH] = MOVEMENT_ACTION_PLAYER_RUN_DOWN, [DIR_NORTH] = MOVEMENT_ACTION_PLAYER_RUN_UP, @@ -992,7 +1008,7 @@ static const u8 gUnknown_83A6523[] = { [DIR_EAST] = MOVEMENT_ACTION_PLAYER_RUN_RIGHT, }; -static const u8 gUnknown_83A6528[] = { +static const u8 sPlayerRunSlowMovementActions[] = { [DIR_NONE] = MOVEMENT_ACTION_PLAYER_RUN_DOWN_SLOW, [DIR_SOUTH] = MOVEMENT_ACTION_PLAYER_RUN_DOWN_SLOW, [DIR_NORTH] = MOVEMENT_ACTION_PLAYER_RUN_UP_SLOW, @@ -1000,7 +1016,7 @@ static const u8 gUnknown_83A6528[] = { [DIR_EAST] = MOVEMENT_ACTION_PLAYER_RUN_RIGHT_SLOW, }; -static const u8 gUnknown_83A652D[] = { +static const u8 sSpinMovementActions[] = { [DIR_NONE] = MOVEMENT_ACTION_SPIN_DOWN, [DIR_SOUTH] = MOVEMENT_ACTION_SPIN_DOWN, [DIR_NORTH] = MOVEMENT_ACTION_SPIN_UP, @@ -1008,7 +1024,7 @@ static const u8 gUnknown_83A652D[] = { [DIR_EAST] = MOVEMENT_ACTION_SPIN_RIGHT, }; -static const u8 gUnknown_83A6532[] = { +static const u8 sJump2MovementActions[] = { [DIR_NONE] = MOVEMENT_ACTION_JUMP_2_DOWN, [DIR_SOUTH] = MOVEMENT_ACTION_JUMP_2_DOWN, [DIR_NORTH] = MOVEMENT_ACTION_JUMP_2_UP, @@ -1016,7 +1032,7 @@ static const u8 gUnknown_83A6532[] = { [DIR_EAST] = MOVEMENT_ACTION_JUMP_2_RIGHT, }; -static const u8 gUnknown_83A6537[] = { +static const u8 sJumpInPlaceMovementActions[] = { [DIR_NONE] = MOVEMENT_ACTION_JUMP_IN_PLACE_DOWN, [DIR_SOUTH] = MOVEMENT_ACTION_JUMP_IN_PLACE_DOWN, [DIR_NORTH] = MOVEMENT_ACTION_JUMP_IN_PLACE_UP, @@ -1024,7 +1040,7 @@ static const u8 gUnknown_83A6537[] = { [DIR_EAST] = MOVEMENT_ACTION_JUMP_IN_PLACE_RIGHT, }; -static const u8 gUnknown_83A653C[] = { +static const u8 sJumpInPlaceTurnAroundMovementActions[] = { [DIR_NONE] = MOVEMENT_ACTION_JUMP_IN_PLACE_UP_DOWN, [DIR_SOUTH] = MOVEMENT_ACTION_JUMP_IN_PLACE_UP_DOWN, [DIR_NORTH] = MOVEMENT_ACTION_JUMP_IN_PLACE_DOWN_UP, @@ -1032,7 +1048,7 @@ static const u8 gUnknown_83A653C[] = { [DIR_EAST] = MOVEMENT_ACTION_JUMP_IN_PLACE_LEFT_RIGHT, }; -static const u8 gUnknown_83A6541[] = { +static const u8 sJumpMovementActions[] = { [DIR_NONE] = MOVEMENT_ACTION_JUMP_DOWN, [DIR_SOUTH] = MOVEMENT_ACTION_JUMP_DOWN, [DIR_NORTH] = MOVEMENT_ACTION_JUMP_UP, @@ -1040,7 +1056,7 @@ static const u8 gUnknown_83A6541[] = { [DIR_EAST] = MOVEMENT_ACTION_JUMP_RIGHT, }; -static const u8 gUnknown_83A6546[] = { +static const u8 sJumpSpecialMovementActions[] = { [DIR_NONE] = MOVEMENT_ACTION_JUMP_SPECIAL_DOWN, [DIR_SOUTH] = MOVEMENT_ACTION_JUMP_SPECIAL_DOWN, [DIR_NORTH] = MOVEMENT_ACTION_JUMP_SPECIAL_UP, @@ -1048,7 +1064,7 @@ static const u8 gUnknown_83A6546[] = { [DIR_EAST] = MOVEMENT_ACTION_JUMP_SPECIAL_RIGHT, }; -static const u8 gUnknown_83A654B[] = { +static const u8 sJumpSpecialWithEffectMovementActions[] = { [DIR_NONE] = MOVEMENT_ACTION_JUMP_SPECIAL_WITH_EFFECT_DOWN, [DIR_SOUTH] = MOVEMENT_ACTION_JUMP_SPECIAL_WITH_EFFECT_DOWN, [DIR_NORTH] = MOVEMENT_ACTION_JUMP_SPECIAL_WITH_EFFECT_UP, @@ -1056,7 +1072,7 @@ static const u8 gUnknown_83A654B[] = { [DIR_EAST] = MOVEMENT_ACTION_JUMP_SPECIAL_WITH_EFFECT_RIGHT, }; -static const u8 gUnknown_83A6550[] = { +static const u8 sWalkInPlaceSlowMovementActions[] = { [DIR_NONE] = MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_DOWN, [DIR_SOUTH] = MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_DOWN, [DIR_NORTH] = MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_UP, @@ -1064,7 +1080,7 @@ static const u8 gUnknown_83A6550[] = { [DIR_EAST] = MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_RIGHT, }; -static const u8 gUnknown_83A6555[] = { +static const u8 sWalkInPlaceNormalMovementActions[] = { [DIR_NONE] = MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_DOWN, [DIR_SOUTH] = MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_DOWN, [DIR_NORTH] = MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_UP, @@ -1072,7 +1088,7 @@ static const u8 gUnknown_83A6555[] = { [DIR_EAST] = MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_RIGHT, }; -static const u8 gUnknown_83A655A[] = { +static const u8 sWalkInPlaceFastMovementActions[] = { [DIR_NONE] = MOVEMENT_ACTION_WALK_IN_PLACE_FAST_DOWN, [DIR_SOUTH] = MOVEMENT_ACTION_WALK_IN_PLACE_FAST_DOWN, [DIR_NORTH] = MOVEMENT_ACTION_WALK_IN_PLACE_FAST_UP, @@ -1080,7 +1096,7 @@ static const u8 gUnknown_83A655A[] = { [DIR_EAST] = MOVEMENT_ACTION_WALK_IN_PLACE_FAST_RIGHT, }; -static const u8 gUnknown_83A655F[] = { +static const u8 sWalkInPlaceFasterMovementActions[] = { [DIR_NONE] = MOVEMENT_ACTION_WALK_IN_PLACE_FASTER_DOWN, [DIR_SOUTH] = MOVEMENT_ACTION_WALK_IN_PLACE_FASTER_DOWN, [DIR_NORTH] = MOVEMENT_ACTION_WALK_IN_PLACE_FASTER_UP, @@ -1088,7 +1104,7 @@ static const u8 gUnknown_83A655F[] = { [DIR_EAST] = MOVEMENT_ACTION_WALK_IN_PLACE_FASTER_RIGHT, }; -static const u8 gUnknown_83A6564[] = { +static const u8 sAcroWheelieFaceDirectionMovementActions[] = { [DIR_NONE] = MOVEMENT_ACTION_ACRO_WHEELIE_FACE_DOWN, [DIR_SOUTH] = MOVEMENT_ACTION_ACRO_WHEELIE_FACE_DOWN, [DIR_NORTH] = MOVEMENT_ACTION_ACRO_WHEELIE_FACE_UP, @@ -1096,7 +1112,7 @@ static const u8 gUnknown_83A6564[] = { [DIR_EAST] = MOVEMENT_ACTION_ACRO_WHEELIE_FACE_RIGHT, }; -static const u8 gUnknown_83A6569[] = { +static const u8 sAcroPopWheelieFaceDirectionMovementActions[] = { [DIR_NONE] = MOVEMENT_ACTION_ACRO_POP_WHEELIE_DOWN, [DIR_SOUTH] = MOVEMENT_ACTION_ACRO_POP_WHEELIE_DOWN, [DIR_NORTH] = MOVEMENT_ACTION_ACRO_POP_WHEELIE_UP, @@ -1104,7 +1120,7 @@ static const u8 gUnknown_83A6569[] = { [DIR_EAST] = MOVEMENT_ACTION_ACRO_POP_WHEELIE_RIGHT, }; -static const u8 gUnknown_83A656E[] = { +static const u8 sAcroEndWheelieFaceDirectionMovementActions[] = { [DIR_NONE] = MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_DOWN, [DIR_SOUTH] = MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_DOWN, [DIR_NORTH] = MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_UP, @@ -1112,7 +1128,7 @@ static const u8 gUnknown_83A656E[] = { [DIR_EAST] = MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_RIGHT, }; -static const u8 gUnknown_83A6573[] = { +static const u8 sAcroWheelieHopFaceDirectionMovementActions[] = { [DIR_NONE] = MOVEMENT_ACTION_ACRO_WHEELIE_HOP_FACE_DOWN, [DIR_SOUTH] = MOVEMENT_ACTION_ACRO_WHEELIE_HOP_FACE_DOWN, [DIR_NORTH] = MOVEMENT_ACTION_ACRO_WHEELIE_HOP_FACE_UP, @@ -1120,7 +1136,7 @@ static const u8 gUnknown_83A6573[] = { [DIR_EAST] = MOVEMENT_ACTION_ACRO_WHEELIE_HOP_FACE_RIGHT, }; -static const u8 gUnknown_83A6578[] = { +static const u8 sAcroWheelieHopMovementActions[] = { [DIR_NONE] = MOVEMENT_ACTION_ACRO_WHEELIE_HOP_DOWN, [DIR_SOUTH] = MOVEMENT_ACTION_ACRO_WHEELIE_HOP_DOWN, [DIR_NORTH] = MOVEMENT_ACTION_ACRO_WHEELIE_HOP_UP, @@ -1128,7 +1144,7 @@ static const u8 gUnknown_83A6578[] = { [DIR_EAST] = MOVEMENT_ACTION_ACRO_WHEELIE_HOP_RIGHT, }; -static const u8 gUnknown_83A657D[] = { +static const u8 sAcroWheelieJumpMovementActions[] = { [DIR_NONE] = MOVEMENT_ACTION_ACRO_WHEELIE_JUMP_DOWN, [DIR_SOUTH] = MOVEMENT_ACTION_ACRO_WHEELIE_JUMP_DOWN, [DIR_NORTH] = MOVEMENT_ACTION_ACRO_WHEELIE_JUMP_UP, @@ -1136,7 +1152,7 @@ static const u8 gUnknown_83A657D[] = { [DIR_EAST] = MOVEMENT_ACTION_ACRO_WHEELIE_JUMP_RIGHT, }; -static const u8 gUnknown_83A6582[] = { +static const u8 sAcroWheelieInPlaceMovementActions[] = { [DIR_NONE] = MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_DOWN, [DIR_SOUTH] = MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_DOWN, [DIR_NORTH] = MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_UP, @@ -1144,7 +1160,7 @@ static const u8 gUnknown_83A6582[] = { [DIR_EAST] = MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_RIGHT, }; -static const u8 gUnknown_83A6587[] = { +static const u8 sAcroPopWheelieMoveMovementActions[] = { [DIR_NONE] = MOVEMENT_ACTION_ACRO_POP_WHEELIE_MOVE_DOWN, [DIR_SOUTH] = MOVEMENT_ACTION_ACRO_POP_WHEELIE_MOVE_DOWN, [DIR_NORTH] = MOVEMENT_ACTION_ACRO_POP_WHEELIE_MOVE_UP, @@ -1152,7 +1168,7 @@ static const u8 gUnknown_83A6587[] = { [DIR_EAST] = MOVEMENT_ACTION_ACRO_POP_WHEELIE_MOVE_RIGHT, }; -static const u8 gUnknown_83A658C[] = { +static const u8 sAcroWheelieMoveMovementActions[] = { [DIR_NONE] = MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_DOWN, [DIR_SOUTH] = MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_DOWN, [DIR_NORTH] = MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_UP, @@ -1193,7 +1209,7 @@ static void ClearObjectEvent(struct ObjectEvent *objectEvent) objectEvent->localId = 0xFF; objectEvent->mapNum = MAP_NUM(UNDEFINED); objectEvent->mapGroup = MAP_GROUP(UNDEFINED); - objectEvent->movementActionId = 0xFF; + objectEvent->movementActionId = MOVEMENT_ACTION_NONE; } static void ClearAllObjectEvents(void) @@ -1298,54 +1314,51 @@ static u8 InitObjectEventStateFromTemplate(struct ObjectEventTemplate *template, struct ObjectEvent *objectEvent; const struct MapHeader *mapHeader; u8 objectEventId; - u8 var0; - u8 elevation; s16 x; s16 y; - s16 x2; - s16 y2; - s16 x3; - s16 y3; + bool8 isClone = FALSE; + u8 localId = 0; + s16 x2 = 0; + s16 y2 = 0; + s16 x3 = 0; + s16 y3 = 0; - var0 = 0; - elevation = 0; - x2 = 0; - y2 = 0; - x3 = 0; - y3 = 0; - - if (template->inConnection == 0xFF) + if (template->kind == OBJ_KIND_CLONE) { - var0 = 1; - elevation = template->elevation; - mapNum = template->trainerType; - mapGroup = template->trainerRange_berryTreeId & 0xFF; + isClone = TRUE; + localId = template->objUnion.clone.targetLocalId; + mapNum = template->objUnion.clone.targetMapNum; + mapGroup = template->objUnion.clone.targetMapGroup; x2 = template->x; y2 = template->y; x3 = template->x; y3 = template->y; mapHeader = Overworld_GetMapHeaderByGroupAndId(mapGroup, mapNum); - template = &(mapHeader->events->objectEvents[elevation - 1]); + template = &(mapHeader->events->objectEvents[localId - 1]); } - if (GetAvailableObjectEventId(template->localId, mapNum, mapGroup, &objectEventId) - || !sub_805E238(template, var0, x3, y3)) + + if (GetAvailableObjectEventId(template->localId, mapNum, mapGroup, &objectEventId)) return OBJECT_EVENTS_COUNT; + + if (!ShouldInitObjectEventStateFromTemplate(template, isClone, x3, y3)) + return OBJECT_EVENTS_COUNT; + objectEvent = &gObjectEvents[objectEventId]; ClearObjectEvent(objectEvent); - if (var0) + if (isClone) { - x = x2 + 7; - y = y2 + 7; + x = x2 + MAP_OFFSET; + y = y2 + MAP_OFFSET; } else { - x = template->x + 7; - y = template->y + 7; + x = template->x + MAP_OFFSET; + y = template->y + MAP_OFFSET; } objectEvent->active = TRUE; objectEvent->triggerGroundEffectsOnMove = TRUE; objectEvent->graphicsId = template->graphicsId; - objectEvent->movementType = template->movementType; + objectEvent->movementType = template->objUnion.normal.movementType; objectEvent->localId = template->localId; objectEvent->mapNum = mapNum; objectEvent->mapGroup = mapGroup; @@ -1355,123 +1368,100 @@ static u8 InitObjectEventStateFromTemplate(struct ObjectEventTemplate *template, objectEvent->currentCoords.y = y; objectEvent->previousCoords.x = x; objectEvent->previousCoords.y = y; - objectEvent->currentElevation = template->elevation; - objectEvent->previousElevation = template->elevation; - objectEvent->rangeX = template->movementRangeX; - objectEvent->rangeY = template->movementRangeY; - objectEvent->trainerType = template->trainerType; - objectEvent->trainerRange_berryTreeId = template->trainerRange_berryTreeId; + objectEvent->currentElevation = template->objUnion.normal.elevation; + objectEvent->previousElevation = template->objUnion.normal.elevation; + objectEvent->rangeX = template->objUnion.normal.movementRangeX; + objectEvent->rangeY = template->objUnion.normal.movementRangeY; + objectEvent->trainerType = template->objUnion.normal.trainerType; + objectEvent->trainerRange_berryTreeId = template->objUnion.normal.trainerRange_berryTreeId; objectEvent->mapNum = mapNum; // oops (yes this is required for matching) - objectEvent->previousMovementDirection = gInitialMovementTypeFacingDirections[template->movementType]; + objectEvent->previousMovementDirection = gInitialMovementTypeFacingDirections[template->objUnion.normal.movementType]; SetObjectEventDirection(objectEvent, objectEvent->previousMovementDirection); SetObjectEventDynamicGraphicsId(objectEvent); if (gRangedMovementTypes[objectEvent->movementType]) { if (objectEvent->rangeX == 0) - { objectEvent->rangeX++; - } if (objectEvent->rangeY == 0) - { objectEvent->rangeY++; - } } return objectEventId; } -static bool8 sub_805E238(struct ObjectEventTemplate *template, u8 var, s16 x, s16 y) +static bool8 ShouldInitObjectEventStateFromTemplate(struct ObjectEventTemplate *template, bool8 isClone, s16 x, s16 y) { - if (var) - { - if (!sub_805E27C(template, x, y)) - return FALSE; - } - if (!sub_805E2E8(template, x, y)) + if (isClone && !TemplateIsObstacleAndWithinView(template, x, y)) + return FALSE; + + if (!TemplateIsObstacleAndVisibleFromConnectingMap(template, x, y)) return FALSE; return TRUE; } -static bool8 sub_805E27C(struct ObjectEventTemplate *template, s16 x, s16 y) +static bool8 TemplateIsObstacleAndWithinView(struct ObjectEventTemplate *template, s16 x, s16 y) { - if ((u8)(template->graphicsId - OBJ_EVENT_GFX_CUT_TREE) > 1) - return TRUE; - - if (gSaveBlock1Ptr->pos.x < x) + if (template->graphicsId == OBJ_EVENT_GFX_CUT_TREE || template->graphicsId == OBJ_EVENT_GFX_ROCK_SMASH_ROCK) { - if (gSaveBlock1Ptr->pos.x + 8 < x) - return TRUE; + if (gSaveBlock1Ptr->pos.x < x) + { + if (gSaveBlock1Ptr->pos.x + (MAP_OFFSET + 1) < x) + return TRUE; + if (gSaveBlock1Ptr->pos.y - (MAP_OFFSET - 1) <= y && gSaveBlock1Ptr->pos.y + (MAP_OFFSET - 1) >= y) + return FALSE; + } + else + { + if (gSaveBlock1Ptr->pos.x - (MAP_OFFSET + 1) > x) + return TRUE; - if (gSaveBlock1Ptr->pos.y - 6 <= y && gSaveBlock1Ptr->pos.y + 6 >= y) - return FALSE; + if (gSaveBlock1Ptr->pos.y - (MAP_OFFSET - 1) <= y && gSaveBlock1Ptr->pos.y + (MAP_OFFSET - 1) >= y) + return FALSE; + } } - else - { - if (gSaveBlock1Ptr->pos.x - 8 > x) - return TRUE; - - if (gSaveBlock1Ptr->pos.y - 6 <= y && gSaveBlock1Ptr->pos.y + 6 >= y) - return FALSE; - } - return TRUE; } -static bool8 sub_805E2E8(struct ObjectEventTemplate *template, s16 x, s16 y) +static bool8 TemplateIsObstacleAndVisibleFromConnectingMap(struct ObjectEventTemplate *template, s16 unused1, s16 unused2) { - s32 x2, y2; - - if (!IsMapTypeOutdoors(GetCurrentMapType())) - return TRUE; - - x2 = VMap.Xsize - 16; - y2 = VMap.Ysize - 15; - - if ((u8)(template->graphicsId - OBJ_EVENT_GFX_CUT_TREE) > 1) - return TRUE; - - if (!gSaveBlock1Ptr->pos.x) + if (IsMapTypeOutdoors(GetCurrentMapType())) { - if (template->x <= 8) + s32 width = VMap.Xsize - MAP_OFFSET_W - 1; + s32 height = VMap.Ysize - MAP_OFFSET_H - 1; + + if (template->graphicsId == OBJ_EVENT_GFX_CUT_TREE || template->graphicsId == OBJ_EVENT_GFX_ROCK_SMASH_ROCK) { - sub_805E384(template); - return FALSE; + if (gSaveBlock1Ptr->pos.x == 0 && template->x <= (MAP_OFFSET + 1)) + { + SetHideObstacleFlag(template); + return FALSE; + } + + if (gSaveBlock1Ptr->pos.x == width && template->x >= width - (MAP_OFFSET + 1)) + { + SetHideObstacleFlag(template); + return FALSE; + } + + if (gSaveBlock1Ptr->pos.y == 0 && template->y <= (MAP_OFFSET - 1)) + { + SetHideObstacleFlag(template); + return FALSE; + } + + if (gSaveBlock1Ptr->pos.y == height && template->y >= height - (MAP_OFFSET - 1)) + { + SetHideObstacleFlag(template); + return FALSE; + } } } - - if (gSaveBlock1Ptr->pos.x == x2) - { - if (template->x >= x2 - 8) - { - sub_805E384(template); - return FALSE; - } - } - - if (!gSaveBlock1Ptr->pos.y) - { - if (template->y <= 6) - { - sub_805E384(template); - return FALSE; - } - } - - if (gSaveBlock1Ptr->pos.y == y2) - { - if (template->y >= y2 - 6) - { - sub_805E384(template); - return FALSE; - } - } - return TRUE; } -static void sub_805E384(struct ObjectEventTemplate *template) +static void SetHideObstacleFlag(struct ObjectEventTemplate *template) { - if ((u16)(template->flagId - 17) < 15) + if (template->flagId >= FLAG_TEMP_11 && template->flagId <= FLAG_TEMP_1F) FlagSet(template->flagId); } @@ -1573,14 +1563,11 @@ static u8 TrySetupObjectEventSprite(struct ObjectEventTemplate *objectEventTempl objectEvent = &gObjectEvents[objectEventId]; graphicsInfo = GetObjectEventGraphicsInfo(objectEvent->graphicsId); - if (graphicsInfo->paletteSlot == 0) - { + if (graphicsInfo->paletteSlot == PALSLOT_PLAYER) LoadPlayerObjectReflectionPalette(graphicsInfo->paletteTag, graphicsInfo->paletteSlot); - } - else if (graphicsInfo->paletteSlot == 10) - { + else if (graphicsInfo->paletteSlot == PALSLOT_NPC_SPECIAL) LoadSpecialObjectReflectionPalette(graphicsInfo->paletteTag, graphicsInfo->paletteSlot); - } + if (objectEvent->movementType == MOVEMENT_TYPE_INVISIBLE) objectEvent->invisible = TRUE; @@ -1607,7 +1594,7 @@ static u8 TrySetupObjectEventSprite(struct ObjectEventTemplate *objectEventTempl if (!objectEvent->inanimate) StartSpriteAnim(sprite, GetFaceDirectionAnimNum(objectEvent->facingDirection)); - SetObjectSubpriorityByZCoord(objectEvent->previousElevation, sprite, 1); + SetObjectSubpriorityByElevation(objectEvent->previousElevation, sprite, 1); UpdateObjectEventVisibility(objectEvent, sprite); return objectEventId; } @@ -1644,23 +1631,23 @@ u8 SpawnSpecialObjectEvent(struct ObjectEventTemplate *objectEventTemplate) return TrySpawnObjectEventTemplate(objectEventTemplate, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, cameraX, cameraY); } -int SpawnSpecialObjectEventParameterized(u8 graphicsId, u8 movementBehavior, u8 localId, s16 x, s16 y, u8 z) +int SpawnSpecialObjectEventParameterized(u8 graphicsId, u8 movementBehavior, u8 localId, s16 x, s16 y, u8 elevation) { struct ObjectEventTemplate objectEventTemplate; - x -= 7; - y -= 7; + x -= MAP_OFFSET; + y -= MAP_OFFSET; objectEventTemplate.localId = localId; objectEventTemplate.graphicsId = graphicsId; - objectEventTemplate.inConnection = 0; + objectEventTemplate.kind = OBJ_KIND_NORMAL; objectEventTemplate.x = x; objectEventTemplate.y = y; - objectEventTemplate.elevation = z; - objectEventTemplate.movementType = movementBehavior; - objectEventTemplate.movementRangeX = 0; - objectEventTemplate.movementRangeY = 0; - objectEventTemplate.trainerType = TRAINER_TYPE_NONE; - objectEventTemplate.trainerRange_berryTreeId = 0; + objectEventTemplate.objUnion.normal.elevation = elevation; + objectEventTemplate.objUnion.normal.movementType = movementBehavior; + objectEventTemplate.objUnion.normal.movementRangeX = 0; + objectEventTemplate.objUnion.normal.movementRangeY = 0; + objectEventTemplate.objUnion.normal.trainerType = TRAINER_TYPE_NONE; + objectEventTemplate.objUnion.normal.trainerRange_berryTreeId = 0; return SpawnSpecialObjectEvent(&objectEventTemplate); } @@ -1677,7 +1664,7 @@ u8 TrySpawnObjectEvent(u8 localId, u8 mapNum, u8 mapGroup) return TrySpawnObjectEventTemplate(objectEventTemplate, mapNum, mapGroup, cameraX, cameraY); } -void MakeObjectTemplateFromObjectEventGraphicsInfo(u16 graphicsId, void (*callback)(struct Sprite *), struct SpriteTemplate *spriteTemplate, const struct SubspriteTable **subspriteTables) +void CopyObjectGraphicsInfoToSpriteTemplate(u16 graphicsId, void (*callback)(struct Sprite *), struct SpriteTemplate *spriteTemplate, const struct SubspriteTable **subspriteTables) { const struct ObjectEventGraphicsInfo *graphicsInfo = GetObjectEventGraphicsInfo(graphicsId); @@ -1690,7 +1677,7 @@ void MakeObjectTemplateFromObjectEventGraphicsInfo(u16 graphicsId, void (*callba do { - if (ScriptContext1_IsScriptSetUp() != TRUE && sub_8112CAC() == TRUE) + if (ScriptContext_IsEnabled() != TRUE && sub_8112CAC() == 1) spriteTemplate->callback = sub_811246C; else spriteTemplate->callback = callback; @@ -1699,27 +1686,27 @@ void MakeObjectTemplateFromObjectEventGraphicsInfo(u16 graphicsId, void (*callba *subspriteTables = graphicsInfo->subspriteTables; } -static void MakeObjectTemplateFromObjectEventGraphicsInfoWithCallbackIndex(u16 graphicsId, u16 callbackIndex, struct SpriteTemplate *spriteTemplate, const struct SubspriteTable **subspriteTables) +static void CopyObjectGraphicsInfoToSpriteTemplate_WithMovementType(u16 graphicsId, u16 movementType, struct SpriteTemplate *spriteTemplate, const struct SubspriteTable **subspriteTables) { - MakeObjectTemplateFromObjectEventGraphicsInfo(graphicsId, sMovementTypeCallbacks[callbackIndex], spriteTemplate, subspriteTables); + CopyObjectGraphicsInfoToSpriteTemplate(graphicsId, sMovementTypeCallbacks[movementType], spriteTemplate, subspriteTables); } static void MakeObjectTemplateFromObjectEventTemplate(struct ObjectEventTemplate *objectEventTemplate, struct SpriteTemplate *spriteTemplate, const struct SubspriteTable **subspriteTables) { - MakeObjectTemplateFromObjectEventGraphicsInfoWithCallbackIndex(objectEventTemplate->graphicsId, objectEventTemplate->movementType, spriteTemplate, subspriteTables); + CopyObjectGraphicsInfoToSpriteTemplate_WithMovementType(objectEventTemplate->graphicsId, objectEventTemplate->objUnion.normal.movementType, spriteTemplate, subspriteTables); } -u8 AddPseudoObjectEvent(u16 graphicsId, SpriteCallback callback, s16 x, s16 y, u8 subpriority) +// Used to create a sprite using a graphicsId associated with object events. +u8 CreateObjectGraphicsSprite(u16 graphicsId, SpriteCallback callback, s16 x, s16 y, u8 subpriority) { struct SpriteTemplate spriteTemplate; const struct SubspriteTable *subspriteTables; u8 spriteId; - MakeObjectTemplateFromObjectEventGraphicsInfo(graphicsId, callback, &spriteTemplate, &subspriteTables); + CopyObjectGraphicsInfoToSpriteTemplate(graphicsId, callback, &spriteTemplate, &subspriteTables); if (spriteTemplate.paletteTag != TAG_NONE) - { LoadObjectEventPalette(spriteTemplate.paletteTag); - } + spriteId = CreateSprite(&spriteTemplate, x, y, subpriority); if (spriteId != MAX_SPRITES && subspriteTables != NULL) { @@ -1729,7 +1716,10 @@ u8 AddPseudoObjectEvent(u16 graphicsId, SpriteCallback callback, s16 x, s16 y, u return spriteId; } -u8 CreateVirtualObject(u8 graphicsId, u8 a1, s16 x, s16 y, u8 z, u8 direction) +#define sVirtualObjId data[0] +#define sVirtualObjElev data[1] + +u8 CreateVirtualObject(u8 graphicsId, u8 virtualObjId, s16 x, s16 y, u8 elevation, u8 direction) { u8 spriteId; struct Sprite *sprite; @@ -1738,10 +1728,10 @@ u8 CreateVirtualObject(u8 graphicsId, u8 a1, s16 x, s16 y, u8 z, u8 direction) const struct ObjectEventGraphicsInfo *graphicsInfo; graphicsInfo = GetObjectEventGraphicsInfo(graphicsId); - MakeObjectTemplateFromObjectEventGraphicsInfo(graphicsId, UpdateObjectEventSpriteSubpriorityAndVisibility, &spriteTemplate, &subspriteTables); + CopyObjectGraphicsInfoToSpriteTemplate(graphicsId, SpriteCB_VirtualObject, &spriteTemplate, &subspriteTables); *(u16 *)&spriteTemplate.paletteTag = TAG_NONE; - x += 7; - y += 7; + x += MAP_OFFSET; + y += MAP_OFFSET; SetSpritePosToOffsetMapCoords(&x, &y, 8, 16); spriteId = CreateSpriteAtEnd(&spriteTemplate, x, y, 0); if (spriteId != MAX_SPRITES) @@ -1752,26 +1742,24 @@ u8 CreateVirtualObject(u8 graphicsId, u8 a1, s16 x, s16 y, u8 z, u8 direction) sprite->y += sprite->centerToCornerVecY; sprite->oam.paletteNum = graphicsInfo->paletteSlot; sprite->coordOffsetEnabled = TRUE; - sprite->data[0] = a1; - sprite->data[1] = z; - if (graphicsInfo->paletteSlot == 10) - { + sprite->sVirtualObjId = virtualObjId; + sprite->sVirtualObjElev = elevation; + if (graphicsInfo->paletteSlot == PALSLOT_NPC_SPECIAL) LoadSpecialObjectReflectionPalette(graphicsInfo->paletteTag, graphicsInfo->paletteSlot); - } if (subspriteTables != NULL) { SetSubspriteTables(sprite, subspriteTables); sprite->subspriteMode = SUBSPRITES_IGNORE_PRIORITY; } - InitObjectPriorityByZCoord(sprite, z); - SetObjectSubpriorityByZCoord(z, sprite, 1); + InitObjectPriorityByElevation(sprite, elevation); + SetObjectSubpriorityByElevation(elevation, sprite, 1); StartSpriteAnim(sprite, GetFaceDirectionAnimNum(direction)); } return spriteId; } -u8 sub_805EB44(u8 graphicsId, u8 a1, s16 x, s16 y) +u8 CreateFameCheckerObject(u8 graphicsId, u8 localId, s16 x, s16 y) { u8 spriteId; struct Sprite *sprite; @@ -1780,7 +1768,7 @@ u8 sub_805EB44(u8 graphicsId, u8 a1, s16 x, s16 y) const struct ObjectEventGraphicsInfo *graphicsInfo; graphicsInfo = GetObjectEventGraphicsInfo(graphicsId); - MakeObjectTemplateFromObjectEventGraphicsInfo(graphicsId, SpriteCallbackDummy, &spriteTemplate, &subspriteTables); + CopyObjectGraphicsInfoToSpriteTemplate(graphicsId, SpriteCallbackDummy, &spriteTemplate, &subspriteTables); *(u16 *)&spriteTemplate.paletteTag = TAG_NONE; spriteId = CreateSpriteAtEnd(&spriteTemplate, x, y, 0); @@ -1790,11 +1778,9 @@ u8 sub_805EB44(u8 graphicsId, u8 a1, s16 x, s16 y) sprite->centerToCornerVecY = -(graphicsInfo->height >> 1); sprite->y += sprite->centerToCornerVecY; sprite->oam.paletteNum = graphicsInfo->paletteSlot; - sprite->data[0] = a1; - if (graphicsInfo->paletteSlot == 10) - { + sprite->data[0] = localId; + if (graphicsInfo->paletteSlot == PALSLOT_NPC_SPECIAL) LoadSpecialObjectReflectionPalette(graphicsInfo->paletteTag, graphicsInfo->paletteSlot); - } if (subspriteTables != NULL) { @@ -1814,17 +1800,17 @@ void TrySpawnObjectEvents(s16 cameraX, s16 cameraY) if (gMapHeader.events != NULL) { s16 left = gSaveBlock1Ptr->pos.x - 2; - s16 right = gSaveBlock1Ptr->pos.x + 17; + s16 right = gSaveBlock1Ptr->pos.x + MAP_OFFSET_W + 2; s16 top = gSaveBlock1Ptr->pos.y; - s16 bottom = gSaveBlock1Ptr->pos.y + 16; + s16 bottom = gSaveBlock1Ptr->pos.y + MAP_OFFSET_H + 2; objectCount = gMapHeader.events->objectEventCount; for (i = 0; i < objectCount; i++) { struct ObjectEventTemplate *template = &gSaveBlock1Ptr->objectEventTemplates[i]; - s16 npcX = template->x + 7; - s16 npcY = template->y + 7; + s16 npcX = template->x + MAP_OFFSET; + s16 npcY = template->y + MAP_OFFSET; if (top <= npcY && bottom >= npcY && left <= npcX && right >= npcX && !FlagGet(template->flagId)) @@ -1858,9 +1844,9 @@ void RemoveObjectEventsOutsideView(void) static void RemoveObjectEventIfOutsideView(struct ObjectEvent *objectEvent) { s16 left = gSaveBlock1Ptr->pos.x - 2; - s16 right = gSaveBlock1Ptr->pos.x + 17; + s16 right = gSaveBlock1Ptr->pos.x + MAP_OFFSET_W + 2; s16 top = gSaveBlock1Ptr->pos.y; - s16 bottom = gSaveBlock1Ptr->pos.y + 16; + s16 bottom = gSaveBlock1Ptr->pos.y + MAP_OFFSET_H + 2; if (objectEvent->currentCoords.x >= left && objectEvent->currentCoords.x <= right && objectEvent->currentCoords.y >= top && objectEvent->currentCoords.y <= bottom) @@ -1871,7 +1857,7 @@ static void RemoveObjectEventIfOutsideView(struct ObjectEvent *objectEvent) RemoveObjectEvent(objectEvent); } -void ReloadMapObjectsWithOffset(s16 x, s16 y) +void SpawnObjectEventsOnReturnToField(s16 x, s16 y) { u8 i; @@ -1879,14 +1865,12 @@ void ReloadMapObjectsWithOffset(s16 x, s16 y) for (i = 0; i < OBJECT_EVENTS_COUNT; i++) { if (gObjectEvents[i].active) - { - ReloadMapObjectWithOffset(i, x, y); - } + SpawnObjectEventOnReturnToField(i, x, y); } CreateReflectionEffectSprites(); } -static void ReloadMapObjectWithOffset(u8 objectEventId, s16 x, s16 y) +static void SpawnObjectEventOnReturnToField(u8 objectEventId, s16 x, s16 y) { u8 spriteId; struct Sprite *sprite; @@ -1900,9 +1884,7 @@ static void ReloadMapObjectWithOffset(u8 objectEventId, s16 x, s16 y) for (i = 0; i < NELEMS(gLinkPlayerObjectEvents); i++) { if (gLinkPlayerObjectEvents[i].active && objectEventId == gLinkPlayerObjectEvents[i].objEventId) - { return; - } } #undef i @@ -1911,17 +1893,16 @@ static void ReloadMapObjectWithOffset(u8 objectEventId, s16 x, s16 y) subspriteTables = NULL; graphicsInfo = GetObjectEventGraphicsInfo(objectEvent->graphicsId); spriteFrameImage.size = graphicsInfo->size; - MakeObjectTemplateFromObjectEventGraphicsInfoWithCallbackIndex(objectEvent->graphicsId, objectEvent->movementType, &spriteTemplate, &subspriteTables); + CopyObjectGraphicsInfoToSpriteTemplate_WithMovementType(objectEvent->graphicsId, objectEvent->movementType, &spriteTemplate, &subspriteTables); spriteTemplate.images = &spriteFrameImage; + *(u16 *)&spriteTemplate.paletteTag = TAG_NONE; - if (graphicsInfo->paletteSlot == 0) - { + if (graphicsInfo->paletteSlot == PALSLOT_PLAYER) LoadPlayerObjectReflectionPalette(graphicsInfo->paletteTag, graphicsInfo->paletteSlot); - } - if (graphicsInfo->paletteSlot > 9) - { + + if (graphicsInfo->paletteSlot >= PALSLOT_NPC_SPECIAL) LoadSpecialObjectReflectionPalette(graphicsInfo->paletteTag, graphicsInfo->paletteSlot); - } + *(u16 *)&spriteTemplate.paletteTag = TAG_NONE; spriteId = CreateSprite(&spriteTemplate, 0, 0, 0); if (spriteId != MAX_SPRITES) @@ -1939,19 +1920,17 @@ static void ReloadMapObjectWithOffset(u8 objectEventId, s16 x, s16 y) objectEvent->warpArrowSpriteId = CreateWarpArrowSprite(); } if (subspriteTables != NULL) - { SetSubspriteTables(sprite, subspriteTables); - } + sprite->oam.paletteNum = graphicsInfo->paletteSlot; sprite->coordOffsetEnabled = TRUE; sprite->data[0] = objectEventId; objectEvent->spriteId = spriteId; if (!objectEvent->inanimate && objectEvent->movementType != MOVEMENT_TYPE_PLAYER) - { StartSpriteAnim(sprite, GetFaceDirectionAnimNum(objectEvent->facingDirection)); - } + ResetObjectEventFldEffData(objectEvent); - SetObjectSubpriorityByZCoord(objectEvent->previousElevation, sprite, 1); + SetObjectSubpriorityByElevation(objectEvent->previousElevation, sprite, 1); } } @@ -1985,14 +1964,11 @@ void ObjectEventSetGraphicsId(struct ObjectEvent *objectEvent, u8 graphicsId) graphicsInfo = GetObjectEventGraphicsInfo(graphicsId); sprite = &gSprites[objectEvent->spriteId]; - if (graphicsInfo->paletteSlot == 0) - { + if (graphicsInfo->paletteSlot == PALSLOT_PLAYER) PatchObjectPalette(graphicsInfo->paletteTag, graphicsInfo->paletteSlot); - } - if (graphicsInfo->paletteSlot == 10) - { + + if (graphicsInfo->paletteSlot == PALSLOT_NPC_SPECIAL) LoadSpecialObjectReflectionPalette(graphicsInfo->paletteTag, graphicsInfo->paletteSlot); - } var = sprite->images->size / TILE_SIZE_4BPP; if (!sprite->usingSheet) @@ -2157,7 +2133,7 @@ void SetObjectPositionByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapGroup, s16 x, void FreeAndReserveObjectSpritePalettes(void) { FreeAllSpritePalettes(); - gReservedSpritePaletteCount = 12; + gReservedSpritePaletteCount = OBJ_PALSLOT_COUNT; } static void LoadObjectEventPalette(u16 paletteTag) @@ -2258,9 +2234,10 @@ void LoadSpecialObjectReflectionPalette(u16 tag, u8 slot) } } -u8 sub_805F6D0(u8 var) +// Unused +static u8 GetReflectionEffectPaletteSlot(u8 slot) { - return gReflectionEffectPaletteMap[var]; + return gReflectionEffectPaletteMap[slot]; } // Unused @@ -2311,8 +2288,8 @@ void TryMoveObjectEventToMapCoords(u8 localId, u8 mapNum, u8 mapGroup, s16 x, s1 u8 objectEventId; if (!TryGetObjectEventIdByLocalIdAndMap(localId, mapNum, mapGroup, &objectEventId)) { - x += 7; - y += 7; + x += MAP_OFFSET; + y += MAP_OFFSET; MoveObjectEventToMapCoords(&gObjectEvents[objectEventId], x, y); } } @@ -2347,7 +2324,7 @@ void UpdateObjectEventCoordsForCameraUpdate(void) } } -u8 GetObjectEventIdByXYZ(u16 x, u16 y, u8 z) +u8 GetObjectEventIdByPosition(u16 x, u16 y, u8 elevation) { u8 i; @@ -2355,21 +2332,20 @@ u8 GetObjectEventIdByXYZ(u16 x, u16 y, u8 z) { if (gObjectEvents[i].active) { - if (gObjectEvents[i].currentCoords.x == x && gObjectEvents[i].currentCoords.y == y && ObjectEventDoesZCoordMatch(&gObjectEvents[i], z)) - { + if (gObjectEvents[i].currentCoords.x == x + && gObjectEvents[i].currentCoords.y == y + && ObjectEventDoesElevationMatch(&gObjectEvents[i], elevation)) return i; - } } } return OBJECT_EVENTS_COUNT; } -static bool8 ObjectEventDoesZCoordMatch(struct ObjectEvent *objectEvent, u8 z) +static bool8 ObjectEventDoesElevationMatch(struct ObjectEvent *objectEvent, u8 elevation) { - if (objectEvent->currentElevation != 0 && z != 0 && objectEvent->currentElevation != z) - { + if (objectEvent->currentElevation != 0 && elevation != 0 && objectEvent->currentElevation != elevation) return FALSE; - } + return TRUE; } @@ -2569,7 +2545,7 @@ u16 GetBoulderRevealFlagByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapGroup) { // Pushable boulder object events store the flag to reveal the boulder // on the floor below in their trainer type field. - return GetObjectEventTemplateByLocalIdAndMap(localId, mapNum, mapGroup)->trainerType; + return GetObjectEventTemplateByLocalIdAndMap(localId, mapNum, mapGroup)->objUnion.normal.trainerType; } // Unused @@ -2654,8 +2630,8 @@ void OverrideTemplateCoordsForObjectEvent(const struct ObjectEvent *objectEvent) objectEventTemplate = GetBaseTemplateForObjectEvent(objectEvent); if (objectEventTemplate != NULL) { - objectEventTemplate->x = objectEvent->currentCoords.x - 7; - objectEventTemplate->y = objectEvent->currentCoords.y - 7; + objectEventTemplate->x = objectEvent->currentCoords.x - MAP_OFFSET; + objectEventTemplate->y = objectEvent->currentCoords.y - MAP_OFFSET; } } @@ -2666,7 +2642,7 @@ void OverrideMovementTypeForObjectEvent(const struct ObjectEvent *objectEvent, u objectEventTemplate = GetBaseTemplateForObjectEvent(objectEvent); if (objectEventTemplate != NULL) { - objectEventTemplate->movementType = movementType; + objectEventTemplate->objUnion.normal.movementType = movementType; } } @@ -4293,7 +4269,7 @@ static bool8 MovementType_CopyPlayer_Step0(struct ObjectEvent *objectEvent, stru static bool8 MovementType_CopyPlayer_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (gObjectEvents[gPlayerAvatar.objectEventId].movementActionId == 0xFF || gPlayerAvatar.tileTransitionState == T_TILE_CENTER) + if (gObjectEvents[gPlayerAvatar.objectEventId].movementActionId == MOVEMENT_ACTION_NONE || gPlayerAvatar.tileTransitionState == T_TILE_CENTER) { return FALSE; } @@ -4370,7 +4346,7 @@ static bool8 CopyablePlayerMovement_GoSpeed2(struct ObjectEvent *objectEvent, st direction = playerDirection; direction = GetCopyDirection(gInitialMovementTypeFacingDirections[objectEvent->movementType], objectEvent->directionSequenceIndex, direction); ObjectEventMoveDestCoords(objectEvent, direction, &x, &y); - ObjectEventSetSingleMovement(objectEvent, sprite, GetWalkFastestMovementAction(direction)); + ObjectEventSetSingleMovement(objectEvent, sprite, GetWalkFasterMovementAction(direction)); if (GetCollisionAtCoords(objectEvent, x, y, direction) || (tileCallback != NULL && !tileCallback(MapGridGetMetatileBehaviorAt(x, y)))) { ObjectEventSetSingleMovement(objectEvent, sprite, GetFaceDirectionMovementAction(direction)); @@ -4455,7 +4431,7 @@ movement_type_def(MovementType_CopyPlayerInGrass, gMovementTypeFuncs_CopyPlayerI static bool8 MovementType_CopyPlayerInGrass_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (gObjectEvents[gPlayerAvatar.objectEventId].movementActionId == 0xFF || gPlayerAvatar.tileTransitionState == T_TILE_CENTER) + if (gObjectEvents[gPlayerAvatar.objectEventId].movementActionId == MOVEMENT_ACTION_NONE || gPlayerAvatar.tileTransitionState == T_TILE_CENTER) { return FALSE; } @@ -4540,12 +4516,12 @@ static bool8 MovementType_WalkInPlace_Step0(struct ObjectEvent *objectEvent, str return TRUE; } -movement_type_def(MovementType_WalkSlowlyInPlace, gMovementTypeFuncs_WalkSlowlyInPlace) +movement_type_def(MovementType_WalkInPlaceFast, gMovementTypeFuncs_WalkInPlaceFast) -static bool8 MovementType_WalkSlowlyInPlace_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementType_WalkInPlaceFast_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { ClearObjectEventMovement(objectEvent, sprite); - ObjectEventSetSingleMovement(objectEvent, sprite, GetWalkInPlaceSlowMovementAction(objectEvent->facingDirection)); + ObjectEventSetSingleMovement(objectEvent, sprite, GetWalkInPlaceFastMovementAction(objectEvent->facingDirection)); sprite->data[1] = 1; return TRUE; } @@ -4555,7 +4531,7 @@ movement_type_def(MovementType_JogInPlace, gMovementTypeFuncs_JogInPlace) static bool8 MovementType_JogInPlace_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { ClearObjectEventMovement(objectEvent, sprite); - ObjectEventSetSingleMovement(objectEvent, sprite, GetWalkInPlaceFastMovementAction(objectEvent->facingDirection)); + ObjectEventSetSingleMovement(objectEvent, sprite, GetWalkInPlaceFasterMovementAction(objectEvent->facingDirection)); sprite->data[1] = 1; return TRUE; } @@ -4671,7 +4647,7 @@ static void ClearObjectEventMovement(struct ObjectEvent *objectEvent, struct Spr objectEvent->singleMovementActive = FALSE; objectEvent->heldMovementActive = FALSE; objectEvent->heldMovementFinished = FALSE; - objectEvent->movementActionId = 0xFF; + objectEvent->movementActionId = MOVEMENT_ACTION_NONE; sprite->data[1] = 0; } @@ -4854,11 +4830,11 @@ u8 GetCollisionAtCoords(struct ObjectEvent *objectEvent, s16 x, s16 y, u32 dir) u8 direction = dir; if (IsCoordOutsideObjectEventMovementRange(objectEvent, x, y)) return COLLISION_OUTSIDE_RANGE; - else if (MapGridIsImpassableAt(x, y) || GetMapBorderIdAt(x, y) == CONNECTION_INVALID || IsMetatileDirectionallyImpassable(objectEvent, x, y, direction)) + else if (MapGridGetCollisionAt(x, y) || GetMapBorderIdAt(x, y) == CONNECTION_INVALID || IsMetatileDirectionallyImpassable(objectEvent, x, y, direction)) return COLLISION_IMPASSABLE; else if (objectEvent->trackedByCamera && !CanCameraMoveInDirection(direction)) return COLLISION_IMPASSABLE; - else if (IsZCoordMismatchAt(objectEvent->currentElevation, x, y)) + else if (IsElevationMismatchAt(objectEvent->currentElevation, x, y)) return COLLISION_ELEVATION_MISMATCH; else if (DoesObjectCollideWithObjectAt(objectEvent, x, y)) return COLLISION_OBJECT_EVENT; @@ -4871,9 +4847,9 @@ u8 GetCollisionFlagsAtCoords(struct ObjectEvent *objectEvent, s16 x, s16 y, u8 d if (IsCoordOutsideObjectEventMovementRange(objectEvent, x, y)) flags |= 1; - if (MapGridIsImpassableAt(x, y) || GetMapBorderIdAt(x, y) == CONNECTION_INVALID || IsMetatileDirectionallyImpassable(objectEvent, x, y, direction) || (objectEvent->trackedByCamera && !CanCameraMoveInDirection(direction))) + if (MapGridGetCollisionAt(x, y) || GetMapBorderIdAt(x, y) == CONNECTION_INVALID || IsMetatileDirectionallyImpassable(objectEvent, x, y, direction) || (objectEvent->trackedByCamera && !CanCameraMoveInDirection(direction))) flags |= 2; - if (IsZCoordMismatchAt(objectEvent->currentElevation, x, y)) + if (IsElevationMismatchAt(objectEvent->currentElevation, x, y)) flags |= 4; if (DoesObjectCollideWithObjectAt(objectEvent, x, y)) flags |= 8; @@ -4930,10 +4906,8 @@ static bool8 DoesObjectCollideWithObjectAt(struct ObjectEvent *objectEvent, s16 { if ((curObject->currentCoords.x == x && curObject->currentCoords.y == y) || (curObject->previousCoords.x == x && curObject->previousCoords.y == y)) { - if (AreZCoordsCompatible(objectEvent->currentElevation, curObject->currentElevation)) - { + if (AreElevationsCompatible(objectEvent->currentElevation, curObject->currentElevation)) return TRUE; - } } } } @@ -4953,14 +4927,12 @@ bool8 IsBerryTreeSparkling(u8 localId, u8 mapNum, u8 mapGroup) return FALSE; } -void sub_80639D4(u8 localId, u8 mapNum, u8 mapGroup) +static void SetBerryTreeJustPicked(u8 localId, u8 mapNum, u8 mapGroup) { u8 objectEventId; if (!TryGetObjectEventIdByLocalIdAndMap(localId, mapNum, mapGroup, &objectEventId)) - { gSprites[gObjectEvents[objectEventId].spriteId].data[7] |= 0x04; - } } void MoveCoords(u8 direction, s16 *x, s16 *y) @@ -4969,7 +4941,8 @@ void MoveCoords(u8 direction, s16 *x, s16 *y) *y += sDirectionToVectors[direction].y; } -void sub_8063A44(u8 direction, s16 *x, s16 *y) +// Unused +static void MoveCoordsInMapCoordIncrement(u8 direction, s16 *x, s16 *y) { *x += sDirectionToVectors[direction].x << 4; *y += sDirectionToVectors[direction].y << 4; @@ -5065,7 +5038,7 @@ bool8 ObjectEventIsMovementOverridden(struct ObjectEvent *objectEvent) bool8 ObjectEventIsHeldMovementActive(struct ObjectEvent *objectEvent) { - if (objectEvent->heldMovementActive && objectEvent->movementActionId != 0xFF) + if (objectEvent->heldMovementActive && objectEvent->movementActionId != MOVEMENT_ACTION_NONE) return TRUE; return FALSE; @@ -5100,7 +5073,7 @@ void ObjectEventClearHeldMovementIfActive(struct ObjectEvent *objectEvent) void ObjectEventClearHeldMovement(struct ObjectEvent *objectEvent) { - objectEvent->movementActionId = 0xFF; + objectEvent->movementActionId = MOVEMENT_ACTION_NONE; objectEvent->heldMovementActive = FALSE; objectEvent->heldMovementFinished = FALSE; gSprites[objectEvent->spriteId].data[1] = 0; @@ -5129,21 +5102,19 @@ u8 ObjectEventGetHeldMovementActionId(struct ObjectEvent *objectEvent) if (objectEvent->heldMovementActive) return objectEvent->movementActionId; - return 0xFF; + return MOVEMENT_ACTION_NONE; } void UpdateObjectEventCurrentMovement(struct ObjectEvent *objectEvent, struct Sprite *sprite, bool8 (*callback)(struct ObjectEvent *, struct Sprite *)) { DoGroundEffects_OnSpawn(objectEvent, sprite); TryEnableObjectEventAnim(objectEvent, sprite); + if (ObjectEventIsHeldMovementActive(objectEvent)) - { ObjectEventExecHeldMovementAction(objectEvent, sprite); - } else if (!objectEvent->frozen) - { while (callback(objectEvent, sprite)); - } + DoGroundEffects_OnBeginStep(objectEvent, sprite); DoGroundEffects_OnFinishStep(objectEvent, sprite); UpdateObjectEventSpriteAnimPause(objectEvent, sprite); @@ -5151,21 +5122,20 @@ void UpdateObjectEventCurrentMovement(struct ObjectEvent *objectEvent, struct Sp ObjectEventUpdateSubpriority(objectEvent, sprite); } -void sub_8063E28(struct ObjectEvent *objectEvent, struct Sprite *sprite) +void UpdateQuestLogObjectEventCurrentMovement(struct ObjectEvent *objectEvent, struct Sprite *sprite) { DoGroundEffects_OnSpawn(objectEvent, sprite); TryEnableObjectEventAnim(objectEvent, sprite); - if (ObjectEventIsHeldMovementActive(objectEvent)) - { - if(!sprite->animBeginning) - sub_8064544(objectEvent, sprite); - } + + if (ObjectEventIsHeldMovementActive(objectEvent) && !sprite->animBeginning) + QuestLogObjectEventExecHeldMovementAction(objectEvent, sprite); if (MetatileBehavior_IsIce_2(objectEvent->currentMetatileBehavior) == TRUE - || MetatileBehavior_IsTrickHouseSlipperyFloor(objectEvent->currentMetatileBehavior) == TRUE) + || MetatileBehavior_IsTrickHouseSlipperyFloor(objectEvent->currentMetatileBehavior) == TRUE) objectEvent->disableAnim = TRUE; else objectEvent->disableAnim = FALSE; + DoGroundEffects_OnBeginStep(objectEvent, sprite); DoGroundEffects_OnFinishStep(objectEvent, sprite); UpdateObjectEventSpriteAnimPause(objectEvent, sprite); @@ -5184,8 +5154,8 @@ u8 name(u32 idx) \ return animIds[direction]; \ } -dirn_to_anim(GetFaceDirectionMovementAction, gFaceDirectionMovementActions); -dirn_to_anim(GetFaceDirectionFastMovementAction, gFaceDirectionFastMovementActions); +dirn_to_anim(GetFaceDirectionMovementAction, sFaceDirectionMovementActions); +dirn_to_anim(GetFaceDirectionFastMovementAction, sFaceDirectionFastMovementActions); u8 GetWalkSlowestMovementAction(u32 idx) { @@ -5193,45 +5163,45 @@ u8 GetWalkSlowestMovementAction(u32 idx) if (direction > DIR_EAST) direction = DIR_NONE; - return gWalkSlowestMovementActions[direction]; + return sWalkSlowestMovementActions[direction]; } -dirn_to_anim(GetWalkSlowerMovementAction, gUnknown_83A64FB); -dirn_to_anim(GetWalkSlowMovementAction, gUnknown_83A6500); -dirn_to_anim(GetWalkNormalMovementAction, gUnknown_83A6505); -dirn_to_anim(GetWalkFastMovementAction, gUnknown_83A650A); -dirn_to_anim(sub_8063FDC, gUnknown_83A650F); -dirn_to_anim(GetRideWaterCurrentMovementAction, gUnknown_83A6514); -dirn_to_anim(GetWalkFastestMovementAction, gUnknown_83A6519); -dirn_to_anim(GetSlideMovementAction, gUnknown_83A651E); -dirn_to_anim(GetPlayerRunMovementAction, gUnknown_83A6523); -dirn_to_anim(GetPlayerRunSlowMovementAction, gUnknown_83A6528); -dirn_to_anim(GetSpinMovementAction, gUnknown_83A652D); -dirn_to_anim(GetJump2MovementAction, gUnknown_83A6532); -dirn_to_anim(GetJumpInPlaceMovementAction, gUnknown_83A6537); -dirn_to_anim(GetJumpInPlaceTurnAroundMovementAction, gUnknown_83A653C); -dirn_to_anim(GetJumpMovementAction, gUnknown_83A6541); -dirn_to_anim(GetJumpSpecialMovementAction, gUnknown_83A6546); -dirn_to_anim(GetJumpSpecialWithEffectMovementAction, gUnknown_83A654B); -dirn_to_anim(GetStepInPlaceDelay32AnimId, gUnknown_83A6550); -dirn_to_anim(GetWalkInPlaceNormalMovementAction, gUnknown_83A6555); -dirn_to_anim(GetWalkInPlaceSlowMovementAction, gUnknown_83A655A); -dirn_to_anim(GetWalkInPlaceFastMovementAction, gUnknown_83A655F); +dirn_to_anim(GetWalkSlowerMovementAction, sWalkSlowerMovementActions); +dirn_to_anim(GetWalkSlowMovementAction, sWalkSlowMovementActions); +dirn_to_anim(GetWalkNormalMovementAction, sWalkNormalMovementActions); +dirn_to_anim(GetWalkFastMovementAction, sWalkFastMovementActions); +dirn_to_anim(GetGlideMovementAction, sGlideMovementActions); +dirn_to_anim(GetRideWaterCurrentMovementAction, sRideWaterCurrentMovementActions); +dirn_to_anim(GetWalkFasterMovementAction, sWalkFasterMovementActions); +dirn_to_anim(GetSlideMovementAction, sSlideMovementActions); +dirn_to_anim(GetPlayerRunMovementAction, sPlayerRunMovementActions); +dirn_to_anim(GetPlayerRunSlowMovementAction, sPlayerRunSlowMovementActions); +dirn_to_anim(GetSpinMovementAction, sSpinMovementActions); +dirn_to_anim(GetJump2MovementAction, sJump2MovementActions); +dirn_to_anim(GetJumpInPlaceMovementAction, sJumpInPlaceMovementActions); +dirn_to_anim(GetJumpInPlaceTurnAroundMovementAction, sJumpInPlaceTurnAroundMovementActions); +dirn_to_anim(GetJumpMovementAction, sJumpMovementActions); +dirn_to_anim(GetJumpSpecialMovementAction, sJumpSpecialMovementActions); +dirn_to_anim(GetJumpSpecialWithEffectMovementAction, sJumpSpecialWithEffectMovementActions); +dirn_to_anim(GetWalkInPlaceSlowMovementAction, sWalkInPlaceSlowMovementActions); +dirn_to_anim(GetWalkInPlaceNormalMovementAction, sWalkInPlaceNormalMovementActions); +dirn_to_anim(GetWalkInPlaceFastMovementAction, sWalkInPlaceFastMovementActions); +dirn_to_anim(GetWalkInPlaceFasterMovementAction, sWalkInPlaceFasterMovementActions); bool8 ObjectEventFaceOppositeDirection(struct ObjectEvent *objectEvent, u8 direction) { return ObjectEventSetHeldMovement(objectEvent, GetFaceDirectionMovementAction(GetOppositeDirection(direction))); } -dirn_to_anim(GetAcroWheelieFaceDirectionMovementAction, gUnknown_83A6564); -dirn_to_anim(GetAcroPopWheelieFaceDirectionMovementAction, gUnknown_83A6569); -dirn_to_anim(GetAcroEndWheelieFaceDirectionMovementAction, gUnknown_83A656E); -dirn_to_anim(GetAcroWheelieHopFaceDirectionMovementAction, gUnknown_83A6573); -dirn_to_anim(GetAcroWheelieHopDirectionMovementAction, gUnknown_83A6578); -dirn_to_anim(GetAcroWheelieJumpDirectionMovementAction, gUnknown_83A657D); -dirn_to_anim(GetAcroWheelieInPlaceDirectionMovementAction, gUnknown_83A6582); -dirn_to_anim(GetAcroPopWheelieMoveDirectionMovementAction, gUnknown_83A6587); -dirn_to_anim(GetAcroWheelieMoveDirectionMovementAction, gUnknown_83A658C); +dirn_to_anim(GetAcroWheelieFaceDirectionMovementAction, sAcroWheelieFaceDirectionMovementActions); +dirn_to_anim(GetAcroPopWheelieFaceDirectionMovementAction, sAcroPopWheelieFaceDirectionMovementActions); +dirn_to_anim(GetAcroEndWheelieFaceDirectionMovementAction, sAcroEndWheelieFaceDirectionMovementActions); +dirn_to_anim(GetAcroWheelieHopFaceDirectionMovementAction, sAcroWheelieHopFaceDirectionMovementActions); +dirn_to_anim(GetAcroWheelieHopMovementAction, sAcroWheelieHopMovementActions); +dirn_to_anim(GetAcroWheelieJumpMovementAction, sAcroWheelieJumpMovementActions); +dirn_to_anim(GetAcroWheelieInPlaceMovementAction, sAcroWheelieInPlaceMovementActions); +dirn_to_anim(GetAcroPopWheelieMoveMovementAction, sAcroPopWheelieMoveMovementActions); +dirn_to_anim(GetAcroWheelieMoveMovementAction, sAcroWheelieMoveMovementActions); u8 GetOppositeDirection(u8 direction) { @@ -5271,7 +5241,7 @@ static void ObjectEventExecHeldMovementAction(struct ObjectEvent *objectEvent, s } } -static void sub_8064544(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static void QuestLogObjectEventExecHeldMovementAction(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (sMovementActionFuncs[objectEvent->movementActionId][sprite->data[2]](objectEvent, sprite)) { @@ -5285,7 +5255,7 @@ static bool8 ObjectEventExecSingleMovementAction(struct ObjectEvent *objectEvent { if (sMovementActionFuncs[objectEvent->movementActionId][sprite->data[2]](objectEvent, sprite)) { - objectEvent->movementActionId = 0xFF; + objectEvent->movementActionId = MOVEMENT_ACTION_NONE; sprite->data[2] = 0; return TRUE; } @@ -6112,7 +6082,7 @@ static bool8 MovementAction_GlideRight_Step1(struct ObjectEvent *objectEvent, st return FALSE; } -void sub_80655A8(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction) +void FaceDirectionFast(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction) { SetObjectEventDirection(objectEvent, direction); ShiftStillObjectEventCoords(objectEvent); @@ -6126,7 +6096,7 @@ u8 MovementAction_FaceDownFast_Step0(struct ObjectEvent *objectEvent, struct Spr StartSpriteAnim(sprite, GetFaceDirectionAnimNum(DIR_SOUTH)); AnimateSprite(sprite); - sub_80655A8(objectEvent, sprite, DIR_SOUTH); + FaceDirectionFast(objectEvent, sprite, DIR_SOUTH); return TRUE; } @@ -6136,7 +6106,7 @@ u8 MovementAction_FaceUpFast_Step0(struct ObjectEvent *objectEvent, struct Sprit StartSpriteAnim(sprite, GetFaceDirectionAnimNum(DIR_NORTH)); AnimateSprite(sprite); - sub_80655A8(objectEvent, sprite, DIR_NORTH); + FaceDirectionFast(objectEvent, sprite, DIR_NORTH); return TRUE; } @@ -6146,7 +6116,7 @@ u8 MovementAction_FaceLeftFast_Step0(struct ObjectEvent *objectEvent, struct Spr StartSpriteAnim(sprite, GetFaceDirectionAnimNum(DIR_WEST)); AnimateSprite(sprite); - sub_80655A8(objectEvent, sprite, DIR_WEST); + FaceDirectionFast(objectEvent, sprite, DIR_WEST); return TRUE; } @@ -6156,7 +6126,7 @@ u8 MovementAction_FaceRightFast_Step0(struct ObjectEvent *objectEvent, struct Sp StartSpriteAnim(sprite, GetFaceDirectionAnimNum(DIR_EAST)); AnimateSprite(sprite); - sub_80655A8(objectEvent, sprite, DIR_EAST); + FaceDirectionFast(objectEvent, sprite, DIR_EAST); return TRUE; } @@ -8330,30 +8300,30 @@ static u8 GetReflectionTypeByMetatileBehavior(u32 behavior) return 0; } -u8 GetLedgeJumpDirection(s16 x, s16 y, u8 z) +u8 GetLedgeJumpDirection(s16 x, s16 y, u8 direction) { - static bool8 (*const gUnknown_83A705C[])(u8) = { - MetatileBehavior_IsJumpSouth, - MetatileBehavior_IsJumpNorth, - MetatileBehavior_IsJumpWest, - MetatileBehavior_IsJumpEast, + static bool8 (*const ledgeBehaviorFuncs[])(u8) = { + [DIR_SOUTH - 1] = MetatileBehavior_IsJumpSouth, + [DIR_NORTH - 1] = MetatileBehavior_IsJumpNorth, + [DIR_WEST - 1] = MetatileBehavior_IsJumpWest, + [DIR_EAST - 1] = MetatileBehavior_IsJumpEast, }; - u8 b; - u8 index = z; + u8 behavior; + u8 index = direction; - if (index == 0) - return 0; - else if (index > 4) - index -= 4; + if (index == DIR_NONE) + return DIR_NONE; + else if (index > DIR_EAST) + index -= DIR_EAST; index--; - b = MapGridGetMetatileBehaviorAt(x, y); + behavior = MapGridGetMetatileBehaviorAt(x, y); - if (gUnknown_83A705C[index](b) == 1) + if (ledgeBehaviorFuncs[index](behavior) == TRUE) return index + 1; - return 0; + return DIR_NONE; } static void SetObjectEventSpriteOamTableForLongGrass(struct ObjectEvent *objEvent, struct Sprite *sprite) @@ -8369,90 +8339,86 @@ static void SetObjectEventSpriteOamTableForLongGrass(struct ObjectEvent *objEven sprite->subspriteTableNum = 4; - if (ZCoordToPriority(objEvent->previousElevation) == 1) + if (ElevationToPriority(objEvent->previousElevation) == 1) sprite->subspriteTableNum = 5; } -bool8 IsZCoordMismatchAt(u8 z, s16 x, s16 y) +static bool8 IsElevationMismatchAt(u8 elevation, s16 x, s16 y) { - u8 mapZ; + u8 mapElevation; - if (z == 0) + if (elevation == 0) return FALSE; - mapZ = MapGridGetZCoordAt(x, y); + mapElevation = MapGridGetElevationAt(x, y); - if (mapZ == 0 || mapZ == 0xF) + if (mapElevation == 0 || mapElevation == 15) return FALSE; - if (mapZ != z) + if (mapElevation != elevation) return TRUE; return FALSE; } -static const u8 sUnknown_083A706C[] = { - 0x73, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x00, 0x00, 0x73 +static const u8 sElevationToSubpriority[] = { + 115, 115, 83, 115, 83, 115, 83, 115, 83, 115, 83, 115, 83, 0, 0, 115 }; -// Each byte corresponds to a sprite priority for an object event. -// This is directly the inverse of sObjectEventPriorities_083A708C. -static const u8 sObjectEventPriorities_083A707C[] = { +static const u8 sElevationToPriority[] = { 2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 0, 0, 2 }; -// Each byte corresponds to a sprite priority for an object event. -// This is the inverse of sObjectEventPriorities_083A707C. // 1 = Above player sprite // 2 = Below player sprite -static const u8 sObjectEventPriorities_083A708C[] = { +static const u8 sElevationToSubspriteTableNum[] = { 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 0, 0, 1, }; -void UpdateObjectEventZCoordAndPriority(struct ObjectEvent *objEvent, struct Sprite *sprite) +static void UpdateObjectEventElevationAndPriority(struct ObjectEvent *objEvent, struct Sprite *sprite) { if (objEvent->fixedPriority) return; - ObjectEventUpdateZCoord(objEvent); + ObjectEventUpdateElevation(objEvent); - sprite->subspriteTableNum = sObjectEventPriorities_083A708C[objEvent->previousElevation]; - sprite->oam.priority = sObjectEventPriorities_083A707C[objEvent->previousElevation]; + sprite->subspriteTableNum = sElevationToSubspriteTableNum[objEvent->previousElevation]; + sprite->oam.priority = sElevationToPriority[objEvent->previousElevation]; } -static void InitObjectPriorityByZCoord(struct Sprite *sprite, u8 z) +static void InitObjectPriorityByElevation(struct Sprite *sprite, u8 elevation) { - sprite->subspriteTableNum = sObjectEventPriorities_083A708C[z]; - sprite->oam.priority = sObjectEventPriorities_083A707C[z]; + sprite->subspriteTableNum = sElevationToSubspriteTableNum[elevation]; + sprite->oam.priority = sElevationToPriority[elevation]; } -u8 ZCoordToPriority(u8 z) +u8 ElevationToPriority(u8 elevation) { - return sObjectEventPriorities_083A707C[z]; + return sElevationToPriority[elevation]; } -void ObjectEventUpdateZCoord(struct ObjectEvent *objEvent) +void ObjectEventUpdateElevation(struct ObjectEvent *objEvent) { - u8 z = MapGridGetZCoordAt(objEvent->currentCoords.x, objEvent->currentCoords.y); - u8 z2 = MapGridGetZCoordAt(objEvent->previousCoords.x, objEvent->previousCoords.y); + u8 curElevation = MapGridGetElevationAt(objEvent->currentCoords.x, objEvent->currentCoords.y); + u8 prevElevation = MapGridGetElevationAt(objEvent->previousCoords.x, objEvent->previousCoords.y); - if (z == 0xF || z2 == 0xF) + if (curElevation == 15 || prevElevation == 15) return; - objEvent->currentElevation = z; + objEvent->currentElevation = curElevation; - if (z != 0 && z != 0xF) - objEvent->previousElevation = z; + if (curElevation != 0 && curElevation != 15) + objEvent->previousElevation = curElevation; } -void SetObjectSubpriorityByZCoord(u8 a, struct Sprite *sprite, u8 b) +void SetObjectSubpriorityByElevation(u8 elevation, struct Sprite *sprite, u8 subpriority) { s32 tmp = sprite->centerToCornerVecY; u32 tmpa = *(u16 *)&sprite->y; u32 tmpb = *(u16 *)&gSpriteCoordOffsetY; s32 tmp2 = (tmpa - tmp) + tmpb; u16 tmp3 = (0x10 - ((((u32)tmp2 + 8) & 0xFF) >> 4)) * 2; - sprite->subpriority = tmp3 + sUnknown_083A706C[a] + b; + sprite->subpriority = tmp3 + sElevationToSubpriority[elevation] + subpriority; } static void ObjectEventUpdateSubpriority(struct ObjectEvent *objEvent, struct Sprite *sprite) @@ -8460,10 +8426,10 @@ static void ObjectEventUpdateSubpriority(struct ObjectEvent *objEvent, struct Sp if (objEvent->fixedPriority) return; - SetObjectSubpriorityByZCoord(objEvent->previousElevation, sprite, 1); + SetObjectSubpriorityByElevation(objEvent->previousElevation, sprite, 1); } -bool8 AreZCoordsCompatible(u8 a, u8 b) +static bool8 AreElevationsCompatible(u8 a, u8 b) { if (a == 0 || b == 0) return TRUE; @@ -8759,7 +8725,7 @@ static void DoGroundEffects_OnSpawn(struct ObjectEvent *objEvent, struct Sprite if (objEvent->triggerGroundEffectsOnMove) { flags = 0; - UpdateObjectEventZCoordAndPriority(objEvent, sprite); + UpdateObjectEventElevationAndPriority(objEvent, sprite); GetAllGroundEffectFlags_OnSpawn(objEvent, &flags); SetObjectEventSpriteOamTableForLongGrass(objEvent, sprite); DoFlaggedGroundEffects(objEvent, sprite, flags); @@ -8775,7 +8741,7 @@ static void DoGroundEffects_OnBeginStep(struct ObjectEvent *objEvent, struct Spr if (objEvent->triggerGroundEffectsOnMove) { flags = 0; - UpdateObjectEventZCoordAndPriority(objEvent, sprite); + UpdateObjectEventElevationAndPriority(objEvent, sprite); GetAllGroundEffectFlags_OnBeginStep(objEvent, &flags); SetObjectEventSpriteOamTableForLongGrass(objEvent, sprite); filters_out_some_ground_effects(objEvent, &flags); @@ -8792,7 +8758,7 @@ static void DoGroundEffects_OnFinishStep(struct ObjectEvent *objEvent, struct Sp if (objEvent->triggerGroundEffectsOnStop) { flags = 0; - UpdateObjectEventZCoordAndPriority(objEvent, sprite); + UpdateObjectEventElevationAndPriority(objEvent, sprite); GetAllGroundEffectFlags_OnFinishStep(objEvent, &flags); SetObjectEventSpriteOamTableForLongGrass(objEvent, sprite); FilterOutStepOnPuddleGroundEffectIfJumping(objEvent, &flags); @@ -8802,7 +8768,7 @@ static void DoGroundEffects_OnFinishStep(struct ObjectEvent *objEvent, struct Sp } } -bool8 FreezeObjectEvent(struct ObjectEvent * objectEvent) +bool8 FreezeObjectEvent(struct ObjectEvent *objectEvent) { if (objectEvent->heldMovementActive || objectEvent->frozen) return TRUE; @@ -8834,7 +8800,7 @@ void FreezeObjectEventsExceptOne(u8 noFreeze) } } -void UnfreezeObjectEvent(struct ObjectEvent * objectEvent) +void UnfreezeObjectEvent(struct ObjectEvent *objectEvent) { if (objectEvent->active && objectEvent->frozen) { @@ -8854,10 +8820,6 @@ void UnfreezeObjectEvents(void) } } -#define tObjectEventId data[0] -#define tZCoord data[1] -#define tInvisible data[2] - #define tDirection data[3] #define tSpeed data[4] #define tStepNo data[5] @@ -9221,7 +9183,7 @@ bool8 SpriteAnimEnded(struct Sprite *sprite) return FALSE; } -void UpdateObjectEventSpriteVisibility(struct Sprite *sprite, bool8 invisible) +void UpdateObjectEventSpriteInvisibility(struct Sprite *sprite, bool8 invisible) { u16 x, y; s16 x2, y2; @@ -9242,53 +9204,51 @@ void UpdateObjectEventSpriteVisibility(struct Sprite *sprite, bool8 invisible) x2 = x - (sprite->centerToCornerVecX >> 1); y2 = y - (sprite->centerToCornerVecY >> 1); - if ((s16)x > 255 || x2 < -16) + if ((s16)x >= DISPLAY_WIDTH + 16 || x2 < -16) sprite->invisible = TRUE; - if ((s16)y > 175 || y2 < -16) + if ((s16)y >= DISPLAY_HEIGHT + 16 || y2 < -16) sprite->invisible = TRUE; } -void UpdateObjectEventSpriteSubpriorityAndVisibility(struct Sprite *sprite) +#define sInvisible data[2] +#define sAnimNum data[3] +#define sAnimState data[4] + +void SpriteCB_VirtualObject(struct Sprite *sprite) { - DoObjectUnionRoomWarpYDisplacement(sprite); - SetObjectSubpriorityByZCoord(sprite->tZCoord, sprite, 1); - UpdateObjectEventSpriteVisibility(sprite, sprite->tInvisible); + VirtualObject_UpdateAnim(sprite); + SetObjectSubpriorityByElevation(sprite->sVirtualObjElev, sprite, 1); + UpdateObjectEventSpriteInvisibility(sprite, sprite->sInvisible); } -void sub_8068FD0(void) +// Unused +static void DestroyVirtualObjects(void) { s32 i; for (i = 0; i < MAX_SPRITES; i++) { struct Sprite *sprite = &gSprites[i]; - if (sprite->inUse && sprite->callback == UpdateObjectEventSpriteSubpriorityAndVisibility) - { + if (sprite->inUse && sprite->callback == SpriteCB_VirtualObject) DestroySprite(sprite); - } } } -#define tUnionRoomWarpAnimNo data[3] -#define tUnionRoomWarpAnimState data[4] - -static int GetObjectEventSpriteId(u8 objectEventId) +static int GetVirtualObjectSpriteId(u8 virtualObjId) { int i; for (i = 0; i < MAX_SPRITES; i++) { struct Sprite *sprite = &gSprites[i]; - if (sprite->inUse && sprite->callback == UpdateObjectEventSpriteSubpriorityAndVisibility && (u8)sprite->tObjectEventId == objectEventId) - { + if (sprite->inUse && sprite->callback == SpriteCB_VirtualObject && (u8)sprite->sVirtualObjId == virtualObjId) return i; - } } return MAX_SPRITES; } -void TurnVirtualObject(u8 objectEventId, u8 direction) +void TurnVirtualObject(u8 virtualObjId, u8 direction) { u8 animNum; - u8 spriteId = GetObjectEventSpriteId(objectEventId); + u8 spriteId = GetVirtualObjectSpriteId(virtualObjId); if (spriteId != MAX_SPRITES) { struct Sprite *sprite = &gSprites[spriteId]; @@ -9296,16 +9256,14 @@ void TurnVirtualObject(u8 objectEventId, u8 direction) } } -void RfuUnionObjectSetFacingDirection(u8 objectEventId, u8 direction) +void SetVirtualObjectGraphics(u8 virtualObjId, u8 direction) { - u8 animNum; - int spriteId = GetObjectEventSpriteId(objectEventId); - u16 baseBlock; + int spriteId = GetVirtualObjectSpriteId(virtualObjId); if (spriteId != MAX_SPRITES) { struct Sprite *sprite = &gSprites[spriteId]; - const struct ObjectEventGraphicsInfo * info = GetObjectEventGraphicsInfo(direction); - baseBlock = sprite->oam.tileNum; + const struct ObjectEventGraphicsInfo *info = GetObjectEventGraphicsInfo(direction); + u16 baseBlock = sprite->oam.tileNum; sprite->oam = *info->oam; sprite->oam.tileNum = baseBlock; sprite->oam.paletteNum = info->paletteSlot; @@ -9325,110 +9283,110 @@ void RfuUnionObjectSetFacingDirection(u8 objectEventId, u8 direction) } } -void RfuUnionObjectToggleInvisibility(u8 objectEventId, bool32 invisible) +void SetVirtualObjectInvisibility(u8 virtualObjId, bool32 invisible) { - u8 spriteId = GetObjectEventSpriteId(objectEventId); + u8 spriteId = GetVirtualObjectSpriteId(virtualObjId); if (spriteId != MAX_SPRITES) { if (invisible) - gSprites[spriteId].tInvisible = TRUE; + gSprites[spriteId].sInvisible = TRUE; else - gSprites[spriteId].tInvisible = FALSE; + gSprites[spriteId].sInvisible = FALSE; } } -bool32 RfuUnionObjectIsInvisible(u8 objectEventId) +bool32 IsVirtualObjectInvisible(u8 virtualObjId) { - u8 spriteId = GetObjectEventSpriteId(objectEventId); + u8 spriteId = GetVirtualObjectSpriteId(virtualObjId); if (spriteId == MAX_SPRITES) return FALSE; - return gSprites[spriteId].tInvisible == TRUE; + return gSprites[spriteId].sInvisible == TRUE; } -void RfuUnionObjectStartWarp(u8 objectEventId, u8 animNo) +void SetVirtualObjectSpriteAnim(u8 virtualObjId, u8 animNo) { - u8 spriteId = GetObjectEventSpriteId(objectEventId); + u8 spriteId = GetVirtualObjectSpriteId(virtualObjId); if (spriteId != MAX_SPRITES) { - gSprites[spriteId].tUnionRoomWarpAnimNo = animNo; - gSprites[spriteId].tUnionRoomWarpAnimState = 0; + gSprites[spriteId].sAnimNum = animNo; + gSprites[spriteId].sAnimState = 0; } } -static void DoObjectUnionRoomWarpYDisplacementUpwards(struct Sprite *sprite) +static void MoveUnionRoomObjectUp(struct Sprite *sprite) { - switch (sprite->tUnionRoomWarpAnimState) + switch (sprite->sAnimState) { case 0: sprite->y2 = 0; - sprite->tUnionRoomWarpAnimState++; + sprite->sAnimState++; // fallthrough case 1: - if ((sprite->y2 -= 8) == -160) + if ((sprite->y2 -= 8) == -DISPLAY_HEIGHT) { sprite->y2 = 0; - sprite->tInvisible = 1; - sprite->tUnionRoomWarpAnimNo = 0; - sprite->tUnionRoomWarpAnimState = 0; + sprite->sInvisible = TRUE; + sprite->sAnimNum = 0; + sprite->sAnimState = 0; } break; } } -static void DoObjectUnionRoomWarpYDisplacementDownwards(struct Sprite *sprite) +static void MoveUnionRoomObjectDown(struct Sprite *sprite) { - switch (sprite->tUnionRoomWarpAnimState) + switch (sprite->sAnimState) { case 0: - sprite->y2 = -160; - sprite->tUnionRoomWarpAnimState++; + sprite->y2 = -DISPLAY_HEIGHT; + sprite->sAnimState++; // fallthrough case 1: if ((sprite->y2 += 8) == 0) { - sprite->tUnionRoomWarpAnimNo = 0; - sprite->tUnionRoomWarpAnimState = 0; + sprite->sAnimNum = 0; + sprite->sAnimState = 0; } break; } } -static void DoObjectUnionRoomWarpYDisplacement(struct Sprite *sprite) +static void VirtualObject_UpdateAnim(struct Sprite *sprite) { - switch (sprite->tUnionRoomWarpAnimNo) + switch (sprite->sAnimNum) { - case 0: + case UNION_ROOM_SPAWN_NONE: break; - case 1: - DoObjectUnionRoomWarpYDisplacementDownwards(sprite); + case UNION_ROOM_SPAWN_IN: + MoveUnionRoomObjectDown(sprite); break; - case 2: - DoObjectUnionRoomWarpYDisplacementUpwards(sprite); + case UNION_ROOM_SPAWN_OUT: + MoveUnionRoomObjectUp(sprite); break; default: - sprite->tUnionRoomWarpAnimNo = 0; + sprite->sAnimNum = 0; AGB_ASSERT_EX(0, ABSPATH("evobjmv.c"), 13331); } } -bool32 RfuUnionObjectIsWarping(u8 objectEventId) +bool32 IsVirtualObjectAnimating(u8 virtualObjId) { - u8 spriteId = GetObjectEventSpriteId(objectEventId); + u8 spriteId = GetVirtualObjectSpriteId(virtualObjId); if (spriteId == MAX_SPRITES) return FALSE; - if (gSprites[spriteId].tUnionRoomWarpAnimNo) + if (gSprites[spriteId].sAnimNum) return TRUE; else return FALSE; } -#undef tUnionRoomWarpAnimState -#undef tUnionRoomWarpAnimNo -#undef tInvisible -#undef tZCoord -#undef tObjectEventId +#undef sVirtualObjId +#undef sVirtualObjElev +#undef sInvisible +#undef sAnimNum +#undef sAnimState -u32 StartFieldEffectForObjectEvent(u8 fieldEffectId, struct ObjectEvent * objectEvent) +u32 StartFieldEffectForObjectEvent(u8 fieldEffectId, struct ObjectEvent *objectEvent) { ObjectEventGetLocalIdAndMap(objectEvent, (u8 *)&gFieldEffectArguments[0], (u8 *)&gFieldEffectArguments[1], (u8 *)&gFieldEffectArguments[2]); return FieldEffectStart(fieldEffectId); diff --git a/src/evolution_graphics.c b/src/evolution_graphics.c index e0ec9197e..3b52e06d1 100644 --- a/src/evolution_graphics.c +++ b/src/evolution_graphics.c @@ -79,7 +79,7 @@ static const u16 sEvolutionSparkleMatrixScales[12] = { 0x100 }; -static const s16 sUnref_841EF28[][2] = { +static const s16 sUnused[][2] = { {-4, 0x10}, {-3, 0x30}, {-2, 0x50}, diff --git a/src/evolution_scene.c b/src/evolution_scene.c index 8ab93a353..c26869606 100644 --- a/src/evolution_scene.c +++ b/src/evolution_scene.c @@ -22,7 +22,6 @@ #include "task.h" #include "text_window.h" #include "trig.h" -#include "battle_string_ids.h" #include "constants/moves.h" #include "constants/songs.h" #include "constants/pokemon.h" @@ -73,9 +72,9 @@ static const u16 sBgAnim_Pal[] = INCBIN_U16("graphics/evolution_scene/transition static const u8 sText_ShedinjaJapaneseName[] = _("ヌケニン"); -static const u8 unref_83F8445[] = _("{COLOR DARK_GRAY}{HIGHLIGHT WHITE}{SHADOW LIGHT_GRAY}"); +static const u8 sText_UnusedColors[] = _("{COLOR DARK_GRAY}{HIGHLIGHT WHITE}{SHADOW LIGHT_GRAY}"); -static const u8 unref_83F844F[][10] = { +static const u8 sText_UnusedArrows[][10] = { _("▶\n "), _(" \n▶"), _(" \n ") @@ -1332,7 +1331,7 @@ static void Task_TradeEvolutionScene(u8 taskId) case T_MVSTATE_PRINT_YES_NO: if (!IsTextPrinterActive(0) && !IsSEPlaying()) { - LoadUserWindowBorderGfx(0, 0xA8, 0xE0); + LoadUserWindowGfx2(0, 0xA8, 0xE0); CreateYesNoMenu(&gTradeEvolutionSceneYesNoWindowTemplate, FONT_3, 0, 2, 0xA8, 0xE, 0); sEvoCursorPos = 0; gTasks[taskId].tLearnMoveState++; diff --git a/src/fame_checker.c b/src/fame_checker.c index 3d7b15f2d..ac19ef373 100644 --- a/src/fame_checker.c +++ b/src/fame_checker.c @@ -530,7 +530,7 @@ static const struct SpriteTemplate sSpriteTemplate_SelectorCursor = { SPRITETAG_SELECTOR_CURSOR, SPRITETAG_SELECTOR_CURSOR, &sSelectorCursorOamData, sSelectorCursorAnims, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy }; -static const u8 filler_845FC5C[8] = {}; // ??? +static const u8 sUnused[8] = {}; // ??? static const struct OamData sQuestionMarkTileOamData = { .shape = ST_OAM_V_RECTANGLE, @@ -667,7 +667,7 @@ static void MainCB2_LoadFameChecker(void) LoadPalette(gFameCheckerBgPals + 0x10, 0x10, 0x20); CopyToBgTilemapBufferRect(2, gFameCheckerBg2Tilemap, 0, 0, 32, 32); CopyToBgTilemapBufferRect_ChangePalette(1, sFameCheckerTilemap, 30, 0, 32, 32, 0x11); - LoadPalette(stdpal_get(2), 0xF0, 0x20); + LoadPalette(GetTextWindowPalette(2), 0xF0, 0x20); gMain.state++; break; case 4: @@ -1104,7 +1104,7 @@ static bool8 CreateAllFlavorTextIcons(u8 who) { if ((gSaveBlock1Ptr->fameChecker[sFameCheckerData->unlockedPersons[who]].flavorTextFlags >> i) & 1) { - sFameCheckerData->spriteIds[i] = sub_805EB44( + sFameCheckerData->spriteIds[i] = CreateFameCheckerObject( sFameCheckerArrayNpcGraphicsIds[sFameCheckerData->unlockedPersons[who] * 6 + i], i, 47 * (i % 3) + 0x72, diff --git a/src/field_camera.c b/src/field_camera.c index 61521a227..e2839d76e 100644 --- a/src/field_camera.c +++ b/src/field_camera.c @@ -34,7 +34,7 @@ static void CameraPanningCB_PanAhead(void); static struct FieldCameraOffset sFieldCameraOffset; static s16 sHorizontalCameraPan; static s16 sVerticalCameraPan; -static u8 gUnknown_3000E9C; +static u8 sBikeCameraPanFlag; static void (*sFieldCameraPanningCallback)(void); struct CameraObject gFieldCamera; @@ -211,13 +211,13 @@ void CurrentMapDrawMetatileAt(int x, int y) } } -void DrawDoorMetatileAt(int x, int y, const u16 *arr) +void DrawDoorMetatileAt(int x, int y, const u16 *tiles) { int offset = MapPosToBgTilemapOffset(&sFieldCameraOffset, x, y); if (offset >= 0) { - DrawMetatile(1, arr, offset); + DrawMetatile(1, tiles, offset); // sFieldCameraOffset.copyBGToVRAM = TRUE; } } @@ -225,7 +225,7 @@ void DrawDoorMetatileAt(int x, int y, const u16 *arr) static void DrawMetatileAt(const struct MapLayout *mapLayout, u16 offset, int x, int y) { u16 metatileId = MapGridGetMetatileIdAt(x, y); - u16 *metatiles; + const u16 *metatiles; if (metatileId > NUM_METATILES_TOTAL) metatileId = 0; @@ -239,16 +239,16 @@ static void DrawMetatileAt(const struct MapLayout *mapLayout, u16 offset, int x, DrawMetatile(MapGridGetMetatileLayerTypeAt(x, y), metatiles + metatileId * 8, offset); } -static void DrawMetatile(s32 metatileLayerType, const u16 *metatiles, u16 offset) +static void DrawMetatile(s32 metatileLayerType, const u16 *tiles, u16 offset) { switch (metatileLayerType) { - case 2: // LAYER_TYPE_ + case METATILE_LAYER_TYPE_SPLIT: // Draw metatile's bottom layer to the bottom background layer. - gBGTilemapBuffers3[offset] = metatiles[0]; - gBGTilemapBuffers3[offset + 1] = metatiles[1]; - gBGTilemapBuffers3[offset + 0x20] = metatiles[2]; - gBGTilemapBuffers3[offset + 0x21] = metatiles[3]; + gBGTilemapBuffers3[offset] = tiles[0]; + gBGTilemapBuffers3[offset + 1] = tiles[1]; + gBGTilemapBuffers3[offset + 0x20] = tiles[2]; + gBGTilemapBuffers3[offset + 0x21] = tiles[3]; // Draw transparent tiles to the middle background layer. gBGTilemapBuffers1[offset] = 0; @@ -257,23 +257,23 @@ static void DrawMetatile(s32 metatileLayerType, const u16 *metatiles, u16 offset gBGTilemapBuffers1[offset + 0x21] = 0; // Draw metatile's top layer to the top background layer. - gBGTilemapBuffers2[offset] = metatiles[4]; - gBGTilemapBuffers2[offset + 1] = metatiles[5]; - gBGTilemapBuffers2[offset + 0x20] = metatiles[6]; - gBGTilemapBuffers2[offset + 0x21] = metatiles[7]; + gBGTilemapBuffers2[offset] = tiles[4]; + gBGTilemapBuffers2[offset + 1] = tiles[5]; + gBGTilemapBuffers2[offset + 0x20] = tiles[6]; + gBGTilemapBuffers2[offset + 0x21] = tiles[7]; break; - case 1: // LAYER_TYPE_COVERED_BY_OBJECTS + case METATILE_LAYER_TYPE_COVERED: // Draw metatile's bottom layer to the bottom background layer. - gBGTilemapBuffers3[offset] = metatiles[0]; - gBGTilemapBuffers3[offset + 1] = metatiles[1]; - gBGTilemapBuffers3[offset + 0x20] = metatiles[2]; - gBGTilemapBuffers3[offset + 0x21] = metatiles[3]; + gBGTilemapBuffers3[offset] = tiles[0]; + gBGTilemapBuffers3[offset + 1] = tiles[1]; + gBGTilemapBuffers3[offset + 0x20] = tiles[2]; + gBGTilemapBuffers3[offset + 0x21] = tiles[3]; // Draw metatile's top layer to the middle background layer. - gBGTilemapBuffers1[offset] = metatiles[4]; - gBGTilemapBuffers1[offset + 1] = metatiles[5]; - gBGTilemapBuffers1[offset + 0x20] = metatiles[6]; - gBGTilemapBuffers1[offset + 0x21] = metatiles[7]; + gBGTilemapBuffers1[offset] = tiles[4]; + gBGTilemapBuffers1[offset + 1] = tiles[5]; + gBGTilemapBuffers1[offset + 0x20] = tiles[6]; + gBGTilemapBuffers1[offset + 0x21] = tiles[7]; // Draw transparent tiles to the top background layer. gBGTilemapBuffers2[offset] = 0; @@ -281,7 +281,7 @@ static void DrawMetatile(s32 metatileLayerType, const u16 *metatiles, u16 offset gBGTilemapBuffers2[offset + 0x20] = 0; gBGTilemapBuffers2[offset + 0x21] = 0; break; - case 0: // LAYER_TYPE_NORMAL + case METATILE_LAYER_TYPE_NORMAL: // Draw garbage to the bottom background layer. gBGTilemapBuffers3[offset] = 0x3014; gBGTilemapBuffers3[offset + 1] = 0x3014; @@ -289,16 +289,16 @@ static void DrawMetatile(s32 metatileLayerType, const u16 *metatiles, u16 offset gBGTilemapBuffers3[offset + 0x21] = 0x3014; // Draw metatile's bottom layer to the middle background layer. - gBGTilemapBuffers1[offset] = metatiles[0]; - gBGTilemapBuffers1[offset + 1] = metatiles[1]; - gBGTilemapBuffers1[offset + 0x20] = metatiles[2]; - gBGTilemapBuffers1[offset + 0x21] = metatiles[3]; + gBGTilemapBuffers1[offset] = tiles[0]; + gBGTilemapBuffers1[offset + 1] = tiles[1]; + gBGTilemapBuffers1[offset + 0x20] = tiles[2]; + gBGTilemapBuffers1[offset + 0x21] = tiles[3]; // Draw metatile's top layer to the top background layer, which covers object event sprites. - gBGTilemapBuffers2[offset] = metatiles[4]; - gBGTilemapBuffers2[offset + 1] = metatiles[5]; - gBGTilemapBuffers2[offset + 0x20] = metatiles[6]; - gBGTilemapBuffers2[offset + 0x21] = metatiles[7]; + gBGTilemapBuffers2[offset] = tiles[4]; + gBGTilemapBuffers2[offset + 1] = tiles[5]; + gBGTilemapBuffers2[offset + 0x20] = tiles[6]; + gBGTilemapBuffers2[offset + 0x21] = tiles[7]; break; } ScheduleBgCopyTilemapToVram(1); @@ -513,7 +513,7 @@ void SetCameraPanning(s16 a, s16 b) void InstallCameraPanAheadCallback(void) { sFieldCameraPanningCallback = CameraPanningCB_PanAhead; - gUnknown_3000E9C = 0; + sBikeCameraPanFlag = FALSE; sHorizontalCameraPan = 0; sVerticalCameraPan = 32; } @@ -540,13 +540,13 @@ static void CameraPanningCB_PanAhead(void) // this code is never reached. if (gPlayerAvatar.tileTransitionState == 1) { - gUnknown_3000E9C ^= 1; - if (gUnknown_3000E9C == 0) + sBikeCameraPanFlag ^= 1; + if (sBikeCameraPanFlag == FALSE) return; } else { - gUnknown_3000E9C = 0; + sBikeCameraPanFlag = FALSE; } var = GetPlayerMovementDirection(); diff --git a/src/field_control_avatar.c b/src/field_control_avatar.c index 9b3d23fe7..615a70e60 100644 --- a/src/field_control_avatar.c +++ b/src/field_control_avatar.c @@ -97,7 +97,7 @@ void FieldGetPlayerInput(struct FieldInput *input, u16 newKeys, u16 heldKeys) u8 tileTransitionState = gPlayerAvatar.tileTransitionState; bool8 forcedMove = MetatileBehavior_IsForcedMovementTile(GetPlayerCurMetatileBehavior()); - if (!ScriptContext1_IsScriptSetUp() && IsQuestLogInputDpad() == TRUE) + if (!ScriptContext_IsEnabled() && IsQuestLogInputDpad() == TRUE) { QuestLogOverrideJoyVars(input, &newKeys, &heldKeys); } @@ -197,10 +197,10 @@ int ProcessPlayerFieldInput(struct FieldInput *input) u16 metatileBehavior; u32 metatileAttributes; - ResetFacingNpcOrSignPostVars(); + ResetFacingNpcOrSignpostVars(); playerDirection = GetPlayerFacingDirection(); GetPlayerPosition(&position); - metatileAttributes = MapGridGetMetatileAttributeAt(position.x, position.y, 0xFF); + metatileAttributes = MapGridGetMetatileAttributeAt(position.x, position.y, METATILE_ATTRIBUTES_ALL); metatileBehavior = MapGridGetMetatileBehaviorAt(position.x, position.y); FieldClearPlayerInput(&gInputToStoreInQuestLogMaybe); @@ -300,7 +300,7 @@ int ProcessPlayerFieldInput(struct FieldInput *input) void FieldInput_HandleCancelSignpost(struct FieldInput * input) { - if (ScriptContext1_IsScriptSetUp() == TRUE) + if (ScriptContext_IsEnabled() == TRUE) { if (gWalkAwayFromSignInhibitTimer != 0) gWalkAwayFromSignInhibitTimer--; @@ -318,13 +318,13 @@ void FieldInput_HandleCancelSignpost(struct FieldInput * input) RegisterQuestLogInput(QL_INPUT_LEFT); else if (input->dpadDirection == DIR_EAST) RegisterQuestLogInput(QL_INPUT_RIGHT); - ScriptContext1_SetupScript(EventScript_CancelMessageBox); - ScriptContext2_Enable(); + ScriptContext_SetupScript(EventScript_CancelMessageBox); + LockPlayerFieldControls(); } else if (input->pressedStartButton) { - ScriptContext1_SetupScript(EventScript_CancelMessageBox); - ScriptContext2_Enable(); + ScriptContext_SetupScript(EventScript_CancelMessageBox); + LockPlayerFieldControls(); if (!FuncIsActiveTask(Task_QuestLogPlayback_OpenStartMenu)) CreateTask(Task_QuestLogPlayback_OpenStartMenu, 8); } @@ -334,7 +334,7 @@ void FieldInput_HandleCancelSignpost(struct FieldInput * input) static void Task_QuestLogPlayback_OpenStartMenu(u8 taskId) { - if (!ScriptContext2_IsEnabled()) + if (!ArePlayerFieldControlsLocked()) { PlaySE(SE_WIN_OPEN); ShowStartMenu(); @@ -345,7 +345,7 @@ static void Task_QuestLogPlayback_OpenStartMenu(u8 taskId) static void GetPlayerPosition(struct MapPosition *position) { PlayerGetDestCoords(&position->x, &position->y); - position->height = PlayerGetZCoord(); + position->elevation = PlayerGetElevation(); } static void GetInFrontOfPlayerPosition(struct MapPosition *position) @@ -354,10 +354,10 @@ static void GetInFrontOfPlayerPosition(struct MapPosition *position) GetXYCoordsOneStepInFrontOfPlayer(&position->x, &position->y); PlayerGetDestCoords(&x, &y); - if (MapGridGetZCoordAt(x, y) != 0) - position->height = PlayerGetZCoord(); + if (MapGridGetElevationAt(x, y) != 0) + position->elevation = PlayerGetElevation(); else - position->height = 0; + position->elevation = 0; } static u16 GetPlayerCurMetatileBehavior(void) @@ -379,7 +379,7 @@ static bool8 TryStartInteractionScript(struct MapPosition *position, u16 metatil && script != EventScript_PC) PlaySE(SE_SELECT); - ScriptContext1_SetupScript(script); + ScriptContext_SetupScript(script); return TRUE; } @@ -410,9 +410,9 @@ const u8 *GetInteractedLinkPlayerScript(struct MapPosition *position, u8 metatil s32 i; if (!MetatileBehavior_IsCounter(MapGridGetMetatileBehaviorAt(position->x, position->y))) - objectEventId = GetObjectEventIdByXYZ(position->x, position->y, position->height); + objectEventId = GetObjectEventIdByPosition(position->x, position->y, position->elevation); else - objectEventId = GetObjectEventIdByXYZ(position->x + gDirectionToVectors[direction].x, position->y + gDirectionToVectors[direction].y, position->height); + objectEventId = GetObjectEventIdByPosition(position->x + gDirectionToVectors[direction].x, position->y + gDirectionToVectors[direction].y, position->elevation); if (objectEventId == OBJECT_EVENTS_COUNT || gObjectEvents[objectEventId].localId == OBJ_EVENT_ID_PLAYER) return NULL; @@ -434,14 +434,14 @@ static const u8 *GetInteractedObjectEventScript(struct MapPosition *position, u8 u8 objectEventId; const u8 *script; - objectEventId = GetObjectEventIdByXYZ(position->x, position->y, position->height); + objectEventId = GetObjectEventIdByPosition(position->x, position->y, position->elevation); if (objectEventId == OBJECT_EVENTS_COUNT || gObjectEvents[objectEventId].localId == OBJ_EVENT_ID_PLAYER) { if (MetatileBehavior_IsCounter(metatileBehavior) != TRUE) return NULL; // Look for an object event on the other side of the counter. - objectEventId = GetObjectEventIdByXYZ(position->x + gDirectionToVectors[direction].x, position->y + gDirectionToVectors[direction].y, position->height); + objectEventId = GetObjectEventIdByPosition(position->x + gDirectionToVectors[direction].x, position->y + gDirectionToVectors[direction].y, position->elevation); if (objectEventId == OBJECT_EVENTS_COUNT || gObjectEvents[objectEventId].localId == OBJ_EVENT_ID_PLAYER) return NULL; } @@ -462,7 +462,7 @@ static const u8 *GetInteractedObjectEventScript(struct MapPosition *position, u8 static const u8 *GetInteractedBackgroundEventScript(struct MapPosition *position, u8 metatileBehavior, u8 direction) { u8 signpostType; - const struct BgEvent *bgEvent = GetBackgroundEventAtPosition(&gMapHeader, position->x - 7, position->y - 7, position->height); + const struct BgEvent *bgEvent = GetBackgroundEventAtPosition(&gMapHeader, position->x - MAP_OFFSET, position->y - MAP_OFFSET, position->elevation); if (bgEvent == NULL) return NULL; @@ -507,7 +507,7 @@ static const u8 *GetInteractedBackgroundEventScript(struct MapPosition *position } if (signpostType != SIGNPOST_NA) - MsgSetSignPost(); + MsgSetSignpost(); gSpecialVar_Facing = direction; return bgEvent->bgUnion.script; } @@ -577,22 +577,22 @@ static const u8 *GetInteractedMetatileScript(struct MapPosition *position, u8 me return CableClub_EventScript_ShowBattleRecords; if (MetatileBehavior_IsIndigoPlateauSign1(metatileBehavior) == TRUE) { - MsgSetSignPost(); + MsgSetSignpost(); return EventScript_Indigo_UltimateGoal; } if (MetatileBehavior_IsIndigoPlateauSign2(metatileBehavior) == TRUE) { - MsgSetSignPost(); + MsgSetSignpost(); return EventScript_Indigo_HighestAuthority; } if (MetatileBehavior_IsPlayerFacingPokeMartSign(metatileBehavior, direction) == TRUE) { - MsgSetSignPost(); + MsgSetSignpost(); return EventScript_PokemartSign; } if (MetatileBehavior_IsPlayerFacingPokemonCenterSign(metatileBehavior, direction) == TRUE) { - MsgSetSignPost(); + MsgSetSignpost(); return EventScript_PokecenterSign; } return NULL; @@ -632,11 +632,11 @@ static bool8 TryStartStepBasedScript(struct MapPosition *position, u16 metatileB static bool8 TryStartCoordEventScript(struct MapPosition *position) { - const u8 *script = GetCoordEventScriptAtPosition(&gMapHeader, position->x - 7, position->y - 7, position->height); + const u8 *script = GetCoordEventScriptAtPosition(&gMapHeader, position->x - MAP_OFFSET, position->y - MAP_OFFSET, position->elevation); if (script == NULL) return FALSE; - ScriptContext1_SetupScript(script); + ScriptContext_SetupScript(script); return TRUE; } @@ -659,18 +659,18 @@ static bool8 TryStartStepCountScript(u16 metatileBehavior) { if (UpdateVsSeekerStepCounter() == TRUE) { - ScriptContext1_SetupScript(EventScript_VsSeekerChargingDone); + ScriptContext_SetupScript(EventScript_VsSeekerChargingDone); return TRUE; } else if (UpdatePoisonStepCounter() == TRUE) { - ScriptContext1_SetupScript(EventScript_FieldPoison); + ScriptContext_SetupScript(EventScript_FieldPoison); return TRUE; } else if (ShouldEggHatch()) { IncrementGameStat(GAME_STAT_HATCHED_EGGS); - ScriptContext1_SetupScript(EventScript_EggHatch); + ScriptContext_SetupScript(EventScript_EggHatch); return TRUE; } } @@ -807,14 +807,14 @@ static u8 GetFacingSignpostType(u16 metatileBehavior, u8 playerDirection) static void SetUpWalkIntoSignScript(const u8 *script, u8 playerDirection) { gSpecialVar_Facing = playerDirection; - ScriptContext1_SetupScript(script); + ScriptContext_SetupScript(script); SetWalkingIntoSignVars(); - MsgSetSignPost(); + MsgSetSignpost(); } static const u8 *GetSignpostScriptAtMapPosition(struct MapPosition * position) { - const struct BgEvent * event = GetBackgroundEventAtPosition(&gMapHeader, position->x - 7, position->y - 7, position->height); + const struct BgEvent * event = GetBackgroundEventAtPosition(&gMapHeader, position->x - MAP_OFFSET, position->y - MAP_OFFSET, position->elevation); if (event == NULL) return NULL; if (event->bgUnion.script != NULL) @@ -889,7 +889,7 @@ static bool8 TryStartWarpEventScript(struct MapPosition *position, u16 metatileB if (MetatileBehavior_IsFallWarp(metatileBehavior) == TRUE) { ResetInitialPlayerAvatarState(); - ScriptContext1_SetupScript(EventScript_1C1361); + ScriptContext_SetupScript(EventScript_DoFallWarp); return TRUE; } DoWarp(); @@ -959,7 +959,7 @@ static bool8 IsArrowWarpMetatileBehavior(u16 metatileBehavior, u8 direction) static s8 GetWarpEventAtMapPosition(struct MapHeader *mapHeader, struct MapPosition *position) { - return GetWarpEventAtPosition(mapHeader, position->x - 7, position->y - 7, position->height); + return GetWarpEventAtPosition(mapHeader, position->x - MAP_OFFSET, position->y - MAP_OFFSET, position->elevation); } static void SetupWarp(struct MapHeader *unused, s8 warpEventId, struct MapPosition *position) @@ -968,7 +968,7 @@ static void SetupWarp(struct MapHeader *unused, s8 warpEventId, struct MapPositi warpEvent = &gMapHeader.events->warps[warpEventId]; - if (warpEvent->mapNum == MAP_NUM(NONE)) + if (warpEvent->mapNum == MAP_NUM(DYNAMIC)) { SetWarpDestinationToDynamicWarp(warpEvent->warpId); } @@ -979,7 +979,7 @@ static void SetupWarp(struct MapHeader *unused, s8 warpEventId, struct MapPositi SetWarpDestinationToMapWarp(warpEvent->mapGroup, warpEvent->mapNum, warpEvent->warpId); UpdateEscapeWarp(position->x, position->y); mapHeader = Overworld_GetMapHeaderByGroupAndId(warpEvent->mapGroup, warpEvent->mapNum); - if (mapHeader->events->warps[warpEvent->warpId].mapNum == MAP_NUM(NONE)) + if (mapHeader->events->warps[warpEvent->warpId].mapNum == MAP_NUM(DYNAMIC)) SetDynamicWarp(mapHeader->events->warps[warpEventId].warpId, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, warpEventId); } } @@ -1033,7 +1033,7 @@ static const u8 *TryRunCoordEventScript(struct CoordEvent *coordEvent) } if (coordEvent->trigger == 0) { - ScriptContext2_RunNewScript(coordEvent->script); + RunScriptImmediately(coordEvent->script); return NULL; } if (VarGet(coordEvent->trigger) == (u8)coordEvent->index) @@ -1083,11 +1083,11 @@ void HandleBoulderActivateVictoryRoadSwitch(u16 x, u16 y) { for (i = 0; i < n; i++) { - if (events[i].x + 7 == x && events[i].y + 7 == y) + if (events[i].x + MAP_OFFSET == x && events[i].y + MAP_OFFSET == y) { QuestLog_CutRecording(); - ScriptContext1_SetupScript(events[i].script); - ScriptContext2_Enable(); + ScriptContext_SetupScript(events[i].script); + LockPlayerFieldControls(); } } } @@ -1095,7 +1095,7 @@ void HandleBoulderActivateVictoryRoadSwitch(u16 x, u16 y) const u8 *GetCoordEventScriptAtMapPosition(struct MapPosition *position) { - return GetCoordEventScriptAtPosition(&gMapHeader, position->x - 7, position->y - 7, position->height); + return GetCoordEventScriptAtPosition(&gMapHeader, position->x - MAP_OFFSET, position->y - MAP_OFFSET, position->elevation); } static const struct BgEvent *GetBackgroundEventAtPosition(struct MapHeader *mapHeader, u16 x, u16 y, u8 elevation) @@ -1119,7 +1119,7 @@ bool8 dive_warp(struct MapPosition *position, u16 metatileBehavior) { if (gMapHeader.mapType == MAP_TYPE_UNDERWATER && !MetatileBehavior_IsUnableToEmerge(metatileBehavior)) { - if (SetDiveWarpEmerge(position->x - 7, position->y - 7)) + if (SetDiveWarpEmerge(position->x - MAP_OFFSET, position->y - MAP_OFFSET)) { StoreInitialPlayerAvatarState(); DoDiveWarp(); @@ -1129,7 +1129,7 @@ bool8 dive_warp(struct MapPosition *position, u16 metatileBehavior) } else if (MetatileBehavior_IsDiveable(metatileBehavior) == TRUE) { - if (SetDiveWarpDive(position->x - 7, position->y - 7)) + if (SetDiveWarpDive(position->x - MAP_OFFSET, position->y - MAP_OFFSET)) { StoreInitialPlayerAvatarState(); DoDiveWarp(); @@ -1149,12 +1149,12 @@ static u8 TrySetDiveWarp(void) metatileBehavior = MapGridGetMetatileBehaviorAt(x, y); if (gMapHeader.mapType == MAP_TYPE_UNDERWATER && !MetatileBehavior_IsUnableToEmerge(metatileBehavior)) { - if (SetDiveWarpEmerge(x - 7, y - 7) == TRUE) + if (SetDiveWarpEmerge(x - MAP_OFFSET, y - MAP_OFFSET) == TRUE) return 1; } else if (MetatileBehavior_IsDiveable(metatileBehavior) == TRUE) { - if (SetDiveWarpDive(x - 7, y - 7) == TRUE) + if (SetDiveWarpDive(x - MAP_OFFSET, y - MAP_OFFSET) == TRUE) return 2; } return 0; diff --git a/src/field_effect.c b/src/field_effect.c index 541ceba13..2fdeeead1 100644 --- a/src/field_effect.c +++ b/src/field_effect.c @@ -1071,7 +1071,7 @@ static void FieldCallback_UseFly(void) { FadeInFromBlack(); CreateTask(Task_UseFly, 0); - ScriptContext2_Enable(); + LockPlayerFieldControls(); FreezeObjectEvents(); gFieldCallback = NULL; } @@ -1108,7 +1108,7 @@ static void FieldCallback_FlyIntoMap(void) gObjectEvents[gPlayerAvatar.objectEventId].invisible = TRUE; if (gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_SURFING) ObjectEventTurn(&gObjectEvents[gPlayerAvatar.objectEventId], DIR_WEST); - ScriptContext2_Enable(); + LockPlayerFieldControls(); FreezeObjectEvents(); gFieldCallback = NULL; } @@ -1126,7 +1126,7 @@ static void Task_FlyIntoMap(u8 taskId) } if (!FieldEffectActiveListContains(FLDEFF_FLY_IN)) { - ScriptContext2_Disable(); + UnlockPlayerFieldControls(); UnfreezeObjectEvents(); DestroyTask(taskId); } @@ -1156,7 +1156,7 @@ void FieldCB_FallWarpExit(void) Overworld_PlaySpecialMapMusic(); WarpFadeInScreen(); QuestLog_DrawPreviouslyOnQuestHeaderIfInPlaybackMode(); - ScriptContext2_Enable(); + LockPlayerFieldControls(); FreezeObjectEvents(); CreateTask(Task_FallWarpFieldEffect, 0); gFieldCallback = NULL; @@ -1274,7 +1274,7 @@ static bool8 FallWarpEffect_7(struct Task *task) { s16 x, y; gPlayerAvatar.preventStep = FALSE; - ScriptContext2_Disable(); + UnlockPlayerFieldControls(); CameraObjectReset1(); UnfreezeObjectEvents(); InstallCameraPanAheadCallback(); @@ -1459,7 +1459,7 @@ static void FieldCB_EscalatorWarpIn(void) Overworld_PlaySpecialMapMusic(); WarpFadeInScreen(); QuestLog_DrawPreviouslyOnQuestHeaderIfInPlaybackMode(); - ScriptContext2_Enable(); + LockPlayerFieldControls(); FreezeObjectEvents(); CreateTask(Task_EscalatorWarpInFieldEffect, 0); gFieldCallback = NULL; @@ -1576,7 +1576,7 @@ static bool8 EscalatorWarpInEffect_7(struct Task *task) if (ObjectEventClearHeldMovementIfFinished(objectEvent)) { CameraObjectReset1(); - ScriptContext2_Disable(); + UnlockPlayerFieldControls(); UnfreezeObjectEvents(); ObjectEventSetHeldMovement(objectEvent, GetWalkNormalMovementAction(DIR_EAST)); DestroyTask(FindTaskIdByFunc(Task_EscalatorWarpInFieldEffect)); @@ -1617,7 +1617,7 @@ static void Task_UseWaterfall(u8 taskId) static bool8 waterfall_0_setup(struct Task *task, struct ObjectEvent * playerObj) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); gPlayerAvatar.preventStep = TRUE; task->data[0]++; return FALSE; @@ -1625,7 +1625,7 @@ static bool8 waterfall_0_setup(struct Task *task, struct ObjectEvent * playerObj static bool8 waterfall_1_do_anim_probably(struct Task *task, struct ObjectEvent * playerObj) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); if (!ObjectEventIsMovementOverridden(playerObj)) { ObjectEventClearHeldMovementIfFinished(playerObj); @@ -1660,7 +1660,7 @@ static bool8 waterfall_4_wait_player_move_probably(struct Task *task, struct Obj task->data[0] = 3; return TRUE; } - ScriptContext2_Disable(); + UnlockPlayerFieldControls(); gPlayerAvatar.preventStep = FALSE; DestroyTask(FindTaskIdByFunc(Task_UseWaterfall)); FieldEffectActiveListRemove(FLDEFF_USE_WATERFALL); @@ -1702,7 +1702,7 @@ static bool8 DiveFieldEffect_Init(struct Task *task) static bool8 DiveFieldEffect_ShowMon(struct Task *task) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); gFieldEffectArguments[0] = task->data[15]; FieldEffectStart(FLDEFF_FIELD_MOVE_SHOW_MON_INIT); task->data[0]++; @@ -1869,7 +1869,7 @@ static void FieldCB_LavaridgeGymB1FWarpExit(void) Overworld_PlaySpecialMapMusic(); WarpFadeInScreen(); QuestLog_DrawPreviouslyOnQuestHeaderIfInPlaybackMode(); - ScriptContext2_Enable(); + LockPlayerFieldControls(); gFieldCallback = NULL; CreateTask(Task_LavaridgeGymB1FWarpExit, 0); } @@ -1922,7 +1922,7 @@ static bool8 LavaridgeGymB1FWarpExitEffect_4(struct Task *task, struct ObjectEve if (ObjectEventClearHeldMovementIfFinished(objectEvent)) { gPlayerAvatar.preventStep = FALSE; - ScriptContext2_Disable(); + UnlockPlayerFieldControls(); UnfreezeObjectEvents(); DestroyTask(FindTaskIdByFunc(Task_LavaridgeGymB1FWarpExit)); } @@ -1998,7 +1998,7 @@ static bool8 LavaridgeGym1FWarpEffect_2(struct Task *task, struct ObjectEvent * } else { task->data[1]++; - ObjectEventSetHeldMovement(objectEvent, GetWalkInPlaceFastMovementAction(objectEvent->facingDirection)); + ObjectEventSetHeldMovement(objectEvent, GetWalkInPlaceFasterMovementAction(objectEvent->facingDirection)); PlaySE(SE_LAVARIDGE_FALL_WARP); } } @@ -2084,7 +2084,7 @@ static void (*const sEscapeRopeWarpOutEffectFuncs[])(struct Task *task) = void StartEscapeRopeFieldEffect(void) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); FreezeObjectEvents(); CreateTask(Task_EscapeRopeWarpOut, 80); } @@ -2270,7 +2270,7 @@ static void FieldCallback_EscapeRopeExit(void) Overworld_PlaySpecialMapMusic(); WarpFadeInScreen(); QuestLog_DrawPreviouslyOnQuestHeaderIfInPlaybackMode(); - ScriptContext2_Enable(); + LockPlayerFieldControls(); FreezeObjectEvents(); gFieldCallback = NULL; gObjectEvents[gPlayerAvatar.objectEventId].invisible = TRUE; @@ -2311,7 +2311,7 @@ static void EscapeRopeWarpInEffect_Spin(struct Task *task) { playerObj->invisible = FALSE; playerObj->fixedPriority = FALSE; - ScriptContext2_Disable(); + UnlockPlayerFieldControls(); UnfreezeObjectEvents(); DestroyTask(FindTaskIdByFunc(Task_EscapeRopeWarpIn)); } @@ -2360,7 +2360,7 @@ static void Task_DoTeleportFieldEffect(u8 taskId) static void TeleportFieldEffectTask1(struct Task *task) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); FreezeObjectEvents(); CameraObjectReset2(); task->data[15] = GetPlayerFacingDirection(); @@ -2447,7 +2447,7 @@ static void FieldCallback_TeleportIn(void) Overworld_PlaySpecialMapMusic(); WarpFadeInScreen(); QuestLog_DrawPreviouslyOnQuestHeaderIfInPlaybackMode(); - ScriptContext2_Enable(); + LockPlayerFieldControls(); FreezeObjectEvents(); gFieldCallback = NULL; gObjectEvents[gPlayerAvatar.objectEventId].invisible = TRUE; @@ -2528,7 +2528,7 @@ static void TeleportInFieldEffectTask3(struct Task *task) task->data[1] = 8; if ((++task->data[2]) > 4 && task->data[14] == objectEvent->facingDirection) { - ScriptContext2_Disable(); + UnlockPlayerFieldControls(); CameraObjectReset1(); UnfreezeObjectEvents(); DestroyTask(FindTaskIdByFunc(Task_DoTeleportInFieldEffect)); @@ -2740,9 +2740,7 @@ static void LoadFieldMoveStreaksTilemapToVram(u16 screenbase) u16 *dest; dest = (u16 *)(VRAM + (10 * 32) + screenbase); for (i = 0; i < (10 * 32); i++, dest++) - { - *dest = sFieldMoveStreaksOutdoors_Tilemap[i] | METATILE_ELEVATION_MASK; - } + *dest = sFieldMoveStreaksOutdoors_Tilemap[i] | 0xF000; } static void (*const sShowMonIndoorsEffectFuncs[])(struct Task *) = { @@ -2997,7 +2995,7 @@ static void Task_FldEffUseSurf(u8 taskId) static void UseSurfEffect_1(struct Task *task) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); FreezeObjectEvents(); gPlayerAvatar.preventStep = TRUE; SetPlayerAvatarStateMask(PLAYER_AVATAR_FLAG_SURFING); @@ -3058,7 +3056,7 @@ static void UseSurfEffect_5(struct Task *task) ObjectEventSetHeldMovement(objectEvent, GetFaceDirectionMovementAction(objectEvent->movementDirection)); SetSurfBlob_BobState(objectEvent->fieldEffectSpriteId, BOB_PLAYER_AND_MON); UnfreezeObjectEvents(); - ScriptContext2_Disable(); + UnlockPlayerFieldControls(); FieldEffectActiveListRemove(FLDEFF_USE_SURF); DestroyTask(FindTaskIdByFunc(Task_FldEffUseSurf)); SetHelpContext(HELPCONTEXT_SURFING); @@ -3093,7 +3091,7 @@ static void Task_FldEffUseVsSeeker(u8 taskId) static void UseVsSeekerEffect_1(struct Task *task) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); FreezeObjectEvents(); gPlayerAvatar.preventStep = TRUE; task->data[0]++; diff --git a/src/field_effect_helpers.c b/src/field_effect_helpers.c index 9a7dc201d..7a9a59f66 100644 --- a/src/field_effect_helpers.c +++ b/src/field_effect_helpers.c @@ -331,7 +331,7 @@ void UpdateTallGrassFieldEffect(struct Sprite *sprite) if (sprite->animCmdIndex == 0) metatileBehavior = 4; - UpdateObjectEventSpriteVisibility(sprite, FALSE); + UpdateObjectEventSpriteInvisibility(sprite, FALSE); UpdateGrassFieldEffectSubpriority(sprite, sprite->data[0], metatileBehavior); } } @@ -387,7 +387,7 @@ u32 FldEff_LongGrass(void) { sprite = &gSprites[spriteId]; sprite->coordOffsetEnabled = TRUE; - sprite->oam.priority = ZCoordToPriority(gFieldEffectArguments[2]); + sprite->oam.priority = ElevationToPriority(gFieldEffectArguments[2]); sprite->data[0] = gFieldEffectArguments[2]; sprite->data[1] = gFieldEffectArguments[0]; sprite->data[2] = gFieldEffectArguments[1]; @@ -434,7 +434,7 @@ void UpdateLongGrassFieldEffect(struct Sprite *sprite) { sprite->data[7] = TRUE; } - UpdateObjectEventSpriteVisibility(sprite, FALSE); + UpdateObjectEventSpriteInvisibility(sprite, FALSE); UpdateGrassFieldEffectSubpriority(sprite, sprite->data[0], 0); } } @@ -513,7 +513,7 @@ void UpdateShortGrassFieldEffect(struct Sprite *sprite) sprite->y2 = (graphicsInfo->height >> 1) - 8; sprite->subpriority = linkedSprite->subpriority - 1; sprite->oam.priority = linkedSprite->oam.priority; - UpdateObjectEventSpriteVisibility(sprite, linkedSprite->invisible); + UpdateObjectEventSpriteInvisibility(sprite, linkedSprite->invisible); } } @@ -587,14 +587,14 @@ static void FadeFootprintsTireTracks_Step0(struct Sprite *sprite) if (++sprite->data[1] > 40) sprite->data[0] = 1; - UpdateObjectEventSpriteVisibility(sprite, FALSE); + UpdateObjectEventSpriteInvisibility(sprite, FALSE); } static void FadeFootprintsTireTracks_Step1(struct Sprite *sprite) { sprite->invisible ^= 1; sprite->data[1]++; - UpdateObjectEventSpriteVisibility(sprite, sprite->invisible); + UpdateObjectEventSpriteInvisibility(sprite, sprite->invisible); if (sprite->data[1] > 56) { FieldEffectStop(sprite, sprite->data[7]); @@ -641,7 +641,7 @@ void UpdateSplashFieldEffect(struct Sprite *sprite) { sprite->x = gSprites[gObjectEvents[objectEventId].spriteId].x; sprite->y = gSprites[gObjectEvents[objectEventId].spriteId].y; - UpdateObjectEventSpriteVisibility(sprite, FALSE); + UpdateObjectEventSpriteInvisibility(sprite, FALSE); } } @@ -727,7 +727,7 @@ static void UpdateFeetInFlowingWaterFieldEffect(struct Sprite *sprite) sprite->x = linkedSprite->x; sprite->y = linkedSprite->y; sprite->subpriority = linkedSprite->subpriority; - UpdateObjectEventSpriteVisibility(sprite, FALSE); + UpdateObjectEventSpriteInvisibility(sprite, FALSE); if (objectEvent->currentCoords.x != sprite->data[3] || objectEvent->currentCoords.y != sprite->data[4]) { sprite->data[3] = objectEvent->currentCoords.x; @@ -797,7 +797,7 @@ void UpdateHotSpringsWaterFieldEffect(struct Sprite *sprite) sprite->x = linkedSprite->x; sprite->y = (graphicsInfo->height >> 1) + linkedSprite->y - 8; sprite->subpriority = linkedSprite->subpriority - 1; - UpdateObjectEventSpriteVisibility(sprite, FALSE); + UpdateObjectEventSpriteInvisibility(sprite, FALSE); } } @@ -935,7 +935,7 @@ static void UpdateAshFieldEffect_Step1(struct Sprite *sprite) static void UpdateAshFieldEffect_Step2(struct Sprite *sprite) { - UpdateObjectEventSpriteVisibility(sprite, FALSE); + UpdateObjectEventSpriteInvisibility(sprite, FALSE); if (sprite->animEnded) FieldEffectStop(sprite, FLDEFF_ASH); } @@ -1041,7 +1041,7 @@ void SynchroniseSurfPosition(struct ObjectEvent *playerObject, struct Sprite *su for (i = DIR_SOUTH; i <= DIR_EAST; i++, x = surfBlobSprite->data[6], y = surfBlobSprite->data[7]) { MoveCoords(i, &x, &y); - if (MapGridGetZCoordAt(x, y) == 3) + if (MapGridGetElevationAt(x, y) == 3) { surfBlobSprite->data[5]++; break; @@ -1187,7 +1187,7 @@ void UpdateSandPileFieldEffect(struct Sprite *sprite) sprite->x = x; sprite->y = y; sprite->subpriority = gSprites[gObjectEvents[objectEventId].spriteId].subpriority; - UpdateObjectEventSpriteVisibility(sprite, FALSE); + UpdateObjectEventSpriteInvisibility(sprite, FALSE); } } @@ -1212,7 +1212,7 @@ void UpdateBubblesFieldEffect(struct Sprite *sprite) sprite->data[0] += 0x80; sprite->data[0] &= 0x100; sprite->y -= sprite->data[0] >> 8; - UpdateObjectEventSpriteVisibility(sprite, FALSE); + UpdateObjectEventSpriteInvisibility(sprite, FALSE); if (sprite->invisible || sprite->animEnded) { FieldEffectStop(sprite, FLDEFF_BUBBLES); @@ -1380,8 +1380,8 @@ void UpdateJumpImpactEffect(struct Sprite *sprite) } else { - UpdateObjectEventSpriteVisibility(sprite, FALSE); - SetObjectSubpriorityByZCoord(sprite->data[0], sprite, 0); + UpdateObjectEventSpriteInvisibility(sprite, FALSE); + SetObjectSubpriorityByElevation(sprite->data[0], sprite, 0); } } @@ -1390,7 +1390,7 @@ void WaitFieldEffectSpriteAnim(struct Sprite *sprite) if (sprite->animEnded) FieldEffectStop(sprite, sprite->data[0]); else - UpdateObjectEventSpriteVisibility(sprite, FALSE); + UpdateObjectEventSpriteInvisibility(sprite, FALSE); } static void UpdateGrassFieldEffectSubpriority(struct Sprite *sprite, u8 z, u8 offset) @@ -1400,7 +1400,7 @@ static void UpdateGrassFieldEffectSubpriority(struct Sprite *sprite, u8 z, u8 of const struct ObjectEventGraphicsInfo * graphicsInfo; // Unused Variable struct Sprite *linkedSprite; - SetObjectSubpriorityByZCoord(z, sprite, offset); + SetObjectSubpriorityByElevation(z, sprite, offset); for (i = 0; i < OBJECT_EVENTS_COUNT; i++) { struct ObjectEvent * objectEvent = &gObjectEvents[i]; diff --git a/src/field_fadetransition.c b/src/field_fadetransition.c index 31de46ab2..f2e8826b5 100644 --- a/src/field_fadetransition.c +++ b/src/field_fadetransition.c @@ -137,7 +137,7 @@ static void Task_ContinueScriptUnionRoom(u8 taskId) void FieldCB_ContinueScriptUnionRoom(void) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); Overworld_PlaySpecialMapMusic(); FadeInFromBlack(); CreateTask(Task_ContinueScriptUnionRoom, 10); @@ -148,13 +148,13 @@ static void Task_ContinueScript(u8 taskId) if (FieldFadeTransitionBackgroundEffectIsFinished() == TRUE) { DestroyTask(taskId); - EnableBothScriptContexts(); + ScriptContext_Enable(); } } void FieldCB_ContinueScriptHandleMusic(void) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); Overworld_PlaySpecialMapMusic(); FadeInFromBlack(); CreateTask(Task_ContinueScript, 10); @@ -162,7 +162,7 @@ void FieldCB_ContinueScriptHandleMusic(void) void FieldCB_ContinueScript(void) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); FadeInFromBlack(); CreateTask(Task_ContinueScript, 10); } @@ -173,7 +173,7 @@ static void Task_ReturnToFieldCableLink(u8 taskId) switch (task->data[0]) { case 0: - task->data[1] = CreateTask_ReestablishLinkInCableClubRoom(); + task->data[1] = CreateTask_ReestablishCableClubLink(); task->data[0]++; break; case 1: @@ -186,7 +186,7 @@ static void Task_ReturnToFieldCableLink(u8 taskId) case 2: if (FieldFadeTransitionBackgroundEffectIsFinished() == TRUE) { - ScriptContext2_Disable(); + UnlockPlayerFieldControls(); DestroyTask(taskId); } break; @@ -195,7 +195,7 @@ static void Task_ReturnToFieldCableLink(u8 taskId) void FieldCB_ReturnToFieldCableLink(void) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); Overworld_PlaySpecialMapMusic(); palette_bg_faded_fill_black(); CreateTask(Task_ReturnToFieldCableLink, 10); @@ -221,7 +221,7 @@ static void Task_ReturnToFieldRecordMixing(u8 taskId) if (FieldFadeTransitionBackgroundEffectIsFinished() == TRUE) { StartSendingKeysToLink(); - ScriptContext2_Disable(); + UnlockPlayerFieldControls(); DestroyTask(taskId); } break; @@ -230,7 +230,7 @@ static void Task_ReturnToFieldRecordMixing(u8 taskId) void FieldCB_ReturnToFieldWirelessLink(void) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); Overworld_PlaySpecialMapMusic(); palette_bg_faded_fill_black(); CreateTask(Task_ReturnToFieldRecordMixing, 10); @@ -290,7 +290,7 @@ void FieldCB_DefaultWarpExit(void) Overworld_PlaySpecialMapMusic(); QuestLog_DrawPreviouslyOnQuestHeaderIfInPlaybackMode(); SetUpWarpExitTask(FALSE); - ScriptContext2_Enable(); + LockPlayerFieldControls(); } void FieldCB_WarpExitFadeFromBlack(void) @@ -298,7 +298,7 @@ void FieldCB_WarpExitFadeFromBlack(void) Overworld_PlaySpecialMapMusic(); QuestLog_DrawPreviouslyOnQuestHeaderIfInPlaybackMode(); SetUpWarpExitTask(TRUE); - ScriptContext2_Enable(); + LockPlayerFieldControls(); } static void FieldCB_TeleportWarpIn(void) @@ -308,7 +308,7 @@ static void FieldCB_TeleportWarpIn(void) QuestLog_DrawPreviouslyOnQuestHeaderIfInPlaybackMode(); PlaySE(SE_WARP_OUT); CreateTask(Task_TeleportWarpIn, 10); - ScriptContext2_Enable(); + LockPlayerFieldControls(); } static void Task_ExitDoor(u8 taskId) @@ -393,7 +393,7 @@ static void Task_ExitDoor(u8 taskId) break; case 4: UnfreezeObjectEvents(); - ScriptContext2_Disable(); + UnlockPlayerFieldControls(); DestroyTask(taskId); break; } @@ -429,7 +429,7 @@ static void Task_ExitNonAnimDoor(u8 taskId) break; case 3: UnfreezeObjectEvents(); - ScriptContext2_Disable(); + UnlockPlayerFieldControls(); DestroyTask(taskId); break; } @@ -441,14 +441,14 @@ static void Task_ExitNonDoor(u8 taskId) { case 0: FreezeObjectEvents(); - ScriptContext2_Enable(); + LockPlayerFieldControls(); gTasks[taskId].data[0]++; break; case 1: if (FieldFadeTransitionBackgroundEffectIsFinished()) { UnfreezeObjectEvents(); - ScriptContext2_Disable(); + UnlockPlayerFieldControls(); DestroyTask(taskId); } break; @@ -461,7 +461,7 @@ static void Task_TeleportWarpIn(u8 taskId) { case 0: FreezeObjectEvents(); - ScriptContext2_Enable(); + LockPlayerFieldControls(); StartTeleportInPlayerAnim(); gTasks[taskId].data[0]++; break; @@ -469,7 +469,7 @@ static void Task_TeleportWarpIn(u8 taskId) if (FieldFadeTransitionBackgroundEffectIsFinished() && WaitTeleportInPlayerAnim() != TRUE) { UnfreezeObjectEvents(); - ScriptContext2_Disable(); + UnlockPlayerFieldControls(); DestroyTask(taskId); } break; @@ -489,7 +489,7 @@ void FadeTransition_FadeInOnReturnToStartMenu(void) { FadeInFromBlack(); CreateTask(Task_WaitFadeAndCreateStartMenuTask, 80); - ScriptContext2_Enable(); + LockPlayerFieldControls(); } bool8 FieldCB_ReturnToFieldOpenStartMenu(void) @@ -502,7 +502,7 @@ static void Task_SafariZoneRanOutOfBalls(u8 taskId) { if (FieldFadeTransitionBackgroundEffectIsFinished() == TRUE) { - ScriptContext2_Disable(); + UnlockPlayerFieldControls(); DestroyTask(taskId); ClearPlayerHeldMovementAndUnfreezeObjectEvents(); } @@ -510,7 +510,7 @@ static void Task_SafariZoneRanOutOfBalls(u8 taskId) void FieldCB_SafariZoneRanOutOfBalls(void) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); Overworld_PlaySpecialMapMusic(); FadeInFromBlack(); CreateTask(Task_SafariZoneRanOutOfBalls, 10); @@ -531,7 +531,7 @@ bool32 FieldFadeTransitionBackgroundEffectIsFinished(void) void DoWarp(void) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); TryFadeOutOldMapMusic(); WarpFadeOutScreen(); PlayRainStoppingSoundEffect(); @@ -542,7 +542,7 @@ void DoWarp(void) void DoDiveWarp(void) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); TryFadeOutOldMapMusic(); WarpFadeOutScreen(); PlayRainStoppingSoundEffect(); @@ -560,21 +560,21 @@ void DoStairWarp(u16 metatileBehavior, u16 delay) void DoDoorWarp(void) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); gFieldCallback = FieldCB_DefaultWarpExit; CreateTask(Task_DoorWarp, 10); } void DoTeleport2Warp(void) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); CreateTask(Task_Teleport2Warp, 10); gFieldCallback = FieldCB_TeleportWarpIn; } void DoUnionRoomWarp(void) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); gFieldCallback = FieldCB_DefaultWarpExit; CreateTask(Task_TeleportWarp, 10); } @@ -587,25 +587,25 @@ void DoFallWarp(void) void DoEscalatorWarp(u8 metatileBehavior) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); StartEscalatorWarp(metatileBehavior, 10); } void DoLavaridgeGymB1FWarp(void) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); StartLavaridgeGymB1FWarp(10); } void DoLavaridgeGym1FWarp(void) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); StartLavaridgeGym1FWarp(10); } void DoTeleportWarp(void) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); TryFadeOutOldMapMusic(); CreateTask(Task_TeleportWarp, 10); gFieldCallback = FieldCB_TeleportWarpIn; @@ -613,10 +613,10 @@ void DoTeleportWarp(void) static void DoPortholeWarp(void) // Unused { - ScriptContext2_Enable(); + LockPlayerFieldControls(); WarpFadeOutScreen(); CreateTask(Task_Teleport2Warp, 10); - gFieldCallback = nullsub_60; + gFieldCallback = FieldCB_ShowPortholeView; } static void Task_CableClubWarp(u8 taskId) @@ -625,7 +625,7 @@ static void Task_CableClubWarp(u8 taskId) switch (task->data[0]) { case 0: - ScriptContext2_Enable(); + LockPlayerFieldControls(); task->data[0]++; break; case 1: @@ -642,7 +642,7 @@ static void Task_CableClubWarp(u8 taskId) void DoCableClubWarp(void) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); TryFadeOutOldMapMusic(); WarpFadeOutScreen(); PlaySE(SE_EXIT); @@ -691,7 +691,7 @@ static void Task_Teleport2Warp(u8 taskId) { case 0: FreezeObjectEvents(); - ScriptContext2_Enable(); + LockPlayerFieldControls(); task->data[0]++; break; case 1: @@ -713,7 +713,7 @@ static void Task_TeleportWarp(u8 taskId) { case 0: FreezeObjectEvents(); - ScriptContext2_Enable(); + LockPlayerFieldControls(); PlaySE(SE_WARP_IN); StartTeleportWarpOutPlayerAnim(); task->data[0]++; @@ -796,7 +796,7 @@ static void Task_StairWarp(u8 taskId) switch (data[0]) { case 0: - ScriptContext2_Enable(); + LockPlayerFieldControls(); FreezeObjectEvents(); CameraObjectReset2(); data[0]++; @@ -898,14 +898,14 @@ static void Task_ExitStairs(u8 taskId) if (FieldFadeTransitionBackgroundEffectIsFinished() == TRUE) { CameraObjectReset1(); - ScriptContext2_Disable(); + UnlockPlayerFieldControls(); DestroyTask(taskId); } break; case 0: Overworld_PlaySpecialMapMusic(); WarpFadeInScreen(); - ScriptContext2_Enable(); + LockPlayerFieldControls(); ExitStairsMovement(&data[1], &data[2], &data[3], &data[4], &data[5]); data[0]++; break; @@ -928,7 +928,7 @@ static void ExitStairsMovement(s16 *speedX, s16 *speedY, s16 *offsetX, s16 *offs direction = DIR_WEST; else direction = DIR_EAST; - ObjectEventForceSetHeldMovement(&gObjectEvents[gPlayerAvatar.objectEventId], GetWalkInPlaceSlowMovementAction(direction)); + ObjectEventForceSetHeldMovement(&gObjectEvents[gPlayerAvatar.objectEventId], GetWalkInPlaceFastMovementAction(direction)); GetStairsMovementDirection(metatileBehavior, speedX, speedY); *offsetX = *speedX * 16; *offsetY = *speedY * 16; diff --git a/src/field_message_box.c b/src/field_message_box.c index 5a682c382..74f441c88 100644 --- a/src/field_message_box.c +++ b/src/field_message_box.c @@ -1,18 +1,11 @@ #include "global.h" +#include "field_message_box.h" #include "gflib.h" #include "new_menu_helpers.h" #include "quest_log.h" #include "script.h" #include "text_window.h" -enum -{ - FIELD_MESSAGE_BOX_HIDDEN, - FIELD_MESSAGE_BOX_UNUSED, - FIELD_MESSAGE_BOX_NORMAL, - FIELD_MESSAGE_BOX_AUTO_SCROLL, -}; - static EWRAM_DATA u8 sMessageBoxType = 0; static void ExpandStringAndStartDrawFieldMessageBox(const u8 *str); @@ -35,12 +28,12 @@ static void Task_DrawFieldMessageBox(u8 taskId) if (gQuestLogState == QL_STATE_PLAYBACK) { gTextFlags.autoScroll = TRUE; - TextWindow_LoadTilesStdFrame1(0, 0x200); + LoadQuestLogWindowTiles(0, 0x200); } - else if (!IsMsgSignPost()) + else if (!IsMsgSignpost()) LoadStdWindowFrameGfx(); else - LoadSignPostWindowFrameGfx(); + LoadSignpostWindowFrameGfx(); task->data[0]++; break; case 1: diff --git a/src/field_player_avatar.c b/src/field_player_avatar.c index fd1c67ccd..a198999b6 100644 --- a/src/field_player_avatar.c +++ b/src/field_player_avatar.c @@ -329,27 +329,27 @@ static u8 DoForcedMovementInCurrentDirection(MovementAction movementAction) static bool8 ForcedMovement_Slip(void) { - return DoForcedMovementInCurrentDirection(PlayerGoSpeed2); + return DoForcedMovementInCurrentDirection(PlayerWalkFast); } static bool8 ForcedMovement_WalkSouth(void) { - return DoForcedMovement(DIR_SOUTH, PlayerGoSpeed1); + return DoForcedMovement(DIR_SOUTH, PlayerWalkNormal); } static bool8 ForcedMovement_WalkNorth(void) { - return DoForcedMovement(DIR_NORTH, PlayerGoSpeed1); + return DoForcedMovement(DIR_NORTH, PlayerWalkNormal); } static bool8 ForcedMovement_WalkWest(void) { - return DoForcedMovement(DIR_WEST, PlayerGoSpeed1); + return DoForcedMovement(DIR_WEST, PlayerWalkNormal); } static bool8 ForcedMovement_WalkEast(void) { - return DoForcedMovement(DIR_EAST, PlayerGoSpeed1); + return DoForcedMovement(DIR_EAST, PlayerWalkNormal); } static bool8 ForcedMovement_SpinRight(void) @@ -412,22 +412,22 @@ static u8 ForcedMovement_Slide(u8 direction, MovementAction movementAction) static bool8 ForcedMovement_SlideSouth(void) { - return ForcedMovement_Slide(DIR_SOUTH, PlayerGoSpeed2); + return ForcedMovement_Slide(DIR_SOUTH, PlayerWalkFast); } static bool8 ForcedMovement_SlideNorth(void) { - return ForcedMovement_Slide(DIR_NORTH, PlayerGoSpeed2); + return ForcedMovement_Slide(DIR_NORTH, PlayerWalkFast); } static bool8 ForcedMovement_SlideWest(void) { - return ForcedMovement_Slide(DIR_WEST, PlayerGoSpeed2); + return ForcedMovement_Slide(DIR_WEST, PlayerWalkFast); } static bool8 ForcedMovement_SlideEast(void) { - return ForcedMovement_Slide(DIR_EAST, PlayerGoSpeed2); + return ForcedMovement_Slide(DIR_EAST, PlayerWalkFast); } static bool8 ForcedMovement_MatJump(void) @@ -442,7 +442,7 @@ static bool8 ForcedMovement_MatSpin(void) return TRUE; } -static void (*const gUnknown_835B814[])(u8, u16) = { +static void (*const sPlayerNotOnBikeFuncs[])(u8, u16) = { PlayerNotOnBikeNotMoving, PlayerNotOnBikeTurningInPlace, PlayerNotOnBikeMoving @@ -450,7 +450,7 @@ static void (*const gUnknown_835B814[])(u8, u16) = { void MovePlayerNotOnBike(u8 direction, u16 heldKeys) { - gUnknown_835B814[CheckMovementInputNotOnBike(direction)](direction, heldKeys); + sPlayerNotOnBikeFuncs[CheckMovementInputNotOnBike(direction)](direction, heldKeys); } static u8 CheckMovementInputNotOnBike(u8 direction) @@ -508,8 +508,8 @@ static void PlayerNotOnBikeMoving(u8 direction, u16 heldKeys) if (gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_SURFING) { - // speed 2 is fast, same speed as running - PlayerGoSpeed2(direction); + // Same speed as running + PlayerWalkFast(direction); return; } @@ -526,9 +526,9 @@ static void PlayerNotOnBikeMoving(u8 direction, u16 heldKeys) else { if (PlayerIsMovingOnRockStairs(direction)) - PlayerGoSlow(direction); + PlayerWalkSlow(direction); else - PlayerGoSpeed1(direction); + PlayerWalkNormal(direction); } } @@ -597,8 +597,8 @@ static const u8 sQuestLogSurfDismountActionIds[] = { static bool8 CanStopSurfing(s16 x, s16 y, u8 direction) { if ((gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_SURFING) - && MapGridGetZCoordAt(x, y) == 3 - && GetObjectEventIdByXYZ(x, y, 3) == OBJECT_EVENTS_COUNT) + && MapGridGetElevationAt(x, y) == 3 + && GetObjectEventIdByPosition(x, y, 3) == OBJECT_EVENTS_COUNT) { QuestLogRecordPlayerAvatarGfxTransitionWithDuration(sQuestLogSurfDismountActionIds[direction], 16); CreateStopSurfingTask(direction); @@ -610,9 +610,9 @@ static bool8 CanStopSurfing(s16 x, s16 y, u8 direction) } } -static bool8 ShouldJumpLedge(s16 x, s16 y, u8 z) +static bool8 ShouldJumpLedge(s16 x, s16 y, u8 direction) { - if (GetLedgeJumpDirection(x, y, z) != 0) + if (GetLedgeJumpDirection(x, y, direction) != DIR_NONE) return TRUE; else return FALSE; @@ -830,29 +830,29 @@ static void QL_TryRecordNPCStepWithDuration32(struct ObjectEvent * objectEvent, QuestLogRecordNPCStepWithDuration(objectEvent->localId, objectEvent->mapNum, objectEvent->mapGroup, movementAction, 32); } -void PlayerGoSlowest(u8 direction) +void PlayerWalkSlower(u8 direction) { PlayerSetAnimId(GetWalkSlowerMovementAction(direction), 2); } -void PlayerGoSlow(u8 direction) +void PlayerWalkSlow(u8 direction) { PlayerSetAnimId(GetWalkSlowMovementAction(direction), 2); } -void PlayerGoSpeed1(u8 direction) +void PlayerWalkNormal(u8 direction) { PlayerSetAnimId(GetWalkNormalMovementAction(direction), 2); } -void PlayerGoSpeed2(u8 direction) +void PlayerWalkFast(u8 direction) { PlayerSetAnimId(GetWalkFastMovementAction(direction), 2); } -void sub_805C134(u8 direction) +void PlayerGlide(u8 direction) { - PlayerSetAnimId(sub_8063FDC(direction), 2); + PlayerSetAnimId(GetGlideMovementAction(direction), 2); } void PlayerRideWaterCurrent(u8 direction) @@ -860,10 +860,9 @@ void PlayerRideWaterCurrent(u8 direction) PlayerSetAnimId(GetRideWaterCurrentMovementAction(direction), 2); } -// fastest speed (4 speed) -void PlayerGoSpeed4(u8 direction) +void PlayerWalkFaster(u8 direction) { - PlayerSetAnimId(GetWalkFastestMovementAction(direction), 2); + PlayerSetAnimId(GetWalkFasterMovementAction(direction), 2); } void PlayerRun(u8 direction) @@ -885,7 +884,7 @@ void PlayerOnBikeCollide(u8 direction) void PlayerNotOnBikeCollide(u8 direction) { PlayCollisionSoundIfNotFacingWarp(direction); - PlayerSetAnimId(GetStepInPlaceDelay32AnimId(direction), 2); + PlayerSetAnimId(GetWalkInPlaceSlowMovementAction(direction), 2); } void PlayerFaceDirection(u8 direction) @@ -900,7 +899,7 @@ void PlayerFaceDirectionFast(u8 direction) void PlayerTurnInPlace(u8 direction) { - PlayerSetAnimId(GetWalkInPlaceSlowMovementAction(direction), 1); + PlayerSetAnimId(GetWalkInPlaceFastMovementAction(direction), 1); } void PlayerJumpLedge(u8 direction) @@ -965,13 +964,13 @@ static void PlayerStandingHoppingWheelie(u8 direction) static void PlayerMovingHoppingWheelie(u8 direction) { PlaySE(SE_BIKE_HOP); - PlayerSetAnimId(GetAcroWheelieHopDirectionMovementAction(direction), 2); + PlayerSetAnimId(GetAcroWheelieHopMovementAction(direction), 2); } static void PlayerLedgeHoppingWheelie(u8 direction) { PlaySE(SE_BIKE_HOP); - PlayerSetAnimId(GetAcroWheelieJumpDirectionMovementAction(direction), 8); + PlayerSetAnimId(GetAcroWheelieJumpMovementAction(direction), 8); } static void PlayerAcroTurnJump(u8 direction) @@ -983,17 +982,17 @@ static void PlayerAcroTurnJump(u8 direction) static void PlayerAcroWheelieCollide(u8 direction) { PlaySE(SE_WALL_HIT); - PlayerSetAnimId(GetAcroWheelieInPlaceDirectionMovementAction(direction), 2); + PlayerSetAnimId(GetAcroWheelieInPlaceMovementAction(direction), 2); } static void PlayerAcroPopWheelie(u8 direction) { - PlayerSetAnimId(GetAcroPopWheelieMoveDirectionMovementAction(direction), 2); + PlayerSetAnimId(GetAcroPopWheelieMoveMovementAction(direction), 2); } static void PlayerAcroWheelieMove(u8 direction) { - PlayerSetAnimId(GetAcroWheelieMoveDirectionMovementAction(direction), 2); + PlayerSetAnimId(GetAcroWheelieMoveMovementAction(direction), 2); } static bool8 (*const sArrowWarpMetatileBehaviorChecks[])(u8) = { @@ -1090,7 +1089,7 @@ u8 GetPlayerMovementDirection(void) return gObjectEvents[gPlayerAvatar.objectEventId].movementDirection; } -u8 PlayerGetZCoord(void) +u8 PlayerGetElevation(void) { return gObjectEvents[gPlayerAvatar.objectEventId].previousElevation; } @@ -1215,7 +1214,7 @@ bool8 IsPlayerFacingSurfableFishableWater(void) MoveCoords(playerObjEvent->facingDirection, &x, &y); if (GetCollisionAtCoords(playerObjEvent, x, y, playerObjEvent->facingDirection) == COLLISION_ELEVATION_MISMATCH - && PlayerGetZCoord() == 3 + && PlayerGetElevation() == 3 && MetatileAtCoordsIsWaterTile(x, y) == TRUE) return TRUE; else @@ -1294,12 +1293,12 @@ void InitPlayerAvatar(s16 x, s16 y, u8 direction, u8 gender) playerObjEventTemplate.graphicsId = GetPlayerAvatarGraphicsIdByStateIdAndGender(PLAYER_AVATAR_GFX_NORMAL, gender); playerObjEventTemplate.x = x - 7; playerObjEventTemplate.y = y - 7; - playerObjEventTemplate.elevation = 0; - playerObjEventTemplate.movementType = MOVEMENT_TYPE_PLAYER; - playerObjEventTemplate.movementRangeX = 0; - playerObjEventTemplate.movementRangeY = 0; - playerObjEventTemplate.trainerType = TRAINER_TYPE_NONE; - playerObjEventTemplate.trainerRange_berryTreeId = 0; + playerObjEventTemplate.objUnion.normal.elevation = 0; + playerObjEventTemplate.objUnion.normal.movementType = MOVEMENT_TYPE_PLAYER; + playerObjEventTemplate.objUnion.normal.movementRangeX = 0; + playerObjEventTemplate.objUnion.normal.movementRangeY = 0; + playerObjEventTemplate.objUnion.normal.trainerType = TRAINER_TYPE_NONE; + playerObjEventTemplate.objUnion.normal.trainerRange_berryTreeId = 0; playerObjEventTemplate.script = NULL; playerObjEventTemplate.flagId = 0; objectEventId = SpawnSpecialObjectEvent(&playerObjEventTemplate); @@ -1417,7 +1416,7 @@ static void Task_BumpBoulder(u8 taskId) static bool8 DoBoulderInit(struct Task *task, struct ObjectEvent *playerObject, struct ObjectEvent *strengthObject) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); gPlayerAvatar.preventStep = TRUE; task->data[0]++; return FALSE; @@ -1453,7 +1452,7 @@ static bool8 DoBoulderFinish(struct Task *task, struct ObjectEvent *playerObject HandleBoulderFallThroughHole(strengthObject); HandleBoulderActivateVictoryRoadSwitch(strengthObject->currentCoords.x, strengthObject->currentCoords.y); gPlayerAvatar.preventStep = FALSE; - ScriptContext2_Disable(); + UnlockPlayerFieldControls(); DestroyTask(FindTaskIdByFunc(Task_BumpBoulder)); } return FALSE; @@ -1518,7 +1517,7 @@ static bool8 PlayerAvatar_SecretBaseMatSpinStep0(struct Task *task, struct Objec task->data[0]++; task->data[1] = objectEvent->movementDirection; gPlayerAvatar.preventStep = TRUE; - ScriptContext2_Enable(); + LockPlayerFieldControls(); PlaySE(SE_WARP_IN); return TRUE; } @@ -1564,7 +1563,7 @@ static bool8 PlayerAvatar_SecretBaseMatSpinStep3(struct Task *task, struct Objec if (ObjectEventClearHeldMovementIfFinished(objectEvent)) { QL_TryRecordPlayerStepWithDuration0(objectEvent, GetWalkSlowerMovementAction(GetOppositeDirection(task->data[1]))); - ScriptContext2_Disable(); + UnlockPlayerFieldControls(); gPlayerAvatar.preventStep = FALSE; DestroyTask(FindTaskIdByFunc(PlayerAvatar_DoSecretBaseMatSpin)); } @@ -1575,7 +1574,7 @@ static void CreateStopSurfingTask(u8 direction) { u8 taskId; - ScriptContext2_Enable(); + LockPlayerFieldControls(); FreezeObjectEvents(); Overworld_ClearSavedMusic(); Overworld_ChangeMusicToDefault(); @@ -1591,7 +1590,7 @@ void CreateStopSurfingTask_NoMusicChange(u8 direction) { u8 taskId; - ScriptContext2_Enable(); + LockPlayerFieldControls(); FreezeObjectEvents(); gPlayerAvatar.flags &= ~PLAYER_AVATAR_FLAG_SURFING; gPlayerAvatar.flags |= PLAYER_AVATAR_FLAG_ON_FOOT; @@ -1633,7 +1632,7 @@ static void Task_WaitStopSurfing(u8 taskId) ObjectEventSetGraphicsId(playerObjEvent, GetPlayerAvatarGraphicsIdByStateId(PLAYER_AVATAR_GFX_NORMAL)); QL_TryRecordPlayerStepWithDuration0(playerObjEvent, GetFaceDirectionMovementAction(playerObjEvent->facingDirection)); gPlayerAvatar.preventStep = FALSE; - ScriptContext2_Disable(); + UnlockPlayerFieldControls(); UnfreezeObjectEvents(); DestroySprite(&gSprites[playerObjEvent->fieldEffectSpriteId]); DestroyTask(taskId); @@ -1696,7 +1695,7 @@ static void Task_Fishing(u8 taskId) static bool8 Fishing1(struct Task *task) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); gPlayerAvatar.preventStep = TRUE; task->tStep++; return FALSE; @@ -1734,7 +1733,7 @@ static bool8 Fishing4(struct Task *task) { u32 randVal; - sub_80F7768(0, TRUE); + LoadMessageBoxAndFrameGfx(0, TRUE); task->tStep++; task->tFrameCounter = 0; task->tNumDots = 0; @@ -1880,7 +1879,7 @@ static bool8 Fishing11(struct Task *task) if (task->tFrameCounter != 0) { gPlayerAvatar.preventStep = FALSE; - ScriptContext2_Disable(); + UnlockPlayerFieldControls(); FishingWildEncounter(task->tFishingRod); DestroyTask(FindTaskIdByFunc(Task_Fishing)); } @@ -1940,7 +1939,7 @@ static bool8 Fishing16(struct Task *task) if (!IsTextPrinterActive(0)) { gPlayerAvatar.preventStep = FALSE; - ScriptContext2_Disable(); + UnlockPlayerFieldControls(); UnfreezeObjectEvents(); ClearDialogWindowAndFrame(0, TRUE); DestroyTask(FindTaskIdByFunc(Task_Fishing)); diff --git a/src/field_poison.c b/src/field_poison.c index 1e2a30c0c..34640489e 100644 --- a/src/field_poison.c +++ b/src/field_poison.c @@ -36,7 +36,7 @@ static void FaintFromFieldPoison(u8 partyIdx) AdjustFriendship(pokemon, FRIENDSHIP_EVENT_FAINT_OUTSIDE_BATTLE); SetMonData(pokemon, MON_DATA_STATUS, &status); GetMonData(pokemon, MON_DATA_NICKNAME, gStringVar1); - StringGetEnd10(gStringVar1); + StringGet_Nickname(gStringVar1); } static bool32 MonFaintedFromPoison(u8 partyIdx) @@ -77,7 +77,7 @@ static void Task_TryFieldPoisonWhiteOut(u8 taskId) gSpecialVar_Result = TRUE; else gSpecialVar_Result = FALSE; - EnableBothScriptContexts(); + ScriptContext_Enable(); DestroyTask(taskId); break; } @@ -86,7 +86,7 @@ static void Task_TryFieldPoisonWhiteOut(u8 taskId) void TryFieldPoisonWhiteOut(void) { CreateTask(Task_TryFieldPoisonWhiteOut, 80); - ScriptContext1_Stop(); + ScriptContext_Stop(); } s32 DoPoisonFieldEffect(void) diff --git a/src/field_screen_effect.c b/src/field_screen_effect.c index d827fc88e..a451ffd1b 100644 --- a/src/field_screen_effect.c +++ b/src/field_screen_effect.c @@ -12,14 +12,14 @@ #include "event_object_movement.h" #include "field_fadetransition.h" #include "event_scripts.h" +#include "constants/heal_locations.h" +#include "constants/maps.h" -static const u16 sFlashLevelPixelRadii[] = { - 0x00c8, 0x0048, 0x0038, 0x0028, 0x0018 -}; +static const u16 sFlashLevelToRadius[] = { 200, 72, 56, 40, 24 }; +const s32 gMaxFlashLevel = ARRAY_COUNT(sFlashLevelToRadius) - 1; -const s32 gMaxFlashLevel = NELEMS(sFlashLevelPixelRadii) - 1; - -static const struct WindowTemplate gUnknown_83C68E4 = { +static const struct WindowTemplate sWindowTemplate_WhiteoutText = +{ .bg = 0, .tilemapLeft = 0, .tilemapTop = 5, @@ -29,7 +29,7 @@ static const struct WindowTemplate gUnknown_83C68E4 = { .baseBlock = 1, }; -static const u8 gUnknown_83C68EC[] = { TEXT_COLOR_TRANSPARENT, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GRAY }; +static const u8 sWhiteoutTextColors[] = { TEXT_COLOR_TRANSPARENT, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GRAY }; static void Task_EnableScriptAfterMusicFade(u8 taskId); static void Task_BarnDoorWipeChild(u8 taskId); @@ -150,22 +150,22 @@ static void UpdateFlashLevelEffect(u8 taskId) } } -static void sub_807EF7C(u8 taskId) +static void Task_WaitForFlashUpdate(u8 taskId) { if (!FuncIsActiveTask(UpdateFlashLevelEffect)) { - EnableBothScriptContexts(); + ScriptContext_Enable(); DestroyTask(taskId); } } -static void sub_807EFA4(void) +static void StartWaitForFlashUpdate(void) { - if (!FuncIsActiveTask(sub_807EF7C)) - CreateTask(sub_807EF7C, 80); + if (!FuncIsActiveTask(Task_WaitForFlashUpdate)) + CreateTask(Task_WaitForFlashUpdate, 80); } -static u8 sub_807EFC8(s32 centerX, s32 centerY, s32 initialFlashRadius, s32 destFlashRadius, bool32 clearScanlineEffect, u8 delta) +static u8 StartUpdateFlashLevelEffect(s32 centerX, s32 centerY, s32 initialFlashRadius, s32 destFlashRadius, bool32 clearScanlineEffect, u8 delta) { u8 taskId = CreateTask(UpdateFlashLevelEffect, 80); s16 *data = gTasks[taskId].data; @@ -190,22 +190,23 @@ static u8 sub_807EFC8(s32 centerX, s32 centerY, s32 initialFlashRadius, s32 dest #undef tFlashRadiusDelta #undef tClearScanlineEffect -void AnimateFlash(u8 flashLevel) +// A higher flash level is a smaller flash radius (more darkness). 0 is full brightness +void AnimateFlash(u8 newFlashLevel) { u8 curFlashLevel = Overworld_GetFlashLevel(); - bool32 value = FALSE; - if (!flashLevel) - value = TRUE; - sub_807EFC8(120, 80, sFlashLevelPixelRadii[curFlashLevel], sFlashLevelPixelRadii[flashLevel], value, 2); - sub_807EFA4(); - ScriptContext2_Enable(); + bool32 fullBrightness = FALSE; + if (newFlashLevel == 0) + fullBrightness = TRUE; + StartUpdateFlashLevelEffect(DISPLAY_WIDTH / 2, DISPLAY_HEIGHT / 2, sFlashLevelToRadius[curFlashLevel], sFlashLevelToRadius[newFlashLevel], fullBrightness, 2); + StartWaitForFlashUpdate(); + LockPlayerFieldControls(); } void WriteFlashScanlineEffectBuffer(u8 flashLevel) { if (flashLevel) { - SetFlashScanlineEffectWindowBoundaries(&gScanlineEffectRegBuffers[0][0], 120, 80, sFlashLevelPixelRadii[flashLevel]); + SetFlashScanlineEffectWindowBoundaries(&gScanlineEffectRegBuffers[0][0], 120, 80, sFlashLevelToRadius[flashLevel]); CpuFastCopy(&gScanlineEffectRegBuffers[0], &gScanlineEffectRegBuffers[1], 240 * 8); } } @@ -221,7 +222,7 @@ static void Task_EnableScriptAfterMusicFade(u8 taskId) if (BGMusicStopped() == TRUE) { DestroyTask(taskId); - EnableBothScriptContexts(); + ScriptContext_Enable(); } } @@ -283,15 +284,15 @@ void Task_BarnDoorWipe(u8 taskId) if (data[10] == 0) { SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(0, 0)); - SetGpuReg(REG_OFFSET_WIN1H, WIN_RANGE(240, 255)); + SetGpuReg(REG_OFFSET_WIN1H, WIN_RANGE(DISPLAY_WIDTH, 255)); SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(0, 255)); SetGpuReg(REG_OFFSET_WIN1V, WIN_RANGE(0, 255)); } else { - SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(0, 120)); + SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(0, DISPLAY_WIDTH / 2)); SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(0, 255)); - SetGpuReg(REG_OFFSET_WIN1H, WIN_RANGE(120, 255)); + SetGpuReg(REG_OFFSET_WIN1H, WIN_RANGE(DISPLAY_WIDTH / 2, 255)); SetGpuReg(REG_OFFSET_WIN1V, WIN_RANGE(0, 255)); } SetGpuReg(REG_OFFSET_WININ, 0); @@ -323,8 +324,8 @@ static void Task_BarnDoorWipeChild(u8 taskId) if (gTasks[parentTaskId].tDirection == DIR_WIPE_IN) { lhs = tChildOffset; - rhs = 240 - tChildOffset; - if (lhs > 120) + rhs = DISPLAY_WIDTH - tChildOffset; + if (lhs > DISPLAY_WIDTH / 2) { DestroyTask(taskId); return; @@ -332,8 +333,8 @@ static void Task_BarnDoorWipeChild(u8 taskId) } else { - lhs = 120 - tChildOffset; - rhs = 120 + tChildOffset; + lhs = DISPLAY_WIDTH / 2 - tChildOffset; + rhs = DISPLAY_WIDTH / 2 + tChildOffset; if (lhs < 0) { DestroyTask(taskId); @@ -341,15 +342,11 @@ static void Task_BarnDoorWipeChild(u8 taskId) } } SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(0, lhs)); - SetGpuReg(REG_OFFSET_WIN1H, WIN_RANGE(rhs, 240)); - if (lhs <= 89) - { + SetGpuReg(REG_OFFSET_WIN1H, WIN_RANGE(rhs, DISPLAY_WIDTH)); + if (lhs < 90) tChildOffset += 4; - } else - { tChildOffset += 2; - } } #undef tState @@ -358,24 +355,28 @@ static void Task_BarnDoorWipeChild(u8 taskId) #undef DIR_WIPE_OUT #undef tChildOffset +#define tState data[0] +#define tWindowId data[1] +#define tPrintState data[2] + static bool8 PrintWhiteOutRecoveryMessage(u8 taskId, const u8 *text, u8 x, u8 y) { - u8 windowId = gTasks[taskId].data[1]; + u8 windowId = gTasks[taskId].tWindowId; - switch (gTasks[taskId].data[2]) + switch (gTasks[taskId].tPrintState) { case 0: FillWindowPixelBuffer(windowId, PIXEL_FILL(0)); StringExpandPlaceholders(gStringVar4, text); - AddTextPrinterParameterized4(windowId, FONT_2, x, y, 1, 0, gUnknown_83C68EC, 1, gStringVar4); + AddTextPrinterParameterized4(windowId, FONT_2, x, y, 1, 0, sWhiteoutTextColors, 1, gStringVar4); gTextFlags.canABSpeedUpPrint = FALSE; - gTasks[taskId].data[2] = 1; + gTasks[taskId].tPrintState = 1; break; case 1: RunTextPrinters(); if (!IsTextPrinterActive(windowId)) { - gTasks[taskId].data[2] = 0; + gTasks[taskId].tPrintState = 0; return TRUE; } break; @@ -388,61 +389,63 @@ static void Task_RushInjuredPokemonToCenter(u8 taskId) u8 windowId; const struct HealLocation *loc; - switch (gTasks[taskId].data[0]) + switch (gTasks[taskId].tState) { case 0: - windowId = AddWindow(&gUnknown_83C68E4); - gTasks[taskId].data[1] = windowId; + windowId = AddWindow(&sWindowTemplate_WhiteoutText); + gTasks[taskId].tWindowId = windowId; Menu_LoadStdPalAt(0xF0); FillWindowPixelBuffer(windowId, PIXEL_FILL(0)); PutWindowTilemap(windowId); CopyWindowToVram(windowId, COPYWIN_FULL); - loc = GetHealLocation(1); + + // Scene changes if last heal location was the player's house + loc = GetHealLocation(SPAWN_PALLET_TOWN); if (gSaveBlock1Ptr->lastHealLocation.mapGroup == loc->group && gSaveBlock1Ptr->lastHealLocation.mapNum == loc->map - && gSaveBlock1Ptr->lastHealLocation.warpId == -1 + && gSaveBlock1Ptr->lastHealLocation.warpId == WARP_ID_NONE && gSaveBlock1Ptr->lastHealLocation.x == loc->x && gSaveBlock1Ptr->lastHealLocation.y == loc->y) - gTasks[taskId].data[0] = 4; + gTasks[taskId].tState = 4; else - gTasks[taskId].data[0] = 1; + gTasks[taskId].tState = 1; break; case 1: if (PrintWhiteOutRecoveryMessage(taskId, gText_PlayerScurriedToCenter, 2, 8)) { - ObjectEventTurn(&gObjectEvents[gPlayerAvatar.objectEventId], 2); - ++gTasks[taskId].data[0]; + ObjectEventTurn(&gObjectEvents[gPlayerAvatar.objectEventId], DIR_NORTH); + gTasks[taskId].tState++; } break; case 4: if (PrintWhiteOutRecoveryMessage(taskId, gText_PlayerScurriedBackHome, 2, 8)) { - ObjectEventTurn(&gObjectEvents[gPlayerAvatar.objectEventId], 2); - ++gTasks[taskId].data[0]; + ObjectEventTurn(&gObjectEvents[gPlayerAvatar.objectEventId], DIR_NORTH); + gTasks[taskId].tState++; } break; case 2: case 5: - windowId = gTasks[taskId].data[1]; + windowId = gTasks[taskId].tWindowId; ClearWindowTilemap(windowId); CopyWindowToVram(windowId, COPYWIN_MAP); RemoveWindow(windowId); palette_bg_faded_fill_black(); FadeInFromBlack(); - ++gTasks[taskId].data[0]; + gTasks[taskId].tState++; break; case 3: if (FieldFadeTransitionBackgroundEffectIsFinished() == TRUE) { DestroyTask(taskId); - ScriptContext1_SetupScript(EventScript_AfterWhiteOutHeal); + ScriptContext_SetupScript(EventScript_AfterWhiteOutHeal); } break; case 6: if (FieldFadeTransitionBackgroundEffectIsFinished() == TRUE) { DestroyTask(taskId); - ScriptContext1_SetupScript(EventScript_AfterWhiteOutMomHeal); + ScriptContext_SetupScript(EventScript_AfterWhiteOutMomHeal); } break; } @@ -452,8 +455,8 @@ void FieldCB_RushInjuredPokemonToCenter(void) { u8 taskId; - ScriptContext2_Enable(); + LockPlayerFieldControls(); palette_bg_faded_fill_black(); taskId = CreateTask(Task_RushInjuredPokemonToCenter, 10); - gTasks[taskId].data[0] = 0; + gTasks[taskId].tState = 0; } diff --git a/src/field_special_scene.c b/src/field_special_scene.c index 327426231..90910bc56 100644 --- a/src/field_special_scene.c +++ b/src/field_special_scene.c @@ -1,23 +1,23 @@ #include "global.h" -static u32 sub_80A0E78(void) +static u32 FieldSpecialScene_Dummy0(void) { return 0; } -static void nullsub_57(void) +static void FieldSpecialScene_Dummy1(void) { } -static void nullsub_58(void) +static void FieldSpecialScene_Dummy2(void) { } -static void nullsub_59(void) +static void FieldSpecialScene_Dummy3(void) { } -void nullsub_60(void) +void FieldCB_ShowPortholeView(void) { } diff --git a/src/field_specials.c b/src/field_specials.c index e9574f429..84ffd75e3 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -91,7 +91,7 @@ void ShowDiploma(void) { QuestLog_CutRecording(); SetMainCallback2(CB2_ShowDiploma); - ScriptContext2_Enable(); + LockPlayerFieldControls(); } void ForcePlayerOntoBike(void) @@ -280,7 +280,7 @@ static void PcTurnOnUpdateMetatileId(bool16 flickerOff) else if (gSpecialVar_0x8004 == 2) metatileId = METATILE_GenericBuilding1_PlayersPCOn; } - MapGridSetMetatileIdAt(gSaveBlock1Ptr->pos.x + deltaX + 7, gSaveBlock1Ptr->pos.y + deltaY + 7, metatileId | METATILE_COLLISION_MASK); + MapGridSetMetatileIdAt(gSaveBlock1Ptr->pos.x + deltaX + MAP_OFFSET, gSaveBlock1Ptr->pos.y + deltaY + MAP_OFFSET, metatileId | MAPGRID_COLLISION_MASK); } void AnimatePcTurnOff() @@ -311,13 +311,13 @@ void AnimatePcTurnOff() metatileId = METATILE_GenericBuilding1_PlayersPCOff; else if (gSpecialVar_0x8004 == 2) metatileId = METATILE_GenericBuilding1_PlayersPCOff; - MapGridSetMetatileIdAt(gSaveBlock1Ptr->pos.x + deltaX + 7, gSaveBlock1Ptr->pos.y + deltaY + 7, metatileId | METATILE_COLLISION_MASK); + MapGridSetMetatileIdAt(gSaveBlock1Ptr->pos.x + deltaX + MAP_OFFSET, gSaveBlock1Ptr->pos.y + deltaY + MAP_OFFSET, metatileId | MAPGRID_COLLISION_MASK); DrawWholeMapView(); } void SpawnCameraObject(void) { - u8 objectEventId = SpawnSpecialObjectEventParameterized(OBJ_EVENT_GFX_YOUNGSTER, 8, OBJ_EVENT_ID_CAMERA, gSaveBlock1Ptr->pos.x + 7, gSaveBlock1Ptr->pos.y + 7, 3); + u8 objectEventId = SpawnSpecialObjectEventParameterized(OBJ_EVENT_GFX_YOUNGSTER, 8, OBJ_EVENT_ID_CAMERA, gSaveBlock1Ptr->pos.x + MAP_OFFSET, gSaveBlock1Ptr->pos.y + MAP_OFFSET, 3); gObjectEvents[objectEventId].invisible = TRUE; CameraObjectSetFollowedObjectId(gObjectEvents[objectEventId].spriteId); } @@ -325,7 +325,7 @@ void SpawnCameraObject(void) void RemoveCameraObject(void) { CameraObjectSetFollowedObjectId(GetPlayerAvatarObjectId()); - RemoveObjectEventByLocalIdAndMap(127, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup); + RemoveObjectEventByLocalIdAndMap(OBJ_EVENT_ID_CAMERA, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup); } void BufferEReaderTrainerName(void) @@ -333,7 +333,8 @@ void BufferEReaderTrainerName(void) CopyEReaderTrainerName5(gStringVar1); } -static const u8 sUnused_83F5B04[] = { +// Unused +static const u8 sSlotMachineRandomSeeds[] = { 13, 14, 15, @@ -497,7 +498,7 @@ static void Task_ShakeScreen(u8 taskId) static void Task_EndScreenShake(u8 taskId) { DestroyTask(taskId); - EnableBothScriptContexts(); + ScriptContext_Enable(); } #undef tYtrans @@ -752,7 +753,8 @@ static const u8 *const sFloorNamePointers[] = { gText_Rooftop }; -static const u8 sUnused_83F5B84[] = { +// Unused +static const u8 sFloorNameWidthPadding[] = { 26, 26, 26, @@ -1083,7 +1085,7 @@ static void Task_ElevatorShake(u8 taskId) { PlaySE(SE_DING_DONG); DestroyTask(taskId); - EnableBothScriptContexts(); + ScriptContext_Enable(); InstallCameraPanAheadCallback(); } } @@ -1096,7 +1098,7 @@ void DrawElevatorCurrentFloorWindow(void) if (QuestLog_SchedulePlaybackCB(QLPlaybackCB_DestroyScriptMenuMonPicSprites) != TRUE) { sElevatorCurrentFloorWindowId = AddWindow(&sElevatorCurrentFloorWindowTemplate); - TextWindow_SetStdFrame0_WithPal(sElevatorCurrentFloorWindowId, 0x21D, 0xD0); + LoadStdWindowGfx(sElevatorCurrentFloorWindowId, 0x21D, 0xD0); DrawStdFrameWithCustomTileAndPalette(sElevatorCurrentFloorWindowId, FALSE, 0x21D, 0xD); AddTextPrinterParameterized(sElevatorCurrentFloorWindowId, FONT_2, gText_NowOn, 0, 2, 0xFF, NULL); floorname = sFloorNamePointers[gSpecialVar_0x8005]; @@ -1139,9 +1141,7 @@ static void Task_AnimateElevatorWindowView(u8 taskId) for (i = 0; i < 3; i++) { for (j = 0; j < 3; j++) - { - MapGridSetMetatileIdAt(j + 8, i + 7, sElevatorWindowMetatilesGoingUp[i][data[0] % 3] | METATILE_COLLISION_MASK); - } + MapGridSetMetatileIdAt(j + 1 + MAP_OFFSET, i + MAP_OFFSET, sElevatorWindowMetatilesGoingUp[i][data[0] % 3] | MAPGRID_COLLISION_MASK); } } else @@ -1149,9 +1149,7 @@ static void Task_AnimateElevatorWindowView(u8 taskId) for (i = 0; i < 3; i++) { for (j = 0; j < 3; j++) - { - MapGridSetMetatileIdAt(j + 8, i + 7, sElevatorWindowMetatilesGoingDown[i][data[0] % 3] | METATILE_COLLISION_MASK); - } + MapGridSetMetatileIdAt(j + 1 + MAP_OFFSET, i + MAP_OFFSET, sElevatorWindowMetatilesGoingDown[i][data[0] % 3] | MAPGRID_COLLISION_MASK); } } DrawWholeMapView(); @@ -1336,7 +1334,7 @@ static void Task_CreateScriptListMenu(u8 taskId) s32 mwidth; struct Task *task = &gTasks[taskId]; u8 windowId; - ScriptContext2_Enable(); + LockPlayerFieldControls(); if (gSpecialVar_0x8004 == LISTMENU_SILPHCO_FLOORS) sListMenuLastScrollPosition = sElevatorScroll; else @@ -1432,7 +1430,7 @@ static void Task_ListMenuHandleInput(u8 taskId) { Task_ListMenuRemoveScrollIndicatorArrowPair(taskId); task->func = Task_SuspendListMenu; - EnableBothScriptContexts(); + ScriptContext_Enable(); } break; } @@ -1450,7 +1448,7 @@ static void Task_DestroyListMenu(u8 taskId) CopyWindowToVram(task->data[13], COPYWIN_GFX); RemoveWindow(task->data[13]); DestroyTask(taskId); - EnableBothScriptContexts(); + ScriptContext_Enable(); } static void Task_SuspendListMenu(u8 taskId) @@ -1470,14 +1468,14 @@ void ReturnToListMenu(void) { u8 taskId = FindTaskIdByFunc(Task_SuspendListMenu); if (taskId == 0xFF) - EnableBothScriptContexts(); + ScriptContext_Enable(); else gTasks[taskId].data[6]++; } static void Task_RedrawScrollArrowsAndWaitInput(u8 taskId) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); Task_CreateMenuRemoveScrollIndicatorArrowPair(taskId); gTasks[taskId].func = Task_ListMenuHandleInput; } @@ -1671,7 +1669,7 @@ static void ChangePokemonNickname_CB(void) void BufferMonNickname(void) { GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_NICKNAME, gStringVar1); - StringGetEnd10(gStringVar1); + StringGet_Nickname(gStringVar1); } void IsMonOTIDNotPlayers(void) @@ -2153,7 +2151,7 @@ void DoPokemonLeagueLightingEffect(void) LoadPalette(sEliteFourLightingPalettes[0], 0x70, 0x20); } data[1] = 0; - Fieldmap_ApplyGlobalTintToPaletteSlot(7, 1); + ApplyGlobalTintToPaletteSlot(7, 1); } } @@ -2180,7 +2178,7 @@ static void Task_RunPokemonLeagueLightingEffect(u8 taskId) data[0] = sEliteFourLightingTimers[data[1]]; LoadPalette(sEliteFourLightingPalettes[data[1]], 0x70, 0x20); } - Fieldmap_ApplyGlobalTintToPaletteSlot(7, 1); + ApplyGlobalTintToPaletteSlot(7, 1); } } @@ -2197,7 +2195,7 @@ static void Task_CancelPokemonLeagueLightingEffect(u8 taskId) { LoadPalette(sEliteFourLightingPalettes[11], 0x70, 0x20); } - Fieldmap_ApplyGlobalTintToPaletteSlot(7, 1); + ApplyGlobalTintToPaletteSlot(7, 1); if (gPaletteFade.active) { BlendPalettes(0x00000080, 16, RGB_BLACK); @@ -2317,7 +2315,7 @@ void CutMoveOpenDottedHoleDoor(void) DrawWholeMapView(); PlaySE(SE_BANG); FlagSet(FLAG_USED_CUT_ON_RUIN_VALLEY_BRAILLE); - ScriptContext2_Disable(); + UnlockPlayerFieldControls(); } static const u16 sDeoxysObjectPals[][16] = { @@ -2373,7 +2371,7 @@ static void Task_DoDeoxysTriangleInteraction(u8 taskId) if (FlagGet(FLAG_SYS_DEOXYS_AWAKENED) == TRUE) { gSpecialVar_Result = 3; - EnableBothScriptContexts(); + ScriptContext_Enable(); DestroyTask(taskId); } else @@ -2392,7 +2390,7 @@ static void Task_DoDeoxysTriangleInteraction(u8 taskId) { FlagSet(FLAG_SYS_DEOXYS_AWAKENED); gSpecialVar_Result = 2; - EnableBothScriptContexts(); + ScriptContext_Enable(); DestroyTask(taskId); } else @@ -2434,7 +2432,7 @@ static void Task_WaitDeoxysFieldEffect(u8 taskId) { if (!FieldEffectActiveListContains(FLDEFF_MOVE_DEOXYS_ROCK)) { - EnableBothScriptContexts(); + ScriptContext_Enable(); DestroyTask(taskId); } } diff --git a/src/field_tasks.c b/src/field_tasks.c index 20dcb4696..5c60b98b9 100644 --- a/src/field_tasks.c +++ b/src/field_tasks.c @@ -57,7 +57,7 @@ static void Task_RunTimeBasedEvents(u8 taskId) { s16 *data = gTasks[taskId].data; - if (!ScriptContext2_IsEnabled()) + if (!ArePlayerFieldControlsLocked()) { if (!QL_IS_PLAYBACK_STATE) { @@ -288,7 +288,8 @@ static void CrackedFloorPerStepCallback(u8 taskId) } } -static void sub_806ED38(void) +// Unused +static void SetHasPokedexAndPokemon(void) { FlagSet(FLAG_SYS_POKEDEX_GET); FlagSet(FLAG_SYS_POKEMON_GET); diff --git a/src/field_weather.c b/src/field_weather.c index 6322306c6..e088f22df 100644 --- a/src/field_weather.c +++ b/src/field_weather.c @@ -1045,38 +1045,39 @@ bool8 Weather_UpdateBlend(void) return FALSE; } -UNUSED static void Unused_SetWeather(u8 a) +// Unused. Uses the same numbering scheme as the coord events +static void SetFieldWeather(u8 weather) { - switch (a) + switch (weather) { - case 1: + case COORD_EVENT_WEATHER_SUNNY_CLOUDS: SetWeather(WEATHER_SUNNY_CLOUDS); break; - case 2: + case COORD_EVENT_WEATHER_SUNNY: SetWeather(WEATHER_SUNNY); break; - case 3: + case COORD_EVENT_WEATHER_RAIN: SetWeather(WEATHER_RAIN); break; - case 4: + case COORD_EVENT_WEATHER_SNOW: SetWeather(WEATHER_SNOW); break; - case 5: + case COORD_EVENT_WEATHER_RAIN_THUNDERSTORM: SetWeather(WEATHER_RAIN_THUNDERSTORM); break; - case 6: + case COORD_EVENT_WEATHER_FOG_HORIZONTAL: SetWeather(WEATHER_FOG_HORIZONTAL); break; - case 7: + case COORD_EVENT_WEATHER_FOG_DIAGONAL: SetWeather(WEATHER_FOG_DIAGONAL); break; - case 8: + case COORD_EVENT_WEATHER_VOLCANIC_ASH: SetWeather(WEATHER_VOLCANIC_ASH); break; - case 9: + case COORD_EVENT_WEATHER_SANDSTORM: SetWeather(WEATHER_SANDSTORM); break; - case 10: + case COORD_EVENT_WEATHER_SHADE: SetWeather(WEATHER_SHADE); break; } diff --git a/src/field_weather_effects.c b/src/field_weather_effects.c index 32f945803..6d69e3552 100644 --- a/src/field_weather_effects.c +++ b/src/field_weather_effects.c @@ -30,7 +30,7 @@ static const struct Coords16 sCloudSpriteMapCoords[] = { static const struct SpriteSheet sCloudSpriteSheet = { .data = gWeatherCloudTiles, .size = 0x0800, - .tag = 0x1200 + .tag = GFXTAG_CLOUD }; static const struct OamData sCloudSpriteOamData = { @@ -59,8 +59,8 @@ static const union AnimCmd *const sCloudSpriteAnimCmds[] = { }; static const struct SpriteTemplate sCloudSpriteTemplate = { - .tileTag = 0x1200, - .paletteTag = 0x1200, + .tileTag = GFXTAG_CLOUD, + .paletteTag = PALTAG_WEATHER, .oam = &sCloudSpriteOamData, .anims = sCloudSpriteAnimCmds, .images = NULL, @@ -189,7 +189,7 @@ static void DestroyCloudSprites(void) DestroySprite(gWeatherPtr->sprites.s1.cloudSprites[i]); } - FreeSpriteTilesByTag(0x1200); + FreeSpriteTilesByTag(GFXTAG_CLOUD); gWeatherPtr->cloudSpritesCreated = FALSE; } @@ -315,7 +315,7 @@ static void UpdateDroughtBlend(u8 taskId) task->tState++; break; case 4: - EnableBothScriptContexts(); + ScriptContext_Enable(); DestroyTask(taskId); break; } @@ -405,8 +405,8 @@ static const union AnimCmd *const sRainSpriteAnimCmds[] = { }; static const struct SpriteTemplate sRainSpriteTemplate = { - .tileTag = 0x1206, - .paletteTag = 0x1200, + .tileTag = GFXTAG_RAIN, + .paletteTag = PALTAG_WEATHER, .oam = &sRainSpriteOamData, .anims = sRainSpriteAnimCmds, .images = NULL, @@ -431,7 +431,7 @@ static const u16 sRainSpriteFallingDurations[][2] = { static const struct SpriteSheet sRainSpriteSheet = { .data = gWeatherRainTiles, .size = 0x0600, - .tag = 0x1206, + .tag = GFXTAG_RAIN, }; void Rain_InitVars(void) @@ -482,8 +482,8 @@ bool8 Rain_Finish(void) { case 0: if (gWeatherPtr->nextWeather == WEATHER_RAIN - || gWeatherPtr->nextWeather == WEATHER_RAIN_THUNDERSTORM - || gWeatherPtr->nextWeather == WEATHER_DOWNPOUR) + || gWeatherPtr->nextWeather == WEATHER_RAIN_THUNDERSTORM + || gWeatherPtr->nextWeather == WEATHER_DOWNPOUR) { gWeatherPtr->finishStep = 0xFF; return FALSE; @@ -524,8 +524,7 @@ static void StartRainSpriteFall(struct Sprite *sprite) if (sprite->tRandom == 0) sprite->tRandom = 361; - // Standard RNG sequence. - rand = sprite->tRandom * 1103515245 + 12345; + rand = ISO_RANDOMIZE2(sprite->tRandom); sprite->tRandom = ((rand & 0x7FFF0000) >> 16) % 600; numFallingFrames = sRainSpriteFallingDurations[gWeatherPtr->isDownpour][0]; @@ -563,8 +562,8 @@ static void UpdateRainSprite(struct Sprite *sprite) sprite->y = sprite->tPosY >> 4; if (sprite->tActive - && (sprite->x >= -8 && sprite->x <= 248) - && sprite->y >= -16 && sprite->y <= 176) + && (sprite->x >= -8 && sprite->x <= DISPLAY_WIDTH + 8) + && sprite->y >= -16 && sprite->y <= DISPLAY_HEIGHT + 16) sprite->invisible = FALSE; else sprite->invisible = TRUE; @@ -643,7 +642,7 @@ static bool8 CreateRainSprite(void) if (spriteId != MAX_SPRITES) { - gSprites[spriteId].tActive = 0; + gSprites[spriteId].tActive = FALSE; gSprites[spriteId].tRandom = spriteIndex * 145; while (gSprites[spriteId].tRandom >= 600) gSprites[spriteId].tRandom -= 600; @@ -710,7 +709,7 @@ static void DestroyRainSprites(void) DestroySprite(gWeatherPtr->sprites.s1.rainSprites[i]); } gWeatherPtr->rainSpriteCount = 0; - FreeSpriteTilesByTag(0x1206); + FreeSpriteTilesByTag(GFXTAG_RAIN); } #undef tCounter @@ -838,8 +837,8 @@ static const union AnimCmd *const sSnowflakeAnimCmds[] = { }; static const struct SpriteTemplate sSnowflakeSpriteTemplate = { - .tileTag = 0xFFFF, - .paletteTag = 0x1200, + .tileTag = TAG_NONE, + .paletteTag = PALTAG_WEATHER, .oam = &sSnowflakeSpriteOamData, .anims = sSnowflakeAnimCmds, .images = sSnowflakeSpriteImages, @@ -901,13 +900,14 @@ static void InitSnowflakeSpriteMovement(struct Sprite *sprite) static void WaitSnowflakeSprite(struct Sprite *sprite) { - if (gWeatherPtr->unknown_6E2 > 18) + // Timer is never incremented + if (gWeatherPtr->snowflakeTimer > 18) { sprite->invisible = FALSE; sprite->callback = UpdateSnowflakeSprite; sprite->y = 250 - (gSpriteCoordOffsetY + sprite->centerToCornerVecY); sprite->tPosY = sprite->y * 128; - gWeatherPtr->unknown_6E2 = 0; + gWeatherPtr->snowflakeTimer = 0; } } @@ -971,9 +971,32 @@ static void UpdateSnowflakeSprite(struct Sprite *sprite) // WEATHER_RAIN_THUNDERSTORM //------------------------------------------------------------------------------ +enum { + // This block of states is run only once + // when first setting up the thunderstorm + TSTORM_STATE_LOAD_RAIN, + TSTORM_STATE_CREATE_RAIN, + TSTORM_STATE_INIT_RAIN, + TSTORM_STATE_WAIT_CHANGE, + + // The thunderstorm loops through these states, + // not necessarily in order. + TSTORM_STATE_LOOP_START, + TSTORM_STATE_LOOP_WAIT, + TSTORM_STATE_INIT_THUNDER_SHORT_1, + TSTORM_STATE_INIT_THUNDER_SHORT_2, + TSTORM_STATE_TRY_THUNDER_SHORT, + TSTORM_STATE_TRY_NEW_THUNDER, + TSTORM_STATE_WAIT_THUNDER_SHORT, + TSTORM_STATE_INIT_THUNDER_LONG, + TSTORM_STATE_WAIT_THUNDER_LONG, + TSTORM_STATE_FADE_THUNDER_LONG, + TSTORM_STATE_END_THUNDER_LONG, +}; + void Thunderstorm_InitVars(void) { - gWeatherPtr->initStep = 0; + gWeatherPtr->initStep = TSTORM_STATE_LOAD_RAIN; gWeatherPtr->weatherGfxLoaded = FALSE; gWeatherPtr->rainSpriteVisibleCounter = 0; gWeatherPtr->rainSpriteVisibleDelay = 4; @@ -1002,7 +1025,7 @@ static void SetThunderCounter(u16); void Downpour_InitVars(void) { - gWeatherPtr->initStep = 0; + gWeatherPtr->initStep = TSTORM_STATE_LOAD_RAIN; gWeatherPtr->weatherGfxLoaded = FALSE; gWeatherPtr->rainSpriteVisibleCounter = 0; gWeatherPtr->rainSpriteVisibleDelay = 4; @@ -1026,100 +1049,105 @@ void Thunderstorm_Main(void) UpdateThunderSound(); switch (gWeatherPtr->initStep) { - case 0: + case TSTORM_STATE_LOAD_RAIN: LoadRainSpriteSheet(); gWeatherPtr->initStep++; break; - case 1: + case TSTORM_STATE_CREATE_RAIN: if (!CreateRainSprite()) gWeatherPtr->initStep++; break; - case 2: + case TSTORM_STATE_INIT_RAIN: if (!UpdateVisibleRainSprites()) { gWeatherPtr->weatherGfxLoaded = TRUE; gWeatherPtr->initStep++; } break; - case 3: + case TSTORM_STATE_WAIT_CHANGE: if (gWeatherPtr->palProcessingState != WEATHER_PAL_STATE_CHANGING_WEATHER) - gWeatherPtr->initStep = 6; + gWeatherPtr->initStep = TSTORM_STATE_INIT_THUNDER_SHORT_1; break; - case 4: - gWeatherPtr->unknown_6EA = 1; - gWeatherPtr->unknown_6E6 = (Random() % 360) + 360; + case TSTORM_STATE_LOOP_START: + gWeatherPtr->thunderAllowEnd = TRUE; + gWeatherPtr->thunderDelay = (Random() % 360) + 360; gWeatherPtr->initStep++; // fall through - case 5: - if (--gWeatherPtr->unknown_6E6 == 0) + case TSTORM_STATE_LOOP_WAIT: + // Wait between 360-720 frames before trying thunder again + if (--gWeatherPtr->thunderDelay == 0) gWeatherPtr->initStep++; break; - case 6: - gWeatherPtr->unknown_6EA = 1; - gWeatherPtr->unknown_6EB = Random() % 2; + case TSTORM_STATE_INIT_THUNDER_SHORT_1: + gWeatherPtr->thunderAllowEnd = TRUE; + gWeatherPtr->thunderSkipShort = Random() % 2; gWeatherPtr->initStep++; break; - case 7: - gWeatherPtr->unknown_6EC = (Random() & 1) + 1; + case TSTORM_STATE_INIT_THUNDER_SHORT_2: + gWeatherPtr->thunderShortRetries = (Random() & 1) + 1; gWeatherPtr->initStep++; // fall through - case 8: + case TSTORM_STATE_TRY_THUNDER_SHORT: WeatherShiftGammaIfPalStateIdle(19); - if (gWeatherPtr->unknown_6EB == 0 && gWeatherPtr->unknown_6EC == 1) - SetThunderCounter(20); + if (!gWeatherPtr->thunderSkipShort && gWeatherPtr->thunderShortRetries == 1) + SetThunderCounter(20); // Do short thunder - gWeatherPtr->unknown_6E6 = (Random() % 3) + 6; + gWeatherPtr->thunderDelay = (Random() % 3) + 6; gWeatherPtr->initStep++; break; - case 9: - if (--gWeatherPtr->unknown_6E6 == 0) + case TSTORM_STATE_TRY_NEW_THUNDER: + if (--gWeatherPtr->thunderDelay == 0) { WeatherShiftGammaIfPalStateIdle(3); - gWeatherPtr->unknown_6EA = 1; - if (--gWeatherPtr->unknown_6EC != 0) + gWeatherPtr->thunderAllowEnd = TRUE; + if (--gWeatherPtr->thunderShortRetries != 0) { - gWeatherPtr->unknown_6E6 = (Random() % 16) + 60; - gWeatherPtr->initStep = 10; + // Try a short thunder again + gWeatherPtr->thunderDelay = (Random() % 16) + 60; + gWeatherPtr->initStep = TSTORM_STATE_WAIT_THUNDER_SHORT; } - else if (gWeatherPtr->unknown_6EB == 0) + else if (!gWeatherPtr->thunderSkipShort) { - gWeatherPtr->initStep = 4; + // No more thunder, restart loop + gWeatherPtr->initStep = TSTORM_STATE_LOOP_START; } else { - gWeatherPtr->initStep = 11; + // Set up long thunder + gWeatherPtr->initStep = TSTORM_STATE_INIT_THUNDER_LONG; } } break; - case 10: - if (--gWeatherPtr->unknown_6E6 == 0) - gWeatherPtr->initStep = 8; + case TSTORM_STATE_WAIT_THUNDER_SHORT: + if (--gWeatherPtr->thunderDelay == 0) + gWeatherPtr->initStep = TSTORM_STATE_TRY_THUNDER_SHORT; break; - case 11: - gWeatherPtr->unknown_6E6 = (Random() % 16) + 60; + case TSTORM_STATE_INIT_THUNDER_LONG: + gWeatherPtr->thunderDelay = (Random() % 16) + 60; gWeatherPtr->initStep++; break; - case 12: - if (--gWeatherPtr->unknown_6E6 == 0) + case TSTORM_STATE_WAIT_THUNDER_LONG: + if (--gWeatherPtr->thunderDelay == 0) { + // Do long thunder SetThunderCounter(100); WeatherShiftGammaIfPalStateIdle(19); - gWeatherPtr->unknown_6E6 = (Random() & 0xF) + 30; + gWeatherPtr->thunderDelay = (Random() & 0xF) + 30; gWeatherPtr->initStep++; } break; - case 13: - if (--gWeatherPtr->unknown_6E6 == 0) + case TSTORM_STATE_FADE_THUNDER_LONG: + if (--gWeatherPtr->thunderDelay == 0) { WeatherBeginGammaFade(19, 3, 5); gWeatherPtr->initStep++; } break; - case 14: + case TSTORM_STATE_END_THUNDER_LONG: if (gWeatherPtr->palProcessingState == WEATHER_PAL_STATE_IDLE) { - gWeatherPtr->unknown_6EA = 1; - gWeatherPtr->initStep = 4; + gWeatherPtr->thunderAllowEnd = TRUE; + gWeatherPtr->initStep = TSTORM_STATE_LOOP_START; } break; } @@ -1130,16 +1158,16 @@ bool8 Thunderstorm_Finish(void) switch (gWeatherPtr->finishStep) { case 0: - gWeatherPtr->unknown_6EA = 0; + gWeatherPtr->thunderAllowEnd = FALSE; gWeatherPtr->finishStep++; // fall through case 1: Thunderstorm_Main(); - if (gWeatherPtr->unknown_6EA) + if (gWeatherPtr->thunderAllowEnd) { if (gWeatherPtr->nextWeather == WEATHER_RAIN - || gWeatherPtr->nextWeather == WEATHER_RAIN_THUNDERSTORM - || gWeatherPtr->nextWeather == WEATHER_DOWNPOUR) + || gWeatherPtr->nextWeather == WEATHER_RAIN_THUNDERSTORM + || gWeatherPtr->nextWeather == WEATHER_DOWNPOUR) return FALSE; gWeatherPtr->targetRainSpriteCount = 0; @@ -1197,10 +1225,9 @@ static void UpdateThunderSound(void) // WEATHER_FOG_HORIZONTAL and WEATHER_UNDERWATER //------------------------------------------------------------------------------ -// unused data -static const u16 unusedData_839AB1C[] = {0, 6, 6, 12, 18, 42, 300, 300}; +static const u16 sUnusedData[] = {0, 6, 6, 12, 18, 42, 300, 300}; -static const struct OamData gOamData_839AB2C = { +static const struct OamData sOamData_FogH = { .y = 0, .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_BLEND, @@ -1216,62 +1243,62 @@ static const struct OamData gOamData_839AB2C = { .affineParam = 0, }; -static const union AnimCmd gSpriteAnim_839AB34[] = { +static const union AnimCmd sAnim_FogH_0[] = { ANIMCMD_FRAME(0, 16), ANIMCMD_END, }; -static const union AnimCmd gSpriteAnim_839AB3C[] = { +static const union AnimCmd sAnim_FogH_1[] = { ANIMCMD_FRAME(32, 16), ANIMCMD_END, }; -static const union AnimCmd gSpriteAnim_839AB44[] = { +static const union AnimCmd sAnim_FogH_2[] = { ANIMCMD_FRAME(64, 16), ANIMCMD_END, }; -static const union AnimCmd gSpriteAnim_839AB4C[] = { +static const union AnimCmd sAnim_FogH_3[] = { ANIMCMD_FRAME(96, 16), ANIMCMD_END, }; -static const union AnimCmd gSpriteAnim_839AB54[] = { +static const union AnimCmd sAnim_FogH_4[] = { ANIMCMD_FRAME(128, 16), ANIMCMD_END, }; -static const union AnimCmd gSpriteAnim_839AB5C[] = { +static const union AnimCmd sAnim_FogH_5[] = { ANIMCMD_FRAME(160, 16), ANIMCMD_END, }; -static const union AnimCmd *const gSpriteAnimTable_839AB64[] = { - gSpriteAnim_839AB34, - gSpriteAnim_839AB3C, - gSpriteAnim_839AB44, - gSpriteAnim_839AB4C, - gSpriteAnim_839AB54, - gSpriteAnim_839AB5C, +static const union AnimCmd *const sAnims_FogH[] = { + sAnim_FogH_0, + sAnim_FogH_1, + sAnim_FogH_2, + sAnim_FogH_3, + sAnim_FogH_4, + sAnim_FogH_5, }; -static const union AffineAnimCmd gSpriteAffineAnim_839AB7C[] = { +static const union AffineAnimCmd sAffineAnim_FogH[] = { AFFINEANIMCMD_FRAME(0x200, 0x200, 0, 0), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd *const gSpriteAffineAnimTable_839AB8C[] = { - gSpriteAffineAnim_839AB7C, +static const union AffineAnimCmd *const sAffineAnims_FogH[] = { + sAffineAnim_FogH, }; static void FogHorizontalSpriteCallback(struct Sprite *); static const struct SpriteTemplate sFogHorizontalSpriteTemplate = { - .tileTag = 0x1201, - .paletteTag = 0x1200, - .oam = &gOamData_839AB2C, - .anims = gSpriteAnimTable_839AB64, + .tileTag = GFXTAG_FOG_H, + .paletteTag = PALTAG_WEATHER, + .oam = &sOamData_FogH, + .anims = sAnims_FogH, .images = NULL, - .affineAnims = gSpriteAffineAnimTable_839AB8C, + .affineAnims = sAffineAnims_FogH, .callback = FogHorizontalSpriteCallback, }; @@ -1363,9 +1390,9 @@ static void FogHorizontalSpriteCallback(struct Sprite *sprite) { sprite->y2 = (u8)gSpriteCoordOffsetY; sprite->x = gWeatherPtr->fogHScrollPosX + 32 + sprite->tSpriteColumn * 64; - if (sprite->x > 271) + if (sprite->x >= DISPLAY_WIDTH + 32) { - sprite->x = 480 + gWeatherPtr->fogHScrollPosX - (4 - sprite->tSpriteColumn) * 64; + sprite->x = (DISPLAY_WIDTH * 2) + gWeatherPtr->fogHScrollPosX - (4 - sprite->tSpriteColumn) * 64; sprite->x &= 0x1FF; } } @@ -1381,7 +1408,7 @@ static void CreateFogHorizontalSprites(void) struct SpriteSheet fogHorizontalSpriteSheet = { .data = gWeatherFogHorizontalTiles, .size = 0x0800, - .tag = 0x1201, + .tag = GFXTAG_FOG_H, }; LoadSpriteSheet(&fogHorizontalSpriteSheet); for (i = 0; i < NUM_FOG_HORIZONTAL_SPRITES; i++) @@ -1417,7 +1444,7 @@ static void DestroyFogHorizontalSprites(void) DestroySprite(gWeatherPtr->sprites.s2.fogHSprites[i]); } - FreeSpriteTilesByTag(0x1201); + FreeSpriteTilesByTag(GFXTAG_FOG_H); gWeatherPtr->fogHSpritesCreated = FALSE; } } @@ -1439,7 +1466,7 @@ void Ash_InitVars(void) gWeatherPtr->weatherGfxLoaded = FALSE; gWeatherPtr->gammaTargetIndex = 0; gWeatherPtr->gammaStepDelay = 20; - gWeatherPtr->unknown_6FE = 20; + gWeatherPtr->ashUnused = 20; // Never read if (!gWeatherPtr->ashSpritesCreated) { Weather_SetBlendCoeffs(0, 16); @@ -1457,8 +1484,8 @@ void Ash_InitAll(void) void Ash_Main(void) { gWeatherPtr->ashBaseSpritesX = gSpriteCoordOffsetX & 0x1FF; - while (gWeatherPtr->ashBaseSpritesX >= 240) - gWeatherPtr->ashBaseSpritesX -= 240; + while (gWeatherPtr->ashBaseSpritesX >= DISPLAY_WIDTH) + gWeatherPtr->ashBaseSpritesX -= DISPLAY_WIDTH; switch (gWeatherPtr->initStep) { @@ -1514,7 +1541,7 @@ bool8 Ash_Finish(void) static const struct SpriteSheet sAshSpriteSheet = { .data = gWeatherAshTiles, .size = 0x1000, - .tag = 0x1202, + .tag = GFXTAG_ASH, }; static void LoadAshSpriteSheet(void) @@ -1546,8 +1573,8 @@ static const union AnimCmd *const sAshSpriteAnimCmds[] = { }; static const struct SpriteTemplate sAshSpriteTemplate = { - .tileTag = 0x1202, - .paletteTag = 0x1200, + .tileTag = GFXTAG_ASH, + .paletteTag = PALTAG_WEATHER, .oam = &sAshSpriteOamData, .anims = sAshSpriteAnimCmds, .images = NULL, @@ -1602,7 +1629,7 @@ static void DestroyAshSprites(void) DestroySprite(gWeatherPtr->sprites.s2.ashSprites[i]); } - FreeSpriteTilesByTag(0x1202); + FreeSpriteTilesByTag(GFXTAG_ASH); gWeatherPtr->ashSpritesCreated = FALSE; } } @@ -1617,9 +1644,9 @@ static void UpdateAshSprite(struct Sprite *sprite) sprite->y = gSpriteCoordOffsetY + sprite->tOffsetY; sprite->x = gWeatherPtr->ashBaseSpritesX + 32 + sprite->tSpriteColumn * 64; - if (sprite->x > 271) + if (sprite->x >= DISPLAY_WIDTH + 32) { - sprite->x = gWeatherPtr->ashBaseSpritesX + 480 - (4 - sprite->tSpriteColumn) * 64; + sprite->x = gWeatherPtr->ashBaseSpritesX + (DISPLAY_WIDTH * 2) - (4 - sprite->tSpriteColumn) * 64; sprite->x &= 0x1FF; } } @@ -1732,7 +1759,7 @@ static void UpdateFogDiagonalMovement(void) static const struct SpriteSheet gFogDiagonalSpriteSheet = { .data = gWeatherFogDiagonalTiles, .size = 0x0800, - .tag = 0x1203, + .tag = GFXTAG_FOG_D, }; static const struct OamData sFogDiagonalSpriteOamData = { @@ -1758,8 +1785,8 @@ static const union AnimCmd *const sFogDiagonalSpriteAnimCmds[] = { }; static const struct SpriteTemplate sFogDiagonalSpriteTemplate = { - .tileTag = 0x1203, - .paletteTag = 0x1200, + .tileTag = GFXTAG_FOG_D, + .paletteTag = PALTAG_WEATHER, .oam = &sFogDiagonalSpriteOamData, .anims = sFogDiagonalSpriteAnimCmds, .images = NULL, @@ -1813,7 +1840,7 @@ static void DestroyFogDiagonalSprites(void) DestroySprite(gWeatherPtr->sprites.s2.fogDSprites[i]); } - FreeSpriteTilesByTag(0x1203); + FreeSpriteTilesByTag(GFXTAG_FOG_D); gWeatherPtr->fogDSpritesCreated = FALSE; } } @@ -1822,9 +1849,9 @@ static void UpdateFogDiagonalSprite(struct Sprite *sprite) { sprite->y2 = gWeatherPtr->fogDPosY; sprite->x = gWeatherPtr->fogDBaseSpritesX + 32 + sprite->tSpriteColumn * 64; - if (sprite->x > 271) + if (sprite->x >= DISPLAY_WIDTH + 32) { - sprite->x = gWeatherPtr->fogDBaseSpritesX + 480 - (4 - sprite->tSpriteColumn) * 64; + sprite->x = gWeatherPtr->fogDBaseSpritesX + (DISPLAY_WIDTH * 2) - (4 - sprite->tSpriteColumn) * 64; sprite->x &= 0x1FF; } } @@ -1956,7 +1983,7 @@ static void DestroySandstormSprites(void) } gWeatherPtr->sandstormSpritesCreated = FALSE; - FreeSpriteTilesByTag(0x1204); + FreeSpriteTilesByTag(GFXTAG_SANDSTORM); } if (gWeatherPtr->sandstormSwirlSpritesCreated) @@ -2000,8 +2027,8 @@ static const union AnimCmd *const sSandstormSpriteAnimCmds[] = { }; static const struct SpriteTemplate sSandstormSpriteTemplate = { - .tileTag = 0x1204, - .paletteTag = 0x1200, + .tileTag = GFXTAG_SANDSTORM, + .paletteTag = PALTAG_WEATHER, .oam = &sSandstormSpriteOamData, .anims = sSandstormSpriteAnimCmds, .images = NULL, @@ -2012,7 +2039,7 @@ static const struct SpriteTemplate sSandstormSpriteTemplate = { static const struct SpriteSheet sSandstormSpriteSheet = { .data = gWeatherSandstormTiles, .size = 0x0a00, - .tag = 0x1204, + .tag = GFXTAG_SANDSTORM, }; // Regular sandstorm sprites @@ -2092,9 +2119,9 @@ static void UpdateSandstormSprite(struct Sprite *sprite) { sprite->y2 = gWeatherPtr->sandstormPosY; sprite->x = gWeatherPtr->sandstormBaseSpritesX + 32 + sprite->tSpriteColumn * 64; - if (sprite->x > 271) + if (sprite->x >= DISPLAY_WIDTH + 32) { - sprite->x = gWeatherPtr->sandstormBaseSpritesX + 480 - (4 - sprite->tSpriteColumn) * 64; + sprite->x = gWeatherPtr->sandstormBaseSpritesX + (DISPLAY_WIDTH * 2) - (4 - sprite->tSpriteColumn) * 64; sprite->x &= 0x1FF; } } @@ -2111,7 +2138,7 @@ static void UpdateSandstormSwirlSprite(struct Sprite *sprite) if (--sprite->y < -48) { - sprite->y = 208; + sprite->y = DISPLAY_HEIGHT + 48; sprite->tRadius = 4; } @@ -2173,7 +2200,7 @@ static const u8 sBubbleStartDelays[] = {40, 90, 60, 90, 2, 60, 40, 30}; static const struct SpriteSheet sWeatherBubbleSpriteSheet = { .data = gWeatherBubbleTiles, .size = 0x0040, - .tag = 0x1205, + .tag = GFXTAG_BUBBLE, }; static const s16 sBubbleStartCoords[][2] = { @@ -2249,8 +2276,8 @@ static const union AnimCmd *const sBubbleSpriteAnimCmds[] = { }; static const struct SpriteTemplate sBubbleSpriteTemplate = { - .tileTag = 0x1205, - .paletteTag = 0x1200, + .tileTag = GFXTAG_BUBBLE, + .paletteTag = PALTAG_WEATHER, .oam = &gOamData_AffineOff_ObjNormal_8x8, .anims = sBubbleSpriteAnimCmds, .images = NULL, @@ -2288,7 +2315,7 @@ static void DestroyBubbleSprites(void) DestroySprite(&gSprites[i]); } - FreeSpriteTilesByTag(0x1205); + FreeSpriteTilesByTag(GFXTAG_BUBBLE); } static void UpdateBubbleSprite(struct Sprite *sprite) diff --git a/src/fieldmap.c b/src/fieldmap.c index 33a1d82cc..c2362f6b9 100644 --- a/src/fieldmap.c +++ b/src/fieldmap.c @@ -14,6 +14,15 @@ struct ConnectionFlags u8 east:1; }; +struct BackupMapLayout VMap; +EWRAM_DATA u16 gBackupMapData[VIRTUAL_MAP_SIZE] = {}; +EWRAM_DATA struct MapHeader gMapHeader = {}; +EWRAM_DATA struct Camera gCamera = {}; +static EWRAM_DATA struct ConnectionFlags gMapConnectionFlags = {}; +EWRAM_DATA u8 gGlobalFieldTintMode = QL_TINT_NONE; + +static const struct ConnectionFlags sDummyConnectionFlags = {}; + static void InitMapLayoutData(struct MapHeader *); static void InitBackupMapLayoutData(u16 *, u16, u16); static void InitBackupMapLayoutConnections(struct MapHeader *); @@ -27,46 +36,39 @@ static bool8 IsPosInIncomingConnectingMap(u8, s32, s32, struct MapConnection *); static bool8 IsCoordInIncomingConnectingMap(s32, s32, s32, s32); static u32 GetAttributeByMetatileIdAndMapLayout(const struct MapLayout *, u16, u8); -#define MapGridGetBorderTileAt(x, y) ({ \ - u16 block; \ - s32 xprime; \ - s32 yprime; \ - \ - const struct MapLayout *mapLayout = gMapHeader.mapLayout; \ - \ - xprime = x - 7; \ - xprime += 8 * mapLayout->borderWidth; \ - xprime %= mapLayout->borderWidth; \ - \ - yprime = y - 7; \ - yprime += 8 * mapLayout->borderHeight; \ - yprime %= mapLayout->borderHeight; \ - \ - block = mapLayout->border[xprime + yprime * mapLayout->borderWidth] | METATILE_COLLISION_MASK; \ +#define GetBorderBlockAt(x, y) ({ \ + u16 block; \ + s32 xprime; \ + s32 yprime; \ + \ + const struct MapLayout *mapLayout = gMapHeader.mapLayout; \ + \ + xprime = x - MAP_OFFSET; \ + xprime += 8 * mapLayout->borderWidth; \ + xprime %= mapLayout->borderWidth; \ + \ + yprime = y - MAP_OFFSET; \ + yprime += 8 * mapLayout->borderHeight; \ + yprime %= mapLayout->borderHeight; \ + \ + block = mapLayout->border[xprime + yprime * mapLayout->borderWidth] | MAPGRID_COLLISION_MASK; \ }) #define AreCoordsWithinMapGridBounds(x, y) (x >= 0 && x < VMap.Xsize && y >= 0 && y < VMap.Ysize) -#define MapGridGetTileAt(x, y) (AreCoordsWithinMapGridBounds(x, y) ? VMap.map[x + VMap.Xsize * y] : MapGridGetBorderTileAt(x, y)) - -struct BackupMapLayout VMap; -EWRAM_DATA u16 gBackupMapData[VIRTUAL_MAP_SIZE] = {}; -EWRAM_DATA struct MapHeader gMapHeader = {}; -EWRAM_DATA struct Camera gCamera = {}; -static EWRAM_DATA struct ConnectionFlags gMapConnectionFlags = {}; -EWRAM_DATA u8 gGlobalFieldTintMode = QL_TINT_NONE; - -static const struct ConnectionFlags sDummyConnectionFlags = {}; +#define GetMapGridBlockAt(x, y) (AreCoordsWithinMapGridBounds(x, y) ? VMap.map[x + VMap.Xsize * y] : GetBorderBlockAt(x, y)) +// Masks/shifts for metatile attributes +// This is the format of the data stored in each data/tilesets/*/*/metatile_attributes.bin file static const u32 sMetatileAttrMasks[METATILE_ATTRIBUTE_COUNT] = { - [METATILE_ATTRIBUTE_BEHAVIOR] = 0x000001ff, - [METATILE_ATTRIBUTE_TERRAIN] = 0x00003e00, - [METATILE_ATTRIBUTE_2] = 0x0003c000, - [METATILE_ATTRIBUTE_3] = 0x00fc0000, - [METATILE_ATTRIBUTE_ENCOUNTER_TYPE] = 0x07000000, - [METATILE_ATTRIBUTE_5] = 0x18000000, - [METATILE_ATTRIBUTE_LAYER_TYPE] = 0x60000000, - [METATILE_ATTRIBUTE_7] = 0x80000000 + [METATILE_ATTRIBUTE_BEHAVIOR] = 0x000001ff, // Bits 0-8 + [METATILE_ATTRIBUTE_TERRAIN] = 0x00003e00, // Bits 9-13 + [METATILE_ATTRIBUTE_2] = 0x0003c000, // Bits 14-17 + [METATILE_ATTRIBUTE_3] = 0x00fc0000, // Bits 18-23 + [METATILE_ATTRIBUTE_ENCOUNTER_TYPE] = 0x07000000, // Bits 24-26 + [METATILE_ATTRIBUTE_5] = 0x18000000, // Bits 27-28 + [METATILE_ATTRIBUTE_LAYER_TYPE] = 0x60000000, // Bits 29-30 + [METATILE_ATTRIBUTE_7] = 0x80000000 // Bit 31 }; static const u8 sMetatileAttrShifts[METATILE_ATTRIBUTE_COUNT] = { @@ -101,10 +103,10 @@ void InitMapFromSavedGame(void) static void InitMapLayoutData(struct MapHeader * mapHeader) { const struct MapLayout * mapLayout = mapHeader->mapLayout; - CpuFastFill(METATILE_ID_UNDEFINED << 16 | METATILE_ID_UNDEFINED, gBackupMapData, sizeof(gBackupMapData)); + CpuFastFill16(MAPGRID_UNDEFINED, gBackupMapData, sizeof(gBackupMapData)); VMap.map = gBackupMapData; - VMap.Xsize = mapLayout->width + 15; - VMap.Ysize = mapLayout->height + 14; + VMap.Xsize = mapLayout->width + MAP_OFFSET_W; + VMap.Ysize = mapLayout->height + MAP_OFFSET_H; AGB_ASSERT_EX(VMap.Xsize * VMap.Ysize <= VIRTUAL_MAP_SIZE, ABSPATH("fieldmap.c"), 158); InitBackupMapLayoutData(mapLayout->map, mapLayout->width, mapLayout->height); InitBackupMapLayoutConnections(mapHeader); @@ -114,12 +116,12 @@ static void InitBackupMapLayoutData(u16 *map, u16 width, u16 height) { s32 y; u16 *dest = VMap.map; - dest += VMap.Xsize * 7 + 7; + dest += VMap.Xsize * 7 + MAP_OFFSET; for (y = 0; y < height; y++) { CpuCopy16(map, dest, width * sizeof(u16)); - dest += width + 15; + dest += width + MAP_OFFSET_W; map += width; } } @@ -197,8 +199,8 @@ static void FillSouthConnection(struct MapHeader const *mapHeader, struct MapHea if (connectedMapHeader) { cWidth = connectedMapHeader->mapLayout->width; - x = offset + 7; - y = mapHeader->mapLayout->height + 7; + x = offset + MAP_OFFSET; + y = mapHeader->mapLayout->height + MAP_OFFSET; if (x < 0) { x2 = -x; @@ -222,7 +224,7 @@ static void FillSouthConnection(struct MapHeader const *mapHeader, struct MapHea x, y, connectedMapHeader, x2, /*y2*/ 0, - width, /*height*/ 7); + width, /*height*/ MAP_OFFSET); } } @@ -237,8 +239,8 @@ static void FillNorthConnection(struct MapHeader const *mapHeader, struct MapHea { cWidth = connectedMapHeader->mapLayout->width; cHeight = connectedMapHeader->mapLayout->height; - x = offset + 7; - y2 = cHeight - 7; + x = offset + MAP_OFFSET; + y2 = cHeight - MAP_OFFSET; if (x < 0) { x2 = -x; @@ -262,7 +264,7 @@ static void FillNorthConnection(struct MapHeader const *mapHeader, struct MapHea x, /*y*/ 0, connectedMapHeader, x2, y2, - width, /*height*/ 7); + width, /*height*/ MAP_OFFSET); } } @@ -277,8 +279,8 @@ static void FillWestConnection(struct MapHeader const *mapHeader, struct MapHead { cWidth = connectedMapHeader->mapLayout->width; cHeight = connectedMapHeader->mapLayout->height; - y = offset + 7; - x2 = cWidth - 7; + y = offset + MAP_OFFSET; + x2 = cWidth - MAP_OFFSET; if (y < 0) { y2 = -y; @@ -301,7 +303,7 @@ static void FillWestConnection(struct MapHeader const *mapHeader, struct MapHead /*x*/ 0, y, connectedMapHeader, x2, y2, - /*width*/ 7, height); + /*width*/ MAP_OFFSET, height); } } @@ -314,8 +316,8 @@ static void FillEastConnection(struct MapHeader const *mapHeader, struct MapHead if (connectedMapHeader) { cHeight = connectedMapHeader->mapLayout->height; - x = mapHeader->mapLayout->width + 7; - y = offset + 7; + x = mapHeader->mapLayout->width + MAP_OFFSET; + y = offset + MAP_OFFSET; if (y < 0) { y2 = -y; @@ -338,43 +340,43 @@ static void FillEastConnection(struct MapHeader const *mapHeader, struct MapHead x, y, connectedMapHeader, /*x2*/ 0, y2, - /*width*/ 8, height); + /*width*/ MAP_OFFSET + 1, height); } } -u8 MapGridGetZCoordAt(s32 x, s32 y) +u8 MapGridGetElevationAt(s32 x, s32 y) { - u16 block = MapGridGetTileAt(x, y); + u16 block = GetMapGridBlockAt(x, y); - if (block == METATILE_ID_UNDEFINED) + if (block == MAPGRID_UNDEFINED) return 0; - return block >> METATILE_ELEVATION_SHIFT; + return block >> MAPGRID_ELEVATION_SHIFT; } -u8 MapGridIsImpassableAt(s32 x, s32 y) +u8 MapGridGetCollisionAt(s32 x, s32 y) { - u16 block = MapGridGetTileAt(x, y); + u16 block = GetMapGridBlockAt(x, y); - if (block == METATILE_ID_UNDEFINED) + if (block == MAPGRID_UNDEFINED) return TRUE; - return (block & METATILE_COLLISION_MASK) >> METATILE_COLLISION_SHIFT; + return (block & MAPGRID_COLLISION_MASK) >> MAPGRID_COLLISION_SHIFT; } u32 MapGridGetMetatileIdAt(s32 x, s32 y) { - u16 block = MapGridGetTileAt(x, y); + u16 block = GetMapGridBlockAt(x, y); - if (block == METATILE_ID_UNDEFINED) - return MapGridGetBorderTileAt(x, y) & METATILE_ID_MASK; + if (block == MAPGRID_UNDEFINED) + return GetBorderBlockAt(x, y) & MAPGRID_METATILE_ID_MASK; - return block & METATILE_ID_MASK; + return block & MAPGRID_METATILE_ID_MASK; } u32 ExtractMetatileAttribute(u32 attributes, u8 attributeType) { - if (attributeType >= METATILE_ATTRIBUTE_COUNT) + if (attributeType >= METATILE_ATTRIBUTE_COUNT) // Check for METATILE_ATTRIBUTES_ALL return attributes; return (attributes & sMetatileAttrMasks[attributeType]) >> sMetatileAttrShifts[attributeType]; @@ -402,7 +404,7 @@ void MapGridSetMetatileIdAt(s32 x, s32 y, u16 metatile) if (AreCoordsWithinMapGridBounds(x, y)) { i = x + y * VMap.Xsize; - VMap.map[i] = (VMap.map[i] & METATILE_ELEVATION_MASK) | (metatile & ~METATILE_ELEVATION_MASK); + VMap.map[i] = (VMap.map[i] & MAPGRID_ELEVATION_MASK) | (metatile & ~MAPGRID_ELEVATION_MASK); } } @@ -421,15 +423,15 @@ void MapGridSetMetatileImpassabilityAt(s32 x, s32 y, bool32 impassable) if (AreCoordsWithinMapGridBounds(x, y)) { if (impassable) - VMap.map[x + VMap.Xsize * y] |= METATILE_COLLISION_MASK; + VMap.map[x + VMap.Xsize * y] |= MAPGRID_COLLISION_MASK; else - VMap.map[x + VMap.Xsize * y] &= ~METATILE_COLLISION_MASK; + VMap.map[x + VMap.Xsize * y] &= ~MAPGRID_COLLISION_MASK; } } static u32 GetAttributeByMetatileIdAndMapLayout(const struct MapLayout *mapLayout, u16 metatile, u8 attributeType) { - u32 * attributes; + const u32 * attributes; if (metatile < NUM_METATILES_IN_PRIMARY) { @@ -457,9 +459,9 @@ void SaveMapView(void) width = VMap.Xsize; x = gSaveBlock1Ptr->pos.x; y = gSaveBlock1Ptr->pos.y; - for (i = y; i < y + 14; i++) + for (i = y; i < y + MAP_OFFSET_H; i++) { - for (j = x; j < x + 15; j++) + for (j = x; j < x + MAP_OFFSET_W; j++) *mapView++ = gBackupMapData[width * i + j]; } } @@ -501,9 +503,9 @@ static void LoadSavedMapView(void) width = VMap.Xsize; x = gSaveBlock1Ptr->pos.x; y = gSaveBlock1Ptr->pos.y; - for (i = y; i < y + 14; i++) + for (i = y; i < y + MAP_OFFSET_H; i++) { - for (j = x; j < x + 15; j++) + for (j = x; j < x + MAP_OFFSET_W; j++) { gBackupMapData[j + width * i] = *mapView; mapView++; @@ -536,19 +538,19 @@ static void MoveMapViewToBackup(u8 direction) { case CONNECTION_NORTH: y0 += 1; - y2 = 13; + y2 = MAP_OFFSET_H - 1; break; case CONNECTION_SOUTH: r8 = 1; - y2 = 13; + y2 = MAP_OFFSET_H - 1; break; case CONNECTION_WEST: x0 += 1; - x2 = 14; + x2 = MAP_OFFSET_W - 1; break; case CONNECTION_EAST: r9 = 1; - x2 = 14; + x2 = MAP_OFFSET_W - 1; break; } for (y = 0; y < y2; y++) @@ -558,7 +560,7 @@ static void MoveMapViewToBackup(u8 direction) for (x = 0; x < x2; x++) { desti = width * (y + y0); - srci = (y + r8) * 15 + r9; + srci = (y + r8) * MAP_OFFSET_W + r9; src = &mapView[srci + i]; dest = &gBackupMapData[x0 + desti + j]; *dest = *src; @@ -571,10 +573,10 @@ static void MoveMapViewToBackup(u8 direction) s32 GetMapBorderIdAt(s32 x, s32 y) { - if (MapGridGetTileAt(x, y) == METATILE_ID_UNDEFINED) + if (GetMapGridBlockAt(x, y) == MAPGRID_UNDEFINED) return CONNECTION_INVALID; - if (x >= VMap.Xsize - 8) + if (x >= VMap.Xsize - (MAP_OFFSET + 1)) { if (!gMapConnectionFlags.east) return CONNECTION_INVALID; @@ -582,7 +584,7 @@ s32 GetMapBorderIdAt(s32 x, s32 y) return CONNECTION_EAST; } - if (x < 7) + if (x < MAP_OFFSET) { if (!gMapConnectionFlags.west) return CONNECTION_INVALID; @@ -590,7 +592,7 @@ s32 GetMapBorderIdAt(s32 x, s32 y) return CONNECTION_WEST; } - if (y >= VMap.Ysize - 7) + if (y >= VMap.Ysize - MAP_OFFSET) { if (!gMapConnectionFlags.south) return CONNECTION_INVALID; @@ -598,7 +600,7 @@ s32 GetMapBorderIdAt(s32 x, s32 y) return CONNECTION_SOUTH; } - if (y < 7) + if (y < MAP_OFFSET) { if (!gMapConnectionFlags.north) return CONNECTION_INVALID; @@ -611,14 +613,14 @@ s32 GetMapBorderIdAt(s32 x, s32 y) static s32 GetPostCameraMoveMapBorderId(s32 x, s32 y) { - return GetMapBorderIdAt(gSaveBlock1Ptr->pos.x + 7 + x, gSaveBlock1Ptr->pos.y + 7 + y); + return GetMapBorderIdAt(gSaveBlock1Ptr->pos.x + MAP_OFFSET + x, gSaveBlock1Ptr->pos.y + MAP_OFFSET + y); } bool32 CanCameraMoveInDirection(s32 direction) { s32 x, y; - x = gSaveBlock1Ptr->pos.x + 7 + gDirectionToVectors[direction].x; - y = gSaveBlock1Ptr->pos.y + 7 + gDirectionToVectors[direction].y; + x = gSaveBlock1Ptr->pos.x + MAP_OFFSET + gDirectionToVectors[direction].x; + y = gSaveBlock1Ptr->pos.y + MAP_OFFSET + gDirectionToVectors[direction].y; if (GetMapBorderIdAt(x, y) == CONNECTION_INVALID) return FALSE; @@ -774,15 +776,15 @@ struct MapConnection *GetMapConnectionAtPos(s16 x, s16 y) { direction = connection->direction; if ((direction == CONNECTION_DIVE || direction == CONNECTION_EMERGE) - || (direction == CONNECTION_NORTH && y > 6) - || (direction == CONNECTION_SOUTH && y < gMapHeader.mapLayout->height + 7) - || (direction == CONNECTION_WEST && x > 6) - || (direction == CONNECTION_EAST && x < gMapHeader.mapLayout->width + 7)) + || (direction == CONNECTION_NORTH && y > MAP_OFFSET - 1) + || (direction == CONNECTION_SOUTH && y < gMapHeader.mapLayout->height + MAP_OFFSET) + || (direction == CONNECTION_WEST && x > MAP_OFFSET - 1) + || (direction == CONNECTION_EAST && x < gMapHeader.mapLayout->width + MAP_OFFSET)) { continue; } - if (IsPosInConnectingMap(connection, x - 7, y - 7) == TRUE) + if (IsPosInConnectingMap(connection, x - MAP_OFFSET, y - MAP_OFFSET) == TRUE) return connection; } } @@ -791,14 +793,14 @@ struct MapConnection *GetMapConnectionAtPos(s16 x, s16 y) void SetCameraFocusCoords(u16 x, u16 y) { - gSaveBlock1Ptr->pos.x = x - 7; - gSaveBlock1Ptr->pos.y = y - 7; + gSaveBlock1Ptr->pos.x = x - MAP_OFFSET; + gSaveBlock1Ptr->pos.y = y - MAP_OFFSET; } void GetCameraFocusCoords(u16 *x, u16 *y) { - *x = gSaveBlock1Ptr->pos.x + 7; - *y = gSaveBlock1Ptr->pos.y + 7; + *x = gSaveBlock1Ptr->pos.x + MAP_OFFSET; + *y = gSaveBlock1Ptr->pos.y + MAP_OFFSET; } // Unused @@ -836,7 +838,7 @@ static void CopyTilesetToVramUsingHeap(struct Tileset const *tileset, u16 numTil } } -static void Fieldmap_ApplyGlobalTintToPaletteEntries(u16 offset, u16 size) +static void ApplyGlobalTintToPaletteEntries(u16 offset, u16 size) { switch (gGlobalFieldTintMode) { @@ -858,7 +860,7 @@ static void Fieldmap_ApplyGlobalTintToPaletteEntries(u16 offset, u16 size) CpuCopy16(gPlttBufferUnfaded + offset, gPlttBufferFaded + offset, size * sizeof(u16)); } -void Fieldmap_ApplyGlobalTintToPaletteSlot(u8 slot, u8 count) +void ApplyGlobalTintToPaletteSlot(u8 slot, u8 count) { switch (gGlobalFieldTintMode) { @@ -889,18 +891,18 @@ static void LoadTilesetPalette(struct Tileset const *tileset, u16 destOffset, u1 if (tileset->isSecondary == FALSE) { LoadPalette(&black, destOffset, 2); - LoadPalette(((u16 *)tileset->palettes) + 1, destOffset + 1, size - 2); - Fieldmap_ApplyGlobalTintToPaletteEntries(destOffset + 1, (size - 2) >> 1); + LoadPalette(tileset->palettes[0] + 1, destOffset + 1, size - 2); + ApplyGlobalTintToPaletteEntries(destOffset + 1, (size - 2) >> 1); } else if (tileset->isSecondary == TRUE) { - LoadPalette(((u16 *)tileset->palettes) + (NUM_PALS_IN_PRIMARY * 16), destOffset, size); - Fieldmap_ApplyGlobalTintToPaletteEntries(destOffset, size >> 1); + LoadPalette(tileset->palettes[NUM_PALS_IN_PRIMARY], destOffset, size); + ApplyGlobalTintToPaletteEntries(destOffset, size >> 1); } else { - LoadCompressedPalette((u32 *)tileset->palettes, destOffset, size); - Fieldmap_ApplyGlobalTintToPaletteEntries(destOffset, size >> 1); + LoadCompressedPalette((const u32 *)tileset->palettes, destOffset, size); + ApplyGlobalTintToPaletteEntries(destOffset, size >> 1); } } } diff --git a/src/fldeff_cut.c b/src/fldeff_cut.c index e6029448c..96c5c1db5 100644 --- a/src/fldeff_cut.c +++ b/src/fldeff_cut.c @@ -93,11 +93,11 @@ static const union AnimCmd *const sSpriteAnimTable_FldEff_CutGrass[] = { }; static const struct SpriteFrameImage sSpriteFrameImages_FldEff_CutGrass[] = { - {gUnknown_8398648, 0x20} + {gFieldEffectObjectPic_CutGrass, 0x20} }; const struct SpritePalette gFldEffPalette_CutGrass[] = { - gUnknown_8398688, 4096 + gFieldEffectPal_CutGrass, 4096 }; static const struct SpriteTemplate sSpriteTemplate_FldEff_CutGrass = { @@ -145,7 +145,7 @@ bool8 SetUpFieldMove_Cut(void) for (j = 0; j < CUT_SIDE; j++) { x = gPlayerFacingPosition.x - 1 + j; - if (MapGridGetZCoordAt(x, y) == gPlayerFacingPosition.height) + if (MapGridGetElevationAt(x, y) == gPlayerFacingPosition.elevation) { if (MetatileAtCoordsIsGrassTile(x, y) == TRUE) { @@ -177,7 +177,7 @@ bool8 FldEff_UseCutOnGrass(void) static void FieldCallback_CutTree(void) { gFieldEffectArguments[0] = GetCursorSelectionMonId(); - ScriptContext1_SetupScript(EventScript_FldEffCut); + ScriptContext_SetupScript(EventScript_FldEffCut); } bool8 FldEff_UseCutOnTree(void) @@ -214,7 +214,7 @@ bool8 FldEff_CutGrass(void) for (j = 0; j < CUT_SIDE; j++) { x = gPlayerFacingPosition.x - 1 + j; - if (MapGridGetZCoordAt(x, y) == gPlayerFacingPosition.height) + if (MapGridGetElevationAt(x, y) == gPlayerFacingPosition.elevation) { if (MetatileAtCoordsIsGrassTile(x, y) == TRUE) { @@ -284,12 +284,12 @@ static void SpriteCallback_CutGrass_Cleanup(struct Sprite *sprite) FieldEffectStop(&gSprites[sCutGrassSpriteArrayPtr[0]], FLDEFF_CUT_GRASS); Free(sCutGrassSpriteArrayPtr); ClearPlayerHeldMovementAndUnfreezeObjectEvents(); - ScriptContext2_Disable(); + UnlockPlayerFieldControls(); } static void FieldMoveCallback_CutTree(void) { PlaySE(SE_M_CUT); FieldEffectActiveListRemove(FLDEFF_USE_CUT_ON_TREE); - EnableBothScriptContexts(); + ScriptContext_Enable(); } diff --git a/src/fldeff_dig.c b/src/fldeff_dig.c index 0eb0d3c1e..4678c84bd 100644 --- a/src/fldeff_dig.c +++ b/src/fldeff_dig.c @@ -7,7 +7,7 @@ #include "party_menu.h" static void FieldCallback_Dig(void); -static void sub_80C9AFC(void); +static void StartDigFieldEffect(void); bool8 SetUpFieldMove_Dig(void) { @@ -31,16 +31,16 @@ bool8 FldEff_UseDig(void) { u8 taskId = CreateFieldEffectShowMon(); - FLDEFF_SET_FUNC_TO_DATA(sub_80C9AFC); + FLDEFF_SET_FUNC_TO_DATA(StartDigFieldEffect); SetPlayerAvatarTransitionFlags(PLAYER_AVATAR_FLAG_ON_FOOT); return FALSE; } -static void sub_80C9AFC(void) +static void StartDigFieldEffect(void) { u8 taskId; FieldEffectActiveListRemove(FLDEFF_USE_DIG); - taskId = CreateTask(sub_80A1C44, 8); + taskId = CreateTask(Task_UseDigEscapeRopeOnField, 8); gTasks[taskId].data[0] = 0; } diff --git a/src/fldeff_flash.c b/src/fldeff_flash.c index 8129a1a54..352ef7bc8 100644 --- a/src/fldeff_flash.c +++ b/src/fldeff_flash.c @@ -185,7 +185,7 @@ static void FldEff_UseFlash(void) { PlaySE(SE_M_REFLECT); FlagSet(FLAG_SYS_FLASH_ACTIVE); - ScriptContext1_SetupScript(EventScript_FldEffFlash); + ScriptContext_SetupScript(EventScript_FldEffFlash); } // Map transition animatics diff --git a/src/fldeff_rocksmash.c b/src/fldeff_rocksmash.c index c5bc0d072..a3be0956c 100644 --- a/src/fldeff_rocksmash.c +++ b/src/fldeff_rocksmash.c @@ -18,8 +18,8 @@ static void Task_FieldEffectShowMon_Init(u8 taskId); static void Task_FieldEffectShowMon_WaitFldeff(u8 taskId); static void Task_FieldEffectShowMon_WaitPlayerAnim(u8 taskId); static void Task_FieldEffectShowMon_Cleanup(u8 taskId); -static void sub_80C9A10(void); -static void sub_80C9A60(void); +static void FieldCallback_UseRockSmash(void); +static void StartRockSmashFieldEffect(void); EWRAM_DATA struct MapPosition gPlayerFacingPosition = {}; @@ -28,8 +28,8 @@ bool8 CheckObjectGraphicsInFrontOfPlayer(u8 graphicsId) u8 mapObjId; GetXYCoordsOneStepInFrontOfPlayer(&gPlayerFacingPosition.x, &gPlayerFacingPosition.y); - gPlayerFacingPosition.height = PlayerGetZCoord(); - mapObjId = GetObjectEventIdByXYZ(gPlayerFacingPosition.x, gPlayerFacingPosition.y, gPlayerFacingPosition.height); + gPlayerFacingPosition.elevation = PlayerGetElevation(); + mapObjId = GetObjectEventIdByPosition(gPlayerFacingPosition.x, gPlayerFacingPosition.y, gPlayerFacingPosition.elevation); if (gObjectEvents[mapObjId].graphicsId != graphicsId) return FALSE; gSpecialVar_LastTalked = gObjectEvents[mapObjId].localId; @@ -46,7 +46,7 @@ static void Task_FieldEffectShowMon_Init(u8 taskId) { u8 mapObjId; - ScriptContext2_Enable(); + LockPlayerFieldControls(); gPlayerAvatar.preventStep = TRUE; mapObjId = gPlayerAvatar.objectEventId; if (!ObjectEventIsMovementOverridden(&gObjectEvents[mapObjId]) @@ -108,30 +108,30 @@ bool8 SetUpFieldMove_RockSmash(void) if (CheckObjectGraphicsInFrontOfPlayer(OBJ_EVENT_GFX_ROCK_SMASH_ROCK) == TRUE) { gFieldCallback2 = FieldCallback_PrepareFadeInFromMenu; - gPostMenuFieldCallback = sub_80C9A10; + gPostMenuFieldCallback = FieldCallback_UseRockSmash; return TRUE; } return FALSE; } -static void sub_80C9A10(void) +static void FieldCallback_UseRockSmash(void) { gFieldEffectArguments[0] = GetCursorSelectionMonId(); - ScriptContext1_SetupScript(EventScript_FldEffRockSmash); + ScriptContext_SetupScript(EventScript_FldEffRockSmash); } bool8 FldEff_UseRockSmash(void) { u8 taskId = CreateFieldEffectShowMon(); - FLDEFF_SET_FUNC_TO_DATA(sub_80C9A60); + FLDEFF_SET_FUNC_TO_DATA(StartRockSmashFieldEffect); IncrementGameStat(GAME_STAT_USED_ROCK_SMASH); return FALSE; } -static void sub_80C9A60(void) +static void StartRockSmashFieldEffect(void) { PlaySE(SE_M_ROCK_THROW); FieldEffectActiveListRemove(FLDEFF_USE_ROCK_SMASH); - EnableBothScriptContexts(); + ScriptContext_Enable(); } diff --git a/src/fldeff_softboiled.c b/src/fldeff_softboiled.c index 22887242a..6eb24dc6b 100644 --- a/src/fldeff_softboiled.c +++ b/src/fldeff_softboiled.c @@ -5,12 +5,12 @@ #include "new_menu_helpers.h" #include "constants/songs.h" -static void sub_80E57E8(u8 taskId); -static void sub_80E583C(u8 taskId); -static void sub_80E58A0(u8 taskId); -static void sub_80E5934(u8 taskId); +static void Task_SoftboiledRestoreHealth(u8 taskId); +static void Task_DisplayHPRestoredMessage(u8 taskId); +static void Task_FinishSoftboiled(u8 taskId); +static void CantUseSoftboiledOnMon(u8 taskId); -extern const u8 gUnknown_84169F8[]; +extern const u8 gText_CantBeUsedOnPkmn[]; extern const u8 gText_PkmnHPRestoredByVar2[]; bool8 SetUpFieldMove_SoftBoiled(void) @@ -26,84 +26,83 @@ bool8 SetUpFieldMove_SoftBoiled(void) void ChooseMonForSoftboiled(u8 taskId) { - gPartyMenu.action = 10; + gPartyMenu.action = PARTY_ACTION_SOFTBOILED; gPartyMenu.slotId2 = gPartyMenu.slotId; AnimatePartySlot(GetCursorSelectionMonId(), 1); - DisplayPartyMenuStdMessage(5); + DisplayPartyMenuStdMessage(PARTY_MSG_USE_ON_WHICH_MON); gTasks[taskId].func = Task_HandleChooseMonInput; } void Task_TryUseSoftboiledOnPartyMon(u8 taskId) { - u8 r8 = gPartyMenu.slotId; - u8 r5 = gPartyMenu.slotId2; + u8 userPartyId = gPartyMenu.slotId; + u8 recipientPartyId = gPartyMenu.slotId2; u16 curHp; - s16 delta; - if (r5 > 6) + if (recipientPartyId > PARTY_SIZE) { - gPartyMenu.action = 0; - DisplayPartyMenuStdMessage(0); + gPartyMenu.action = PARTY_ACTION_CHOOSE_MON; + DisplayPartyMenuStdMessage(PARTY_MSG_CHOOSE_MON); gTasks[taskId].func = Task_HandleChooseMonInput; } else { - curHp = GetMonData(&gPlayerParty[r5], MON_DATA_HP); - if (curHp == 0 || r8 == r5 || GetMonData(&gPlayerParty[r5], MON_DATA_MAX_HP) == curHp) - { - sub_80E5934(taskId); - } + curHp = GetMonData(&gPlayerParty[recipientPartyId], MON_DATA_HP); + if (curHp == 0 + || userPartyId == recipientPartyId + || GetMonData(&gPlayerParty[recipientPartyId], MON_DATA_MAX_HP) == curHp) + CantUseSoftboiledOnMon(taskId); else { PlaySE(SE_USE_ITEM); - PartyMenuModifyHP(taskId, r8, -1, GetMonData(&gPlayerParty[r8], MON_DATA_MAX_HP) / 5, sub_80E57E8); + PartyMenuModifyHP(taskId, userPartyId, -1, GetMonData(&gPlayerParty[userPartyId], MON_DATA_MAX_HP) / 5, Task_SoftboiledRestoreHealth); } } } -static void sub_80E57E8(u8 taskId) +static void Task_SoftboiledRestoreHealth(u8 taskId) { PlaySE(SE_USE_ITEM); - PartyMenuModifyHP(taskId, gPartyMenu.slotId2, 1, GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_MAX_HP) / 5, sub_80E583C); + PartyMenuModifyHP(taskId, gPartyMenu.slotId2, 1, GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_MAX_HP) / 5, Task_DisplayHPRestoredMessage); } -static void sub_80E583C(u8 taskId) +static void Task_DisplayHPRestoredMessage(u8 taskId) { GetMonNickname(&gPlayerParty[gPartyMenu.slotId2], gStringVar1); StringExpandPlaceholders(gStringVar4, gText_PkmnHPRestoredByVar2); - DisplayPartyMenuMessage(gStringVar4, 0); + DisplayPartyMenuMessage(gStringVar4, FALSE); ScheduleBgCopyTilemapToVram(2); - gTasks[taskId].func = sub_80E58A0; + gTasks[taskId].func = Task_FinishSoftboiled; } -static void sub_80E58A0(u8 taskId) +static void Task_FinishSoftboiled(u8 taskId) { if (IsPartyMenuTextPrinterActive() != TRUE) { - gPartyMenu.action = 0; + gPartyMenu.action = PARTY_ACTION_CHOOSE_MON; AnimatePartySlot(gPartyMenu.slotId, 0); gPartyMenu.slotId = gPartyMenu.slotId2; AnimatePartySlot(gPartyMenu.slotId2, 1); ClearStdWindowAndFrameToTransparent(6, 0); ClearWindowTilemap(6); - DisplayPartyMenuStdMessage(0); + DisplayPartyMenuStdMessage(PARTY_MSG_CHOOSE_MON); gTasks[taskId].func = Task_HandleChooseMonInput; } } -static void sub_80E5900(u8 taskId) +static void Task_ChooseNewMonForSoftboiled(u8 taskId) { if (IsPartyMenuTextPrinterActive() != TRUE) { - DisplayPartyMenuStdMessage(5); + DisplayPartyMenuStdMessage(PARTY_MSG_USE_ON_WHICH_MON); gTasks[taskId].func = Task_HandleChooseMonInput; } } -static void sub_80E5934(u8 taskId) +static void CantUseSoftboiledOnMon(u8 taskId) { PlaySE(SE_SELECT); - DisplayPartyMenuMessage(gUnknown_84169F8, 0); + DisplayPartyMenuMessage(gText_CantBeUsedOnPkmn, FALSE); ScheduleBgCopyTilemapToVram(2); - gTasks[taskId].func = sub_80E5900; + gTasks[taskId].func = Task_ChooseNewMonForSoftboiled; } diff --git a/src/fldeff_strength.c b/src/fldeff_strength.c index c5dbfa6cd..bad0f05df 100644 --- a/src/fldeff_strength.c +++ b/src/fldeff_strength.c @@ -28,7 +28,7 @@ bool8 SetUpFieldMove_Strength(void) static void FieldCB_UseStrength(void) { gFieldEffectArguments[0] = GetCursorSelectionMonId(); - ScriptContext1_SetupScript(EventScript_FldEffStrength); + ScriptContext_SetupScript(EventScript_FldEffStrength); } bool8 FldEff_UseStrength(void) @@ -42,5 +42,5 @@ bool8 FldEff_UseStrength(void) static void ShowMonCB_UseStrength(void) { FieldEffectActiveListRemove(FLDEFF_USE_STRENGTH); - EnableBothScriptContexts(); + ScriptContext_Enable(); } diff --git a/src/fldeff_sweetscent.c b/src/fldeff_sweetscent.c index e9373bd05..606709e44 100644 --- a/src/fldeff_sweetscent.c +++ b/src/fldeff_sweetscent.c @@ -94,7 +94,7 @@ static void FailSweetScentEncounter(u8 taskId) CpuFastCopy(sPlttBufferBak, gPlttBufferUnfaded, PLTT_SIZE); WeatherProcessingIdle(); Free(sPlttBufferBak); - ScriptContext1_SetupScript(EventScript_FailSweetScent); + ScriptContext_SetupScript(EventScript_FailSweetScent); DestroyTask(taskId); } } diff --git a/src/graphics.c b/src/graphics.c index b7694f158..440083539 100644 --- a/src/graphics.c +++ b/src/graphics.c @@ -779,8 +779,8 @@ const u32 gBattleAnimSpriteGfx_Roots[] = INCBIN_U32("graphics/battle_anims/sprit const u32 gBattleAnimSpritePal_ItemBag[] = INCBIN_U32("graphics/battle_anims/sprites/item_bag.gbapal.lz"); const u32 gBattleAnimSpriteGfx_ItemBag[] = INCBIN_U32("graphics/battle_anims/sprites/item_bag.4bpp.lz"); -const u32 gBattleAnimSpritePal_TriForceTriangle[] = INCBIN_U32("graphics/battle_anims/sprites/tri_attack_triangle.gbapal.lz"); -const u32 gBattleAnimSpriteGfx_TriForceTriangle[] = INCBIN_U32("graphics/battle_anims/sprites/tri_attack_triangle.4bpp.lz"); +const u32 gBattleAnimSpritePal_TriAttackTriangle[] = INCBIN_U32("graphics/battle_anims/sprites/tri_attack_triangle.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_TriAttackTriangle[] = INCBIN_U32("graphics/battle_anims/sprites/tri_attack_triangle.4bpp.lz"); const u32 gBattleAnimSpritePal_LetterZ[] = INCBIN_U32("graphics/battle_anims/sprites/letter_z.gbapal.lz"); const u32 gBattleAnimSpriteGfx_LetterZ[] = INCBIN_U32("graphics/battle_anims/sprites/letter_z.4bpp.lz"); @@ -915,8 +915,8 @@ const u32 gBattleAnimSpriteGfx_TagHand[] = INCBIN_U32("graphics/battle_anims/spr const u32 gBattleAnimSpriteGfx_NoiseLine[] = INCBIN_U32("graphics/battle_anims/sprites/noise_line.4bpp.lz"); -const u32 gUnknown_D2EC24_Gfx[] = INCBIN_U32("graphics/battle_anims/masks/unknown_D2EC24.4bpp.lz"); -const u32 gUnknown_D2EC24_Tilemap[] = INCBIN_U32("graphics/battle_anims/masks/unknown_D2EC24.bin.lz"); +const u32 gUnusedLevelupAnimationGfx[] = INCBIN_U32("graphics/battle_anims/masks/unknown_D2EC24.4bpp.lz"); +const u32 gUnusedLevelupAnimationTilemap[] = INCBIN_U32("graphics/battle_anims/masks/unknown_D2EC24.bin.lz"); const u32 gBattleAnimSpriteGfx_SmallRedEye[] = INCBIN_U32("graphics/battle_anims/sprites/small_red_eye.4bpp.lz"); const u32 gBattleAnimSpritePal_SmallRedEye[] = INCBIN_U32("graphics/battle_anims/sprites/small_red_eye.gbapal.lz"); @@ -950,7 +950,7 @@ const u32 gBattleAnimSpritePal_Meteor[] = INCBIN_U32("graphics/battle_anims/spri const u32 gBattleAnimSpriteGfx_FlatRock[] = INCBIN_U32("graphics/battle_anims/sprites/flat_rock.4bpp.lz"); const u32 gBattleAnimSpritePal_FlatRock[] = INCBIN_U32("graphics/battle_anims/sprites/flat_rock.gbapal.lz"); -const u16 gUnknown_8D2FBB4[] = INCBIN_U16("graphics/interface/unk_8D2FBB4.gbapal"); +const u16 gPPTextPalette[] = INCBIN_U16("graphics/interface/text_pp.gbapal"); #include "data/graphics/pokemon.h" #include "data/graphics/trainers.h" @@ -1021,7 +1021,7 @@ const u32 gBattleAnimSpritePal_Protect[] = INCBIN_U32("graphics/battle_anims/spr const u32 gBattleAnimBgPalette_MuddyWater[] = INCBIN_U32("graphics/battle_anims/backgrounds/water_muddy.gbapal.lz"); -const u32 gFile_graphics_battle_interface_enemy_mon_shadow_sheet[] = INCBIN_U32("graphics/battle_interface/enemy_mon_shadow.4bpp.lz"); +const u32 gEnemyMonShadow_Gfx[] = INCBIN_U32("graphics/battle_interface/enemy_mon_shadow.4bpp.lz"); const u32 gFile_graphics_battle_interface_ball_status_bar_sheet[] = INCBIN_U32("graphics/battle_interface/ball_status_bar.4bpp.lz"); @@ -1116,12 +1116,12 @@ const u32 gUnknown_8E83444[] = INCBIN_U32("graphics/item_menu/bag_tilemap2.bin.l const u32 gBagBgPalette[] = INCBIN_U32("graphics/item_menu/bag_pal1.gbapal.lz"); // palette 1 (Boy + misc Pal) const u32 gBagBgPalette_FemaleOverride[] = INCBIN_U32("graphics/item_menu/bag_pal2.gbapal.lz"); // palette 2 (Girl) -const u32 gUnknown_8E8362C[] = INCBIN_U32("graphics/interface/unk_8E8362C.4bpp.lz"); -const u32 gUnknown_8E83DBC[] = INCBIN_U32("graphics/interface/unk_8E83DBC.4bpp.lz"); -const u32 gUnknown_8E84560[] = INCBIN_U32("graphics/interface/unk_8E84560.gbapal.lz"); +const u32 gBagMale_Gfx[] = INCBIN_U32("graphics/interface/bag_male.4bpp.lz"); +const u32 gBagFemale_Gfx[] = INCBIN_U32("graphics/interface/bag_female.4bpp.lz"); +const u32 gBag_Pal[] = INCBIN_U32("graphics/interface/bag.gbapal.lz"); -const u32 gFile_graphics_interface_bag_swap_sheet[] = INCBIN_U32("graphics/interface/bag_swap.4bpp.lz"); -const u32 gFile_graphics_interface_bag_swap_palette[] = INCBIN_U32("graphics/interface/bag_swap.gbapal.lz"); +const u32 gSwapLine_Gfx[] = INCBIN_U32("graphics/interface/bag_swap.4bpp.lz"); +const u32 gSwapLine_Pal[] = INCBIN_U32("graphics/interface/bag_swap.gbapal.lz"); const u32 gUnknown_8E845D8[] = INCBIN_U32("graphics/tm_case/unk_8E845D8.4bpp.lz"); const u32 gUnknown_8E84A24[] = INCBIN_U32("graphics/tm_case/unk_8E84A24.bin.lz"); @@ -1251,13 +1251,11 @@ const u32 gPokeSummary_StatusAilmentIconTiles[] = INCBIN_U32("graphics/interface const u16 gDexScreen_TopMenuIconPals_AtoZ[] = INCBIN_U16("graphics/pokedex/cat_icon_abc.gbapal"); const u32 gDexScreen_TopMenuIconTiles_AtoZ[] = INCBIN_U32("graphics/pokedex/cat_icon_abc.4bpp.lz"); -const u16 gPSSMenu_Pal[] = INCBIN_U16("graphics/interface/box_tiles_pal1.gbapal"); -const u16 gUnknown_8E9C3F8[] = INCBIN_U16("graphics/interface/box_tiles_pal2.gbapal"); -const u16 gUnknown_8E9C418[] = INCBIN_U16("graphics/interface/box_tiles_pal3.gbapal"); -const u32 gPSSMenu_Gfx[] = INCBIN_U32("graphics/interface/box_tiles.4bpp.lz"); - -const u32 gUnknown_8E9CAEC[] = INCBIN_U32("graphics/unknown/unknown_E9CAEC.bin.lz"); - +const u16 gPokeStoragePartyMenu_Pal[] = INCBIN_U16("graphics/pokemon_storage/party_menu.gbapal"); +const u16 gPokeStorageInterface_Pal[] = INCBIN_U16("graphics/pokemon_storage/interface.gbapal"); +const u16 gPokeStorageInterface_NoDisplayMon_Pal[] = INCBIN_U16("graphics/pokemon_storage/interface_no_display_mon.gbapal"); +const u32 gPokeStorageMenu_Gfx[] = INCBIN_U32("graphics/pokemon_storage/menu.4bpp.lz"); +const u32 gPokeStoragePartyMenu_Tilemap[] = INCBIN_U32("graphics/pokemon_storage/party_menu.bin.lz"); const u16 gMonMarkingsMenu_Pal[] = INCBIN_U16("graphics/misc/markings2.gbapal"); const u16 gMonMarkingsMenu_Gfx[] = INCBIN_U16("graphics/misc/markings2.4bpp"); diff --git a/src/hall_of_fame.c b/src/hall_of_fame.c index 7d5423e09..92248ac4c 100644 --- a/src/hall_of_fame.c +++ b/src/hall_of_fame.c @@ -620,7 +620,7 @@ static void Task_Hof_SpawnPlayerPic(u8 taskId) ShowBg(3); gTasks[taskId].data[4] = CreateTrainerPicSprite(PlayerGenderToFrontTrainerPicId_Debug(gSaveBlock2Ptr->playerGender, TRUE), TRUE, 0x78, 0x48, 6, 0xFFFF); AddWindow(&sWindowTemplate); - TextWindow_SetStdFrame0_WithPal(1, 0x21D, 0xD0); + LoadStdWindowGfx(1, 0x21D, 0xD0); gTasks[taskId].data[3] = 120; gTasks[taskId].func = Task_Hof_WaitAndPrintPlayerInfo; } diff --git a/src/help_message.c b/src/help_message.c index 5f3af1668..425ce88ac 100644 --- a/src/help_message.c +++ b/src/help_message.c @@ -5,7 +5,7 @@ static EWRAM_DATA u8 sHelpMessageWindowId = 0; -const u8 gUnknown_84566A8[] = INCBIN_U8("graphics/unknown/unknown_84566a8.bin"); +const u8 gHelpMessageWindow_Gfx[] = INCBIN_U8("graphics/help_system/msg_window.4bpp"); static const struct WindowTemplate sHelpMessageWindowTemplate = { .bg = 0, @@ -19,12 +19,12 @@ static const struct WindowTemplate sHelpMessageWindowTemplate = { void MapNamePopupWindowIdSetDummy(void) { - sHelpMessageWindowId = 0xFF; + sHelpMessageWindowId = WINDOW_NONE; } u8 CreateHelpMessageWindow(void) { - if (sHelpMessageWindowId == 0xFF) + if (sHelpMessageWindowId == WINDOW_NONE) { sHelpMessageWindowId = AddWindow(&sHelpMessageWindowTemplate); PutWindowTilemap(sHelpMessageWindowId); @@ -34,7 +34,7 @@ u8 CreateHelpMessageWindow(void) void DestroyHelpMessageWindow(u8 a0) { - if (sHelpMessageWindowId != 0xFF) + if (sHelpMessageWindowId != WINDOW_NONE) { FillWindowPixelBuffer(sHelpMessageWindowId, PIXEL_FILL(0)); ClearWindowTilemap(sHelpMessageWindowId); @@ -43,17 +43,18 @@ void DestroyHelpMessageWindow(u8 a0) CopyWindowToVram(sHelpMessageWindowId, a0); RemoveWindow(sHelpMessageWindowId); - sHelpMessageWindowId = 0xFF; + sHelpMessageWindowId = WINDOW_NONE; } } -void sub_8112F18(u8 windowId) +// Creates the bottom bar window that displays help text for e.g. the options in the Start menu +void DrawHelpMessageWindowTilesById(u8 windowId) { - const u8 *ptr = gUnknown_84566A8; + const u8 *ptr = gHelpMessageWindow_Gfx; u8 *buffer; u8 i, j; u8 width, height; - u8 k; + u8 tileId; width = (u8)GetWindowAttribute(windowId, WINDOW_WIDTH); height = (u8)GetWindowAttribute(windowId, WINDOW_HEIGHT); @@ -66,15 +67,15 @@ void sub_8112F18(u8 windowId) { for (j = 0; j < width; j++) { - if (i == 0) - k = 0; - else if (i == height - 1) - k = 14; - else - k = 5; + if (i == 0) // Top row + tileId = 0; + else if (i == height - 1) // Bottom row + tileId = 14; + else // Middle row + tileId = 5; CpuCopy32( - &ptr[k * 0x20], - &buffer[(i * width + j) * 0x20], + &ptr[tileId * 32], + &buffer[(i * width + j) * 32], 32 ); } @@ -84,9 +85,9 @@ void sub_8112F18(u8 windowId) } } -static void sub_8112FD0(void) +static void DrawHelpMessageWindowTiles(void) { - sub_8112F18(sHelpMessageWindowId); + DrawHelpMessageWindowTilesById(sHelpMessageWindowId); } static const u8 sHelpMessageTextColors[3] = {TEXT_COLOR_TRANSPARENT, TEXT_DYNAMIC_COLOR_1, TEXT_COLOR_DARK_GRAY}; @@ -98,7 +99,7 @@ static void PrintHelpMessageText(const u8 *text) void PrintTextOnHelpMessageWindow(const u8 *text, u8 mode) { - sub_8112FD0(); + DrawHelpMessageWindowTiles(); PrintHelpMessageText(text); if (mode) CopyWindowToVram(sHelpMessageWindowId, mode); diff --git a/src/help_system.c b/src/help_system.c index f29359354..b178fd6ab 100644 --- a/src/help_system.c +++ b/src/help_system.c @@ -1646,7 +1646,7 @@ static const u8 *const sHelpSystemSubmenuItemLists[HELPCONTEXT_COUNT * (TOPIC_CO NULL, NULL, NULL, NULL, NULL // HELPCONTEXT_UNUSED }; -static const u16 unref_845BCB0[] = INCBIN_U16("graphics/help_system/unused.bin"); +static const u16 sUnused[] = INCBIN_U16("graphics/help_system/unused.bin"); static const u8 sHelpSystemContextTopicOrder[TOPIC_COUNT] = { TOPIC_ABOUT_GAME, diff --git a/src/hof_pc.c b/src/hof_pc.c index 4bbbc7bec..791a4d1fc 100644 --- a/src/hof_pc.c +++ b/src/hof_pc.c @@ -23,7 +23,7 @@ static void Task_WaitFadeAndSetCallback(u8 taskId) void HallOfFamePCBeginFade(void) { BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_BLACK); - ScriptContext2_Enable(); + LockPlayerFieldControls(); CreateTask(Task_WaitFadeAndSetCallback, 0); } @@ -35,7 +35,7 @@ void ReturnFromHallOfFamePC(void) static void ReshowPCMenuAfterHallOfFamePC(void) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); Overworld_PlaySpecialMapMusic(); CreatePCMenu(); ScriptMenu_DisplayPCStartupPrompt(); diff --git a/src/intro.c b/src/intro.c index 471cc4fcd..f3621b143 100644 --- a/src/intro.c +++ b/src/intro.c @@ -7,6 +7,7 @@ #include "new_menu_helpers.h" #include "link.h" #include "menu.h" +#include "random.h" #include "save.h" #include "new_game.h" #include "title_screen.h" @@ -16,6 +17,114 @@ #include "constants/songs.h" #include "constants/sound.h" +/* + The intro is grouped into the following scenes + - Copyright screen + - GF Logo + Scene 1. Brief close up shot of grass + Scene 2. A panning wide shot followed by a close-up of Gengar/Nidorino + Scene 3. A fight between Gengar/Nidorino + + After this it progresses to the title screen +*/ + +enum { + GFXTAG_STAR, + GFXTAG_SPARKLES_SMALL, + GFXTAG_SPARKLES_BIG, + GFXTAG_GF_LOGO, + GFXTAG_PRESENTS, + GFXTAG_SCENE3_NIDORINO, + GFXTAG_SCENE2_GENGAR, + GFXTAG_SCENE2_NIDORINO, + GFXTAG_SCENE3_GRASS, + GFXTAG_SCENE3_GENGAR, + GFXTAG_SCENE3_SWIPE, + GFXTAG_SCENE3_RECOIL_DUST, +}; + +enum { + PALTAG_STAR, + PALTAG_SPARKLES, + PALTAG_UNUSED_2, + PALTAG_GF, + PALTAG_UNUSED_4, + PALTAG_UNUSED_5, + PALTAG_GENGAR, + PALTAG_NIDORINO, + PALTAG_SCENE3_GRASS, + PALTAG_UNUSED_9, + PALTAG_SCENE3_SWIPE, + PALTAG_SCENE3_RECOIL_DUST, +}; + +// Background IDs for Game Freak logo scene +enum { + BG_GF_TEXT_LOGO = 2, + BG_GF_BACKGROUND +}; + + +// Background IDs for Scene 1 +enum { + BG_SCENE1_GRASS, + BG_SCENE1_BACKGROUND, + BG_SCENE1_UNUSED1, + BG_SCENE1_UNUSED2 +}; + +#define PALSLOT_SCENE1_GRASS 1 +#define PALSLOT_SCENE1_BG 2 + +// Background IDs for Scene 2 +enum { + BG_SCENE2_PLANTS, + BG_SCENE2_NIDORINO, + BG_SCENE2_GENGAR, + BG_SCENE2_BACKGROUND // Bg for wide shot on upper half, close up on lower half +}; + +// Background IDs for Scene 3 +enum { + BG_SCENE3_GENGAR, + BG_SCENE3_BACKGROUND, + BG_SCENE3_UNUSED1, + BG_SCENE3_UNUSED2 +}; + +enum { + ANIM_NIDORINO_NORMAL, + ANIM_NIDORINO_CRY, + ANIM_NIDORINO_CROUCH, + ANIM_NIDORINO_HOP, + ANIM_NIDORINO_ATTACK, +}; + +enum { + ANIM_SPARKLE_LOOP, + ANIM_SPARKLE_ONCE, +}; + +enum { + ANIM_SWIPE_TOP, + ANIM_SWIPE_BOTTOM, +}; + +enum { + AFFINEANIM_NORMAL, + AFFINEANIM_ZOOM, +}; + +// Window ids for sWindowTemplates (only one) +enum { + WIN_GF_TEXT_LOGO, + WIN_COUNT +}; + +#define NUM_GENGAR_BACK_SPRITES 4 + +#define COLOSSEUM_GAME_CODE 0x65366347 // "Gc6e" in ASCII + struct IntroSequenceData; typedef void (*IntroCallback)(struct IntroSequenceData *); @@ -26,40 +135,42 @@ struct IntroSequenceData u8 state; u8 taskId; bool8 gengarAttackLanded; - u16 data[6]; + u16 data[5]; // [0] and [1] are set but never read, the rest are unused + u16 timer; struct Sprite *gameFreakLogoArtSprite; - struct Sprite *nidorinoAnimSprite; - struct Sprite *gengarStaticSprite; - struct Sprite *nidorinoStaticSprite; - struct Sprite *grassSprite; - struct Sprite *gengarBackSpriteArray[4]; - u8 filler_0038[0x4]; - u8 gamefreakLogoArtSpriteTiles[0x400]; - u8 gamefreakTextBitmap[0x400]; - u8 filler_083C[0x2080]; + struct Sprite *scene3NidorinoSprite; + struct Sprite *scene2GengarSprite; + struct Sprite *scene2NidorinoSprite; + struct Sprite *scene3GrassSprite; + struct Sprite *scene3GengarSprites[NUM_GENGAR_BACK_SPRITES]; + u8 unused0[4]; + u8 gameFreakLogoGfx[0x400]; + u8 gameFreakTextGfx[0x400]; + u8 unused1[0x2080]; }; // size: 0x28BC static EWRAM_DATA struct GcmbStruct sGcmb = {0}; -static EWRAM_DATA u16 gUnknown_203AB00 = 0; -static EWRAM_DATA u16 gUnknown_203AB02 = 0; -static EWRAM_DATA u16 gUnknown_203AB04 = 0; -static EWRAM_DATA u16 gUnknown_203AB06 = 0; -static EWRAM_DATA u16 gUnknown_203AB08 = 0; -static EWRAM_DATA u16 gUnknown_203AB0A = 0; -static EWRAM_DATA u16 gUnknown_203AB0C = 0; -static EWRAM_DATA u16 sLargeStarXSpeed = 0; -static EWRAM_DATA u16 sLargeStarYSpeed = 0; -static EWRAM_DATA u16 sTrailingSparklesXmodMask = 0; -static EWRAM_DATA u16 sUnusedVarRelatedToGameFreakStars = 0; -static EWRAM_DATA u16 sTrailingSparklesSpawnRate = 0; -static EWRAM_DATA u16 sTrailingSparklesFlickerStartTime = 0; -static EWRAM_DATA u16 sTrailingSparklesDestroySpriteTime = 0; -static EWRAM_DATA u16 sTrailingSparklesGravityShift = 0; -static EWRAM_DATA u16 sTrailingSparklesXspeed = 0; -static EWRAM_DATA u16 sTrailingSparklesYspeed = 0; -static EWRAM_DATA u16 sTrailingSparklesXprecision = 0; -static EWRAM_DATA u16 sTrailingSparklesYprecision = 0; +static EWRAM_DATA u16 sUnusedScene3Var0 = 0; // Set but never read +static EWRAM_DATA u16 sUnusedScene3Var1 = 0; // Set but never read +static EWRAM_DATA u16 sNidorinoJumpMult = 0; +static EWRAM_DATA u16 sNidorinoAnimDelayTime = 0; +static EWRAM_DATA u16 sNidorinoJumpDiv = 0; +static EWRAM_DATA u16 sNidorinoRecoilReturnTime = 0; +static EWRAM_DATA u16 sNidorinoUnusedVar = 0; // Set but never read +static EWRAM_DATA u16 sStarSpeedX = 0; +static EWRAM_DATA u16 sStarSpeedY = 0; +static EWRAM_DATA u16 sStarSparklesXmodMask = 0; +static EWRAM_DATA u16 sStarSparklesUnusedVar = 0; // Set but never read +static EWRAM_DATA u16 sStarSparklesSpawnRate = 0; +static EWRAM_DATA u16 sStarSparklesFlickerStartTime = 0; +static EWRAM_DATA u16 sStarSparklesDestroySpriteTime = 0; +static EWRAM_DATA u16 sStarSparklesGravityShift = 0; +static EWRAM_DATA u16 sStarSparklesXspeed = 0; +static EWRAM_DATA u16 sStarSparklesYspeed = 0; +static EWRAM_DATA u16 sStarSparklesXprecision = 0; +static EWRAM_DATA u16 sStarSparklesYprecision = 0; +// General static void CB2_SetUpIntro(void); static void CB2_Intro(void); static void VBlankCB_Intro(void); @@ -68,121 +179,132 @@ static void StartIntroSequence(void); static void Task_CallIntroCallback(u8 taskId); static void SetIntroCB(struct IntroSequenceData * ptr, IntroCallback cb); static void IntroCB_Init(struct IntroSequenceData * ptr); -static void IntroCB_OpenWin1ToTheaterDimensions(struct IntroSequenceData * ptr); -static void IntroCB_GameFreakStar(struct IntroSequenceData * ptr); -static void IntroCB_GameFreakScene_RevealGameFreakText(struct IntroSequenceData * ptr); -static void IntroCB_GameFreakScene_CreateGameFreakLogo(struct IntroSequenceData * ptr); -static void IntroCB_FightScene(struct IntroSequenceData * ptr); -static void Task_FightScene1_GrassyFieldAnim(u8 taskId); -static void FightScene1_SignalEndGrassyFieldAnim(void); -static void Task_FightScene1_ZoomEffect(u8 taskId); -static void IntroCB_FightScene2(struct IntroSequenceData * ptr); -static void Task_FightScene2_CameraHorizPanEffect(u8 taskId); -static void Task_FightScene2_CameraVertPanEffect(u8 taskId); -static void CreateMonStaticSprites(struct IntroSequenceData * ptr); -static void DestroyStaticMonSprites(struct IntroSequenceData * ptr); -static void IntroCB_FightScene3(struct IntroSequenceData * ptr); -static void FightScene3_StartBg1Scroll(void); -static void Task_FightScene3_ForestBgScroll(u8 taskId); -static void CreateGrassSprite(struct IntroSequenceData * ptr); +static void LoadFightSceneSpriteGraphics(void); +static void IntroCB_ExitToTitleScreen(struct IntroSequenceData * ptr); + +// GF scene +static void IntroCB_GF_OpenWindow(struct IntroSequenceData * ptr); +static void IntroCB_GF_Star(struct IntroSequenceData * ptr); +static void IntroCB_GF_RevealName(struct IntroSequenceData * ptr); +static void IntroCB_GF_RevealLogo(struct IntroSequenceData * ptr); +static void GFScene_LoadGfxCreateStar(void); +static void GFScene_StartNameSparklesSmall(void); +static void GFScene_StartNameSparklesBig(void); +static void GFScene_Task_NameSparklesSmall(u8 taskId); +static void GFScene_Task_NameSparklesBig(u8 taskId); +static struct Sprite *GFScene_CreateLogoSprite(void); +static void GFScene_CreatePresentsSprite(void); +static void SpriteCB_Star(struct Sprite *sprite); +static void SpriteCB_SparklesSmall_Star(struct Sprite *sprite); +static void SpriteCB_SparklesSmall_Name(struct Sprite *sprite); +static void SpriteCB_SparklesBig(struct Sprite *sprite); + +// Scene 1 +static void IntroCB_Scene1(struct IntroSequenceData * ptr); +static void Scene1_Task_AnimateGrass(u8 taskId); +static void Scene1_StartGrassScrolling(void); +static void Scene1_Task_BgZoom(u8 taskId); + +// Scene 2 +static void IntroCB_Scene2(struct IntroSequenceData * ptr); +static void Scene2_Task_PanForest(u8 taskId); +static void Scene2_Task_PanMons(u8 taskId); +static void Scene2_CreateMonSprites(struct IntroSequenceData * ptr); +static void Scene2_DestroyMonSprites(struct IntroSequenceData * ptr); + +// Scene 3 +static void IntroCB_Scene3_Entrance(struct IntroSequenceData * ptr); +static void IntroCB_Scene3_Fight(struct IntroSequenceData * ptr); +static void Scene3_StartBgScroll(void); +static void Scene3_Task_GengarBounce(u8 taskId); +static void Scene3_CreateGrassSprite(struct IntroSequenceData * ptr); +static void Scene3_CreateGengarSprite(struct IntroSequenceData * ptr); +static void Scene3_StartNidorinoCry(struct IntroSequenceData * ptr); +static void Scene3_StartNidorinoHop(struct Sprite *sprite, u16 time, s16 targetX, u8 heightShift); +static void Scene3_StartGengarAttack(struct IntroSequenceData * ptr); +static void Scene3_Task_GengarAttack(u8 taskId); +static void Scene3_NidorinoZoom(struct IntroSequenceData * ptr); +static void Scene3_GengarZoom(struct IntroSequenceData * ptr); +static void Scene3_CreateGengarSwipeSprites(void); +static void Scene3_Task_GengarEnter(u8 taskId); +static void Scene3_CreateNidorinoSprite(struct IntroSequenceData * ptr); +static void Scene3_StartNidorinoEntrance(struct Sprite *sprite, s16 xStart, s16 xEnd, u16 speed); +static void Scene3_SpriteCB_NidorinoEnter(struct Sprite *sprite); +static bool32 Scene3_IsNidorinoEntering(struct IntroSequenceData * ptr); +static void Scene3_StartNidorinoRecoil(struct IntroSequenceData * ptr); +static bool8 Scene3_NidorinoAnimIsRunning(struct IntroSequenceData * ptr); +static void CreateNidorinoRecoilDustSprites(s16 x, s16 y, s16 seed); +static void Scene3_StartNidorinoAttack(struct IntroSequenceData * ptr); static void SpriteCB_Grass(struct Sprite *sprite); -static void IntroCB_FightScene4(struct IntroSequenceData * ptr); -static void CreateGengarBackSprite(struct IntroSequenceData * ptr); -static void FightScene4_StartNidorinoAffineAnim(struct IntroSequenceData * ptr); -static void FightScene4_StartGengarAffineAnim(struct IntroSequenceData * ptr); -static void IntroCB_CleanUp(struct IntroSequenceData * ptr); -static void GameFreakScene_LoadGfxCreateStar(void); -static void GameFreakScene_StartTrailingSparkleSpawner(void); -static void Task_GameFreakScene_TrailingSparkleSpawner(u8 taskId); -static void GameFreakScene_StartRevealGameFreakTextSparklesSpawner(void); -static void Task_RevealGameFreakTextSparklesSpawner(u8 taskId); -static struct Sprite *CreateGameFreakLogoArtSprite(void); -static void FightScene4_StartGengarAttack(struct IntroSequenceData * ptr); -static void Task_FightScene4_GengarAttack(u8 taskId); -static void FightScene4_CreateGengarSwipeSprites(void); static void SpriteCB_GengarSwipe(struct Sprite *sprite); -static void Task_FightScene3_Bg0Scroll(u8 taskId); -static void SpriteCB_LargeStar(struct Sprite *sprite); -static void SpriteCB_TrailingSparkles(struct Sprite *sprite); -static void SpriteCB_TrailingSparkles2(struct Sprite *sprite); -static void SpriteCB_RevealGameFreakTextSparkles(struct Sprite *sprite); -static void CreateNidorinoAnimSprite(struct IntroSequenceData * ptr); -static void StartNidorinoAnimSpriteSlideIn(struct Sprite *sprite, s16 x0, s16 x1, u16 speed); -static void SpriteCB_NidorinoAnimSpriteSlideIn(struct Sprite *sprite); -static bool32 IsNidorinoAnimSpriteSlideInRunning(struct IntroSequenceData * ptr); -static void FightScene4_NidorinoRearsUp(struct IntroSequenceData * ptr); -static void SpriteCB_NidorinoRearsUp(struct Sprite *sprite); -static void FightScene4_StartNidorinoRecoilAnim(struct IntroSequenceData * ptr); +static void SpriteCB_RecoilDust(struct Sprite *sprite); +static void SpriteCB_NidorinoCry(struct Sprite *sprite); static void SpriteCB_NidorinoRecoil(struct Sprite *sprite); -static bool8 FightScene4_NidorinoAnimIsRunning(struct IntroSequenceData * ptr); -static void CreateNidorinoRecoilDustSprites(s16 a1, s16 a2, s16 a3); -static void SpriteCB_NidorinoRecoilDust(struct Sprite *sprite); -static void StartSpriteHopToPosAnim(struct Sprite *sprite, u16 a1, s16 a2, u8 a3); -static void SpriteCB_HopToPos(struct Sprite *sprite); -static void StartNidorinoAnim_LaunchSelfAtGengarAnim(struct IntroSequenceData * ptr); -static void SpriteCB_NidorinoAnim_LaunchSelfAtGengar(struct Sprite *sprite); -static void LoadFightSceneSpriteTilesAndPals(void); -#if REVISION >= 1 -static void Rev1_GameFreakScene_CreatePresentsText(void); -#else -#define Rev1_GameFreakScene_CreatePresentsText() -#endif +static void SpriteCB_NidorinoHop(struct Sprite *sprite); +static void SpriteCB_NidorinoAttack(struct Sprite *sprite); extern const u32 gMultiBootProgram_PokemonColosseum_Start[]; +extern const u32 gMultiBootProgram_PokemonColosseum_End[]; -static const u16 sCopyrightGraphicsPal[] = INCBIN_U16("graphics/intro/unk_8402260.gbapal"); -static const u8 sCopyrightGraphicsTiles[] = INCBIN_U8("graphics/intro/unk_8402280.4bpp.lz"); -static const u8 sCopyrightGraphicsMap[] = INCBIN_U8("graphics/intro/unk_84024E4.bin.lz"); -static const u16 sBg3Pal_GameFreakPresents[] = INCBIN_U16("graphics/intro/unk_8402630.gbapal"); -static const u8 sBg3Tiles_GameFreakPresents[] = INCBIN_U8("graphics/intro/unk_8402650.4bpp.lz"); -static const u8 sBg3Map_GameFreakPresents[] = INCBIN_U8("graphics/intro/unk_8402668.bin.lz"); -static const u16 sSpritePals_GameFreakPresents[] = INCBIN_U16("graphics/intro/unk_840270C.gbapal"); -static const u8 sBlit_GameFreakText[] = INCBIN_U8("graphics/intro/unk_840272C.4bpp.lz"); -static const u32 sSpriteTiles_GameFreakLogoArt[] = INCBIN_U32("graphics/intro/unk_84028F8.4bpp.lz"); -static const u16 sSpritePals_LargeStar[] = INCBIN_U16("graphics/intro/unk_8402A64.gbapal"); -static const u32 sSpriteTiles_LargeStar[] = INCBIN_U32("graphics/intro/unk_8402A64.4bpp.lz"); -static const u16 sSpritePals_Sparkles[] = INCBIN_U16("graphics/intro/unk_8402ADC.gbapal"); -static const u32 sSpriteTiles_TrailingSparkles[] = INCBIN_U32("graphics/intro/unk_8402ADC.4bpp.lz"); -static const u32 sSpriteTiles_RevealGameFreakTextSparkles[] = INCBIN_U32("graphics/intro/unk_8402B2C.4bpp.lz"); -static const u32 sSpriteTiles_PresentsText[] = INCBIN_U32("graphics/intro/unk_8402CD4.4bpp.lz"); -static const u16 sBg0Pal_FightScene1[] = INCBIN_U16("graphics/intro/unk_8402D34.gbapal"); -static const u8 sBg0Tiles_FightScene1[] = INCBIN_U8("graphics/intro/unk_8402D54.4bpp.lz"); -static const u8 sBg0Map_FightScene1[] = INCBIN_U8("graphics/intro/unk_8403FE8.bin.lz"); -static const u16 sBg1Pal_FightScene1[] = INCBIN_U16("graphics/intro/unk_84048CC.gbapal"); -static const u8 sBg1Tiles_FightScene1[] = INCBIN_U8("graphics/intro/unk_84048EC.4bpp.lz"); -static const u8 sBg1Map_FightScene1[] = INCBIN_U8("graphics/intro/unk_8404F7C.bin.lz"); -static const u16 sBg3Pal_FightScene2[] = INCBIN_U16("graphics/intro/unk_84053B4.gbapal"); -static const u8 sBg3Tiles_FightScene2[] = INCBIN_U8("graphics/intro/unk_8405414.4bpp.lz"); -static const u8 sBg3Map_FightScene2[] = INCBIN_U8("graphics/intro/unk_8405890.bin.lz"); -static const u16 sBg0Pal_FightScene2[] = INCBIN_U16("graphics/intro/unk_8405B08.gbapal"); -static const u8 sBg0Tiles_FightScene2[] = INCBIN_U8("graphics/intro/unk_8405B28.4bpp.lz"); -static const u8 sBg0Map_FightScene2[] = INCBIN_U8("graphics/intro/unk_8405CDC.bin.lz"); -static const u16 sSpritePals_Gengar[] = INCBIN_U16("graphics/intro/unk_8405DA4.gbapal"); -static const u8 sBg2Tiles_FightScene2[] = INCBIN_U8("graphics/intro/unk_8405DC4.4bpp.lz"); -static const u8 sBg2Map_FightScene2[] = INCBIN_U8("graphics/intro/unk_840644C.bin.lz"); -static const u16 sBg1Pal_FightScene2[] = INCBIN_U16("graphics/intro/unk_8406634.gbapal"); -static const u8 sBg1Tiles_FightScene2[] = INCBIN_U8("graphics/intro/unk_8406654.4bpp.lz"); -static const u8 sBg1Map_FightScene2[] = INCBIN_U8("graphics/intro/unk_84071D0.bin.lz"); -static const u16 sBg1Pal_FightScene3[] = INCBIN_U16("graphics/intro/unk_8407430.gbapal"); -static const u8 sBg1Tiles_FightScene3[] = INCBIN_U8("graphics/intro/unk_8407470.4bpp.lz"); -static const u8 sBg1Map_FightScene3[] = INCBIN_U8("graphics/intro/unk_8407A50.bin.lz"); -static const u8 sBg0Tiles_FightScene3[] = INCBIN_U8("graphics/intro/unk_8407B9C.4bpp.lz"); -static const u8 sBg0Map_FightScene3[] = INCBIN_U8("graphics/intro/unk_8408D98.bin.lz"); -static const u32 sSpriteTiles_GengarStatic[] = INCBIN_U32("graphics/intro/unk_840926C.4bpp.lz"); -static const u16 sSpritePals_Nidorino[] = INCBIN_U16("graphics/intro/unk_84096AC.gbapal"); -static const u32 sSpriteTiles_NidorinoStatic[] = INCBIN_U32("graphics/intro/unk_84096CC.4bpp.lz"); -static const u16 sSpritePals_Grass[] = INCBIN_U16("graphics/intro/unk_8409A1C.gbapal"); -static const u32 sSpriteTiles_Grass[] = INCBIN_U32("graphics/intro/unk_8409A3C.4bpp.lz"); -static const u32 sSpriteTiles_GengarBack[] = INCBIN_U32("graphics/intro/unk_8409D20.4bpp.lz"); -static const u32 sSpriteTiles_NidorinoAnim[] = INCBIN_U32("graphics/intro/unk_840A3E4.4bpp.lz"); -static const u16 sSpritePals_GengarSwipe[] = INCBIN_U16("graphics/intro/unk_840B834.gbapal"); -static const u16 sSpritePals_NidorinoRecoilDust[] = INCBIN_U16("graphics/intro/unk_840B854.gbapal"); -static const u32 sSpriteTiles_GengarSwipe[] = INCBIN_U32("graphics/intro/unk_840B874.4bpp.lz"); -static const u32 sSpriteTiles_NidorinoRecoilDust[] = INCBIN_U32("graphics/intro/unk_840BAE0.4bpp.lz"); +static const u16 sCopyright_Pal[] = INCBIN_U16("graphics/intro/copyright.gbapal"); +static const u8 sCopyright_Gfx[] = INCBIN_U8( "graphics/intro/copyright.4bpp.lz"); +static const u8 sCopyright_Map[] = INCBIN_U8( "graphics/intro/copyright.bin.lz"); + +// Game Freak +static const u16 sGameFreakBg_Pal[] = INCBIN_U16("graphics/intro/game_freak/bg.gbapal"); +static const u8 sGameFreakBg_Gfx[] = INCBIN_U8( "graphics/intro/game_freak/bg.4bpp.lz"); +static const u8 sGameFreakBg_Map[] = INCBIN_U8( "graphics/intro/game_freak/bg.bin.lz"); +static const u16 sGameFreakLogo_Pal[] = INCBIN_U16("graphics/intro/game_freak/logo.gbapal"); +static const u8 sGameFreakText_Gfx[] = INCBIN_U8( "graphics/intro/game_freak/game_freak.4bpp.lz"); +static const u32 sGameFreakLogo_Gfx[] = INCBIN_U32("graphics/intro/game_freak/logo.4bpp.lz"); +static const u16 sStar_Pal[] = INCBIN_U16("graphics/intro/game_freak/star.gbapal"); +static const u32 sStar_Gfx[] = INCBIN_U32("graphics/intro/game_freak/star.4bpp.lz"); +static const u16 sSparkles_Pal[] = INCBIN_U16("graphics/intro/game_freak/sparkles.gbapal"); +static const u32 sSparklesSmall_Gfx[] = INCBIN_U32("graphics/intro/game_freak/sparkles_small.4bpp.lz"); +static const u32 sSparklesBig_Gfx[] = INCBIN_U32("graphics/intro/game_freak/sparkles_big.4bpp.lz"); +static const u32 sPresents_Gfx[] = INCBIN_U32("graphics/intro/game_freak/presents.4bpp.lz"); + +// Scene 1 (Grass close up) +static const u16 sScene1_Grass_Pal[] = INCBIN_U16("graphics/intro/scene_1/grass.gbapal"); +static const u8 sScene1_Grass_Gfx[] = INCBIN_U8( "graphics/intro/scene_1/grass.4bpp.lz"); +static const u8 sScene1_Grass_Map[] = INCBIN_U8( "graphics/intro/scene_1/grass.bin.lz"); +static const u16 sScene1_Bg_Pal[] = INCBIN_U16("graphics/intro/scene_1/bg.gbapal"); +static const u8 sScene1_Bg_Gfx[] = INCBIN_U8( "graphics/intro/scene_1/bg.4bpp.lz"); +static const u8 sScene1_Bg_Map[] = INCBIN_U8( "graphics/intro/scene_1/bg.bin.lz"); + +// Scenes 2 and 3 (Gengar and Nidorino) +static const u16 sScene2_Bg_Pal[] = INCBIN_U16("graphics/intro/scene_2/bg.gbapal"); +static const u8 sScene2_Bg_Gfx[] = INCBIN_U8( "graphics/intro/scene_2/bg.4bpp.lz"); +static const u8 sScene2_Bg_Map[] = INCBIN_U8( "graphics/intro/scene_2/bg.bin.lz"); +static const u16 sScene2_Plants_Pal[] = INCBIN_U16("graphics/intro/scene_2/plants.gbapal"); // Unused +static const u8 sScene2_Plants_Gfx[] = INCBIN_U8( "graphics/intro/scene_2/plants.4bpp.lz"); +static const u8 sScene2_Plants_Map[] = INCBIN_U8( "graphics/intro/scene_2/plants.bin.lz"); +static const u16 sGengar_Pal[] = INCBIN_U16("graphics/intro/gengar.gbapal"); // Used by multiple scenes +static const u8 sScene2_GengarClose_Gfx[] = INCBIN_U8( "graphics/intro/scene_2/gengar_close.4bpp.lz"); +static const u8 sScene2_GengarClose_Map[] = INCBIN_U8( "graphics/intro/scene_2/gengar_close.bin.lz"); +static const u16 sScene2_NidorinoClose_Pal[] = INCBIN_U16("graphics/intro/scene_2/nidorino_close.gbapal"); +static const u8 sScene2_NidorinoClose_Gfx[] = INCBIN_U8( "graphics/intro/scene_2/nidorino_close.4bpp.lz"); +static const u8 sScene2_NidorinoClose_Map[] = INCBIN_U8( "graphics/intro/scene_2/nidorino_close.bin.lz"); +static const u16 sScene3_Bg_Pal[] = INCBIN_U16("graphics/intro/scene_3/bg.gbapal"); +static const u8 sScene3_Bg_Gfx[] = INCBIN_U8( "graphics/intro/scene_3/bg.4bpp.lz"); +static const u8 sScene3_Bg_Map[] = INCBIN_U8( "graphics/intro/scene_3/bg.bin.lz"); +static const u8 sScene3_GengarAnim_Gfx[] = INCBIN_U8( "graphics/intro/scene_3/gengar_anim.4bpp.lz"); +static const u8 sScene3_GengarAnim_Map[] = INCBIN_U8( "graphics/intro/scene_3/gengar_anim.bin.lz"); +static const u32 sScene2_Gengar_Gfx[] = INCBIN_U32("graphics/intro/scene_2/gengar.4bpp.lz"); +static const u16 sNidorino_Pal[] = INCBIN_U16("graphics/intro/nidorino.gbapal"); // Used by multiple scenes +static const u32 sScene2_Nidorino_Gfx[] = INCBIN_U32("graphics/intro/scene_2/nidorino.4bpp.lz"); +static const u16 sScene3_Grass_Pal[] = INCBIN_U16("graphics/intro/scene_3/grass.gbapal"); +static const u32 sScene3_Grass_Gfx[] = INCBIN_U32("graphics/intro/scene_3/grass.4bpp.lz"); +static const u32 sScene3_GengarStatic_Gfx[] = INCBIN_U32("graphics/intro/scene_3/gengar_static.4bpp.lz"); +static const u32 sScene3_Nidorino_Gfx[] = INCBIN_U32("graphics/intro/scene_3/nidorino.4bpp.lz"); +static const u16 sScene3_Swipe_Pal[] = INCBIN_U16("graphics/intro/scene_3/swipe.gbapal"); +static const u16 sScene3_RecoilDust_Pal[] = INCBIN_U16("graphics/intro/scene_3/recoil_dust.gbapal"); +static const u32 sScene3_Swipe_Gfx[] = INCBIN_U32("graphics/intro/scene_3/swipe.4bpp.lz"); +static const u32 sScene3_RecoilDust_Gfx[] = INCBIN_U32("graphics/intro/scene_3/recoil_dust.4bpp.lz"); static const struct BgTemplate sBgTemplates_GameFreakScene[] = { { - .bg = 3, + .bg = BG_GF_BACKGROUND, .charBaseIndex = 3, .mapBaseIndex = 31, .screenSize = 0, @@ -190,7 +312,7 @@ static const struct BgTemplate sBgTemplates_GameFreakScene[] = { .priority = 3, .baseTile = 0x000 }, { - .bg = 2, + .bg = BG_GF_TEXT_LOGO, .charBaseIndex = 3, .mapBaseIndex = 30, .screenSize = 0, @@ -200,9 +322,9 @@ static const struct BgTemplate sBgTemplates_GameFreakScene[] = { } }; -static const struct BgTemplate sBgTemplates_FightScene1[] = { +static const struct BgTemplate sBgTemplates_Scene1[] = { { - .bg = 0, + .bg = BG_SCENE1_GRASS, .charBaseIndex = 0, .mapBaseIndex = 28, .screenSize = 2, @@ -210,7 +332,7 @@ static const struct BgTemplate sBgTemplates_FightScene1[] = { .priority = 0, .baseTile = 0x000 }, { - .bg = 1, + .bg = BG_SCENE1_BACKGROUND, .charBaseIndex = 1, .mapBaseIndex = 30, .screenSize = 2, @@ -220,9 +342,9 @@ static const struct BgTemplate sBgTemplates_FightScene1[] = { } }; -static const struct BgTemplate sBgTemplates_FightScene2[] = { +static const struct BgTemplate sBgTemplates_Scene2[] = { { - .bg = 3, + .bg = BG_SCENE2_BACKGROUND, .charBaseIndex = 1, .mapBaseIndex = 30, .screenSize = 2, @@ -230,7 +352,7 @@ static const struct BgTemplate sBgTemplates_FightScene2[] = { .priority = 3, .baseTile = 0x000 }, { - .bg = 0, + .bg = BG_SCENE2_PLANTS, .charBaseIndex = 0, .mapBaseIndex = 29, .screenSize = 0, @@ -238,7 +360,7 @@ static const struct BgTemplate sBgTemplates_FightScene2[] = { .priority = 0, .baseTile = 0x000 }, { - .bg = 2, + .bg = BG_SCENE2_GENGAR, .charBaseIndex = 3, .mapBaseIndex = 27, .screenSize = 0, @@ -246,7 +368,7 @@ static const struct BgTemplate sBgTemplates_FightScene2[] = { .priority = 2, .baseTile = 0x000 }, { - .bg = 1, + .bg = BG_SCENE2_NIDORINO, .charBaseIndex = 2, .mapBaseIndex = 28, .screenSize = 0, @@ -256,9 +378,9 @@ static const struct BgTemplate sBgTemplates_FightScene2[] = { } }; -static const struct BgTemplate sBgTemplates_FightScene3[] = { +static const struct BgTemplate sBgTemplates_Scene3[] = { { - .bg = 1, + .bg = BG_SCENE3_BACKGROUND, .charBaseIndex = 0, .mapBaseIndex = 29, .screenSize = 0, @@ -266,7 +388,7 @@ static const struct BgTemplate sBgTemplates_FightScene3[] = { .priority = 1, .baseTile = 0x000 }, { - .bg = 0, + .bg = BG_SCENE3_GENGAR, .charBaseIndex = 1, .mapBaseIndex = 30, .screenSize = 2, @@ -276,79 +398,80 @@ static const struct BgTemplate sBgTemplates_FightScene3[] = { } }; -static const struct WindowTemplate sWindowTemplate[] = { - { - .bg = 2, +static const struct WindowTemplate sWindowTemplates[WIN_COUNT + 1] = { + [WIN_GF_TEXT_LOGO] = { + .bg = BG_GF_TEXT_LOGO, .tilemapLeft = 6, .tilemapTop = 4, .width = 18, .height = 9, .paletteNum = 0xD, .baseBlock = 0x000 - }, DUMMY_WIN_TEMPLATE + }, + [WIN_COUNT] = DUMMY_WIN_TEMPLATE }; -static const u8 sGengarBackSpritePos2UpdateMods[][2] = { - {0x3f, 0x3f}, - {0x00, 0x3f}, - {0x3f, 0x00}, - {0x00, 0x00} +static const u8 sGengarZoomMatrixAnchors[NUM_GENGAR_BACK_SPRITES][2] = { + {63, 63}, + { 0, 63}, + {63, 0}, + { 0, 0} }; static const struct CompressedSpriteSheet sSpriteSheets_GameFreakScene[] = { - {sSpriteTiles_LargeStar, 0x0080, 0}, - {sSpriteTiles_TrailingSparkles, 0x0080, 1}, - {sSpriteTiles_RevealGameFreakTextSparkles, 0x0800, 2}, - {sSpriteTiles_GameFreakLogoArt, 0x0400, 3}, - {sSpriteTiles_PresentsText, 0x0100, 4} + {sStar_Gfx, 0x80, GFXTAG_STAR}, + {sSparklesSmall_Gfx, 0x80, GFXTAG_SPARKLES_SMALL}, + {sSparklesBig_Gfx, 0x800, GFXTAG_SPARKLES_BIG}, + {sGameFreakLogo_Gfx, 0x400, GFXTAG_GF_LOGO}, + {sPresents_Gfx, 0x100, GFXTAG_PRESENTS} }; static const struct SpritePalette sSpritePalettes_GameFreakScene[] = { - {sSpritePals_LargeStar, 0}, - {sSpritePals_Sparkles, 1}, - {sSpritePals_GameFreakPresents, 3}, + {sStar_Pal, PALTAG_STAR}, + {sSparkles_Pal, PALTAG_SPARKLES}, + {sGameFreakLogo_Pal, PALTAG_GF}, {0} }; -static const struct Coords16 sTrailingSparkleCoords[] = { - {0x0048, 0x0050}, - {0x0088, 0x004a}, - {0x00a8, 0x0050}, - {0x0078, 0x0050}, - {0x0068, 0x0056}, - {0x0058, 0x004a}, - {0x00b8, 0x004a}, - {0x0038, 0x0056}, - {0x0098, 0x0056} +static const struct Coords16 sTextSparkleCoords[] = { + { 72, 80}, + {136, 74}, + {168, 80}, + {120, 80}, + {104, 86}, + { 88, 74}, + {184, 74}, + { 56, 86}, + {152, 86} }; -static const struct OamData gOamData_840BC2C = { +static const struct OamData sOam_Star = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, .mosaic = FALSE, .bpp = ST_OAM_4BPP, - .shape = ST_OAM_SQUARE, + .shape = SPRITE_SHAPE(16x16), .matrixNum = 0, - .size = ST_OAM_SIZE_1, + .size = SPRITE_SIZE(16x16), .tileNum = 0x000, .priority = 2, .paletteNum = 0 }; -static const struct OamData gOamData_840BC34 = { +static const struct OamData sOam_SparklesSmall = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, .mosaic = FALSE, .bpp = ST_OAM_4BPP, - .shape = ST_OAM_SQUARE, + .shape = SPRITE_SHAPE(8x8), .matrixNum = 0, - .size = ST_OAM_SIZE_0, + .size = SPRITE_SIZE(8x8), .tileNum = 0x000, .priority = 2, .paletteNum = 0 }; -static const union AnimCmd gAnimCmd_840BC3C[] = { +static const union AnimCmd sAnim_SparklesSmall_Loop[] = { ANIMCMD_FRAME(0, 4), ANIMCMD_FRAME(1, 4), ANIMCMD_FRAME(2, 4), @@ -356,7 +479,7 @@ static const union AnimCmd gAnimCmd_840BC3C[] = { ANIMCMD_JUMP(0) }; -static const union AnimCmd gAnimCmd_840BC50[] = { +static const union AnimCmd sAnim_SparklesSmall_Once[] = { ANIMCMD_FRAME(0, 4), ANIMCMD_FRAME(1, 4), ANIMCMD_FRAME(2, 4), @@ -364,45 +487,45 @@ static const union AnimCmd gAnimCmd_840BC50[] = { ANIMCMD_END }; -static const union AnimCmd *const gAnimCmdTable_840BC64[] = { - gAnimCmd_840BC3C, - gAnimCmd_840BC50 +static const union AnimCmd *const sAnims_SparklesSmall[] = { + [ANIM_SPARKLE_LOOP] = sAnim_SparklesSmall_Loop, + [ANIM_SPARKLE_ONCE] = sAnim_SparklesSmall_Once }; -static const struct SpriteTemplate sSpriteTemplate_LargeStar = { - .tileTag = 0, - .paletteTag = 0, - .oam = &gOamData_840BC2C, +static const struct SpriteTemplate sSpriteTemplate_Star = { + .tileTag = GFXTAG_STAR, + .paletteTag = PALTAG_STAR, + .oam = &sOam_Star, .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCB_LargeStar + .callback = SpriteCB_Star }; -static const struct SpriteTemplate sSpriteTemplate_TrailingSparkles = { - .tileTag = 1, - .paletteTag = 1, - .oam = &gOamData_840BC34, - .anims = gAnimCmdTable_840BC64, +static const struct SpriteTemplate sSpriteTemplate_SparklesSmall = { + .tileTag = GFXTAG_SPARKLES_SMALL, + .paletteTag = PALTAG_SPARKLES, + .oam = &sOam_SparklesSmall, + .anims = sAnims_SparklesSmall, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCB_TrailingSparkles + .callback = SpriteCB_SparklesSmall_Star }; -static const struct OamData gOamData_840BC9C = { +static const struct OamData sOam_SparklesBig = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, .mosaic = FALSE, .bpp = ST_OAM_4BPP, - .shape = ST_OAM_SQUARE, + .shape = SPRITE_SHAPE(32x32), .matrixNum = 0, - .size = ST_OAM_SIZE_2, + .size = SPRITE_SIZE(32x32), .tileNum = 0x000, .priority = 2, .paletteNum = 0 }; -static const union AnimCmd gAnimCmd_840BCA4[] = { +static const union AnimCmd sAnim_SparklesBig[] = { ANIMCMD_FRAME(0, 8), ANIMCMD_FRAME(16, 8), ANIMCMD_FRAME(32, 8), @@ -410,314 +533,314 @@ static const union AnimCmd gAnimCmd_840BCA4[] = { ANIMCMD_END }; -static const union AnimCmd *const gAnimCmdTable_840BCB8[] = { - gAnimCmd_840BCA4 +static const union AnimCmd *const sAnims_SparklesBig[] = { + sAnim_SparklesBig }; -static const struct SpriteTemplate sSpriteTemplate_RevealGameFreakTextSparkles = { - .tileTag = 2, - .paletteTag = 1, - .oam = &gOamData_840BC9C, - .anims = gAnimCmdTable_840BCB8, +static const struct SpriteTemplate sSpriteTemplate_SparklesBig = { + .tileTag = GFXTAG_SPARKLES_BIG, + .paletteTag = PALTAG_SPARKLES, + .oam = &sOam_SparklesBig, + .anims = sAnims_SparklesBig, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCB_RevealGameFreakTextSparkles + .callback = SpriteCB_SparklesBig }; -static const struct OamData gOamData_840BCD4 = { +static const struct OamData sOam_GameFreakLogo = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_BLEND, .mosaic = FALSE, .bpp = ST_OAM_4BPP, - .shape = ST_OAM_V_RECTANGLE, + .shape = SPRITE_SHAPE(32x64), .matrixNum = 0, - .size = ST_OAM_SIZE_3, + .size = SPRITE_SIZE(32x64), .tileNum = 0x000, .priority = 3, .paletteNum = 0 }; static const struct SpriteTemplate sSpriteTemplate_GameFreakLogoArt = { - .tileTag = 3, - .paletteTag = 3, - .oam = &gOamData_840BCD4, + .tileTag = GFXTAG_GF_LOGO, + .paletteTag = PALTAG_GF, + .oam = &sOam_GameFreakLogo, .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct OamData gOamData_840BCF4 = { +static const struct OamData sOam_PresentsText = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_BLEND, .mosaic = FALSE, .bpp = ST_OAM_4BPP, - .shape = ST_OAM_H_RECTANGLE, + .shape = SPRITE_SHAPE(32x8), .matrixNum = 0, - .size = ST_OAM_SIZE_1, + .size = SPRITE_SIZE(32x8), .tileNum = 0x000, .priority = 3, .paletteNum = 0 }; -static const struct SpriteTemplate sSpriteTemplate_PresentsText = { - .tileTag = 4, - .paletteTag = 3, - .oam = &gOamData_840BCF4, +static const struct SpriteTemplate sSpriteTemplate_Presents = { + .tileTag = GFXTAG_PRESENTS, + .paletteTag = PALTAG_GF, + .oam = &sOam_PresentsText, .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct OamData gOamData_840BD14 = { +static const struct OamData sOam_Scene3_Nidorino = { .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_NORMAL, .mosaic = FALSE, .bpp = ST_OAM_4BPP, - .shape = ST_OAM_SQUARE, + .shape = SPRITE_SHAPE(64x64), .matrixNum = 0, - .size = ST_OAM_SIZE_3, + .size = SPRITE_SIZE(64x64), .tileNum = 0x000, .priority = 1, .paletteNum = 0 }; -static const union AnimCmd gAnimCmd_840BD1C[] = { +static const union AnimCmd sAnim_Scene3_Nidorino_Normal[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_END }; -static const union AnimCmd gAnimCmd_840BD24[] = { +static const union AnimCmd sAnim_Scene3_Nidorino_Cry[] = { ANIMCMD_FRAME(64, 1), ANIMCMD_END }; -static const union AnimCmd gAnimCmd_840BD2C[] = { +static const union AnimCmd sAnim_Scene3_Nidorino_Crouch[] = { ANIMCMD_FRAME(128, 1), ANIMCMD_END }; -static const union AnimCmd gAnimCmd_840BD34[] = { +static const union AnimCmd sAnim_Scene3_Nidorino_Hop[] = { ANIMCMD_FRAME(192, 1), ANIMCMD_END }; -static const union AnimCmd gAnimCmd_840BD3C[] = { +static const union AnimCmd sAnim_Scene3_Nidorino_Attack[] = { ANIMCMD_FRAME(256, 1), ANIMCMD_END }; -static const union AnimCmd *const sAnimTable_NidorinoAnim[] = { - gAnimCmd_840BD1C, - gAnimCmd_840BD24, - gAnimCmd_840BD2C, - gAnimCmd_840BD34, - gAnimCmd_840BD3C +static const union AnimCmd *const sAnims_Scene3_Nidorino[] = { + [ANIM_NIDORINO_NORMAL] = sAnim_Scene3_Nidorino_Normal, + [ANIM_NIDORINO_CRY] = sAnim_Scene3_Nidorino_Cry, + [ANIM_NIDORINO_CROUCH] = sAnim_Scene3_Nidorino_Crouch, + [ANIM_NIDORINO_HOP] = sAnim_Scene3_Nidorino_Hop, + [ANIM_NIDORINO_ATTACK] = sAnim_Scene3_Nidorino_Attack }; -static const union AffineAnimCmd gAffineAnimCmd_840BD58[] = { +static const union AffineAnimCmd sAffineAnim_Scene3_Mons_Normal[] = { AFFINEANIMCMD_FRAME(256, 256, 0, 0), AFFINEANIMCMD_END }; -static const union AffineAnimCmd gAffineAnimCmd_840BD68[] = { +static const union AffineAnimCmd sAffineAnim_Scene3_Mons_Zoom[] = { AFFINEANIMCMD_FRAME(256, 256, 0, 0), AFFINEANIMCMD_FRAME(32, 32, 0, 8), AFFINEANIMCMD_END }; -static const union AffineAnimCmd *const sAffineAnimTable_NidorinoAnim[] = { - gAffineAnimCmd_840BD58, - gAffineAnimCmd_840BD68 +static const union AffineAnimCmd *const sAffineAnims_Scene3_Mons[] = { + [AFFINEANIM_NORMAL] = sAffineAnim_Scene3_Mons_Normal, + [AFFINEANIM_ZOOM] = sAffineAnim_Scene3_Mons_Zoom }; -static const struct SpriteTemplate sSpriteTemplate_NidorinoAnim = { - .tileTag = 5, - .paletteTag = 7, - .oam = &gOamData_840BD14, - .anims = sAnimTable_NidorinoAnim, +static const struct SpriteTemplate sSpriteTemplate_Scene3_Nidorino = { + .tileTag = GFXTAG_SCENE3_NIDORINO, + .paletteTag = PALTAG_NIDORINO, + .oam = &sOam_Scene3_Nidorino, + .anims = sAnims_Scene3_Nidorino, .images = NULL, - .affineAnims = sAffineAnimTable_NidorinoAnim, + .affineAnims = sAffineAnims_Scene3_Mons, .callback = SpriteCallbackDummy }; -static const struct OamData gOamData_840BDA0 = { +static const struct OamData sOam_Scene2_Mons = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, .mosaic = FALSE, .bpp = ST_OAM_4BPP, - .shape = ST_OAM_SQUARE, + .shape = SPRITE_SHAPE(64x64), .matrixNum = 0, - .size = ST_OAM_SIZE_3, + .size = SPRITE_SIZE(64x64), .tileNum = 0x000, .priority = 1, .paletteNum = 0 }; -static const struct SpriteTemplate sSpriteTemplate_NidorinoStatic = { - .tileTag = 7, - .paletteTag = 7, - .oam = &gOamData_840BDA0, +static const struct SpriteTemplate sSpriteTemplate_Scene2_Nidorino = { + .tileTag = GFXTAG_SCENE2_NIDORINO, + .paletteTag = PALTAG_NIDORINO, + .oam = &sOam_Scene2_Mons, .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct SpriteTemplate sSpriteTemplate_GengarStatic = { - .tileTag = 6, - .paletteTag = 6, - .oam = &gOamData_840BDA0, +static const struct SpriteTemplate sSpriteTemplate_Scene2_Gengar = { + .tileTag = GFXTAG_SCENE2_GENGAR, + .paletteTag = PALTAG_GENGAR, + .oam = &sOam_Scene2_Mons, .anims = gDummySpriteAnimTable, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct OamData gOamData_840BDD8 = { +static const struct OamData sOam_Grass = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, .mosaic = FALSE, .bpp = ST_OAM_4BPP, - .shape = ST_OAM_H_RECTANGLE, + .shape = SPRITE_SHAPE(64x32), .matrixNum = 0, - .size = ST_OAM_SIZE_3, + .size = SPRITE_SIZE(64x32), .tileNum = 0x000, .priority = 0, .paletteNum = 0 }; -static const union AnimCmd gAnimCmds_840BDE0[] = { +static const union AnimCmd sAnim_Grass_Static[] = { ANIMCMD_FRAME(0, 0), ANIMCMD_END }; -static const union AnimCmd gAnimCmds_840BDE8[] = { +static const union AnimCmd sAnim_Grass_Rustle[] = { ANIMCMD_FRAME(32, 4), ANIMCMD_FRAME(0, 4), ANIMCMD_END }; -static const union AnimCmd *const gAnimCmdTable_840BDF4[] = { - gAnimCmds_840BDE0, - gAnimCmds_840BDE8 +static const union AnimCmd *const sAnims_Grass[] = { + sAnim_Grass_Static, + sAnim_Grass_Rustle // Unused }; static const struct SpriteTemplate sSpriteTemplate_Grass = { - .tileTag = 8, - .paletteTag = 8, - .oam = &gOamData_840BDD8, - .anims = gAnimCmdTable_840BDF4, + .tileTag = GFXTAG_SCENE3_GRASS, + .paletteTag = PALTAG_SCENE3_GRASS, + .oam = &sOam_Grass, + .anims = sAnims_Grass, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy }; -static const struct OamData gOamData_840BE14 = { +static const struct OamData sOam_Scene3_Gengar = { .affineMode = ST_OAM_AFFINE_DOUBLE, .objMode = ST_OAM_OBJ_NORMAL, .mosaic = FALSE, .bpp = ST_OAM_4BPP, - .shape = ST_OAM_SQUARE, + .shape = SPRITE_SHAPE(64x64), .matrixNum = 0, - .size = ST_OAM_SIZE_3, + .size = SPRITE_SIZE(64x64), .tileNum = 0x000, .priority = 1, .paletteNum = 0 }; -static const union AnimCmd gAnimCmd_840BE1C[] = { +static const union AnimCmd sAnim_Scene3_Gengar_TopLeft[] = { ANIMCMD_FRAME(0, 0), ANIMCMD_END }; -static const union AnimCmd gAnimCmd_840BE24[] = { +static const union AnimCmd sAnim_Scene3_Gengar_TopRight[] = { ANIMCMD_FRAME(64, 0), ANIMCMD_END }; -static const union AnimCmd gAnimCmd_840BE2C[] = { +static const union AnimCmd sAnim_Scene3_Gengar_BottomLeft[] = { ANIMCMD_FRAME(96, 0), ANIMCMD_END }; -static const union AnimCmd gAnimCmd_840BE34[] = { +static const union AnimCmd sAnim_Scene3_Gengar_BottomRight[] = { ANIMCMD_FRAME(160, 0), ANIMCMD_END }; -static const union AnimCmd *const gAnimCmdTable_840BE3C[] = { - gAnimCmd_840BE1C, - gAnimCmd_840BE24, - gAnimCmd_840BE2C, - gAnimCmd_840BE34 +static const union AnimCmd *const sAnims_Scene3_Gengar[NUM_GENGAR_BACK_SPRITES] = { + sAnim_Scene3_Gengar_TopLeft, + sAnim_Scene3_Gengar_TopRight, + sAnim_Scene3_Gengar_BottomLeft, + sAnim_Scene3_Gengar_BottomRight }; -static const struct SpriteTemplate sSpriteTemplate_GengarBack = { - .tileTag = 9, - .paletteTag = 6, - .oam = &gOamData_840BE14, - .anims = gAnimCmdTable_840BE3C, +static const struct SpriteTemplate sSpriteTemplate_Scene3_Gengar = { + .tileTag = GFXTAG_SCENE3_GENGAR, + .paletteTag = PALTAG_GENGAR, + .oam = &sOam_Scene3_Gengar, + .anims = sAnims_Scene3_Gengar, .images = NULL, - .affineAnims = sAffineAnimTable_NidorinoAnim, + .affineAnims = sAffineAnims_Scene3_Mons, .callback = SpriteCallbackDummy }; -static const struct OamData gOamData_840BE64 = { +static const struct OamData sOam_Swipe = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, .mosaic = FALSE, .bpp = ST_OAM_4BPP, - .shape = ST_OAM_V_RECTANGLE, + .shape = SPRITE_SHAPE(32x64), .matrixNum = 0, - .size = ST_OAM_SIZE_3, + .size = SPRITE_SIZE(32x64), .tileNum = 0x000, .priority = 1, .paletteNum = 0 }; -static const union AnimCmd gAnimCmd_840BE6C[] = { +static const union AnimCmd sAnim_Swipe_Top[] = { ANIMCMD_FRAME(0, 8), ANIMCMD_FRAME(32, 4), ANIMCMD_END }; -static const union AnimCmd gAnimCmd_840BE78[] = { +static const union AnimCmd sAnim_Swipe_Bottom[] = { ANIMCMD_FRAME(64, 8), ANIMCMD_FRAME(72, 4), ANIMCMD_END }; -static const union AnimCmd *const gAnimCmdTable_840BE84[] = { - gAnimCmd_840BE6C, - gAnimCmd_840BE78 +static const union AnimCmd *const sAnims_Swipe[] = { + [ANIM_SWIPE_TOP] = sAnim_Swipe_Top, + [ANIM_SWIPE_BOTTOM] = sAnim_Swipe_Bottom }; static const struct SpriteTemplate sSpriteTemplate_GengarSwipe = { - .tileTag = 10, - .paletteTag = 10, - .oam = &gOamData_840BE64, - .anims = gAnimCmdTable_840BE84, + .tileTag = GFXTAG_SCENE3_SWIPE, + .paletteTag = PALTAG_SCENE3_SWIPE, + .oam = &sOam_Swipe, + .anims = sAnims_Swipe, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCB_GengarSwipe }; -static const struct OamData gOamData_840BEA4 = { +static const struct OamData sOam_RecoilDust = { .affineMode = ST_OAM_AFFINE_OFF, .objMode = ST_OAM_OBJ_NORMAL, .mosaic = FALSE, .bpp = ST_OAM_4BPP, - .shape = ST_OAM_SQUARE, + .shape = SPRITE_SHAPE(16x16), .matrixNum = 0, - .size = ST_OAM_SIZE_1, + .size = SPRITE_SIZE(16x16), .tileNum = 0x000, .priority = 1, .paletteNum = 0 }; -static const union AnimCmd gAnimCmd_840BEAC[] = { +static const union AnimCmd sAnim_RecoilDust[] = { ANIMCMD_FRAME(0, 10), ANIMCMD_FRAME(4, 10), ANIMCMD_FRAME(8, 10), @@ -725,41 +848,41 @@ static const union AnimCmd gAnimCmd_840BEAC[] = { ANIMCMD_END }; -static const union AnimCmd *const gAnimCmdTable_840BEC0[] = { - gAnimCmd_840BEAC +static const union AnimCmd *const sAnims_RecoilDust[] = { + sAnim_RecoilDust }; static const struct SpriteTemplate sSpriteTemplate_NidorinoRecoilDust = { - .tileTag = 11, - .paletteTag = 11, - .oam = &gOamData_840BEA4, - .anims = gAnimCmdTable_840BEC0, + .tileTag = GFXTAG_SCENE3_RECOIL_DUST, + .paletteTag = PALTAG_SCENE3_RECOIL_DUST, + .oam = &sOam_RecoilDust, + .anims = sAnims_RecoilDust, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCB_NidorinoRecoilDust + .callback = SpriteCB_RecoilDust }; static const struct CompressedSpriteSheet sFightSceneSpriteSheets[] = { - {sSpriteTiles_GengarStatic, 0x0800, 6}, - {sSpriteTiles_NidorinoStatic, 0x0800, 7}, - {sSpriteTiles_NidorinoAnim, 0x2800, 5}, - {sSpriteTiles_Grass, 0x0800, 8}, - {sSpriteTiles_GengarBack, 0x1800, 9}, - {sSpriteTiles_GengarSwipe, 0x0a00, 10}, - {sSpriteTiles_NidorinoRecoilDust, 0x0200, 11} + {sScene2_Gengar_Gfx, 0x800, GFXTAG_SCENE2_GENGAR}, + {sScene2_Nidorino_Gfx, 0x800, GFXTAG_SCENE2_NIDORINO}, + {sScene3_Nidorino_Gfx, 0x2800, GFXTAG_SCENE3_NIDORINO}, + {sScene3_Grass_Gfx, 0x800, GFXTAG_SCENE3_GRASS}, + {sScene3_GengarStatic_Gfx, 0x1800, GFXTAG_SCENE3_GENGAR}, + {sScene3_Swipe_Gfx, 0xA00, GFXTAG_SCENE3_SWIPE}, + {sScene3_RecoilDust_Gfx, 0x200, GFXTAG_SCENE3_RECOIL_DUST} }; // POTENTIAL UB -// This array is passed to LoadSpritePalettes in LoadFightSceneSpriteTilesAndPals. +// This array is passed to LoadSpritePalettes in LoadFightSceneSpriteGraphics. // LoadSpritePalettes uses a {0} entry to signal end of array. // Because such an entry is absent in this case, the function // continues reading into the next .rodata section. static const struct SpritePalette sFightSceneSpritePalettes[] = { - {sSpritePals_Gengar, 6}, - {sSpritePals_Nidorino, 7}, - {sSpritePals_Grass, 8}, - {sSpritePals_GengarSwipe, 10}, - {sSpritePals_NidorinoRecoilDust, 11}, + {sGengar_Pal, PALTAG_GENGAR}, + {sNidorino_Pal, PALTAG_NIDORINO}, + {sScene3_Grass_Pal, PALTAG_SCENE3_GRASS}, + {sScene3_Swipe_Pal, PALTAG_SCENE3_SWIPE}, + {sScene3_RecoilDust_Pal, PALTAG_SCENE3_RECOIL_DUST}, #ifdef BUGFIX {0} #endif @@ -778,19 +901,19 @@ static void CB2_WaitFadeBeforeSetUpIntro(void) SetMainCallback2(CB2_SetUpIntro); } -static void load_copyright_graphics(u16 charBase, u16 screenBase, u16 palOffset) +static void LoadCopyrightGraphics(u16 charBase, u16 screenBase, u16 palOffset) { - LZ77UnCompVram(sCopyrightGraphicsTiles, (void *)BG_VRAM + charBase); - LZ77UnCompVram(sCopyrightGraphicsMap, (void *)BG_VRAM + screenBase); - LoadPalette(sCopyrightGraphicsPal, palOffset, 0x20); + LZ77UnCompVram(sCopyright_Gfx, (void *)BG_VRAM + charBase); + LZ77UnCompVram(sCopyright_Map, (void *)BG_VRAM + screenBase); + LoadPalette(sCopyright_Pal, palOffset, sizeof(sCopyright_Pal)); } -static void SerialCb_CopyrightScreen(void) +static void SerialCB_CopyrightScreen(void) { GameCubeMultiBoot_HandleSerialInterrupt(&sGcmb); } -static bool8 RunCopyrightScreen(void) +static bool8 SetUpCopyrightScreen(void) { switch (gMain.state) { @@ -807,17 +930,17 @@ static bool8 RunCopyrightScreen(void) DmaFill32(3, 0, OAM, OAM_SIZE); DmaFill16(3, 0, PLTT + sizeof(vu16), PLTT_SIZE - sizeof(vu16)); ResetPaletteFade(); - load_copyright_graphics(0 * BG_CHAR_SIZE, 7 * BG_SCREEN_SIZE, 0); + LoadCopyrightGraphics(0 * BG_CHAR_SIZE, 7 * BG_SCREEN_SIZE, 0); ScanlineEffect_Stop(); ResetTasks(); ResetSpriteData(); FreeAllSpritePalettes(); - BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, 0xFFFF); + BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_WHITEALPHA); SetGpuReg(REG_OFFSET_BG0CNT, BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) | BGCNT_16COLOR | BGCNT_SCREENBASE(7)); EnableInterrupts(INTR_FLAG_VBLANK); SetVBlankCallback(VBlankCB_Copyright); SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON); - SetSerialCallback(SerialCb_CopyrightScreen); + SetSerialCallback(SerialCB_CopyrightScreen); GameCubeMultiBoot_Init(&sGcmb); // fallthrough default: @@ -841,11 +964,10 @@ static bool8 RunCopyrightScreen(void) { if (sGcmb.gcmb_field_2 == 2) { - // Gc6e - if (*((u32 *)0x020000AC) == 0x65366347) + if (*(u32 *)(EWRAM_START + 0xAC) == COLOSSEUM_GAME_CODE) { CpuCopy16(gMultiBootProgram_PokemonColosseum_Start, (void *)EWRAM_START, 0x28000); - *((u32 *)0x020000AC) = 0x65366347; + *(u32 *)(EWRAM_START + 0xAC) = COLOSSEUM_GAME_CODE; } GameCubeMultiBoot_ExecuteProgram(&sGcmb); } @@ -866,9 +988,9 @@ static bool8 RunCopyrightScreen(void) return TRUE; } -void c2_copyright_1(void) +void CB2_InitCopyrightScreenAfterBootup(void) { - if (!RunCopyrightScreen()) + if (!SetUpCopyrightScreen()) { ResetMenuAndMonGlobals(); Save_ResetSaveCounters(); @@ -879,9 +1001,9 @@ void c2_copyright_1(void) } } -void CB2_CopyrightScreen(void) +void CB2_InitCopyrightScreenAfterTitleScreen(void) { - RunCopyrightScreen(); + SetUpCopyrightScreen(); } static void CB2_SetUpIntro(void) @@ -905,13 +1027,13 @@ static void CB2_SetUpIntro(void) DmaFill16(3, 0, PLTT, PLTT_SIZE); FillPalette(RGB_BLACK, 0, 0x400); ResetBgsAndClearDma3BusyFlags(FALSE); - InitBgsFromTemplates(0, sBgTemplates_GameFreakScene, NELEMS(sBgTemplates_GameFreakScene)); + InitBgsFromTemplates(0, sBgTemplates_GameFreakScene, ARRAY_COUNT(sBgTemplates_GameFreakScene)); break; case 1: - LoadPalette(sBg3Pal_GameFreakPresents, 0x00, 0x20); - DecompressAndCopyTileDataToVram(3, sBg3Tiles_GameFreakPresents, 0, 0, 0); - DecompressAndCopyTileDataToVram(3, sBg3Map_GameFreakPresents, 0, 0, 1); - LoadPalette(sSpritePals_GameFreakPresents, 0xD0, 0x20); + LoadPalette(sGameFreakBg_Pal, 0x00, sizeof(sGameFreakBg_Pal)); + DecompressAndCopyTileDataToVram(BG_GF_BACKGROUND, sGameFreakBg_Gfx, 0, 0, 0); + DecompressAndCopyTileDataToVram(BG_GF_BACKGROUND, sGameFreakBg_Map, 0, 0, 1); + LoadPalette(sGameFreakLogo_Pal, 0xD0, sizeof(sGameFreakLogo_Pal)); break; case 2: if (!FreeTempTileDataBuffersIfPossible()) @@ -960,7 +1082,7 @@ static void Intro_ResetGpuRegs(void) static void StartIntroSequence(void) { - struct IntroSequenceData * ptr = Alloc(sizeof(struct IntroSequenceData)); + struct IntroSequenceData * ptr = Alloc(sizeof(*ptr)); SetIntroCB(ptr, IntroCB_Init); ptr->taskId = CreateTask(Task_CallIntroCallback, 3); SetWordTaskArg(ptr->taskId, 0, (uintptr_t)ptr); @@ -975,8 +1097,11 @@ static void SetIntroCB(struct IntroSequenceData * ptr, IntroCallback cb) static void Task_CallIntroCallback(u8 taskId) { struct IntroSequenceData * ptr = (void *)GetWordTaskArg(taskId, 0); - if (JOY_NEW(A_BUTTON | START_BUTTON | SELECT_BUTTON) && ptr->callback != IntroCB_CleanUp) - SetIntroCB(ptr, IntroCB_CleanUp); + + // End intro early if player presses A/Start/Select + if (JOY_NEW(A_BUTTON | START_BUTTON | SELECT_BUTTON) && ptr->callback != IntroCB_ExitToTitleScreen) + SetIntroCB(ptr, IntroCB_ExitToTitleScreen); + ptr->callback(ptr); } @@ -985,140 +1110,138 @@ static void IntroCB_Init(struct IntroSequenceData * this) switch (this->state) { case 0: - InitWindows(sWindowTemplate); - LZ77UnCompWram(sBlit_GameFreakText, this->gamefreakTextBitmap); - LZ77UnCompWram(sSpriteTiles_GameFreakLogoArt, this->gamefreakLogoArtSpriteTiles); - FillBgTilemapBufferRect(2, 0x000, 0, 0, 32, 32, 0x11); - FillWindowPixelBuffer(0, PIXEL_FILL(0)); - BlitBitmapToWindow(0, this->gamefreakTextBitmap, 0, 40, 144, 16); - PutWindowTilemap(0); - CopyWindowToVram(0, COPYWIN_FULL); + InitWindows(sWindowTemplates); + LZ77UnCompWram(sGameFreakText_Gfx, this->gameFreakTextGfx); + LZ77UnCompWram(sGameFreakLogo_Gfx, this->gameFreakLogoGfx); + FillBgTilemapBufferRect(BG_GF_TEXT_LOGO, 0x000, 0, 0, 32, 32, 0x11); + FillWindowPixelBuffer(WIN_GF_TEXT_LOGO, PIXEL_FILL(0)); + BlitBitmapToWindow(WIN_GF_TEXT_LOGO, this->gameFreakTextGfx, 0, 40, 144, 16); + PutWindowTilemap(WIN_GF_TEXT_LOGO); + CopyWindowToVram(WIN_GF_TEXT_LOGO, COPYWIN_FULL); this->state++; break; case 1: if (!IsDma3ManagerBusyWithBgCopy()) - SetIntroCB(this, IntroCB_OpenWin1ToTheaterDimensions); + SetIntroCB(this, IntroCB_GF_OpenWindow); break; } } -static void IntroCB_OpenWin1ToTheaterDimensions(struct IntroSequenceData * this) +static void IntroCB_GF_OpenWindow(struct IntroSequenceData * this) { switch (this->state) { case 0: SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN1_ON); - SetGpuReg(REG_OFFSET_WININ, 0x3F00); - SetGpuReg(REG_OFFSET_WINOUT, 0x0000); - SetGpuReg(REG_OFFSET_WIN1H, 0x00F0); - SetGpuReg(REG_OFFSET_WIN1V, 0x0000); - this->data[5] = 0; + SetGpuReg(REG_OFFSET_WININ, WININ_WIN1_ALL); + SetGpuReg(REG_OFFSET_WINOUT, 0); + SetGpuReg(REG_OFFSET_WIN1H, DISPLAY_WIDTH); + SetGpuReg(REG_OFFSET_WIN1V, 0); + this->timer = 0; this->state++; break; case 1: - ShowBg(3); - BlendPalettes(PALETTES_ALL, 0x00, RGB_BLACK); + ShowBg(BG_GF_BACKGROUND); + BlendPalettes(PALETTES_ALL, 0, RGB_BLACK); this->state++; break; case 2: - this->data[5] += 8; - if (this->data[5] >= 0x30) - this->data[5] = 0x30; - SetGpuReg(REG_OFFSET_WIN1V, ((0x50 - this->data[5]) << 8) | (0x50 + this->data[5])); - if (this->data[5] == 0x30) - SetIntroCB(this, IntroCB_GameFreakStar); + // Extend window height in both directions from midpoint until it reaches a narrow "theatric" view + this->timer += 8; + if (this->timer >= 48) + this->timer = 48; + SetGpuReg(REG_OFFSET_WIN1V, WIN_RANGE(DISPLAY_HEIGHT / 2 - this->timer, DISPLAY_HEIGHT / 2 + this->timer)); + if (this->timer == 48) + SetIntroCB(this, IntroCB_GF_Star); break; } } -static void IntroCB_GameFreakStar(struct IntroSequenceData * this) +static void IntroCB_GF_Star(struct IntroSequenceData * this) { switch (this->state) { case 0: PlaySE(MUS_GAME_FREAK); - GameFreakScene_LoadGfxCreateStar(); - this->data[5] = 0; + GFScene_LoadGfxCreateStar(); + this->timer = 0; this->state++; break; case 1: - this->data[5]++; - if (this->data[5] == 30) + if (++this->timer == 30) { - GameFreakScene_StartTrailingSparkleSpawner(); - this->data[5] = 0; + GFScene_StartNameSparklesSmall(); + this->timer = 0; this->state++; } break; case 2: - this->data[5]++; - if (this->data[5] == 90) - SetIntroCB(this, IntroCB_GameFreakScene_RevealGameFreakText); + this->timer++; + if (this->timer == 90) + SetIntroCB(this, IntroCB_GF_RevealName); break; } } -static void IntroCB_GameFreakScene_RevealGameFreakText(struct IntroSequenceData * this) +static void IntroCB_GF_RevealName(struct IntroSequenceData * this) { switch (this->state) { case 0: - GameFreakScene_StartRevealGameFreakTextSparklesSpawner(); - this->data[5] = 0; + GFScene_StartNameSparklesBig(); + this->timer = 0; this->state++; break; case 1: - this->data[5]++; - if (this->data[5] >= 40) + if (++this->timer >= 40) this->state++; break; case 2: - SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG2 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG0 | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_BG2 | BLDCNT_TGT2_BG3 | BLDCNT_TGT2_OBJ | BLDCNT_TGT2_BD); + SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG2 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL); StartBlendTask(0, 16, 16, 0, 48, 0); this->state++; break; case 3: - ShowBg(2); + ShowBg(BG_GF_TEXT_LOGO); this->state++; break; case 4: if (!IsBlendTaskActive()) { SetGpuReg(REG_OFFSET_BLDCNT, 0); - this->data[5] = 0; + this->timer = 0; this->state++; } break; case 5: - this->data[5]++; - if (this->data[5] > 50) - SetIntroCB(this, IntroCB_GameFreakScene_CreateGameFreakLogo); + if (++this->timer > 50) + SetIntroCB(this, IntroCB_GF_RevealLogo); break; } } -static void IntroCB_GameFreakScene_CreateGameFreakLogo(struct IntroSequenceData * this) +static void IntroCB_GF_RevealLogo(struct IntroSequenceData * this) { switch (this->state) { case 0: - SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_OBJ | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG0 | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_BG2 | BLDCNT_TGT2_BG3 | BLDCNT_TGT2_OBJ | BLDCNT_TGT2_BD); + SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_OBJ | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL); StartBlendTask(0, 16, 16, 0, 16, 0); - this->data[0] = 0; - this->data[1] = 16; - this->data[5] = 0; + this->data[0] = 0; // Never read + this->data[1] = 16; // Never read + this->timer = 0; this->state++; break; case 1: - this->gameFreakLogoArtSprite = CreateGameFreakLogoArtSprite(); + this->gameFreakLogoArtSprite = GFScene_CreateLogoSprite(); this->state++; break; case 2: if (!IsBlendTaskActive()) { - BlitBitmapToWindow(0, this->gamefreakLogoArtSpriteTiles, 0x38, 0x06, 0x20, 0x40); - BlitBitmapToWindow(0, this->gamefreakTextBitmap, 0x00, 0x28, 0x90, 0x10); - CopyWindowToVram(0, COPYWIN_GFX); + BlitBitmapToWindow(WIN_GF_TEXT_LOGO, this->gameFreakLogoGfx, 0x38, 0x06, 0x20, 0x40); + BlitBitmapToWindow(WIN_GF_TEXT_LOGO, this->gameFreakTextGfx, 0x00, 0x28, 0x90, 0x10); + CopyWindowToVram(WIN_GF_TEXT_LOGO, COPYWIN_GFX); this->state++; } break; @@ -1126,14 +1249,15 @@ static void IntroCB_GameFreakScene_CreateGameFreakLogo(struct IntroSequenceData if (!IsDma3ManagerBusyWithBgCopy()) { DestroySprite(this->gameFreakLogoArtSprite); - Rev1_GameFreakScene_CreatePresentsText(); - this->data[5] = 0; + #if REVISION >= 1 + GFScene_CreatePresentsSprite(); + #endif + this->timer = 0; this->state++; } break; case 4: - this->data[5]++; - if (this->data[5] > 90) + if (++this->timer > 90) { SetGpuRegBits(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG2); StartBlendTask(16, 0, 0, 16, 20, 0); @@ -1143,63 +1267,62 @@ static void IntroCB_GameFreakScene_CreateGameFreakLogo(struct IntroSequenceData case 5: if (!IsBlendTaskActive()) { - HideBg(2); + HideBg(BG_GF_TEXT_LOGO); this->state++; } break; case 6: ResetSpriteData(); FreeAllSpritePalettes(); - this->data[5] = 0; + this->timer = 0; this->state++; break; case 7: - this->data[5]++; - if (this->data[5] > 20) + if (++this->timer > 20) { SetGpuReg(REG_OFFSET_BLDCNT, 0); - SetIntroCB(this, IntroCB_FightScene); + SetIntroCB(this, IntroCB_Scene1); } break; } } -static void IntroCB_FightScene(struct IntroSequenceData * this) +static void IntroCB_Scene1(struct IntroSequenceData * this) { switch (this->state) { case 0: SetVBlankCallback(NULL); - LoadPalette(sBg0Pal_FightScene1, 0x10, 0x20); - LoadPalette(sBg1Pal_FightScene1, 0x20, 0x20); - BlendPalettes(0x00000006, 0x10, RGB_WHITE); - InitBgsFromTemplates(0, sBgTemplates_FightScene1, NELEMS(sBgTemplates_FightScene1)); - DecompressAndCopyTileDataToVram(1, sBg1Tiles_FightScene1, 0, 0, 0); - DecompressAndCopyTileDataToVram(1, sBg1Map_FightScene1, 0, 0, 1); - ShowBg(1); - HideBg(0); - HideBg(2); - HideBg(3); - LoadFightSceneSpriteTilesAndPals(); + LoadPalette(sScene1_Grass_Pal, 16 * PALSLOT_SCENE1_GRASS, sizeof(sScene1_Grass_Pal)); + LoadPalette(sScene1_Bg_Pal, 16 * PALSLOT_SCENE1_BG, sizeof(sScene1_Bg_Pal)); + BlendPalettes((1 << PALSLOT_SCENE1_GRASS) | (1 << PALSLOT_SCENE1_BG), 16, RGB_WHITE); + InitBgsFromTemplates(0, sBgTemplates_Scene1, ARRAY_COUNT(sBgTemplates_Scene1)); + DecompressAndCopyTileDataToVram(BG_SCENE1_BACKGROUND, sScene1_Bg_Gfx, 0, 0, 0); + DecompressAndCopyTileDataToVram(BG_SCENE1_BACKGROUND, sScene1_Bg_Map, 0, 0, 1); + ShowBg(BG_SCENE1_BACKGROUND); + HideBg(BG_SCENE1_GRASS); + HideBg(BG_SCENE1_UNUSED1); + HideBg(BG_SCENE1_UNUSED2); + LoadFightSceneSpriteGraphics(); SetVBlankCallback(VBlankCB_Intro); this->state++; break; case 1: if (!FreeTempTileDataBuffersIfPossible()) { - DecompressAndCopyTileDataToVram(0, sBg0Tiles_FightScene1, 0, 0, 0); - DecompressAndCopyTileDataToVram(0, sBg0Map_FightScene1, 0, 0, 1); + DecompressAndCopyTileDataToVram(BG_SCENE1_GRASS, sScene1_Grass_Gfx, 0, 0, 0); + DecompressAndCopyTileDataToVram(BG_SCENE1_GRASS, sScene1_Grass_Map, 0, 0, 1); ResetBgPositions(); - ShowBg(1); + ShowBg(BG_SCENE1_BACKGROUND); this->state++; } break; case 2: if (!FreeTempTileDataBuffersIfPossible()) { - ShowBg(0); - CreateTask(Task_FightScene1_GrassyFieldAnim, 0); - BeginNormalPaletteFade(0x00000006, -2, 16, 0, RGB_WHITE); + ShowBg(BG_SCENE1_GRASS); + CreateTask(Scene1_Task_AnimateGrass, 0); + BeginNormalPaletteFade((1 << PALSLOT_SCENE1_GRASS) | (1 << PALSLOT_SCENE1_BG), -2, 16, 0, RGB_WHITE); this->state++; } break; @@ -1207,111 +1330,134 @@ static void IntroCB_FightScene(struct IntroSequenceData * this) if (!gPaletteFade.active) { m4aSongNumStart(MUS_INTRO_FIGHT); - this->data[5] = 0; + this->timer = 0; this->state++; } break; case 4: - this->data[5]++; - if (this->data[5] == 20) + if (++this->timer == 20) { - CreateTask(Task_FightScene1_ZoomEffect, 0); - FightScene1_SignalEndGrassyFieldAnim(); + // Start animation for transitioning to the next scene + CreateTask(Scene1_Task_BgZoom, 0); + Scene1_StartGrassScrolling(); } - if (this->data[5] >= 30) + if (this->timer >= 30) { - BlendPalettes(0xFFFFFFFE, 16, RGB_WHITE); - DestroyTask(FindTaskIdByFunc(Task_FightScene1_GrassyFieldAnim)); - DestroyTask(FindTaskIdByFunc(Task_FightScene1_ZoomEffect)); - SetIntroCB(this, IntroCB_FightScene2); + // End scene + BlendPalettes(PALETTES_ALL & ~1, 16, RGB_WHITE); + DestroyTask(FindTaskIdByFunc(Scene1_Task_AnimateGrass)); + DestroyTask(FindTaskIdByFunc(Scene1_Task_BgZoom)); + SetIntroCB(this, IntroCB_Scene2); } break; case 5: + // Never reached if (!gPaletteFade.active) { - DestroyTask(FindTaskIdByFunc(Task_FightScene1_GrassyFieldAnim)); - DestroyTask(FindTaskIdByFunc(Task_FightScene1_ZoomEffect)); - SetIntroCB(this, IntroCB_FightScene2); + DestroyTask(FindTaskIdByFunc(Scene1_Task_AnimateGrass)); + DestroyTask(FindTaskIdByFunc(Scene1_Task_BgZoom)); + SetIntroCB(this, IntroCB_Scene2); } break; } } -static void Task_FightScene1_GrassyFieldAnim(u8 taskId) +#define tTimer data[0] +#define tFrame data[1] +#define tExiting data[2] +#define tScroll data[3] + +static void Scene1_Task_AnimateGrass(u8 taskId) { s16 * data = gTasks[taskId].data; - data[0]++; - if (data[0] > 5) + // Each of the 3 frames of the bg grass animation is separated vertically on the tilemap. + // The conditional below changes the frame by setting the y coordinate of the bg. + if (++tTimer > 5) { - data[0] = 0; - data[1]++; - if (data[1] > 2) - data[1] = 0; - ChangeBgY(0, data[1] << 15, 0); + tTimer = 0; + if (++tFrame >= 3) + tFrame = 0; + ChangeBgY(BG_SCENE1_GRASS, tFrame << 15, BG_COORD_SET); } - if (data[2]) + + // When it's time to progress to the next scene, the grass is meant to scroll downward offscreen. + // This scrolling is overwritten by the coord change above, and so the grass "stutters" back upward. + // They don't mask the bg, so if it were to continue scrolling offscreen it would reveal the frame above on the tilemap. + if (tExiting) { - data[3] += 0x120; - ChangeBgY(0, data[3], 2); + tScroll += 0x120; + ChangeBgY(BG_SCENE1_GRASS, tScroll, BG_COORD_SUB); } } -static void FightScene1_SignalEndGrassyFieldAnim(void) +static void Scene1_StartGrassScrolling(void) { - u8 taskId = FindTaskIdByFunc(Task_FightScene1_GrassyFieldAnim); - gTasks[taskId].data[2] = TRUE; + u8 taskId = FindTaskIdByFunc(Scene1_Task_AnimateGrass); + gTasks[taskId].tExiting = TRUE; } -static void Task_FightScene1_ZoomEffect(u8 taskId) +#undef tTimer +#undef tFrame +#undef tExiting +#undef tScroll + +#define tTimer data[0] +#define tFrame data[1] + +// Have the silhouetted forest background "zoom in" during the transition to the next scene. +// Same as the grass animation above, this achieved by separating frames vertically on the bg tilemap. +static void Scene1_Task_BgZoom(u8 taskId) { s16 * data = gTasks[taskId].data; - data[0]++; - if (data[0] > 3) + if (++tTimer > 3) { - data[0] = 0; - if (data[1] < 2) - data[1]++; - ChangeBgY(1, data[1] << 15, 0); + tTimer = 0; + if (tFrame < 2) + tFrame++; + ChangeBgY(BG_SCENE1_BACKGROUND, tFrame << 15, BG_COORD_SET); } } -static void IntroCB_FightScene2(struct IntroSequenceData * this) +#undef tTimer +#undef tFrame + +static void IntroCB_Scene2(struct IntroSequenceData * this) { switch (this->state) { case 0: - BlendPalettes(0xFFFFFFFE, 16, RGB_WHITE); - InitBgsFromTemplates(0, sBgTemplates_FightScene2, NELEMS(sBgTemplates_FightScene2)); - DecompressAndCopyTileDataToVram(3, sBg3Tiles_FightScene2, 0, 0, 0); - DecompressAndCopyTileDataToVram(3, sBg3Map_FightScene2, 0, 0, 1); - ShowBg(3); + BlendPalettes(PALETTES_ALL & ~1, 16, RGB_WHITE); + InitBgsFromTemplates(0, sBgTemplates_Scene2, ARRAY_COUNT(sBgTemplates_Scene2)); + DecompressAndCopyTileDataToVram(BG_SCENE2_BACKGROUND, sScene2_Bg_Gfx, 0, 0, 0); + DecompressAndCopyTileDataToVram(BG_SCENE2_BACKGROUND, sScene2_Bg_Map, 0, 0, 1); + ShowBg(BG_SCENE2_BACKGROUND); this->state++; break; case 1: if (!FreeTempTileDataBuffersIfPossible()) { SetVBlankCallback(NULL); - LoadPalette(sBg3Pal_FightScene2, 0x10, 0x60); - LoadPalette(sSpritePals_Gengar, 0x50, 0x20); - LoadPalette(sBg1Pal_FightScene2, 0x60, 0x20); - BlendPalettes(0xFFFFFFFE, 16, RGB_WHITE); - DecompressAndCopyTileDataToVram(0, sBg0Tiles_FightScene2, 0, 0, 0); - DecompressAndCopyTileDataToVram(0, sBg0Map_FightScene2, 0, 0, 1); - DecompressAndCopyTileDataToVram(1, sBg1Tiles_FightScene2, 0, 0, 0); - DecompressAndCopyTileDataToVram(1, sBg1Map_FightScene2, 0, 0, 1); - DecompressAndCopyTileDataToVram(2, sBg2Tiles_FightScene2, 0, 0, 0); - DecompressAndCopyTileDataToVram(2, sBg2Map_FightScene2, 0, 0, 1); + LoadPalette(sScene2_Bg_Pal, 0x10, sizeof(sScene2_Bg_Pal)); + LoadPalette(sGengar_Pal, 0x50, sizeof(sGengar_Pal)); + LoadPalette(sScene2_NidorinoClose_Pal, 0x60, sizeof(sScene2_NidorinoClose_Pal)); + BlendPalettes(PALETTES_ALL & ~1, 16, RGB_WHITE); + DecompressAndCopyTileDataToVram(BG_SCENE2_PLANTS, sScene2_Plants_Gfx, 0, 0, 0); + DecompressAndCopyTileDataToVram(BG_SCENE2_PLANTS, sScene2_Plants_Map, 0, 0, 1); + DecompressAndCopyTileDataToVram(BG_SCENE2_NIDORINO, sScene2_NidorinoClose_Gfx, 0, 0, 0); + DecompressAndCopyTileDataToVram(BG_SCENE2_NIDORINO, sScene2_NidorinoClose_Map, 0, 0, 1); + DecompressAndCopyTileDataToVram(BG_SCENE2_GENGAR, sScene2_GengarClose_Gfx, 0, 0, 0); + DecompressAndCopyTileDataToVram(BG_SCENE2_GENGAR, sScene2_GengarClose_Map, 0, 0, 1); ResetBgPositions(); - ShowBg(0); - HideBg(1); - HideBg(2); - ChangeBgY(2, 0x0001CE00, 0); - ChangeBgY(1, 0x00002800, 0); - CreateTask(Task_FightScene2_CameraHorizPanEffect, 0); - CreateMonStaticSprites(this); - BlendPalettes(0xFFFFFFFE, 16, RGB_WHITE); + ShowBg(BG_SCENE2_PLANTS); + HideBg(BG_SCENE2_NIDORINO); // Hide bgs for the close up shot + HideBg(BG_SCENE2_GENGAR); + ChangeBgY(BG_SCENE2_GENGAR, 0x0001CE00, BG_COORD_SET); + ChangeBgY(BG_SCENE2_NIDORINO, 0x00002800, BG_COORD_SET); + CreateTask(Scene2_Task_PanForest, 0); + Scene2_CreateMonSprites(this); + BlendPalettes(PALETTES_ALL & ~1, 16, RGB_WHITE); SetVBlankCallback(VBlankCB_Intro); this->state++; } @@ -1319,434 +1465,453 @@ static void IntroCB_FightScene2(struct IntroSequenceData * this) case 2: if (!FreeTempTileDataBuffersIfPossible()) { - BeginNormalPaletteFade(0xFFFFFFFE, -2, 16, 0, RGB_WHITE); + BeginNormalPaletteFade(PALETTES_ALL & ~1, -2, 16, 0, RGB_WHITE); this->state++; } break; case 3: if (!gPaletteFade.active) { - this->data[5] = 0; + this->timer = 0; this->state++; } break; case 4: - this->data[5]++; - if (this->data[5] >= 60) + if (++this->timer >= 60) { - this->data[5] = 0; - DestroyTask(FindTaskIdByFunc(Task_FightScene2_CameraHorizPanEffect)); - DestroyStaticMonSprites(this); - CreateTask(Task_FightScene2_CameraVertPanEffect, 0); - ChangeBgY(3, 0x00010000, 0); - HideBg(0); - ShowBg(3); - ShowBg(1); - ShowBg(2); + this->timer = 0; + DestroyTask(FindTaskIdByFunc(Scene2_Task_PanForest)); + Scene2_DestroyMonSprites(this); + CreateTask(Scene2_Task_PanMons, 0); + ChangeBgY(BG_SCENE2_BACKGROUND, 0x00010000, BG_COORD_SET); // Move background from upper half (wide shot) to lower half (close up) + HideBg(BG_SCENE2_PLANTS); + ShowBg(BG_SCENE2_BACKGROUND); + ShowBg(BG_SCENE2_NIDORINO); + ShowBg(BG_SCENE2_GENGAR); this->state++; } break; case 5: if (!IsDma3ManagerBusyWithBgCopy()) { - this->data[5] = 0; + this->timer = 0; this->state++; } break; case 6: - this->data[5]++; - if (this->data[5] >= 60) + if (++this->timer >= 60) { - DestroyTask(FindTaskIdByFunc(Task_FightScene2_CameraVertPanEffect)); - SetIntroCB(this, IntroCB_FightScene3); + DestroyTask(FindTaskIdByFunc(Scene2_Task_PanMons)); + SetIntroCB(this, IntroCB_Scene3_Entrance); } break; } } -static void Task_FightScene2_CameraHorizPanEffect(u8 taskId) +// Pan the background trees right and the foreground plants left in the wide shot +static void Scene2_Task_PanForest(u8 taskId) { - ChangeBgX(3, 0x0E0, 2); - ChangeBgX(0, 0x110, 1); + ChangeBgX(BG_SCENE2_BACKGROUND, 0x0E0, BG_COORD_SUB); + ChangeBgX(BG_SCENE2_PLANTS, 0x110, BG_COORD_ADD); } -static void Task_FightScene2_CameraVertPanEffect(u8 taskId) +// Pan Gengar up and Nidorino down in the close up shot +static void Scene2_Task_PanMons(u8 taskId) { - ChangeBgY(2, 0x020, 1); - ChangeBgY(1, 0x024, 2); + ChangeBgY(BG_SCENE2_GENGAR, 0x020, BG_COORD_ADD); + ChangeBgY(BG_SCENE2_NIDORINO, 0x024, BG_COORD_SUB); } -static void CreateMonStaticSprites(struct IntroSequenceData * this) +// Create the Gengar/Nidorino sprites for the wide shot in scene 2 +static void Scene2_CreateMonSprites(struct IntroSequenceData * this) { u8 spriteId; - this->gengarStaticSprite = NULL; - this->nidorinoStaticSprite = NULL; + this->scene2GengarSprite = NULL; + this->scene2NidorinoSprite = NULL; - spriteId = CreateSprite(&sSpriteTemplate_NidorinoStatic, 168, 80, 11); + spriteId = CreateSprite(&sSpriteTemplate_Scene2_Nidorino, 168, 80, 11); if (spriteId != MAX_SPRITES) - this->nidorinoStaticSprite = &gSprites[spriteId]; + this->scene2NidorinoSprite = &gSprites[spriteId]; - spriteId = CreateSprite(&sSpriteTemplate_GengarStatic, 72, 80, 12); + spriteId = CreateSprite(&sSpriteTemplate_Scene2_Gengar, 72, 80, 12); if (spriteId != MAX_SPRITES) - this->gengarStaticSprite = &gSprites[spriteId]; + this->scene2GengarSprite = &gSprites[spriteId]; } -static void DestroyStaticMonSprites(struct IntroSequenceData * this) +static void Scene2_DestroyMonSprites(struct IntroSequenceData * this) { - if (this->gengarStaticSprite != NULL) - DestroySprite(this->gengarStaticSprite); - if (this->nidorinoStaticSprite != NULL) - DestroySprite(this->nidorinoStaticSprite); + if (this->scene2GengarSprite != NULL) + DestroySprite(this->scene2GengarSprite); + if (this->scene2NidorinoSprite != NULL) + DestroySprite(this->scene2NidorinoSprite); } -static void IntroCB_FightScene3(struct IntroSequenceData * this) +// Set up the scene 3 graphics, then start the scrolling to get Gengar and Nidorino in their fight positions +static void IntroCB_Scene3_Entrance(struct IntroSequenceData * this) { switch (this->state) { case 0: - LoadPalette(sBg1Pal_FightScene3, 0x10, 0x40); - LoadPalette(sSpritePals_Gengar, 0x50, 0x20); - BlendPalettes(0xFFFFFFFE, 16, RGB_WHITE); - InitBgsFromTemplates(0, sBgTemplates_FightScene3, NELEMS(sBgTemplates_FightScene3)); - DecompressAndCopyTileDataToVram(1, sBg1Tiles_FightScene3, 0, 0, 0); - DecompressAndCopyTileDataToVram(1, sBg1Map_FightScene3, 0, 0, 1); - ShowBg(1); - HideBg(0); - HideBg(2); - HideBg(3); + LoadPalette(sScene3_Bg_Pal, 0x10, sizeof(sScene3_Bg_Pal)); + LoadPalette(sGengar_Pal, 0x50, sizeof(sGengar_Pal)); + BlendPalettes(PALETTES_ALL & ~1, 16, RGB_WHITE); + InitBgsFromTemplates(0, sBgTemplates_Scene3, ARRAY_COUNT(sBgTemplates_Scene3)); + DecompressAndCopyTileDataToVram(BG_SCENE3_BACKGROUND, sScene3_Bg_Gfx, 0, 0, 0); + DecompressAndCopyTileDataToVram(BG_SCENE3_BACKGROUND, sScene3_Bg_Map, 0, 0, 1); + ShowBg(BG_SCENE3_BACKGROUND); + HideBg(BG_SCENE3_GENGAR); + HideBg(BG_SCENE3_UNUSED1); + HideBg(BG_SCENE3_UNUSED2); ResetBgPositions(); this->state++; SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); - SetGpuRegBits(REG_OFFSET_WININ, 0x12); - ClearGpuRegBits(REG_OFFSET_WININ, 0x01); - SetGpuRegBits(REG_OFFSET_WINOUT, 0x00); - SetGpuReg(REG_OFFSET_WIN0V, 0x2080); - SetGpuReg(REG_OFFSET_WIN0H, 0x0078); + SetGpuRegBits(REG_OFFSET_WININ, WININ_WIN0_BG1 | WININ_WIN0_OBJ); + ClearGpuRegBits(REG_OFFSET_WININ, WININ_WIN0_BG0); + SetGpuRegBits(REG_OFFSET_WINOUT, 0); + SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(32, DISPLAY_HEIGHT - 32)); + SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(0, DISPLAY_WIDTH / 2)); break; case 1: if (!FreeTempTileDataBuffersIfPossible()) { - DecompressAndCopyTileDataToVram(0, sBg0Tiles_FightScene3, 0, 0, 0); - DecompressAndCopyTileDataToVram(0, sBg0Map_FightScene3, 0, 0, 1); - gUnknown_203AB00 = 4; - gUnknown_203AB02 = 52; - ChangeBgX(0, 0x00001800, 0); - ChangeBgY(0, 0x0001F000, 0); + DecompressAndCopyTileDataToVram(BG_SCENE3_GENGAR, sScene3_GengarAnim_Gfx, 0, 0, 0); + DecompressAndCopyTileDataToVram(BG_SCENE3_GENGAR, sScene3_GengarAnim_Map, 0, 0, 1); + sUnusedScene3Var0 = 4; + sUnusedScene3Var1 = 52; + ChangeBgX(BG_SCENE3_GENGAR, 0x00001800, BG_COORD_SET); + ChangeBgY(BG_SCENE3_GENGAR, 0x0001F000, BG_COORD_SET); this->state++; } break; case 2: if (!FreeTempTileDataBuffersIfPossible()) { - BlendPalettes(0xFFFFFFFE, 0, RGB_WHITE); - ShowBg(0); - CreateTask(Task_FightScene3_ForestBgScroll, 0); - CreateNidorinoAnimSprite(this); - StartNidorinoAnimSpriteSlideIn(this->nidorinoAnimSprite, 0, 0xB4, 0x34); - CreateTask(Task_FightScene3_Bg0Scroll, 0); - FightScene3_StartBg1Scroll(); - this->data[5] = 0; + BlendPalettes(PALETTES_ALL & ~1, 0, RGB_WHITE); + ShowBg(BG_SCENE3_GENGAR); + CreateTask(Scene3_Task_GengarBounce, 0); + Scene3_CreateNidorinoSprite(this); + Scene3_StartNidorinoEntrance(this->scene3NidorinoSprite, 0, 180, 52); + CreateTask(Scene3_Task_GengarEnter, 0); + Scene3_StartBgScroll(); + this->timer = 0; this->state++; } break; case 3: - this->data[5]++; - if (this->data[5] == 16) - CreateGrassSprite(this); - if (!IsNidorinoAnimSpriteSlideInRunning(this) && !FuncIsActiveTask(Task_FightScene3_Bg0Scroll)) - SetIntroCB(this, IntroCB_FightScene4); + if (++this->timer == 16) + Scene3_CreateGrassSprite(this); + if (!Scene3_IsNidorinoEntering(this) && !FuncIsActiveTask(Scene3_Task_GengarEnter)) + SetIntroCB(this, IntroCB_Scene3_Fight); break; } } -static void Task_FightScene3_Bg1Scroll(u8 taskId) +#define tSlow data[0] + +// Pan the background trees right during the fight scene. +// It pans quickly while Gengar/Nidorino are sliding onscreen, and it pans slowly thereafter. +static void Scene3_Task_BgScroll(u8 taskId) { - if (gTasks[taskId].data[0] == 0) - ChangeBgX(1, 0x400, 2); + if (!gTasks[taskId].tSlow) + ChangeBgX(BG_SCENE3_BACKGROUND, 0x400, BG_COORD_SUB); else - ChangeBgX(1, 0x020, 2); + ChangeBgX(BG_SCENE3_BACKGROUND, 0x020, BG_COORD_SUB); } -static void FightScene3_StartBg1Scroll(void) +static void Scene3_StartBgScroll(void) { - CreateTask(Task_FightScene3_Bg1Scroll, 0); + CreateTask(Scene3_Task_BgScroll, 0); } -static void FightScene3_SlowBg1Scroll(void) +static void Scene3_SlowBgScroll(void) { - u8 taskId = FindTaskIdByFunc(Task_FightScene3_Bg1Scroll); - gTasks[taskId].data[0] = 1; + u8 taskId = FindTaskIdByFunc(Scene3_Task_BgScroll); + gTasks[taskId].tSlow = TRUE; } -static void Task_FightScene3_ForestBgScroll(u8 taskId) +#undef tSlow + +#define tPaused data[0] +#define tTimer data[1] +#define tState data[2] + +// Gengar has an "idle" animation where it bounces a little +static void Scene3_Task_GengarBounce(u8 taskId) { s16 * data = gTasks[taskId].data; - if (data[0] == 0) + if (!tPaused) { - data[1]++; - if (data[1] >= 30) + if (++tTimer >= 30) { - data[1] = 0; - data[2] ^= 1; - ChangeBgY(0, (data[2] << 15) + 0x1F000, 0); + tTimer = 0; + tState ^= 1; // Alternate between the 0th (normal) and 1st (slightly crouched) bg frames + ChangeBgY(BG_SCENE3_GENGAR, (tState << 15) + 0x1F000, BG_COORD_SET); } } } -static void FightScene3_PauseForestBgScroll(void) +static void Scene3_PauseGengarBounce(void) { - u8 taskId = FindTaskIdByFunc(Task_FightScene3_ForestBgScroll); - gTasks[taskId].data[0] = 1; + u8 taskId = FindTaskIdByFunc(Scene3_Task_GengarBounce); + gTasks[taskId].tPaused = TRUE; } -static void FightScene3_ResumeForestBgScroll(void) +static void Scene3_ResumeGengarBounce(void) { - u8 taskId = FindTaskIdByFunc(Task_FightScene3_ForestBgScroll); - gTasks[taskId].data[0] = 0; + u8 taskId = FindTaskIdByFunc(Scene3_Task_GengarBounce); + gTasks[taskId].tPaused = FALSE; } -static bool8 FightScene3_GetForestBgScrollState(void) +static bool8 Scene3_IsGengarMidBounce(void) { - u8 taskId = FindTaskIdByFunc(Task_FightScene3_ForestBgScroll); - return gTasks[taskId].data[2]; + u8 taskId = FindTaskIdByFunc(Scene3_Task_GengarBounce); + return gTasks[taskId].tState; } -static void CreateGrassSprite(struct IntroSequenceData * this) +#undef tPaused +#undef tTimer +#undef tState + +// The small clump of grass that passes by in the foreground during the fight +static void Scene3_CreateGrassSprite(struct IntroSequenceData * this) { u8 spriteId = CreateSprite(&sSpriteTemplate_Grass, 296, 112, 7); if (spriteId != MAX_SPRITES) { - this->grassSprite = &gSprites[spriteId]; - this->grassSprite->callback = SpriteCB_Grass; + this->scene3GrassSprite = &gSprites[spriteId]; + this->scene3GrassSprite->callback = SpriteCB_Grass; } else - this->grassSprite = NULL; + this->scene3GrassSprite = NULL; } +#define sState data[0] +#define sBaseX data[1] +#define sVeloc data[2] + static void SpriteCB_Grass(struct Sprite *sprite) { s16 * data = sprite->data; - switch (data[0]) + switch (sState) { case 0: - data[1] = sprite->x << 5; - data[2] = 160; - data[0]++; + sBaseX = sprite->x << 5; + sVeloc = 160; + sState++; // fallthrough case 1: - data[1] -= data[2]; - sprite->x = data[1] >> 5; + sBaseX -= sVeloc; + sprite->x = sBaseX >> 5; if (sprite->x <= 52) { - FightScene3_SlowBg1Scroll(); - data[0]++; + Scene3_SlowBgScroll(); + sState++; } break; case 2: - data[1] -= 32; - sprite->x = data[1] >> 5; + sBaseX -= 32; + sprite->x = sBaseX >> 5; if (sprite->x <= -32) { sprite->invisible = TRUE; - sprite->data[0]++; + sprite->sState++; DestroySprite(sprite); } break; } } -static void IntroCB_FightScene4(struct IntroSequenceData * this) +#undef sState +#undef sBaseX +#undef sVeloc + +static void IntroCB_Scene3_Fight(struct IntroSequenceData * this) { switch (this->state) { case 0: - this->data[5] = 0; + this->timer = 0; this->state++; break; case 1: - this->data[5]++; - if (this->data[5] > 30) + if (++this->timer > 30) { - FightScene4_NidorinoRearsUp(this); + Scene3_StartNidorinoCry(this); this->state++; } break; case 2: - if (!FightScene4_NidorinoAnimIsRunning(this)) + if (!Scene3_NidorinoAnimIsRunning(this)) { - this->data[5] = 0; + this->timer = 0; this->state++; } break; case 3: - this->data[5]++; - if (this->data[5] > 30) + if (++this->timer > 30) { - FightScene3_PauseForestBgScroll(); - FightScene4_StartGengarAttack(this); - this->data[5] = 0; + Scene3_PauseGengarBounce(); + Scene3_StartGengarAttack(this); + this->timer = 0; this->state++; } break; case 4: if (this->gengarAttackLanded) { - FightScene4_StartNidorinoRecoilAnim(this); + Scene3_StartNidorinoRecoil(this); this->state++; } break; case 5: - if (!FightScene4_NidorinoAnimIsRunning(this)) + if (!Scene3_NidorinoAnimIsRunning(this)) { - FightScene3_ResumeForestBgScroll(); - this->data[5] = 0; + Scene3_ResumeGengarBounce(); + this->timer = 0; this->state++; } break; case 6: - this->data[5]++; - if (this->data[5] > 16) + if (++this->timer > 16) { - StartSpriteHopToPosAnim(this->nidorinoAnimSprite, 8, 12, 5); + // Nidorino's 1st hop backwards in preparation to attack + Scene3_StartNidorinoHop(this->scene3NidorinoSprite, 8, 12, 5); this->state++; } break; case 7: - if (!FightScene4_NidorinoAnimIsRunning(this)) + if (!Scene3_NidorinoAnimIsRunning(this)) { - StartSpriteHopToPosAnim(this->nidorinoAnimSprite, 8, 12, 5); + // Nidorino's 2nd hop backwards in preparation to attack + Scene3_StartNidorinoHop(this->scene3NidorinoSprite, 8, 12, 5); this->state++; } break; case 8: - if (!FightScene4_NidorinoAnimIsRunning(this)) + if (!Scene3_NidorinoAnimIsRunning(this)) { - this->data[5] = 0; + this->timer = 0; this->state++; } break; case 9: - this->data[5]++; - if (this->data[5] > 20) + if (++this->timer > 20) { - StartNidorinoAnim_LaunchSelfAtGengarAnim(this); - this->data[5] = 0; + Scene3_StartNidorinoAttack(this); + this->timer = 0; this->state++; } break; case 10: - if (!FightScene3_GetForestBgScrollState()) + if (!Scene3_IsGengarMidBounce()) { - FightScene3_PauseForestBgScroll(); - CreateGengarBackSprite(this); + Scene3_PauseGengarBounce(); + Scene3_CreateGengarSprite(this); this->state++; } break; case 11: - HideBg(0); - this->data[5] = 0; + HideBg(BG_SCENE3_GENGAR); + this->timer = 0; this->state++; break; case 12: - this->data[5]++; - if (this->data[5] == 48) - BeginNormalPaletteFade(0x00000006, 2, 0, 16, RGB_WHITE); - if (this->data[5] > 120) + if (++this->timer == 48) + BeginNormalPaletteFade((1 << 1) | (1 << 2), 2, 0, 16, RGB_WHITE); + if (this->timer > 120) { - FightScene4_StartNidorinoAffineAnim(this); - FightScene4_StartGengarAffineAnim(this); + Scene3_NidorinoZoom(this); + Scene3_GengarZoom(this); this->state++; - this->data[5] = 0; + this->timer = 0; } break; case 13: - this->data[5]++; - if (this->data[5] > 8) + if (++this->timer > 8) { CpuFill16(RGB_WHITE, gPlttBufferUnfaded + 16, 64); - BeginNormalPaletteFade(0xFFFFFFFE, -2, 0, 16, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL & ~1, -2, 0, 16, RGB_BLACK); this->state++; } break; case 14: if (!gPaletteFade.active) { - this->data[5] = 0; + this->timer = 0; this->state++; } break; case 15: - this->data[5]++; - if (this->data[5] > 60) - SetIntroCB(this, IntroCB_CleanUp); + if (++this->timer > 60) + SetIntroCB(this, IntroCB_ExitToTitleScreen); break; default: if (JOY_NEW(R_BUTTON)) { - BlendPalettes(0xFFFF0064, 0, RGB_WHITE); - this->nidorinoAnimSprite->x2 = 0; - this->nidorinoAnimSprite->x = 0xB4; + BlendPalettes(PALETTES_OBJECTS | (1 << 2) | (1 << 5) | (1 << 6), 0, RGB_WHITE); + this->scene3NidorinoSprite->x2 = 0; + this->scene3NidorinoSprite->x = 180; this->state = 1; - this->data[5] = 30; + this->timer = 30; } break; } } -static void FightScene_CalcCenterToCornerVec(struct Sprite *sprite) +static void Scene3_CalcCenterToCornerVec(struct Sprite *sprite) { CalcCenterToCornerVec(sprite, sprite->oam.shape, sprite->oam.size, sprite->oam.affineMode); } -static void CreateGengarBackSprite(struct IntroSequenceData * this) +static void Scene3_CreateGengarSprite(struct IntroSequenceData * this) { int i; // Not using a subsprite table for this - for (i = 0; i < 4; i++) + for (i = 0; i < NUM_GENGAR_BACK_SPRITES; i++) { int x = (i & 1) * 48 + 49; int y = (i / 2) * 64 + 72; - u8 spriteId = CreateSprite(&sSpriteTemplate_GengarBack, x, y, 8); + u8 spriteId = CreateSprite(&sSpriteTemplate_Scene3_Gengar, x, y, 8); if (spriteId != MAX_SPRITES) { StartSpriteAnim(&gSprites[spriteId], i); - this->gengarBackSpriteArray[i] = &gSprites[spriteId]; + this->scene3GengarSprites[i] = &gSprites[spriteId]; if (i & 1) - this->gengarBackSpriteArray[i]->oam.shape = ST_OAM_V_RECTANGLE; - FightScene_CalcCenterToCornerVec(this->gengarBackSpriteArray[i]); + this->scene3GengarSprites[i]->oam.shape = ST_OAM_V_RECTANGLE; + Scene3_CalcCenterToCornerVec(this->scene3GengarSprites[i]); } } } -static void FightScene4_StartNidorinoAffineAnim(struct IntroSequenceData * this) +static void Scene3_NidorinoZoom(struct IntroSequenceData * this) { - this->nidorinoAnimSprite->x += this->nidorinoAnimSprite->x2; - this->nidorinoAnimSprite->y += this->nidorinoAnimSprite->y2; - obj_pos2_update_enable(this->nidorinoAnimSprite, 0, 0x2A); - this->nidorinoAnimSprite->callback = SpriteCallbackDummy; - StartSpriteAffineAnim(this->nidorinoAnimSprite, 1); + this->scene3NidorinoSprite->x += this->scene3NidorinoSprite->x2; + this->scene3NidorinoSprite->y += this->scene3NidorinoSprite->y2; + SetSpriteMatrixAnchor(this->scene3NidorinoSprite, 0, 42); + this->scene3NidorinoSprite->callback = SpriteCallbackDummy; + StartSpriteAffineAnim(this->scene3NidorinoSprite, AFFINEANIM_ZOOM); } -static void SpriteCB_DummyButNotDummy(struct Sprite *sprite) +static void SpriteCB_Idle(struct Sprite *sprite) { } -static void FightScene4_StartGengarAffineAnim(struct IntroSequenceData * this) +static void Scene3_GengarZoom(struct IntroSequenceData * this) { int i; - for (i = 0; i < 4; i++) + for (i = 0; i < NUM_GENGAR_BACK_SPRITES; i++) { - StartSpriteAffineAnim(this->gengarBackSpriteArray[i], 1); - this->gengarBackSpriteArray[i]->callback = SpriteCB_DummyButNotDummy; - obj_pos2_update_enable(this->gengarBackSpriteArray[i], sGengarBackSpritePos2UpdateMods[i][0], sGengarBackSpritePos2UpdateMods[i][1]); + StartSpriteAffineAnim(this->scene3GengarSprites[i], AFFINEANIM_ZOOM); + this->scene3GengarSprites[i]->callback = SpriteCB_Idle; + SetSpriteMatrixAnchor(this->scene3GengarSprites[i], sGengarZoomMatrixAnchors[i][0], sGengarZoomMatrixAnchors[i][1]); } } -static void IntroCB_CleanUp(struct IntroSequenceData * this) +static void IntroCB_ExitToTitleScreen(struct IntroSequenceData * this) { switch (this->state) { @@ -1767,348 +1932,409 @@ static void IntroCB_CleanUp(struct IntroSequenceData * this) } } -static void GameFreakScene_LoadGfxCreateStar(void) +// Sprite data for SpriteCB_Star +#define sStar_BaseX data[0] +#define sStar_BaseY data[1] +#define sStar_SpeedX data[2] +#define sStar_SpeedY data[3] +#define sStar_SinIdx data[4] +#define sStar_SparkleTimer data[5] +#define sStar_SparkleRngSeed data[6] + +static void GFScene_LoadGfxCreateStar(void) { int i; u8 spriteId; - static EWRAM_DATA u32 sTrailingSparklesRngSeed = 0; + static EWRAM_DATA u32 sStarSparklesRngSeed = 0; - for (i = 0; i < NELEMS(sSpriteSheets_GameFreakScene); i++) - { + for (i = 0; i < ARRAY_COUNT(sSpriteSheets_GameFreakScene); i++) LoadCompressedSpriteSheet(&sSpriteSheets_GameFreakScene[i]); - } LoadSpritePalettes(sSpritePalettes_GameFreakScene); - sLargeStarXSpeed = 0x60; - sLargeStarYSpeed = 0x10; - sTrailingSparklesXmodMask = 0x07; - sUnusedVarRelatedToGameFreakStars = 5; - sTrailingSparklesSpawnRate = 8; - sTrailingSparklesFlickerStartTime = 90; - sTrailingSparklesDestroySpriteTime = 120; - sTrailingSparklesXspeed = 1; - sTrailingSparklesYspeed = 1; - sTrailingSparklesXprecision = 5; - sTrailingSparklesYprecision = 5; - if (sTrailingSparklesRngSeed == 0) - sTrailingSparklesRngSeed = 354128453; - spriteId = CreateSprite(&sSpriteTemplate_LargeStar, 0xF8, 0x37, 0); + sStarSpeedX = 96; + sStarSpeedY = 16; + sStarSparklesXmodMask = 0x07; + sStarSparklesUnusedVar = 5; + sStarSparklesSpawnRate = 8; + sStarSparklesFlickerStartTime = 90; + sStarSparklesDestroySpriteTime = 120; + sStarSparklesXspeed = 1; + sStarSparklesYspeed = 1; + sStarSparklesXprecision = 5; + sStarSparklesYprecision = 5; + if (sStarSparklesRngSeed == 0) + sStarSparklesRngSeed = 354128453; + spriteId = CreateSprite(&sSpriteTemplate_Star, 248, 55, 0); if (spriteId != MAX_SPRITES) { - gSprites[spriteId].data[0] = 0xF80; - gSprites[spriteId].data[1] = 0x370; - gSprites[spriteId].data[2] = sLargeStarXSpeed; - gSprites[spriteId].data[3] = sLargeStarYSpeed; - StoreWordInTwoHalfwords((u16 *)&gSprites[spriteId].data[6], sTrailingSparklesRngSeed); + gSprites[spriteId].sStar_BaseX = 248 << 4; + gSprites[spriteId].sStar_BaseY = 55 << 4; + gSprites[spriteId].sStar_SpeedX = sStarSpeedX; + gSprites[spriteId].sStar_SpeedY = sStarSpeedY; + StoreWordInTwoHalfwords((u16 *)&gSprites[spriteId].sStar_SparkleRngSeed, sStarSparklesRngSeed); } } -static void GameFreakScene_TrailingSparklesGen(s16 x, s16 y, u16 a2) +// Sprite data for SpriteCB_SparklesSmall_Star +#define sSmSparkleStar_BaseX data[0] +#define sSmSparkleStar_BaseY data[1] +#define sSmSparkleStar_SpeedX data[2] +#define sSmSparkleStar_SpeedY data[3] +#define sSmSparkleStar_FallSpeed data[4] +#define sSmSparkleStar_FallDist data[5] +#define sSmSparkleStar_Timer data[7] + +static void GFScene_CreateStarSparkle(s16 x, s16 y, u16 random) { static EWRAM_DATA s16 sYmod = 0; u8 spriteId; - s16 xMod = (a2 & sTrailingSparklesXmodMask) + 2; + s16 xMod = (random & sStarSparklesXmodMask) + 2; s16 yMod = sYmod; - sYmod++; - if (sYmod > 3) + if (++sYmod > 3) sYmod = -3; x += xMod; y += yMod; - if (x >= 1 && x <= 0xEF) + if (x > 0 && x < DISPLAY_WIDTH) { - spriteId = CreateSprite(&sSpriteTemplate_TrailingSparkles, x, y, 1); + spriteId = CreateSprite(&sSpriteTemplate_SparklesSmall, x, y, 1); if (spriteId != MAX_SPRITES) { - gSprites[spriteId].data[0] = x << sTrailingSparklesXprecision; - gSprites[spriteId].data[1] = y << sTrailingSparklesYprecision; - gSprites[spriteId].data[2] = sTrailingSparklesXspeed * xMod; - gSprites[spriteId].data[3] = sTrailingSparklesYspeed * yMod; + gSprites[spriteId].sSmSparkleStar_BaseX = x << sStarSparklesXprecision; + gSprites[spriteId].sSmSparkleStar_BaseY = y << sStarSparklesYprecision; + gSprites[spriteId].sSmSparkleStar_SpeedX = sStarSparklesXspeed * xMod; + gSprites[spriteId].sSmSparkleStar_SpeedY = sStarSparklesYspeed * yMod; } } } -static void GameFreakScene_StartTrailingSparkleSpawner(void) +#define tSparkleIdx data[0] +#define tNumLoops data[1] +#define tTimer data[2] + +static void GFScene_StartNameSparklesSmall(void) { - CreateTask(Task_GameFreakScene_TrailingSparkleSpawner, 1); + CreateTask(GFScene_Task_NameSparklesSmall, 1); } -static void Task_GameFreakScene_TrailingSparkleSpawner(u8 taskId) +// Sprite data for SpriteCB_SparklesSmall_Name +#define sSmSparkleName_State data[0] +#define sSmSparkleName_BaseY data[1] +#define sSmSparkleName_AnimTimer data[2] +#define sSmSparkleName_NumLoops data[3] +#define sSmSparkleName_DestroyTimer data[4] + +static void GFScene_Task_NameSparklesSmall(u8 taskId) { s16 * data = gTasks[taskId].data; - u8 r6; + u8 i; u8 spriteId; - data[2]++, data[3]++; - if (data[2] > 6) + tTimer++; + data[3]++; // Unused + if (tTimer > 6) { - data[2] = 0; - r6 = data[0]; - spriteId = CreateSprite(&sSpriteTemplate_TrailingSparkles, sTrailingSparkleCoords[r6].x, sTrailingSparkleCoords[r6].y, 2); - StartSpriteAnim(&gSprites[spriteId], 1); - gSprites[spriteId].callback = SpriteCB_TrailingSparkles2; - gSprites[spriteId].data[1] = sTrailingSparkleCoords[r6].y << 4; - gSprites[spriteId].data[2] = 120; - gSprites[spriteId].data[3] = data[1]; - if (gSprites[spriteId].data[3] < 0) - gSprites[spriteId].data[3] = 1; - data[0]++; - if (data[0] >= NELEMS(sTrailingSparkleCoords)) + tTimer = 0; + i = tSparkleIdx; + spriteId = CreateSprite(&sSpriteTemplate_SparklesSmall, sTextSparkleCoords[i].x, sTextSparkleCoords[i].y, 2); + StartSpriteAnim(&gSprites[spriteId], ANIM_SPARKLE_ONCE); + gSprites[spriteId].callback = SpriteCB_SparklesSmall_Name; + gSprites[spriteId].sSmSparkleName_BaseY = sTextSparkleCoords[i].y << 4; + gSprites[spriteId].sSmSparkleName_AnimTimer = 120; + gSprites[spriteId].sSmSparkleName_NumLoops = tNumLoops; + if (gSprites[spriteId].sSmSparkleName_NumLoops < 0) + gSprites[spriteId].sSmSparkleName_NumLoops = 1; + if (++tSparkleIdx >= ARRAY_COUNT(sTextSparkleCoords)) { - data[1]++; - if (data[1] > 1) + if (++tNumLoops > 1) DestroyTask(taskId); else - data[0] = 0; + tSparkleIdx = 0; } } } -static void GameFreakScene_StartRevealGameFreakTextSparklesSpawner(void) +#undef tSparkleIdx +#undef tNumLoops +#undef tTimer + +#define tTimer data[0] +#define tSparkleIdx data[1] +#define tNumSparkles data[2] + +static void GFScene_StartNameSparklesBig(void) { - CreateTask(Task_RevealGameFreakTextSparklesSpawner, 2); + CreateTask(GFScene_Task_NameSparklesBig, 2); } -static void Task_RevealGameFreakTextSparklesSpawner(u8 taskId) +static void GFScene_Task_NameSparklesBig(u8 taskId) { s16 * data = gTasks[taskId].data; - u8 r2; + u8 i; - if (data[0] == 0) + if (tTimer == 0) { - r2 = data[1]; - data[1] += 4; - if (data[1] >= NELEMS(sTrailingSparkleCoords)) - data[1] -= NELEMS(sTrailingSparkleCoords); - CreateSprite(&sSpriteTemplate_RevealGameFreakTextSparkles, sTrailingSparkleCoords[r2].x, sTrailingSparkleCoords[r2].y, 3); - data[2]++; - if (data[2] > 8) + i = tSparkleIdx; + tSparkleIdx += 4; + if (tSparkleIdx >= ARRAY_COUNT(sTextSparkleCoords)) + tSparkleIdx -= ARRAY_COUNT(sTextSparkleCoords); + CreateSprite(&sSpriteTemplate_SparklesBig, sTextSparkleCoords[i].x, sTextSparkleCoords[i].y, 3); + if (++tNumSparkles >= (int)ARRAY_COUNT(sTextSparkleCoords)) DestroyTask(taskId); } - data[0]++; - if (data[0] > 9) - data[0] = 0; + if (++tTimer > 9) + tTimer = 0; } -static struct Sprite *CreateGameFreakLogoArtSprite(void) +#undef tTimer +#undef tSparkleIdx +#undef tNumSparkles + +static struct Sprite *GFScene_CreateLogoSprite(void) { u8 spriteId = CreateSprite(&sSpriteTemplate_GameFreakLogoArt, 120, 70, 4); return &gSprites[spriteId]; } #if REVISION >= 1 -static void Rev1_GameFreakScene_CreatePresentsText(void) +static void GFScene_CreatePresentsSprite(void) { int i; for (i = 0; i < 2; i++) - { - gSprites[CreateSprite(&sSpriteTemplate_PresentsText, 0x68 + 32 * i, 0x6c, 5)].oam.tileNum += i * 4; - } + gSprites[CreateSprite(&sSpriteTemplate_Presents, 104 + 32 * i, 108, 5)].oam.tileNum += i * 4; } #endif -static void FightScene4_StartGengarAttack(struct IntroSequenceData * this) +#define tState data[0] +#define tTimer data[1] +#define tSinIdx data[3] +#define tBaseX data[4] +#define IDX_INTRO_DATA 5 // A pointer to the IntroSequenceData will be stored at data[5] and data[6] +#define tFrame data[7] +#define tMultY data[8] +#define tMultX data[9] + +static void Scene3_StartGengarAttack(struct IntroSequenceData * this) { u8 taskId; this->gengarAttackLanded = FALSE; - taskId = CreateTask(Task_FightScene4_GengarAttack, 4); - SetWordTaskArg(taskId, 5, (uintptr_t)this); - gTasks[taskId].data[3] = 64; - gTasks[taskId].data[4] = GetBgX(0); + taskId = CreateTask(Scene3_Task_GengarAttack, 4); + SetWordTaskArg(taskId, IDX_INTRO_DATA, (uintptr_t)this); + gTasks[taskId].tSinIdx = 64; + gTasks[taskId].tBaseX = GetBgX(BG_SCENE3_GENGAR); } -static void FightScene4_ApplyGengarAnim(int a, int b, int c, int d) +static void Scene3_ApplyGengarAnim(int frame, int xSub, int ySub, int xBase) { - ChangeBgY(0, (a << 15) + 0x1F000, 0); - ChangeBgX(0, d, 0); - ChangeBgX(0, b << 8, 2); - ChangeBgY(0, c << 8, 2); + ChangeBgY(BG_SCENE3_GENGAR, (frame << 15) + 0x1F000, BG_COORD_SET); + ChangeBgX(BG_SCENE3_GENGAR, xBase, BG_COORD_SET); + ChangeBgX(BG_SCENE3_GENGAR, xSub << 8, BG_COORD_SUB); + ChangeBgY(BG_SCENE3_GENGAR, ySub << 8, BG_COORD_SUB); } -static void Task_FightScene4_GengarAttack(u8 taskId) +static void Scene3_Task_GengarAttack(u8 taskId) { s16 * data = gTasks[taskId].data; - int b, c; - int angle; - switch (data[0]) + s32 xSub, ySub; + s32 sinIdx; + switch (tState) { case 0: - data[7] = 2; - data[1] = 0; - data[8] = 6; - data[9] = 32; - data[0]++; + tFrame = 2; // Gengar raises arm up + tTimer = 0; + tMultY = 6; + tMultX = 32; + tState++; break; case 1: - data[3] -= 2; - data[1]++; - if (data[1] > 15) + // Gengar moves in a backward arc + tSinIdx -= 2; + if (++tTimer > 15) { - data[1] = 0; - data[0]++; + tTimer = 0; + tState++; } break; case 2: - data[1]++; - if (data[1] == 14) - ((struct IntroSequenceData *)GetWordTaskArg(taskId, 5))->gengarAttackLanded = TRUE; - if (data[1] > 15) + // Gengar pauses at end of backward arc + if (++tTimer == 14) + ((struct IntroSequenceData *)GetWordTaskArg(taskId, IDX_INTRO_DATA))->gengarAttackLanded = TRUE; + if (tTimer > 15) { - data[1] = 0; - data[0]++; + tTimer = 0; + tState++; } break; case 3: - data[3] += 8; - data[1]++; - if (data[1] == 4) + // Gengar moves in a forward arc + tSinIdx += 8; + if (++tTimer == 4) { - FightScene4_CreateGengarSwipeSprites(); - data[8] = 32; - data[9] = 48; - data[7] = 3; + Scene3_CreateGengarSwipeSprites(); + tMultY = 32; + tMultX = 48; + tFrame = 3; // Gengar swipes arm down } - if (data[1] > 7) + if (tTimer > 7) { - data[1] = 0; - data[0]++; + tTimer = 0; + tState++; } break; case 4: - data[3] -= 8; - data[1]++; - if (data[1] > 3) + // Gengar moves in a backward arc to its original position + tSinIdx -= 8; + if (++tTimer > 3) { - data[7] = 0; - data[3] = 64; - data[1] = 0; - data[0]++; + tFrame = 0; // Gengar returns to normal posture + tSinIdx = 64; + tTimer = 0; + tState++; } break; case 5: DestroyTask(taskId); return; } - angle = data[3]; - b = -((gSineTable[angle + 0x40] * data[9]) >> 8); - c = data[8] - ((gSineTable[angle] * data[8]) >> 8); - FightScene4_ApplyGengarAnim(data[7], b, c, data[4]); + + // Animate current movement arc / frame change + sinIdx = tSinIdx; + xSub = -((gSineTable[sinIdx + 64] * tMultX) >> 8); + ySub = tMultY - ((gSineTable[sinIdx] * tMultY) >> 8); + Scene3_ApplyGengarAnim(tFrame, xSub, ySub, tBaseX); } -static void FightScene4_CreateGengarSwipeSprites(void) +#undef tState +#undef tTimer +#undef tSinIdx +#undef tBaseX +#undef IDX_INTRO_DATA +#undef tFrame +#undef tMultY +#undef tMultX + +static void Scene3_CreateGengarSwipeSprites(void) { - u8 spriteId; - - spriteId = CreateSprite(&sSpriteTemplate_GengarSwipe, 132, 78, 6); + u8 spriteId = CreateSprite(&sSpriteTemplate_GengarSwipe, 132, 78, 6); // Implicitly ANIM_SWIPE_TOP spriteId = CreateSprite(&sSpriteTemplate_GengarSwipe, 132, 118, 6); if (spriteId != MAX_SPRITES) { - gSprites[spriteId].oam.shape = ST_OAM_H_RECTANGLE; - gSprites[spriteId].oam.size = ST_OAM_SIZE_2; - FightScene_CalcCenterToCornerVec(&gSprites[spriteId]); - StartSpriteAnim(&gSprites[spriteId], 1); + gSprites[spriteId].oam.shape = SPRITE_SHAPE(32x16); + gSprites[spriteId].oam.size = SPRITE_SIZE(32x16); + Scene3_CalcCenterToCornerVec(&gSprites[spriteId]); + StartSpriteAnim(&gSprites[spriteId], ANIM_SWIPE_BOTTOM); } } static void SpriteCB_GengarSwipe(struct Sprite *sprite) { - sprite->invisible ^= TRUE; + sprite->invisible ^= 1; if (sprite->animEnded) DestroySprite(sprite); } -static void Task_FightScene3_Bg0Scroll(u8 taskId) +#define tState data[0] +#define tSpeed data[1] +#define tMoves data[2] + +// Scroll Gengar into position for the fight +static void Scene3_Task_GengarEnter(u8 taskId) { s16 * data = gTasks[taskId].data; - static EWRAM_DATA u32 gUnknown_203AB30 = 0; + static EWRAM_DATA u32 sGengarScroll = 0; - switch (data[0]) + switch (tState) { case 0: - data[1] = 0x400; - data[0]++; + tSpeed = 0x400; + tState++; // fallthrough case 1: - data[2]++; - if (data[2] > 39 && data[1] > 16) - data[1] -= 16; - gUnknown_203AB30 = ChangeBgX(0, data[1], 1); - if (gUnknown_203AB30 >= 0x8000) + // Don't decelerate for the first 40 movements + if (++tMoves >= 40 && tSpeed > 16) + tSpeed -= 16; + sGengarScroll = ChangeBgX(BG_SCENE3_GENGAR, tSpeed, BG_COORD_ADD); + + if (sGengarScroll >= 0x8000) ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); - if (gUnknown_203AB30 >= 0xEF00) + + if (sGengarScroll >= 0xEF00) { - ChangeBgX(0, 0xEF00, 0); + ChangeBgX(BG_SCENE3_GENGAR, 0xEF00, BG_COORD_SET); DestroyTask(taskId); } break; } } -static void SpriteCB_LargeStar(struct Sprite *sprite) +#undef tState +#undef tSpeed +#undef tMoves + +static void SpriteCB_Star(struct Sprite *sprite) { - unsigned v; - sprite->data[0] -= sprite->data[2]; - sprite->data[1] += sprite->data[3]; - sprite->data[4] += 48; - sprite->x = sprite->data[0] >> 4; - sprite->y = sprite->data[1] >> 4; - sprite->y2 = gSineTable[(sprite->data[4] >> 4) + 0x40] >> 5; - sprite->data[5]++; - if (sprite->data[5] % sTrailingSparklesSpawnRate) + u32 random; + sprite->sStar_BaseX -= sprite->sStar_SpeedX; + sprite->sStar_BaseY += sprite->sStar_SpeedY; + sprite->sStar_SinIdx += 48; + sprite->x = sprite->sStar_BaseX >> 4; + sprite->y = sprite->sStar_BaseY >> 4; + sprite->y2 = gSineTable[(sprite->sStar_SinIdx >> 4) + 64] >> 5; + sprite->sStar_SparkleTimer++; + if (sprite->sStar_SparkleTimer % sStarSparklesSpawnRate) { - LoadWordFromTwoHalfwords(&sprite->data[6], &v); - v = v * 1103515245 + 24691; - StoreWordInTwoHalfwords(&sprite->data[6], v); - v >>= 16; - GameFreakScene_TrailingSparklesGen(sprite->x, sprite->y + sprite->y2, v); + LoadWordFromTwoHalfwords(&sprite->sStar_SparkleRngSeed, &random); + random = ISO_RANDOMIZE1(random); + StoreWordInTwoHalfwords(&sprite->sStar_SparkleRngSeed, random); + random >>= 16; + GFScene_CreateStarSparkle(sprite->x, sprite->y + sprite->y2, random); } if (sprite->x < -8) DestroySprite(sprite); } -static void SpriteCB_TrailingSparkles(struct Sprite *sprite) +// Callback for the sparkles that trail behind the star +static void SpriteCB_SparklesSmall_Star(struct Sprite *sprite) { - u32 v; - - sprite->data[0] += sprite->data[2]; - sprite->data[1] += sprite->data[3]; - sprite->data[4]++; - sprite->data[5] += sprite->data[4]; - sprite->data[7]++; - sprite->x = (u16)sprite->data[0] >> sTrailingSparklesXprecision; - sprite->y = sprite->data[1] >> sTrailingSparklesYprecision; - if (sTrailingSparklesGravityShift && sprite->data[3] < 0) - sprite->y2 = sprite->data[5] >> sTrailingSparklesGravityShift; - if (sprite->data[7] > sTrailingSparklesFlickerStartTime) + sprite->sSmSparkleStar_BaseX += sprite->sSmSparkleStar_SpeedX; + sprite->sSmSparkleStar_BaseY += sprite->sSmSparkleStar_SpeedY; + sprite->sSmSparkleStar_FallDist += ++sprite->sSmSparkleStar_FallSpeed; + sprite->sSmSparkleStar_Timer++; + sprite->x = (u16)sprite->sSmSparkleStar_BaseX >> sStarSparklesXprecision; + sprite->y = sprite->sSmSparkleStar_BaseY >> sStarSparklesYprecision; + if (sStarSparklesGravityShift && sprite->sSmSparkleStar_SpeedY < 0) + sprite->y2 = sprite->sSmSparkleStar_FallDist >> sStarSparklesGravityShift; + if (sprite->sSmSparkleStar_Timer > sStarSparklesFlickerStartTime) { sprite->invisible = !sprite->invisible; - if (sprite->data[7] > sTrailingSparklesDestroySpriteTime) + if (sprite->sSmSparkleStar_Timer > sStarSparklesDestroySpriteTime) DestroySprite(sprite); } - if (sprite->y + sprite->y2 < 0 || sprite->y + sprite->y2 > 160) + if (sprite->y + sprite->y2 < 0 || sprite->y + sprite->y2 > DISPLAY_HEIGHT) DestroySprite(sprite); } -static void SpriteCB_TrailingSparkles2(struct Sprite *sprite) +// Callback for the small sparkles during the "Game Freak" text reveal +static void SpriteCB_SparklesSmall_Name(struct Sprite *sprite) { - if (sprite->data[2]) + if (sprite->sSmSparkleName_AnimTimer) { - sprite->data[2]--; - sprite->data[1]++; - sprite->y = sprite->data[1] >> 4; - if (sprite->y > 0x56) + sprite->sSmSparkleName_AnimTimer--; + sprite->sSmSparkleName_BaseY++; + sprite->y = sprite->sSmSparkleName_BaseY >> 4; + if (sprite->y > 86) { - sprite->y = 0x4A; - sprite->data[1] = 0x4A0; + sprite->y = 74; + sprite->sSmSparkleName_BaseY = 74 << 4; } if (sprite->animEnded) { - if (sprite->data[0] == 0) + if (sprite->sSmSparkleName_State == 0) { sprite->x += 26; if (sprite->x > 188) { - sprite->x = 376 - sprite->x; - sprite->data[0] = 1; + sprite->x = (188 * 2) - sprite->x; + sprite->sSmSparkleName_State = 1; } } else @@ -2116,111 +2342,126 @@ static void SpriteCB_TrailingSparkles2(struct Sprite *sprite) sprite->x -= 26; if (sprite->x < 52) { - sprite->x = 104 - sprite->x; - sprite->data[0] = 0; + sprite->x = (52 * 2) - sprite->x; + sprite->sSmSparkleName_State = 0; } } - StartSpriteAnim(sprite, 1); + StartSpriteAnim(sprite, ANIM_SPARKLE_ONCE); } } else { - if (sprite->data[3]) + if (sprite->sSmSparkleName_NumLoops) DestroySprite(sprite); if (sprite->animEnded) - StartSpriteAnim(sprite, 0); - sprite->data[1] += 4; - sprite->y = sprite->data[1] >> 4; - sprite->data[4]++; - if (sprite->data[4] > 50) + StartSpriteAnim(sprite, ANIM_SPARKLE_LOOP); + sprite->sSmSparkleName_BaseY += 4; + sprite->y = sprite->sSmSparkleName_BaseY >> 4; + if (++sprite->sSmSparkleName_DestroyTimer > 50) DestroySprite(sprite); } } -static void SpriteCB_RevealGameFreakTextSparkles(struct Sprite *sprite) +// Callback for the big sparkles during the "Game Freak" text reveal +static void SpriteCB_SparklesBig(struct Sprite *sprite) { if (sprite->animEnded) DestroySprite(sprite); } -static void CreateNidorinoAnimSprite(struct IntroSequenceData * this) +static void Scene3_CreateNidorinoSprite(struct IntroSequenceData * this) { - u8 spriteId = CreateSprite(&sSpriteTemplate_NidorinoAnim, 0, 0, 9); - this->nidorinoAnimSprite = &gSprites[spriteId]; + u8 spriteId = CreateSprite(&sSpriteTemplate_Scene3_Nidorino, 0, 0, 9); + this->scene3NidorinoSprite = &gSprites[spriteId]; } -static void StartNidorinoAnimSpriteSlideIn(struct Sprite *sprite, s16 x0, s16 x1, u16 speed) +#define sX data[0] +#define sSpeed data[1] +#define sTime data[2] // Not read +#define sTargetX data[3] +#define sTimer data[4] + +static void Scene3_StartNidorinoEntrance(struct Sprite *sprite, s16 xStart, s16 x1, u16 time) { - sprite->data[0] = x0 << 4; - sprite->data[1] = ((x1 - x0) << 4) / speed; - sprite->data[2] = speed; - sprite->data[3] = x1; - sprite->data[4] = 0; - sprite->x = x0; + sprite->sX = xStart << 4; + sprite->sSpeed = ((x1 - xStart) << 4) / time; + sprite->sTime = time; + sprite->sTargetX = x1; + sprite->sTimer = 0; + sprite->x = xStart; sprite->y = 100; - sprite->callback = SpriteCB_NidorinoAnimSpriteSlideIn; + sprite->callback = Scene3_SpriteCB_NidorinoEnter; } -static void SpriteCB_NidorinoAnimSpriteSlideIn(struct Sprite *sprite) +static void Scene3_SpriteCB_NidorinoEnter(struct Sprite *sprite) { - sprite->data[4]++; - if (sprite->data[4] >= 40) + if (++sprite->sTimer >= 40) { - if (sprite->data[1] > 1) - sprite->data[1]--; + // Start decelerating after 40 frames + if (sprite->sSpeed > 1) + sprite->sSpeed--; } - sprite->data[0] += sprite->data[1]; - sprite->x = sprite->data[0] >> 4; - if (sprite->x >= sprite->data[3]) + sprite->sX += sprite->sSpeed; + sprite->x = sprite->sX >> 4; + if (sprite->x >= sprite->sTargetX) { - sprite->x = sprite->data[3]; + // Reached final position + sprite->x = sprite->sTargetX; sprite->callback = SpriteCallbackDummy; } } -static bool32 IsNidorinoAnimSpriteSlideInRunning(struct IntroSequenceData * ptr) +static bool32 Scene3_IsNidorinoEntering(struct IntroSequenceData * ptr) { - return ptr->nidorinoAnimSprite->callback == SpriteCB_NidorinoAnimSpriteSlideIn ? TRUE : FALSE; + return ptr->scene3NidorinoSprite->callback == Scene3_SpriteCB_NidorinoEnter ? TRUE : FALSE; } -static void FightScene4_NidorinoRearsUp(struct IntroSequenceData * ptr) +#undef sX +#undef sSpeed +#undef sTime +#undef sTargetX +#undef sTimer + +#define sState data[0] +#define sStateTimer data[1] +#define sBounceTimer data[2] + +static void Scene3_StartNidorinoCry(struct IntroSequenceData * ptr) { - StartSpriteAnim(ptr->nidorinoAnimSprite, 2); - ptr->nidorinoAnimSprite->data[0] = 0; - ptr->nidorinoAnimSprite->data[1] = 0; - ptr->nidorinoAnimSprite->y2 = 3; - ptr->nidorinoAnimSprite->callback = SpriteCB_NidorinoRearsUp; + StartSpriteAnim(ptr->scene3NidorinoSprite, ANIM_NIDORINO_CROUCH); + ptr->scene3NidorinoSprite->sState = 0; + ptr->scene3NidorinoSprite->sStateTimer = 0; + ptr->scene3NidorinoSprite->y2 = 3; + ptr->scene3NidorinoSprite->callback = SpriteCB_NidorinoCry; } -static void SpriteCB_NidorinoRearsUp(struct Sprite *sprite) +static void SpriteCB_NidorinoCry(struct Sprite *sprite) { - switch (sprite->data[0]) + switch (sprite->sState) { case 0: - sprite->data[1]++; - if (sprite->data[1] > 8) + if (++sprite->sStateTimer > 8) { - StartSpriteAnim(sprite, 1); + StartSpriteAnim(sprite, ANIM_NIDORINO_CRY); sprite->y2 = 0; - sprite->data[0]++; + sprite->sState++; } break; case 1: PlayCry_ByMode(SPECIES_NIDORINO, 0x3F, CRY_MODE_DOUBLES); - sprite->data[1] = 0; - sprite->data[0]++; + sprite->sStateTimer = 0; + sprite->sState++; break; case 2: - sprite->data[2]++; - if (sprite->data[2] > 1) + if (++sprite->sBounceTimer > 1) { - sprite->data[2] = 0; + // Nidorino bounces slightly while crying + sprite->sBounceTimer = 0; sprite->y2 = sprite->y2 == 0 ? 1 : 0; } - sprite->data[1]++; - if (sprite->data[1] > 48) + if (++sprite->sStateTimer > 48) { - StartSpriteAnim(sprite, 0); + StartSpriteAnim(sprite, ANIM_NIDORINO_NORMAL); sprite->y2 = 0; sprite->callback = SpriteCallbackDummy; } @@ -2228,263 +2469,328 @@ static void SpriteCB_NidorinoRearsUp(struct Sprite *sprite) } } -static void FightScene4_StartNidorinoRecoilAnim(struct IntroSequenceData * ptr) +#undef sState +#undef sStateTimer +#undef sBounceTimer + +#define sState data[0] +#define sStateTimer data[1] +#define sOffsetX data[2] +#define sSinIdx data[3] +#define sLandTimer data[4] +#define sSlowdownTimer data[5] +#define sRandSeed data[6] +#define sSpeedX data[7] + +static void Scene3_StartNidorinoRecoil(struct IntroSequenceData * ptr) { - gUnknown_203AB0A = 16; - gUnknown_203AB04 = 3; - gUnknown_203AB08 = 5; - gUnknown_203AB06 = 0; - StartSpriteAnim(ptr->nidorinoAnimSprite, 2); - ptr->nidorinoAnimSprite->data[0] = 0; - ptr->nidorinoAnimSprite->data[1] = 0; - ptr->nidorinoAnimSprite->data[2] = 0; - ptr->nidorinoAnimSprite->data[3] = 0; - ptr->nidorinoAnimSprite->data[4] = 0; - ptr->nidorinoAnimSprite->data[7] = 40; - ptr->nidorinoAnimSprite->callback = SpriteCB_NidorinoRecoil; + sNidorinoRecoilReturnTime = 16; + sNidorinoJumpMult = 3; + sNidorinoJumpDiv = 5; + sNidorinoAnimDelayTime = 0; + StartSpriteAnim(ptr->scene3NidorinoSprite, ANIM_NIDORINO_CROUCH); + ptr->scene3NidorinoSprite->sState = 0; + ptr->scene3NidorinoSprite->sStateTimer = 0; + ptr->scene3NidorinoSprite->sOffsetX = 0; + ptr->scene3NidorinoSprite->sSinIdx = 0; + ptr->scene3NidorinoSprite->sLandTimer = 0; + ptr->scene3NidorinoSprite->sSpeedX = 40; + ptr->scene3NidorinoSprite->callback = SpriteCB_NidorinoRecoil; } static void SpriteCB_NidorinoRecoil(struct Sprite *sprite) { - switch (sprite->data[0]) + switch (sprite->sState) { case 0: - sprite->data[1]++; - if (sprite->data[1] > 4) + if (++sprite->sStateTimer > 4) { - StartSpriteAnim(sprite, 3); - sprite->data[0]++; + StartSpriteAnim(sprite, ANIM_NIDORINO_HOP); + sprite->sState++; } break; case 1: - sprite->data[2] += sprite->data[7]; - sprite->data[3] += 8; - sprite->x2 = sprite->data[2] >> 4; - sprite->y2 = -((gSineTable[sprite->data[3]] * gUnknown_203AB04) >> gUnknown_203AB08); - sprite->data[5]++; - if (sprite->data[5] > gUnknown_203AB06) + // Nidorino jumping backwards in the air + sprite->sOffsetX += sprite->sSpeedX; + sprite->sSinIdx += 8; + sprite->x2 = sprite->sOffsetX >> 4; + sprite->y2 = -((gSineTable[sprite->sSinIdx] * sNidorinoJumpMult) >> sNidorinoJumpDiv); + sprite->sSlowdownTimer++; + if (sprite->sSlowdownTimer > sNidorinoAnimDelayTime) { - sprite->data[5] = 0; - sprite->data[7]--; + sprite->sSlowdownTimer = 0; + sprite->sSpeedX--; } - sprite->data[4]++; - if (sprite->data[4] > 15) + if (++sprite->sLandTimer > 15) { - StartSpriteAnim(sprite, 2); - sprite->data[1] = 0; - sprite->data[6] = 0x4757; - sprite->data[7] = 28; - sprite->data[0]++; + // Nidorino hits the ground + StartSpriteAnim(sprite, ANIM_NIDORINO_CROUCH); + sprite->sStateTimer = 0; + sprite->sRandSeed = 0x4757; + sprite->sSpeedX = 28; + sprite->sState++; } break; case 2: - sprite->data[2] += sprite->data[7]; - sprite->x2 = sprite->data[2] >> 4; - sprite->data[1]++; - if (sprite->data[1] > 6) + // Nidorino sliding on the ground + sprite->sOffsetX += sprite->sSpeedX; + sprite->x2 = sprite->sOffsetX >> 4; + if (++sprite->sStateTimer > 6) { - CreateNidorinoRecoilDustSprites(sprite->x + sprite->x2, sprite->y + sprite->y2, sprite->data[6]); - sprite->data[6] *= 1103515245; + // The position of each subsequent dust sprite is "random", but with a fixed + // initial seed so that they'll be in the same positions between intro runs + CreateNidorinoRecoilDustSprites(sprite->x + sprite->x2, sprite->y + sprite->y2, sprite->sRandSeed); + sprite->sRandSeed *= RAND_MULT; } - if (sprite->data[1] > 12) + if (sprite->sStateTimer > 12) { - StartSpriteAnim(sprite, 0); - sprite->data[1] = 0; - sprite->data[0]++; + StartSpriteAnim(sprite, ANIM_NIDORINO_NORMAL); + sprite->sStateTimer = 0; + sprite->sState++; } break; case 3: - sprite->data[1]++; - if (sprite->data[1] > 16) - { - StartSpriteHopToPosAnim(sprite, gUnknown_203AB0A, -sprite->x2, 4); - } + // Nidorino hops back to its original position + if (++sprite->sStateTimer > 16) + Scene3_StartNidorinoHop(sprite, sNidorinoRecoilReturnTime, -sprite->x2, 4); break; } } -static bool8 FightScene4_NidorinoAnimIsRunning(struct IntroSequenceData * ptr) +#undef sState +#undef sStateTimer +#undef sOffsetX +#undef sSinIdx +#undef sLandTimer +#undef sSlowdownTimer +#undef sRandSeed +#undef sSpeedX + +static bool8 Scene3_NidorinoAnimIsRunning(struct IntroSequenceData * ptr) { - return ptr->nidorinoAnimSprite->callback == SpriteCallbackDummy ? FALSE : TRUE; + return ptr->scene3NidorinoSprite->callback == SpriteCallbackDummy ? FALSE : TRUE; } +#define sState data[0] +#define sX data[1] +#define sY data[2] +#define sSpeedX data[3] +#define sSpeedY data[4] +#define sInvisibleTimer data[7] + static void CreateNidorinoRecoilDustSprites(s16 x, s16 y, s16 seed) { int i; u8 spriteId; + // Recoil dust sprites are created in pairs at the same initial position but with different speeds. + // Only one of each pair will be visible at a time. for (i = 0; i < 2; i++) { spriteId = CreateSprite(&sSpriteTemplate_NidorinoRecoilDust, x - 22, y + 24, 10); if (spriteId != MAX_SPRITES) { - gSprites[spriteId].data[3] = (seed % 13) + 8; - gSprites[spriteId].data[4] = seed % 3; - gSprites[spriteId].data[7] = i; - seed *= 1103515245; + gSprites[spriteId].sSpeedX = (seed % 13) + 8; + gSprites[spriteId].sSpeedY = seed % 3; + gSprites[spriteId].sInvisibleTimer = i; + seed *= RAND_MULT; } } } -static void SpriteCB_NidorinoRecoilDust(struct Sprite *sprite) +static void SpriteCB_RecoilDust(struct Sprite *sprite) { s16 * data = sprite->data; - switch (sprite->data[0]) + switch (sprite->sState) { case 0: - data[1] = sprite->x << 4; - data[2] = sprite->y << 4; - sprite->data[0]++; + sX = sprite->x << 4; + sY = sprite->y << 4; + sprite->sState++; // fallthrough case 1: - data[1] -= data[3]; - data[2] += data[4]; - sprite->x = data[1] >> 4; - sprite->y = data[2] >> 4; + sX -= sSpeedX; + sY += sSpeedY; + sprite->x = sX >> 4; + sprite->y = sY >> 4; if (sprite->animEnded) DestroySprite(sprite); break; } - data[7]++; - if (data[7] > 1) + + // Recoil dust flashes in and out + if (++sInvisibleTimer > 1) { - data[7] = 0; - sprite->invisible ^= TRUE; + sInvisibleTimer = 0; + sprite->invisible ^= 1; } } -static void StartSpriteHopToPosAnim(struct Sprite *sprite, u16 a1, s16 a2, u8 a3) +#undef sState +#undef sX +#undef sY +#undef sSpeedX +#undef sSpeedY +#undef sInvisibleTimer + +#define sState data[0] +#define sAirTime data[1] +#define sOffsetX data[2] +#define sSpeedX data[3] +#define sSinIdx data[4] +#define sSpeedY data[5] +#define sTimer data[6] +#define sHeightShift data[7] + +static void Scene3_StartNidorinoHop(struct Sprite *sprite, u16 time, s16 targetX, u8 heightShift) { - sprite->data[0] = 0; - sprite->data[1] = a1; - sprite->data[2] = sprite->x2 << 4; - sprite->data[3] = (a2 << 4) / a1; - sprite->data[4] = 0; - sprite->data[5] = 0x800 / a1; - sprite->data[6] = 0; - sprite->data[7] = a3; - StartSpriteAnim(sprite, 2); - sprite->callback = SpriteCB_HopToPos; + sprite->sState = 0; + sprite->sAirTime = time; + sprite->sOffsetX = sprite->x2 << 4; + sprite->sSpeedX = (targetX << 4) / time; + sprite->sSinIdx = 0; + sprite->sSpeedY = 0x800 / time; + sprite->sTimer = 0; + sprite->sHeightShift = heightShift; + StartSpriteAnim(sprite, ANIM_NIDORINO_CROUCH); + sprite->callback = SpriteCB_NidorinoHop; } -static void SpriteCB_HopToPos(struct Sprite *sprite) +static void SpriteCB_NidorinoHop(struct Sprite *sprite) { - switch (sprite->data[0]) + switch (sprite->sState) { case 0: - sprite->data[6]++; - if (sprite->data[6] > 4) + if (++sprite->sTimer > 4) { - StartSpriteAnim(sprite, 3); - sprite->data[6] = 0; - sprite->data[0]++; + StartSpriteAnim(sprite, ANIM_NIDORINO_HOP); + sprite->sTimer = 0; + sprite->sState++; } break; case 1: - sprite->data[1]--; - if (sprite->data[1]) + if (--sprite->sAirTime) { - sprite->data[2] += sprite->data[3]; - sprite->data[4] += sprite->data[5]; - sprite->x2 = sprite->data[2] >> 4; - sprite->y2 = -(gSineTable[sprite->data[4] >> 4] >> sprite->data[7]); + // Nidorino moving through the air + sprite->sOffsetX += sprite->sSpeedX; + sprite->sSinIdx += sprite->sSpeedY; + sprite->x2 = sprite->sOffsetX >> 4; + sprite->y2 = -(gSineTable[sprite->sSinIdx >> 4] >> sprite->sHeightShift); } else { - sprite->x2 = (u16)sprite->data[2] >> 4; + // Nidorino lands + sprite->x2 = (u16)sprite->sOffsetX >> 4; sprite->y2 = 0; - StartSpriteAnim(sprite, 2); - if (sprite->data[7] == 5) + StartSpriteAnim(sprite, ANIM_NIDORINO_CROUCH); + if (sprite->sHeightShift == 5) + { + // This is used by the short hops before Nidorino's attack. + // The last state is skipped so that Nidorino will stay in the crouched animation. sprite->callback = SpriteCallbackDummy; + } else { - sprite->data[6] = 0; - sprite->data[0]++; + sprite->sTimer = 0; + sprite->sState++; } } break; case 2: - sprite->data[6]++; - if (sprite->data[6] > 4) + if (++sprite->sTimer > 4) { - StartSpriteAnim(sprite, 0); + StartSpriteAnim(sprite, ANIM_NIDORINO_NORMAL); sprite->callback = SpriteCallbackDummy; } break; } } -static void StartNidorinoAnim_LaunchSelfAtGengarAnim(struct IntroSequenceData * ptr) +#undef sState +#undef sAirTime +#undef sOffsetX +#undef sSpeedX +#undef sSinIdx +#undef sSpeedY +#undef sTimer +#undef sHeightShift + +#define sState data[0] +#define sTimer data[1] +#define sShakeTimer data[2] +#define sSpeed data[7] + +static void Scene3_StartNidorinoAttack(struct IntroSequenceData * ptr) { - ptr->nidorinoAnimSprite->data[0] = 0; - ptr->nidorinoAnimSprite->data[1] = 0; - ptr->nidorinoAnimSprite->data[2] = 0; - ptr->nidorinoAnimSprite->data[3] = 0; - ptr->nidorinoAnimSprite->data[4] = 0; - ptr->nidorinoAnimSprite->data[5] = 0; - ptr->nidorinoAnimSprite->x += ptr->nidorinoAnimSprite->x2; - ptr->nidorinoAnimSprite->x2 = 0; - gUnknown_203AB0C = 0x24; - gUnknown_203AB06 = 0x28; - gUnknown_203AB04 = 0x03; - gUnknown_203AB08 = 0x04; - ptr->nidorinoAnimSprite->data[7] = 36; - StartSpriteAnim(ptr->nidorinoAnimSprite, 2); - ptr->nidorinoAnimSprite->callback = SpriteCB_NidorinoAnim_LaunchSelfAtGengar; + ptr->scene3NidorinoSprite->sState = 0; + ptr->scene3NidorinoSprite->sTimer = 0; + ptr->scene3NidorinoSprite->sShakeTimer = 0; + ptr->scene3NidorinoSprite->data[3] = 0; // Unused + ptr->scene3NidorinoSprite->data[4] = 0; // Unused + ptr->scene3NidorinoSprite->data[5] = 0; // Unused + ptr->scene3NidorinoSprite->x += ptr->scene3NidorinoSprite->x2; + ptr->scene3NidorinoSprite->x2 = 0; + sNidorinoUnusedVar = 36; + sNidorinoAnimDelayTime = 40; + sNidorinoJumpMult = 3; + sNidorinoJumpDiv = 4; + ptr->scene3NidorinoSprite->sSpeed = 36; + StartSpriteAnim(ptr->scene3NidorinoSprite, ANIM_NIDORINO_CROUCH); + ptr->scene3NidorinoSprite->callback = SpriteCB_NidorinoAttack; } -static void SpriteCB_NidorinoAnim_LaunchSelfAtGengar(struct Sprite *sprite) +static void SpriteCB_NidorinoAttack(struct Sprite *sprite) { - switch (sprite->data[0]) + switch (sprite->sState) { case 0: - sprite->data[1]++; - if (sprite->data[1] & 1) + if (++sprite->sTimer & 1) { - sprite->data[2]++; - if (sprite->data[2] & 1) + // Nidorino shakes horizontally before attacking + if (++sprite->sShakeTimer & 1) sprite->x2++; else sprite->x2--; } - if (sprite->data[1] > 17) + if (sprite->sTimer > 17) { - sprite->data[1] = 0; - sprite->data[0]++; + sprite->sTimer = 0; + sprite->sState++; } break; case 1: - if (++sprite->data[1] >= gUnknown_203AB06) + if (++sprite->sTimer >= sNidorinoAnimDelayTime) { - StartSpriteAnim(sprite, 4); - sprite->data[1] = 0; - sprite->data[2] = 0; - sprite->data[0]++; + StartSpriteAnim(sprite, ANIM_NIDORINO_ATTACK); + sprite->sTimer = 0; + sprite->sShakeTimer = 0; + sprite->sState++; } break; case 2: - sprite->data[1] += sprite->data[7]; - sprite->x2 = -(sprite->data[1] >> 4); - sprite->y2 = -((gSineTable[sprite->data[1] >> 4] * gUnknown_203AB04) >> gUnknown_203AB08); - sprite->data[2]++; - if (sprite->data[7] > 12) - sprite->data[7]--; - if ((sprite->data[1] >> 4) > 0x3F) + // Nidorino jumps at Gengar + sprite->sTimer += sprite->sSpeed; + sprite->x2 = -(sprite->sTimer >> 4); + sprite->y2 = -((gSineTable[sprite->sTimer >> 4] * sNidorinoJumpMult) >> sNidorinoJumpDiv); + sprite->sShakeTimer++; // Does nothing + if (sprite->sSpeed > 12) + sprite->sSpeed--; // Decelerate as jump progresses + if ((sprite->sTimer >> 4) > 63) sprite->callback = SpriteCallbackDummy; break; } } -static void LoadFightSceneSpriteTilesAndPals(void) +#undef sState +#undef sTimer +#undef sShakeTimer +#undef sSpeed + +static void LoadFightSceneSpriteGraphics(void) { int i; - - for (i = 0; i < NELEMS(sFightSceneSpriteSheets); i++) - { + for (i = 0; i < ARRAY_COUNT(sFightSceneSpriteSheets); i++) LoadCompressedSpriteSheet(&sFightSceneSpriteSheets[i]); - } - // sFightSceneSpritePalettes is not properly terminated, so this - // call exhibits undefined behavior. LoadSpritePalettes(sFightSceneSpritePalettes); } diff --git a/src/item.c b/src/item.c index 0df45cbd3..763838133 100644 --- a/src/item.c +++ b/src/item.c @@ -75,7 +75,7 @@ void CopyItemName(u16 itemId, u8 * dest) if (itemId == ITEM_ENIGMA_BERRY) { StringCopy(dest, GetBerryInfo(ITEM_TO_BERRY(ITEM_ENIGMA_BERRY))->name); - StringAppend(dest, gUnknown_84162BD); + StringAppend(dest, gText_Berry); } else { @@ -611,7 +611,7 @@ void TrySetObtainedItemQuestLogEvent(u16 itemId) u16 SanitizeItemId(u16 itemId) { - if (itemId >= ITEM_N_A) + if (itemId >= ITEMS_COUNT) return ITEM_NONE; return itemId; } diff --git a/src/item_menu.c b/src/item_menu.c index ceddc9675..ae8d98235 100644 --- a/src/item_menu.c +++ b/src/item_menu.c @@ -478,7 +478,7 @@ static bool8 LoadBagMenuGraphics(void) gMain.state++; break; case 15: - CreateBagOrSatchelSprite(gBagMenuState.pocket); + CreateBagSprite(gBagMenuState.pocket); gMain.state++; break; case 16: @@ -487,7 +487,7 @@ static bool8 LoadBagMenuGraphics(void) gMain.state++; break; case 17: - ItemMenuIcons_CreateInsertIndicatorBarHidden(); + CreateSwapLine(); gMain.state++; break; case 18: @@ -583,13 +583,13 @@ static bool8 DoLoadBagGraphics(void) break; case 3: if (BagIsTutorial() == TRUE || gSaveBlock2Ptr->playerGender == MALE) - LoadCompressedSpriteSheet(&gSpriteSheet_Backpack); + LoadCompressedSpriteSheet(&gSpriteSheet_BagMale); else - LoadCompressedSpriteSheet(&gSpriteSheet_Satchel); + LoadCompressedSpriteSheet(&gSpriteSheet_BagFemale); sBagMenuDisplay->data[0]++; break; case 4: - LoadCompressedSpritePalette(&gSpritePalette_BagOrSatchel); + LoadCompressedSpritePalette(&gSpritePalette_Bag); sBagMenuDisplay->data[0]++; break; case 5: @@ -692,7 +692,7 @@ static void BagListMenuMoveCursorFunc(s32 itemIndex, bool8 onInit, struct ListMe if (sBagMenuDisplay->nItems[gBagMenuState.pocket] != itemIndex) CreateItemMenuIcon(BagGetItemIdByPocketPosition(gBagMenuState.pocket + 1, itemIndex), sBagMenuDisplay->itemMenuIcon); else - CreateItemMenuIcon(ITEM_N_A, sBagMenuDisplay->itemMenuIcon); + CreateItemMenuIcon(ITEMS_COUNT, sBagMenuDisplay->itemMenuIcon); sBagMenuDisplay->itemMenuIcon ^= 1; if (!sBagMenuDisplay->inhibitItemDescriptionPrint) PrintItemDescriptionOnMessageWindow(itemIndex); @@ -1231,8 +1231,8 @@ static void BeginMovingItemInPocket(u8 taskId, s16 itemIndex) StringExpandPlaceholders(gStringVar4, gOtherText_WhereShouldTheStrVar1BePlaced); FillWindowPixelBuffer(1, PIXEL_FILL(0)); BagPrintTextOnWindow(1, FONT_2, gStringVar4, 0, 3, 2, 0, 0, 0); - ItemMenuIcons_MoveInsertIndicatorBar(0, ListMenuGetYCoordForPrintingArrowCursor(data[0])); - ItemMenuIcons_ToggleInsertIndicatorBarVisibility(FALSE); + UpdateSwapLinePos(0, ListMenuGetYCoordForPrintingArrowCursor(data[0])); + SetSwapLineInvisibility(FALSE); BagDestroyPocketSwitchArrowPair(); bag_menu_print_cursor_(data[0], 2); gTasks[taskId].func = Task_MoveItemInPocket_HandleInput; @@ -1248,7 +1248,7 @@ static void Task_MoveItemInPocket_HandleInput(u8 taskId) return; input = ListMenu_ProcessInput(data[0]); ListMenuGetScrollAndRow(data[0], &gBagMenuState.cursorPos[gBagMenuState.pocket], &gBagMenuState.itemsAbove[gBagMenuState.pocket]); - ItemMenuIcons_MoveInsertIndicatorBar(0, ListMenuGetYCoordForPrintingArrowCursor(data[0])); + UpdateSwapLinePos(0, ListMenuGetYCoordForPrintingArrowCursor(data[0])); if (JOY_NEW(SELECT_BUTTON)) { PlaySE(SE_SELECT); @@ -1290,7 +1290,7 @@ static void ExecuteMoveItemInPocket(u8 taskId, u32 itemIndex) gBagMenuState.itemsAbove[gBagMenuState.pocket]--; Bag_BuildListMenuTemplate(gBagMenuState.pocket); data[0] = ListMenuInit(&gMultiuseListMenuTemplate, gBagMenuState.cursorPos[gBagMenuState.pocket], gBagMenuState.itemsAbove[gBagMenuState.pocket]); - ItemMenuIcons_ToggleInsertIndicatorBarVisibility(TRUE); + SetSwapLineInvisibility(TRUE); CreatePocketSwitchArrowPair(); gTasks[taskId].func = Task_BagMenu_HandleInput; } @@ -1304,7 +1304,7 @@ static void AbortMovingItemInPocket(u8 taskId, u32 itemIndex) gBagMenuState.itemsAbove[gBagMenuState.pocket]--; Bag_BuildListMenuTemplate(gBagMenuState.pocket); data[0] = ListMenuInit(&gMultiuseListMenuTemplate, gBagMenuState.cursorPos[gBagMenuState.pocket], gBagMenuState.itemsAbove[gBagMenuState.pocket]); - ItemMenuIcons_ToggleInsertIndicatorBarVisibility(TRUE); + SetSwapLineInvisibility(TRUE); CreatePocketSwitchArrowPair(); gTasks[taskId].func = Task_BagMenu_HandleInput; } @@ -1475,7 +1475,7 @@ static void Task_ItemMenuAction_Use(u8 taskId) PutWindowTilemap(0); PutWindowTilemap(1); ScheduleBgCopyTilemapToVram(0); - if (CalculatePlayerPartyCount() == 0 && ItemId_GetType(gSpecialVar_ItemId) == 1) + if (CalculatePlayerPartyCount() == 0 && ItemId_GetType(gSpecialVar_ItemId) == ITEM_TYPE_PARTY_MENU) Task_PrintThereIsNoPokemon(taskId); else ItemId_GetFieldFunc(gSpecialVar_ItemId)(taskId); @@ -1662,7 +1662,7 @@ void Task_ReturnToBagFromContextMenu(u8 taskId) Task_RedrawArrowsAndReturnToBagMenuSelect(taskId); } -static void unref_sub_810A288(u8 taskId) +static void Task_UnusedReturnToBag(u8 taskId) { s16 *data = gTasks[taskId].data; u16 itemsAbove; @@ -1784,7 +1784,7 @@ static void GoToBerryPouch_PCBox(void) static void ReturnToBagMenuFromSubmenu_PCBox(void) { - GoToBagMenu(ITEMMENULOCATION_PCBOX, OPEN_BAG_LAST, Cb2_ReturnToPSS); + GoToBagMenu(ITEMMENULOCATION_PCBOX, OPEN_BAG_LAST, CB2_ReturnToPokeStorage); } static void Task_ItemContext_Sell(u8 taskId) @@ -2033,7 +2033,7 @@ bool8 UseRegisteredKeyItemOnField(void) { if (CheckBagHasItem(gSaveBlock1Ptr->registeredItem, 1) == TRUE) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); FreezeObjectEvents(); HandleEnforcedLookDirectionOnPlayerStopMoving(); StopPlayerAvatar(); @@ -2044,7 +2044,7 @@ bool8 UseRegisteredKeyItemOnField(void) } gSaveBlock1Ptr->registeredItem = ITEM_NONE; } - ScriptContext1_SetupScript(EventScript_BagItemCanBeRegistered); + ScriptContext_SetupScript(EventScript_BagItemCanBeRegistered); return TRUE; } diff --git a/src/item_menu_icons.c b/src/item_menu_icons.c index 09fe4675d..36997612f 100644 --- a/src/item_menu_icons.c +++ b/src/item_menu_icons.c @@ -5,51 +5,80 @@ #include "item_menu_icons.h" #include "constants/items.h" -static EWRAM_DATA u8 sItemMenuIconSpriteIds[12] = {0}; +enum { + TAG_BAG = 100, + TAG_SWAP_LINE, + TAG_ITEM_ICON, + TAG_ITEM_ICON_ALT, +}; + +#define NUM_SWAP_LINE_SPRITES 9 + +// Indexes for sItemMenuIconSpriteIds +enum { + SPR_BAG, + SPR_SWAP_LINE_START, + SPR_ITEM_ICON = SPR_SWAP_LINE_START + NUM_SWAP_LINE_SPRITES, + SPR_ITEM_ICON_ALT, + SPR_COUNT +}; + +enum { + ANIM_SWAP_LINE_START, + ANIM_SWAP_LINE_MID, + ANIM_SWAP_LINE_END, +}; + +enum { + AFFINEANIM_BAG_IDLE, + AFFINEANIM_BAG_SHAKE, +}; + +static EWRAM_DATA u8 sItemMenuIconSpriteIds[SPR_COUNT] = {0}; static EWRAM_DATA void *sItemIconTilesBuffer = NULL; static EWRAM_DATA void *sItemIconTilesBufferPadded = NULL; static void SpriteCB_BagVisualSwitchingPockets(struct Sprite *sprite); static void SpriteCB_ShakeBagSprite(struct Sprite *sprite); -static const struct OamData sOamData_BagOrSatchel = { +static const struct OamData sOamData_Bag = { .affineMode = ST_OAM_AFFINE_NORMAL, - .shape = ST_OAM_SQUARE, - .size = 3, + .shape = SPRITE_SHAPE(64x64), + .size = SPRITE_SIZE(64x64), .priority = 1, .paletteNum = 0 }; -static const union AnimCmd sAnim_BagOrSatchel_OpenItemPocket[] = { +static const union AnimCmd sAnim_Bag_OpenPokeBallsPocket[] = { ANIMCMD_FRAME( 0, 5), ANIMCMD_FRAME(0x40, 0), ANIMCMD_END }; -static const union AnimCmd sAnim_BagOrSatchel_OpenKeyItemPocket[] = { +static const union AnimCmd sAnim_Bag_OpenItemsPocket[] = { ANIMCMD_FRAME( 0, 5), ANIMCMD_FRAME(0x80, 0), ANIMCMD_END }; -static const union AnimCmd sAnim_BagOrSatchel_OpenPokeBallsPocket[] = { +static const union AnimCmd sAnim_Bag_OpenKeyItemsPocket[] = { ANIMCMD_FRAME( 0, 5), ANIMCMD_FRAME(0xc0, 0), ANIMCMD_END }; -static const union AnimCmd *const sAnimTable_BagOrSatchel[] = { - sAnim_BagOrSatchel_OpenKeyItemPocket, - sAnim_BagOrSatchel_OpenPokeBallsPocket, - sAnim_BagOrSatchel_OpenItemPocket +static const union AnimCmd *const sAnims_Bag[] = { + [POCKET_ITEMS - 1] = sAnim_Bag_OpenItemsPocket, + [POCKET_KEY_ITEMS - 1] = sAnim_Bag_OpenKeyItemsPocket, + [POCKET_POKE_BALLS - 1] = sAnim_Bag_OpenPokeBallsPocket, }; -static const union AffineAnimCmd sAffineAnim_Idle[] = { +static const union AffineAnimCmd sAffineAnim_BagIdle[] = { AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), AFFINEANIMCMD_END }; -static const union AffineAnimCmd sAffineAnim_Wobble[] = { +static const union AffineAnimCmd sAffineAnim_BagShake[] = { AFFINEANIMCMD_FRAME(0, 0, -2, 2), AFFINEANIMCMD_FRAME(0, 0, 2, 4), AFFINEANIMCMD_FRAME(0, 0, -2, 4), @@ -57,511 +86,134 @@ static const union AffineAnimCmd sAffineAnim_Wobble[] = { AFFINEANIMCMD_END }; -static const union AffineAnimCmd *const sAffineAnimTable_BagOrSatchel[] = { - sAffineAnim_Idle, - sAffineAnim_Wobble +static const union AffineAnimCmd *const sAffineAnimTable_Bag[] = { + [AFFINEANIM_BAG_IDLE] = sAffineAnim_BagIdle, + [AFFINEANIM_BAG_SHAKE] = sAffineAnim_BagShake }; -const struct CompressedSpriteSheet gSpriteSheet_Backpack = { - gUnknown_8E8362C, - 0x2000, - 100 +const struct CompressedSpriteSheet gSpriteSheet_BagMale = { + .data = gBagMale_Gfx, + .size = 0x2000, + .tag = TAG_BAG }; -const struct CompressedSpriteSheet gSpriteSheet_Satchel = { - gUnknown_8E83DBC, - 0x2000, - 100 +const struct CompressedSpriteSheet gSpriteSheet_BagFemale = { + .data = gBagFemale_Gfx, + .size = 0x2000, + .tag = TAG_BAG }; -const struct CompressedSpritePalette gSpritePalette_BagOrSatchel = { - gUnknown_8E84560, - 100 +const struct CompressedSpritePalette gSpritePalette_Bag = { + .data = gBag_Pal, + .tag = TAG_BAG }; -static const struct SpriteTemplate sSpriteTemplate_BagOrSatchel = { - 100, - 100, - &sOamData_BagOrSatchel, - sAnimTable_BagOrSatchel, - NULL, - sAffineAnimTable_BagOrSatchel, - SpriteCallbackDummy +static const struct SpriteTemplate sSpriteTemplate_Bag = { + .tileTag = TAG_BAG, + .paletteTag = TAG_BAG, + .oam = &sOamData_Bag, + .anims = sAnims_Bag, + .images = NULL, + .affineAnims = sAffineAnimTable_Bag, + .callback = SpriteCallbackDummy }; -static const struct OamData gUnknown_83D4214 = { +static const struct OamData sOamData_SwapLine = { .affineMode = ST_OAM_AFFINE_OFF, - .shape = ST_OAM_SQUARE, - .size = 1, + .shape = SPRITE_SHAPE(16x16), + .size = SPRITE_SIZE(16x16), .priority = 1, .paletteNum = 1 }; -static const union AnimCmd gUnknown_83D421C[] = { +static const union AnimCmd sAnim_SwapLine_Start[] = { ANIMCMD_FRAME(0, 0), ANIMCMD_END }; -static const union AnimCmd gUnknown_83D4224[] = { +static const union AnimCmd sAnim_SwapLine_Mid[] = { ANIMCMD_FRAME(4, 0), ANIMCMD_END }; -static const union AnimCmd gUnknown_83D422C[] = { +static const union AnimCmd sAnim_SwapLine_End[] = { ANIMCMD_FRAME(0, 0, .hFlip = TRUE), ANIMCMD_END }; -static const union AnimCmd *const gUnknown_83D4234[] = { - gUnknown_83D421C, - gUnknown_83D4224, - gUnknown_83D422C +static const union AnimCmd *const sAnims_SwapLine[] = { + [ANIM_SWAP_LINE_START] = sAnim_SwapLine_Start, + [ANIM_SWAP_LINE_MID] = sAnim_SwapLine_Mid, + [ANIM_SWAP_LINE_END] = sAnim_SwapLine_End }; const struct CompressedSpriteSheet gBagSwapSpriteSheet = { - gFile_graphics_interface_bag_swap_sheet, - 0x100, - 101 + .data = gSwapLine_Gfx, + .size = 0x100, + .tag = TAG_SWAP_LINE }; const struct CompressedSpritePalette gBagSwapSpritePalette = { - gFile_graphics_interface_bag_swap_palette, - 101 + .data = gSwapLine_Pal, + .tag = TAG_SWAP_LINE }; -static const struct SpriteTemplate gUnknown_83D4250 = { - 101, - 101, - &gUnknown_83D4214, - gUnknown_83D4234, - NULL, - gDummySpriteAffineAnimTable, - SpriteCallbackDummy +static const struct SpriteTemplate sSpriteTemplate_SwapLine = { + .tileTag = TAG_SWAP_LINE, + .paletteTag = TAG_SWAP_LINE, + .oam = &sOamData_SwapLine, + .anims = sAnims_SwapLine, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy }; static const struct OamData sOamData_ItemIcon = { .affineMode = ST_OAM_AFFINE_OFF, - .shape = ST_OAM_SQUARE, - .size = 2, + .shape = SPRITE_SHAPE(32x32), + .size = SPRITE_SIZE(32x32), .priority = 1, .paletteNum = 2 }; -static const union AnimCmd sAnim_ItemIcon_0[] = { +static const union AnimCmd sAnim_ItemIcon[] = { ANIMCMD_FRAME(0, 0), ANIMCMD_END }; -static const union AnimCmd *const sAnimTable_ItemIcon[] = { - sAnim_ItemIcon_0 +static const union AnimCmd *const sAnims_ItemIcon[] = { + sAnim_ItemIcon }; static const struct SpriteTemplate sSpriteTemplate_ItemIcon = { - 102, - 102, - &sOamData_ItemIcon, - sAnimTable_ItemIcon, - NULL, - gDummySpriteAffineAnimTable, - SpriteCallbackDummy + .tileTag = TAG_ITEM_ICON, + .paletteTag = TAG_ITEM_ICON, + .oam = &sOamData_ItemIcon, + .anims = sAnims_ItemIcon, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy }; -static const void *const sItemIconGfxPtrs[][2] = { - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_master_ball_sheet, gFile_graphics_items_icon_palettes_master_ball_palette}, - {gFile_graphics_items_icons_ultra_ball_sheet, gFile_graphics_items_icon_palettes_ultra_ball_palette}, - {gFile_graphics_items_icons_great_ball_sheet, gFile_graphics_items_icon_palettes_great_ball_palette}, - {gFile_graphics_items_icons_poke_ball_sheet, gFile_graphics_items_icon_palettes_poke_ball_palette}, - {gFile_graphics_items_icons_safari_ball_sheet, gFile_graphics_items_icon_palettes_safari_ball_palette}, - {gFile_graphics_items_icons_net_ball_sheet, gFile_graphics_items_icon_palettes_net_ball_palette}, - {gFile_graphics_items_icons_dive_ball_sheet, gFile_graphics_items_icon_palettes_dive_ball_palette}, - {gFile_graphics_items_icons_nest_ball_sheet, gFile_graphics_items_icon_palettes_nest_ball_palette}, - {gFile_graphics_items_icons_repeat_ball_sheet, gFile_graphics_items_icon_palettes_repeat_ball_palette}, - {gFile_graphics_items_icons_timer_ball_sheet, gFile_graphics_items_icon_palettes_repeat_ball_palette}, - {gFile_graphics_items_icons_luxury_ball_sheet, gFile_graphics_items_icon_palettes_luxury_ball_palette}, - {gFile_graphics_items_icons_premier_ball_sheet, gFile_graphics_items_icon_palettes_luxury_ball_palette}, - {gFile_graphics_items_icons_potion_sheet, gFile_graphics_items_icon_palettes_potion_palette}, - {gFile_graphics_items_icons_antidote_sheet, gFile_graphics_items_icon_palettes_antidote_palette}, - {gFile_graphics_items_icons_status_heal_sheet, gFile_graphics_items_icon_palettes_burn_heal_palette}, - {gFile_graphics_items_icons_status_heal_sheet, gFile_graphics_items_icon_palettes_ice_heal_palette}, - {gFile_graphics_items_icons_status_heal_sheet, gFile_graphics_items_icon_palettes_awakening_palette}, - {gFile_graphics_items_icons_status_heal_sheet, gFile_graphics_items_icon_palettes_paralyze_heal_palette}, - {gFile_graphics_items_icons_large_potion_sheet, gFile_graphics_items_icon_palettes_full_restore_palette}, - {gFile_graphics_items_icons_large_potion_sheet, gFile_graphics_items_icon_palettes_max_potion_palette}, - {gFile_graphics_items_icons_potion_sheet, gFile_graphics_items_icon_palettes_hyper_potion_palette}, - {gFile_graphics_items_icons_potion_sheet, gFile_graphics_items_icon_palettes_super_potion_palette}, - {gFile_graphics_items_icons_full_heal_sheet, gFile_graphics_items_icon_palettes_full_heal_palette}, - {gFile_graphics_items_icons_revive_sheet, gFile_graphics_items_icon_palettes_revive_palette}, - {gFile_graphics_items_icons_max_revive_sheet, gFile_graphics_items_icon_palettes_revive_palette}, - {gFile_graphics_items_icons_fresh_water_sheet, gFile_graphics_items_icon_palettes_fresh_water_palette}, - {gFile_graphics_items_icons_soda_pop_sheet, gFile_graphics_items_icon_palettes_soda_pop_palette}, - {gFile_graphics_items_icons_lemonade_sheet, gFile_graphics_items_icon_palettes_lemonade_palette}, - {gFile_graphics_items_icons_moomoo_milk_sheet, gFile_graphics_items_icon_palettes_moomoo_milk_palette}, - {gFile_graphics_items_icons_powder_sheet, gFile_graphics_items_icon_palettes_energy_powder_palette}, - {gFile_graphics_items_icons_energy_root_sheet, gFile_graphics_items_icon_palettes_energy_root_palette}, - {gFile_graphics_items_icons_powder_sheet, gFile_graphics_items_icon_palettes_heal_powder_palette}, - {gFile_graphics_items_icons_revival_herb_sheet, gFile_graphics_items_icon_palettes_revival_herb_palette}, - {gFile_graphics_items_icons_ether_sheet, gFile_graphics_items_icon_palettes_ether_palette}, - {gFile_graphics_items_icons_ether_sheet, gFile_graphics_items_icon_palettes_max_ether_palette}, - {gFile_graphics_items_icons_ether_sheet, gFile_graphics_items_icon_palettes_elixir_palette}, - {gFile_graphics_items_icons_ether_sheet, gFile_graphics_items_icon_palettes_max_elixir_palette}, - {gFile_graphics_items_icons_lava_cookie_sheet, gFile_graphics_items_icon_palettes_lava_cookie_and_letter_palette}, - {gFile_graphics_items_icons_flute_sheet, gFile_graphics_items_icon_palettes_blue_flute_palette}, - {gFile_graphics_items_icons_flute_sheet, gFile_graphics_items_icon_palettes_yellow_flute_palette}, - {gFile_graphics_items_icons_flute_sheet, gFile_graphics_items_icon_palettes_red_flute_palette}, - {gFile_graphics_items_icons_flute_sheet, gFile_graphics_items_icon_palettes_black_flute_palette}, - {gFile_graphics_items_icons_flute_sheet, gFile_graphics_items_icon_palettes_white_flute_palette}, - {gFile_graphics_items_icons_berry_juice_sheet, gFile_graphics_items_icon_palettes_berry_juice_palette}, - {gFile_graphics_items_icons_sacred_ash_sheet, gFile_graphics_items_icon_palettes_sacred_ash_palette}, - {gFile_graphics_items_icons_powder_sheet, gFile_graphics_items_icon_palettes_shoal_salt_palette}, - {gFile_graphics_items_icons_shoal_shell_sheet, gFile_graphics_items_icon_palettes_shell_palette}, - {gFile_graphics_items_icons_shard_sheet, gFile_graphics_items_icon_palettes_red_shard_palette}, - {gFile_graphics_items_icons_shard_sheet, gFile_graphics_items_icon_palettes_blue_shard_palette}, - {gFile_graphics_items_icons_shard_sheet, gFile_graphics_items_icon_palettes_yellow_shard_palette}, - {gFile_graphics_items_icons_shard_sheet, gFile_graphics_items_icon_palettes_green_shard_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_hp_up_sheet, gFile_graphics_items_icon_palettes_hp_up_palette}, - {gFile_graphics_items_icons_vitamin_sheet, gFile_graphics_items_icon_palettes_protein_palette}, - {gFile_graphics_items_icons_vitamin_sheet, gFile_graphics_items_icon_palettes_iron_palette}, - {gFile_graphics_items_icons_vitamin_sheet, gFile_graphics_items_icon_palettes_carbos_palette}, - {gFile_graphics_items_icons_vitamin_sheet, gFile_graphics_items_icon_palettes_calcium_palette}, - {gFile_graphics_items_icons_rare_candy_sheet, gFile_graphics_items_icon_palettes_rare_candy_palette}, - {gFile_graphics_items_icons_pp_up_sheet, gFile_graphics_items_icon_palettes_pp_up_palette}, - {gFile_graphics_items_icons_vitamin_sheet, gFile_graphics_items_icon_palettes_zinc_palette}, - {gFile_graphics_items_icons_pp_max_sheet, gFile_graphics_items_icon_palettes_pp_max_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_battle_stat_item_sheet, gFile_graphics_items_icon_palettes_guard_spec_palette}, - {gFile_graphics_items_icons_battle_stat_item_sheet, gFile_graphics_items_icon_palettes_dire_hit_palette}, - {gFile_graphics_items_icons_battle_stat_item_sheet, gFile_graphics_items_icon_palettes_x_attack_palette}, - {gFile_graphics_items_icons_battle_stat_item_sheet, gFile_graphics_items_icon_palettes_x_defend_palette}, - {gFile_graphics_items_icons_battle_stat_item_sheet, gFile_graphics_items_icon_palettes_x_speed_palette}, - {gFile_graphics_items_icons_battle_stat_item_sheet, gFile_graphics_items_icon_palettes_x_accuracy_palette}, - {gFile_graphics_items_icons_battle_stat_item_sheet, gFile_graphics_items_icon_palettes_x_special_palette}, - {gFile_graphics_items_icons_poke_doll_sheet, gFile_graphics_items_icon_palettes_poke_doll_palette}, - {gFile_graphics_items_icons_fluffy_tail_sheet, gFile_graphics_items_icon_palettes_fluffy_tail_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_repel_sheet, gFile_graphics_items_icon_palettes_super_repel_palette}, - {gFile_graphics_items_icons_repel_sheet, gFile_graphics_items_icon_palettes_max_repel_palette}, - {gFile_graphics_items_icons_escape_rope_sheet, gFile_graphics_items_icon_palettes_escape_rope_palette}, - {gFile_graphics_items_icons_repel_sheet, gFile_graphics_items_icon_palettes_repel_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_sun_stone_sheet, gFile_graphics_items_icon_palettes_sun_stone_palette}, - {gFile_graphics_items_icons_moon_stone_sheet, gFile_graphics_items_icon_palettes_moon_stone_palette}, - {gFile_graphics_items_icons_fire_stone_sheet, gFile_graphics_items_icon_palettes_fire_stone_palette}, - {gFile_graphics_items_icons_thunder_stone_sheet, gFile_graphics_items_icon_palettes_thunder_stone_palette}, - {gFile_graphics_items_icons_water_stone_sheet, gFile_graphics_items_icon_palettes_water_stone_palette}, - {gFile_graphics_items_icons_leaf_stone_sheet, gFile_graphics_items_icon_palettes_leaf_stone_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_tiny_mushroom_sheet, gFile_graphics_items_icon_palettes_mushroom_palette}, - {gFile_graphics_items_icons_big_mushroom_sheet, gFile_graphics_items_icon_palettes_mushroom_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_pearl_sheet, gFile_graphics_items_icon_palettes_pearl_palette}, - {gFile_graphics_items_icons_big_pearl_sheet, gFile_graphics_items_icon_palettes_pearl_palette}, - {gFile_graphics_items_icons_stardust_sheet, gFile_graphics_items_icon_palettes_star_palette}, - {gFile_graphics_items_icons_star_piece_sheet, gFile_graphics_items_icon_palettes_star_palette}, - {gFile_graphics_items_icons_nugget_sheet, gFile_graphics_items_icon_palettes_nugget_palette}, - {gFile_graphics_items_icons_heart_scale_sheet, gFile_graphics_items_icon_palettes_heart_scale_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_orange_mail_sheet, gFile_graphics_items_icon_palettes_orange_mail_palette}, - {gFile_graphics_items_icons_harbor_mail_sheet, gFile_graphics_items_icon_palettes_harbor_mail_palette}, - {gFile_graphics_items_icons_glitter_mail_sheet, gFile_graphics_items_icon_palettes_glitter_mail_palette}, - {gFile_graphics_items_icons_mech_mail_sheet, gFile_graphics_items_icon_palettes_mech_mail_palette}, - {gFile_graphics_items_icons_wood_mail_sheet, gFile_graphics_items_icon_palettes_wood_mail_palette}, - {gFile_graphics_items_icons_wave_mail_sheet, gFile_graphics_items_icon_palettes_wave_mail_palette}, - {gFile_graphics_items_icons_bead_mail_sheet, gFile_graphics_items_icon_palettes_bead_mail_palette}, - {gFile_graphics_items_icons_shadow_mail_sheet, gFile_graphics_items_icon_palettes_shadow_mail_palette}, - {gFile_graphics_items_icons_tropic_mail_sheet, gFile_graphics_items_icon_palettes_tropic_mail_palette}, - {gFile_graphics_items_icons_dream_mail_sheet, gFile_graphics_items_icon_palettes_dream_mail_palette}, - {gFile_graphics_items_icons_fab_mail_sheet, gFile_graphics_items_icon_palettes_fab_mail_palette}, - {gFile_graphics_items_icons_retro_mail_sheet, gFile_graphics_items_icon_palettes_retro_mail_palette}, - {gFile_graphics_items_icons_cheri_berry_sheet, gFile_graphics_items_icon_palettes_cheri_berry_palette}, - {gFile_graphics_items_icons_chesto_berry_sheet, gFile_graphics_items_icon_palettes_chesto_berry_palette}, - {gFile_graphics_items_icons_pecha_berry_sheet, gFile_graphics_items_icon_palettes_pecha_berry_palette}, - {gFile_graphics_items_icons_rawst_berry_sheet, gFile_graphics_items_icon_palettes_rawst_berry_palette}, - {gFile_graphics_items_icons_aspear_berry_sheet, gFile_graphics_items_icon_palettes_aspear_berry_palette}, - {gFile_graphics_items_icons_leppa_berry_sheet, gFile_graphics_items_icon_palettes_leppa_berry_palette}, - {gFile_graphics_items_icons_oran_berry_sheet, gFile_graphics_items_icon_palettes_oran_berry_palette}, - {gFile_graphics_items_icons_persim_berry_sheet, gFile_graphics_items_icon_palettes_persim_berry_palette}, - {gFile_graphics_items_icons_lum_berry_sheet, gFile_graphics_items_icon_palettes_lum_berry_palette}, - {gFile_graphics_items_icons_sitrus_berry_sheet, gFile_graphics_items_icon_palettes_sitrus_berry_palette}, - {gFile_graphics_items_icons_figy_berry_sheet, gFile_graphics_items_icon_palettes_figy_berry_palette}, - {gFile_graphics_items_icons_wiki_berry_sheet, gFile_graphics_items_icon_palettes_wiki_berry_palette}, - {gFile_graphics_items_icons_mago_berry_sheet, gFile_graphics_items_icon_palettes_mago_berry_palette}, - {gFile_graphics_items_icons_aguav_berry_sheet, gFile_graphics_items_icon_palettes_aguav_berry_palette}, - {gFile_graphics_items_icons_iapapa_berry_sheet, gFile_graphics_items_icon_palettes_iapapa_berry_palette}, - {gFile_graphics_items_icons_razz_berry_sheet, gFile_graphics_items_icon_palettes_razz_berry_palette}, - {gFile_graphics_items_icons_bluk_berry_sheet, gFile_graphics_items_icon_palettes_bluk_berry_palette}, - {gFile_graphics_items_icons_nanab_berry_sheet, gFile_graphics_items_icon_palettes_nanab_berry_palette}, - {gFile_graphics_items_icons_wepear_berry_sheet, gFile_graphics_items_icon_palettes_wepear_berry_palette}, - {gFile_graphics_items_icons_pinap_berry_sheet, gFile_graphics_items_icon_palettes_pinap_berry_palette}, - {gFile_graphics_items_icons_pomeg_berry_sheet, gFile_graphics_items_icon_palettes_pomeg_berry_palette}, - {gFile_graphics_items_icons_kelpsy_berry_sheet, gFile_graphics_items_icon_palettes_kelpsy_berry_palette}, - {gFile_graphics_items_icons_qualot_berry_sheet, gFile_graphics_items_icon_palettes_qualot_berry_palette}, - {gFile_graphics_items_icons_hondew_berry_sheet, gFile_graphics_items_icon_palettes_hondew_berry_palette}, - {gFile_graphics_items_icons_grepa_berry_sheet, gFile_graphics_items_icon_palettes_grepa_berry_palette}, - {gFile_graphics_items_icons_tamato_berry_sheet, gFile_graphics_items_icon_palettes_tamato_berry_palette}, - {gFile_graphics_items_icons_cornn_berry_sheet, gFile_graphics_items_icon_palettes_cornn_berry_palette}, - {gFile_graphics_items_icons_magost_berry_sheet, gFile_graphics_items_icon_palettes_magost_berry_palette}, - {gFile_graphics_items_icons_rabuta_berry_sheet, gFile_graphics_items_icon_palettes_rabuta_berry_palette}, - {gFile_graphics_items_icons_nomel_berry_sheet, gFile_graphics_items_icon_palettes_nomel_berry_palette}, - {gFile_graphics_items_icons_spelon_berry_sheet, gFile_graphics_items_icon_palettes_spelon_berry_palette}, - {gFile_graphics_items_icons_pamtre_berry_sheet, gFile_graphics_items_icon_palettes_pamtre_berry_palette}, - {gFile_graphics_items_icons_watmel_berry_sheet, gFile_graphics_items_icon_palettes_watmel_berry_palette}, - {gFile_graphics_items_icons_durin_berry_sheet, gFile_graphics_items_icon_palettes_durin_berry_palette}, - {gFile_graphics_items_icons_belue_berry_sheet, gFile_graphics_items_icon_palettes_belue_berry_palette}, - {gFile_graphics_items_icons_liechi_berry_sheet, gFile_graphics_items_icon_palettes_liechi_berry_palette}, - {gFile_graphics_items_icons_ganlon_berry_sheet, gFile_graphics_items_icon_palettes_ganlon_berry_palette}, - {gFile_graphics_items_icons_salac_berry_sheet, gFile_graphics_items_icon_palettes_salac_berry_palette}, - {gFile_graphics_items_icons_petaya_berry_sheet, gFile_graphics_items_icon_palettes_petaya_berry_palette}, - {gFile_graphics_items_icons_apicot_berry_sheet, gFile_graphics_items_icon_palettes_apicot_berry_palette}, - {gFile_graphics_items_icons_lansat_berry_sheet, gFile_graphics_items_icon_palettes_lansat_berry_palette}, - {gFile_graphics_items_icons_starf_berry_sheet, gFile_graphics_items_icon_palettes_starf_berry_palette}, - {gFile_graphics_items_icons_enigma_berry_sheet, gFile_graphics_items_icon_palettes_enigma_berry_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_bright_powder_sheet, gFile_graphics_items_icon_palettes_bright_powder_palette}, - {gFile_graphics_items_icons_in_battle_herb_sheet, gFile_graphics_items_icon_palettes_white_herb_palette}, - {gFile_graphics_items_icons_macho_brace_sheet, gFile_graphics_items_icon_palettes_macho_brace_palette}, - {gFile_graphics_items_icons_exp_share_sheet, gFile_graphics_items_icon_palettes_exp_share_palette}, - {gFile_graphics_items_icons_quick_claw_sheet, gFile_graphics_items_icon_palettes_quick_claw_palette}, - {gFile_graphics_items_icons_soothe_bell_sheet, gFile_graphics_items_icon_palettes_soothe_bell_palette}, - {gFile_graphics_items_icons_in_battle_herb_sheet, gFile_graphics_items_icon_palettes_mental_herb_palette}, - {gFile_graphics_items_icons_choice_band_sheet, gFile_graphics_items_icon_palettes_choice_band_palette}, - {gFile_graphics_items_icons_kings_rock_sheet, gFile_graphics_items_icon_palettes_kings_rock_palette}, - {gFile_graphics_items_icons_silver_powder_sheet, gFile_graphics_items_icon_palettes_silver_powder_palette}, - {gFile_graphics_items_icons_amulet_coin_sheet, gFile_graphics_items_icon_palettes_amulet_coin_palette}, - {gFile_graphics_items_icons_cleanse_tag_sheet, gFile_graphics_items_icon_palettes_cleanse_tag_palette}, - {gFile_graphics_items_icons_soul_dew_sheet, gFile_graphics_items_icon_palettes_soul_dew_palette}, - {gFile_graphics_items_icons_deep_sea_tooth_sheet, gFile_graphics_items_icon_palettes_deep_sea_tooth_palette}, - {gFile_graphics_items_icons_deep_sea_scale_sheet, gFile_graphics_items_icon_palettes_deep_sea_scale_palette}, - {gFile_graphics_items_icons_smoke_ball_sheet, gFile_graphics_items_icon_palettes_smoke_ball_palette}, - {gFile_graphics_items_icons_everstone_sheet, gFile_graphics_items_icon_palettes_everstone_palette}, - {gFile_graphics_items_icons_focus_band_sheet, gFile_graphics_items_icon_palettes_focus_band_palette}, - {gFile_graphics_items_icons_lucky_egg_sheet, gFile_graphics_items_icon_palettes_lucky_egg_palette}, - {gFile_graphics_items_icons_scope_lens_sheet, gFile_graphics_items_icon_palettes_scope_lens_palette}, - {gFile_graphics_items_icons_metal_coat_sheet, gFile_graphics_items_icon_palettes_metal_coat_palette}, - {gFile_graphics_items_icons_leftovers_sheet, gFile_graphics_items_icon_palettes_leftovers_palette}, - {gFile_graphics_items_icons_dragon_scale_sheet, gFile_graphics_items_icon_palettes_dragon_scale_palette}, - {gFile_graphics_items_icons_light_ball_sheet, gFile_graphics_items_icon_palettes_light_ball_palette}, - {gFile_graphics_items_icons_soft_sand_sheet, gFile_graphics_items_icon_palettes_soft_sand_palette}, - {gFile_graphics_items_icons_hard_stone_sheet, gFile_graphics_items_icon_palettes_hard_stone_palette}, - {gFile_graphics_items_icons_miracle_seed_sheet, gFile_graphics_items_icon_palettes_miracle_seed_palette}, - {gFile_graphics_items_icons_black_glasses_sheet, gFile_graphics_items_icon_palettes_black_type_enhancing_item_palette}, - {gFile_graphics_items_icons_black_belt_sheet, gFile_graphics_items_icon_palettes_black_type_enhancing_item_palette}, - {gFile_graphics_items_icons_magnet_sheet, gFile_graphics_items_icon_palettes_magnet_palette}, - {gFile_graphics_items_icons_mystic_water_sheet, gFile_graphics_items_icon_palettes_mystic_water_palette}, - {gFile_graphics_items_icons_sharp_beak_sheet, gFile_graphics_items_icon_palettes_sharp_beak_palette}, - {gFile_graphics_items_icons_poison_barb_sheet, gFile_graphics_items_icon_palettes_poison_barb_palette}, - {gFile_graphics_items_icons_never_melt_ice_sheet, gFile_graphics_items_icon_palettes_never_melt_ice_palette}, - {gFile_graphics_items_icons_spell_tag_sheet, gFile_graphics_items_icon_palettes_spell_tag_palette}, - {gFile_graphics_items_icons_twisted_spoon_sheet, gFile_graphics_items_icon_palettes_twisted_spoon_palette}, - {gFile_graphics_items_icons_charcoal_sheet, gFile_graphics_items_icon_palettes_charcoal_palette}, - {gFile_graphics_items_icons_dragon_fang_sheet, gFile_graphics_items_icon_palettes_dragon_fang_palette}, - {gFile_graphics_items_icons_silk_scarf_sheet, gFile_graphics_items_icon_palettes_silk_scarf_palette}, - {gFile_graphics_items_icons_up_grade_sheet, gFile_graphics_items_icon_palettes_up_grade_palette}, - {gFile_graphics_items_icons_shell_bell_sheet, gFile_graphics_items_icon_palettes_shell_palette}, - {gFile_graphics_items_icons_sea_incense_sheet, gFile_graphics_items_icon_palettes_sea_incense_palette}, - {gFile_graphics_items_icons_lax_incense_sheet, gFile_graphics_items_icon_palettes_lax_incense_palette}, - {gFile_graphics_items_icons_lucky_punch_sheet, gFile_graphics_items_icon_palettes_lucky_punch_palette}, - {gFile_graphics_items_icons_metal_powder_sheet, gFile_graphics_items_icon_palettes_metal_powder_palette}, - {gFile_graphics_items_icons_thick_club_sheet, gFile_graphics_items_icon_palettes_thick_club_palette}, - {gFile_graphics_items_icons_stick_sheet, gFile_graphics_items_icon_palettes_stick_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_scarf_sheet, gFile_graphics_items_icon_palettes_red_scarf_palette}, - {gFile_graphics_items_icons_scarf_sheet, gFile_graphics_items_icon_palettes_blue_scarf_palette}, - {gFile_graphics_items_icons_scarf_sheet, gFile_graphics_items_icon_palettes_pink_scarf_palette}, - {gFile_graphics_items_icons_scarf_sheet, gFile_graphics_items_icon_palettes_green_scarf_palette}, - {gFile_graphics_items_icons_scarf_sheet, gFile_graphics_items_icon_palettes_yellow_scarf_palette}, - {gFile_graphics_items_icons_mach_bike_sheet, gFile_graphics_items_icon_palettes_mach_bike_palette}, - {gFile_graphics_items_icons_coin_case_sheet, gFile_graphics_items_icon_palettes_coin_case_palette}, - {gFile_graphics_items_icons_itemfinder_sheet, gFile_graphics_items_icon_palettes_itemfinder_palette}, - {gFile_graphics_items_icons_old_rod_sheet, gFile_graphics_items_icon_palettes_old_rod_palette}, - {gFile_graphics_items_icons_good_rod_sheet, gFile_graphics_items_icon_palettes_good_rod_palette}, - {gFile_graphics_items_icons_super_rod_sheet, gFile_graphics_items_icon_palettes_super_rod_palette}, - {gFile_graphics_items_icons_ss_ticket_sheet, gFile_graphics_items_icon_palettes_ss_ticket_palette}, - {gFile_graphics_items_icons_contest_pass_sheet, gFile_graphics_items_icon_palettes_contest_pass_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_wailmer_pail_sheet, gFile_graphics_items_icon_palettes_wailmer_pail_palette}, - {gFile_graphics_items_icons_devon_goods_sheet, gFile_graphics_items_icon_palettes_devon_goods_palette}, - {gFile_graphics_items_icons_soot_sack_sheet, gFile_graphics_items_icon_palettes_soot_sack_palette}, - {gFile_graphics_items_icons_basement_key_sheet, gFile_graphics_items_icon_palettes_old_key_palette}, - {gFile_graphics_items_icons_acro_bike_sheet, gFile_graphics_items_icon_palettes_acro_bike_palette}, - {gFile_graphics_items_icons_pokeblock_case_sheet, gFile_graphics_items_icon_palettes_pokeblock_case_palette}, - {gFile_graphics_items_icons_letter_sheet, gFile_graphics_items_icon_palettes_lava_cookie_and_letter_palette}, - {gFile_graphics_items_icons_eon_ticket_sheet, gFile_graphics_items_icon_palettes_eon_ticket_palette}, - {gFile_graphics_items_icons_orb_sheet, gFile_graphics_items_icon_palettes_red_orb_palette}, - {gFile_graphics_items_icons_orb_sheet, gFile_graphics_items_icon_palettes_blue_orb_palette}, - {gFile_graphics_items_icons_scanner_sheet, gFile_graphics_items_icon_palettes_scanner_palette}, - {gFile_graphics_items_icons_go_goggles_sheet, gFile_graphics_items_icon_palettes_go_goggles_palette}, - {gFile_graphics_items_icons_meteorite_sheet, gFile_graphics_items_icon_palettes_meteorite_palette}, - {gFile_graphics_items_icons_room1_key_sheet, gFile_graphics_items_icon_palettes_key_palette}, - {gFile_graphics_items_icons_room2_key_sheet, gFile_graphics_items_icon_palettes_key_palette}, - {gFile_graphics_items_icons_room4_key_sheet, gFile_graphics_items_icon_palettes_key_palette}, - {gFile_graphics_items_icons_room6_key_sheet, gFile_graphics_items_icon_palettes_key_palette}, - {gFile_graphics_items_icons_storage_key_sheet, gFile_graphics_items_icon_palettes_old_key_palette}, - {gFile_graphics_items_icons_root_fossil_sheet, gFile_graphics_items_icon_palettes_hoenn_fossil_palette}, - {gFile_graphics_items_icons_claw_fossil_sheet, gFile_graphics_items_icon_palettes_hoenn_fossil_palette}, - {gFile_graphics_items_icons_devon_scope_sheet, gFile_graphics_items_icon_palettes_devon_scope_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_fighting_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_dragon_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_water_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_psychic_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_poison_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_ice_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_fighting_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_grass_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_fire_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_dark_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_ice_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_ice_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_psychic_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_water_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_grass_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_grass_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_steel_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_electric_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_electric_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_ground_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_ground_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_psychic_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_ghost_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_fighting_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_psychic_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_electric_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_fire_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_poison_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_rock_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_fire_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_rock_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_flying_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_dark_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_psychic_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_dark_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_steel_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_psychic_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_dark_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_fire_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_flying_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_water_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_normal_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_fighting_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_water_tm_hm_palette}, - {gFile_graphics_items_icons_tm_sheet, gFile_graphics_items_icon_palettes_water_tm_hm_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, - {gFile_graphics_items_icons_oaks_parcel_sheet, gFile_graphics_items_icon_palettes_oaks_parcel_palette}, - {gFile_graphics_items_icons_poke_flute_sheet, gFile_graphics_items_icon_palettes_poke_flute_palette}, - {gFile_graphics_items_icons_secret_key_sheet, gFile_graphics_items_icon_palettes_secret_key_palette}, - {gFile_graphics_items_icons_bike_voucher_sheet, gFile_graphics_items_icon_palettes_bike_voucher_palette}, - {gFile_graphics_items_icons_gold_teeth_sheet, gFile_graphics_items_icon_palettes_gold_teeth_palette}, - {gFile_graphics_items_icons_old_amber_sheet, gFile_graphics_items_icon_palettes_old_amber_palette}, - {gFile_graphics_items_icons_card_key_sheet, gFile_graphics_items_icon_palettes_card_key_palette}, - {gFile_graphics_items_icons_lift_key_sheet, gFile_graphics_items_icon_palettes_key_palette}, - {gFile_graphics_items_icons_helix_fossil_sheet, gFile_graphics_items_icon_palettes_kanto_fossil_palette}, - {gFile_graphics_items_icons_dome_fossil_sheet, gFile_graphics_items_icon_palettes_kanto_fossil_palette}, - {gFile_graphics_items_icons_silph_scope_sheet, gFile_graphics_items_icon_palettes_silph_scope_palette}, - {gFile_graphics_items_icons_bicycle_sheet, gFile_graphics_items_icon_palettes_bicycle_palette}, - {gFile_graphics_items_icons_town_map_sheet, gFile_graphics_items_icon_palettes_town_map_palette}, - {gFile_graphics_items_icons_vs_seeker_sheet, gFile_graphics_items_icon_palettes_vs_seeker_palette}, - {gFile_graphics_items_icons_fame_checker_sheet, gFile_graphics_items_icon_palettes_fame_checker_palette}, - {gFile_graphics_items_icons_tm_case_sheet, gFile_graphics_items_icon_palettes_tm_case_palette}, - {gFile_graphics_items_icons_berry_pouch_sheet, gFile_graphics_items_icon_palettes_berry_pouch_palette}, - {gFile_graphics_items_icons_teachy_tv_sheet, gFile_graphics_items_icon_palettes_teachy_tv_palette}, - {gFile_graphics_items_icons_tri_pass_sheet, gFile_graphics_items_icon_palettes_tri_pass_palette}, - {gFile_graphics_items_icons_rainbow_pass_sheet, gFile_graphics_items_icon_palettes_rainbow_pass_palette}, - {gFile_graphics_items_icons_tea_sheet, gFile_graphics_items_icon_palettes_tea_palette}, - {gFile_graphics_items_icons_mystic_ticket_sheet, gFile_graphics_items_icon_palettes_mystic_ticket_palette}, - {gFile_graphics_items_icons_aurora_ticket_sheet, gFile_graphics_items_icon_palettes_aurora_ticket_palette}, - {gFile_graphics_items_icons_powder_jar_sheet, gFile_graphics_items_icon_palettes_powder_jar_palette}, - {gFile_graphics_items_icons_gem_sheet, gFile_graphics_items_icon_palettes_ruby_palette}, - {gFile_graphics_items_icons_gem_sheet, gFile_graphics_items_icon_palettes_sapphire_palette}, - {gFile_graphics_items_icons_return_to_field_arrow_sheet, gFile_graphics_items_icon_palettes_return_to_field_arrow_palette} -}; +#include "data/item_icon_table.h" void ResetItemMenuIconState(void) { u16 i; - for (i = 0; i < NELEMS(sItemMenuIconSpriteIds); i++) - sItemMenuIconSpriteIds[i] = 0xFF; + for (i = 0; i < SPR_COUNT; i++) + sItemMenuIconSpriteIds[i] = SPRITE_NONE; } -void CreateBagOrSatchelSprite(u8 animNum) +void CreateBagSprite(u8 animNum) { - sItemMenuIconSpriteIds[0] = CreateSprite(&sSpriteTemplate_BagOrSatchel, 40, 68, 0); + sItemMenuIconSpriteIds[SPR_BAG] = CreateSprite(&sSpriteTemplate_Bag, 40, 68, 0); SetBagVisualPocketId(animNum); } void SetBagVisualPocketId(u8 animNum) { - struct Sprite *sprite = &gSprites[sItemMenuIconSpriteIds[0]]; + struct Sprite *sprite = &gSprites[sItemMenuIconSpriteIds[SPR_BAG]]; sprite->y2 = -5; sprite->callback = SpriteCB_BagVisualSwitchingPockets; StartSpriteAnim(sprite, animNum); @@ -577,10 +229,10 @@ static void SpriteCB_BagVisualSwitchingPockets(struct Sprite *sprite) void ShakeBagSprite(void) { - struct Sprite *sprite = &gSprites[sItemMenuIconSpriteIds[0]]; + struct Sprite *sprite = &gSprites[sItemMenuIconSpriteIds[SPR_BAG]]; if (sprite->affineAnimEnded) { - StartSpriteAffineAnim(sprite, 1); + StartSpriteAffineAnim(sprite, AFFINEANIM_BAG_SHAKE); sprite->callback = SpriteCB_ShakeBagSprite; } } @@ -589,54 +241,53 @@ static void SpriteCB_ShakeBagSprite(struct Sprite *sprite) { if (sprite->affineAnimEnded) { - StartSpriteAffineAnim(sprite, 0); + StartSpriteAffineAnim(sprite, AFFINEANIM_BAG_IDLE); sprite->callback = SpriteCallbackDummy; } } -void ItemMenuIcons_CreateInsertIndicatorBarHidden(void) +void CreateSwapLine(void) { u8 i; - u8 * ptr = &sItemMenuIconSpriteIds[1]; + u8 * spriteIds = &sItemMenuIconSpriteIds[SPR_SWAP_LINE_START]; - for (i = 0; i < 9; i++) + for (i = 0; i < NUM_SWAP_LINE_SPRITES; i++) { - ptr[i] = CreateSprite(&gUnknown_83D4250, i * 16 + 0x60, 7, 0); + spriteIds[i] = CreateSprite(&sSpriteTemplate_SwapLine, i * 16 + 96, 7, 0); switch (i) { case 0: + // ANIM_SWAP_LINE_START, by default break; - case 8: - StartSpriteAnim(&gSprites[ptr[i]], 2); + case NUM_SWAP_LINE_SPRITES - 1: + StartSpriteAnim(&gSprites[spriteIds[i]], ANIM_SWAP_LINE_END); break; default: - StartSpriteAnim(&gSprites[ptr[i]], 1); + StartSpriteAnim(&gSprites[spriteIds[i]], ANIM_SWAP_LINE_MID); break; } - gSprites[ptr[i]].invisible = TRUE; + gSprites[spriteIds[i]].invisible = TRUE; } } -void ItemMenuIcons_ToggleInsertIndicatorBarVisibility(bool8 invisible) +void SetSwapLineInvisibility(bool8 invisible) { u8 i; - u8 * ptr = &sItemMenuIconSpriteIds[1]; + u8 * spriteIds = &sItemMenuIconSpriteIds[SPR_SWAP_LINE_START]; - for (i = 0; i < 9; i++) - { - gSprites[ptr[i]].invisible = invisible; - } + for (i = 0; i < NUM_SWAP_LINE_SPRITES; i++) + gSprites[spriteIds[i]].invisible = invisible; } -void ItemMenuIcons_MoveInsertIndicatorBar(s16 x, u16 y) +void UpdateSwapLinePos(s16 x, u16 y) { u8 i; - u8 * ptr = &sItemMenuIconSpriteIds[1]; + u8 * spriteIds = &sItemMenuIconSpriteIds[SPR_SWAP_LINE_START]; - for (i = 0; i < 9; i++) + for (i = 0; i < NUM_SWAP_LINE_SPRITES; i++) { - gSprites[ptr[i]].x2 = x; - gSprites[ptr[i]].y = y + 7; + gSprites[spriteIds[i]].x2 = x; + gSprites[spriteIds[i]].y = y + 7; } } @@ -663,9 +314,7 @@ void CopyItemIconPicTo4x4Buffer(const void *src, void *dest) u8 i; for (i = 0; i < 3; i++) - { CpuCopy16(src + 0x60 * i, dest + 0x80 * i, 0x60); - } } u8 AddItemIconObject(u16 tilesTag, u16 paletteTag, u16 itemId) @@ -732,17 +381,18 @@ u8 AddItemIconObjectWithCustomObjectTemplate(const struct SpriteTemplate * origT void CreateItemMenuIcon(u16 itemId, u8 idx) { - u8 * ptr = &sItemMenuIconSpriteIds[10]; + u8 * spriteIds = &sItemMenuIconSpriteIds[SPR_ITEM_ICON]; u8 spriteId; - if (ptr[idx] == 0xFF) + if (spriteIds[idx] == SPRITE_NONE) { - FreeSpriteTilesByTag(102 + idx); - FreeSpritePaletteByTag(102 + idx); - spriteId = AddItemIconObject(102 + idx, 102 + idx, itemId); + // Either TAG_ITEM_ICON or TAG_ITEM_ICON_ALT + FreeSpriteTilesByTag(TAG_ITEM_ICON + idx); + FreeSpritePaletteByTag(TAG_ITEM_ICON + idx); + spriteId = AddItemIconObject(TAG_ITEM_ICON + idx, TAG_ITEM_ICON + idx, itemId); if (spriteId != MAX_SPRITES) { - ptr[idx] = spriteId; + spriteIds[idx] = spriteId; gSprites[spriteId].x2 = 24; gSprites[spriteId].y2 = 140; } @@ -751,37 +401,38 @@ void CreateItemMenuIcon(u16 itemId, u8 idx) void DestroyItemMenuIcon(u8 idx) { - u8 * ptr = &sItemMenuIconSpriteIds[10]; + u8 * spriteIds = &sItemMenuIconSpriteIds[SPR_ITEM_ICON]; - if (ptr[idx] != 0xFF) + if (spriteIds[idx] != SPRITE_NONE) { - DestroySpriteAndFreeResources(&gSprites[ptr[idx]]); - ptr[idx] = 0xFF; + DestroySpriteAndFreeResources(&gSprites[spriteIds[idx]]); + spriteIds[idx] = SPRITE_NONE; } } const void *GetItemIconGfxPtr(u16 itemId, u8 attrId) { - if (itemId > ITEM_N_A) + if (itemId > ITEMS_COUNT) itemId = ITEM_NONE; - return sItemIconGfxPtrs[itemId][attrId]; + return sItemIconTable[itemId][attrId]; } -void sub_80989A0(u16 itemId, u8 idx) +void CreateBerryPouchItemIcon(u16 itemId, u8 idx) { - u8 * ptr = &sItemMenuIconSpriteIds[10]; + u8 * spriteIds = &sItemMenuIconSpriteIds[SPR_ITEM_ICON]; u8 spriteId; - if (ptr[idx] == 0xFF) + if (spriteIds[idx] == SPRITE_NONE) { - FreeSpriteTilesByTag(102 + idx); - FreeSpritePaletteByTag(102 + idx); - spriteId = AddItemIconObject(102 + idx, 102 + idx, itemId); + // Either TAG_ITEM_ICON or TAG_ITEM_ICON_ALT + FreeSpriteTilesByTag(TAG_ITEM_ICON + idx); + FreeSpritePaletteByTag(TAG_ITEM_ICON + idx); + spriteId = AddItemIconObject(TAG_ITEM_ICON + idx, TAG_ITEM_ICON + idx, itemId); if (spriteId != MAX_SPRITES) { - ptr[idx] = spriteId; + spriteIds[idx] = spriteId; gSprites[spriteId].x2 = 24; - gSprites[spriteId].y2 = 147; + gSprites[spriteId].y2 = 147; // This value is the only difference from CreateItemMenuIcon } } } diff --git a/src/item_pc.c b/src/item_pc.c index e6d65d9c8..22ba74f04 100644 --- a/src/item_pc.c +++ b/src/item_pc.c @@ -342,7 +342,7 @@ static bool8 ItemPc_DoGfxSetup(void) gMain.state++; break; case 14: - ItemMenuIcons_CreateInsertIndicatorBarHidden(); + CreateSwapLine(); gMain.state++; break; case 15: @@ -529,7 +529,7 @@ static void ItemPc_MoveCursorFunc(s32 itemIndex, bool8 onInit, struct ListMenu * } else { - CreateItemMenuIcon(ITEM_N_A, sStateDataPtr->itemMenuIconSlot); + CreateItemMenuIcon(ITEMS_COUNT, sStateDataPtr->itemMenuIconSlot); desc = gText_ReturnToPC; } sStateDataPtr->itemMenuIconSlot ^= 1; @@ -774,8 +774,8 @@ static void ItemPc_MoveItemModeInit(u8 taskId, s16 pos) StringExpandPlaceholders(gStringVar4, gOtherText_WhereShouldTheStrVar1BePlaced); FillWindowPixelBuffer(1, 0x00); ItemPc_AddTextPrinterParameterized(1, FONT_2, gStringVar4, 0, 3, 2, 3, 0, 0); - ItemMenuIcons_MoveInsertIndicatorBar(-32, ListMenuGetYCoordForPrintingArrowCursor(data[0])); - ItemMenuIcons_ToggleInsertIndicatorBarVisibility(FALSE); + UpdateSwapLinePos(-32, ListMenuGetYCoordForPrintingArrowCursor(data[0])); + SetSwapLineInvisibility(FALSE); ItemPc_PrintOrRemoveCursor(data[0], 2); gTasks[taskId].func = Task_ItemPcMoveItemModeRun; } @@ -786,7 +786,7 @@ static void Task_ItemPcMoveItemModeRun(u8 taskId) ListMenu_ProcessInput(data[0]); ListMenuGetScrollAndRow(data[0], &sListMenuState.scroll, &sListMenuState.row); - ItemMenuIcons_MoveInsertIndicatorBar(-32, ListMenuGetYCoordForPrintingArrowCursor(data[0])); + UpdateSwapLinePos(-32, ListMenuGetYCoordForPrintingArrowCursor(data[0])); if (JOY_NEW(A_BUTTON | SELECT_BUTTON)) { PlaySE(SE_SELECT); @@ -814,7 +814,7 @@ static void ItemPc_InsertItemIntoNewSlot(u8 taskId, u32 pos) sListMenuState.row--; ItemPc_BuildListMenuTemplate(); data[0] = ListMenuInit(&gMultiuseListMenuTemplate, sListMenuState.scroll, sListMenuState.row); - ItemMenuIcons_ToggleInsertIndicatorBarVisibility(TRUE); + SetSwapLineInvisibility(TRUE); gTasks[taskId].func = Task_ItemPcMain; } } @@ -828,7 +828,7 @@ static void ItemPc_MoveItemModeCancel(u8 taskId, u32 pos) sListMenuState.row--; ItemPc_BuildListMenuTemplate(); data[0] = ListMenuInit(&gMultiuseListMenuTemplate, sListMenuState.scroll, sListMenuState.row); - ItemMenuIcons_ToggleInsertIndicatorBarVisibility(TRUE); + SetSwapLineInvisibility(TRUE); gTasks[taskId].func = Task_ItemPcMain; } @@ -1069,11 +1069,11 @@ static void ItemPc_InitWindows(void) InitWindows(sWindowTemplates); DeactivateAllTextPrinters(); - TextWindow_SetUserSelectedFrame(0, 0x3C0, 0xE0); - TextWindow_SetStdFrame0_WithPal(0, 0x3A3, 0xC0); - TextWindow_LoadResourcesStdFrame0(0, 0x3AC, 0xB0); - LoadPalette(stdpal_get(2), 0xD0, 0x20); - LoadPalette(gTMCaseMainWindowPalette, 0xF0, 0x20); + LoadUserWindowGfx(0, 0x3C0, 0xE0); + LoadStdWindowGfx(0, 0x3A3, 0xC0); + LoadMenuMessageWindowGfx(0, 0x3AC, 0xB0); + LoadPalette(GetTextWindowPalette(2), 0xD0, 0x20); + LoadPalette(gStandardMenuPalette, 0xF0, 0x20); for (i = 0; i < 3; i++) { FillWindowPixelBuffer(i, 0x00); diff --git a/src/item_use.c b/src/item_use.c index 716d42b9a..a0dfc50f2 100644 --- a/src/item_use.c +++ b/src/item_use.c @@ -33,6 +33,7 @@ #include "vs_seeker.h" #include "constants/sound.h" #include "constants/items.h" +#include "constants/item_effects.h" #include "constants/maps.h" #include "constants/moves.h" #include "constants/songs.h" @@ -43,14 +44,14 @@ static EWRAM_DATA void (*sItemUseOnFieldCB)(u8 taskId) = NULL; static void FieldCB_FadeInFromBlack(void); static void Task_WaitFadeIn_CallItemUseOnFieldCB(u8 taskId); static void Task_ItemUse_CloseMessageBoxAndReturnToField(u8 taskId); -static void sub_80A11C0(u8 taskId); -static bool8 sub_80A1194(void); -static void sub_80A1208(void); +static void Task_ItemUseWaitForFade(u8 taskId); +static bool8 FieldCB2_UseItemFromField(void); +static void CB2_CheckMail(void); static void ItemUseOnFieldCB_Bicycle(u8 taskId); -static bool8 ItemUseCheckFunc_Rod(void); +static bool8 CanFish(void); static void ItemUseOnFieldCB_Rod(u8 taskId); -static void sub_80A1648(u8 taskId); -static void sub_80A1674(u8 taskId); +static void Task_PlayPokeFlute(u8 taskId); +static void Task_DisplayPokeFluteMessage(u8 taskId); static void InitTMCaseFromBag(void); static void Task_InitTMCaseFromField(u8 taskId); static void InitBerryPouchFromBag(void); @@ -58,19 +59,21 @@ static void Task_InitBerryPouchFromField(u8 taskId); static void InitBerryPouchFromBattle(void); static void InitTeachyTvFromBag(void); static void Task_InitTeachyTvFromField(u8 taskId); -static void sub_80A19E8(u8 taskId); -static void sub_80A1A44(void); -static void sub_80A1B48(u8 taskId); -static void sub_80A1C08(u8 taskId); -static void sub_80A1CAC(void); -static void sub_80A1CC0(u8 taskId); -static void sub_80A1D58(void); -static void sub_80A1D68(u8 taskId); +static void Task_UseRepel(u8 taskId); +static void RemoveUsedItem(void); +static void Task_UsedBlackWhiteFlute(u8 taskId); +static void ItemUseOnFieldCB_EscapeRope(u8 taskId); +static void UseTownMapFromBag(void); +static void Task_UseTownMapFromField(u8 taskId); +static void UseFameCheckerFromBag(void); +static void Task_UseFameCheckerFromField(u8 taskId); static void Task_BattleUse_StatBooster_DelayAndPrint(u8 taskId); static void Task_BattleUse_StatBooster_WaitButton_ReturnToBattle(u8 taskId); -// No clue what this is -static const u8 sUnref_83E27B4[] = { +// unknown unused data. +// It's curiously about the size of an array of values indexed by species (including padding), +// but the arrangement of values is not sensible (e.g., not giving all "old unown" the same value). +static const u8 sUnused[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -126,13 +129,13 @@ static const u8 sUnref_83E27B4[] = { }; static void (*const sExitCallbackByItemType[])(void) = { - CB2_ShowPartyMenuForItemUse, - CB2_ReturnToField, - NULL, - NULL + [ITEM_TYPE_PARTY_MENU - 1] = CB2_ShowPartyMenuForItemUse, + [ITEM_TYPE_FIELD - 1] = CB2_ReturnToField, + [ITEM_TYPE_UNUSED - 1] = NULL, + [ITEM_TYPE_BAG_MENU - 1] = NULL, }; -static void Task_FadeOuFromBackToField(u8 taskId) +static void SetUpItemUseCallback(u8 taskId) { u8 itemType; if (gSpecialVar_ItemId == ITEM_ENIGMA_BERRY) @@ -147,18 +150,18 @@ static void Task_FadeOuFromBackToField(u8 taskId) else { ItemMenu_SetExitCallback(sExitCallbackByItemType[itemType]); - if (itemType == 1) + if (itemType == ITEM_TYPE_FIELD - 1) Bag_BeginCloseWin0Animation(); ItemMenu_StartFadeToExitCallback(taskId); } } -static void sub_80A103C(u8 taskId) +static void SetUpItemUseOnFieldCallback(u8 taskId) { if (gTasks[taskId].data[3] != 1) { gFieldCallback = FieldCB_FadeInFromBlack; - Task_FadeOuFromBackToField(taskId); + SetUpItemUseCallback(taskId); } else sItemUseOnFieldCB(taskId); @@ -173,12 +176,10 @@ static void FieldCB_FadeInFromBlack(void) static void Task_WaitFadeIn_CallItemUseOnFieldCB(u8 taskId) { if (IsWeatherNotFadingIn() == TRUE) - { sItemUseOnFieldCB(taskId); - } } -static void DisplayItemMessageInCurrentContext(u8 taskId, bool8 inField, u8 fontId, const u8 * str) +static void DisplayItemMessageInCurrentContext(u8 taskId, bool8 inField, u8 fontId, const u8 *str) { StringExpandPlaceholders(gStringVar4, str); if (inField == FALSE) @@ -197,7 +198,7 @@ static void Task_ItemUse_CloseMessageBoxAndReturnToField(u8 taskId) ClearDialogWindowAndFrame(0, 1); DestroyTask(taskId); ClearPlayerHeldMovementAndUnfreezeObjectEvents(); - ScriptContext2_Disable(); + UnlockPlayerFieldControls(); } u8 CheckIfItemIsTMHMOrEvolutionStone(u16 itemId) @@ -210,46 +211,46 @@ u8 CheckIfItemIsTMHMOrEvolutionStone(u16 itemId) return 0; } -static void sub_80A1184(void) +static void SetFieldCallback2ForItemUse(void) { - gFieldCallback2 = sub_80A1194; + gFieldCallback2 = FieldCB2_UseItemFromField; } -static bool8 sub_80A1194(void) +static bool8 FieldCB2_UseItemFromField(void) { FreezeObjectEvents(); - ScriptContext2_Enable(); + LockPlayerFieldControls(); FadeInFromBlack(); - CreateTask(sub_80A11C0, 10); + CreateTask(Task_ItemUseWaitForFade, 10); gExitStairsMovementDisabled = FALSE; return TRUE; } -static void sub_80A11C0(u8 taskId) +static void Task_ItemUseWaitForFade(u8 taskId) { if (IsWeatherNotFadingIn() == TRUE) { UnfreezeObjectEvents(); - ScriptContext2_Disable(); + UnlockPlayerFieldControls(); DestroyTask(taskId); } } -void FieldUseFunc_OrangeMail(u8 taskId) +void FieldUseFunc_Mail(u8 taskId) { - ItemMenu_SetExitCallback(sub_80A1208); + ItemMenu_SetExitCallback(CB2_CheckMail); ItemMenu_StartFadeToExitCallback(taskId); } -static void sub_80A1208(void) +static void CB2_CheckMail(void) { struct Mail mail; mail.itemId = gSpecialVar_ItemId; - ReadMail(&mail, CB2_BagMenuFromStartMenu, 0); + ReadMail(&mail, CB2_BagMenuFromStartMenu, FALSE); } -void FieldUseFunc_MachBike(u8 taskId) +void FieldUseFunc_Bike(u8 taskId) { s16 x, y; u8 behavior; @@ -262,11 +263,11 @@ void FieldUseFunc_MachBike(u8 taskId) || MetatileBehavior_IsHorizontalRail(behavior) == TRUE || MetatileBehavior_IsIsolatedVerticalRail(behavior) == TRUE || MetatileBehavior_IsIsolatedHorizontalRail(behavior) == TRUE) - DisplayItemMessageInCurrentContext(taskId, gTasks[taskId].data[3], FONT_2, gUnknown_8416451); + DisplayItemMessageInCurrentContext(taskId, gTasks[taskId].data[3], FONT_2, gText_CantDismountBike); else if (Overworld_IsBikingAllowed() == TRUE && !IsBikingDisallowedByPlayer()) { sItemUseOnFieldCB = ItemUseOnFieldCB_Bicycle; - sub_80A103C(taskId); + SetUpItemUseOnFieldCallback(taskId); } else PrintNotTheTimeToUseThat(taskId, gTasks[taskId].data[3]); @@ -278,22 +279,22 @@ static void ItemUseOnFieldCB_Bicycle(u8 taskId) PlaySE(SE_BIKE_BELL); GetOnOffBike(PLAYER_AVATAR_FLAG_MACH_BIKE | PLAYER_AVATAR_FLAG_ACRO_BIKE); ClearPlayerHeldMovementAndUnfreezeObjectEvents(); - ScriptContext2_Disable(); + UnlockPlayerFieldControls(); DestroyTask(taskId); } -void FieldUseFunc_OldRod(u8 taskId) +void FieldUseFunc_Rod(u8 taskId) { - if (ItemUseCheckFunc_Rod() == TRUE) + if (CanFish() == TRUE) { sItemUseOnFieldCB = ItemUseOnFieldCB_Rod; - sub_80A103C(taskId); + SetUpItemUseOnFieldCallback(taskId); } else PrintNotTheTimeToUseThat(taskId, gTasks[taskId].data[3]); } -static bool8 ItemUseCheckFunc_Rod(void) +static bool8 CanFish(void) { s16 x, y; u16 behavior; @@ -312,7 +313,7 @@ static bool8 ItemUseCheckFunc_Rod(void) } else { - if (MetatileBehavior_IsSurfable(behavior) && !MapGridIsImpassableAt(x, y)) + if (MetatileBehavior_IsSurfable(behavior) && MapGridGetCollisionAt(x, y) == 0) return TRUE; if (MetatileBehavior_IsBridge(behavior) == TRUE) return TRUE; @@ -330,13 +331,13 @@ void ItemUseOutOfBattle_Itemfinder(u8 taskId) { IncrementGameStat(GAME_STAT_USED_ITEMFINDER); sItemUseOnFieldCB = ItemUseOnFieldCB_Itemfinder; - sub_80A103C(taskId); + SetUpItemUseOnFieldCallback(taskId); } void FieldUseFunc_CoinCase(u8 taskId) { ConvertIntToDecimalStringN(gStringVar1, GetCoins(), STR_CONV_MODE_LEFT_ALIGN, 4); - StringExpandPlaceholders(gStringVar4, gUnknown_8416537); + StringExpandPlaceholders(gStringVar4, gText_CoinCase); ItemUse_SetQuestLogEvent(QL_EVENT_USED_ITEM, NULL, gSpecialVar_ItemId, 0xFFFF); if (gTasks[taskId].data[3] == 0) DisplayItemMessageInBag(taskId, FONT_2, gStringVar4, Task_ReturnToBagFromContextMenu); @@ -347,7 +348,7 @@ void FieldUseFunc_CoinCase(u8 taskId) void FieldUseFunc_PowderJar(u8 taskId) { ConvertIntToDecimalStringN(gStringVar1, GetBerryPowder(), STR_CONV_MODE_LEFT_ALIGN, 5); - StringExpandPlaceholders(gStringVar4, gUnknown_8416644); + StringExpandPlaceholders(gStringVar4, gText_PowderQty); ItemUse_SetQuestLogEvent(QL_EVENT_USED_ITEM, NULL, gSpecialVar_ItemId, 0xFFFF); if (gTasks[taskId].data[3] == 0) DisplayItemMessageInBag(taskId, FONT_2, gStringVar4, Task_ReturnToBagFromContextMenu); @@ -362,7 +363,7 @@ void FieldUseFunc_PokeFlute(u8 taskId) for (i = 0; i < CalculatePlayerPartyCount(); i++) { - if (!ExecuteTableBasedItemEffect(&gPlayerParty[i], ITEM_AWAKENING, i, MOVE_NONE)) + if (!ExecuteTableBasedItemEffect(&gPlayerParty[i], ITEM_AWAKENING, i, 0)) wokeSomeoneUp = TRUE; } @@ -370,76 +371,75 @@ void FieldUseFunc_PokeFlute(u8 taskId) { ItemUse_SetQuestLogEvent(QL_EVENT_USED_ITEM, NULL, gSpecialVar_ItemId, 0xFFFF); if (gTasks[taskId].data[3] == 0) - DisplayItemMessageInBag(taskId, FONT_2, gUnknown_8416690, sub_80A1648); + DisplayItemMessageInBag(taskId, FONT_2, gText_PlayedPokeFlute, Task_PlayPokeFlute); else - DisplayItemMessageOnField(taskId, FONT_2, gUnknown_8416690, sub_80A1648); + DisplayItemMessageOnField(taskId, FONT_2, gText_PlayedPokeFlute, Task_PlayPokeFlute); } else { - // Now that's a catchy tune! if (gTasks[taskId].data[3] == 0) - DisplayItemMessageInBag(taskId, FONT_2, gUnknown_841665C, Task_ReturnToBagFromContextMenu); + DisplayItemMessageInBag(taskId, FONT_2, gText_PlayedPokeFluteCatchy, Task_ReturnToBagFromContextMenu); else - DisplayItemMessageOnField(taskId, FONT_2, gUnknown_841665C, Task_ItemUse_CloseMessageBoxAndReturnToField); + DisplayItemMessageOnField(taskId, FONT_2, gText_PlayedPokeFluteCatchy, Task_ItemUse_CloseMessageBoxAndReturnToField); } } -static void sub_80A1648(u8 taskId) +static void Task_PlayPokeFlute(u8 taskId) { PlayFanfareByFanfareNum(FANFARE_POKE_FLUTE); - gTasks[taskId].func = sub_80A1674; + gTasks[taskId].func = Task_DisplayPokeFluteMessage; } -static void sub_80A1674(u8 taskId) +static void Task_DisplayPokeFluteMessage(u8 taskId) { if (WaitFanfare(FALSE)) { if (gTasks[taskId].data[3] == 0) - DisplayItemMessageInBag(taskId, FONT_2, gUnknown_84166A7, Task_ReturnToBagFromContextMenu); + DisplayItemMessageInBag(taskId, FONT_2, gText_PokeFluteAwakenedMon, Task_ReturnToBagFromContextMenu); else - DisplayItemMessageOnField(taskId, FONT_2, gUnknown_84166A7, Task_ItemUse_CloseMessageBoxAndReturnToField); + DisplayItemMessageOnField(taskId, FONT_2, gText_PokeFluteAwakenedMon, Task_ItemUse_CloseMessageBoxAndReturnToField); } } -static void sub_80A16D0(u8 taskId) +static void DoSetUpItemUseCallback(u8 taskId) { - Task_FadeOuFromBackToField(taskId); + SetUpItemUseCallback(taskId); } void FieldUseFunc_Medicine(u8 taskId) { gItemUseCB = ItemUseCB_Medicine; - sub_80A16D0(taskId); + DoSetUpItemUseCallback(taskId); } void FieldUseFunc_Ether(u8 taskId) { - gItemUseCB = ItemUseCB_PPRecovery; - sub_80A16D0(taskId); + gItemUseCB = ItemUseCB_TryRestorePP; + DoSetUpItemUseCallback(taskId); } void FieldUseFunc_PpUp(u8 taskId) { gItemUseCB = ItemUseCB_PPUp; - sub_80A16D0(taskId); + DoSetUpItemUseCallback(taskId); } void FieldUseFunc_RareCandy(u8 taskId) { gItemUseCB = ItemUseCB_RareCandy; - sub_80A16D0(taskId); + DoSetUpItemUseCallback(taskId); } void FieldUseFunc_EvoItem(u8 taskId) { gItemUseCB = ItemUseCB_EvolutionStone; - sub_80A16D0(taskId); + DoSetUpItemUseCallback(taskId); } void FieldUseFunc_SacredAsh(u8 taskId) { gItemUseCB = ItemUseCB_SacredAsh; - Task_FadeOuFromBackToField(taskId); + SetUpItemUseCallback(taskId); } void FieldUseFunc_TmCase(u8 taskId) @@ -467,7 +467,7 @@ static void Task_InitTMCaseFromField(u8 taskId) if (!gPaletteFade.active) { CleanupOverworldWindowsAndTilemaps(); - sub_80A1184(); + SetFieldCallback2ForItemUse(); InitTMCase(0, CB2_ReturnToField, 1); DestroyTask(taskId); } @@ -498,7 +498,7 @@ static void Task_InitBerryPouchFromField(u8 taskId) if (!gPaletteFade.active) { CleanupOverworldWindowsAndTilemaps(); - sub_80A1184(); + SetFieldCallback2ForItemUse(); InitBerryPouch(BERRYPOUCH_FROMFIELD, CB2_ReturnToField, 1); DestroyTask(taskId); } @@ -541,45 +541,45 @@ static void Task_InitTeachyTvFromField(u8 taskId) if (!gPaletteFade.active) { CleanupOverworldWindowsAndTilemaps(); - sub_80A1184(); + SetFieldCallback2ForItemUse(); InitTeachyTvController(0, CB2_ReturnToField); DestroyTask(taskId); } } -void FieldUseFunc_SuperRepel(u8 taskId) +void FieldUseFunc_Repel(u8 taskId) { if (VarGet(VAR_REPEL_STEP_COUNT) == 0) { PlaySE(SE_REPEL); - gTasks[taskId].func = sub_80A19E8; + gTasks[taskId].func = Task_UseRepel; } else // An earlier repel is still in effect - DisplayItemMessageInBag(taskId, FONT_2, gUnknown_841659E, Task_ReturnToBagFromContextMenu); + DisplayItemMessageInBag(taskId, FONT_2, gText_RepelEffectsLingered, Task_ReturnToBagFromContextMenu); } -static void sub_80A19E8(u8 taskId) +static void Task_UseRepel(u8 taskId) { if (!IsSEPlaying()) { ItemUse_SetQuestLogEvent(QL_EVENT_USED_ITEM, NULL, gSpecialVar_ItemId, 0xFFFF); VarSet(VAR_REPEL_STEP_COUNT, ItemId_GetHoldEffectParam(gSpecialVar_ItemId)); - sub_80A1A44(); + RemoveUsedItem(); DisplayItemMessageInBag(taskId, FONT_2, gStringVar4, Task_ReturnToBagFromContextMenu); } } -static void sub_80A1A44(void) +static void RemoveUsedItem(void) { RemoveBagItem(gSpecialVar_ItemId, 1); Pocket_CalculateNItemsAndMaxShowed(ItemId_GetPocket(gSpecialVar_ItemId)); PocketCalculateInitialCursorPosAndItemsAbove(ItemId_GetPocket(gSpecialVar_ItemId)); CopyItemName(gSpecialVar_ItemId, gStringVar2); - StringExpandPlaceholders(gStringVar4, gUnknown_841658C); + StringExpandPlaceholders(gStringVar4, gText_PlayerUsedVar2); } -void FieldUseFunc_BlackFlute(u8 taskId) +void FieldUseFunc_BlackWhiteFlute(u8 taskId) { ItemUse_SetQuestLogEvent(QL_EVENT_USED_ITEM, NULL, gSpecialVar_ItemId, 0xFFFF); if (gSpecialVar_ItemId == ITEM_WHITE_FLUTE) @@ -587,8 +587,8 @@ void FieldUseFunc_BlackFlute(u8 taskId) FlagSet(FLAG_SYS_WHITE_FLUTE_ACTIVE); FlagClear(FLAG_SYS_BLACK_FLUTE_ACTIVE); CopyItemName(gSpecialVar_ItemId, gStringVar2); - StringExpandPlaceholders(gStringVar4, gUnknown_84165D2); - gTasks[taskId].func = sub_80A1B48; + StringExpandPlaceholders(gStringVar4, gText_UsedVar2WildLured); + gTasks[taskId].func = Task_UsedBlackWhiteFlute; gTasks[taskId].data[8] = 0; } else if (gSpecialVar_ItemId == ITEM_BLACK_FLUTE) @@ -596,13 +596,13 @@ void FieldUseFunc_BlackFlute(u8 taskId) FlagSet(FLAG_SYS_BLACK_FLUTE_ACTIVE); FlagClear(FLAG_SYS_WHITE_FLUTE_ACTIVE); CopyItemName(gSpecialVar_ItemId, gStringVar2); - StringExpandPlaceholders(gStringVar4, gUnknown_8416600); - gTasks[taskId].func = sub_80A1B48; + StringExpandPlaceholders(gStringVar4, gText_UsedVar2WildRepelled); + gTasks[taskId].func = Task_UsedBlackWhiteFlute; gTasks[taskId].data[8] = 0; } } -static void sub_80A1B48(u8 taskId) +static void Task_UsedBlackWhiteFlute(u8 taskId) { if (++gTasks[taskId].data[8] > 7) { @@ -624,22 +624,22 @@ void ItemUseOutOfBattle_EscapeRope(u8 taskId) if (CanUseEscapeRopeOnCurrMap() == TRUE) { ItemUse_SetQuestLogEvent(QL_EVENT_USED_ITEM, NULL, gSpecialVar_ItemId, gMapHeader.regionMapSectionId); - sItemUseOnFieldCB = sub_80A1C08; - sub_80A103C(taskId); + sItemUseOnFieldCB = ItemUseOnFieldCB_EscapeRope; + SetUpItemUseOnFieldCallback(taskId); } else PrintNotTheTimeToUseThat(taskId, gTasks[taskId].data[3]); } -static void sub_80A1C08(u8 taskId) +static void ItemUseOnFieldCB_EscapeRope(u8 taskId) { Overworld_ResetStateAfterDigEscRope(); - sub_80A1A44(); + RemoveUsedItem(); gTasks[taskId].data[0] = 0; - DisplayItemMessageOnField(taskId, FONT_2, gStringVar4, sub_80A1C44); + DisplayItemMessageOnField(taskId, FONT_2, gStringVar4, Task_UseDigEscapeRopeOnField); } -void sub_80A1C44(u8 taskId) +void Task_UseDigEscapeRopeOnField(u8 taskId) { ResetInitialPlayerAvatarState(); StartEscapeRopeFieldEffect(); @@ -650,28 +650,28 @@ void FieldUseFunc_TownMap(u8 taskId) { if (gTasks[taskId].data[3] == 0) { - ItemMenu_SetExitCallback(sub_80A1CAC); + ItemMenu_SetExitCallback(UseTownMapFromBag); ItemMenu_StartFadeToExitCallback(taskId); } else { StopPokemonLeagueLightingEffectTask(); FadeScreen(FADE_TO_BLACK, 0); - gTasks[taskId].func = sub_80A1CC0; + gTasks[taskId].func = Task_UseTownMapFromField; } } -static void sub_80A1CAC(void) +static void UseTownMapFromBag(void) { InitRegionMapWithExitCB(REGIONMAP_TYPE_NORMAL, CB2_BagMenuFromStartMenu); } -static void sub_80A1CC0(u8 taskId) +static void Task_UseTownMapFromField(u8 taskId) { if (!gPaletteFade.active) { CleanupOverworldWindowsAndTilemaps(); - sub_80A1184(); + SetFieldCallback2ForItemUse(); InitRegionMapWithExitCB(REGIONMAP_TYPE_NORMAL, CB2_ReturnToField); DestroyTask(taskId); } @@ -682,28 +682,28 @@ void FieldUseFunc_FameChecker(u8 taskId) ItemUse_SetQuestLogEvent(QL_EVENT_USED_ITEM, NULL, gSpecialVar_ItemId, 0xFFFF); if (gTasks[taskId].data[3] == 0) { - ItemMenu_SetExitCallback(sub_80A1D58); + ItemMenu_SetExitCallback(UseFameCheckerFromBag); ItemMenu_StartFadeToExitCallback(taskId); } else { StopPokemonLeagueLightingEffectTask(); FadeScreen(FADE_TO_BLACK, 0); - gTasks[taskId].func = sub_80A1D68; + gTasks[taskId].func = Task_UseFameCheckerFromField; } } -static void sub_80A1D58(void) +static void UseFameCheckerFromBag(void) { UseFameChecker(CB2_BagMenuFromStartMenu); } -static void sub_80A1D68(u8 taskId) +static void Task_UseFameCheckerFromField(u8 taskId) { if (!gPaletteFade.active) { CleanupOverworldWindowsAndTilemaps(); - sub_80A1184(); + SetFieldCallback2ForItemUse(); UseFameChecker(CB2_ReturnToField); DestroyTask(taskId); } @@ -725,7 +725,7 @@ void FieldUseFunc_VsSeeker(u8 taskId) else { sItemUseOnFieldCB = Task_VsSeeker_0; - sub_80A103C(taskId); + SetUpItemUseOnFieldCallback(taskId); } } @@ -743,9 +743,7 @@ void BattleUseFunc_PokeBallEtc(u8 taskId) ItemMenu_StartFadeToExitCallback(taskId); } else - { - DisplayItemMessageInBag(taskId, FONT_2, gUnknown_8416631, Task_ReturnToBagFromContextMenu); - } + DisplayItemMessageInBag(taskId, FONT_2, gText_BoxFull, Task_ReturnToBagFromContextMenu); } void BattleUseFunc_PokeFlute(u8 taskId) @@ -754,12 +752,10 @@ void BattleUseFunc_PokeFlute(u8 taskId) ItemMenu_StartFadeToExitCallback(taskId); } -void BattleUseFunc_GuardSpec(u8 taskId) +void BattleUseFunc_StatBooster(u8 taskId) { if (ExecuteTableBasedItemEffect(&gPlayerParty[gBattlerPartyIndexes[gBattlerInMenuId]], gSpecialVar_ItemId, gBattlerPartyIndexes[gBattlerInMenuId], 0)) - { DisplayItemMessageInBag(taskId, FONT_2, gText_WontHaveEffect, Task_ReturnToBagFromContextMenu); - } else { gTasks[taskId].data[8] = 0; @@ -769,7 +765,7 @@ void BattleUseFunc_GuardSpec(u8 taskId) static void Task_BattleUse_StatBooster_DelayAndPrint(u8 taskId) { - s16 * data = gTasks[taskId].data; + s16 *data = gTasks[taskId].data; if (++data[8] > 7) { @@ -809,7 +805,8 @@ void BattleUseFunc_Medicine(u8 taskId) ItemUse_SwitchToPartyMenuInBattle(taskId); } -static void sub_80A1FD8(u8 taskId) +// Unused. Sacred Ash cannot be used in battle +static void BattleUseFunc_SacredAsh(u8 taskId) { gItemUseCB = ItemUseCB_SacredAsh; ItemUse_SwitchToPartyMenuInBattle(taskId); @@ -817,7 +814,7 @@ static void sub_80A1FD8(u8 taskId) void BattleUseFunc_Ether(u8 taskId) { - gItemUseCB = ItemUseCB_PPRecovery; + gItemUseCB = ItemUseCB_TryRestorePP; ItemUse_SwitchToPartyMenuInBattle(taskId); } @@ -825,7 +822,7 @@ void BattleUseFunc_PokeDoll(u8 taskId) { if (!(gBattleTypeFlags & BATTLE_TYPE_TRAINER)) { - sub_80A1A44(); + RemoveUsedItem(); ItemUse_SetQuestLogEvent(QL_EVENT_USED_ITEM, 0, gSpecialVar_ItemId, 0xFFFF); DisplayItemMessageInBag(taskId, FONT_2, gStringVar4, ItemMenu_StartFadeToExitCallback); } @@ -835,38 +832,38 @@ void BattleUseFunc_PokeDoll(u8 taskId) void ItemUseOutOfBattle_EnigmaBerry(u8 taskId) { - switch (GetItemEffectType(gSpecialVar_ItemId) - 1) + switch (GetItemEffectType(gSpecialVar_ItemId)) { - case 1: - case 2: - case 3: - case 4: - case 5: - case 6: - case 10: - case 11: - case 12: - case 13: - case 14: - case 15: - case 16: + case ITEM_EFFECT_HEAL_HP: + case ITEM_EFFECT_CURE_POISON: + case ITEM_EFFECT_CURE_SLEEP: + case ITEM_EFFECT_CURE_BURN: + case ITEM_EFFECT_CURE_FREEZE: + case ITEM_EFFECT_CURE_PARALYSIS: + case ITEM_EFFECT_CURE_ALL_STATUS: + case ITEM_EFFECT_ATK_EV: + case ITEM_EFFECT_HP_EV: + case ITEM_EFFECT_SPATK_EV: + case ITEM_EFFECT_SPDEF_EV: + case ITEM_EFFECT_SPEED_EV: + case ITEM_EFFECT_DEF_EV: gTasks[taskId].data[4] = 1; FieldUseFunc_Medicine(taskId); break; - case 9: + case ITEM_EFFECT_SACRED_ASH: gTasks[taskId].data[4] = 1; FieldUseFunc_SacredAsh(taskId); break; - case 0: + case ITEM_EFFECT_RAISE_LEVEL: gTasks[taskId].data[4] = 1; FieldUseFunc_RareCandy(taskId); break; - case 18: - case 19: + case ITEM_EFFECT_PP_UP: + case ITEM_EFFECT_PP_MAX: gTasks[taskId].data[4] = 1; FieldUseFunc_PpUp(taskId); break; - case 20: + case ITEM_EFFECT_HEAL_PP: gTasks[taskId].data[4] = 1; FieldUseFunc_Ether(taskId); break; @@ -880,21 +877,21 @@ void ItemUseInBattle_EnigmaBerry(u8 taskId) { switch (GetItemEffectType(gSpecialVar_ItemId)) { - case 0: - BattleUseFunc_GuardSpec(taskId); + case ITEM_EFFECT_X_ITEM: + BattleUseFunc_StatBooster(taskId); break; - case 2: - case 3: - case 4: - case 5: - case 6: - case 7: - case 8: - case 9: - case 11: + case ITEM_EFFECT_HEAL_HP: + case ITEM_EFFECT_CURE_POISON: + case ITEM_EFFECT_CURE_SLEEP: + case ITEM_EFFECT_CURE_BURN: + case ITEM_EFFECT_CURE_FREEZE: + case ITEM_EFFECT_CURE_PARALYSIS: + case ITEM_EFFECT_CURE_CONFUSION: + case ITEM_EFFECT_CURE_INFATUATION: + case ITEM_EFFECT_CURE_ALL_STATUS: BattleUseFunc_Medicine(taskId); break; - case 21: + case ITEM_EFFECT_HEAL_PP: BattleUseFunc_Ether(taskId); break; default: @@ -913,7 +910,7 @@ void FieldUseFunc_OakStopsYou(u8 taskId) PrintNotTheTimeToUseThat(taskId, gTasks[taskId].data[3]); } -void ItemUse_SetQuestLogEvent(u8 eventId, struct Pokemon * pokemon, u16 itemId, u16 param) +void ItemUse_SetQuestLogEvent(u8 eventId, struct Pokemon *pokemon, u16 itemId, u16 param) { struct UnkStruct_ItemUseQuestLog { @@ -921,7 +918,7 @@ void ItemUse_SetQuestLogEvent(u8 eventId, struct Pokemon * pokemon, u16 itemId, u16 unk2; u16 species; u16 param; - } * questLog = Alloc(sizeof(*questLog)); + } *questLog = Alloc(sizeof(*questLog)); questLog->itemId = itemId; questLog->param = param; diff --git a/src/itemfinder.c b/src/itemfinder.c index 95887985f..ba96e6698 100644 --- a/src/itemfinder.c +++ b/src/itemfinder.c @@ -104,7 +104,7 @@ static const union AffineAnimCmd *const sArrowAndStarSpriteAffineAnimTable[] = { sAffineAnim_Up }; -static const struct SpriteTemplate gUnknown_84647E4 = { +static const struct SpriteTemplate sSpriteTemplate_ArrowAndStar = { .tileTag = ARROW_TILE_TAG, .paletteTag = 0xFFFF, .oam = &sArrowAndStarSpriteOamData, @@ -151,7 +151,7 @@ static void Task_NoResponse_CleanUp(u8 taskId) { ClearDialogWindowAndFrame(0, TRUE); ClearPlayerHeldMovementAndUnfreezeObjectEvents(); - ScriptContext2_Disable(); + UnlockPlayerFieldControls(); DestroyTask(taskId); } @@ -487,7 +487,7 @@ static void Task_ItemfinderResponseCleanUp(u8 taskId) DestroyArrowAndStarTiles(); ClearDialogWindowAndFrame(0, TRUE); ClearPlayerHeldMovementAndUnfreezeObjectEvents(); - ScriptContext2_Disable(); + UnlockPlayerFieldControls(); DestroyTask(taskId); } @@ -500,8 +500,8 @@ static void Task_ItemfinderUnderfootDigUpItem(u8 taskId) { DestroyArrowAndStarTiles(); DestroyTask(taskId); - ScriptContext1_SetupScript(EventScript_ItemfinderDigUpUnderfootItem); - ScriptContext2_Enable(); + ScriptContext_SetupScript(EventScript_ItemfinderDigUpUnderfootItem); + LockPlayerFieldControls(); } #undef tStartSpriteId @@ -534,7 +534,7 @@ static void DestroyArrowAndStarTiles(void) static void CreateArrowSprite(u8 animNum, u8 direction) { - u8 spriteId = CreateSprite(&gUnknown_84647E4, 120, 76, 0); + u8 spriteId = CreateSprite(&sSpriteTemplate_ArrowAndStar, 120, 76, 0); gSprites[spriteId].oam.paletteNum = 0; StartSpriteAnim(&gSprites[spriteId], animNum); gSprites[spriteId].spAnimNum = animNum; @@ -614,7 +614,7 @@ static void SpriteCallback_DestroyArrow(struct Sprite *sprite) static u8 CreateStarSprite(void) { - u8 spriteId = CreateSprite(&gUnknown_84647E4, 120, 76, 0); + u8 spriteId = CreateSprite(&sSpriteTemplate_ArrowAndStar, 120, 76, 0); gSprites[spriteId].oam.paletteNum = 0; gSprites[spriteId].callback = SpriteCallback_Star; StartSpriteAnim(&gSprites[spriteId], 4); diff --git a/src/keyboard_text.c b/src/keyboard_text.c index 5db1a6aaa..d949240e4 100644 --- a/src/keyboard_text.c +++ b/src/keyboard_text.c @@ -1,12 +1,12 @@ #include "global.h" -// easy_chat_3 -const u8 gUnknown_847A8D8[] = _("{CLEAR 11}A{CLEAR 6}B{CLEAR 6}C{CLEAR 26}D{CLEAR 6}E{CLEAR 6}F{CLEAR 26}others"); -const u8 gUnknown_847A8FA[] = _("{CLEAR 11}G{CLEAR 6}H{CLEAR 6}I{CLEAR 26}J{CLEAR 6}K{CLEAR 6}L"); -const u8 gUnknown_847A913[] = _("{CLEAR 11}M{CLEAR 6}N{CLEAR 6}O{CLEAR 26}P{CLEAR 6}Q{CLEAR 6}R{CLEAR 6}S{CLEAR 26} "); -const u8 gUnknown_847A934[] = _("{CLEAR 11}T{CLEAR 6}U{CLEAR 6}V{CLEAR 26}W{CLEAR 6}X{CLEAR 6}Y{CLEAR 6}Z{CLEAR 26} "); +// Easy Chat keyboard +const u8 gText_EasyChatKeyboard_ABCDEFothers[] = _("{CLEAR 11}A{CLEAR 6}B{CLEAR 6}C{CLEAR 26}D{CLEAR 6}E{CLEAR 6}F{CLEAR 26}others"); +const u8 gText_EasyChatKeyboard_GHIJKL[] = _("{CLEAR 11}G{CLEAR 6}H{CLEAR 6}I{CLEAR 26}J{CLEAR 6}K{CLEAR 6}L"); +const u8 gText_EasyChatKeyboard_MNOPQRS[] = _("{CLEAR 11}M{CLEAR 6}N{CLEAR 6}O{CLEAR 26}P{CLEAR 6}Q{CLEAR 6}R{CLEAR 6}S{CLEAR 26} "); +const u8 gText_EasyChatKeyboard_TUVWXYZ[] = _("{CLEAR 11}T{CLEAR 6}U{CLEAR 6}V{CLEAR 26}W{CLEAR 6}X{CLEAR 6}Y{CLEAR 6}Z{CLEAR 26} "); -// naming_screen +// Naming Screen keyboard const u8 gText_NamingScreenKeyboard_abcdef[] = _("{CLEAR 11}a{CLEAR 6}b{CLEAR 6}c{CLEAR 26}d{CLEAR 6}e{CLEAR 6}f{CLEAR 6} {CLEAR 26}."); const u8 gText_NamingScreenKeyboard_ghijkl[] = _("{CLEAR 11}g{CLEAR 6}h{CLEAR 7}i{CLEAR 27}j{CLEAR 6}k{CLEAR 6}l{CLEAR 7} {CLEAR 26},"); const u8 gText_NamingScreenKeyboard_mnopqrs[] = _("{CLEAR 11}m{CLEAR 6}n{CLEAR 7}o{CLEAR 26}p{CLEAR 6}q{CLEAR 7}r{CLEAR 6}s{CLEAR 27} "); @@ -20,7 +20,7 @@ const u8 gText_NamingScreenKeyboard_56789[] = _("{CLEAR 11}5{CLEAR 16}6{CLEAR 16 const u8 gText_NamingScreenKeyboard_Symbols1[] = _("{CLEAR 11}!{CLEAR 16}?{CLEAR 16}♂{CLEAR 16}♀{CLEAR 16}/{CLEAR 16}-"); const u8 gText_NamingScreenKeyboard_Symbols2[] = _("{CLEAR 11}…{CLEAR 16}“{CLEAR 16}”{CLEAR 18}‘{CLEAR 18}'{CLEAR 18} "); -// union_room_chat +// Union Room Chat keyboard const u8 gText_UnionRoomChatKeyboard_ABCDE[] = _("ABCDE"); const u8 gText_UnionRoomChatKeyboard_FGHIJ[] = _("FGHIJ"); const u8 gText_UnionRoomChatKeyboard_KLMNO[] = _("KLMNO"); @@ -41,21 +41,24 @@ const u8 gText_UnionRoomChatKeyboard_01234Lower[] = _("01234"); const u8 gText_UnionRoomChatKeyboard_56789Lower[] = _("56789"); const u8 gText_UnionRoomChatKeyboard_PunctuationLower[] = _(".,!? "); const u8 gText_UnionRoomChatKeyboard_SymbolsLower[] = _("-/&… "); -const u8 gText_BlankString_847AB39[] = _(""); -const u8 gText_BlankString_847AB3A[] = _(""); -const u8 gText_BlankString_847AB3B[] = _(""); -const u8 gText_BlankString_847AB3C[] = _(""); -const u8 gText_BlankString_847AB3D[] = _(""); -const u8 gText_BlankString_847AB3E[] = _(""); -const u8 gText_BlankString_847AB3F[] = _(""); -const u8 gText_BlankString_847AB40[] = _(""); -const u8 gText_UnionRoomChatKeyboard_Emoji1[] = _("{EXTRA 245}{EXTRA 246}{EXTRA 247}{EXTRA 248}{EXTRA 254}"); -const u8 gText_UnionRoomChatKeyboard_Emoji2[] = _("{EXTRA 249}{EXTRA 250}{EXTRA 252}{EXTRA 251}{EXTRA 253}"); -const u8 gText_UnionRoomChatKeyboard_Emoji3[] = _("{EXTRA 236}{EXTRA 237}{EXTRA 238}{EXTRA 235}{EXTRA 234}"); -const u8 gText_UnionRoomChatKeyboard_Emoji4[] = _("♂♀{EXTRA 212}{EXTRA 213}{EXTRA 211}"); -const u8 gText_UnionRoomChatKeyboard_Emoji5[] = _("{EXTRA 216}{EXTRA 217}{EXTRA 242}{EXTRA 243}{EXTRA 244}"); -const u8 gText_UnionRoomChatKeyboard_Emoji6[] = _("{EXTRA 218}{EXTRA 241}{EXTRA 224}{EXTRA 226}{EXTRA 227}"); -const u8 gText_UnionRoomChatKeyboard_Emoji7[] = _("{EXTRA 240}{EXTRA 239}{EXTRA 225}{EXTRA 214}{EXTRA 215}"); -const u8 gText_UnionRoomChatKeyboard_Emoji8[] = _("{EXTRA 228}{EXTRA 229}{EXTRA 230}{EXTRA 231}{EXTRA 232}"); -const u8 gText_UnionRoomChatKeyboard_Emoji9[] = _("{EXTRA 233}{EXTRA 220}{EXTRA 221}{EXTRA 222}{EXTRA 209}"); -const u8 gText_UnionRoomChatKeyboard_Emoji10[] = _("{EXTRA 210}{EXTRA 208}ょ: "); + +const u8 gText_EmptyTextInput1[] = _(""); +const u8 gText_EmptyTextInput2[] = _(""); +const u8 gText_EmptyTextInput3[] = _(""); +const u8 gText_EmptyTextInput4[] = _(""); +const u8 gText_EmptyTextInput5[] = _(""); +const u8 gText_EmptyTextInput6[] = _(""); +const u8 gText_EmptyTextInput7[] = _(""); +const u8 gText_EmptyTextInput8[] = _(""); + +// Union Room Chat keyboard emojis +const u8 gText_UnionRoomChatKeyboard_Emoji1[] = _("{EMOJI_MISCHIEVOUS}{EMOJI_HAPPY}{EMOJI_ANGRY}{EMOJI_SURPRISED}{EMOJI_BIGANGER}"); +const u8 gText_UnionRoomChatKeyboard_Emoji2[] = _("{EMOJI_BIGSMILE}{EMOJI_EVIL}{EMOJI_NEUTRAL}{EMOJI_TIRED}{EMOJI_SHOCKED}"); +const u8 gText_UnionRoomChatKeyboard_Emoji3[] = _("{EMOJI_LEAF}{EMOJI_FIRE}{EMOJI_WATER}{EMOJI_BOLT}{EMOJI_BALL}"); +const u8 gText_UnionRoomChatKeyboard_Emoji4[] = _("♂♀{EMOJI_LEFT_PAREN}{EMOJI_RIGHT_PAREN}{EMOJI_TILDE}"); +const u8 gText_UnionRoomChatKeyboard_Emoji5[] = _("{EMOJI_LEFT_EYE}{EMOJI_RIGHT_EYE}{EMOJI_SMALLWHEEL}{EMOJI_SPHERE}{EMOJI_IRRITATED}"); +const u8 gText_UnionRoomChatKeyboard_Emoji6[] = _("{EMOJI_AT}{EMOJI_BIGWHEEL}{EMOJI_TONGUE}{EMOJI_ACUTE}{EMOJI_GRAVE}"); +const u8 gText_UnionRoomChatKeyboard_Emoji7[] = _("{EMOJI_RIGHT_FIST}{EMOJI_LEFT_FIST}{EMOJI_TRIANGLE_OUTLINE}{EMOJI_UNION}{EMOJI_GREATER_THAN}"); +const u8 gText_UnionRoomChatKeyboard_Emoji8[] = _("{EMOJI_CIRCLE}{EMOJI_TRIANGLE}{EMOJI_SQUARE}{EMOJI_HEART}{EMOJI_MOON}"); +const u8 gText_UnionRoomChatKeyboard_Emoji9[] = _("{EMOJI_NOTE}{EMOJI_PLUS}{EMOJI_MINUS}{EMOJI_EQUALS}{EMOJI_PIPE}"); +const u8 gText_UnionRoomChatKeyboard_Emoji10[] = _("{EMOJI_HIGHBAR}{EMOJI_UNDERSCORE};: "); diff --git a/src/learn_move.c b/src/learn_move.c index 314125c9e..283cc4f41 100644 --- a/src/learn_move.c +++ b/src/learn_move.c @@ -326,7 +326,7 @@ static const struct WindowTemplate sWindowTemplates[9] = { }, DUMMY_WIN_TEMPLATE }; -static const struct WindowTemplate gUnknown_83FFA8C = { +static const struct WindowTemplate sMoveRelearnerYesNoMenuTemplate = { .bg = 0, .tilemapLeft = 21, .tilemapTop = 8, @@ -366,7 +366,7 @@ static void VBlankCB_MoveRelearner(void) void DisplayMoveTutorMenu(void) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); CreateTask(Task_InitMoveRelearnerMenu, 10); BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); } @@ -398,7 +398,7 @@ static void MoveRelearnerLoadBgGfx(void) FillWindowPixelBuffer(7, PIXEL_FILL(1)); FillBgTilemapBufferRect(0, 0x000, 0, 0, 30, 20, 0xF); SetBgTilemapBuffer(1, sMoveRelearner->bg1TilemapBuffer); - TextWindow_SetUserSelectedFrame(0, 1, 0xE0); + LoadUserWindowGfx(0, 1, 0xE0); ListMenuLoadStdPalAt(0xD0, 1); LoadPalette(gUnknown_8E97DDC, 0x00, 0x20); DecompressAndLoadBgGfxUsingHeap(1, gUnknown_8E97DFC, 0, 0, 0); @@ -506,7 +506,7 @@ static void MoveRelearnerStateMachine(void) MoveRelearnerMenuHandleInput(); break; case MENU_STATE_PRINT_TEACH_MOVE_PROMPT: - CreateYesNoMenu(&gUnknown_83FFA8C, FONT_3, 0, 2, 0x001, 0xE, 0); + CreateYesNoMenu(&sMoveRelearnerYesNoMenuTemplate, FONT_3, 0, 2, 0x001, 0xE, 0); sMoveRelearner->state++; break; case MENU_STATE_TEACH_MOVE_CONFIRM : @@ -531,7 +531,7 @@ static void MoveRelearnerStateMachine(void) } break; case MENU_STATE_PRINT_GIVE_UP_PROMPT: - CreateYesNoMenu(&gUnknown_83FFA8C, FONT_3, 0, 2, 0x001, 0xE, 0); + CreateYesNoMenu(&sMoveRelearnerYesNoMenuTemplate, FONT_3, 0, 2, 0x001, 0xE, 0); sMoveRelearner->state++; break; case MENU_STATE_GIVE_UP_CONFIRM: @@ -552,7 +552,7 @@ static void MoveRelearnerStateMachine(void) sMoveRelearner->state++; break; case MENU_STATE_WAIT_FOR_TRYING_TO_LEARN: - CreateYesNoMenu(&gUnknown_83FFA8C, FONT_3, 0, 2, 0x001, 0xE, 0); + CreateYesNoMenu(&sMoveRelearnerYesNoMenuTemplate, FONT_3, 0, 2, 0x001, 0xE, 0); sMoveRelearner->state = 18; break; case MENU_STATE_CONFIRM_DELETE_OLD_MOVE: @@ -573,7 +573,7 @@ static void MoveRelearnerStateMachine(void) sMoveRelearner->state++; break; case MENU_STATE_WAIT_FOR_STOP_TEACHING: - CreateYesNoMenu(&gUnknown_83FFA8C, FONT_3, 0, 2, 0x001, 0xE, 0); + CreateYesNoMenu(&sMoveRelearnerYesNoMenuTemplate, FONT_3, 0, 2, 0x001, 0xE, 0); sMoveRelearner->state = 26; break; case MENU_STATE_CONFIRM_STOP_TEACHING: diff --git a/src/librfu_rfu.c b/src/librfu_rfu.c index 9f642907b..69fbbd13f 100644 --- a/src/librfu_rfu.c +++ b/src/librfu_rfu.c @@ -42,8 +42,8 @@ static void rfu_CB_pollConnectParent(u8 reqCommand, u16 reqResult); static void rfu_CB_pollConnectParent(u8 reqCommand, u16 reqResult); static void rfu_CB_disconnect(u8 reqCommand, u16 reqResult); static void rfu_CB_CHILD_pollConnectRecovery(u8 reqCommand, u16 reqResult); -static void rfu_CB_sendData(UNUSED u8 reqCommand, u16 reqResult); -static void rfu_CB_sendData2(UNUSED u8 reqCommand, u16 reqResult); +static void rfu_CB_sendData(u8 reqCommand, u16 reqResult); +static void rfu_CB_sendData2(u8 reqCommand, u16 reqResult); static void rfu_CB_sendData3(u8 reqCommand, u16 reqResult); static void rfu_CB_recvData(u8 reqCommand, u16 reqResult); static void rfu_enableREQCallback(bool8 enable); @@ -64,7 +64,7 @@ static void rfu_STC_CHILD_analyzeRecvPacket(void); static u16 rfu_STC_analyzeLLSF(u8, const u8 *, u16); static void rfu_STC_UNI_receive(u8, const struct RfuLocalStruct *, const u8 *); static void rfu_STC_NI_receive_Receiver(u8, const struct RfuLocalStruct *, const u8 *); -static void rfu_STC_NI_receive_Sender(u8, u8, const struct RfuLocalStruct *, UNUSED const u8 *); +static void rfu_STC_NI_receive_Sender(u8, u8, const struct RfuLocalStruct *, const u8 *); static void rfu_STC_NI_initSlot_asRecvDataEntity(u8, struct NIComm *); static void rfu_STC_NI_initSlot_asRecvControllData(u8, struct NIComm *); @@ -1680,7 +1680,7 @@ void rfu_REQ_sendData(bool8 clockChangeFlag) } } -static void rfu_CB_sendData(UNUSED u8 reqCommand, u16 reqResult) +static void rfu_CB_sendData(u8 reqCommand, u16 reqResult) { u8 i; struct NIComm *NI_comm; @@ -1706,7 +1706,7 @@ static void rfu_CB_sendData(UNUSED u8 reqCommand, u16 reqResult) rfu_STC_REQ_callback(ID_DATA_TX_REQ, reqResult); } -static void rfu_CB_sendData2(UNUSED u8 reqCommand, u16 reqResult) +static void rfu_CB_sendData2(u8 reqCommand, u16 reqResult) { rfu_STC_REQ_callback(ID_DATA_TX_REQ, reqResult); } diff --git a/src/link.c b/src/link.c index b5167198e..6473de242 100644 --- a/src/link.c +++ b/src/link.c @@ -163,11 +163,11 @@ static const u16 sLinkTestFontPal[] = INCBIN_U16("graphics/interface/link_test_f static const u16 sLinkTestFontGfx[] = INCBIN_U16("graphics/interface/link_test_font.4bpp"); static const struct BlockRequest sBlockRequests[] = { - {gBlockSendBuffer, 200}, - {gBlockSendBuffer, 200}, - {gBlockSendBuffer, 100}, - {gBlockSendBuffer, 220}, - {gBlockSendBuffer, 40} + [BLOCK_REQ_SIZE_NONE] = { gBlockSendBuffer, 200 }, + [BLOCK_REQ_SIZE_200] = { gBlockSendBuffer, 200 }, + [BLOCK_REQ_SIZE_100] = { gBlockSendBuffer, 100 }, + [BLOCK_REQ_SIZE_220] = { gBlockSendBuffer, 220 }, + [BLOCK_REQ_SIZE_40] = { gBlockSendBuffer, 40 } }; static const char sASCIIGameFreakInc[] = "GameFreak inc."; static const char sASCIITestPrint[] = "TEST PRINT\n" @@ -788,8 +788,8 @@ u8 GetLinkPlayerDataExchangeStatusTimed(int lower, int upper) cmpVal = GetLinkPlayerCount_2(); if (lower > cmpVal || cmpVal > upper) { - sPlayerDataExchangeStatus = EXCHANGE_STAT_6; - return EXCHANGE_STAT_6; + sPlayerDataExchangeStatus = EXCHANGE_WRONG_NUM_PLAYERS; + return sPlayerDataExchangeStatus; } else { @@ -815,10 +815,10 @@ u8 GetLinkPlayerDataExchangeStatusTimed(int lower, int upper) sPlayerDataExchangeStatus = EXCHANGE_COMPLETE; break; case 1: - sPlayerDataExchangeStatus = EXCHANGE_STAT_4; + sPlayerDataExchangeStatus = EXCHANGE_PLAYER_NOT_READY; break; case 2: - sPlayerDataExchangeStatus = EXCHANGE_STAT_5; + sPlayerDataExchangeStatus = EXCHANGE_PARTNER_NOT_READY; break; } } @@ -829,7 +829,7 @@ u8 GetLinkPlayerDataExchangeStatusTimed(int lower, int upper) } else { - sPlayerDataExchangeStatus = EXCHANGE_IN_PROGRESS; + sPlayerDataExchangeStatus = EXCHANGE_DIFF_SELECTIONS; } } } @@ -862,7 +862,7 @@ bool8 IsLinkPlayerDataExchangeComplete(void) else { retval = FALSE; - sPlayerDataExchangeStatus = EXCHANGE_IN_PROGRESS; + sPlayerDataExchangeStatus = EXCHANGE_DIFF_SELECTIONS; } return retval; } @@ -982,7 +982,7 @@ u8 GetMultiplayerId(void) return SIO_MULTI_CNT->id; } -u8 bitmask_all_link_players_but_self(void) +u8 BitmaskAllOtherLinkPlayers(void) { u8 mpId; @@ -999,7 +999,7 @@ bool8 SendBlock(u8 unused, const void *src, u16 size) return InitBlockSend(src, size); } -bool8 Link_PrepareCmd0xCCCC_Rfu0xA100(u8 blockRequestType) +bool8 SendBlockRequest(u8 blockRequestType) { if (gWirelessCommType == 1) { @@ -1195,7 +1195,7 @@ void SetLinkDebugValues(u32 seed, u32 flags) gLinkDebugFlags = flags; } -u8 sub_800A8A4(void) +u8 GetSavedLinkPlayerCountAsBitFlags(void) { int i; u8 flags; @@ -1208,7 +1208,7 @@ u8 sub_800A8A4(void) return flags; } -u8 sub_800A8D4(void) +u8 GetLinkPlayerCountAsBitFlags(void) { int i; u8 flags; @@ -1221,11 +1221,11 @@ u8 sub_800A8D4(void) return flags; } -void sub_800A900(u8 a0) +void SaveLinkPlayers(u8 numPlayers) { int i; - gSavedLinkPlayerCount = a0; + gSavedLinkPlayerCount = numPlayers; gSavedMultiplayerId = GetMultiplayerId(); for (i = 0; i < MAX_RFU_PLAYERS; i++) { @@ -1265,7 +1265,7 @@ bool8 sub_800A95C(void) return FALSE; } -void sub_800A9A4(void) +void CheckLinkPlayersMatchSaved(void) { u8 i; @@ -1280,7 +1280,7 @@ void sub_800A9A4(void) } } -void sub_800AA24(void) +void ResetLinkPlayerCount(void) { gSavedLinkPlayerCount = 0; gSavedMultiplayerId = 0; @@ -1487,7 +1487,7 @@ void CB2_LinkError(void) SetGpuReg(REG_OFFSET_BG1HOFS, 0); SetGpuReg(REG_OFFSET_BG1VOFS, 0); ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON | DISPCNT_WIN1_ON | DISPCNT_OBJWIN_ON); - LoadPalette(gTMCaseMainWindowPalette, 0xf0, 0x20); + LoadPalette(gStandardMenuPalette, 0xf0, 0x20); gSoftResetDisabled = FALSE; CreateTask(Task_DestroySelf, 0); StopMapMusic(); diff --git a/src/link_rfu_2.c b/src/link_rfu_2.c index 3d5f5b11e..649836276 100644 --- a/src/link_rfu_2.c +++ b/src/link_rfu_2.c @@ -168,11 +168,11 @@ static const u8 sNumTrailingZeroes[] = { }; static const struct BlockRequest sBlockRequests[] = { - { gBlockSendBuffer, 200 }, - { gBlockSendBuffer, 200 }, - { gBlockSendBuffer, 100 }, - { gBlockSendBuffer, 220 }, - { gBlockSendBuffer, 40 } + [BLOCK_REQ_SIZE_NONE] = { gBlockSendBuffer, 200 }, + [BLOCK_REQ_SIZE_200] = { gBlockSendBuffer, 200 }, + [BLOCK_REQ_SIZE_100] = { gBlockSendBuffer, 100 }, + [BLOCK_REQ_SIZE_220] = { gBlockSendBuffer, 220 }, + [BLOCK_REQ_SIZE_40] = { gBlockSendBuffer, 40 } }; static const u16 sAcceptedSerialNos[] = { @@ -640,7 +640,7 @@ void sub_80F8FA0(void) Rfu.state = 14; } -UNUSED +// Unused static void sub_80F8FAC(u8 a0) { u8 i; @@ -1709,7 +1709,7 @@ static void sub_80FA834(u8 taskId) { if (AreNoPlayersReceiving()) { - Rfu.cmdA100_blockRequestType = 0; + Rfu.cmdA100_blockRequestType = BLOCK_REQ_SIZE_NONE; RfuPrepareSendBuffer(RFUCMD_SEND_BLOCK_REQ); gTasks[taskId].data[0]++; } diff --git a/src/link_rfu_3.c b/src/link_rfu_3.c index fb6828053..647658c7e 100644 --- a/src/link_rfu_3.c +++ b/src/link_rfu_3.c @@ -558,50 +558,61 @@ static bool8 RfuUnusedQueue_Enqueue(struct RfuUnusedQueue *queue, u8 *dest) return TRUE; } -UNUSED -static void sub_80FC9B8(u8 *q1, u8 mode) +// Unused +// Populates an array with a sequence of numbers (which numbers depends on the mode) +// and sets the final element to the total of the other elements +#define SEQ_ARRAY_MAX_SIZE 200 +static void PopulateArrayWithSequence(u8 *arr, u8 mode) { s32 i; u8 rval; - u16 r5 = 0; + u16 total = 0; static u8 counter; switch (mode) { - case 0: - for (i = 0; i < 200; i++) - { - q1[i] = i + 1; - r5 += i + 1; - } - *((u16 *)(q1 + i)) = r5; - break; - case 1: - for (i = 0; i < 100; i++) - { - q1[i] = i + 1; - r5 += i + 1; - } - *((u16 *)(q1 + 200)) = r5; - break; - case 2: - for (i = 0; i < 200; i++) - { - rval = Random(); - q1[i] = rval; - r5 += rval; - } - *((u16 *)(q1 + i)) = r5; - break; - case 3: - for (i = 0; i < 200; i++) - { - q1[i] = i + 1 + counter; - r5 += (i + 1 + counter) & 0xFF; - } - *((u16 *)(q1 + i)) = r5; - counter++; - break; + case 0: + // Populate with numbers 1-200 + // Total will be 20100 + for (i = 0; i < SEQ_ARRAY_MAX_SIZE; i++) + { + arr[i] = i + 1; + total += i + 1; + } + *((u16 *)(arr + i)) = total; + break; + case 1: + // Populate with numbers 1-100 + // Total will be 5050 + for (i = 0; i < 100; i++) + { + arr[i] = i + 1; + total += i + 1; + } + *((u16 *)(arr + SEQ_ARRAY_MAX_SIZE)) = total; + break; + case 2: + // Populate with random numbers 0-255 + // Total will be a number 0-51000 + for (i = 0; i < SEQ_ARRAY_MAX_SIZE; i++) + { + rval = Random(); + arr[i] = rval; + total += rval; + } + *((u16 *)(arr + i)) = total; + break; + case 3: + // Populate with numbers 1-200 + counter + // Total will be a number 20100-51000 + for (i = 0; i < SEQ_ARRAY_MAX_SIZE; i++) + { + arr[i] = i + 1 + counter; + total += (i + 1 + counter) & 0xFF; + } + *((u16 *)(arr + i)) = total; + counter++; + break; } } diff --git a/src/list_menu.c b/src/list_menu.c index a914f8bc9..b18fd5151 100644 --- a/src/list_menu.c +++ b/src/list_menu.c @@ -91,7 +91,7 @@ u32 DoMysteryGiftListMenu(const struct WindowTemplate *windowTemplate, const str switch (arg2) { case 2: - TextWindow_SetUserSelectedFrame(sMysteryGiftLinkMenu.windowId, tileNum, palNum); + LoadUserWindowGfx(sMysteryGiftLinkMenu.windowId, tileNum, palNum); case 1: DrawTextBorderOuter(sMysteryGiftLinkMenu.windowId, tileNum, palNum / 16); break; diff --git a/src/m4a_1.s b/src/m4a_1.s index 7cb36580f..994f8892d 100644 --- a/src/m4a_1.s +++ b/src/m4a_1.s @@ -302,7 +302,7 @@ _081DD044: ldrb r0, [r4, o_SoundChannel_type] tst r0, 0x30 beq _081DD068 - bl sub_81DC460 + bl SoundMainRAM_Unk1 b _081DD228 _081DD068: mov r10, r10, lsl 16 @@ -465,8 +465,9 @@ _081DD25E: .pool thumb_func_end SoundMainRAM - arm_func_start sub_81DC460 -sub_81DC460: +@ Not present in GBA SDK 3.0 + arm_func_start SoundMainRAM_Unk1 +SoundMainRAM_Unk1: ldr r6, [r4, o_SoundChannel_wav] ldrb r0, [r4, o_SoundChannel_status] tst r0, 0x20 @@ -505,10 +506,10 @@ _081DD2B4: ldrb r0, [r4, o_SoundChannel_type] tst r0, 0x10 bne _081DD3C0 - bl sub_81DC71C + bl SoundMainRAM_Unk2 mov r0, r1 add r3, r3, 0x1 - bl sub_81DC71C + bl SoundMainRAM_Unk2 sub r1, r1, r0 _081DD308: ldr r6, [r5] @@ -534,11 +535,11 @@ _081DD310: b _081DD364 _081DD358: add r3, r3, lr - bl sub_81DC71C + bl SoundMainRAM_Unk2 mov r0, r1 _081DD364: add r3, r3, 0x1 - bl sub_81DC71C + bl SoundMainRAM_Unk2 sub r1, r1, r0 _081DD370: adds r5, r5, 0x40000000 @@ -565,10 +566,10 @@ _081DD3B0: b _081DD3B0 _081DD3C0: sub r3, r3, 0x1 - bl sub_81DC71C + bl SoundMainRAM_Unk2 mov r0, r1 sub r3, r3, 0x1 - bl sub_81DC71C + bl SoundMainRAM_Unk2 sub r1, r1, r0 _081DD3D8: ldr r6, [r5] @@ -594,11 +595,11 @@ _081DD3E0: b _081DD434 _081DD428: sub r3, r3, lr - bl sub_81DC71C + bl SoundMainRAM_Unk2 mov r0, r1 _081DD434: sub r3, r3, 0x1 - bl sub_81DC71C + bl SoundMainRAM_Unk2 sub r1, r1, r0 _081DD440: adds r5, r5, 0x40000000 @@ -663,10 +664,11 @@ _081DD4F4: str r7, [r5, 0x630] str r6, [r5], 0x4 pop {r8,r12,pc} - arm_func_end sub_81DC460 + arm_func_end SoundMainRAM_Unk1 - arm_func_start sub_81DC71C -sub_81DC71C: +@ Not present in GBA SDK 3.0 + arm_func_start SoundMainRAM_Unk2 +SoundMainRAM_Unk2: push {r0,r2,r5-r7,lr} mov r0, r3, lsr 6 ldr r1, [r4, o_SoundChannel_xpi] @@ -678,7 +680,7 @@ sub_81DC71C: ldr r1, [r4, o_SoundChannel_wav] add r2, r2, r1 add r2, r2, 0x10 - ldr r5, =gUnknown_030007B8 + ldr r5, =sDecodingBuffer ldr r6, =gDeltaEncodingTable mov r7, 0x40 ldrb lr, [r2], 1 @@ -699,12 +701,12 @@ _081DD57C: subs r7, r7, 2 bgt _081DD568 _081DD594: - ldr r5, =gUnknown_030007B8 + ldr r5, =sDecodingBuffer and r0, r3, 0x3F ldrsb r1, [r5, r0] pop {r0,r2,r5-r7,pc} .pool - arm_func_end sub_81DC71C + arm_func_end SoundMainRAM_Unk2 thumb_func_start SoundMainBTM SoundMainBTM: @@ -1910,9 +1912,9 @@ _081DDD90: .bss .align 3 -gUnknown_030007B8: +sDecodingBuffer: .space 0x40 - .size gUnknown_030007B8, .-gUnknown_030007B8 + .size sDecodingBuffer, .-sDecodingBuffer .global gMPlayTrack_BGM gMPlayTrack_BGM: diff --git a/src/mail.c b/src/mail.c index ebe5e0312..121f5045b 100644 --- a/src/mail.c +++ b/src/mail.c @@ -560,7 +560,7 @@ static bool8 DoInitMailView(void) CopyBgTilemapBufferToVram(2); break; case 12: - LoadPalette(stdpal_get(0), 0xF0, 0x20); + LoadPalette(GetTextWindowPalette(0), 0xF0, 0x20); gPlttBufferUnfaded[15 * 16 + 10] = sGfxHeaders[sMailViewResources->mailType].textpals[0]; gPlttBufferFaded[15 * 16 + 10] = sGfxHeaders[sMailViewResources->mailType].textpals[0]; gPlttBufferUnfaded[15 * 16 + 11] = sGfxHeaders[sMailViewResources->mailType].textpals[1]; diff --git a/src/main.c b/src/main.c index 2f039c23b..368638022 100644 --- a/src/main.c +++ b/src/main.c @@ -206,7 +206,7 @@ static void InitMainCallbacks(void) gMain.vblankCounter1 = 0; gMain.vblankCounter2 = 0; gMain.callback1 = NULL; - SetMainCallback2(c2_copyright_1); + SetMainCallback2(CB2_InitCopyrightScreenAfterBootup); gSaveBlock2Ptr = &gSaveBlock2; gSaveBlock1Ptr = &gSaveBlock1; gSaveBlock2.encryptionKey = 0; diff --git a/src/main_menu.c b/src/main_menu.c index 67ad7546e..011bc2308 100644 --- a/src/main_menu.c +++ b/src/main_menu.c @@ -251,7 +251,7 @@ static void Task_SetWin0BldRegsAndCheckSaveFile(u8 taskId) case SAVE_STATUS_ERROR: SetStdFrame0OnBg(0); gTasks[taskId].tMenuType = MAIN_MENU_CONTINUE; - PrintSaveErrorStatus(taskId, gText_SaveFileCorruptedPrevWillBeLoaded); + PrintSaveErrorStatus(taskId, gText_SaveFileCorrupted); if (IsMysteryGiftEnabled() == TRUE) { gTasks[taskId].tMenuType = MAIN_MENU_MYSTERYGIFT; @@ -497,9 +497,9 @@ static void Task_MysteryGiftError(u8 taskId) case 0: FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 30, 20); if (gTasks[taskId].tMGErrorType == 1) - PrintMessageOnWindow4(gText_WirelessAdapterIsNotConnected); + PrintMessageOnWindow4(gText_WirelessNotConnected); else - PrintMessageOnWindow4(gText_MysteryGiftCantBeUsedWhileWirelessAdapterIsAttached); + PrintMessageOnWindow4(gText_MysteryGiftCantUse); gTasks[taskId].tMGErrorMsgState++; break; case 1: @@ -677,14 +677,14 @@ static void PrintBadgeCount(void) static void LoadUserFrameToBg(u8 bgId) { - LoadBgTiles(bgId, GetWindowFrameTilesPal(gSaveBlock2Ptr->optionsWindowFrameType)->tiles, 0x120, 0x1B1); - LoadPalette(GetWindowFrameTilesPal(gSaveBlock2Ptr->optionsWindowFrameType)->palette, 0x20, 0x20); + LoadBgTiles(bgId, GetUserWindowGraphics(gSaveBlock2Ptr->optionsWindowFrameType)->tiles, 0x120, 0x1B1); + LoadPalette(GetUserWindowGraphics(gSaveBlock2Ptr->optionsWindowFrameType)->palette, 0x20, 0x20); MainMenu_EraseWindow(&sWindowTemplate[MAIN_MENU_WINDOW_ERROR]); } static void SetStdFrame0OnBg(u8 bgId) { - TextWindow_SetStdFrame0_WithPal(MAIN_MENU_WINDOW_NEWGAME_ONLY, 0x1B1, 0x20); + LoadStdWindowGfx(MAIN_MENU_WINDOW_NEWGAME_ONLY, 0x1B1, 0x20); MainMenu_EraseWindow(&sWindowTemplate[MAIN_MENU_WINDOW_ERROR]); } diff --git a/src/map_name_popup.c b/src/map_name_popup.c index 8d6219858..97a98678b 100644 --- a/src/map_name_popup.c +++ b/src/map_name_popup.c @@ -172,13 +172,13 @@ static u16 MapNamePopupCreateWindow(bool32 palintoFadedBuffer) windowId = AddWindow(&windowTemplate); if (palintoFadedBuffer) { - LoadPalette(stdpal_get(3), 0xd0, 0x20); + LoadPalette(GetTextWindowPalette(3), 0xd0, 0x20); } else { - CpuCopy16(stdpal_get(3), &gPlttBufferUnfaded[0xd0], 0x20); + CpuCopy16(GetTextWindowPalette(3), &gPlttBufferUnfaded[0xd0], 0x20); } - sub_814FF6C(windowId, r6); + LoadStdWindowTiles(windowId, r6); DrawTextBorderOuter(windowId, r6, 0xD); PutWindowTilemap(windowId); MapNamePopupPrintMapNameOnWindow(windowId); diff --git a/src/map_preview_screen.c b/src/map_preview_screen.c index 65b8ba793..de42a0a4f 100644 --- a/src/map_preview_screen.c +++ b/src/map_preview_screen.c @@ -436,7 +436,7 @@ void MapPreview_StartForestTransition(u8 mapsec) SetGpuRegBits(REG_OFFSET_WININ, WININ_WIN0_CLR | WININ_WIN1_CLR); SetGpuRegBits(REG_OFFSET_WINOUT, WINOUT_WIN01_CLR); gTasks[taskId].data[11] = MapPreview_CreateMapNameWindow(mapsec); - ScriptContext2_Enable(); + LockPlayerFieldControls(); } u16 MapPreview_CreateMapNameWindow(u8 mapsec) diff --git a/src/menu.c b/src/menu.c index 3aedd0574..f09ef59df 100644 --- a/src/menu.c +++ b/src/menu.c @@ -180,7 +180,7 @@ u8 CreateTopBarWindowLoadPalette(u8 bg, u8 width, u8 yPos, u8 palette, u16 baseT palette = 15 * 16; else palette *= 16; - LoadPalette(stdpal_get(2), palette, 0x20); + LoadPalette(GetTextWindowPalette(2), palette, 0x20); return sTopBarWindowId; } @@ -534,7 +534,7 @@ void CreateYesNoMenu(const struct WindowTemplate *window, u8 fontId, u8 left, u8 sYesNoWindowId = AddWindow(window); DrawStdFrameWithCustomTileAndPalette(sYesNoWindowId, 1, baseTileNum, paletteNum); - textSubPrinter.currentChar = gUnknown_841623D; + textSubPrinter.currentChar = gText_YesNo; textSubPrinter.windowId = sYesNoWindowId; textSubPrinter.fontId = fontId; textSubPrinter.x = GetMenuCursorDimensionByFont(fontId, 0) + left; diff --git a/src/menu2.c b/src/menu2.c index 0ee315b55..0f372140e 100644 --- a/src/menu2.c +++ b/src/menu2.c @@ -3,6 +3,11 @@ #include "task.h" #include "wild_encounter.h" +// Not actually "old" given these were introduced in Gen 3, +// but they're used as equivalents here alongside the other OLD_UNOWN +#define SPECIES_OLD_UNOWN_EMARK (NUM_SPECIES + 0) +#define SPECIES_OLD_UNOWN_QMARK (NUM_SPECIES + 1) + static void Task_SmoothBlendLayers(u8 taskId); static const u8 sMonSpriteAnchorCoords[][5] = { @@ -503,7 +508,7 @@ void Menu_PrintFormatIntlPlayerName(u8 windowId, const u8 * src, u16 x, u16 y) } } -static void sub_812E768(const struct Bitmap *src, struct Bitmap *dst, u16 srcX, u16 srcY, u16 dstX, u16 dstY, u16 width, u16 height) +static void UnusedBlitBitmapRect(const struct Bitmap *src, struct Bitmap *dst, u16 srcX, u16 srcY, u16 dstX, u16 dstY, u16 width, u16 height) { s32 loopSrcY, loopDstY, loopSrcX, loopDstX, xEnd, yEnd, multiplierSrcY, multiplierDstY; u16 toOrr; diff --git a/src/menu_indicators.c b/src/menu_indicators.c index 33f95705d..86bfcf5fe 100644 --- a/src/menu_indicators.c +++ b/src/menu_indicators.c @@ -82,7 +82,7 @@ static const struct ScrollIndicatorTemplate sScrollIndicatorTemplates[] = static const struct OamData sOamData_ScrollArrowIndicator = { .y = 0, - .affineMode = 0, + .affineMode = ST_OAM_AFFINE_OFF, .objMode = 0, .mosaic = FALSE, .bpp = 0, @@ -222,7 +222,7 @@ static const struct Subsprite sSubsprite_RedOutline8 = static const struct OamData sOamData_RedArrowCursor = { .y = 0, - .affineMode = 0, + .affineMode = ST_OAM_AFFINE_OFF, .objMode = 0, .mosaic = FALSE, .bpp = 0, diff --git a/src/mevent.c b/src/mevent.c index 68b3cd610..386437259 100644 --- a/src/mevent.c +++ b/src/mevent.c @@ -961,7 +961,7 @@ bool32 MEventHandleReceivedWonderCard(u16 flagId) return TRUE; } -void MEvent_RecordIdOfWonderCardSenderByEventType(u32 eventId, u32 trainerId) +void MysteryGift_TryIncrementStat(u32 eventId, u32 trainerId) { if (sReceivedWonderCardIsValid) { diff --git a/src/mevent_client.c b/src/mevent_client.c index 3838558df..e2d226ed6 100644 --- a/src/mevent_client.c +++ b/src/mevent_client.c @@ -215,7 +215,7 @@ static u32 client_mainseq_4(struct mevent_client * svr) MEvent_ReceiveDistributionMon(svr->recvBuffer); break; case 17: - MEventSetRamScript(svr->recvBuffer, 1000); + InitRamScript_NoObjectEvent(svr->recvBuffer, 1000); break; case 18: memcpy(&gSaveBlock2Ptr->battleTower.ereaderTrainer, svr->recvBuffer, sizeof(struct BattleTowerEReaderTrainer)); diff --git a/src/mevent_scripts.c b/src/mevent_scripts.c index 04d44f603..0c2918655 100644 --- a/src/mevent_scripts.c +++ b/src/mevent_scripts.c @@ -1,7 +1,7 @@ #include "global.h" #include "mevent_server.h" -extern const struct mevent_server_cmd gMEventSrvScript_OtherTrainerCanceled[]; +extern const struct mevent_server_cmd gServerScript_ClientCanceledCard[]; // Unreferenced const u8 gUnknown_84687A0[] = _("You have collected all STAMPs!\nWant to input a CARD as a prize?"); @@ -148,7 +148,7 @@ const struct mevent_server_cmd gMEventSrvScript_AskClientToOverwriteCard[] = { SRV_RECV(0x13), SRV_READWORD, SRV_BRANCHIF(0x00, gMEventSrvScript_SendCardSuccess), - SRV_BRANCH(gMEventSrvScript_OtherTrainerCanceled) + SRV_BRANCH(gServerScript_ClientCanceledCard) }; const struct mevent_server_cmd gMEventSrvScript_OtherTrnHasCard[] = { diff --git a/src/mevent_show_card.c b/src/mevent_show_card.c deleted file mode 100644 index 8d3ce4895..000000000 --- a/src/mevent_show_card.c +++ /dev/null @@ -1,452 +0,0 @@ -#include "global.h" -#include "gflib.h" -#include "decompress.h" -#include "menu.h" -#include "new_menu_helpers.h" -#include "pokemon_icon.h" -#include "mystery_gift_menu.h" -#include "mevent.h" -#include "battle_anim.h" - -struct MEventScreenMgr_02DC -{ - u8 nDigits; - u8 nameTxt[41]; - u8 numberTxt[4]; -}; - -struct MEventScreenMgr -{ - /*0000*/ struct WonderCard wonderCard; - /*014c*/ struct WonderCardMetadata buff3430Sub; - /*0170*/ const struct UnkStruct_8467FB8 * bgSpec; - /*0174*/ u8 state; - /*0175*/ u8 recordIdx; - /*0176*/ u16 windowIds[3]; - /*017C*/ u8 monIconId; - /*017D*/ u8 cardIconAndShadowSprites[7][2]; - /*018B*/ u8 title[41]; - /*01B4*/ u8 subtitle[41]; - /*01DD*/ u8 unk_01DD[7]; - /*01E4*/ u8 mainMessageLines[4][41]; - /*0288*/ u8 instructionsLine1[41]; - /*02B1*/ u8 instructionsLine2[41]; - /*02DC*/ struct MEventScreenMgr_02DC recordStrings[8]; - /*045C*/ u8 buffer_045C[0x1000]; -}; - -static EWRAM_DATA struct MEventScreenMgr * sMEventScreenData = NULL; - -static void sub_8145A98(void); -static void sub_8145D18(u8 whichWindow); -static void sub_8146060(void); -static void sub_81461D8(void); - -static const u8 gUnknown_8467068[][3] = { - {0, 2, 3}, - {0, 1, 2} -}; - -static const u8 ALIGNED(4) sTextYCoords[3] = {7, 4, 7}; - -static const struct WindowTemplate sWindowTemplates[] = { - { - .bg = 1, - .tilemapLeft = 1, - .tilemapTop = 1, - .width = 25, - .height = 4, - .paletteNum = 15, - .baseBlock = 0x29c}, - { - .bg = 1, - .tilemapLeft = 1, - .tilemapTop = 6, - .width = 28, - .height = 8, - .paletteNum = 15, - .baseBlock = 0x1bc}, - { - .bg = 1, - .tilemapLeft = 1, - .tilemapTop = 14, - .width = 28, - .height = 5, - .paletteNum = 15, - .baseBlock = 0x130} -}; - -static const u16 sCard0Pal[] = INCBIN_U16("graphics/mevent/pal_46708C.gbapal"); -const u16 gCard1Pal[] = INCBIN_U16("graphics/mevent/pal_4670AC.gbapal"); -const u16 gCard2Pal[] = INCBIN_U16("graphics/mevent/pal_4670CC.gbapal"); -const u16 gCard3Pal[] = INCBIN_U16("graphics/mevent/pal_4670EC.gbapal"); -const u16 gCard4Pal[] = INCBIN_U16("graphics/mevent/pal_46710C.gbapal"); -const u16 gCard5Pal[] = INCBIN_U16("graphics/mevent/pal_46712C.gbapal"); -static const u16 sCard6Pal[] = INCBIN_U16("graphics/mevent/pal_46714C.gbapal"); -static const u16 sCard7Pal[] = INCBIN_U16("graphics/mevent/pal_46716C.gbapal"); -static const u8 sCard0Gfx[] = INCBIN_U8("graphics/mevent/gfx_46718C.4bpp.lz"); -static const u8 sCard0Map[] = INCBIN_U8("graphics/mevent/tilemap_467288.bin.lz"); -static const u8 sCard1Gfx[] = INCBIN_U8("graphics/mevent/gfx_46737C.4bpp.lz"); -static const u8 sCard1Map[] = INCBIN_U8("graphics/mevent/tilemap_467470.bin.lz"); -static const u8 sCard2Gfx[] = INCBIN_U8("graphics/mevent/gfx_467558.4bpp.lz"); -static const u8 sCard2Map[] = INCBIN_U8("graphics/mevent/tilemap_46762C.bin.lz"); -static const u8 sCard6Gfx[] = INCBIN_U8("graphics/mevent/gfx_467700.4bpp.lz"); -static const u8 sCard6Map[] = INCBIN_U8("graphics/mevent/tilemap_467934.bin.lz"); -static const u8 sCard7Gfx[] = INCBIN_U8("graphics/mevent/gfx_467A7C.4bpp.lz"); -static const u8 sCard7Map[] = INCBIN_U8("graphics/mevent/tilemap_467CAC.bin.lz"); -static const u16 sUnknown_8467DF4[] = INCBIN_U16("graphics/mevent/pal_467DF4.gbapal"); -static const u16 sUnknown_8467E14[] = INCBIN_U16("graphics/mevent/pal_467E14.gbapal"); -static const u16 sUnknown_8467E34[] = INCBIN_U16("graphics/mevent/pal_467E34.gbapal"); -static const u16 sUnknown_8467E54[] = INCBIN_U16("graphics/mevent/pal_467E54.gbapal"); -static const u16 sUnknown_8467E74[] = INCBIN_U16("graphics/mevent/pal_467E74.gbapal"); -static const u16 sUnknown_8467E94[] = INCBIN_U16("graphics/mevent/pal_467E94.gbapal"); -static const u16 sUnknown_8467EB4[] = INCBIN_U16("graphics/mevent/pal_467EB4.gbapal"); -static const u16 sUnknown_8467ED4[] = INCBIN_U16("graphics/mevent/pal_467ED4.gbapal"); -static const u32 sUnknown_8467EF4[] = INCBIN_U32("graphics/mevent/gfx_467EF4.4bpp.lz"); - -static const struct CompressedSpriteSheet sShadowSpriteSheet = { - sUnknown_8467EF4, 0x100, 0x8000 -}; - -static const struct SpritePalette sShadowSpritePalettes[] = { - {sUnknown_8467DF4, 0x8000}, - {sUnknown_8467E14, 0x8000}, - {sUnknown_8467E34, 0x8000}, - {sUnknown_8467E54, 0x8000}, - {sUnknown_8467E74, 0x8000}, - {sUnknown_8467E94, 0x8000}, - {sUnknown_8467EB4, 0x8000}, - {sUnknown_8467ED4, 0x8000} -}; - -static const struct SpriteTemplate sShadowSpriteTemplate = { - 0x8000, 0x8000, &gOamData_AffineOff_ObjNormal_32x16, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy -}; - -static const struct UnkStruct_8467FB8 sCardGfxPtrs[8] = { - {1, 0, 0, 0, sCard0Gfx, sCard0Map, sCard0Pal}, - {1, 0, 0, 1, sCard1Gfx, sCard1Map, gCard1Pal}, - {1, 0, 0, 2, sCard2Gfx, sCard2Map, gCard2Pal}, - {1, 0, 0, 3, sCard2Gfx, sCard2Map, gCard3Pal}, - {1, 0, 0, 4, sCard2Gfx, sCard2Map, gCard4Pal}, - {1, 0, 0, 5, sCard2Gfx, sCard2Map, gCard5Pal}, - {1, 0, 0, 6, sCard6Gfx, sCard6Map, sCard6Pal}, - {1, 0, 0, 7, sCard7Gfx, sCard7Map, sCard7Pal} -}; - -bool32 InitWonderCardResources(struct WonderCard * card, struct WonderCardMetadata * b3430sub) -{ - if (card == NULL || b3430sub == NULL) - return FALSE; - sMEventScreenData = AllocZeroed(sizeof(struct MEventScreenMgr)); - if (sMEventScreenData == NULL) - return FALSE; - sMEventScreenData->wonderCard = *card; - sMEventScreenData->buff3430Sub = *b3430sub; - if (sMEventScreenData->wonderCard.bgType >= NELEMS(sCardGfxPtrs)) - sMEventScreenData->wonderCard.bgType = 0; - if (sMEventScreenData->wonderCard.type >= NELEMS(sTextYCoords)) - sMEventScreenData->wonderCard.type = 0; - if (sMEventScreenData->wonderCard.maxStamps > NELEMS(sMEventScreenData->cardIconAndShadowSprites)) - sMEventScreenData->wonderCard.maxStamps = 0; - sMEventScreenData->bgSpec = &sCardGfxPtrs[sMEventScreenData->wonderCard.bgType]; - return TRUE; -} - -void DestroyWonderCardResources(void) -{ - if (sMEventScreenData != NULL) - { - *sMEventScreenData = (struct MEventScreenMgr){}; - Free(sMEventScreenData); - sMEventScreenData = NULL; - } -} - -s32 FadeToWonderCardMenu(void) -{ - if (sMEventScreenData == NULL) - return -1; - switch(sMEventScreenData->state) - { - case 0: - BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); - break; - case 1: - if (UpdatePaletteFade()) - return 0; - break; - case 2: - FillBgTilemapBufferRect_Palette0(0, 0x000, 0, 0, 30, 20); - FillBgTilemapBufferRect_Palette0(1, 0x000, 0, 0, 30, 20); - FillBgTilemapBufferRect_Palette0(2, 0x000, 0, 0, 30, 20); - CopyBgTilemapBufferToVram(0); - CopyBgTilemapBufferToVram(1); - CopyBgTilemapBufferToVram(2); - DecompressAndCopyTileDataToVram(2, sMEventScreenData->bgSpec->tiles, 0, 0x008, 0); - sMEventScreenData->windowIds[0] = AddWindow(&sWindowTemplates[0]); - sMEventScreenData->windowIds[1] = AddWindow(&sWindowTemplates[1]); - sMEventScreenData->windowIds[2] = AddWindow(&sWindowTemplates[2]); - break; - case 3: - if (FreeTempTileDataBuffersIfPossible()) - return 0; - gPaletteFade.bufferTransferDisabled = TRUE; - LoadPalette(sMEventScreenData->bgSpec->pal, 0x10, 0x20); - LZ77UnCompWram(sMEventScreenData->bgSpec->map, sMEventScreenData->buffer_045C); - CopyRectToBgTilemapBufferRect(2, sMEventScreenData->buffer_045C, 0, 0, 30, 20, 0, 0, 30, 20, 1, 0x008, 0); - CopyBgTilemapBufferToVram(2); - break; - case 4: - sub_8145A98(); - break; - case 5: - sub_8145D18(0); - sub_8145D18(1); - sub_8145D18(2); - CopyBgTilemapBufferToVram(1); - break; - case 6: - LoadMonIconPalettes(); - break; - case 7: - ShowBg(1); - ShowBg(2); - gPaletteFade.bufferTransferDisabled = FALSE; - sub_8146060(); - BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_BLACK); - UpdatePaletteFade(); - break; - default: - if (UpdatePaletteFade()) - return 0; - sMEventScreenData->state = 0; - return 1; - } - ++sMEventScreenData->state; - return 0; -} - -s32 FadeOutFromWonderCard(bool32 flag) -{ - if (sMEventScreenData == NULL) - return -1; - switch (sMEventScreenData->state) - { - case 0: - BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); - break; - case 1: - if (UpdatePaletteFade()) - return 0; - break; - case 2: - FillBgTilemapBufferRect_Palette0(0, 0x000, 0, 0, 30, 20); - FillBgTilemapBufferRect_Palette0(1, 0x000, 0, 0, 30, 20); - FillBgTilemapBufferRect_Palette0(2, 0x000, 0, 0, 30, 20); - CopyBgTilemapBufferToVram(0); - CopyBgTilemapBufferToVram(1); - CopyBgTilemapBufferToVram(2); - break; - case 3: - HideBg(1); - HideBg(2); - RemoveWindow(sMEventScreenData->windowIds[2]); - RemoveWindow(sMEventScreenData->windowIds[1]); - RemoveWindow(sMEventScreenData->windowIds[0]); - break; - case 4: - sub_81461D8(); - FreeMonIconPalettes(); - break; - case 5: - PrintMysteryGiftOrEReaderTopMenu(gGiftIsFromEReader, flag); - break; - case 6: - CopyBgTilemapBufferToVram(0); - BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_BLACK); - break; - default: - if (UpdatePaletteFade()) - return 0; - sMEventScreenData->state = 0; - return 1; - } - ++sMEventScreenData->state; - return 0; -} - -static void sub_8145A98(void) -{ - u16 i = 0; - u16 r6; - u16 sp0[3] = {0, 0, 0}; - - memcpy(sMEventScreenData->title, sMEventScreenData->wonderCard.titleText, 40); - sMEventScreenData->title[40] = EOS; - memcpy(sMEventScreenData->subtitle, sMEventScreenData->wonderCard.subtitleText, 40); - sMEventScreenData->subtitle[40] = EOS; - if (sMEventScreenData->wonderCard.idNumber > 999999) - sMEventScreenData->wonderCard.idNumber = 999999; - ConvertIntToDecimalStringN(sMEventScreenData->unk_01DD, sMEventScreenData->wonderCard.idNumber, STR_CONV_MODE_LEFT_ALIGN, 6); - for (i = 0; i < 4; i++) - { - memcpy(sMEventScreenData->mainMessageLines[i], sMEventScreenData->wonderCard.bodyText[i], 40); - sMEventScreenData->mainMessageLines[i][40] = EOS; - } - memcpy(sMEventScreenData->instructionsLine1, sMEventScreenData->wonderCard.footerLine1Text, 40); - sMEventScreenData->instructionsLine1[40] = EOS; - switch (sMEventScreenData->wonderCard.type) - { - case 0: - memcpy(sMEventScreenData->instructionsLine2, sMEventScreenData->wonderCard.footerLine2Text, 40); - sMEventScreenData->instructionsLine2[40] = EOS; - break; - case 1: - sMEventScreenData->instructionsLine2[00] = EOS; - break; - case 2: - sMEventScreenData->instructionsLine2[00] = EOS; - sp0[0] = sMEventScreenData->buff3430Sub.battlesWon < 999 ? sMEventScreenData->buff3430Sub.battlesWon : 999; - sp0[1] = sMEventScreenData->buff3430Sub.battlesLost < 999 ? sMEventScreenData->buff3430Sub.battlesLost : 999; - sp0[2] = sMEventScreenData->buff3430Sub.numTrades < 999 ? sMEventScreenData->buff3430Sub.numTrades : 999; - for (i = 0; i < 8; i++) - { - memset(sMEventScreenData->recordStrings[i].numberTxt, EOS, 4); - memset(sMEventScreenData->recordStrings[i].nameTxt, EOS, 41); - } - for (i = 0, r6 = 0; i < 40; i++) - { - if (sMEventScreenData->wonderCard.footerLine2Text[i] != CHAR_DYNAMIC_PLACEHOLDER) - { - sMEventScreenData->recordStrings[sMEventScreenData->recordIdx].nameTxt[r6] = sMEventScreenData->wonderCard.footerLine2Text[i]; - r6++; - } - else - { - u8 r3 = sMEventScreenData->wonderCard.footerLine2Text[i + 1]; - if (r3 > 2) - { - i += 2; - } - else - { - ConvertIntToDecimalStringN(sMEventScreenData->recordStrings[sMEventScreenData->recordIdx].numberTxt, sp0[r3], STR_CONV_MODE_LEADING_ZEROS, 3); - sMEventScreenData->recordStrings[sMEventScreenData->recordIdx].nDigits = sMEventScreenData->wonderCard.footerLine2Text[i + 2]; - sMEventScreenData->recordIdx++; - if (sMEventScreenData->recordIdx > 7) - break; - r6 = 0; - i += 2; - } - } - } - } -} - -static void sub_8145D18(u8 whichWindow) -{ - s8 sp0C = 0; - s32 windowId = sMEventScreenData->windowIds[whichWindow]; - PutWindowTilemap(windowId); - FillWindowPixelBuffer(windowId, 0); - switch (whichWindow) - { - case 0: - { - s32 x; - AddTextPrinterParameterized3(windowId, FONT_3, 0, 1, gUnknown_8467068[sMEventScreenData->bgSpec->textPal1], 0, sMEventScreenData->title); - x = 160 - GetStringWidth(FONT_3, sMEventScreenData->subtitle, GetFontAttribute(FONT_3, FONTATTR_LETTER_SPACING)); - if (x < 0) - x = 0; - AddTextPrinterParameterized3(windowId, FONT_3, x, 17, gUnknown_8467068[sMEventScreenData->bgSpec->textPal1], 0, sMEventScreenData->subtitle); - if (sMEventScreenData->wonderCard.idNumber != 0) - { - AddTextPrinterParameterized3(windowId, FONT_2, 166, 17, gUnknown_8467068[sMEventScreenData->bgSpec->textPal1], 0, sMEventScreenData->unk_01DD); - } - break; - } - case 1: - for (; sp0C < 4; sp0C++) - { - AddTextPrinterParameterized3(windowId, FONT_3, 0, 16 * sp0C + 2, gUnknown_8467068[sMEventScreenData->bgSpec->textPal2], 0, sMEventScreenData->mainMessageLines[sp0C]); - } - break; - case 2: - AddTextPrinterParameterized3(windowId, FONT_3, 0, sTextYCoords[sMEventScreenData->wonderCard.type], gUnknown_8467068[sMEventScreenData->bgSpec->textPal3], 0, sMEventScreenData->instructionsLine1); - if (sMEventScreenData->wonderCard.type != 2) - { - AddTextPrinterParameterized3(windowId, FONT_3, 0, 16 + sTextYCoords[sMEventScreenData->wonderCard.type], gUnknown_8467068[sMEventScreenData->bgSpec->textPal3], 0, sMEventScreenData->instructionsLine2); - } - else - { - s32 x = 0; - s32 y = sTextYCoords[sMEventScreenData->wonderCard.type] + 16; - s32 spacing = GetFontAttribute(FONT_3, FONTATTR_LETTER_SPACING); - for (; sp0C < sMEventScreenData->recordIdx; sp0C++) - { - AddTextPrinterParameterized3(windowId, FONT_3, x, y, gUnknown_8467068[sMEventScreenData->bgSpec->textPal3], 0, sMEventScreenData->recordStrings[sp0C].nameTxt); - if (sMEventScreenData->recordStrings[sp0C].numberTxt[0] != EOS) - { - x += GetStringWidth(FONT_3, sMEventScreenData->recordStrings[sp0C].nameTxt, spacing); - AddTextPrinterParameterized3(windowId, FONT_2, x, y, gUnknown_8467068[sMEventScreenData->bgSpec->textPal3], 0, sMEventScreenData->recordStrings[sp0C].numberTxt); - x += GetStringWidth(FONT_3, sMEventScreenData->recordStrings[sp0C].numberTxt, spacing) + sMEventScreenData->recordStrings[sp0C].nDigits; - } - } - } - break; - } - CopyWindowToVram(windowId, COPYWIN_FULL); -} - -static void sub_8146060(void) -{ - u8 r7 = 0; - sMEventScreenData->monIconId = 0xFF; - if (sMEventScreenData->buff3430Sub.iconSpecies != SPECIES_NONE) - { - sMEventScreenData->monIconId = CreateMonIcon_HandleDeoxys(MailSpeciesToIconSpecies(sMEventScreenData->buff3430Sub.iconSpecies), SpriteCallbackDummy, 0xDC, 0x14, 0, FALSE); - gSprites[sMEventScreenData->monIconId].oam.priority = 2; - } - if (sMEventScreenData->wonderCard.maxStamps != 0 && sMEventScreenData->wonderCard.type == 1) - { - LoadCompressedSpriteSheetUsingHeap(&sShadowSpriteSheet); - LoadSpritePalette(&sShadowSpritePalettes[sMEventScreenData->bgSpec->index]); - for (; r7 < sMEventScreenData->wonderCard.maxStamps; r7++) - { - sMEventScreenData->cardIconAndShadowSprites[r7][0] = 0xFF; - sMEventScreenData->cardIconAndShadowSprites[r7][1] = 0xFF; - sMEventScreenData->cardIconAndShadowSprites[r7][0] = CreateSprite(&sShadowSpriteTemplate, 0xd8 - 32 * r7, 0x90, 8); - if (sMEventScreenData->buff3430Sub.stampData[0][r7] != 0) - { - sMEventScreenData->cardIconAndShadowSprites[r7][1] = CreateMonIcon_HandleDeoxys(MailSpeciesToIconSpecies(sMEventScreenData->buff3430Sub.stampData[0][r7]), SpriteCallbackDummy, 0xd8 - 32 * r7, 0x88, 0, 0); - gSprites[sMEventScreenData->cardIconAndShadowSprites[r7][1]].oam.priority = 2; - } - } - } -} - -static void sub_81461D8(void) -{ - u8 r6 = 0; - if (sMEventScreenData->monIconId != 0xFF) - DestroyMonIcon(&gSprites[sMEventScreenData->monIconId]); - if (sMEventScreenData->wonderCard.maxStamps != 0 && sMEventScreenData->wonderCard.type == 1) - { - for (; r6 < sMEventScreenData->wonderCard.maxStamps; r6++) - { - if (sMEventScreenData->cardIconAndShadowSprites[r6][0] != 0xFF) - { - DestroySprite(&gSprites[sMEventScreenData->cardIconAndShadowSprites[r6][0]]); - // This might be a typo. Uncomment the next line, and comment the one that follows, to get the presumed intended behavior. - // if (sMEventScreenData->cardIconAndShadowSprites[r6][1] != 0xFF) - if (sMEventScreenData->cardIconAndShadowSprites[r6][0] != 0xFF) - { - DestroyMonIcon(&gSprites[sMEventScreenData->cardIconAndShadowSprites[r6][1]]); - } - } - } - FreeSpriteTilesByTag(0x8000); - FreeSpritePaletteByTag(0x8000); - } -} diff --git a/src/mevent_show_news.c b/src/mevent_show_news.c deleted file mode 100644 index 088f00f11..000000000 --- a/src/mevent_show_news.c +++ /dev/null @@ -1,357 +0,0 @@ -#include "global.h" -#include "gflib.h" -#include "menu_indicators.h" -#include "new_menu_helpers.h" -#include "mevent.h" -#include "mystery_gift_menu.h" -#include "menu.h" -#include "link_rfu.h" - -struct UnkStruct_203F3CC -{ - /*0000*/ struct WonderNews wonderNews; - /*01bc*/ const struct UnkStruct_8467FB8 * bgSpec; - /*01c0*/ u8 verticalScrollDisabled:1; - u8 state:7; - /*01c1*/ u8 menuIndicatorsId; - /*01c2*/ u8 unk_01C2_0:1; - u8 unk_01C2_1:7; - /*01c3*/ u8 scrollDirection:1; - u8 unk_01C3_1:7; - /*01c4*/ u16 numMails; - /*01c6*/ u16 scrollOffset; - /*01c8*/ u16 windowIds[2]; - /*01cc*/ u8 filler_01CC[2]; - /*01ce*/ u8 title[41]; - /*01f7*/ u8 messages[10][41]; - /*0394*/ struct ScrollArrowsTemplate scrollArrowsTemplate; - /*03a4*/ u8 buffer_03A4[0x1000]; -}; - -static EWRAM_DATA struct UnkStruct_203F3CC * sWork = NULL; - -static void sub_8146980(void); -static void sub_8146A30(void); -static void sub_8146B58(void); - -static const u8 sTextPals[][3] = { - {0, 2, 3}, - {0, 1, 2} -}; -static const struct WindowTemplate gUnknown_8468040[] = { - {0, 1, 0, 28, 3, 15, 0x000}, - {2, 1, 3, 28, 20, 15, 0x000} -}; -static const struct ScrollArrowsTemplate sScrollArrowsTemplate = { - 0x02, 0xe8, 0x18, 0x03, 0xe8, 0x98, - 0x0000, 0x0002, 0x1000, 0x1000, 0x0, -}; - -static const u16 sNews1Pal[] = INCBIN_U16("graphics/mevent/pal_468060.gbapal"); -static const u16 sNews6Pal[] = INCBIN_U16("graphics/mevent/pal_468080.gbapal"); -static const u16 sNews7Pal[] = INCBIN_U16("graphics/mevent/pal_4680A0.gbapal"); -static const u8 sNews0Gfx[] = INCBIN_U8("graphics/mevent/gfx_4680C0.4bpp.lz"); -static const u8 sNews0Map[] = INCBIN_U8("graphics/mevent/tilemap_468140.bin.lz"); -static const u8 sNews1Gfx[] = INCBIN_U8("graphics/mevent/gfx_46821C.4bpp.lz"); -static const u8 sNews1Map[] = INCBIN_U8("graphics/mevent/tilemap_46824C.bin.lz"); -static const u8 sNews2Gfx[] = INCBIN_U8("graphics/mevent/gfx_46830C.4bpp.lz"); -static const u8 sNews2Map[] = INCBIN_U8("graphics/mevent/tilemap_46837C.bin.lz"); -static const u8 sNews6Gfx[] = INCBIN_U8("graphics/mevent/gfx_468448.4bpp.lz"); -static const u8 sNews6Map[] = INCBIN_U8("graphics/mevent/tilemap_4684D8.bin.lz"); -static const u8 sNews7Gfx[] = INCBIN_U8("graphics/mevent/gfx_4685B4.4bpp.lz"); -static const u8 sNews7Map[] = INCBIN_U8("graphics/mevent/tilemap_468644.bin.lz"); - -static const struct UnkStruct_8467FB8 sBgSpecs[] = { - {1, 0, 0, 0, sNews0Gfx, sNews0Map, sNews1Pal}, - {1, 0, 0, 0, sNews1Gfx, sNews1Map, gCard1Pal}, - {1, 0, 0, 0, sNews2Gfx, sNews2Map, gCard2Pal}, - {1, 0, 0, 0, sNews2Gfx, sNews2Map, gCard3Pal}, - {1, 0, 0, 0, sNews2Gfx, sNews2Map, gCard4Pal}, - {1, 0, 0, 0, sNews2Gfx, sNews2Map, gCard5Pal}, - {1, 0, 0, 0, sNews6Gfx, sNews6Map, sNews6Pal}, - {1, 0, 0, 0, sNews7Gfx, sNews7Map, sNews7Pal} -}; - -bool32 InitWonderNewsResources(const struct WonderNews * news) -{ - if (news == NULL) - return FALSE; - sWork = AllocZeroed(sizeof(struct UnkStruct_203F3CC)); - if (sWork == NULL) - return FALSE; - sWork->wonderNews = *news; - if (sWork->wonderNews.bgType >= NELEMS(sBgSpecs)) - sWork->wonderNews.bgType = 0; - sWork->bgSpec = &sBgSpecs[sWork->wonderNews.bgType]; - sWork->menuIndicatorsId = 0xFF; - return TRUE; -} - -void DestroyWonderNewsResources(void) -{ - if (sWork != NULL) - { - *sWork = (struct UnkStruct_203F3CC){}; - Free(sWork); - sWork = NULL; - } -} - -s32 FadeToWonderNewsMenu(void) -{ - if (sWork == NULL) - return -1; - - switch (sWork->state) - { - case 0: - BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); - break; - case 1: - if (UpdatePaletteFade()) - return 0; - ChangeBgY(0, 0, 0); - ChangeBgY(1, 0, 0); - ChangeBgY(2, 0, 0); - ChangeBgY(3, 0, 0); - SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(0, 240)); - SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(26, 152)); - SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ); - SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG0 | WINOUT_WIN01_BG1 | WINOUT_WIN01_BG3 | WINOUT_WIN01_OBJ); - SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); - break; - case 2: - FillBgTilemapBufferRect_Palette0(0, 0x000, 0, 0, 30, 20); - FillBgTilemapBufferRect_Palette0(1, 0x000, 0, 0, 30, 20); - FillBgTilemapBufferRect_Palette0(2, 0x000, 0, 0, 30, 20); - FillBgTilemapBufferRect_Palette0(3, 0x000, 0, 0, 30, 20); - CopyBgTilemapBufferToVram(0); - CopyBgTilemapBufferToVram(1); - CopyBgTilemapBufferToVram(2); - CopyBgTilemapBufferToVram(3); - DecompressAndCopyTileDataToVram(3, sWork->bgSpec->tiles, 0, 8, 0); - sWork->windowIds[0] = AddWindow(&gUnknown_8468040[0]); - sWork->windowIds[1] = AddWindow(&gUnknown_8468040[1]); - break; - case 3: - if (FreeTempTileDataBuffersIfPossible()) - return 0; - gPaletteFade.bufferTransferDisabled = TRUE; - LoadPalette(sWork->bgSpec->pal, 0x10, 0x20); - LZ77UnCompWram(sWork->bgSpec->map, sWork->buffer_03A4); - CopyRectToBgTilemapBufferRect(1, sWork->buffer_03A4, 0, 0, 30, 3, 0, 0, 30, 3, 1, 8, 0); - CopyRectToBgTilemapBufferRect(3, sWork->buffer_03A4, 0, 3, 30, 23, 0, 3, 30, 23, 1, 8, 0); - CopyBgTilemapBufferToVram(1); - CopyBgTilemapBufferToVram(3); - break; - case 4: - sub_8146980(); - break; - case 5: - sub_8146A30(); - CopyBgTilemapBufferToVram(0); - CopyBgTilemapBufferToVram(2); - break; - case 6: - ShowBg(1); - ShowBg(2); - ShowBg(3); - gPaletteFade.bufferTransferDisabled = FALSE; - sWork->menuIndicatorsId = AddScrollIndicatorArrowPair(&sWork->scrollArrowsTemplate, &sWork->scrollOffset); - BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_BLACK); - UpdatePaletteFade(); - break; - default: - if (UpdatePaletteFade()) - return 0; - sWork->state = 0; - return 1; - } - - ++sWork->state; - return 0; -} - -s32 FadeOutFromWonderNews(bool32 flag) -{ - if (sWork == NULL) - return -1; - switch (sWork->state) - { - case 0: - BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); - break; - case 1: - if (UpdatePaletteFade()) - return 0; - ChangeBgY(2, 0, 0); - SetGpuReg(REG_OFFSET_WIN0H, 0); - SetGpuReg(REG_OFFSET_WIN0V, 0); - SetGpuReg(REG_OFFSET_WININ, 0); - SetGpuReg(REG_OFFSET_WINOUT, 0); - ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); - break; - case 2: - FillBgTilemapBufferRect_Palette0(0, 0x000, 0, 0, 30, 20); - FillBgTilemapBufferRect_Palette0(1, 0x000, 0, 0, 30, 20); - FillBgTilemapBufferRect_Palette0(2, 0x000, 0, 0, 30, 24); - FillBgTilemapBufferRect_Palette0(3, 0x000, 0, 0, 30, 24); - CopyBgTilemapBufferToVram(0); - CopyBgTilemapBufferToVram(1); - CopyBgTilemapBufferToVram(2); - CopyBgTilemapBufferToVram(3); - break; - case 3: - HideBg(1); - HideBg(2); - RemoveWindow(sWork->windowIds[1]); - RemoveWindow(sWork->windowIds[0]); - break; - case 4: - ChangeBgY(2, 0, 0); - ChangeBgY(3, 0, 0); - if (sWork->menuIndicatorsId != 0xFF) - { - RemoveScrollIndicatorArrowPair(sWork->menuIndicatorsId); - sWork->menuIndicatorsId = 0xFF; - } - break; - case 5: - PrintMysteryGiftOrEReaderTopMenu(gGiftIsFromEReader, flag); - break; - case 6: - MG_DrawCheckerboardPattern(); - CopyBgTilemapBufferToVram(0); - CopyBgTilemapBufferToVram(3); - BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_BLACK); - break; - default: - if (UpdatePaletteFade()) - return 0; - sWork->state = 0; - return 1; - } - ++sWork->state; - return 0; -} - -void MENews_RemoveScrollIndicatorArrowPair(void) -{ - if (!sWork->verticalScrollDisabled && sWork->menuIndicatorsId != 0xFF) - { - RemoveScrollIndicatorArrowPair(sWork->menuIndicatorsId); - sWork->menuIndicatorsId = 0xFF; - sWork->verticalScrollDisabled = TRUE; - } -} - - -void MENews_AddScrollIndicatorArrowPair(void) -{ - if (sWork->verticalScrollDisabled) - { - sWork->menuIndicatorsId = AddScrollIndicatorArrowPair(&sWork->scrollArrowsTemplate, &sWork->scrollOffset); - sWork->verticalScrollDisabled = FALSE; - } -} - -u32 MENews_GetInput(u16 input) -{ - if (sWork->unk_01C2_0) - { - sub_8146B58(); - return 0xFF; - } - switch (input) - { - case A_BUTTON: - return 0; - case B_BUTTON: - return 1; - case DPAD_UP: - if (sWork->scrollOffset == 0) - return 0xFF; - if (sWork->verticalScrollDisabled) - return 0xFF; - sWork->scrollDirection = FALSE; - break; - case DPAD_DOWN: - if (sWork->scrollOffset == sWork->numMails) - return 0xFF; - if (sWork->verticalScrollDisabled) - return 0xFF; - sWork->scrollDirection = TRUE; - break; - default: - return 0xFF; - } - sWork->unk_01C2_0 = TRUE; - sWork->unk_01C2_1 = 2; - sWork->unk_01C3_1 = 0; - if (sWork->scrollDirection == FALSE) - return 2; - else - return 3; -} - -static void sub_8146980(void) -{ - u8 i = 0; - memcpy(sWork->title, sWork->wonderNews.titleText, 40); - sWork->title[40] = EOS; - for (; i < 10; ++i) - { - memcpy(sWork->messages[i], sWork->wonderNews.bodyText[i], 40); - sWork->messages[i][40] = EOS; - if (i > 7 && sWork->messages[i][0] != EOS) - ++sWork->numMails; - } - sWork->scrollArrowsTemplate = sScrollArrowsTemplate; - sWork->scrollArrowsTemplate.fullyDownThreshold = sWork->numMails; -} - -static void sub_8146A30(void) -{ - u8 i = 0; - s32 x; - PutWindowTilemap(sWork->windowIds[0]); - PutWindowTilemap(sWork->windowIds[1]); - FillWindowPixelBuffer(sWork->windowIds[0], 0); - FillWindowPixelBuffer(sWork->windowIds[1], 0); - x = (0xe0 - GetStringWidth(FONT_3, sWork->title, GetFontAttribute(FONT_3, FONTATTR_LETTER_SPACING))) / 2; - if (x < 0) - x = 0; - AddTextPrinterParameterized3(sWork->windowIds[0], FONT_3, x, 6, sTextPals[sWork->bgSpec->textPal1], 0, sWork->title); - for (; i < 10; ++i) - { - AddTextPrinterParameterized3(sWork->windowIds[1], FONT_3, 0, 16 * i + 2, sTextPals[sWork->bgSpec->textPal2], 0, sWork->messages[i]); - } - CopyWindowToVram(sWork->windowIds[0], COPYWIN_FULL); - CopyWindowToVram(sWork->windowIds[1], COPYWIN_FULL); -} - -static void sub_8146B58(void) -{ - u16 r4 = sWork->unk_01C2_1; - r4 <<= 8; - if (sWork->scrollDirection) - { - ChangeBgY(2, r4, 1); - ChangeBgY(3, r4, 1); - } - else - { - ChangeBgY(2, r4, 2); - ChangeBgY(3, r4, 2); - } - sWork->unk_01C3_1 += sWork->unk_01C2_1; - if (sWork->unk_01C3_1 > 15) - { - if (sWork->scrollDirection) - ++sWork->scrollOffset; - else - --sWork->scrollOffset; - sWork->unk_01C2_0 = FALSE; - sWork->unk_01C3_1 = 0; - } -} diff --git a/src/minigame_countdown.c b/src/minigame_countdown.c index 278a0c0de..b7495c328 100644 --- a/src/minigame_countdown.c +++ b/src/minigame_countdown.c @@ -80,8 +80,7 @@ static bool32 RunMinigameCountdownDigitsAnim(u8 spriteId) switch (sprite->data[0]) { case 0: - // some sort of affine transform; x transform disabled - obj_pos2_update_enable(sprite, 0x800, 0x1A); + SetSpriteMatrixAnchor(sprite, NO_ANCHOR, 26); sprite->data[0]++; // fallthrough case 1: diff --git a/src/mon_markings.c b/src/mon_markings.c index da633aacf..e26ae9443 100644 --- a/src/mon_markings.c +++ b/src/mon_markings.c @@ -17,9 +17,9 @@ static void SpriteCB_Marking(struct Sprite *); static void SpriteCB_Cursor(struct Sprite *); static struct Sprite *CreateMarkingComboSprite(u16, u16, const u16 *, u16); -static const u16 sMonMarkingsPal[] = INCBIN_U16("graphics/misc/mon_markings.gbapal"); +static const u16 sMonMarkings_Pal[] = INCBIN_U16("graphics/misc/mon_markings.gbapal"); static const u16 sMonMarkings_Gfx[] = INCBIN_U16("graphics/misc/mon_markings.4bpp"); -static const u8 sUnref_83EE828[] = {0x09, 0x50, 0x13, 0x02, 0xFF}; +static const u8 sUnused[] = {0x09, 0x50, 0x13, 0x02, 0xFF}; static const struct OamData sOamData_MenuWindow = { @@ -290,7 +290,7 @@ void InitMonMarkingsMenu(struct MonMarkingsMenu *ptr) static void BufferMenuWindowTiles(void) { - const struct TextWindowGraphics *frame = GetWindowFrameTilesPal(gSaveBlock2Ptr->optionsWindowFrameType); + const struct TextWindowGraphics *frame = GetUserWindowGraphics(gSaveBlock2Ptr->optionsWindowFrameType); sMenu->frameTiles = frame->tiles; sMenu->framePalette = frame->palette; sMenu->tileLoadState = 0; @@ -558,7 +558,7 @@ static void SpriteCB_Cursor(struct Sprite *sprite) struct Sprite *CreateMonMarkingAllCombosSprite(u16 tileTag, u16 paletteTag, const u16 *palette) { if (palette == NULL) - palette = sMonMarkingsPal; + palette = sMonMarkings_Pal; return CreateMarkingComboSprite(tileTag, paletteTag, palette, 1 << NUM_MON_MARKINGS); } @@ -566,7 +566,7 @@ struct Sprite *CreateMonMarkingAllCombosSprite(u16 tileTag, u16 paletteTag, cons struct Sprite *CreateMonMarkingComboSprite(u16 tileTag, u16 paletteTag, const u16 *palette) { if (palette == NULL) - palette = sMonMarkingsPal; + palette = sMonMarkings_Pal; return CreateMarkingComboSprite(tileTag, paletteTag, palette, 1); } diff --git a/src/money.c b/src/money.c index cff3d8d46..7ba5b6375 100644 --- a/src/money.c +++ b/src/money.c @@ -124,7 +124,7 @@ void DrawMoneyBox(int amount, u8 x, u8 y) sMoneyBoxWindowId = AddWindow(&template); FillWindowPixelBuffer(sMoneyBoxWindowId, 0); PutWindowTilemap(sMoneyBoxWindowId); - TextWindow_SetStdFrame0_WithPal(sMoneyBoxWindowId, 0x21D, 0xD0); + LoadStdWindowGfx(sMoneyBoxWindowId, 0x21D, 0xD0); PrintMoneyAmountInMoneyBoxWithBorder(sMoneyBoxWindowId, 0x21D, 13, amount); } diff --git a/src/mystery_event_script.c b/src/mystery_event_script.c index 06c1c9bbf..edcbdb722 100644 --- a/src/mystery_event_script.c +++ b/src/mystery_event_script.c @@ -145,7 +145,7 @@ bool8 MEScrCmd_setmsg(struct ScriptContext *ctx) bool8 MEScrCmd_runscript(struct ScriptContext *ctx) { u8 *script = (u8 *)(ScriptReadWord(ctx) - ctx->data[1] + ctx->data[0]); - ScriptContext2_RunNewScript(script); + RunScriptImmediately(script); return FALSE; } @@ -247,7 +247,7 @@ bool8 MEScrCmd_givepokemon(struct ScriptContext *ctx) if (species == SPECIES_EGG) StringCopyN(gStringVar1, gText_EggNickname, POKEMON_NAME_LENGTH + 1); else - StringCopyN(gStringVar1, gStartMenuText_Pokemon, POKEMON_NAME_LENGTH + 1); + StringCopyN(gStringVar1, gText_MenuPokemon, POKEMON_NAME_LENGTH + 1); if (gPlayerPartyCount == PARTY_SIZE) { diff --git a/src/mystery_gift_menu.c b/src/mystery_gift_menu.c index 8ed6e80d4..3dfce13a0 100644 --- a/src/mystery_gift_menu.c +++ b/src/mystery_gift_menu.c @@ -333,7 +333,7 @@ const struct ListMenuTemplate sListMenu_Receive = { .cursorKind = 0 }; -const u8 *const Unref_08366ED8[] = { +static const u8 *const sUnusedMenuTexts[] = { gText_VarietyOfEventsImportedWireless, gText_WonderCardsInPossession, gText_ReadNewsThatArrived, @@ -344,8 +344,8 @@ ALIGNED(4) const u8 sMG_Ereader_TextColor_1[3] = { 0, 1, 2 }; ALIGNED(4) const u8 sMG_Ereader_TextColor_1_Copy[3] = { 0, 1, 2 }; ALIGNED(4) const u8 sMG_Ereader_TextColor_2[3] = { 1, 2, 3 }; -const u8 gUnknown_8466EF3[] = _("テスト"); -const u8 gUnknown_8466EF7[] = _("むげんのチケット"); +static const u8 sText_Test[] = _("テスト"); +static const u8 sText_EonTicket[] = _("むげんのチケット"); void vblankcb_mystery_gift_e_reader_run(void) { @@ -390,8 +390,8 @@ bool32 HandleMysteryGiftOrEReaderSetup(s32 mg_or_ereader) SetBgTilemapBuffer(1, Alloc(0x800)); SetBgTilemapBuffer(0, Alloc(0x800)); - LoadUserWindowBorderGfx(0, 10, 0xE0); - DrawWindowBorderWithStdpal3(0, 1, 0xF0); + LoadUserWindowGfx2(0, 10, 0xE0); + LoadStdWindowGfxOnBg(0, 1, 0xF0); DecompressAndLoadBgGfxUsingHeap(3, gUnkTextboxBorderGfx, 0x100, 0, 0); InitWindows(sMainWindows); DeactivateAllTextPrinters(); @@ -403,7 +403,7 @@ bool32 HandleMysteryGiftOrEReaderSetup(s32 mg_or_ereader) break; case 1: LoadPalette(gUnkTextboxBorderPal, 0, 0x20); - LoadPalette(stdpal_get(2), 0xd0, 0x20); + LoadPalette(GetTextWindowPalette(2), 0xd0, 0x20); FillBgTilemapBufferRect(0, 0x000, 0, 0, 32, 32, 0x11); FillBgTilemapBufferRect(1, 0x000, 0, 0, 32, 32, 0x11); FillBgTilemapBufferRect(2, 0x000, 0, 0, 32, 32, 0x11); @@ -802,18 +802,18 @@ bool32 HandleLoadWonderCardOrNews(u8 * state, bool32 cardOrNews) case 0: if (cardOrNews == 0) { - InitWonderCardResources(GetSavedWonderCard(), sav1_get_mevent_buffer_2()); + WonderCard_Init(GetSavedWonderCard(), sav1_get_mevent_buffer_2()); } else { - InitWonderNewsResources(GetSavedWonderNews()); + WonderNews_Init(GetSavedWonderNews()); } (*state)++; break; case 1: if (cardOrNews == 0) { - v0 = FadeToWonderCardMenu(); + v0 = WonderCard_Enter(); check: if (v0 != 0) { @@ -823,7 +823,7 @@ bool32 HandleLoadWonderCardOrNews(u8 * state, bool32 cardOrNews) } else { - v0 = FadeToWonderNewsMenu(); + v0 = WonderNews_Enter(); goto check; } done: @@ -851,9 +851,9 @@ bool32 TearDownCardOrNews_ReturnToTopMenu(bool32 cardOrNews, bool32 arg1) { if (cardOrNews == 0) { - if (FadeOutFromWonderCard(arg1) != 0) + if (WonderCard_Exit(arg1) != 0) { - DestroyWonderCardResources(); + WonderCard_Destroy(); return TRUE; } else @@ -863,9 +863,9 @@ bool32 TearDownCardOrNews_ReturnToTopMenu(bool32 cardOrNews, bool32 arg1) } else { - if (FadeOutFromWonderNews(arg1) != 0) + if (WonderNews_Exit(arg1) != 0) { - DestroyWonderNewsResources(); + WonderNews_Destroy(); return TRUE; } else @@ -1456,10 +1456,10 @@ void task00_mystery_gift(u8 taskId) } else { - switch (MENews_GetInput(gMain.newKeys)) + switch (WonderNews_GetInput(gMain.newKeys)) { case 0: - MENews_RemoveScrollIndicatorArrowPair(); + WonderNews_RemoveScrollIndicatorArrowPair(); data->state = 21; break; case 1: @@ -1507,7 +1507,7 @@ void task00_mystery_gift(u8 taskId) case -2u: if (data->IsCardOrNews == 1) { - MENews_AddScrollIndicatorArrowPair(); + WonderNews_AddScrollIndicatorArrowPair(); } data->state = 20; break; diff --git a/src/mystery_gift_show_card.c b/src/mystery_gift_show_card.c new file mode 100644 index 000000000..c462bda76 --- /dev/null +++ b/src/mystery_gift_show_card.c @@ -0,0 +1,518 @@ +#include "global.h" +#include "gflib.h" +#include "decompress.h" +#include "menu.h" +#include "new_menu_helpers.h" +#include "pokemon_icon.h" +#include "mystery_gift_menu.h" +#include "mevent.h" +#include "battle_anim.h" +#include "constants/mystery_gift.h" + +enum { + WIN_HEADER, + WIN_BODY, + WIN_FOOTER, + WIN_COUNT +}; + +#define TAG_STAMP_SHADOW 0x8000 + +struct CardStatTextData +{ + u8 width; + u8 statText[WONDER_CARD_TEXT_LENGTH + 1]; + u8 statNumberText[4]; +}; + +struct WonderCardData +{ + /*0000*/ struct WonderCard card; + /*014c*/ struct WonderCardMetadata cardMetadata; + /*0170*/ const struct WonderGraphics * gfx; + /*0174*/ u8 enterExitState; + /*0175*/ u8 recordIdx; + /*0176*/ u16 windowIds[WIN_COUNT]; + /*017C*/ u8 monIconSpriteId; + /*017D*/ u8 stampSpriteIds[MAX_STAMP_CARD_STAMPS][2]; // 2 sprites each, 1 for the shadow and 1 for the Pokémon + /*018B*/ u8 titleText[WONDER_CARD_TEXT_LENGTH + 1]; + /*01B4*/ u8 subtitleText[WONDER_CARD_TEXT_LENGTH + 1]; + /*01DD*/ u8 idNumberText[7]; + /*01E4*/ u8 bodyText[WONDER_CARD_BODY_TEXT_LINES][WONDER_CARD_TEXT_LENGTH + 1]; + /*0288*/ u8 footerLine1Text[WONDER_CARD_TEXT_LENGTH + 1]; + /*02B1*/ u8 footerLine2Text[WONDER_CARD_TEXT_LENGTH + 1]; + /*02DC*/ struct CardStatTextData statTextData[8]; + /*045C*/ u8 bgTilemapBuffer[0x1000]; +}; + +static EWRAM_DATA struct WonderCardData * sWonderCardData = NULL; + +static void BufferCardText(void); +static void DrawCardWindow(u8 whichWindow); +static void CreateCardSprites(void); +static void DestroyCardSprites(void); + +static const u8 sTextColorTable[][3] = { + {0, 2, 3}, + {0, 1, 2} +}; + +static const u8 ALIGNED(4) sFooterTextOffsets[CARD_TYPE_COUNT] = +{ + [CARD_TYPE_GIFT] = 7, + [CARD_TYPE_STAMP] = 4, + [CARD_TYPE_LINK_STAT] = 7 +}; + +static const struct WindowTemplate sWindowTemplates[] = { + [WIN_HEADER] = { + .bg = 1, + .tilemapLeft = 1, + .tilemapTop = 1, + .width = 25, + .height = 4, + .paletteNum = 15, + .baseBlock = 0x29c + }, + [WIN_BODY] = { + .bg = 1, + .tilemapLeft = 1, + .tilemapTop = 6, + .width = 28, + .height = 8, + .paletteNum = 15, + .baseBlock = 0x1bc + }, + [WIN_FOOTER] = { + .bg = 1, + .tilemapLeft = 1, + .tilemapTop = 14, + .width = 28, + .height = 5, + .paletteNum = 15, + .baseBlock = 0x130 + } +}; + +static const u16 sCard0Pal[] = INCBIN_U16("graphics/wonder_card/bg0.gbapal"); +const u16 gCard1Pal[] = INCBIN_U16("graphics/wonder_card/bg1.gbapal"); +const u16 gCard2Pal[] = INCBIN_U16("graphics/wonder_card/bg2.gbapal"); +const u16 gCard3Pal[] = INCBIN_U16("graphics/wonder_card/bg3.gbapal"); +const u16 gCard4Pal[] = INCBIN_U16("graphics/wonder_card/bg4.gbapal"); +const u16 gCard5Pal[] = INCBIN_U16("graphics/wonder_card/bg5.gbapal"); +static const u16 sCard6Pal[] = INCBIN_U16("graphics/wonder_card/bg6.gbapal"); +static const u16 sCard7Pal[] = INCBIN_U16("graphics/wonder_card/bg7.gbapal"); +static const u8 sCard0Gfx[] = INCBIN_U8("graphics/wonder_card/bg0.4bpp.lz"); +static const u8 sCard0Map[] = INCBIN_U8("graphics/wonder_card/bg0.bin.lz"); +static const u8 sCard1Gfx[] = INCBIN_U8("graphics/wonder_card/bg1.4bpp.lz"); +static const u8 sCard1Map[] = INCBIN_U8("graphics/wonder_card/bg1.bin.lz"); +static const u8 sCard2Gfx[] = INCBIN_U8("graphics/wonder_card/bg2.4bpp.lz"); +static const u8 sCard2Map[] = INCBIN_U8("graphics/wonder_card/bg2.bin.lz"); +static const u8 sCard6Gfx[] = INCBIN_U8("graphics/wonder_card/bg6.4bpp.lz"); +static const u8 sCard6Map[] = INCBIN_U8("graphics/wonder_card/bg6.bin.lz"); +static const u8 sCard7Gfx[] = INCBIN_U8("graphics/wonder_card/bg7.4bpp.lz"); +static const u8 sCard7Map[] = INCBIN_U8("graphics/wonder_card/bg7.bin.lz"); +static const u16 sStampShadowPal0[] = INCBIN_U16("graphics/wonder_card/stamp_shadow_0.gbapal"); +static const u16 sStampShadowPal1[] = INCBIN_U16("graphics/wonder_card/stamp_shadow_1.gbapal"); +static const u16 sStampShadowPal2[] = INCBIN_U16("graphics/wonder_card/stamp_shadow_2.gbapal"); +static const u16 sStampShadowPal3[] = INCBIN_U16("graphics/wonder_card/stamp_shadow_3.gbapal"); +static const u16 sStampShadowPal4[] = INCBIN_U16("graphics/wonder_card/stamp_shadow_4.gbapal"); +static const u16 sStampShadowPal5[] = INCBIN_U16("graphics/wonder_card/stamp_shadow_5.gbapal"); +static const u16 sStampShadowPal6[] = INCBIN_U16("graphics/wonder_card/stamp_shadow_6.gbapal"); +static const u16 sStampShadowPal7[] = INCBIN_U16("graphics/wonder_card/stamp_shadow_7.gbapal"); +static const u32 sStampShadowGfx[] = INCBIN_U32("graphics/wonder_card/stamp_shadow.4bpp.lz"); + +static const struct CompressedSpriteSheet sSpriteSheet_StampShadow = { + sStampShadowGfx, 0x100, TAG_STAMP_SHADOW +}; + +static const struct SpritePalette sSpritePalettes_StampShadow[] = { + {sStampShadowPal0, TAG_STAMP_SHADOW}, + {sStampShadowPal1, TAG_STAMP_SHADOW}, + {sStampShadowPal2, TAG_STAMP_SHADOW}, + {sStampShadowPal3, TAG_STAMP_SHADOW}, + {sStampShadowPal4, TAG_STAMP_SHADOW}, + {sStampShadowPal5, TAG_STAMP_SHADOW}, + {sStampShadowPal6, TAG_STAMP_SHADOW}, + {sStampShadowPal7, TAG_STAMP_SHADOW} +}; + +static const struct SpriteTemplate sSpriteTemplate_StampShadow = { + .tileTag = TAG_STAMP_SHADOW, + .paletteTag = TAG_STAMP_SHADOW, + .oam = &gOamData_AffineOff_ObjNormal_32x16, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy +}; + +static const struct WonderGraphics sCardGraphics[NUM_WONDER_BGS] = { + {.titleTextPal = 1, .bodyTextPal = 0, .footerTextPal = 0, .stampShadowPal = 0, .tiles = sCard0Gfx, .map = sCard0Map, .pal = sCard0Pal}, + {.titleTextPal = 1, .bodyTextPal = 0, .footerTextPal = 0, .stampShadowPal = 1, .tiles = sCard1Gfx, .map = sCard1Map, .pal = gCard1Pal}, + {.titleTextPal = 1, .bodyTextPal = 0, .footerTextPal = 0, .stampShadowPal = 2, .tiles = sCard2Gfx, .map = sCard2Map, .pal = gCard2Pal}, + {.titleTextPal = 1, .bodyTextPal = 0, .footerTextPal = 0, .stampShadowPal = 3, .tiles = sCard2Gfx, .map = sCard2Map, .pal = gCard3Pal}, + {.titleTextPal = 1, .bodyTextPal = 0, .footerTextPal = 0, .stampShadowPal = 4, .tiles = sCard2Gfx, .map = sCard2Map, .pal = gCard4Pal}, + {.titleTextPal = 1, .bodyTextPal = 0, .footerTextPal = 0, .stampShadowPal = 5, .tiles = sCard2Gfx, .map = sCard2Map, .pal = gCard5Pal}, + {.titleTextPal = 1, .bodyTextPal = 0, .footerTextPal = 0, .stampShadowPal = 6, .tiles = sCard6Gfx, .map = sCard6Map, .pal = sCard6Pal}, + {.titleTextPal = 1, .bodyTextPal = 0, .footerTextPal = 0, .stampShadowPal = 7, .tiles = sCard7Gfx, .map = sCard7Map, .pal = sCard7Pal} +}; + +bool32 WonderCard_Init(struct WonderCard * card, struct WonderCardMetadata * metadata) +{ + if (card == NULL || metadata == NULL) + return FALSE; + sWonderCardData = AllocZeroed(sizeof(*sWonderCardData)); + if (sWonderCardData == NULL) + return FALSE; + sWonderCardData->card = *card; + sWonderCardData->cardMetadata = *metadata; + if (sWonderCardData->card.bgType >= NUM_WONDER_BGS) + sWonderCardData->card.bgType = 0; + if (sWonderCardData->card.type >= CARD_TYPE_COUNT) + sWonderCardData->card.type = 0; + if (sWonderCardData->card.maxStamps > MAX_STAMP_CARD_STAMPS) + sWonderCardData->card.maxStamps = 0; + sWonderCardData->gfx = &sCardGraphics[sWonderCardData->card.bgType]; + return TRUE; +} + +void WonderCard_Destroy(void) +{ + if (sWonderCardData != NULL) + { + *sWonderCardData = (struct WonderCardData){}; + FREE_AND_SET_NULL(sWonderCardData); + } +} + +s32 WonderCard_Enter(void) +{ + if (sWonderCardData == NULL) + return -1; + switch(sWonderCardData->enterExitState) + { + case 0: + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); + break; + case 1: + if (UpdatePaletteFade()) + return 0; + break; + case 2: + FillBgTilemapBufferRect_Palette0(0, 0x000, 0, 0, 30, 20); + FillBgTilemapBufferRect_Palette0(1, 0x000, 0, 0, 30, 20); + FillBgTilemapBufferRect_Palette0(2, 0x000, 0, 0, 30, 20); + CopyBgTilemapBufferToVram(0); + CopyBgTilemapBufferToVram(1); + CopyBgTilemapBufferToVram(2); + DecompressAndCopyTileDataToVram(2, sWonderCardData->gfx->tiles, 0, 0x008, 0); + sWonderCardData->windowIds[WIN_HEADER] = AddWindow(&sWindowTemplates[WIN_HEADER]); + sWonderCardData->windowIds[WIN_BODY] = AddWindow(&sWindowTemplates[WIN_BODY]); + sWonderCardData->windowIds[WIN_FOOTER] = AddWindow(&sWindowTemplates[WIN_FOOTER]); + break; + case 3: + if (FreeTempTileDataBuffersIfPossible()) + return 0; + gPaletteFade.bufferTransferDisabled = TRUE; + LoadPalette(sWonderCardData->gfx->pal, 0x10, 0x20); + LZ77UnCompWram(sWonderCardData->gfx->map, sWonderCardData->bgTilemapBuffer); + CopyRectToBgTilemapBufferRect(2, sWonderCardData->bgTilemapBuffer, 0, 0, 30, 20, 0, 0, 30, 20, 1, 0x008, 0); + CopyBgTilemapBufferToVram(2); + break; + case 4: + BufferCardText(); + break; + case 5: + DrawCardWindow(WIN_HEADER); + DrawCardWindow(WIN_BODY); + DrawCardWindow(WIN_FOOTER); + CopyBgTilemapBufferToVram(1); + break; + case 6: + LoadMonIconPalettes(); + break; + case 7: + ShowBg(1); + ShowBg(2); + gPaletteFade.bufferTransferDisabled = FALSE; + CreateCardSprites(); + BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_BLACK); + UpdatePaletteFade(); + break; + default: + if (UpdatePaletteFade()) + return 0; + sWonderCardData->enterExitState = 0; + return 1; + } + sWonderCardData->enterExitState++; + return 0; +} + +s32 WonderCard_Exit(bool32 useCancel) +{ + if (sWonderCardData == NULL) + return -1; + switch (sWonderCardData->enterExitState) + { + case 0: + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); + break; + case 1: + if (UpdatePaletteFade()) + return 0; + break; + case 2: + FillBgTilemapBufferRect_Palette0(0, 0x000, 0, 0, 30, 20); + FillBgTilemapBufferRect_Palette0(1, 0x000, 0, 0, 30, 20); + FillBgTilemapBufferRect_Palette0(2, 0x000, 0, 0, 30, 20); + CopyBgTilemapBufferToVram(0); + CopyBgTilemapBufferToVram(1); + CopyBgTilemapBufferToVram(2); + break; + case 3: + HideBg(1); + HideBg(2); + RemoveWindow(sWonderCardData->windowIds[WIN_FOOTER]); + RemoveWindow(sWonderCardData->windowIds[WIN_BODY]); + RemoveWindow(sWonderCardData->windowIds[WIN_HEADER]); + break; + case 4: + DestroyCardSprites(); + FreeMonIconPalettes(); + break; + case 5: + PrintMysteryGiftOrEReaderTopMenu(gGiftIsFromEReader, useCancel); + break; + case 6: + CopyBgTilemapBufferToVram(0); + BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_BLACK); + break; + default: + if (UpdatePaletteFade()) + return 0; + sWonderCardData->enterExitState = 0; + return 1; + } + sWonderCardData->enterExitState++; + return 0; +} + +static void BufferCardText(void) +{ + u16 i = 0; + u16 charsUntilStat; + u16 stats[3] = {0, 0, 0}; + + // Copy title/subtitle text + memcpy(sWonderCardData->titleText, sWonderCardData->card.titleText, WONDER_CARD_TEXT_LENGTH); + sWonderCardData->titleText[WONDER_CARD_TEXT_LENGTH] = EOS; + memcpy(sWonderCardData->subtitleText, sWonderCardData->card.subtitleText, WONDER_CARD_TEXT_LENGTH); + sWonderCardData->subtitleText[WONDER_CARD_TEXT_LENGTH] = EOS; + + // Copy card id number + if (sWonderCardData->card.idNumber > 999999) + sWonderCardData->card.idNumber = 999999; + ConvertIntToDecimalStringN(sWonderCardData->idNumberText, sWonderCardData->card.idNumber, STR_CONV_MODE_LEFT_ALIGN, 6); + + // Copy body text + for (i = 0; i < WONDER_CARD_BODY_TEXT_LINES; i++) + { + memcpy(sWonderCardData->bodyText[i], sWonderCardData->card.bodyText[i], WONDER_CARD_TEXT_LENGTH); + sWonderCardData->bodyText[i][WONDER_CARD_TEXT_LENGTH] = EOS; + } + + // Copy footer line 1 + memcpy(sWonderCardData->footerLine1Text, sWonderCardData->card.footerLine1Text, WONDER_CARD_TEXT_LENGTH); + sWonderCardData->footerLine1Text[WONDER_CARD_TEXT_LENGTH] = EOS; + + // Copy footer line 2 + switch (sWonderCardData->card.type) + { + case CARD_TYPE_GIFT: + memcpy(sWonderCardData->footerLine2Text, sWonderCardData->card.footerLine2Text, WONDER_CARD_TEXT_LENGTH); + sWonderCardData->footerLine2Text[WONDER_CARD_TEXT_LENGTH] = EOS; + break; + case CARD_TYPE_STAMP: + sWonderCardData->footerLine2Text[0] = EOS; + break; + case CARD_TYPE_LINK_STAT: + sWonderCardData->footerLine2Text[0] = EOS; + + // Load stats + stats[0] = sWonderCardData->cardMetadata.battlesWon < MAX_WONDER_CARD_STAT ? sWonderCardData->cardMetadata.battlesWon : MAX_WONDER_CARD_STAT; + stats[1] = sWonderCardData->cardMetadata.battlesLost < MAX_WONDER_CARD_STAT ? sWonderCardData->cardMetadata.battlesLost : MAX_WONDER_CARD_STAT; + stats[2] = sWonderCardData->cardMetadata.numTrades < MAX_WONDER_CARD_STAT ? sWonderCardData->cardMetadata.numTrades : MAX_WONDER_CARD_STAT; + + // Init stat text arrays + for (i = 0; i < ARRAY_COUNT(sWonderCardData->statTextData); i++) + { + memset(sWonderCardData->statTextData[i].statNumberText, EOS, sizeof(sWonderCardData->statTextData[i].statNumberText)); + memset(sWonderCardData->statTextData[i].statText, EOS, sizeof(sWonderCardData->statTextData[i].statText)); + } + + // Copy stat texts + for (i = 0, charsUntilStat = 0; i < WONDER_CARD_TEXT_LENGTH; i++) + { + if (sWonderCardData->card.footerLine2Text[i] != CHAR_DYNAMIC_PLACEHOLDER) + { + // Regular text, just copy as is + sWonderCardData->statTextData[sWonderCardData->recordIdx].statText[charsUntilStat] = sWonderCardData->card.footerLine2Text[i]; + charsUntilStat++; + } + else + { + // Dynamic char encountered + // These are used to give the id of which stat to print + u8 id = sWonderCardData->card.footerLine2Text[i + 1]; + if (id >= ARRAY_COUNT(stats)) + { + // Invalid stat id, skip ahead + i += 2; + } + else + { + // Copy stat number + ConvertIntToDecimalStringN(sWonderCardData->statTextData[sWonderCardData->recordIdx].statNumberText, stats[id], STR_CONV_MODE_LEADING_ZEROS, 3); + sWonderCardData->statTextData[sWonderCardData->recordIdx].width = sWonderCardData->card.footerLine2Text[i + 2]; + sWonderCardData->recordIdx++; + if (sWonderCardData->recordIdx >= ARRAY_COUNT(sWonderCardData->statTextData)) + break; + charsUntilStat = 0; + i += 2; + } + } + } + } +} + +static void DrawCardWindow(u8 whichWindow) +{ + s8 i = 0; + s32 windowId = sWonderCardData->windowIds[whichWindow]; + PutWindowTilemap(windowId); + FillWindowPixelBuffer(windowId, 0); + switch (whichWindow) + { + case WIN_HEADER: + { + // Print card title/subtitle + s32 x; + AddTextPrinterParameterized3(windowId, FONT_3, 0, 1, sTextColorTable[sWonderCardData->gfx->titleTextPal], 0, sWonderCardData->titleText); + x = 160 - GetStringWidth(FONT_3, sWonderCardData->subtitleText, GetFontAttribute(FONT_3, FONTATTR_LETTER_SPACING)); + if (x < 0) + x = 0; + AddTextPrinterParameterized3(windowId, FONT_3, x, 17, sTextColorTable[sWonderCardData->gfx->titleTextPal], 0, sWonderCardData->subtitleText); + + // Print id number + if (sWonderCardData->card.idNumber != 0) + AddTextPrinterParameterized3(windowId, FONT_2, 166, 17, sTextColorTable[sWonderCardData->gfx->titleTextPal], 0, sWonderCardData->idNumberText); + break; + } + case WIN_BODY: + // Print body text + for (; i < WONDER_CARD_BODY_TEXT_LINES; i++) + AddTextPrinterParameterized3(windowId, FONT_3, 0, 16 * i + 2, sTextColorTable[sWonderCardData->gfx->bodyTextPal], 0, sWonderCardData->bodyText[i]); + break; + case WIN_FOOTER: + // Print footer line 1 + AddTextPrinterParameterized3(windowId, FONT_3, 0, + sFooterTextOffsets[sWonderCardData->card.type], + sTextColorTable[sWonderCardData->gfx->footerTextPal], + 0, sWonderCardData->footerLine1Text); + + // Print footer line 2 + if (sWonderCardData->card.type != CARD_TYPE_LINK_STAT) + { + // Print gift text + // Odd that CARD_TYPE_STAMP is not ignored, it has empty text for this + AddTextPrinterParameterized3(windowId, FONT_3, 0, + 16 + sFooterTextOffsets[sWonderCardData->card.type], + sTextColorTable[sWonderCardData->gfx->footerTextPal], + 0, sWonderCardData->footerLine2Text); + } + else + { + s32 x = 0; + s32 y = sFooterTextOffsets[sWonderCardData->card.type] + 16; + s32 spacing = GetFontAttribute(FONT_3, FONTATTR_LETTER_SPACING); + for (; i < sWonderCardData->recordIdx; i++) + { + // Print stat text + AddTextPrinterParameterized3(windowId, FONT_3, x, y, sTextColorTable[sWonderCardData->gfx->footerTextPal], 0, sWonderCardData->statTextData[i].statText); + if (sWonderCardData->statTextData[i].statNumberText[0] != EOS) + { + // Print stat number + x += GetStringWidth(FONT_3, sWonderCardData->statTextData[i].statText, spacing); + AddTextPrinterParameterized3(windowId, FONT_2, x, y, + sTextColorTable[sWonderCardData->gfx->footerTextPal], + 0, sWonderCardData->statTextData[i].statNumberText); + x += GetStringWidth(FONT_3, sWonderCardData->statTextData[i].statNumberText, spacing) + sWonderCardData->statTextData[i].width; + } + } + } + break; + } + CopyWindowToVram(windowId, COPYWIN_FULL); +} + +static void CreateCardSprites(void) +{ + u8 i = 0; + sWonderCardData->monIconSpriteId = SPRITE_NONE; + + // Create icon sprite + if (sWonderCardData->cardMetadata.iconSpecies != SPECIES_NONE) + { + sWonderCardData->monIconSpriteId = CreateMonIcon_HandleDeoxys(MailSpeciesToIconSpecies(sWonderCardData->cardMetadata.iconSpecies), SpriteCallbackDummy, 220, 20, 0, FALSE); + gSprites[sWonderCardData->monIconSpriteId].oam.priority = 2; + } + + // Create stamp sprites + if (sWonderCardData->card.maxStamps != 0 && sWonderCardData->card.type == CARD_TYPE_STAMP) + { + LoadCompressedSpriteSheetUsingHeap(&sSpriteSheet_StampShadow); + LoadSpritePalette(&sSpritePalettes_StampShadow[sWonderCardData->gfx->stampShadowPal]); + for (; i < sWonderCardData->card.maxStamps; i++) + { + sWonderCardData->stampSpriteIds[i][0] = SPRITE_NONE; + sWonderCardData->stampSpriteIds[i][1] = SPRITE_NONE; + sWonderCardData->stampSpriteIds[i][0] = CreateSprite(&sSpriteTemplate_StampShadow, 216 - 32 * i, 0x90, 8); + if (sWonderCardData->cardMetadata.stampData[0][i] != 0) + { + sWonderCardData->stampSpriteIds[i][1] = CreateMonIcon_HandleDeoxys(MailSpeciesToIconSpecies(sWonderCardData->cardMetadata.stampData[0][i]), SpriteCallbackDummy, 216 - 32 * i, 136, 0, 0); + gSprites[sWonderCardData->stampSpriteIds[i][1]].oam.priority = 2; + } + } + } +} + +static void DestroyCardSprites(void) +{ + u8 i = 0; + + // Destroy icon sprite + if (sWonderCardData->monIconSpriteId != SPRITE_NONE) + DestroyMonIcon(&gSprites[sWonderCardData->monIconSpriteId]); + + // Destroy stamp sprites + if (sWonderCardData->card.maxStamps != 0 && sWonderCardData->card.type == CARD_TYPE_STAMP) + { + for (; i < sWonderCardData->card.maxStamps; i++) + { + if (sWonderCardData->stampSpriteIds[i][0] != SPRITE_NONE) + { + DestroySprite(&gSprites[sWonderCardData->stampSpriteIds[i][0]]); + #ifdef BUGFIX + if (sWonderCardData->stampSpriteIds[i][1] != SPRITE_NONE) + #else + if (sWonderCardData->stampSpriteIds[i][0] != SPRITE_NONE) + #endif + DestroyMonIcon(&gSprites[sWonderCardData->stampSpriteIds[i][1]]); + } + } + FreeSpriteTilesByTag(TAG_STAMP_SHADOW); + FreeSpritePaletteByTag(TAG_STAMP_SHADOW); + } +} diff --git a/src/mystery_gift_show_news.c b/src/mystery_gift_show_news.c new file mode 100644 index 000000000..b97e74c8c --- /dev/null +++ b/src/mystery_gift_show_news.c @@ -0,0 +1,404 @@ +#include "global.h" +#include "gflib.h" +#include "menu_indicators.h" +#include "new_menu_helpers.h" +#include "mevent.h" +#include "mystery_gift_menu.h" +#include "menu.h" +#include "link_rfu.h" +#include "list_menu.h" +#include "constants/mystery_gift.h" + +enum { + WIN_TITLE, + WIN_BODY, + WIN_COUNT +}; + +#define TAG_ARROWS 0x1000 + +struct WonderNewsData +{ + struct WonderNews news; + const struct WonderGraphics * gfx; + bool8 verticalScrollDisabled:1; + u8 enterExitState:7; + u8 arrowTaskId; + bool8 scrolling:1; + u8 scrollIncrement:7; + bool8 scrollingDown:1; + u8 scrollTotal:7; + u16 scrollEnd; + u16 scrollOffset; + u16 windowIds[WIN_COUNT]; + u8 unused[2]; + u8 titleText[WONDER_NEWS_TEXT_LENGTH + 1]; + u8 bodyText[WONDER_NEWS_BODY_TEXT_LINES][WONDER_NEWS_TEXT_LENGTH + 1]; + struct ScrollArrowsTemplate arrowsTemplate; + u8 bgTilemapBuffer[0x1000]; +}; + +static EWRAM_DATA struct WonderNewsData * sWonderNewsData = NULL; + +static void BufferNewsText(void); +static void DrawNewsWindows(void); +static void UpdateNewsScroll(void); + +static const u8 sTextColorTable[][3] = { + {0, 2, 3}, + {0, 1, 2} +}; +static const struct WindowTemplate sWindowTemplates[] = { + [WIN_TITLE] = { + .bg = 0, + .tilemapLeft = 1, + .tilemapTop = 0, + .width = 28, + .height = 3, + .paletteNum = 15, + .baseBlock = 0x000 + }, + [WIN_BODY] = { + .bg = 2, + .tilemapLeft = 1, + .tilemapTop = 3, + .width = 28, + .height = 20, + .paletteNum = 15, + .baseBlock = 0x000 + } +}; +static const struct ScrollArrowsTemplate sArrowsTemplate = { + .firstArrowType = SCROLL_ARROW_UP, + .firstX = 232, + .firstY = 24, + .secondArrowType = SCROLL_ARROW_DOWN, + .secondX = 232, + .secondY = 152, + .fullyUpThreshold = 0, + .fullyDownThreshold = 2, + .tileTag = TAG_ARROWS, + .palTag = TAG_ARROWS, + .palNum = 0 +}; + +static const u16 sNews0Pal[] = INCBIN_U16("graphics/wonder_news/bg0.gbapal"); +static const u16 sNews6Pal[] = INCBIN_U16("graphics/wonder_news/bg6.gbapal"); +static const u16 sNews7Pal[] = INCBIN_U16("graphics/wonder_news/bg7.gbapal"); +static const u8 sNews0Gfx[] = INCBIN_U8("graphics/wonder_news/bg0.4bpp.lz"); +static const u8 sNews0Map[] = INCBIN_U8("graphics/wonder_news/bg0.bin.lz"); +static const u8 sNews1Gfx[] = INCBIN_U8("graphics/wonder_news/bg1.4bpp.lz"); +static const u8 sNews1Map[] = INCBIN_U8("graphics/wonder_news/bg1.bin.lz"); +static const u8 sNews2Gfx[] = INCBIN_U8("graphics/wonder_news/bg2.4bpp.lz"); +static const u8 sNews2Map[] = INCBIN_U8("graphics/wonder_news/bg2.bin.lz"); +static const u8 sNews6Gfx[] = INCBIN_U8("graphics/wonder_news/bg6.4bpp.lz"); +static const u8 sNews6Map[] = INCBIN_U8("graphics/wonder_news/bg6.bin.lz"); +static const u8 sNews7Gfx[] = INCBIN_U8("graphics/wonder_news/bg7.4bpp.lz"); +static const u8 sNews7Map[] = INCBIN_U8("graphics/wonder_news/bg7.bin.lz"); + +static const struct WonderGraphics sNewsGraphics[NUM_WONDER_BGS] = { + {.titleTextPal = 1, .bodyTextPal = 0, .tiles = sNews0Gfx, .map = sNews0Map, .pal = sNews0Pal}, + {.titleTextPal = 1, .bodyTextPal = 0, .tiles = sNews1Gfx, .map = sNews1Map, .pal = gCard1Pal}, + {.titleTextPal = 1, .bodyTextPal = 0, .tiles = sNews2Gfx, .map = sNews2Map, .pal = gCard2Pal}, + {.titleTextPal = 1, .bodyTextPal = 0, .tiles = sNews2Gfx, .map = sNews2Map, .pal = gCard3Pal}, + {.titleTextPal = 1, .bodyTextPal = 0, .tiles = sNews2Gfx, .map = sNews2Map, .pal = gCard4Pal}, + {.titleTextPal = 1, .bodyTextPal = 0, .tiles = sNews2Gfx, .map = sNews2Map, .pal = gCard5Pal}, + {.titleTextPal = 1, .bodyTextPal = 0, .tiles = sNews6Gfx, .map = sNews6Map, .pal = sNews6Pal}, + {.titleTextPal = 1, .bodyTextPal = 0, .tiles = sNews7Gfx, .map = sNews7Map, .pal = sNews7Pal} +}; + +bool32 WonderNews_Init(const struct WonderNews * news) +{ + if (news == NULL) + return FALSE; + sWonderNewsData = AllocZeroed(sizeof(*sWonderNewsData)); + if (sWonderNewsData == NULL) + return FALSE; + sWonderNewsData->news = *news; + if (sWonderNewsData->news.bgType >= NUM_WONDER_BGS) + sWonderNewsData->news.bgType = 0; + sWonderNewsData->gfx = &sNewsGraphics[sWonderNewsData->news.bgType]; + sWonderNewsData->arrowTaskId = TASK_NONE; + return TRUE; +} + +void WonderNews_Destroy(void) +{ + if (sWonderNewsData != NULL) + { + *sWonderNewsData = (struct WonderNewsData){}; + FREE_AND_SET_NULL(sWonderNewsData); + } +} + +s32 WonderNews_Enter(void) +{ + if (sWonderNewsData == NULL) + return -1; + + switch (sWonderNewsData->enterExitState) + { + case 0: + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); + break; + case 1: + if (UpdatePaletteFade()) + return 0; + ChangeBgY(0, 0, BG_COORD_SET); + ChangeBgY(1, 0, BG_COORD_SET); + ChangeBgY(2, 0, BG_COORD_SET); + ChangeBgY(3, 0, BG_COORD_SET); + SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(0, DISPLAY_WIDTH)); + SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(26, 152)); + SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ); + SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG0 | WINOUT_WIN01_BG1 | WINOUT_WIN01_BG3 | WINOUT_WIN01_OBJ); + SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); + break; + case 2: + FillBgTilemapBufferRect_Palette0(0, 0x000, 0, 0, 30, 20); + FillBgTilemapBufferRect_Palette0(1, 0x000, 0, 0, 30, 20); + FillBgTilemapBufferRect_Palette0(2, 0x000, 0, 0, 30, 20); + FillBgTilemapBufferRect_Palette0(3, 0x000, 0, 0, 30, 20); + CopyBgTilemapBufferToVram(0); + CopyBgTilemapBufferToVram(1); + CopyBgTilemapBufferToVram(2); + CopyBgTilemapBufferToVram(3); + DecompressAndCopyTileDataToVram(3, sWonderNewsData->gfx->tiles, 0, 8, 0); + sWonderNewsData->windowIds[WIN_TITLE] = AddWindow(&sWindowTemplates[WIN_TITLE]); + sWonderNewsData->windowIds[WIN_BODY] = AddWindow(&sWindowTemplates[WIN_BODY]); + break; + case 3: + if (FreeTempTileDataBuffersIfPossible()) + return 0; + gPaletteFade.bufferTransferDisabled = TRUE; + LoadPalette(sWonderNewsData->gfx->pal, 0x10, 0x20); + LZ77UnCompWram(sWonderNewsData->gfx->map, sWonderNewsData->bgTilemapBuffer); + CopyRectToBgTilemapBufferRect(1, sWonderNewsData->bgTilemapBuffer, 0, 0, 30, 3, 0, 0, 30, 3, 1, 8, 0); + CopyRectToBgTilemapBufferRect(3, sWonderNewsData->bgTilemapBuffer, 0, 3, 30, 23, 0, 3, 30, 23, 1, 8, 0); + CopyBgTilemapBufferToVram(1); + CopyBgTilemapBufferToVram(3); + break; + case 4: + BufferNewsText(); + break; + case 5: + DrawNewsWindows(); + CopyBgTilemapBufferToVram(0); + CopyBgTilemapBufferToVram(2); + break; + case 6: + ShowBg(1); + ShowBg(2); + ShowBg(3); + gPaletteFade.bufferTransferDisabled = FALSE; + sWonderNewsData->arrowTaskId = AddScrollIndicatorArrowPair(&sWonderNewsData->arrowsTemplate, &sWonderNewsData->scrollOffset); + BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_BLACK); + UpdatePaletteFade(); + break; + default: + if (UpdatePaletteFade()) + return 0; + sWonderNewsData->enterExitState = 0; + return 1; + } + + sWonderNewsData->enterExitState++; + return 0; +} + +s32 WonderNews_Exit(bool32 useCancel) +{ + if (sWonderNewsData == NULL) + return -1; + switch (sWonderNewsData->enterExitState) + { + case 0: + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); + break; + case 1: + if (UpdatePaletteFade()) + return 0; + ChangeBgY(2, 0, BG_COORD_SET); + SetGpuReg(REG_OFFSET_WIN0H, 0); + SetGpuReg(REG_OFFSET_WIN0V, 0); + SetGpuReg(REG_OFFSET_WININ, 0); + SetGpuReg(REG_OFFSET_WINOUT, 0); + ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); + break; + case 2: + FillBgTilemapBufferRect_Palette0(0, 0x000, 0, 0, 30, 20); + FillBgTilemapBufferRect_Palette0(1, 0x000, 0, 0, 30, 20); + FillBgTilemapBufferRect_Palette0(2, 0x000, 0, 0, 30, 24); + FillBgTilemapBufferRect_Palette0(3, 0x000, 0, 0, 30, 24); + CopyBgTilemapBufferToVram(0); + CopyBgTilemapBufferToVram(1); + CopyBgTilemapBufferToVram(2); + CopyBgTilemapBufferToVram(3); + break; + case 3: + HideBg(1); + HideBg(2); + RemoveWindow(sWonderNewsData->windowIds[WIN_BODY]); + RemoveWindow(sWonderNewsData->windowIds[WIN_TITLE]); + break; + case 4: + ChangeBgY(2, 0, BG_COORD_SET); + ChangeBgY(3, 0, BG_COORD_SET); + if (sWonderNewsData->arrowTaskId != TASK_NONE) + { + RemoveScrollIndicatorArrowPair(sWonderNewsData->arrowTaskId); + sWonderNewsData->arrowTaskId = TASK_NONE; + } + break; + case 5: + PrintMysteryGiftOrEReaderTopMenu(gGiftIsFromEReader, useCancel); + break; + case 6: + MG_DrawCheckerboardPattern(); + CopyBgTilemapBufferToVram(0); + CopyBgTilemapBufferToVram(3); + BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_BLACK); + break; + default: + if (UpdatePaletteFade()) + return 0; + sWonderNewsData->enterExitState = 0; + return 1; + } + ++sWonderNewsData->enterExitState; + return 0; +} + +void WonderNews_RemoveScrollIndicatorArrowPair(void) +{ + if (!sWonderNewsData->verticalScrollDisabled && sWonderNewsData->arrowTaskId != TASK_NONE) + { + RemoveScrollIndicatorArrowPair(sWonderNewsData->arrowTaskId); + sWonderNewsData->arrowTaskId = TASK_NONE; + sWonderNewsData->verticalScrollDisabled = TRUE; + } +} + + +void WonderNews_AddScrollIndicatorArrowPair(void) +{ + if (sWonderNewsData->verticalScrollDisabled) + { + sWonderNewsData->arrowTaskId = AddScrollIndicatorArrowPair(&sWonderNewsData->arrowsTemplate, &sWonderNewsData->scrollOffset); + sWonderNewsData->verticalScrollDisabled = FALSE; + } +} + +u32 WonderNews_GetInput(u16 input) +{ + if (sWonderNewsData->scrolling) + { + UpdateNewsScroll(); + return NEWS_INPUT_NONE; + } + switch (input) + { + case A_BUTTON: + return NEWS_INPUT_A; + case B_BUTTON: + return NEWS_INPUT_B; + case DPAD_UP: + if (sWonderNewsData->scrollOffset == 0) + return NEWS_INPUT_NONE; + if (sWonderNewsData->verticalScrollDisabled) + return NEWS_INPUT_NONE; + sWonderNewsData->scrollingDown = FALSE; + break; + case DPAD_DOWN: + if (sWonderNewsData->scrollOffset == sWonderNewsData->scrollEnd) + return NEWS_INPUT_NONE; + if (sWonderNewsData->verticalScrollDisabled) + return NEWS_INPUT_NONE; + sWonderNewsData->scrollingDown = TRUE; + break; + default: + return NEWS_INPUT_NONE; + } + + // Init scroll + sWonderNewsData->scrolling = TRUE; + sWonderNewsData->scrollIncrement = 2; + sWonderNewsData->scrollTotal = 0; + if (!sWonderNewsData->scrollingDown) + return NEWS_INPUT_SCROLL_UP; + else + return NEWS_INPUT_SCROLL_DOWN; +} + +static void BufferNewsText(void) +{ + u8 i = 0; + + // Copy title text + memcpy(sWonderNewsData->titleText, sWonderNewsData->news.titleText, WONDER_NEWS_TEXT_LENGTH); + sWonderNewsData->titleText[WONDER_NEWS_TEXT_LENGTH] = EOS; + + // Copy body text + for (; i < WONDER_NEWS_BODY_TEXT_LINES; i++) + { + memcpy(sWonderNewsData->bodyText[i], sWonderNewsData->news.bodyText[i], WONDER_NEWS_TEXT_LENGTH); + sWonderNewsData->bodyText[i][WONDER_NEWS_TEXT_LENGTH] = EOS; + if (i > 7 && sWonderNewsData->bodyText[i][0] != EOS) + sWonderNewsData->scrollEnd++; + } + sWonderNewsData->arrowsTemplate = sArrowsTemplate; + sWonderNewsData->arrowsTemplate.fullyDownThreshold = sWonderNewsData->scrollEnd; +} + +static void DrawNewsWindows(void) +{ + u8 i = 0; + s32 x; + PutWindowTilemap(sWonderNewsData->windowIds[WIN_TITLE]); + PutWindowTilemap(sWonderNewsData->windowIds[WIN_BODY]); + FillWindowPixelBuffer(sWonderNewsData->windowIds[WIN_TITLE], 0); + FillWindowPixelBuffer(sWonderNewsData->windowIds[WIN_BODY], 0); + + // Print title text + x = (224 - GetStringWidth(FONT_3, sWonderNewsData->titleText, GetFontAttribute(FONT_3, FONTATTR_LETTER_SPACING))) / 2; + if (x < 0) + x = 0; + AddTextPrinterParameterized3(sWonderNewsData->windowIds[WIN_TITLE], FONT_3, x, 6, sTextColorTable[sWonderNewsData->gfx->titleTextPal], 0, sWonderNewsData->titleText); + + // Print body text + for (; i < WONDER_NEWS_BODY_TEXT_LINES; ++i) + { + AddTextPrinterParameterized3(sWonderNewsData->windowIds[WIN_BODY], FONT_3, 0, + 16 * i + 2, + sTextColorTable[sWonderNewsData->gfx->bodyTextPal], + 0, sWonderNewsData->bodyText[i]); + } + CopyWindowToVram(sWonderNewsData->windowIds[WIN_TITLE], COPYWIN_FULL); + CopyWindowToVram(sWonderNewsData->windowIds[WIN_BODY], COPYWIN_FULL); +} + +static void UpdateNewsScroll(void) +{ + u16 bgMove = sWonderNewsData->scrollIncrement; + bgMove *= 256; + if (sWonderNewsData->scrollingDown) + { + ChangeBgY(2, bgMove, BG_COORD_ADD); + ChangeBgY(3, bgMove, BG_COORD_ADD); + } + else + { + ChangeBgY(2, bgMove, BG_COORD_SUB); + ChangeBgY(3, bgMove, BG_COORD_SUB); + } + sWonderNewsData->scrollTotal += sWonderNewsData->scrollIncrement; + if (sWonderNewsData->scrollTotal > 15) + { + if (sWonderNewsData->scrollingDown) + sWonderNewsData->scrollOffset++; + else + sWonderNewsData->scrollOffset--; + sWonderNewsData->scrolling = FALSE; + sWonderNewsData->scrollTotal = 0; + } +} diff --git a/src/naming_screen.c b/src/naming_screen.c index 57560c3d7..32d1bd087 100644 --- a/src/naming_screen.c +++ b/src/naming_screen.c @@ -1393,7 +1393,7 @@ static void NamingScreen_CreatePlayerIcon(void) u8 spriteId; rivalGfxId = GetRivalAvatarGraphicsIdByStateIdAndGender(PLAYER_AVATAR_STATE_NORMAL, sNamingScreen->monSpecies); - spriteId = AddPseudoObjectEvent(rivalGfxId, SpriteCallbackDummy, 56, 37, 0); + spriteId = CreateObjectGraphicsSprite(rivalGfxId, SpriteCallbackDummy, 56, 37, 0); gSprites[spriteId].oam.priority = 3; StartSpriteAnim(&gSprites[spriteId], ANIM_STD_GO_SOUTH); } @@ -1440,7 +1440,7 @@ static void NamingScreen_CreateRivalIcon(void) const struct SubspriteTable * tables_p; u8 spriteId; - MakeObjectTemplateFromObjectEventGraphicsInfo(OBJ_EVENT_GFX_RED_NORMAL, SpriteCallbackDummy, &template, &tables_p); + CopyObjectGraphicsInfoToSpriteTemplate(OBJ_EVENT_GFX_RED_NORMAL, SpriteCallbackDummy, &template, &tables_p); template.tileTag = sheet.tag; template.paletteTag = palette.tag; @@ -1874,7 +1874,7 @@ static void LoadPalettes(void) { LoadPalette(gNamingScreenMenu_Pal, 0, sizeof(gNamingScreenMenu_Pal)); LoadPalette(gNamingScreenKeyboard_Pal, 0xA0, 0x20); - LoadPalette(stdpal_get(2), 0xB0, 0x20); + LoadPalette(GetTextWindowPalette(2), 0xB0, 0x20); } static void DecompressToBgTilemapBuffer(u8 bg, const u32 *src) diff --git a/src/new_game.c b/src/new_game.c index 741d1d602..d6400d763 100644 --- a/src/new_game.c +++ b/src/new_game.c @@ -130,7 +130,7 @@ void NewGameInitData(void) ClearPlayerLinkBattleRecords(); InitHeracrossSizeRecord(); InitMagikarpSizeRecord(); - sub_806E190(); + EnableNationalPokedex_RSE(); gPlayerPartyCount = 0; ZeroPlayerPartyMons(); ResetPokemonStorageSystem(); @@ -146,7 +146,7 @@ void NewGameInitData(void) InitMEventData(); SetAllRenewableItemFlags(); WarpToPlayersRoom(); - ScriptContext2_RunNewScript(EventScript_ResetAllMapFlags); + RunScriptImmediately(EventScript_ResetAllMapFlags); StringCopy(gSaveBlock1Ptr->rivalName, rivalName); ResetTrainerTowerResults(); } diff --git a/src/new_menu_helpers.c b/src/new_menu_helpers.c index e11dbb36b..85521d0e9 100644 --- a/src/new_menu_helpers.c +++ b/src/new_menu_helpers.c @@ -19,21 +19,26 @@ static EWRAM_DATA u16 sTempTileDataBufferCursor = {0}; static EWRAM_DATA void *sTempTileDataBuffers[0x20] = {NULL}; static EWRAM_DATA u8 sStartMenuWindowId = {0}; -static const u16 gUnknown_841EF48[] = INCBIN_U16("graphics/unknown/unk_841EF48.4bpp"); +static const u16 sUnusedWindow_Gfx[] = INCBIN_U16("graphics/text_window/unused.4bpp"); +const u16 gMenuMessageWindow_Gfx[] = INCBIN_U16("graphics/text_window/menu_message.4bpp"); -const u16 gUnknown_841F1C8[] = INCBIN_U16("graphics/text_window/unk_841F1C8.4bpp"); -const u16 gTMCaseMainWindowPalette[] = INCBIN_U16("graphics/tm_case/unk_841F408.gbapal"); +const u16 gStandardMenuPalette[] = INCBIN_U16("graphics/interface/std_menu.gbapal"); -static const u8 gUnknown_841F428[] = { 8, 4, 1 }; +static const u8 sTextSpeedFrameDelays[] = +{ + [OPTIONS_TEXT_SPEED_SLOW] = 8, + [OPTIONS_TEXT_SPEED_MID] = 4, + [OPTIONS_TEXT_SPEED_FAST] = 1 +}; static const struct WindowTemplate sStandardTextBox_WindowTemplates[] = { { .bg = 0, - .tilemapLeft = 0x2, - .tilemapTop = 0xF, - .width = 0x1A, - .height = 0x4, + .tilemapLeft = 2, + .tilemapTop = 15, + .width = 26, + .height = 4, .paletteNum = DLG_WINDOW_PALETTE_NUM, .baseBlock = 0x198, }, @@ -43,10 +48,10 @@ static const struct WindowTemplate sStandardTextBox_WindowTemplates[] = static const struct WindowTemplate sYesNo_WindowTemplate = { .bg = 0, - .tilemapLeft = 0x15, - .tilemapTop = 0x9, - .width = 0x6, - .height = 0x4, + .tilemapLeft = 21, + .tilemapTop = 9, + .width = 6, + .height = 4, .paletteNum = DLG_WINDOW_PALETTE_NUM, .baseBlock = 0x125, }; @@ -455,14 +460,14 @@ void LoadStdWindowFrameGfx(void) if (gQuestLogState == QL_STATE_PLAYBACK) { gTextFlags.autoScroll = 1; - TextWindow_LoadTilesStdFrame1(0, DLG_WINDOW_BASE_TILE_NUM); + LoadQuestLogWindowTiles(0, DLG_WINDOW_BASE_TILE_NUM); } else { Menu_LoadStdPal(); - TextWindow_LoadResourcesStdFrame0(0, DLG_WINDOW_BASE_TILE_NUM, DLG_WINDOW_PALETTE_NUM * 0x10); + LoadMenuMessageWindowGfx(0, DLG_WINDOW_BASE_TILE_NUM, DLG_WINDOW_PALETTE_NUM * 0x10); } - TextWindow_SetUserSelectedFrame(0, STD_WINDOW_BASE_TILE_NUM, STD_WINDOW_PALETTE_NUM * 0x10); + LoadUserWindowGfx(0, STD_WINDOW_BASE_TILE_NUM, STD_WINDOW_PALETTE_NUM * 0x10); } void DrawDialogueFrame(u8 windowId, bool8 copyToVram) @@ -522,7 +527,7 @@ static void WindowFunc_DrawStandardFrame(u8 bg, u8 tilemapLeft, u8 tilemapTop, u static void WindowFunc_DrawDialogueFrame(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum) { - if (!IsMsgSignPost() || gQuestLogState == QL_STATE_PLAYBACK) + if (!IsMsgSignpost() || gQuestLogState == QL_STATE_PLAYBACK) { FillBgTilemapBufferRect(bg, DLG_WINDOW_BASE_TILE_NUM + 0, tilemapLeft - 2, tilemapTop - 1, 1, 1, DLG_WINDOW_PALETTE_NUM); FillBgTilemapBufferRect(bg, DLG_WINDOW_BASE_TILE_NUM + 1, tilemapLeft - 1, tilemapTop - 1, 1, 1, DLG_WINDOW_PALETTE_NUM); @@ -592,7 +597,7 @@ static void WindowFunc_ClearDialogWindowAndFrame(u8 bg, u8 tilemapLeft, u8 tilem FillBgTilemapBufferRect(bg, 0, tilemapLeft - 2, tilemapTop - 1, width + 4, height + 2, STD_WINDOW_PALETTE_NUM); } -void sub_80F771C(bool8 copyToVram) +void EraseFieldMessageBox(bool8 copyToVram) { FillBgTilemapBufferRect(0, 0, 0, 0, 0x20, 0x20, 0x11); if (copyToVram == TRUE) @@ -604,40 +609,41 @@ void SetStdWindowBorderStyle(u8 windowId, bool8 copyToVram) DrawStdFrameWithCustomTileAndPalette(windowId, copyToVram, STD_WINDOW_BASE_TILE_NUM, STD_WINDOW_PALETTE_NUM); } -void sub_80F7768(u8 windowId, bool8 copyToVram) +void LoadMessageBoxAndFrameGfx(u8 windowId, bool8 copyToVram) { if (gQuestLogState == QL_STATE_PLAYBACK) { gTextFlags.autoScroll = 1; - TextWindow_LoadTilesStdFrame1(0, DLG_WINDOW_BASE_TILE_NUM); + LoadQuestLogWindowTiles(0, DLG_WINDOW_BASE_TILE_NUM); } else { - TextWindow_LoadResourcesStdFrame0(windowId, DLG_WINDOW_BASE_TILE_NUM, DLG_WINDOW_PALETTE_NUM * 0x10); + LoadMenuMessageWindowGfx(windowId, DLG_WINDOW_BASE_TILE_NUM, DLG_WINDOW_PALETTE_NUM * 0x10); } DrawDialogFrameWithCustomTileAndPalette(windowId, copyToVram, DLG_WINDOW_BASE_TILE_NUM, DLG_WINDOW_PALETTE_NUM); } void Menu_LoadStdPal(void) { - LoadPalette(gTMCaseMainWindowPalette, STD_WINDOW_PALETTE_NUM * 0x10, 0x14); + LoadPalette(gStandardMenuPalette, STD_WINDOW_PALETTE_NUM * 0x10, 0x14); } void Menu_LoadStdPalAt(u16 offset) { - LoadPalette(gTMCaseMainWindowPalette, offset, 0x14); + LoadPalette(gStandardMenuPalette, offset, 0x14); } -static const u16 *GetTmCaseMainWindowPalette(void) +// Unused +static const u16 *GetStdMenuPalette(void) { - return gTMCaseMainWindowPalette; + return gStandardMenuPalette; } static u16 GetStdPalColor(u8 colorNum) { if (colorNum > 0xF) colorNum = 0; - return gTMCaseMainWindowPalette[colorNum]; + return gStandardMenuPalette[colorNum]; } void DisplayItemMessageOnField(u8 taskId, u8 fontId, const u8 *string, TaskFunc callback) @@ -662,7 +668,7 @@ u8 GetTextSpeedSetting(void) u32 speed; if (gSaveBlock2Ptr->optionsTextSpeed > OPTIONS_TEXT_SPEED_FAST) gSaveBlock2Ptr->optionsTextSpeed = OPTIONS_TEXT_SPEED_MID; - return gUnknown_841F428[gSaveBlock2Ptr->optionsTextSpeed]; + return sTextSpeedFrameDelays[gSaveBlock2Ptr->optionsTextSpeed]; } u8 CreateStartMenuWindow(u8 height) @@ -702,7 +708,7 @@ u16 GetStdWindowBaseTileNum(void) void DrawHelpMessageWindowWithText(const u8 * text) { - sub_814FE6C(CreateHelpMessageWindow(), DLG_WINDOW_BASE_TILE_NUM, 0x10 * DLG_WINDOW_PALETTE_NUM); + LoadHelpMessageWindowGfx(CreateHelpMessageWindow(), DLG_WINDOW_BASE_TILE_NUM, 0x10 * DLG_WINDOW_PALETTE_NUM); PrintTextOnHelpMessageWindow(text, 2); } @@ -711,11 +717,11 @@ void DestroyHelpMessageWindow_(void) DestroyHelpMessageWindow(2); } -void LoadSignPostWindowFrameGfx(void) +void LoadSignpostWindowFrameGfx(void) { Menu_LoadStdPal(); - sub_814FEEC(0, DLG_WINDOW_BASE_TILE_NUM, 0x10 * DLG_WINDOW_PALETTE_NUM); - TextWindow_SetUserSelectedFrame(0, STD_WINDOW_BASE_TILE_NUM, 0x10 * STD_WINDOW_PALETTE_NUM); + LoadSignpostWindowGfx(0, DLG_WINDOW_BASE_TILE_NUM, 0x10 * DLG_WINDOW_PALETTE_NUM); + LoadUserWindowGfx(0, STD_WINDOW_BASE_TILE_NUM, 0x10 * STD_WINDOW_PALETTE_NUM); } void SetDefaultFontsPointer(void) diff --git a/src/oak_speech.c b/src/oak_speech.c index 9dd2d5175..7fb20aa4e 100644 --- a/src/oak_speech.c +++ b/src/oak_speech.c @@ -548,7 +548,7 @@ static void Task_OaksSpeech1(u8 taskId) InitTextBoxGfxAndPrinters(); Menu_LoadStdPalAt(0xD0); LoadPalette(sHelpDocsPalette, 0x000, 0x080); - LoadPalette(stdpal_get(2) + 15, 0x000, 0x002); + LoadPalette(GetTextWindowPalette(2) + 15, 0x000, 0x002); break; case 5: sOakSpeechResources->textSpeed = GetTextSpeedSetting(); @@ -629,7 +629,7 @@ static void Task_OakSpeech4(u8 taskId) } CopyBgTilemapBufferToVram(1); } - BeginNormalPaletteFade(0xFFFFDFFF, -1, 16, 0, stdpal_get(2)[15]); + BeginNormalPaletteFade(0xFFFFDFFF, -1, 16, 0, GetTextWindowPalette(2)[15]); gTasks[taskId].func = Task_OaksSpeech2; } @@ -642,7 +642,7 @@ static void Task_OaksSpeech2(u8 taskId) gTasks[taskId].data[15] = 1; if (sOakSpeechResources->unk_0012 < 2) { - BeginNormalPaletteFade(0xFFFFDFFF, -1, 0, 16, stdpal_get(2)[15]); + BeginNormalPaletteFade(0xFFFFDFFF, -1, 0, 16, GetTextWindowPalette(2)[15]); } } else @@ -650,7 +650,7 @@ static void Task_OaksSpeech2(u8 taskId) if (sOakSpeechResources->unk_0012 != 0) { gTasks[taskId].data[15] = -1; - BeginNormalPaletteFade(0xFFFFDFFF, -1, 0, 16, stdpal_get(2)[15]); + BeginNormalPaletteFade(0xFFFFDFFF, -1, 0, 16, GetTextWindowPalette(2)[15]); } else return; diff --git a/src/option_menu.c b/src/option_menu.c index 477178ada..49de39a62 100644 --- a/src/option_menu.c +++ b/src/option_menu.c @@ -337,17 +337,17 @@ static bool8 LoadOptionMenuPalette(void) switch (sOptionMenuPtr->loadPaletteState) { case 0: - LoadBgTiles(1, GetWindowFrameTilesPal(sOptionMenuPtr->option[MENUITEM_FRAMETYPE])->tiles, 0x120, 0x1AA); + LoadBgTiles(1, GetUserWindowGraphics(sOptionMenuPtr->option[MENUITEM_FRAMETYPE])->tiles, 0x120, 0x1AA); break; case 1: - LoadPalette(GetWindowFrameTilesPal(sOptionMenuPtr->option[MENUITEM_FRAMETYPE])->palette, 0x20, 0x20); + LoadPalette(GetUserWindowGraphics(sOptionMenuPtr->option[MENUITEM_FRAMETYPE])->palette, 0x20, 0x20); break; case 2: LoadPalette(sOptionMenuPalette, 0x10, 0x20); - LoadPalette(stdpal_get(2), 0xF0, 0x20); + LoadPalette(GetTextWindowPalette(2), 0xF0, 0x20); break; case 3: - DrawWindowBorderWithStdpal3(1, 0x1B3, 0x30); + LoadStdWindowGfxOnBg(1, 0x1B3, 0x30); break; default: return TRUE; @@ -381,8 +381,8 @@ static void Task_OptionMenu(u8 taskId) sOptionMenuPtr->loadState++; break; case 2: - LoadBgTiles(1, GetWindowFrameTilesPal(sOptionMenuPtr->option[MENUITEM_FRAMETYPE])->tiles, 0x120, 0x1AA); - LoadPalette(GetWindowFrameTilesPal(sOptionMenuPtr->option[MENUITEM_FRAMETYPE])->palette, 0x20, 0x20); + LoadBgTiles(1, GetUserWindowGraphics(sOptionMenuPtr->option[MENUITEM_FRAMETYPE])->tiles, 0x120, 0x1AA); + LoadPalette(GetUserWindowGraphics(sOptionMenuPtr->option[MENUITEM_FRAMETYPE])->palette, 0x20, 0x20); BufferOptionMenuString(sOptionMenuPtr->cursorPos); break; case 3: @@ -524,7 +524,7 @@ static void CloseAndSaveOptionMenu(u8 taskId) static void PrintOptionMenuHeader(void) { FillWindowPixelBuffer(0, PIXEL_FILL(1)); - AddTextPrinterParameterized(WIN_TEXT_OPTION, FONT_2, gText_MenuOption, 8, 1, TEXT_SKIP_DRAW, NULL); + AddTextPrinterParameterized(WIN_TEXT_OPTION, FONT_2, gText_Option, 8, 1, TEXT_SKIP_DRAW, NULL); PutWindowTilemap(0); CopyWindowToVram(0, COPYWIN_FULL); } diff --git a/src/overworld.c b/src/overworld.c index 6c1420418..8c6037ca3 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -47,6 +47,8 @@ #include "trainer_pokemon_sprites.h" #include "vs_seeker.h" #include "wild_encounter.h" +#include "constants/cable_club.h" +#include "constants/event_objects.h" #include "constants/maps.h" #include "constants/region_map_sections.h" #include "constants/songs.h" @@ -242,7 +244,7 @@ static const u16 sWhiteOutMoneyLossBadgeFlagIDs[] = { static void DoWhiteOut(void) { - ScriptContext2_RunNewScript(EventScript_ResetEliteFourEnd); + RunScriptImmediately(EventScript_ResetEliteFourEnd); RemoveMoney(&gSaveBlock1Ptr->money, ComputeWhiteOutMoneyLoss()); HealPlayerParty(); Overworld_ResetStateAfterWhitingOut(); @@ -400,22 +402,22 @@ static void LoadObjEventTemplatesFromHeader(void) u8 i, j; for (i = 0, j = 0; i < gMapHeader.events->objectEventCount; i++) { - if (gMapHeader.events->objectEvents[i].inConnection == 0xFF) + if (gMapHeader.events->objectEvents[i].kind == OBJ_KIND_CLONE) { - // load "in_connection" object from the connecting map - u8 localId = gMapHeader.events->objectEvents[i].elevation; - u8 mapNum = gMapHeader.events->objectEvents[i].trainerType; - u8 mapGroup = gMapHeader.events->objectEvents[i].trainerRange_berryTreeId; + // load target object from the connecting map + u8 localId = gMapHeader.events->objectEvents[i].objUnion.clone.targetLocalId; + u8 mapNum = gMapHeader.events->objectEvents[i].objUnion.clone.targetMapNum; + u8 mapGroup = gMapHeader.events->objectEvents[i].objUnion.clone.targetMapGroup; const struct MapHeader * connectionMap = Overworld_GetMapHeaderByGroupAndId(mapGroup, mapNum); gSaveBlock1Ptr->objectEventTemplates[j] = connectionMap->events->objectEvents[localId - 1]; gSaveBlock1Ptr->objectEventTemplates[j].localId = gMapHeader.events->objectEvents[i].localId; gSaveBlock1Ptr->objectEventTemplates[j].x = gMapHeader.events->objectEvents[i].x; gSaveBlock1Ptr->objectEventTemplates[j].y = gMapHeader.events->objectEvents[i].y; - gSaveBlock1Ptr->objectEventTemplates[j].elevation = localId; - gSaveBlock1Ptr->objectEventTemplates[j].trainerType = mapNum; - gSaveBlock1Ptr->objectEventTemplates[j].trainerRange_berryTreeId = mapGroup; - gSaveBlock1Ptr->objectEventTemplates[j].inConnection = 0xFF; + gSaveBlock1Ptr->objectEventTemplates[j].objUnion.clone.targetLocalId = localId; + gSaveBlock1Ptr->objectEventTemplates[j].objUnion.clone.targetMapNum = mapNum; + gSaveBlock1Ptr->objectEventTemplates[j].objUnion.clone.targetMapGroup = mapGroup; + gSaveBlock1Ptr->objectEventTemplates[j].kind = OBJ_KIND_CLONE; j++; } else @@ -463,7 +465,7 @@ void SetObjEventTemplateMovementType(u8 localId, u8 movementType) struct ObjectEventTemplate *objectEventTemplate = &savObjTemplates[i]; if (objectEventTemplate->localId == localId) { - objectEventTemplate->movementType = movementType; + objectEventTemplate->objUnion.normal.movementType = movementType; return; } } @@ -805,7 +807,7 @@ static void LoadMapFromWarp(bool32 unused) InitMap(); } -static void sub_80559A8(void) +static void QL_LoadMapNormal(void) { bool8 isOutdoors; @@ -1393,13 +1395,13 @@ static void DoCB1_Overworld(u16 newKeys, u16 heldKeys) FieldClearPlayerInput(&fieldInput); FieldGetPlayerInput(&fieldInput, newKeys, heldKeys); FieldInput_HandleCancelSignpost(&fieldInput); - if (!ScriptContext2_IsEnabled()) + if (!ArePlayerFieldControlsLocked()) { if (ProcessPlayerFieldInput(&fieldInput) == TRUE) { if (gQuestLogPlaybackState == 2) sub_81127F8(&gInputToStoreInQuestLogMaybe); - ScriptContext2_Enable(); + LockPlayerFieldControls(); DismissMapNamePopup(); } else @@ -1420,11 +1422,11 @@ static void DoCB1_Overworld_QuestLogPlayback(void) FieldClearPlayerInput(&fieldInput); fieldInput = gQuestLogFieldInput; FieldInput_HandleCancelSignpost(&fieldInput); - if (!ScriptContext2_IsEnabled()) + if (!ArePlayerFieldControlsLocked()) { if (ProcessPlayerFieldInput(&fieldInput) == TRUE) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); DismissMapNamePopup(); } else @@ -1452,7 +1454,7 @@ void CB1_Overworld(void) static void OverworldBasic(void) { - ScriptContext2_RunScript(); + ScriptContext_RunScript(); RunTasks(); AnimateSprites(); CameraUpdate(); @@ -1518,8 +1520,8 @@ void CB2_NewGame(void) NewGameInitData(); ResetInitialPlayerAvatarState(); PlayTimeCounter_Start(); - ScriptContext1_Init(); - ScriptContext2_Disable(); + ScriptContext_Init(); + UnlockPlayerFieldControls(); gFieldCallback = FieldCB_WarpExitFadeFromBlack; gFieldCallback2 = NULL; DoMapLoadLoop(&gMain.state); @@ -1539,8 +1541,8 @@ void CB2_WhiteOut(void) ResetSafariZoneFlag_(); DoWhiteOut(); SetInitialPlayerAvatarStateWithDirection(DIR_NORTH); - ScriptContext1_Init(); - ScriptContext2_Disable(); + ScriptContext_Init(); + UnlockPlayerFieldControls(); gFieldCallback = FieldCB_RushInjuredPokemonToCenter; val = 0; DoMapLoadLoop(&val); @@ -1554,8 +1556,8 @@ void CB2_WhiteOut(void) void CB2_LoadMap(void) { FieldClearVBlankHBlankCallbacks(); - ScriptContext1_Init(); - ScriptContext2_Disable(); + ScriptContext_Init(); + UnlockPlayerFieldControls(); SetMainCallback1(NULL); SetMainCallback2(CB2_DoChangeMap); gMain.savedCallback = CB2_LoadMap2; @@ -1634,8 +1636,8 @@ void CB2_ReturnToFieldFromMultiplayer(void) else gFieldCallback = FieldCB_ReturnToFieldCableLink; - ScriptContext1_Init(); - ScriptContext2_Disable(); + ScriptContext_Init(); + UnlockPlayerFieldControls(); CB2_ReturnToField(); } @@ -1685,8 +1687,8 @@ void CB2_ContinueSavedGame(void) Overworld_ResetStateOnContinue(); InitMapFromSavedGame(); PlayTimeCounter_Start(); - ScriptContext1_Init(); - ScriptContext2_Disable(); + ScriptContext_Init(); + UnlockPlayerFieldControls(); gFieldCallback2 = NULL; gExitStairsMovementDisabled = TRUE; if (UseContinueGameWarp() == TRUE) @@ -1760,8 +1762,8 @@ static bool32 LoadMapInStepsLink(u8 *state) { case 0: InitOverworldBgs(); - ScriptContext1_Init(); - ScriptContext2_Disable(); + ScriptContext_Init(); + UnlockPlayerFieldControls(); (*state)++; break; case 1: @@ -2136,7 +2138,7 @@ static void InitObjectEventsLocal(void) static void ReloadObjectsAndRunReturnToFieldMapScript(void) { - ReloadMapObjectsWithOffset(0, 0); + SpawnObjectEventsOnReturnToField(0, 0); RunOnReturnToFieldMapScript(); } @@ -2197,8 +2199,8 @@ void CB2_SetUpOverworldForQLPlaybackWithWarpExit(void) { FieldClearVBlankHBlankCallbacks(); gGlobalFieldTintMode = QL_TINT_GRAYSCALE; - ScriptContext1_Init(); - ScriptContext2_Disable(); + ScriptContext_Init(); + UnlockPlayerFieldControls(); SetMainCallback1(NULL); SetMainCallback2(CB2_DoChangeMap); gMain.savedCallback = CB2_LoadMapForQLPlayback; @@ -2209,8 +2211,8 @@ void CB2_SetUpOverworldForQLPlayback(void) FieldClearVBlankHBlankCallbacks(); gGlobalFieldTintMode = QL_TINT_GRAYSCALE; LoadSaveblockMapHeader(); - ScriptContext1_Init(); - ScriptContext2_Disable(); + ScriptContext_Init(); + UnlockPlayerFieldControls(); SetMainCallback1(NULL); SetMainCallback2(CB2_LoadMapForQLPlayback); } @@ -2247,7 +2249,7 @@ static bool32 LoadMap_QLPlayback(u8 *state) else { gExitStairsMovementDisabled = TRUE; - sub_80559A8(); + QL_LoadMapNormal(); } (*state)++; break; @@ -2317,7 +2319,7 @@ void CB2_EnterFieldFromQuestLog(void) Overworld_ResetStateOnContinue(); InitMapFromSavedGame(); PlayTimeCounter_Start(); - ScriptContext1_Init(); + ScriptContext_Init(); gExitStairsMovementDisabled = TRUE; if (UseContinueGameWarp() == TRUE) { @@ -2388,8 +2390,8 @@ static bool32 SetUpScrollSceneForCredits(u8 *state, u8 unused) sCreditsOverworld_CmdLength = sCreditsOverworld_Script[sCreditsOverworld_CmdIndex].unk_4; WarpIntoMap(); gPaletteFade.bufferTransferDisabled = TRUE; - ScriptContext1_Init(); - ScriptContext2_Disable(); + ScriptContext_Init(); + UnlockPlayerFieldControls(); SetMainCallback1(NULL); gFieldCallback2 = FieldCB2_Credits_WaitFade; gMain.state = 0; @@ -2845,7 +2847,7 @@ static void ResetPlayerHeldKeys(u16 *keys) static u16 KeyInterCB_SelfIdle(u32 key) { - if (ScriptContext2_IsEnabled() == TRUE) + if (ArePlayerFieldControlsLocked() == TRUE) return LINK_KEY_CODE_EMPTY; if (GetLinkRecvQueueLength() > 4) return LINK_KEY_CODE_HANDLE_RECV_QUEUE; @@ -2865,7 +2867,7 @@ static u16 KeyInterCB_Idle(u32 key) static u16 KeyInterCB_DeferToEventScript(u32 key) { u16 retVal; - if (ScriptContext2_IsEnabled() == TRUE) + if (ArePlayerFieldControlsLocked() == TRUE) { retVal = LINK_KEY_CODE_EMPTY; } @@ -2888,7 +2890,7 @@ static u16 KeyInterCB_DeferToRecvQueue(u32 key) else { retVal = LINK_KEY_CODE_IDLE; - ScriptContext2_Disable(); + UnlockPlayerFieldControls(); SetKeyInterceptCallback(KeyInterCB_Idle); } return retVal; @@ -2905,7 +2907,7 @@ static u16 KeyInterCB_DeferToSendQueue(u32 key) else { retVal = LINK_KEY_CODE_IDLE; - ScriptContext2_Disable(); + UnlockPlayerFieldControls(); SetKeyInterceptCallback(KeyInterCB_Idle); } return retVal; @@ -2958,7 +2960,7 @@ static u16 KeyInterCB_WaitForPlayersToExit(u32 keyOrPlayerId) CheckRfuKeepAliveTimer(); if (AreAllPlayersInLinkState(PLAYER_LINK_STATE_EXITING_ROOM) == TRUE) { - ScriptContext1_SetupScript(CableClub_EventScript_DoLinkRoomExit); + ScriptContext_SetupScript(CableClub_EventScript_DoLinkRoomExit); SetKeyInterceptCallback(KeyInterCB_SendNothing); } return LINK_KEY_CODE_EMPTY; @@ -2979,14 +2981,14 @@ static u16 KeyInterCB_SendNothing_2(u32 key) u32 GetCableClubPartnersReady(void) { if (IsAnyPlayerInLinkState(PLAYER_LINK_STATE_EXITING_ROOM) == TRUE) - return 2; + return CABLE_SEAT_FAILED; if (sPlayerKeyInterceptCallback == KeyInterCB_Ready && sPlayerLinkStates[gLocalLinkPlayerId] != PLAYER_LINK_STATE_READY) - return 0; + return CABLE_SEAT_WAITING; if (sPlayerKeyInterceptCallback == KeyInterCB_DoNothingAndKeepAlive && sPlayerLinkStates[gLocalLinkPlayerId] == PLAYER_LINK_STATE_BUSY) - return 2; + return CABLE_SEAT_FAILED; if (AreAllPlayersInLinkState(PLAYER_LINK_STATE_READY) != FALSE) - return 1; - return 0; + return CABLE_SEAT_SUCCESS; + return CABLE_SEAT_WAITING; } static bool32 IsAnyPlayerExitingCableClub(void) @@ -3031,7 +3033,7 @@ static void LoadCableClubPlayer(s32 linkPlayerId, s32 myPlayerId, struct CableCl GetLinkPlayerCoords(linkPlayerId, &x, &y); player->pos.x = x; player->pos.y = y; - player->pos.height = GetLinkPlayerElevation(linkPlayerId); + player->pos.elevation = GetLinkPlayerElevation(linkPlayerId); player->metatileBehavior = MapGridGetMetatileBehaviorAt(x, y); } @@ -3084,7 +3086,7 @@ static const u8 *TryInteractWithPlayer(struct CableClubPlayer *player) otherPlayerPos = player->pos; otherPlayerPos.x += gDirectionToVectors[player->facing].x; otherPlayerPos.y += gDirectionToVectors[player->facing].y; - otherPlayerPos.height = 0; + otherPlayerPos.elevation = 0; linkPlayerId = GetLinkPlayerIdAt(otherPlayerPos.x, otherPlayerPos.y); if (linkPlayerId != 4) @@ -3136,41 +3138,41 @@ static u16 GetDirectionForEventScript(const u8 *script) static void InitLinkPlayerQueueScript(void) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); } static void InitLinkRoomStartMenuScript(void) { PlaySE(SE_WIN_OPEN); ShowStartMenu(); - ScriptContext2_Enable(); + LockPlayerFieldControls(); } static void RunInteractLocalPlayerScript(const u8 *script) { PlaySE(SE_SELECT); - ScriptContext1_SetupScript(script); - ScriptContext2_Enable(); + ScriptContext_SetupScript(script); + LockPlayerFieldControls(); } static void CreateConfirmLeaveTradeRoomPrompt(void) { PlaySE(SE_WIN_OPEN); - ScriptContext1_SetupScript(TradeCenter_ConfirmLeaveRoom); - ScriptContext2_Enable(); + ScriptContext_SetupScript(TradeCenter_ConfirmLeaveRoom); + LockPlayerFieldControls(); } static void InitMenuBasedScript(const u8 *script) { PlaySE(SE_SELECT); - ScriptContext1_SetupScript(script); - ScriptContext2_Enable(); + ScriptContext_SetupScript(script); + LockPlayerFieldControls(); } static void RunTerminateLinkScript(void) { - ScriptContext1_SetupScript(TradeCenter_TerminateLink); - ScriptContext2_Enable(); + ScriptContext_SetupScript(TradeCenter_TerminateLink); + LockPlayerFieldControls(); } bool32 Overworld_LinkRecvQueueLengthMoreThan2(void) @@ -3294,7 +3296,7 @@ static void InitLinkPlayerObjectEventPos(struct ObjectEvent *objEvent, s16 x, s1 objEvent->previousCoords.y = y; SetSpritePosToMapCoords(x, y, &objEvent->initialCoords.x, &objEvent->initialCoords.y); objEvent->initialCoords.x += 8; - ObjectEventUpdateZCoord(objEvent); + ObjectEventUpdateElevation(objEvent); } static void SetLinkPlayerObjectRange(u8 linkPlayerId, u8 dir) @@ -3433,7 +3435,7 @@ static bool8 FacingHandler_DpadMovement(struct LinkPlayerObjectEvent *linkPlayer { objEvent->directionSequenceIndex = 16; ShiftObjectEventCoords(objEvent, x, y); - ObjectEventUpdateZCoord(objEvent); + ObjectEventUpdateElevation(objEvent); return TRUE; } } @@ -3499,7 +3501,7 @@ static bool8 LinkPlayerDetectCollision(u8 selfObjEventId, u8 a2, s16 x, s16 y) } } } - return MapGridIsImpassableAt(x, y); + return MapGridGetCollisionAt(x, y); } static void CreateLinkPlayerSprite(u8 linkPlayerId, u8 gameVersion) @@ -3513,13 +3515,13 @@ static void CreateLinkPlayerSprite(u8 linkPlayerId, u8 gameVersion) { if (gameVersion == VERSION_FIRE_RED || gameVersion == VERSION_LEAF_GREEN) { - objEvent->spriteId = AddPseudoObjectEvent( + objEvent->spriteId = CreateObjectGraphicsSprite( GetRivalAvatarGraphicsIdByStateIdAndGender(PLAYER_AVATAR_STATE_NORMAL, linkGender(objEvent)), SpriteCB_LinkPlayer, 0, 0, 0); } else { - objEvent->spriteId = AddPseudoObjectEvent(GetRSAvatarGraphicsIdByGender(linkGender(objEvent)), SpriteCB_LinkPlayer, 0, 0, 0); + objEvent->spriteId = CreateObjectGraphicsSprite(GetRSAvatarGraphicsIdByGender(linkGender(objEvent)), SpriteCB_LinkPlayer, 0, 0, 0); } sprite = &gSprites[objEvent->spriteId]; @@ -3535,15 +3537,15 @@ static void SpriteCB_LinkPlayer(struct Sprite *sprite) struct ObjectEvent *objEvent = &gObjectEvents[linkPlayerObjEvent->objEventId]; sprite->x = objEvent->initialCoords.x; sprite->y = objEvent->initialCoords.y; - SetObjectSubpriorityByZCoord(objEvent->previousElevation, sprite, 1); - sprite->oam.priority = ZCoordToPriority(objEvent->previousElevation); + SetObjectSubpriorityByElevation(objEvent->previousElevation, sprite, 1); + sprite->oam.priority = ElevationToPriority(objEvent->previousElevation); if (!linkPlayerObjEvent->movementMode != MOVEMENT_MODE_FREE) StartSpriteAnim(sprite, GetFaceDirectionAnimNum(linkDirection(objEvent))); else StartSpriteAnimIfDifferent(sprite, GetMoveDirectionAnimNum(linkDirection(objEvent))); - UpdateObjectEventSpriteVisibility(sprite, 0); + UpdateObjectEventSpriteInvisibility(sprite, FALSE); if (objEvent->triggerGroundEffectsOnMove) { sprite->invisible = ((sprite->data[7] & 4) >> 2); diff --git a/src/palette.c b/src/palette.c index 014199a7a..08c6111b7 100644 --- a/src/palette.c +++ b/src/palette.c @@ -11,46 +11,48 @@ enum HARDWARE_FADE, }; +// These are structs for some unused palette system. +// The full functionality of this system is unknown. + #define NUM_PALETTE_STRUCTS 16 -// unused palette struct struct PaletteStructTemplate { - u16 uid; + u16 id; u16 *src; - u16 pst_field_8_0:1; - u16 pst_field_8_1:9; + bool16 pst_field_8_0:1; + u16 unused:9; u16 size:5; - u16 pst_field_9_7:1; - u8 pst_field_A; + u8 time1; u8 srcCount:5; - u8 pst_field_B_5:3; - u8 pst_field_C; + u8 state:3; + u8 time2; }; struct PaletteStruct { - const struct PaletteStructTemplate *base; - u32 ps_field_4_0:1; - u16 ps_field_4_1:1; + const struct PaletteStructTemplate *template; + bool32 active:1; + bool32 flag:1; u32 baseDestOffset:9; u16 destOffset:10; u16 srcIndex:7; - u8 ps_field_8; - u8 ps_field_9; + u8 countdown1; + u8 countdown2; }; -static void sub_8070790(struct PaletteStruct *, u32 *); -static void sub_80708F4(struct PaletteStruct *, u32 *); -static void sub_80709B4(struct PaletteStruct *); -static u8 GetPaletteNumByUid(u16); +static void PaletteStruct_Copy(struct PaletteStruct *, u32 *); +static void PaletteStruct_Blend(struct PaletteStruct *, u32 *); +static void PaletteStruct_TryEnd(struct PaletteStruct *); +static void PaletteStruct_Reset(u8 paletteNum); +static u8 PaletteStruct_GetPalNum(u16); static u8 UpdateNormalPaletteFade(void); static void BeginFastPaletteFadeInternal(u8); static u8 UpdateFastPaletteFade(void); static u8 UpdateHardwarePaletteFade(void); static void UpdateBlendRegisters(void); static bool8 IsSoftwarePaletteFadeFinishing(void); -static void sub_80718B8(u8 taskId); +static void Task_BlendPalettesGradually(u8 taskId); ALIGNED(4) EWRAM_DATA u16 gPlttBufferUnfaded[PLTT_BUFFER_SIZE] = {0}; ALIGNED(4) EWRAM_DATA u16 gPlttBufferFaded[PLTT_BUFFER_SIZE] = {0}; @@ -59,10 +61,10 @@ EWRAM_DATA struct PaletteFadeControl gPaletteFade = {0}; static EWRAM_DATA u32 sPlttBufferTransferPending = 0; EWRAM_DATA u8 gPaletteDecompressionBuffer[PLTT_DECOMP_BUFFER_SIZE] = {0}; -static const struct PaletteStructTemplate gDummyPaletteStructTemplate = +static const struct PaletteStructTemplate sDummyPaletteStructTemplate = { - .uid = 0xFFFF, - .pst_field_B_5 = 1 + .id = 0xFFFF, + .state = 1 }; static const u8 sRoundedDownGrayscaleMap[] = @@ -79,20 +81,20 @@ static const u8 sRoundedDownGrayscaleMap[] = void LoadCompressedPalette(const u32 *src, u16 offset, u16 size) { LZDecompressWram(src, gPaletteDecompressionBuffer); - CpuCopy16(gPaletteDecompressionBuffer, gPlttBufferUnfaded + offset, size); - CpuCopy16(gPaletteDecompressionBuffer, gPlttBufferFaded + offset, size); + CpuCopy16(gPaletteDecompressionBuffer, &gPlttBufferUnfaded[offset], size); + CpuCopy16(gPaletteDecompressionBuffer, &gPlttBufferFaded[offset], size); } void LoadPalette(const void *src, u16 offset, u16 size) { - CpuCopy16(src, gPlttBufferUnfaded + offset, size); - CpuCopy16(src, gPlttBufferFaded + offset, size); + CpuCopy16(src, &gPlttBufferUnfaded[offset], size); + CpuCopy16(src, &gPlttBufferFaded[offset], size); } void FillPalette(u16 value, u16 offset, u16 size) { - CpuFill16(value, gPlttBufferUnfaded + offset, size); - CpuFill16(value, gPlttBufferFaded + offset, size); + CpuFill16(value, &gPlttBufferUnfaded[offset], size); + CpuFill16(value, &gPlttBufferFaded[offset], size); } void TransferPlttBuffer(void) @@ -102,7 +104,7 @@ void TransferPlttBuffer(void) void *src = gPlttBufferFaded; void *dest = (void *)PLTT; DmaCopy16(3, src, dest, PLTT_SIZE); - sPlttBufferTransferPending = 0; + sPlttBufferTransferPending = FALSE; if (gPaletteFade.mode == HARDWARE_FADE && gPaletteFade.active) UpdateBlendRegisters(); } @@ -129,8 +131,8 @@ void ResetPaletteFade(void) { u8 i; - for (i = 0; i < 16; ++i) - ResetPaletteStruct(i); + for (i = 0; i < NUM_PALETTE_STRUCTS; ++i) + PaletteStruct_Reset(i); ResetPaletteFadeControl(); } @@ -179,7 +181,7 @@ bool8 BeginNormalPaletteFade(u32 selectedPalettes, s8 delay, u8 startY, u8 targe temp = gPaletteFade.bufferTransferDisabled; gPaletteFade.bufferTransferDisabled = FALSE; CpuCopy32(gPlttBufferFaded, (void *)PLTT, PLTT_SIZE); - sPlttBufferTransferPending = 0; + sPlttBufferTransferPending = FALSE; if (gPaletteFade.mode == HARDWARE_FADE && gPaletteFade.active) UpdateBlendRegisters(); gPaletteFade.bufferTransferDisabled = temp; @@ -187,15 +189,15 @@ bool8 BeginNormalPaletteFade(u32 selectedPalettes, s8 delay, u8 startY, u8 targe } } -// not used -static bool8 sub_80706D0(u32 a1, u8 a2, u8 a3, u8 a4, u16 a5) +// Unused +static bool8 BeginPlttFade(u32 selectedPalettes, u8 delay, u8 startY, u8 targetY, u16 blendColor) { ReadPlttIntoBuffers(); - return BeginNormalPaletteFade(a1, a2, a3, a4, a5); + return BeginNormalPaletteFade(selectedPalettes, delay, startY, targetY, blendColor); } -// not used -static void sub_8070718(u8 a1, u32 *a2) +// Unused +static void PaletteStruct_Run(u8 a1, u32 *unkFlags) { u8 i; @@ -203,82 +205,80 @@ static void sub_8070718(u8 a1, u32 *a2) { struct PaletteStruct *palstruct = &sPaletteStructs[i]; - if (palstruct->ps_field_4_0) + if (palstruct->active) { - if (palstruct->base->pst_field_8_0 == a1) + if (palstruct->template->pst_field_8_0 == a1) { - u8 val1 = palstruct->srcIndex; - u8 val2 = palstruct->base->srcCount; + u8 srcIndex = palstruct->srcIndex; + u8 srcCount = palstruct->template->srcCount; - if (val1 == val2) + if (srcIndex == srcCount) { - sub_80709B4(palstruct); - if (!palstruct->ps_field_4_0) + PaletteStruct_TryEnd(palstruct); + if (!palstruct->active) continue; } - if (palstruct->ps_field_8 == 0) - sub_8070790(palstruct, a2); + if (palstruct->countdown1 == 0) + PaletteStruct_Copy(palstruct, unkFlags); else - --palstruct->ps_field_8; - sub_80708F4(palstruct, a2); + palstruct->countdown1--; + PaletteStruct_Blend(palstruct, unkFlags); } } } } -// not used -static void sub_8070790(struct PaletteStruct *a1, u32 *a2) +static void PaletteStruct_Copy(struct PaletteStruct *palStruct, u32 *unkFlags) { s32 srcIndex; s32 srcCount; u8 i = 0; - u16 srcOffset = a1->srcIndex * a1->base->size; + u16 srcOffset = palStruct->srcIndex * palStruct->template->size; - if (!a1->base->pst_field_8_0) + if (!palStruct->template->pst_field_8_0) { - while (i < a1->base->size) + while (i < palStruct->template->size) { - gPlttBufferUnfaded[a1->destOffset] = a1->base->src[srcOffset]; - gPlttBufferFaded[a1->destOffset] = a1->base->src[srcOffset]; - ++i; - ++a1->destOffset; - ++srcOffset; + gPlttBufferUnfaded[palStruct->destOffset] = palStruct->template->src[srcOffset]; + gPlttBufferFaded[palStruct->destOffset] = palStruct->template->src[srcOffset]; + i++; + palStruct->destOffset++; + srcOffset++; } } else { - while (i < a1->base->size) + while (i < palStruct->template->size) { - gPlttBufferFaded[a1->destOffset] = a1->base->src[srcOffset]; - ++i; - ++a1->destOffset; - ++srcOffset; + gPlttBufferFaded[palStruct->destOffset] = palStruct->template->src[srcOffset]; + i++; + palStruct->destOffset++; + srcOffset++; } } - a1->destOffset = a1->baseDestOffset; - a1->ps_field_8 = a1->base->pst_field_A; - ++a1->srcIndex; - srcIndex = a1->srcIndex; - srcCount = a1->base->srcCount; + palStruct->destOffset = palStruct->baseDestOffset; + palStruct->countdown1 = palStruct->template->time1; + palStruct->srcIndex++; + srcIndex = palStruct->srcIndex; + srcCount = palStruct->template->srcCount; if (srcIndex >= srcCount) { - if (a1->ps_field_9) - --a1->ps_field_9; - a1->srcIndex = 0; + if (palStruct->countdown2) + palStruct->countdown2--; + palStruct->srcIndex = 0; } - *a2 |= 1 << (a1->baseDestOffset >> 4); + *unkFlags |= 1 << (palStruct->baseDestOffset >> 4); } -// not used -static void sub_80708F4(struct PaletteStruct *a1, u32 *a2) +static void PaletteStruct_Blend(struct PaletteStruct *palStruct, u32 *unkFlags) { - if (gPaletteFade.active && ((1 << (a1->baseDestOffset >> 4)) & gPaletteFade_selectedPalettes)) + if (gPaletteFade.active && ((1 << (palStruct->baseDestOffset >> 4)) & gPaletteFade_selectedPalettes)) { - if (!a1->base->pst_field_8_0) + if (!palStruct->template->pst_field_8_0) { if (gPaletteFade.delayCounter != gPaletteFade_delay) - BlendPalette(a1->baseDestOffset, - a1->base->size, + BlendPalette(palStruct->baseDestOffset, + palStruct->template->size, gPaletteFade.y, gPaletteFade.blendColor); } @@ -286,65 +286,64 @@ static void sub_80708F4(struct PaletteStruct *a1, u32 *a2) { if (!gPaletteFade.delayCounter) { - if (a1->ps_field_8 != a1->base->pst_field_A) + if (palStruct->countdown1 != palStruct->template->time1) { - u32 srcOffset = a1->srcIndex * a1->base->size; + u32 srcOffset = palStruct->srcIndex * palStruct->template->size; u8 i; - for (i = 0; i < a1->base->size; ++i) - gPlttBufferFaded[a1->baseDestOffset + i] = a1->base->src[srcOffset + i]; + for (i = 0; i < palStruct->template->size; i++) + gPlttBufferFaded[palStruct->baseDestOffset + i] = palStruct->template->src[srcOffset + i]; } } } } } -// not used -static void sub_80709B4(struct PaletteStruct *a1) +static void PaletteStruct_TryEnd(struct PaletteStruct *palStruct) { - if (!a1->ps_field_9) + if (!palStruct->countdown2) { - s32 val = a1->base->pst_field_B_5; + s32 state = palStruct->template->state; - if (!val) + if (state == 0) { - a1->srcIndex = 0; - a1->ps_field_8 = a1->base->pst_field_A; - a1->ps_field_9 = a1->base->pst_field_C; - a1->destOffset = a1->baseDestOffset; + palStruct->srcIndex = 0; + palStruct->countdown1 = palStruct->template->time1; + palStruct->countdown2 = palStruct->template->time2; + palStruct->destOffset = palStruct->baseDestOffset; } else { - if (val < 0) + if (state < 0) return; - if (val > 2) + if (state > 2) return; - ResetPaletteStructByUid(a1->base->uid); + PaletteStruct_ResetById(palStruct->template->id); } } else { - --a1->ps_field_9; + palStruct->countdown2--; } } -void ResetPaletteStructByUid(u16 a1) +void PaletteStruct_ResetById(u16 id) { - u8 paletteNum = GetPaletteNumByUid(a1); - if (paletteNum != 16) - ResetPaletteStruct(paletteNum); + u8 paletteNum = PaletteStruct_GetPalNum(id); + if (paletteNum != NUM_PALETTE_STRUCTS) + PaletteStruct_Reset(paletteNum); } -void ResetPaletteStruct(u8 paletteNum) +static void PaletteStruct_Reset(u8 paletteNum) { - sPaletteStructs[paletteNum].base = &gDummyPaletteStructTemplate; - sPaletteStructs[paletteNum].ps_field_4_0 = 0; + sPaletteStructs[paletteNum].template = &sDummyPaletteStructTemplate; + sPaletteStructs[paletteNum].active = FALSE; sPaletteStructs[paletteNum].baseDestOffset = 0; sPaletteStructs[paletteNum].destOffset = 0; sPaletteStructs[paletteNum].srcIndex = 0; - sPaletteStructs[paletteNum].ps_field_4_1 = 0; - sPaletteStructs[paletteNum].ps_field_8 = 0; - sPaletteStructs[paletteNum].ps_field_9 = 0; + sPaletteStructs[paletteNum].flag = FALSE; + sPaletteStructs[paletteNum].countdown1 = 0; + sPaletteStructs[paletteNum].countdown2 = 0; } void ResetPaletteFadeControl(void) @@ -367,31 +366,28 @@ void ResetPaletteFadeControl(void) gPaletteFade.deltaY = 2; } -// not used -static void sub_8070AFC(u16 uid) +static void PaletteStruct_SetUnusedFlag(u16 id) { - u8 paletteNum = GetPaletteNumByUid(uid); - if (paletteNum != 16) - sPaletteStructs[paletteNum].ps_field_4_1 = 1; + u8 paletteNum = PaletteStruct_GetPalNum(id); + if (paletteNum != NUM_PALETTE_STRUCTS) + sPaletteStructs[paletteNum].flag = TRUE; } -// not used -static void sub_8070B28(u16 uid) +static void PaletteStruct_ClearUnusedFlag(u16 id) { - u8 paletteNum = GetPaletteNumByUid(uid); - if (paletteNum != 16) - sPaletteStructs[paletteNum].ps_field_4_1 = 0; + u8 paletteNum = PaletteStruct_GetPalNum(id); + if (paletteNum != NUM_PALETTE_STRUCTS) + sPaletteStructs[paletteNum].flag = FALSE; } -// not used -static u8 GetPaletteNumByUid(u16 uid) +static u8 PaletteStruct_GetPalNum(u16 id) { u8 i; - for (i = 0; i < NUM_PALETTE_STRUCTS; ++i) - if (sPaletteStructs[i].base->uid == uid) + for (i = 0; i < NUM_PALETTE_STRUCTS; i++) + if (sPaletteStructs[i].template->id == id) return i; - return 16; + return NUM_PALETTE_STRUCTS; } static u8 UpdateNormalPaletteFade(void) @@ -411,7 +407,7 @@ static u8 UpdateNormalPaletteFade(void) { if (gPaletteFade.delayCounter < gPaletteFade_delay) { - ++gPaletteFade.delayCounter; + gPaletteFade.delayCounter++; return 2; } gPaletteFade.delayCounter = 0; @@ -708,25 +704,25 @@ static u8 UpdateHardwarePaletteFade(void) return PALETTE_FADE_STATUS_DONE; if (gPaletteFade.delayCounter < gPaletteFade_delay) { - ++gPaletteFade.delayCounter; + gPaletteFade.delayCounter++; return PALETTE_FADE_STATUS_DELAY; } gPaletteFade.delayCounter = 0; if (!gPaletteFade.yDec) { - ++gPaletteFade.y; + gPaletteFade.y++; if (gPaletteFade.y > gPaletteFade.targetY) { - ++gPaletteFade.hardwareFadeFinishing; - --gPaletteFade.y; + gPaletteFade.hardwareFadeFinishing++; + gPaletteFade.y--; } } else { if (gPaletteFade.y-- - 1 < gPaletteFade.targetY) { - ++gPaletteFade.hardwareFadeFinishing; - ++gPaletteFade.y; + gPaletteFade.hardwareFadeFinishing++; + gPaletteFade.y++; } } @@ -770,7 +766,7 @@ static bool8 IsSoftwarePaletteFadeFinishing(void) } else { - ++gPaletteFade.softwareFadeFinishingCounter; + gPaletteFade.softwareFadeFinishingCounter++; } return TRUE; } @@ -806,11 +802,11 @@ void TintPalette_GrayScale(u16 *palette, u16 count) for (i = 0; i < count; ++i) { - r = (*palette >> 0) & 0x1F; - g = (*palette >> 5) & 0x1F; - b = (*palette >> 10) & 0x1F; + r = GET_R(*palette); + g = GET_G(*palette); + b = GET_B(*palette); gray = (r * Q_8_8(0.3) + g * Q_8_8(0.59) + b * Q_8_8(0.1133)) >> 8; - *palette++ = (gray << 10) | (gray << 5) | (gray << 0); + *palette++ = RGB2(gray, gray, gray); } } @@ -821,15 +817,15 @@ void TintPalette_GrayScale2(u16 *palette, u16 count) for (i = 0; i < count; ++i) { - r = (*palette >> 0) & 0x1F; - g = (*palette >> 5) & 0x1F; - b = (*palette >> 10) & 0x1F; + r = GET_R(*palette); + g = GET_G(*palette); + b = GET_B(*palette); gray = (r * Q_8_8(0.3) + g * Q_8_8(0.59) + b * Q_8_8(0.1133)) >> 8; - if (gray > 0x1F) - gray = 0x1F; + if (gray > 31) + gray = 31; gray = sRoundedDownGrayscaleMap[gray]; - *palette++ = (gray << 10) | (gray << 5) | (gray << 0); + *palette++ = RGB2(gray, gray, gray); } } @@ -840,16 +836,16 @@ void TintPalette_SepiaTone(u16 *palette, u16 count) for (i = 0; i < count; ++i) { - r = (*palette >> 0) & 0x1F; - g = (*palette >> 5) & 0x1F; - b = (*palette >> 10) & 0x1F; + r = GET_R(*palette); + g = GET_G(*palette); + b = GET_B(*palette); gray = (r * Q_8_8(0.3) + g * Q_8_8(0.59) + b * Q_8_8(0.1133)) >> 8; r = (u16)((Q_8_8(1.2) * gray)) >> 8; g = (u16)((Q_8_8(1.0) * gray)) >> 8; b = (u16)((Q_8_8(0.94) * gray)) >> 8; if (r > 31) r = 31; - *palette++ = (b << 10) | (g << 5) | (r << 0); + *palette++ = RGB2(r, g, b); } } @@ -860,9 +856,9 @@ void TintPalette_CustomTone(u16 *palette, u16 count, u16 rTone, u16 gTone, u16 b for (i = 0; i < count; ++i) { - r = (*palette >> 0) & 0x1F; - g = (*palette >> 5) & 0x1F; - b = (*palette >> 10) & 0x1F; + r = GET_R(*palette); + g = GET_G(*palette); + b = GET_B(*palette); gray = (r * Q_8_8(0.3) + g * Q_8_8(0.59) + b * Q_8_8(0.1133)) >> 8; r = (u16)((rTone * gray)) >> 8; g = (u16)((gTone * gray)) >> 8; @@ -873,116 +869,126 @@ void TintPalette_CustomTone(u16 *palette, u16 count, u16 rTone, u16 gTone, u16 b g = 31; if (b > 31) b = 31; - *palette++ = (b << 10) | (g << 5) | (r << 0); + *palette++ = RGB2(r, g, b); } } -void sub_80716F8(const u16 *src, u16 *dst, u16 count, u8 a4) +void CopyPaletteInvertedTint(const u16 *src, u16 *dst, u16 count, u8 tone) { s32 r, g, b, i; u32 gray; - if (!a4) + if (!tone) { - for (i = 0; i < count; ++i) + for (i = 0; i < count; i++) *dst++ = *src++; } else { - for (i = 0; i < count; ++src, ++dst, ++i) + for (i = 0; i < count; src++, dst++, i++) { - r = (*src >> 0) & 0x1F; - g = (*src >> 5) & 0x1F; - b = (*src >> 10) & 0x1F; + r = GET_R(*src); + g = GET_G(*src); + b = GET_B(*src); gray = (r * Q_8_8(0.3) + g * Q_8_8(0.59) + b * Q_8_8(0.1133)) >> 8; - r += (a4 * (gray - r) >> 4); - g += (a4 * (gray - g) >> 4); - b += (a4 * (gray - b) >> 4); - *dst = (b << 10) | (g << 5) | (r << 0); + r += (tone * (gray - r) >> 4); + g += (tone * (gray - g) >> 4); + b += (tone * (gray - b) >> 4); + *dst = RGB2(r, g, b); } } } -void sub_80717A8(u32 a1, s8 a2, u8 a3, u8 a4, u16 a5, u8 a6, u8 a7) +#define tCoeff data[0] +#define tCoeffTarget data[1] +#define tCoeffDelta data[2] +#define tDelay data[3] +#define tDelayTimer data[4] +#define IDX_PALETTES 5 // data[5] and data[6], set/get via Set/GetWordTaskArg +#define tColor data[7] +#define tId data[8] + +// Blend the selected palettes in a series of steps toward or away from the color. +void BlendPalettesGradually(u32 selectedPalettes, s8 delay, u8 coeff, u8 coeffTarget, u16 color, u8 priority, u8 id) { u8 taskId; - taskId = CreateTask(sub_80718B8, a6); - gTasks[taskId].data[0] = a3; - gTasks[taskId].data[1] = a4; - if (a2 >= 0) + taskId = CreateTask(Task_BlendPalettesGradually, priority); + gTasks[taskId].tCoeff = coeff; + gTasks[taskId].tCoeffTarget = coeffTarget; + if (delay >= 0) { - gTasks[taskId].data[3] = a2; - gTasks[taskId].data[2] = 1; + gTasks[taskId].tDelay = delay; + gTasks[taskId].tCoeffDelta = 1; } else { - gTasks[taskId].data[3] = 0; - gTasks[taskId].data[2] = -a2 + 1; + gTasks[taskId].tDelay = 0; + gTasks[taskId].tCoeffDelta = -delay + 1; } - if (a4 < a3) - gTasks[taskId].data[2] *= -1; - SetWordTaskArg(taskId, 5, a1); - gTasks[taskId].data[7] = a5; - gTasks[taskId].data[8] = a7; + if (coeffTarget < coeff) + gTasks[taskId].tCoeffDelta *= -1; + SetWordTaskArg(taskId, IDX_PALETTES, selectedPalettes); + gTasks[taskId].tColor = color; + gTasks[taskId].tId = id; gTasks[taskId].func(taskId); } -bool32 sub_807185C(u8 var) +bool32 IsBlendPalettesGraduallyTaskActive(u8 id) { s32 i; for (i = 0; i < NUM_TASKS; ++i) if (gTasks[i].isActive == TRUE - && gTasks[i].func == sub_80718B8 - && gTasks[i].data[8] == var) + && gTasks[i].func == Task_BlendPalettesGradually + && gTasks[i].tId == id) return TRUE; return FALSE; } -void sub_8071898(void) +void DestroyBlendPalettesGraduallyTask(void) { u8 taskId; while (TRUE) { - taskId = FindTaskIdByFunc(sub_80718B8); - if (taskId == TAIL_SENTINEL) + taskId = FindTaskIdByFunc(Task_BlendPalettesGradually); + if (taskId == TASK_NONE) break; DestroyTask(taskId); } } -static void sub_80718B8(u8 taskId) +static void Task_BlendPalettesGradually(u8 taskId) { - u32 wordVar; + u32 palettes; s16 *data; - s16 temp; + s16 target; data = gTasks[taskId].data; - wordVar = GetWordTaskArg(taskId, 5); - if (++data[4] > data[3]) + palettes = GetWordTaskArg(taskId, IDX_PALETTES); + if (++tDelayTimer > tDelay) { - data[4] = 0; - BlendPalettes(wordVar, data[0], data[7]); - temp = data[1]; - if (data[0] == temp) + tDelayTimer = 0; + BlendPalettes(palettes, tCoeff, tColor); + target = tCoeffTarget; + if (tCoeff == target) { DestroyTask(taskId); } else { - data[0] += data[2]; - if (data[2] >= 0) + tCoeff += tCoeffDelta; + if (tCoeffDelta >= 0) { - if (data[0] < temp) + if (tCoeff < target) return; } - else if (data[0] > temp) + else if (tCoeff > target) { return; } - data[0] = temp; + tCoeff = target; } } } diff --git a/src/roulette_util.c b/src/palette_util.c similarity index 64% rename from src/roulette_util.c rename to src/palette_util.c index 9dab23342..2da4b2388 100644 --- a/src/roulette_util.c +++ b/src/palette_util.c @@ -1,207 +1,217 @@ #include "global.h" #include "gflib.h" -#include "roulette_util.h" +#include "palette_util.h" #include "util.h" -void sub_80D8BE4(struct UnkStruct0 *r0) +// "RouletteFlash" is more accurately a general flashing/fading util. +// This file handles fading the palettes for the color/icon selections on the Roulette wheel +// but it also handles the "pulse blend" effect of Mirage Tower. +// Neither exist in FRLG, so everything in this file goes unused. + +void RouletteFlash_Reset(struct RouletteFlashUtil *flash) { - r0->var00 = 0; - r0->var02 = 0; - memset(&r0->var04, 0, sizeof(r0->var04)); + flash->enabled = 0; + flash->flags = 0; + memset(&flash->palettes, 0, sizeof(flash->palettes)); } -u8 sub_80D8BF8(struct UnkStruct0 *r0, u8 r1, const struct UnkStruct1 *r2) +u8 RouletteFlash_Add(struct RouletteFlashUtil *flash, u8 id, const struct RouletteFlashSettings *settings) { - if (!(r1 < 16) || (r0->var04[r1].var00_7)) + if (id >= ARRAY_COUNT(flash->palettes) || flash->palettes[id].available) return 0xFF; - r0->var04[r1].var04.var00 = r2->var00; - r0->var04[r1].var04.var02 = r2->var02; - r0->var04[r1].var04.var04 = r2->var04; - r0->var04[r1].var04.var05 = r2->var05; - r0->var04[r1].var04.var06 = r2->var06; - r0->var04[r1].var04.var07_0 = r2->var07_0; - r0->var04[r1].var04.var07_5 = r2->var07_5; - r0->var04[r1].var04.var07_7 = r2->var07_7; - r0->var04[r1].var00_0 = 0; - r0->var04[r1].var00_7 = 1; - r0->var04[r1].var02 = 0; - r0->var04[r1].var01 = 0; - if (r0->var04[r1].var04.var07_7 < 0) - r0->var04[r1].var03 = 0xFF; + flash->palettes[id].settings.color = settings->color; + flash->palettes[id].settings.paletteOffset = settings->paletteOffset; + flash->palettes[id].settings.numColors = settings->numColors; + flash->palettes[id].settings.delay = settings->delay; + flash->palettes[id].settings.unk6 = settings->unk6; + flash->palettes[id].settings.numFadeCycles = settings->numFadeCycles; + flash->palettes[id].settings.unk7_5 = settings->unk7_5; + flash->palettes[id].settings.colorDeltaDir = settings->colorDeltaDir; + flash->palettes[id].state = 0; + flash->palettes[id].available = TRUE; + flash->palettes[id].fadeCycleCounter = 0; + flash->palettes[id].delayCounter = 0; + if (flash->palettes[id].settings.colorDeltaDir < 0) + flash->palettes[id].colorDelta = -1; else - r0->var04[r1].var03 = 1; + flash->palettes[id].colorDelta = 1; - return r1; + return id; } -u8 sub_80D8C7C(struct UnkStruct0 *r0, u8 r1) +static u8 RouletteFlash_Remove(struct RouletteFlashUtil *flash, u8 id) { - if (r1 >= 16) + if (id >= ARRAY_COUNT(flash->palettes)) return 0xFF; - if (!r0->var04[r1].var00_7) + if (!flash->palettes[id].available) return 0xFF; - memset(&r0->var04[r1], 0, sizeof(r0->var04[r1])); - return r1; + memset(&flash->palettes[id], 0, sizeof(flash->palettes[id])); + return id; } -u8 sub_80D8CB0(struct UnkStruct3 *r0) +static u8 RouletteFlash_FadePalette(struct RouletteFlashPalette *pal) { u8 i; u8 returnval; - for (i = 0; i < r0->var04.var04; i++) + for (i = 0; i < pal->settings.numColors; i++) { - struct PlttData *faded = (struct PlttData *)&gPlttBufferFaded[r0->var04.var02 + i]; - struct PlttData *unfaded = (struct PlttData *)&gPlttBufferUnfaded[r0->var04.var02 + i]; + struct PlttData *faded = (struct PlttData *)&gPlttBufferFaded[pal->settings.paletteOffset + i]; + struct PlttData *unfaded = (struct PlttData *)&gPlttBufferUnfaded[pal->settings.paletteOffset + i]; - switch (r0->var00_0) + switch (pal->state) { case 1: - if (faded->r + r0->var03 >= 0 && faded->r + r0->var03 < 32) - faded->r += r0->var03; - if (faded->g + r0->var03 >= 0 && faded->g + r0->var03 < 32) - faded->g += r0->var03; - if (faded->b + r0->var03 >= 0 && faded->b + r0->var03 < 32) - faded->b += r0->var03; + // Fade color + if (faded->r + pal->colorDelta >= 0 && faded->r + pal->colorDelta < 32) + faded->r += pal->colorDelta; + if (faded->g + pal->colorDelta >= 0 && faded->g + pal->colorDelta < 32) + faded->g += pal->colorDelta; + if (faded->b + pal->colorDelta >= 0 && faded->b + pal->colorDelta < 32) + faded->b += pal->colorDelta; break; case 2: - if (r0->var03 < 0) + // Fade back to original color + if (pal->colorDelta < 0) { - if (faded->r + r0->var03 >= unfaded->r) - faded->r += r0->var03; - if (faded->g + r0->var03 >= unfaded->g) - faded->g += r0->var03; - if (faded->b + r0->var03 >= unfaded->b) - faded->b += r0->var03; + if (faded->r + pal->colorDelta >= unfaded->r) + faded->r += pal->colorDelta; + if (faded->g + pal->colorDelta >= unfaded->g) + faded->g += pal->colorDelta; + if (faded->b + pal->colorDelta >= unfaded->b) + faded->b += pal->colorDelta; } else { - if (faded->r + r0->var03 <= unfaded->r) - faded->r += r0->var03; - if (faded->g + r0->var03 <= unfaded->g) - faded->g += r0->var03; - if (faded->b + r0->var03 <= unfaded->b) - faded->b += r0->var03; + if (faded->r + pal->colorDelta <= unfaded->r) + faded->r += pal->colorDelta; + if (faded->g + pal->colorDelta <= unfaded->g) + faded->g += pal->colorDelta; + if (faded->b + pal->colorDelta <= unfaded->b) + faded->b += pal->colorDelta; } break; } } - if ((u32)r0->var02++ != r0->var04.var07_0) + if ((u32)pal->fadeCycleCounter++ != pal->settings.numFadeCycles) { returnval = 0; } else { - r0->var02 = 0; - r0->var03 *= -1; - if (r0->var00_0 == 1) - r0->var00_0++; + pal->fadeCycleCounter = 0; + pal->colorDelta *= -1; + if (pal->state == 1) + pal->state++; else - r0->var00_0--; + pal->state--; returnval = 1; } return returnval; } -u8 sub_80D8EB8(struct UnkStruct3 *r0) +static u8 RouletteFlash_FlashPalette(struct RouletteFlashPalette *pal) { - u8 rg2 = 0; + u8 i = 0; - switch (r0->var00_0) + switch (pal->state) { case 1: - for (rg2 = 0; rg2 < r0->var04.var04; rg2++) - gPlttBufferFaded[r0->var04.var02 + rg2] = r0->var04.var00; - r0->var00_0++; + // Flash to color + for (i = 0; i < pal->settings.numColors; i++) + gPlttBufferFaded[pal->settings.paletteOffset + i] = pal->settings.color; + pal->state++; break; case 2: - for (rg2 = 0; rg2 < r0->var04.var04; rg2++) - gPlttBufferFaded[r0->var04.var02 + rg2] = gPlttBufferUnfaded[r0->var04.var02 + rg2]; - r0->var00_0--; + // Restore to original color + for (i = 0; i < pal->settings.numColors; i++) + gPlttBufferFaded[pal->settings.paletteOffset + i] = gPlttBufferUnfaded[pal->settings.paletteOffset + i]; + pal->state--; break; } return 1; } -void task_tutorial_controls_fadein(struct UnkStruct0 *r0) +void RouletteFlash_Run(struct RouletteFlashUtil *flash) { u8 i = 0; - if (r0->var00) + if (flash->enabled) { - for (i = 0; i < 16; i++) + for (i = 0; i < ARRAY_COUNT(flash->palettes); i++) { - if ((r0->var02 >> i) & 1) + if ((flash->flags >> i) & 1) { - if (--r0->var04[i].var01 == 0xFF) // if underflow ? + if (--flash->palettes[i].delayCounter == (u8)-1) { - if (r0->var04[i].var04.var00 & 0x8000) // PlttData->unused_15 ? - sub_80D8CB0(&r0->var04[i]); + if (flash->palettes[i].settings.color & FLASHUTIL_USE_EXISTING_COLOR) + RouletteFlash_FadePalette(&flash->palettes[i]); else - sub_80D8EB8(&r0->var04[i]); + RouletteFlash_FlashPalette(&flash->palettes[i]); - r0->var04[i].var01 = r0->var04[i].var04.var05; + flash->palettes[i].delayCounter = flash->palettes[i].settings.delay; } } } } } -void sub_80D8FB4(struct UnkStruct0 *r0, u16 r1) +void RouletteFlash_Enable(struct RouletteFlashUtil *flash, u16 flags) { u8 i = 0; - r0->var00++; - for (i = 0; i < 16; i++) + flash->enabled++; + for (i = 0; i < ARRAY_COUNT(flash->palettes); i++) { - if ((r1 >> i) & 1) + if ((flags >> i) & 1) { - if (r0->var04[i].var00_7) + if (flash->palettes[i].available) { - r0->var02 |= 1 << i; - r0->var04[i].var00_0 = 1; + flash->flags |= 1 << i; + flash->palettes[i].state = 1; } } } } -void sub_80D9008(struct UnkStruct0 *r0, u16 r1) +void RouletteFlash_Stop(struct RouletteFlashUtil *flash, u16 flags) { u8 i; - for (i = 0; i < 16; i++) + for (i = 0; i < ARRAY_COUNT(flash->palettes); i++) { - if ((r0->var02 >> i) & 1) + if ((flash->flags >> i) & 1) { - if (r0->var04[i].var00_7) + if (flash->palettes[i].available) { - if ((r1 >> i) & 1) + if ((flags >> i) & 1) { - u32 offset = r0->var04[i].var04.var02; + u32 offset = flash->palettes[i].settings.paletteOffset; u16 *faded = &gPlttBufferFaded[offset]; u16 *unfaded = &gPlttBufferUnfaded[offset]; - memcpy(faded, unfaded, r0->var04[i].var04.var04 * 2); - r0->var04[i].var00_0 = 0; - r0->var04[i].var02 = 0; - r0->var04[i].var01 = 0; - if (r0->var04[i].var04.var07_7 < 0) - r0->var04[i].var03 = 0xFF; + memcpy(faded, unfaded, flash->palettes[i].settings.numColors * 2); + flash->palettes[i].state = 0; + flash->palettes[i].fadeCycleCounter = 0; + flash->palettes[i].delayCounter = 0; + if (flash->palettes[i].settings.colorDeltaDir < 0) + flash->palettes[i].colorDelta = -1; else - r0->var04[i].var03 = 0x1; + flash->palettes[i].colorDelta = 1; } } } } - if (r1 == 0xFFFF) + if (flags == 0xFFFF) { - r0->var00 = 0; - r0->var02 = 0; + // Stopped all + flash->enabled = 0; + flash->flags = 0; } else { - r0->var02 = r0->var02 & ~r1; + flash->flags &= ~flags; } } @@ -427,7 +437,8 @@ void UpdatePulseBlend(struct PulseBlend *pulseBlend) } } -void sub_80D9574(u16 *dest, u16 src, u8 left, u8 top, u8 width, u8 height) +// Below used for the Roulette grid +void FillTilemapRect(u16 *dest, u16 src, u8 left, u8 top, u8 width, u8 height) { u16 *_dest; u8 i; @@ -444,7 +455,7 @@ void sub_80D9574(u16 *dest, u16 src, u8 left, u8 top, u8 width, u8 height) } } -void sub_80D95C4(u16 *dest, u16 *src, u8 left, u8 top, u8 width, u8 height) +void SetTilemapRect(u16 *dest, u16 *src, u8 left, u8 top, u8 width, u8 height) { u16 *_dest; u16 *_src = src; diff --git a/src/party_menu.c b/src/party_menu.c index ad8300a9f..7725a3c3d 100644 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -83,6 +83,9 @@ #define MENU_DIR_RIGHT 2 #define MENU_DIR_LEFT -2 +#define SLOT_CONFIRM (PARTY_SIZE) +#define SLOT_CANCEL (PARTY_SIZE + 1) + enum { CAN_LEARN_MOVE, @@ -91,6 +94,20 @@ enum CANNOT_LEARN_MOVE_IS_EGG }; +enum +{ + LEARN_VIA_TMHM, + LEARN_VIA_LEVEL_UP, + LEARN_VIA_TUTOR, +}; + +enum +{ + DRAW_TEXT_ONLY, + DRAW_MENU_BOX_AND_TEXT, + DRAW_MENU_BOX_ONLY, +}; + struct PartyMenuBoxInfoRects { void (*blitFunc)(u8 windowId, u8 x, u8 y, u8 width, u8 height, bool8 isEgg); @@ -105,7 +122,7 @@ struct PartyMenuInternal { TaskFunc task; MainCallback exitCallback; - u32 chooseHalf:1; + u32 chooseMultiple:1; u32 lastSelectedSlot:3; // Used to return to same slot when going left/right bewtween columns u32 spriteIdConfirmPokeball:7; u32 spriteIdCancelPokeball:7; @@ -165,29 +182,29 @@ static void LoadPartyMenuPokeballGfx(void); static void LoadPartyMenuAilmentGfx(void); static bool8 RenderPartyMenuBoxes(void); static void CreateCancelConfirmPokeballSprites(void); -static void CreateCancelConfirmWindows(bool8 chooseHalf); +static void CreateCancelConfirmWindows(bool8 chooseMultiple); static void Task_ExitPartyMenu(u8 taskId); static void FreePartyPointers(void); static void PartyPaletteBufferCopy(u8 offset); static void DisplayPartyPokemonDataForMultiBattle(u8 slot); -static void DisplayPartyPokemonDataForChooseHalf(u8 slot); +static void DisplayPartyPokemonDataForChooseMultiple(u8 slot); static bool8 DisplayPartyPokemonDataForMoveTutorOrEvolutionItem(u8 slot); static void DisplayPartyPokemonData(u8 slot); static void DisplayPartyPokemonDataForWirelessMinigame(u8 slot); static void LoadPartyBoxPalette(struct PartyMenuBox *menuBox, u8 palFlags); static void DrawEmptySlot(u8 windowId); -static void DisplayPartyPokemonNickname(struct Pokemon *mon, struct PartyMenuBox *menuBox, u8 c); -static void DisplayPartyPokemonLevelCheck(struct Pokemon *mon, struct PartyMenuBox *menuBox, u8 c); -static void DisplayPartyPokemonGenderNidoranCheck(struct Pokemon *mon, struct PartyMenuBox *menuBox, u8 c); -static void DisplayPartyPokemonHPCheck(struct Pokemon *mon, struct PartyMenuBox *menuBox, u8 c); -static void DisplayPartyPokemonMaxHPCheck(struct Pokemon *mon, struct PartyMenuBox *menuBox, u8 c); +static void DisplayPartyPokemonNickname(struct Pokemon *mon, struct PartyMenuBox *menuBox, u8 drawMenuBoxOrText); +static void DisplayPartyPokemonLevelCheck(struct Pokemon *mon, struct PartyMenuBox *menuBox, u8 drawMenuBoxOrText); +static void DisplayPartyPokemonGenderNidoranCheck(struct Pokemon *mon, struct PartyMenuBox *menuBox, u8 drawMenuBoxOrText); +static void DisplayPartyPokemonHPCheck(struct Pokemon *mon, struct PartyMenuBox *menuBox, u8 drawMenuBoxOrText); +static void DisplayPartyPokemonMaxHPCheck(struct Pokemon *mon, struct PartyMenuBox *menuBox, u8 drawMenuBoxOrText); static void DisplayPartyPokemonHPBarCheck(struct Pokemon *mon, struct PartyMenuBox *menuBox); -static void DisplayPartyPokemonDescriptionText(u8 stringId, struct PartyMenuBox *menuBox, u8 c); +static void DisplayPartyPokemonDescriptionText(u8 stringId, struct PartyMenuBox *menuBox, u8 drawMenuBoxOrText); static bool8 GetBattleEntryEligibility(struct Pokemon *mon); static bool8 IsMonAllowedInMinigame(u8 slot); static void DisplayPartyPokemonDataToTeachMove(u8 slot, u16 item, u8 tutor); static u8 CanMonLearnTMTutor(struct Pokemon *mon, u16 item, u8 tutor); -static void DisplayPartyPokemonBarDetail(u8 windowId, const u8 *str, u8 color, const u8 *align); +static void DisplayPartyPokemonBarDetail(u8 windowId, const u8 *str, u8 color, const u8 *dimensions); static void DisplayPartyPokemonLevel(u8 level, struct PartyMenuBox *menuBox); static void DisplayPartyPokemonGender(u8 gender, u16 species, u8 *nickname, struct PartyMenuBox *menuBox); static void DisplayPartyPokemonHP(u16 hp, struct PartyMenuBox *menuBox); @@ -222,7 +239,7 @@ static void SwitchSelectedMons(u8 taskId); static void TryEnterMonForMinigame(u8 taskId, u8 slot); static void Task_TryCreateSelectionWindow(u8 taskId); static void TryGiveItemOrMailToSelectedMon(u8 taskId); -static void PartyMenuRemoveWindow(u8 *ptr); +static void PartyMenuRemoveWindow(u8 *windowId); static void CB2_SetUpExitToBattleScreen(void); static void Task_ClosePartyMenuAfterText(u8 taskId); static void FinishTwoMonAction(u8 taskId); @@ -299,8 +316,8 @@ static u8 GetPartyIdFromBattleSlot(u8 slot); static void Task_DisplayHPRestoredMessage(u8 taskId); static void SetSelectedMoveForPPItem(u8 taskId); static void ReturnToUseOnWhichMon(u8 taskId); -static void TryUsePPItem(u8 taskId); -static void ItemUseCB_LearnedMove(u8 taskId, UNUSED TaskFunc func); +static void TryUsePPItemInBattle(u8 taskId); +static void ItemUseCB_LearnedMove(u8 taskId, TaskFunc func); static void Task_LearnedMove(u8 taskId); static void Task_ReplaceMoveYesNo(u8 taskId); static void Task_DoLearnedMoveFanfareAfterText(u8 taskId); @@ -317,7 +334,7 @@ static void Task_PartyMenuReplaceMove(u8 taskId); static void Task_StopLearningMoveYesNo(u8 taskId); static void Task_HandleStopLearningMoveYesNoInput(u8 taskId); static void Task_TryLearningNextMoveAfterText(u8 taskId); -static void ItemUseCB_RareCandyStep(u8 taskId, UNUSED TaskFunc func); +static void ItemUseCB_RareCandyStep(u8 taskId, TaskFunc func); static void Task_DisplayLevelUpStatsPg1(u8 taskId); static void Task_DisplayLevelUpStatsPg2(u8 taskId); static void UpdateMonDisplayInfoAfterRareCandy(u8 slot, struct Pokemon *mon); @@ -343,9 +360,9 @@ static void CB2_ReturnToPartyOrBagMenuFromWritingMail(void); static bool8 ReturnGiveItemToBagOrPC(u16 item); static void Task_DisplayGaveMailFromBagMessage(u8 taskId); static void Task_HandleSwitchItemsFromBagYesNoInput(u8 taskId); -static void Task_ValidateChosenHalfParty(u8 taskId); +static void Task_ValidateChosenMonsForBattle(u8 taskId); static bool8 HasPartySlotAlreadyBeenSelected(u8 slot); -static void Task_ContinueChoosingHalfParty(u8 taskId); +static void Task_ContinueChoosingMonsForBattle(u8 taskId); static void BufferBattlePartyOrder(u8 *partyBattleOrder, u8 flankId); static void BufferBattlePartyOrderBySide(u8 *partyBattleOrder, u8 flankId, u8 battlerId); static void Task_InitMultiPartnerPartySlideIn(u8 taskId); @@ -373,13 +390,13 @@ static u8 FirstBattleEnterParty_CreateWindowAndMsg1Printer(void); static void FirstBattleEnterParty_DestroyVoiceoverWindow(u8 windowId); static void SetSwitchedPartyOrderQuestLogEvent(void); static void SetUsedFieldMoveQuestLogEvent(struct Pokemon *mon, u8 fieldMove); -static void sub_8124DE0(void); -static void sub_8124E48(void); -static void sub_812580C(u8 taskId); -static void sub_8125898(u8 taskId, UNUSED TaskFunc func); -static void sub_8125F4C(u8 taskId, UNUSED TaskFunc func); -static void sub_8125F5C(u8 taskId); -static void sub_8126BD4(void); +static void CB2_DoUseItemAnim(void); +static void CB2_UseItem(void); +static void TryUsePPItemOutsideBattle(u8 taskId); +static void ItemUseCB_RestorePP(u8 taskId, TaskFunc func); +static void ItemUseCB_ReplaceMoveWithTMHM(u8 taskId, TaskFunc func); +static void Task_ReplaceMoveWithTMHM(u8 taskId); +static void CB2_UseEvolutionStone(void); static bool8 MonCanEvolve(void); static EWRAM_DATA struct PartyMenuInternal *sPartyMenuInternal = NULL; @@ -409,9 +426,7 @@ void InitPartyMenu(u8 menuType, u8 layout, u8 partyAction, bool8 keepCursorPos, ResetPartyMenu(); sPartyMenuInternal = Alloc(sizeof(struct PartyMenuInternal)); if (sPartyMenuInternal == NULL) - { SetMainCallback2(callback); - } else { gPartyMenu.menuType = menuType; @@ -421,16 +436,16 @@ void InitPartyMenu(u8 menuType, u8 layout, u8 partyAction, bool8 keepCursorPos, sPartyMenuInternal->task = task; sPartyMenuInternal->exitCallback = NULL; sPartyMenuInternal->lastSelectedSlot = 0; - if (menuType == PARTY_MENU_TYPE_CHOOSE_HALF) - sPartyMenuInternal->chooseHalf = TRUE; + if (menuType == PARTY_MENU_TYPE_CHOOSE_MULTIPLE_MONS) + sPartyMenuInternal->chooseMultiple = TRUE; else - sPartyMenuInternal->chooseHalf = FALSE; + sPartyMenuInternal->chooseMultiple = FALSE; if (layout != KEEP_PARTY_LAYOUT) gPartyMenu.layout = layout; - for (i = 0; i < NELEMS(sPartyMenuInternal->data); ++i) + for (i = 0; i < ARRAY_COUNT(sPartyMenuInternal->data); ++i) sPartyMenuInternal->data[i] = 0; - for (i = 0; i < NELEMS(sPartyMenuInternal->windowId); ++i) - sPartyMenuInternal->windowId[i] = 0xFF; + for (i = 0; i < ARRAY_COUNT(sPartyMenuInternal->windowId); ++i) + sPartyMenuInternal->windowId[i] = WINDOW_NONE; if (!keepCursorPos) gPartyMenu.slotId = 0; else if (gPartyMenu.slotId > PARTY_SIZE - 1 || GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_SPECIES) == SPECIES_NONE) @@ -562,7 +577,7 @@ static bool8 ShowPartyMenu(void) ++gMain.state; break; case 18: - CreateCancelConfirmWindows(sPartyMenuInternal->chooseHalf); + CreateCancelConfirmWindows(sPartyMenuInternal->chooseMultiple); ++gMain.state; break; case 19: @@ -625,7 +640,7 @@ static bool8 AllocPartyMenuBg(void) return FALSE; memset(sPartyBgTilemapBuffer, 0, 0x800); ResetBgsAndClearDma3BusyFlags(0); - InitBgsFromTemplates(0, sPartyMenuBgTemplates, NELEMS(sPartyMenuBgTemplates)); + InitBgsFromTemplates(0, sPartyMenuBgTemplates, ARRAY_COUNT(sPartyMenuBgTemplates)); SetBgTilemapBuffer(1, sPartyBgTilemapBuffer); ScheduleBgCopyTilemapToVram(1); SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP); @@ -743,8 +758,8 @@ static void RenderPartyMenuBox(u8 slot) } else { - if (gPartyMenu.menuType == PARTY_MENU_TYPE_CHOOSE_HALF) - DisplayPartyPokemonDataForChooseHalf(slot); + if (gPartyMenu.menuType == PARTY_MENU_TYPE_CHOOSE_MULTIPLE_MONS) + DisplayPartyPokemonDataForChooseMultiple(slot); else if (gPartyMenu.menuType == PARTY_MENU_TYPE_MINIGAME) DisplayPartyPokemonDataForWirelessMinigame(slot); else if (!DisplayPartyPokemonDataForMoveTutorOrEvolutionItem(slot)) @@ -766,16 +781,16 @@ static void DisplayPartyPokemonData(u8 slot) if (GetMonData(&gPlayerParty[slot], MON_DATA_IS_EGG)) { sPartyMenuBoxes[slot].infoRects->blitFunc(sPartyMenuBoxes[slot].windowId, 0, 0, 0, 0, TRUE); - DisplayPartyPokemonNickname(&gPlayerParty[slot], &sPartyMenuBoxes[slot], 0); + DisplayPartyPokemonNickname(&gPlayerParty[slot], &sPartyMenuBoxes[slot], DRAW_TEXT_ONLY); } else { sPartyMenuBoxes[slot].infoRects->blitFunc(sPartyMenuBoxes[slot].windowId, 0, 0, 0, 0, FALSE); - DisplayPartyPokemonNickname(&gPlayerParty[slot], &sPartyMenuBoxes[slot], 0); - DisplayPartyPokemonLevelCheck(&gPlayerParty[slot], &sPartyMenuBoxes[slot], 0); - DisplayPartyPokemonGenderNidoranCheck(&gPlayerParty[slot], &sPartyMenuBoxes[slot], 0); - DisplayPartyPokemonHPCheck(&gPlayerParty[slot], &sPartyMenuBoxes[slot], 0); - DisplayPartyPokemonMaxHPCheck(&gPlayerParty[slot], &sPartyMenuBoxes[slot], 0); + DisplayPartyPokemonNickname(&gPlayerParty[slot], &sPartyMenuBoxes[slot], DRAW_TEXT_ONLY); + DisplayPartyPokemonLevelCheck(&gPlayerParty[slot], &sPartyMenuBoxes[slot], DRAW_TEXT_ONLY); + DisplayPartyPokemonGenderNidoranCheck(&gPlayerParty[slot], &sPartyMenuBoxes[slot], DRAW_TEXT_ONLY); + DisplayPartyPokemonHPCheck(&gPlayerParty[slot], &sPartyMenuBoxes[slot], DRAW_TEXT_ONLY); + DisplayPartyPokemonMaxHPCheck(&gPlayerParty[slot], &sPartyMenuBoxes[slot], DRAW_TEXT_ONLY); DisplayPartyPokemonHPBarCheck(&gPlayerParty[slot], &sPartyMenuBoxes[slot]); } } @@ -785,16 +800,16 @@ static void DisplayPartyPokemonDescriptionData(u8 slot, u8 stringId) struct Pokemon *mon = &gPlayerParty[slot]; sPartyMenuBoxes[slot].infoRects->blitFunc(sPartyMenuBoxes[slot].windowId, 0, 0, 0, 0, TRUE); - DisplayPartyPokemonNickname(mon, &sPartyMenuBoxes[slot], 0); + DisplayPartyPokemonNickname(mon, &sPartyMenuBoxes[slot], DRAW_TEXT_ONLY); if (!GetMonData(mon, MON_DATA_IS_EGG)) { - DisplayPartyPokemonLevelCheck(mon, &sPartyMenuBoxes[slot], 0); - DisplayPartyPokemonGenderNidoranCheck(mon, &sPartyMenuBoxes[slot], 0); + DisplayPartyPokemonLevelCheck(mon, &sPartyMenuBoxes[slot], DRAW_TEXT_ONLY); + DisplayPartyPokemonGenderNidoranCheck(mon, &sPartyMenuBoxes[slot], DRAW_TEXT_ONLY); } - DisplayPartyPokemonDescriptionText(stringId, &sPartyMenuBoxes[slot], 0); + DisplayPartyPokemonDescriptionText(stringId, &sPartyMenuBoxes[slot], DRAW_TEXT_ONLY); } -static void DisplayPartyPokemonDataForChooseHalf(u8 slot) +static void DisplayPartyPokemonDataForChooseMultiple(u8 slot) { u8 i; struct Pokemon *mon = &gPlayerParty[slot]; @@ -802,12 +817,10 @@ static void DisplayPartyPokemonDataForChooseHalf(u8 slot) u8 maxBattlers; if (!GetBattleEntryEligibility(mon)) - { DisplayPartyPokemonDescriptionData(slot, PARTYBOX_DESC_NOT_ABLE); - } else { - if (gPartyMenu.unk_8_6 == 2) + if (gPartyMenu.chooseMonsBattleType == CHOOSE_MONS_FOR_UNION_ROOM_BATTLE) maxBattlers = 2; else maxBattlers = 3; @@ -888,14 +901,12 @@ static void DisplayPartyPokemonDataForMultiBattle(u8 slot) u8 actualSlot = slot - (3); if (gMultiPartnerParty[actualSlot].species == SPECIES_NONE) - { DrawEmptySlot(menuBox->windowId); - } else { menuBox->infoRects->blitFunc(menuBox->windowId, 0, 0, 0, 0, FALSE); StringCopy(gStringVar1, gMultiPartnerParty[actualSlot].nickname); - StringGetEnd10(gStringVar1); + StringGet_Nickname(gStringVar1); if (StringLength(gStringVar1) <= 5) ConvertInternationalString(gStringVar1, 1); DisplayPartyPokemonBarDetail(menuBox->windowId, gStringVar1, 0, menuBox->infoRects->dimensions); @@ -969,16 +980,15 @@ static void CreateCancelConfirmPokeballSprites(void) } else { - if (sPartyMenuInternal->chooseHalf) + if (sPartyMenuInternal->chooseMultiple) { sPartyMenuInternal->spriteIdConfirmPokeball = CreateSmallPokeballButtonSprite(0xBF, 0x88); DrawCancelConfirmButtons(); sPartyMenuInternal->spriteIdCancelPokeball = CreateSmallPokeballButtonSprite(0xBF, 0x98); } else - { sPartyMenuInternal->spriteIdCancelPokeball = CreatePokeballButtonSprite(198, 148); - } + AnimatePartySlot(gPartyMenu.slotId, 1); } } @@ -997,29 +1007,28 @@ void AnimatePartySlot(u8 slot, u8 animNum) PartyMenuStartSpriteAnim(sPartyMenuBoxes[slot].pokeballSpriteId, animNum); } return; - case PARTY_SIZE: // Confirm + case SLOT_CONFIRM: if (animNum == 0) SetBgTilemapPalette(1, 23, 16, 7, 2, 1); else SetBgTilemapPalette(1, 23, 16, 7, 2, 2); spriteId = sPartyMenuInternal->spriteIdConfirmPokeball; break; - case PARTY_SIZE + 1: // Cancel + case SLOT_CANCEL: // The position of the Cancel button changes if Confirm is present - if (!sPartyMenuInternal->chooseHalf) + if (!sPartyMenuInternal->chooseMultiple) { if (animNum == 0) SetBgTilemapPalette(1, 23, 17, 7, 2, 1); else SetBgTilemapPalette(1, 23, 17, 7, 2, 2); } - else if (animNum == 0) - { - SetBgTilemapPalette(1, 23, 18, 7, 2, 1); - } else { - SetBgTilemapPalette(1, 23, 18, 7, 2, 2); + if (animNum == 0) + SetBgTilemapPalette(1, 23, 18, 7, 2, 1); + else + SetBgTilemapPalette(1, 23, 18, 7, 2, 2); } spriteId = sPartyMenuInternal->spriteIdCancelPokeball; break; @@ -1115,14 +1124,14 @@ void Task_HandleChooseMonInput(u8 taskId) switch (PartyMenuButtonHandler(slotPtr)) { - case 1: // Selected mon + case A_BUTTON: HandleChooseMonSelection(taskId, slotPtr); break; - case 2: // Selected Cancel + case B_BUTTON: // also handles pressing A_BUTTON on Cancel HandleChooseMonCancel(taskId, slotPtr); break; - case 8: // Start button - if (sPartyMenuInternal->chooseHalf) + case START_BUTTON: + if (sPartyMenuInternal->chooseMultiple) { PlaySE(SE_SELECT); MoveCursorToConfirm(); @@ -1142,10 +1151,8 @@ static s8 *GetCurrentPartySlotPtr(void) static void HandleChooseMonSelection(u8 taskId, s8 *slotPtr) { - if (*slotPtr == PARTY_SIZE) - { - gPartyMenu.task(taskId); - } + if (*slotPtr == SLOT_CONFIRM) + gPartyMenu.task(taskId); // task here is always Task_ValidateChosenMonsForBattle else { switch (gPartyMenu.action) @@ -1237,16 +1244,14 @@ static void HandleChooseMonCancel(u8 taskId, s8 *slotPtr) break; default: PlaySE(SE_SELECT); - if (gPartyMenu.menuType == PARTY_MENU_TYPE_CHOOSE_HALF) - { + if (gPartyMenu.menuType == PARTY_MENU_TYPE_CHOOSE_MULTIPLE_MONS) DisplayCancelChooseMonYesNo(taskId); - } else { if (!MenuHelpers_LinkSomething()) - gSpecialVar_0x8004 = PARTY_SIZE + 1; + gSpecialVar_0x8004 = SLOT_CANCEL; gPartyMenuUseExitCallback = FALSE; - *slotPtr = PARTY_SIZE + 1; + *slotPtr = SLOT_CANCEL; Task_ClosePartyMenu(taskId); } break; @@ -1256,7 +1261,7 @@ static void HandleChooseMonCancel(u8 taskId, s8 *slotPtr) static void DisplayCancelChooseMonYesNo(u8 taskId) { PartyMenuRemoveWindow(&sPartyMenuInternal->windowId[1]); - StringExpandPlaceholders(gStringVar4, gUnknown_84176CF); + StringExpandPlaceholders(gStringVar4, gText_CancelBattle); DisplayPartyMenuMessage(gStringVar4, TRUE); gTasks[taskId].func = Task_CancelChooseMonYesNo; } @@ -1276,7 +1281,7 @@ static void Task_HandleCancelChooseMonYesNoInput(u8 taskId) { case 0: gPartyMenuUseExitCallback = FALSE; - gPartyMenu.slotId = PARTY_SIZE + 1; + gPartyMenu.slotId = SLOT_CANCEL; ClearSelectedPartyOrder(); Task_ClosePartyMenu(taskId); break; @@ -1323,15 +1328,14 @@ static u16 PartyMenuButtonHandler(s8 *slotPtr) break; } if (JOY_NEW(START_BUTTON)) - return 8; + return START_BUTTON; if (movementDir) { UpdateCurrentPartySelection(slotPtr, movementDir); return 0; } - // Pressed Cancel - if (JOY_NEW(A_BUTTON) && *slotPtr == PARTY_SIZE + 1) - return 2; + if (JOY_NEW(A_BUTTON) && *slotPtr == SLOT_CANCEL) + return B_BUTTON; return JOY_NEW(A_BUTTON | B_BUTTON); } @@ -1354,49 +1358,35 @@ static void UpdateCurrentPartySelection(s8 *slotPtr, s8 movementDir) static void UpdatePartySelectionSingleLayout(s8 *slotPtr, s8 movementDir) { - // PARTY_SIZE + 1 is Cancel, PARTY_SIZE is Confirm switch (movementDir) { case MENU_DIR_UP: if (*slotPtr == 0) - { - *slotPtr = PARTY_SIZE + 1; - } - else if (*slotPtr == PARTY_SIZE) - { + *slotPtr = SLOT_CANCEL; + else if (*slotPtr == SLOT_CONFIRM) *slotPtr = gPlayerPartyCount - 1; - } - else if (*slotPtr == PARTY_SIZE + 1) + else if (*slotPtr == SLOT_CANCEL) { - if (sPartyMenuInternal->chooseHalf) - *slotPtr = PARTY_SIZE; + if (sPartyMenuInternal->chooseMultiple) + *slotPtr = SLOT_CONFIRM; else *slotPtr = gPlayerPartyCount - 1; } else - { --*slotPtr; - } break; case MENU_DIR_DOWN: - if (*slotPtr == PARTY_SIZE + 1) - { + if (*slotPtr == SLOT_CANCEL) *slotPtr = 0; + else if (*slotPtr == gPlayerPartyCount - 1) + { + if (sPartyMenuInternal->chooseMultiple) + *slotPtr = SLOT_CONFIRM; + else + *slotPtr = SLOT_CANCEL; } else - { - if (*slotPtr == gPlayerPartyCount - 1) - { - if (sPartyMenuInternal->chooseHalf) - *slotPtr = PARTY_SIZE; - else - *slotPtr = PARTY_SIZE + 1; - } - else - { - ++*slotPtr; - } - } + ++*slotPtr; break; case MENU_DIR_RIGHT: if (gPlayerPartyCount != 1 && *slotPtr == 0) @@ -1408,7 +1398,7 @@ static void UpdatePartySelectionSingleLayout(s8 *slotPtr, s8 movementDir) } break; case MENU_DIR_LEFT: - if (*slotPtr != 0 && *slotPtr != PARTY_SIZE && *slotPtr != PARTY_SIZE + 1) + if (*slotPtr != 0 && *slotPtr != SLOT_CONFIRM && *slotPtr != SLOT_CANCEL) { sPartyMenuInternal->lastSelectedSlot = *slotPtr; *slotPtr = 0; @@ -1419,7 +1409,6 @@ static void UpdatePartySelectionSingleLayout(s8 *slotPtr, s8 movementDir) static void UpdatePartySelectionDoubleLayout(s8 *slotPtr, s8 movementDir) { - // PARTY_SIZE + 1 is Cancel, PARTY_SIZE is Confirm // newSlot is used temporarily as a movement direction during its later assignment s8 newSlot = movementDir; @@ -1428,19 +1417,19 @@ static void UpdatePartySelectionDoubleLayout(s8 *slotPtr, s8 movementDir) case MENU_DIR_UP: if (*slotPtr == 0) { - *slotPtr = PARTY_SIZE + 1; + *slotPtr = SLOT_CANCEL; break; } - else if (*slotPtr == PARTY_SIZE) + else if (*slotPtr == SLOT_CONFIRM) { *slotPtr = gPlayerPartyCount - 1; break; } - else if (*slotPtr == PARTY_SIZE + 1) + else if (*slotPtr == SLOT_CANCEL) { - if (sPartyMenuInternal->chooseHalf) + if (sPartyMenuInternal->chooseMultiple) { - *slotPtr = PARTY_SIZE; + *slotPtr = SLOT_CONFIRM; break; } --*slotPtr; @@ -1450,28 +1439,22 @@ static void UpdatePartySelectionDoubleLayout(s8 *slotPtr, s8 movementDir) *slotPtr = newSlot; break; case MENU_DIR_DOWN: - if (*slotPtr == PARTY_SIZE) - { - *slotPtr = PARTY_SIZE + 1; - } - else if (*slotPtr == PARTY_SIZE + 1) - { + if (*slotPtr == SLOT_CONFIRM) + *slotPtr = SLOT_CANCEL; + else if (*slotPtr == SLOT_CANCEL) *slotPtr = 0; - } else { newSlot = GetNewSlotDoubleLayout(*slotPtr, MENU_DIR_DOWN); if (newSlot == -1) { - if (sPartyMenuInternal->chooseHalf) - *slotPtr = PARTY_SIZE; + if (sPartyMenuInternal->chooseMultiple) + *slotPtr = SLOT_CONFIRM; else - *slotPtr = PARTY_SIZE + 1; + *slotPtr = SLOT_CANCEL; } else - { *slotPtr = newSlot; - } } break; case MENU_DIR_RIGHT: @@ -1483,9 +1466,8 @@ static void UpdatePartySelectionDoubleLayout(s8 *slotPtr, s8 movementDir) *slotPtr = 3; } else if (GetMonData(&gPlayerParty[2], MON_DATA_SPECIES) != SPECIES_NONE) - { *slotPtr = 2; - } + } else if (*slotPtr == 1) { @@ -1495,9 +1477,8 @@ static void UpdatePartySelectionDoubleLayout(s8 *slotPtr, s8 movementDir) *slotPtr = 5; } else if (GetMonData(&gPlayerParty[4], MON_DATA_SPECIES) != SPECIES_NONE) - { *slotPtr = 4; - } + } break; case MENU_DIR_LEFT: @@ -1520,7 +1501,7 @@ static s8 GetNewSlotDoubleLayout(s8 slotId, s8 movementDir) while (TRUE) { slotId += movementDir; - if ((u8)slotId >= PARTY_SIZE) + if ((u8)slotId >= SLOT_CONFIRM) return -1; if (GetMonData(&gPlayerParty[slotId], MON_DATA_SPECIES) != SPECIES_NONE) return slotId; @@ -1530,7 +1511,7 @@ static s8 GetNewSlotDoubleLayout(s8 slotId, s8 movementDir) u8 *GetMonNickname(struct Pokemon *mon, u8 *dest) { GetMonData(mon, MON_DATA_NICKNAME, dest); - return StringGetEnd10(dest); + return StringGet_Nickname(dest); } #define tKeepOpen data[0] @@ -1670,7 +1651,7 @@ static void BufferBagFullCantTakeItemMessage(u16 itemId) switch (ItemId_GetPocket(itemId)) { default: - string = gStartMenuText_Bag; + string = gText_MenuBag; break; case POCKET_TM_CASE: string = ItemId_GetName(ITEM_TM_CASE); @@ -1697,7 +1678,7 @@ static void Task_PartyMenuModifyHP(u8 taskId) tHP += tHPIncrement; --tHPToAdd; SetMonData(&gPlayerParty[tPartyId], MON_DATA_HP, &tHP); - DisplayPartyPokemonHPCheck(&gPlayerParty[tPartyId], &sPartyMenuBoxes[tPartyId], 1); + DisplayPartyPokemonHPCheck(&gPlayerParty[tPartyId], &sPartyMenuBoxes[tPartyId], DRAW_MENU_BOX_AND_TEXT); DisplayPartyPokemonHPBarCheck(&gPlayerParty[tPartyId], &sPartyMenuBoxes[tPartyId]); if (tHPToAdd == 0 || tHP == 0 || tHP == tMaxHP) { @@ -1788,25 +1769,24 @@ u8 GetMonAilment(struct Pokemon *mon) return AILMENT_NONE; } +#define minigameBitflag data[0] + static void SetPartyMonsAllowedInMinigame(void) { - u16 *ptr; - if (gPartyMenu.menuType == PARTY_MENU_TYPE_MINIGAME) { u8 i; - - ptr = &gPartyMenu.data1; - gPartyMenu.data1 = 0; + s16 *data = gPartyMenu.data; + minigameBitflag = 0; if (gSpecialVar_0x8005 == 0) { for (i = 0; i < gPlayerPartyCount; ++i) - *ptr += IsMonAllowedInPokemonJump(&gPlayerParty[i]) << i; + minigameBitflag += IsMonAllowedInPokemonJump(&gPlayerParty[i]) << i; } else { for (i = 0; i < gPlayerPartyCount; ++i) - *ptr += IsMonAllowedInDodrioBerryPicking(&gPlayerParty[i]) << i; + minigameBitflag += IsMonAllowedInDodrioBerryPicking(&gPlayerParty[i]) << i; } } } @@ -1818,7 +1798,6 @@ static bool16 IsMonAllowedInPokemonJump(struct Pokemon *mon) return FALSE; } - static bool16 IsMonAllowedInDodrioBerryPicking(struct Pokemon *mon) { if (GetMonData(mon, MON_DATA_IS_EGG) != TRUE && GetMonData(mon, MON_DATA_SPECIES) == SPECIES_DODRIO) @@ -1828,11 +1807,13 @@ static bool16 IsMonAllowedInDodrioBerryPicking(struct Pokemon *mon) static bool8 IsMonAllowedInMinigame(u8 slot) { - if (!((gPartyMenu.data1 >> slot) & 1)) + if (!((gPartyMenu.minigameBitflag >> slot) & 1)) return FALSE; return TRUE; } +#undef minigameBitflag + static void TryEnterMonForMinigame(u8 taskId, u8 slot) { if (IsMonAllowedInMinigame(slot) == TRUE) @@ -1871,7 +1852,7 @@ static void Task_HandleCancelParticipationYesNoInput(u8 taskId) switch (Menu_ProcessInputNoWrapClearOnChoose()) { case 0: - gSpecialVar_0x8004 = PARTY_SIZE + 1; + gSpecialVar_0x8004 = SLOT_CANCEL; Task_ClosePartyMenu(taskId); break; case MENU_B_PRESSED: @@ -1892,22 +1873,16 @@ static u8 CanMonLearnTMTutor(struct Pokemon *mon, u16 item, u8 tutor) if (item >= ITEM_TM01_FOCUS_PUNCH) { - if (CanMonLearnTMHM(mon, item - ITEM_TM01_FOCUS_PUNCH)) - move = ItemIdToBattleMoveId(item); - else + if (!CanMonLearnTMHM(mon, item - ITEM_TM01_FOCUS_PUNCH)) return CANNOT_LEARN_MOVE; - do - { - } while (0); + else + move = ItemIdToBattleMoveId(item); } else if (CanLearnTutorMove(GetMonData(mon, MON_DATA_SPECIES), tutor) == FALSE) - { return CANNOT_LEARN_MOVE; - } else - { move = GetTutorMove(tutor); - } + if (MonKnowsMove(mon, move) == TRUE) return ALREADY_KNOWS_MOVE; else @@ -2031,8 +2006,8 @@ static void Task_FirstBattleEnterParty_WaitFadeNormal(u8 taskId) { if (!gPaletteFade.active) { - TextWindow_SetUserSelectedFrame(0, 0x4F, 0xD0); - TextWindow_SetStdFrame0_WithPal(0, 0x58, 0xF0); + LoadUserWindowGfx(0, 0x4F, 0xD0); + LoadStdWindowGfx(0, 0x58, 0xF0); if (gPartyMenu.action == PARTY_ACTION_USE_ITEM) DisplayPartyMenuStdMessage(PARTY_MSG_USE_ON_WHICH_MON); else @@ -2142,13 +2117,13 @@ static void InitPartyMenuWindows(u8 layout) DeactivateAllTextPrinters(); for (i = 0; i < PARTY_SIZE; ++i) FillWindowPixelBuffer(i, PIXEL_FILL(0)); - TextWindow_SetUserSelectedFrame(0, 0x4F, 0xD0); - TextWindow_SetStdFrame0_WithPal(0, 0x58, 0xF0); - LoadPalette(stdpal_get(2), 0xC0, 0x20); - LoadPalette(stdpal_get(0), 0xE0, 0x20); + LoadUserWindowGfx(0, 0x4F, 0xD0); + LoadStdWindowGfx(0, 0x58, 0xF0); + LoadPalette(GetTextWindowPalette(2), 0xC0, 0x20); + LoadPalette(GetTextWindowPalette(0), 0xE0, 0x20); } -static void CreateCancelConfirmWindows(bool8 chooseHalf) +static void CreateCancelConfirmWindows(bool8 chooseMultiple) { u8 confirmWindowId; u8 cancelWindowId; @@ -2156,11 +2131,11 @@ static void CreateCancelConfirmWindows(bool8 chooseHalf) if (gPartyMenu.menuType != PARTY_MENU_TYPE_MULTI_SHOWCASE) { - if (chooseHalf == TRUE) + if (chooseMultiple == TRUE) { confirmWindowId = AddWindow(&sConfirmButtonWindowTemplate); FillWindowPixelBuffer(confirmWindowId, PIXEL_FILL(0)); - AddTextPrinterParameterized4(confirmWindowId, FONT_0, (48 - GetStringWidth(FONT_0, gMenuText_Confirm, 0)) / 2u, 1, 0, 0, sFontColorTable[0], -1, gMenuText_Confirm); + AddTextPrinterParameterized4(confirmWindowId, FONT_0, (48 - GetStringWidth(FONT_0, gText_PartyMenu_OK, 0)) / 2u, 1, 0, 0, sFontColorTable[0], -1, gText_PartyMenu_OK); PutWindowTilemap(confirmWindowId); CopyWindowToVram(confirmWindowId, COPYWIN_GFX); cancelWindowId = AddWindow(&sMultiCancelButtonWindowTemplate); @@ -2194,7 +2169,7 @@ static u16 *GetPartyMenuPalBufferPtr(u8 paletteId) return &sPartyMenuInternal->palBuffer[paletteId]; } -static void BlitBitmapToPartyWindow(u8 windowId, const u8 *b, u8 c, u8 x, u8 y, u8 width, u8 height) +static void BlitBitmapToPartyWindow(u8 windowId, const u8 *tileNums, u8 menuBoxWidth, u8 x, u8 y, u8 width, u8 height) { u8 *pixels = AllocZeroed(height * width * 32); u8 i, j; @@ -2203,7 +2178,7 @@ static void BlitBitmapToPartyWindow(u8 windowId, const u8 *b, u8 c, u8 x, u8 y, { for (i = 0; i < height; ++i) for (j = 0; j < width; ++j) - CpuCopy16(GetPartyMenuBgTile(b[x + j + ((y + i) * c)]), &pixels[(i * width + j) * 32], 32); + CpuCopy16(GetPartyMenuBgTile(tileNums[x + j + ((y + i) * menuBoxWidth)]), &pixels[(i * width + j) * 32], 32); BlitBitmapToWindow(windowId, pixels, x * 8, y * 8, width * 8, height * 8); Free(pixels); } @@ -2320,25 +2295,25 @@ static void LoadPartyBoxPalette(struct PartyMenuBox *menuBox, u8 palFlags) } } -static void DisplayPartyPokemonBarDetail(u8 windowId, const u8 *str, u8 color, const u8 *align) +static void DisplayPartyPokemonBarDetail(u8 windowId, const u8 *str, u8 color, const u8 *dimensions) { - AddTextPrinterParameterized3(windowId, FONT_0, align[0], align[1], sFontColorTable[color], 0, str); + AddTextPrinterParameterized3(windowId, FONT_0, dimensions[0], dimensions[1], sFontColorTable[color], 0, str); } -static void DisplayPartyPokemonNickname(struct Pokemon *mon, struct PartyMenuBox *menuBox, u8 c) +static void DisplayPartyPokemonNickname(struct Pokemon *mon, struct PartyMenuBox *menuBox, u8 drawMenuBoxOrText) { u8 nickname[POKEMON_NAME_LENGTH + 1]; if (GetMonData(mon, MON_DATA_SPECIES) != SPECIES_NONE) { - if (c == 1) - menuBox->infoRects->blitFunc(menuBox->windowId, menuBox->infoRects->dimensions[0] >> 3, menuBox->infoRects->dimensions[1] >> 3, menuBox->infoRects->dimensions[2] >> 3, menuBox->infoRects->dimensions[3] >> 3, FALSE); + if (drawMenuBoxOrText == DRAW_MENU_BOX_AND_TEXT) + menuBox->infoRects->blitFunc(menuBox->windowId, menuBox->infoRects->dimensions[0] / 8, menuBox->infoRects->dimensions[1] / 8, menuBox->infoRects->dimensions[2] / 8, menuBox->infoRects->dimensions[3] / 8, FALSE); GetMonNickname(mon, nickname); DisplayPartyPokemonBarDetail(menuBox->windowId, nickname, 0, menuBox->infoRects->dimensions); } } -static void DisplayPartyPokemonLevelCheck(struct Pokemon *mon, struct PartyMenuBox *menuBox, u8 c) +static void DisplayPartyPokemonLevelCheck(struct Pokemon *mon, struct PartyMenuBox *menuBox, u8 drawMenuBoxOrText) { if (GetMonData(mon, MON_DATA_SPECIES) != SPECIES_NONE) { @@ -2346,9 +2321,9 @@ static void DisplayPartyPokemonLevelCheck(struct Pokemon *mon, struct PartyMenuB if (ailment == AILMENT_NONE || ailment == AILMENT_PKRS) { - if (c != 0) - menuBox->infoRects->blitFunc(menuBox->windowId, menuBox->infoRects->dimensions[4] >> 3, (menuBox->infoRects->dimensions[5] >> 3) + 1, menuBox->infoRects->dimensions[6] >> 3, menuBox->infoRects->dimensions[7] >> 3, FALSE); - if (c != 2) + if (drawMenuBoxOrText != DRAW_TEXT_ONLY) + menuBox->infoRects->blitFunc(menuBox->windowId, menuBox->infoRects->dimensions[4] / 8, (menuBox->infoRects->dimensions[5] / 8) + 1, menuBox->infoRects->dimensions[6] / 8, menuBox->infoRects->dimensions[7] / 8, FALSE); + if (drawMenuBoxOrText != DRAW_MENU_BOX_ONLY) DisplayPartyPokemonLevel(GetMonData(mon, MON_DATA_LEVEL), menuBox); } } @@ -2362,12 +2337,12 @@ static void DisplayPartyPokemonLevel(u8 level, struct PartyMenuBox *menuBox) DisplayPartyPokemonBarDetail(menuBox->windowId, gStringVar1, 0, &menuBox->infoRects->dimensions[4]); } -static void DisplayPartyPokemonGenderNidoranCheck(struct Pokemon *mon, struct PartyMenuBox *menuBox, u8 c) +static void DisplayPartyPokemonGenderNidoranCheck(struct Pokemon *mon, struct PartyMenuBox *menuBox, u8 drawMenuBoxOrText) { u8 nickname[POKEMON_NAME_LENGTH + 1]; - if (c == 1) - menuBox->infoRects->blitFunc(menuBox->windowId, menuBox->infoRects->dimensions[8] >> 3, (menuBox->infoRects->dimensions[9] >> 3) + 1, menuBox->infoRects->dimensions[10] >> 3, menuBox->infoRects->dimensions[11] >> 3, FALSE); + if (drawMenuBoxOrText == DRAW_MENU_BOX_AND_TEXT) + menuBox->infoRects->blitFunc(menuBox->windowId, menuBox->infoRects->dimensions[8] / 8, (menuBox->infoRects->dimensions[9] / 8) + 1, menuBox->infoRects->dimensions[10] / 8, menuBox->infoRects->dimensions[11] / 8, FALSE); GetMonNickname(mon, nickname); DisplayPartyPokemonGender(GetMonGender(mon), GetMonData(mon, MON_DATA_SPECIES), nickname, menuBox); } @@ -2395,13 +2370,13 @@ static void DisplayPartyPokemonGender(u8 gender, u16 species, u8 *nickname, stru } } -static void DisplayPartyPokemonHPCheck(struct Pokemon *mon, struct PartyMenuBox *menuBox, u8 c) +static void DisplayPartyPokemonHPCheck(struct Pokemon *mon, struct PartyMenuBox *menuBox, u8 drawMenuBoxOrText) { if (GetMonData(mon, MON_DATA_SPECIES) != SPECIES_NONE) { - if (c != 0) - menuBox->infoRects->blitFunc(menuBox->windowId, menuBox->infoRects->dimensions[12] >> 3, (menuBox->infoRects->dimensions[13] >> 3) + 1, menuBox->infoRects->dimensions[14] >> 3, menuBox->infoRects->dimensions[15] >> 3, FALSE); - if (c != 2) + if (drawMenuBoxOrText != DRAW_TEXT_ONLY) + menuBox->infoRects->blitFunc(menuBox->windowId, menuBox->infoRects->dimensions[12] / 8, (menuBox->infoRects->dimensions[13] / 8) + 1, menuBox->infoRects->dimensions[14] / 8, menuBox->infoRects->dimensions[15] / 8, FALSE); + if (drawMenuBoxOrText != DRAW_MENU_BOX_ONLY) DisplayPartyPokemonHP(GetMonData(mon, MON_DATA_HP), menuBox); } } @@ -2415,13 +2390,13 @@ static void DisplayPartyPokemonHP(u16 hp, struct PartyMenuBox *menuBox) DisplayPartyPokemonBarDetail(menuBox->windowId, gStringVar1, 0, &menuBox->infoRects->dimensions[12]); } -static void DisplayPartyPokemonMaxHPCheck(struct Pokemon *mon, struct PartyMenuBox *menuBox, u8 c) +static void DisplayPartyPokemonMaxHPCheck(struct Pokemon *mon, struct PartyMenuBox *menuBox, u8 drawMenuBoxOrText) { if (GetMonData(mon, MON_DATA_SPECIES) != SPECIES_NONE) { - if (c != 0) - menuBox->infoRects->blitFunc(menuBox->windowId, (menuBox->infoRects->dimensions[16] >> 3) + 1, (menuBox->infoRects->dimensions[17] >> 3) + 1, menuBox->infoRects->dimensions[18] >> 3, menuBox->infoRects->dimensions[19] >> 3, FALSE); - if (c != 2) + if (drawMenuBoxOrText != DRAW_TEXT_ONLY) + menuBox->infoRects->blitFunc(menuBox->windowId, (menuBox->infoRects->dimensions[16] / 8) + 1, (menuBox->infoRects->dimensions[17] / 8) + 1, menuBox->infoRects->dimensions[18] / 8, menuBox->infoRects->dimensions[19] / 8, FALSE); + if (drawMenuBoxOrText != DRAW_MENU_BOX_ONLY) DisplayPartyPokemonMaxHP(GetMonData(mon, MON_DATA_MAX_HP), menuBox); } } @@ -2473,21 +2448,21 @@ static void DisplayPartyPokemonHPBar(u16 hp, u16 maxhp, struct PartyMenuBox *men CopyWindowToVram(menuBox->windowId, COPYWIN_GFX); } -static void DisplayPartyPokemonDescriptionText(u8 stringId, struct PartyMenuBox *menuBox, u8 c) +static void DisplayPartyPokemonDescriptionText(u8 stringId, struct PartyMenuBox *menuBox, u8 drawMenuBoxOrText) { - if (c != 0) - menuBox->infoRects->blitFunc(menuBox->windowId, menuBox->infoRects->descTextLeft >> 3, menuBox->infoRects->descTextTop >> 3, menuBox->infoRects->descTextWidth >> 3, menuBox->infoRects->descTextHeight >> 3, TRUE); - if (c != 2) + if (drawMenuBoxOrText != DRAW_TEXT_ONLY) + menuBox->infoRects->blitFunc(menuBox->windowId, menuBox->infoRects->descTextLeft / 8, menuBox->infoRects->descTextTop / 8, menuBox->infoRects->descTextWidth / 8, menuBox->infoRects->descTextHeight / 8, TRUE); + if (drawMenuBoxOrText != DRAW_MENU_BOX_ONLY) AddTextPrinterParameterized3(menuBox->windowId, FONT_1, menuBox->infoRects->descTextLeft, menuBox->infoRects->descTextTop, sFontColorTable[0], 0, sDescriptionStringTable[stringId]); } -static void PartyMenuRemoveWindow(u8 *ptr) +static void PartyMenuRemoveWindow(u8 *windowId) { - if (*ptr != 0xFF) + if (*windowId != WINDOW_NONE) { - ClearStdWindowAndFrameToTransparent(*ptr, FALSE); - RemoveWindow(*ptr); - *ptr = 0xFF; + ClearStdWindowAndFrameToTransparent(*windowId, FALSE); + RemoveWindow(*windowId); + *windowId = WINDOW_NONE; ScheduleBgCopyTilemapToVram(2); } } @@ -2496,7 +2471,7 @@ void DisplayPartyMenuStdMessage(u32 stringId) { u8 *windowPtr = &sPartyMenuInternal->windowId[1]; - if (*windowPtr != 0xFF) + if (*windowPtr != WINDOW_NONE) PartyMenuRemoveWindow(windowPtr); if (stringId != PARTY_MSG_NONE) @@ -2523,7 +2498,7 @@ void DisplayPartyMenuStdMessage(u32 stringId) if (stringId == PARTY_MSG_CHOOSE_MON) { - if (sPartyMenuInternal->chooseHalf) + if (sPartyMenuInternal->chooseMultiple) stringId = PARTY_MSG_CHOOSE_MON_AND_CONFIRM; else if (!ShouldUseChooseMonText()) stringId = PARTY_MSG_CHOOSE_MON_OR_CANCEL; @@ -2583,7 +2558,7 @@ static u8 DisplaySelectionWindow(u8 windowType) fontAttribute = GetFontAttribute(FONT_2, FONTATTR_LETTER_SPACING); for (i = 0; i < sPartyMenuInternal->numActions; ++i) { - u8 fontColorsId = (sPartyMenuInternal->actions[i] >= MENU_FIELD_MOVES) ? 4 : 3; + u8 fontColorsId = (sPartyMenuInternal->actions[i] >= CURSOR_OPTION_FIELD_MOVES) ? 4 : 3; AddTextPrinterParameterized4(sPartyMenuInternal->windowId[0], FONT_2, cursorDimension, (i * 16) + 2, fontAttribute, 0, sFontColorTable[fontColorsId], 0, sCursorOptions[sPartyMenuInternal->actions[i]].text); } @@ -2628,7 +2603,7 @@ static bool8 FirstBattleEnterParty_CreateWindowAndMsg1Printer(void) { u8 windowId = AddWindow(&sWindowTemplate_FirstBattleOakVoiceover); - TextWindow_LoadResourcesStdFrame0(windowId, 0x4F, 0xE0); + LoadMenuMessageWindowGfx(windowId, 0x4F, 0xE0); DrawDialogFrameWithCustomTileAndPalette(windowId, 1, 0x4F, 0xE); PartyMenu_Oak_PrintText(windowId, gText_OakImportantToGetToKnowPokemonThroughly); return windowId; @@ -2642,28 +2617,28 @@ static void FirstBattleEnterParty_DestroyVoiceoverWindow(u8 windowId) ScheduleBgCopyTilemapToVram(2); } -static void sub_8122138(u8 action) +static void ToggleFieldMoveDescriptionWindow(u8 action) { - u8 attr; + u8 letterSpacing; struct PartyMenuInternal *ptr = sPartyMenuInternal; - if (action <= 17) + if (action < CURSOR_OPTION_FIELD_MOVES) { - if (ptr->windowId[2] != 0xFF) + if (ptr->windowId[2] != WINDOW_NONE) { ClearWindowTilemap(ptr->windowId[2]); RemoveWindow(ptr->windowId[2]); - ptr->windowId[2] = 0xFF; + ptr->windowId[2] = WINDOW_NONE; ScheduleBgCopyTilemapToVram(2); } } else { - if (ptr->windowId[2] == 0xFF) - ptr->windowId[2] = AddWindow(&gUnknown_845A178); - sub_8112F18(ptr->windowId[2]); - attr = GetFontAttribute(FONT_2, FONTATTR_LETTER_SPACING); - AddTextPrinterParameterized4(ptr->windowId[2], FONT_2, 3, 6, attr, 0, sFontColorTable[5], 0, sHMDescriptionTable[action - MENU_FIELD_MOVES]); + if (ptr->windowId[2] == WINDOW_NONE) + ptr->windowId[2] = AddWindow(&sFieldMoveDescriptionWindowTemplate); + DrawHelpMessageWindowTilesById(ptr->windowId[2]); + letterSpacing = GetFontAttribute(FONT_2, FONTATTR_LETTER_SPACING); + AddTextPrinterParameterized4(ptr->windowId[2], FONT_2, 3, 6, letterSpacing, 0, sFontColorTable[5], 0, sFieldMoveDescriptionTable[action - CURSOR_OPTION_FIELD_MOVES]); PutWindowTilemap(ptr->windowId[2]); ScheduleBgCopyTilemapToVram(2); } @@ -2990,7 +2965,7 @@ static void SetPartyMonFieldSelectionActions(struct Pokemon *mons, u8 slotId) u8 i, j; sPartyMenuInternal->numActions = 0; - AppendToList(sPartyMenuInternal->actions, &sPartyMenuInternal->numActions, MENU_SUMMARY); + AppendToList(sPartyMenuInternal->actions, &sPartyMenuInternal->numActions, CURSOR_OPTION_SUMMARY); // Add field moves to action list for (i = 0; i < MAX_MON_MOVES; ++i) { @@ -2998,18 +2973,18 @@ static void SetPartyMonFieldSelectionActions(struct Pokemon *mons, u8 slotId) { if (GetMonData(&mons[slotId], i + MON_DATA_MOVE1) == sFieldMoves[j]) { - AppendToList(sPartyMenuInternal->actions, &sPartyMenuInternal->numActions, j + MENU_FIELD_MOVES); + AppendToList(sPartyMenuInternal->actions, &sPartyMenuInternal->numActions, j + CURSOR_OPTION_FIELD_MOVES); break; } } } if (GetMonData(&mons[1], MON_DATA_SPECIES) != SPECIES_NONE) - AppendToList(sPartyMenuInternal->actions, &sPartyMenuInternal->numActions, MENU_SWITCH); + AppendToList(sPartyMenuInternal->actions, &sPartyMenuInternal->numActions, CURSOR_OPTION_SWITCH); if (ItemIsMail(GetMonData(&mons[slotId], MON_DATA_HELD_ITEM))) - AppendToList(sPartyMenuInternal->actions, &sPartyMenuInternal->numActions, MENU_MAIL); + AppendToList(sPartyMenuInternal->actions, &sPartyMenuInternal->numActions, CURSOR_OPTION_MAIL); else - AppendToList(sPartyMenuInternal->actions, &sPartyMenuInternal->numActions, MENU_ITEM); - AppendToList(sPartyMenuInternal->actions, &sPartyMenuInternal->numActions, MENU_CANCEL1); + AppendToList(sPartyMenuInternal->actions, &sPartyMenuInternal->numActions, CURSOR_OPTION_ITEM); + AppendToList(sPartyMenuInternal->actions, &sPartyMenuInternal->numActions, CURSOR_OPTION_CANCEL1); } static u8 GetPartyMenuActionsType(struct Pokemon *mon) @@ -3027,7 +3002,7 @@ static u8 GetPartyMenuActionsType(struct Pokemon *mon) case PARTY_MENU_TYPE_IN_BATTLE: actionType = GetPartyMenuActionsTypeInBattle(mon); break; - case PARTY_MENU_TYPE_CHOOSE_HALF: + case PARTY_MENU_TYPE_CHOOSE_MULTIPLE_MONS: switch (GetPartySlotEntryStatus(gPartyMenu.slotId)) { default: // Not eligible @@ -3055,7 +3030,7 @@ static u8 GetPartyMenuActionsType(struct Pokemon *mon) break; // The following have no selection actions (i.e. they exit immediately upon selection) // PARTY_MENU_TYPE_CONTEST - // PARTY_MENU_TYPE_CHOOSE_MON + // PARTY_MENU_TYPE_CHOOSE_SINGLE_MON // PARTY_MENU_TYPE_MULTI_SHOWCASE // PARTY_MENU_TYPE_MOVE_RELEARNER // PARTY_MENU_TYPE_MINIGAME @@ -3080,7 +3055,7 @@ static void CreateSelectionWindow(void) static void Task_TryCreateSelectionWindow(u8 taskId) { CreateSelectionWindow(); - gTasks[taskId].data[0] = 0xFF; + gTasks[taskId].data[0] = (u8)MENU_B_PRESSED; gTasks[taskId].func = Task_HandleSelectionMenuInput; } @@ -3095,8 +3070,10 @@ static void Task_HandleSelectionMenuInput(u8 taskId) input = Menu_ProcessInputNoWrapAround_other(); else input = Menu_ProcessInput_other(); + if (data[0] != Menu_GetCursorPos()) - sub_8122138(sPartyMenuInternal->actions[Menu_GetCursorPos()]); + ToggleFieldMoveDescriptionWindow(sPartyMenuInternal->actions[Menu_GetCursorPos()]); + data[0] = Menu_GetCursorPos(); switch (input) { @@ -3431,7 +3408,7 @@ static void CursorCB_Item(u8 taskId) SetPartyMonSelectionActions(gPlayerParty, gPartyMenu.slotId, ACTIONS_ITEM); DisplaySelectionWindow(SELECTWINDOW_ITEM); DisplayPartyMenuStdMessage(PARTY_MSG_DO_WHAT_WITH_ITEM); - gTasks[taskId].data[0] = 0xFF; + gTasks[taskId].data[0] = (u8)MENU_B_PRESSED; gTasks[taskId].func = Task_HandleSelectionMenuInput; } @@ -3644,7 +3621,7 @@ static void CursorCB_Mail(u8 taskId) SetPartyMonSelectionActions(gPlayerParty, gPartyMenu.slotId, ACTIONS_MAIL); DisplaySelectionWindow(SELECTWINDOW_MAIL); DisplayPartyMenuStdMessage(PARTY_MSG_DO_WHAT_WITH_MAIL); - gTasks[taskId].data[0] = 0xFF; + gTasks[taskId].data[0] = (u8)MENU_B_PRESSED; gTasks[taskId].func = Task_HandleSelectionMenuInput; } @@ -3759,7 +3736,7 @@ static void CursorCB_Cancel2(u8 taskId) SetPartyMonSelectionActions(gPlayerParty, gPartyMenu.slotId, GetPartyMenuActionsType(mon)); DisplaySelectionWindow(SELECTWINDOW_ACTIONS); DisplayPartyMenuStdMessage(PARTY_MSG_DO_WHAT_WITH_MON); - gTasks[taskId].data[0] = 0xFF; + gTasks[taskId].data[0] = (u8)MENU_B_PRESSED; gTasks[taskId].func = Task_HandleSelectionMenuInput; } @@ -3786,15 +3763,15 @@ static void CursorCB_Enter(u8 taskId) u8 i; const u8 *str; - if (gPartyMenu.unk_8_6 == 2) + if (gPartyMenu.chooseMonsBattleType == CHOOSE_MONS_FOR_UNION_ROOM_BATTLE) { maxBattlers = 2; - str = gUnknown_8416B3E; + str = gText_NoMoreThanTwoMayEnter; } else { maxBattlers = 3; - str = gUnknown_8416B16; + str = gText_NoMoreThanThreeMayEnter; } PartyMenuRemoveWindow(&sPartyMenuInternal->windowId[0]); PartyMenuRemoveWindow(&sPartyMenuInternal->windowId[1]); @@ -3820,7 +3797,7 @@ static void CursorCB_Enter(u8 taskId) static void MoveCursorToConfirm(void) { AnimatePartySlot(gPartyMenu.slotId, 0); - gPartyMenu.slotId = PARTY_SIZE; + gPartyMenu.slotId = SLOT_CONFIRM; AnimatePartySlot(gPartyMenu.slotId, 1); } @@ -3851,11 +3828,11 @@ static void CursorCB_NoEntry(u8 taskId) break; } } - DisplayPartyPokemonDescriptionText(PARTYBOX_DESC_ABLE_3, &sPartyMenuBoxes[gPartyMenu.slotId], 1); + DisplayPartyPokemonDescriptionText(PARTYBOX_DESC_ABLE_3, &sPartyMenuBoxes[gPartyMenu.slotId], DRAW_MENU_BOX_AND_TEXT); if (gSelectedOrderFromParty[0] != 0) - DisplayPartyPokemonDescriptionText(PARTYBOX_DESC_FIRST, &sPartyMenuBoxes[gSelectedOrderFromParty[0] - 1], 1); + DisplayPartyPokemonDescriptionText(PARTYBOX_DESC_FIRST, &sPartyMenuBoxes[gSelectedOrderFromParty[0] - 1], DRAW_MENU_BOX_AND_TEXT); if (gSelectedOrderFromParty[1] != 0) - DisplayPartyPokemonDescriptionText(1 + PARTYBOX_DESC_FIRST, &sPartyMenuBoxes[gSelectedOrderFromParty[1] - 1], 1); + DisplayPartyPokemonDescriptionText(PARTYBOX_DESC_SECOND, &sPartyMenuBoxes[gSelectedOrderFromParty[1] - 1], DRAW_MENU_BOX_AND_TEXT); DisplayPartyMenuStdMessage(PARTY_MSG_CHOOSE_MON); gTasks[taskId].func = Task_HandleChooseMonInput; } @@ -3927,7 +3904,7 @@ static void CursorCB_Trade2(u8 taskId) static void CursorCB_FieldMove(u8 taskId) { - u8 fieldMove = sPartyMenuInternal->actions[Menu_GetCursorPos()] - MENU_FIELD_MOVES; + u8 fieldMove = sPartyMenuInternal->actions[Menu_GetCursorPos()] - CURSOR_OPTION_FIELD_MOVES; const struct MapHeader *mapHeader; PlaySE(SE_SELECT); @@ -4023,7 +4000,7 @@ static void Task_HandleFieldMoveExitAreaYesNoInput(u8 taskId) { switch (Menu_ProcessInputNoWrapClearOnChoose()) { - case 0: + case 0: // Yes gPartyMenu.exitCallback = CB2_ReturnToField; SetUsedFieldMoveQuestLogEvent(&gPlayerParty[GetCursorSelectionMonId()], sPartyMenuInternal->data[0]); Task_ClosePartyMenu(taskId); @@ -4031,7 +4008,7 @@ static void Task_HandleFieldMoveExitAreaYesNoInput(u8 taskId) case MENU_B_PRESSED: PlaySE(SE_SELECT); // fallthrough - case 1: + case 1: // No gFieldCallback2 = NULL; gPostMenuFieldCallback = NULL; Task_ReturnToChooseMonAfterText(taskId); @@ -4289,31 +4266,28 @@ static void CB2_ReturnToBerryPouchMenu(void) InitBerryPouch(BERRYPOUCH_NA, NULL, 0xFF); } -static void sub_8124DC0(u8 taskId) +static void Task_DoUseItemAnim(u8 taskId) { - sPartyMenuInternal->exitCallback = sub_8124DE0; + sPartyMenuInternal->exitCallback = CB2_DoUseItemAnim; Task_ClosePartyMenu(taskId); } -static void sub_8124DE0(void) +static void CB2_DoUseItemAnim(void) { if (CheckIfItemIsTMHMOrEvolutionStone(gSpecialVar_ItemId) == 2) // Evolution stone { if (MonCanEvolve() == TRUE) - StartUseItemAnim_Normal(gPartyMenu.slotId, gSpecialVar_ItemId, sub_8126BD4); + StartUseItemAnim_Normal(gPartyMenu.slotId, gSpecialVar_ItemId, CB2_UseEvolutionStone); else StartUseItemAnim_CantEvolve(gPartyMenu.slotId, gSpecialVar_ItemId, gPartyMenu.exitCallback); } else - { - StartUseItemAnim_Normal(gPartyMenu.slotId, gSpecialVar_ItemId, sub_8124E48); - } + StartUseItemAnim_Normal(gPartyMenu.slotId, gSpecialVar_ItemId, CB2_UseItem); } -static void sub_8124E48(void) +static void CB2_UseItem(void) { - if (ItemId_GetPocket(gSpecialVar_ItemId) == POCKET_TM_CASE - && PSA_IsCancelDisabled() == TRUE) + if (ItemId_GetPocket(gSpecialVar_ItemId) == POCKET_TM_CASE && PSA_IsCancelDisabled() == TRUE) { GiveMoveToMon(&gPlayerParty[gPartyMenu.slotId], ItemIdToBattleMoveId(gSpecialVar_ItemId)); AdjustFriendship(&gPlayerParty[gPartyMenu.slotId], FRIENDSHIP_EVENT_LEARN_TMHM); @@ -4322,12 +4296,10 @@ static void sub_8124E48(void) SetMainCallback2(gPartyMenu.exitCallback); } else - { InitPartyMenu(gPartyMenu.menuType, KEEP_PARTY_LAYOUT, PARTY_ACTION_CHOOSE_MON, gPartyMenu.slotId, PARTY_MSG_NONE, Task_SetSacredAshCB, gPartyMenu.exitCallback); - } } -static void sub_8124EFC(void) +static void CB2_UseTMHMAfterForgettingMove(void) { if (PSA_IsCancelDisabled() == TRUE) { @@ -4344,9 +4316,7 @@ static void sub_8124EFC(void) SetMainCallback2(gPartyMenu.exitCallback); } else - { InitPartyMenu(gPartyMenu.menuType, KEEP_PARTY_LAYOUT, gPartyMenu.action, gPartyMenu.slotId, PARTY_MSG_NONE, Task_SetSacredAshCB, gPartyMenu.exitCallback); - } } static void Task_SetSacredAshCB(u8 taskId) @@ -4402,27 +4372,27 @@ static void GetMedicineItemEffectMessage(u16 item) StringExpandPlaceholders(gStringVar4, gText_PkmnBecameHealthy); break; case ITEM_EFFECT_HP_EV: - StringCopy(gStringVar2, gText_HP3); + StringCopy(gStringVar2, gText_ItemEffect_HP); StringExpandPlaceholders(gStringVar4, gText_PkmnBaseVar2StatIncreased); break; case ITEM_EFFECT_ATK_EV: - StringCopy(gStringVar2, gText_Attack3); + StringCopy(gStringVar2, gText_ItemEffect_Attack); StringExpandPlaceholders(gStringVar4, gText_PkmnBaseVar2StatIncreased); break; case ITEM_EFFECT_DEF_EV: - StringCopy(gStringVar2, gText_Defense3); + StringCopy(gStringVar2, gText_ItemEffect_Defense); StringExpandPlaceholders(gStringVar4, gText_PkmnBaseVar2StatIncreased); break; case ITEM_EFFECT_SPEED_EV: - StringCopy(gStringVar2, gText_Speed2); + StringCopy(gStringVar2, gText_ItemEffect_Speed); StringExpandPlaceholders(gStringVar4, gText_PkmnBaseVar2StatIncreased); break; case ITEM_EFFECT_SPATK_EV: - StringCopy(gStringVar2, gText_SpAtk3); + StringCopy(gStringVar2, gText_ItemEffect_SpAtk); StringExpandPlaceholders(gStringVar4, gText_PkmnBaseVar2StatIncreased); break; case ITEM_EFFECT_SPDEF_EV: - StringCopy(gStringVar2, gText_SpDef3); + StringCopy(gStringVar2, gText_ItemEffect_SpDef); StringExpandPlaceholders(gStringVar4, gText_PkmnBaseVar2StatIncreased); break; case ITEM_EFFECT_PP_UP: @@ -4492,7 +4462,7 @@ void ItemUseCB_Medicine(u8 taskId, TaskFunc func) else { ItemUse_SetQuestLogEvent(QL_EVENT_USED_ITEM, mon, item, 0xFFFF); - sub_8124DC0(taskId); + Task_DoUseItemAnim(taskId); gItemUseCB = ItemUseCB_MedicineStep; } } @@ -4503,8 +4473,11 @@ void ItemUseCB_MedicineStep(u8 taskId, TaskFunc func) struct Pokemon *mon = &gPlayerParty[gPartyMenu.slotId]; u16 item = gSpecialVar_ItemId; bool8 canHeal; + bool8 cannotHeal; - if (NotUsingHPEVItemOnShedinja(mon, item)) + if (NotUsingHPEVItemOnShedinja(mon, item) == FALSE) + cannotHeal = TRUE; + else { canHeal = IsHPRecoveryItem(item); if (canHeal == TRUE) @@ -4513,51 +4486,49 @@ void ItemUseCB_MedicineStep(u8 taskId, TaskFunc func) if (hp == GetMonData(mon, MON_DATA_MAX_HP)) canHeal = FALSE; } - if (ExecuteTableBasedItemEffect_(gPartyMenu.slotId, item, 0)) - { - WONT_HAVE_EFFECT: - gPartyMenuUseExitCallback = FALSE; - PlaySE(SE_SELECT); - DisplayPartyMenuMessage(gText_WontHaveEffect, TRUE); - ScheduleBgCopyTilemapToVram(2); - gTasks[taskId].func = func; - return; - } + + cannotHeal = ExecuteTableBasedItemEffect_(gPartyMenu.slotId, item, 0); } - else + + if (cannotHeal != FALSE) { - goto WONT_HAVE_EFFECT; // even loop wrap won't work - } - gPartyMenuUseExitCallback = TRUE; - if (!IsItemFlute(item)) - { - PlaySE(SE_USE_ITEM); - if (gPartyMenu.action != PARTY_ACTION_REUSABLE_ITEM) - RemoveBagItem(item, 1); - } - else - { - PlaySE(SE_GLASS_FLUTE); - } - SetPartyMonAilmentGfx(mon, &sPartyMenuBoxes[gPartyMenu.slotId]); - if (gSprites[sPartyMenuBoxes[gPartyMenu.slotId].statusSpriteId].invisible) - DisplayPartyPokemonLevelCheck(mon, &sPartyMenuBoxes[gPartyMenu.slotId], 1); - if (canHeal == TRUE) - { - if (hp == 0) - AnimatePartySlot(gPartyMenu.slotId, 1); - PartyMenuModifyHP(taskId, gPartyMenu.slotId, 1, GetMonData(mon, MON_DATA_HP) - hp, Task_DisplayHPRestoredMessage); - ResetHPTaskData(taskId, 0, hp); - return; - } - else - { - GetMonNickname(mon, gStringVar1); - GetMedicineItemEffectMessage(item); - DisplayPartyMenuMessage(gStringVar4, TRUE); + gPartyMenuUseExitCallback = FALSE; + PlaySE(SE_SELECT); + DisplayPartyMenuMessage(gText_WontHaveEffect, TRUE); ScheduleBgCopyTilemapToVram(2); gTasks[taskId].func = func; } + else + { + gPartyMenuUseExitCallback = TRUE; + if (!IsItemFlute(item)) + { + PlaySE(SE_USE_ITEM); + if (gPartyMenu.action != PARTY_ACTION_REUSABLE_ITEM) + RemoveBagItem(item, 1); + } + else + PlaySE(SE_GLASS_FLUTE); + + SetPartyMonAilmentGfx(mon, &sPartyMenuBoxes[gPartyMenu.slotId]); + if (gSprites[sPartyMenuBoxes[gPartyMenu.slotId].statusSpriteId].invisible) + DisplayPartyPokemonLevelCheck(mon, &sPartyMenuBoxes[gPartyMenu.slotId], 1); + if (canHeal == TRUE) + { + if (hp == 0) + AnimatePartySlot(gPartyMenu.slotId, 1); + PartyMenuModifyHP(taskId, gPartyMenu.slotId, 1, GetMonData(mon, MON_DATA_HP) - hp, Task_DisplayHPRestoredMessage); + ResetHPTaskData(taskId, 0, hp); + } + else + { + GetMonNickname(mon, gStringVar1); + GetMedicineItemEffectMessage(item); + DisplayPartyMenuMessage(gStringVar4, TRUE); + ScheduleBgCopyTilemapToVram(2); + gTasks[taskId].func = func; + } + } } static void Task_DisplayHPRestoredMessage(u8 taskId) @@ -4605,7 +4576,7 @@ static void ShowMoveSelectWindow(u8 slot) ScheduleBgCopyTilemapToVram(2); } -static void Task_HandleWhichMoveInput(u8 taskId) +static void Task_HandleRestoreWhichMoveInput(u8 taskId) { s8 input = Menu_ProcessInput(); @@ -4617,13 +4588,13 @@ static void Task_HandleWhichMoveInput(u8 taskId) ReturnToUseOnWhichMon(taskId); } else - { SetSelectedMoveForPPItem(taskId); - } } } -void ItemUseCB_PPRecovery(u8 taskId, UNUSED TaskFunc func) +#define ppMoveSlot data[0] + +void ItemUseCB_TryRestorePP(u8 taskId, TaskFunc func) { const u8 *effect; u16 item = gSpecialVar_ItemId; @@ -4635,29 +4606,29 @@ void ItemUseCB_PPRecovery(u8 taskId, UNUSED TaskFunc func) if (!(effect[4] & ITEM4_HEAL_PP_ONE)) { - gPartyMenu.data1 = 0; + gPartyMenu.ppMoveSlot = 0; if (gPartyMenu.menuType == PARTY_MENU_TYPE_IN_BATTLE) - TryUsePPItem(taskId); + TryUsePPItemInBattle(taskId); else - sub_812580C(taskId); + TryUsePPItemOutsideBattle(taskId); } else { PlaySE(SE_SELECT); DisplayPartyMenuStdMessage(PARTY_MSG_RESTORE_WHICH_MOVE); ShowMoveSelectWindow(gPartyMenu.slotId); - gTasks[taskId].func = Task_HandleWhichMoveInput; + gTasks[taskId].func = Task_HandleRestoreWhichMoveInput; } } static void SetSelectedMoveForPPItem(u8 taskId) { PartyMenuRemoveWindow(&sPartyMenuInternal->windowId[0]); - gPartyMenu.data1 = Menu_GetCursorPos(); + gPartyMenu.ppMoveSlot = Menu_GetCursorPos(); if (gPartyMenu.menuType == PARTY_MENU_TYPE_IN_BATTLE) - TryUsePPItem(taskId); + TryUsePPItemInBattle(taskId); else - sub_812580C(taskId); + TryUsePPItemOutsideBattle(taskId); } static void ReturnToUseOnWhichMon(u8 taskId) @@ -4668,12 +4639,12 @@ static void ReturnToUseOnWhichMon(u8 taskId) DisplayPartyMenuStdMessage(PARTY_MSG_USE_ON_WHICH_MON); } -static void sub_812580C(u8 taskId) +static void TryUsePPItemOutsideBattle(u8 taskId) { bool8 noEffect = PokemonItemUseNoEffect(&gPlayerParty[gPartyMenu.slotId], gSpecialVar_ItemId, gPartyMenu.slotId, - gPartyMenu.data1); + gPartyMenu.ppMoveSlot); PlaySE(SE_SELECT); if (noEffect) { @@ -4684,22 +4655,22 @@ static void sub_812580C(u8 taskId) } else { - sub_8124DC0(taskId); - gItemUseCB = sub_8125898; + Task_DoUseItemAnim(taskId); + gItemUseCB = ItemUseCB_RestorePP; } } -static void sub_8125898(u8 taskId, UNUSED TaskFunc func) +static void ItemUseCB_RestorePP(u8 taskId, TaskFunc func) { u16 move; struct Pokemon *mon = &gPlayerParty[gPartyMenu.slotId]; - ExecuteTableBasedItemEffect_(gPartyMenu.slotId, gSpecialVar_ItemId, (u8)gPartyMenu.data1); + ExecuteTableBasedItemEffect_(gPartyMenu.slotId, gSpecialVar_ItemId, (u8)gPartyMenu.ppMoveSlot); gPartyMenuUseExitCallback = TRUE; ItemUse_SetQuestLogEvent(QL_EVENT_USED_ITEM, mon, gSpecialVar_ItemId, 0xFFFF); PlaySE(SE_USE_ITEM); RemoveBagItem(gSpecialVar_ItemId, 1); - move = GetMonData(mon, gPartyMenu.data1 + MON_DATA_MOVE1); + move = GetMonData(mon, gPartyMenu.ppMoveSlot + MON_DATA_MOVE1); StringCopy(gStringVar1, gMoveNames[move]); GetMedicineItemEffectMessage(gSpecialVar_ItemId); DisplayPartyMenuMessage(gStringVar4, 1); @@ -4707,10 +4678,10 @@ static void sub_8125898(u8 taskId, UNUSED TaskFunc func) gTasks[taskId].func = Task_ClosePartyMenuAfterText; } -static void TryUsePPItem(u8 taskId) +static void TryUsePPItemInBattle(u8 taskId) { u16 move = MOVE_NONE; - s16 *moveSlot = &gPartyMenu.data1; + s16 *moveSlot = &gPartyMenu.ppMoveSlot; u16 item = gSpecialVar_ItemId; struct PartyMenu *ptr = &gPartyMenu; struct Pokemon *mon; @@ -4739,12 +4710,14 @@ static void TryUsePPItem(u8 taskId) } } -void ItemUseCB_PPUp(u8 taskId, UNUSED TaskFunc func) +#undef ppMoveSlot + +void ItemUseCB_PPUp(u8 taskId, TaskFunc func) { PlaySE(SE_SELECT); DisplayPartyMenuStdMessage(PARTY_MSG_BOOST_PP_WHICH_MOVE); ShowMoveSelectWindow(gPartyMenu.slotId); - gTasks[taskId].func = Task_HandleWhichMoveInput; + gTasks[taskId].func = Task_HandleRestoreWhichMoveInput; } u16 ItemIdToBattleMoveId(u16 item) @@ -4789,20 +4762,23 @@ static void DisplayLearnMoveMessageAndClose(u8 taskId, const u8 *str) gTasks[taskId].func = Task_ClosePartyMenuAfterText; } -void ItemUseCB_TMHM(u8 taskId, UNUSED TaskFunc func) +#define learnMoveId data[0] +#define learnMoveMethod data[1] + +void ItemUseCB_TMHM(u8 taskId, TaskFunc func) { struct Pokemon *mon; - s16 *move; + s16 *data; u16 item; PlaySE(SE_SELECT); mon = &gPlayerParty[gPartyMenu.slotId]; - move = &gPartyMenu.data1; + data = gPartyMenu.data; item = gSpecialVar_ItemId; GetMonNickname(mon, gStringVar1); - move[0] = ItemIdToBattleMoveId(item); - StringCopy(gStringVar2, gMoveNames[move[0]]); - move[1] = 0; + learnMoveId = ItemIdToBattleMoveId(item); + StringCopy(gStringVar2, gMoveNames[learnMoveId]); + learnMoveMethod = LEARN_VIA_TMHM; switch (CanMonLearnTMTutor(mon, item, 0)) { case CANNOT_LEARN_MOVE: @@ -4812,10 +4788,10 @@ void ItemUseCB_TMHM(u8 taskId, UNUSED TaskFunc func) DisplayLearnMoveMessageAndClose(taskId, gText_PkmnAlreadyKnows); return; } - if (GiveMoveToMon(mon, move[0]) != MON_HAS_MAX_MOVES) + if (GiveMoveToMon(mon, learnMoveId) != MON_HAS_MAX_MOVES) { ItemUse_SetQuestLogEvent(QL_EVENT_USED_ITEM, mon, item, 0xFFFF); - sub_8124DC0(taskId); + Task_DoUseItemAnim(taskId); gItemUseCB = ItemUseCB_LearnedMove; } else @@ -4825,7 +4801,7 @@ void ItemUseCB_TMHM(u8 taskId, UNUSED TaskFunc func) } } -static void ItemUseCB_LearnedMove(u8 taskId, UNUSED TaskFunc func) +static void ItemUseCB_LearnedMove(u8 taskId, TaskFunc func) { Task_LearnedMove(taskId); } @@ -4833,17 +4809,17 @@ static void ItemUseCB_LearnedMove(u8 taskId, UNUSED TaskFunc func) static void Task_LearnedMove(u8 taskId) { struct Pokemon *mon = &gPlayerParty[gPartyMenu.slotId]; - s16 *move = &gPartyMenu.data1; + s16 *data = gPartyMenu.data; u16 item = gSpecialVar_ItemId; - if (move[1] == 0) + if (learnMoveMethod == LEARN_VIA_TMHM) { AdjustFriendship(mon, FRIENDSHIP_EVENT_LEARN_TMHM); - if (item < ITEM_HM01_CUT) + if (item <= ITEM_TM50) RemoveBagItem(item, 1); } GetMonNickname(mon, gStringVar1); - StringCopy(gStringVar2, gMoveNames[move[0]]); + StringCopy(gStringVar2, gMoveNames[learnMoveId]); StringExpandPlaceholders(gStringVar4, gText_PkmnLearnedMove3); DisplayPartyMenuMessage(gStringVar4, TRUE); ScheduleBgCopyTilemapToVram(2); @@ -4863,11 +4839,11 @@ static void Task_LearnNextMoveOrClosePartyMenu(u8 taskId) { if (IsFanfareTaskInactive() && ((gMain.newKeys & A_BUTTON) || (gMain.newKeys & B_BUTTON))) { - if (gPartyMenu.learnMoveState == 1) + if (gPartyMenu.learnMoveMethod == LEARN_VIA_LEVEL_UP) Task_TryLearningNextMove(taskId); else { - if (gPartyMenu.learnMoveState == 2) // never occurs + if (gPartyMenu.learnMoveMethod == LEARN_VIA_TUTOR) gSpecialVar_Result = TRUE; Task_ClosePartyMenu(taskId); } @@ -4887,14 +4863,14 @@ static void Task_HandleReplaceMoveYesNoInput(u8 taskId) { switch (Menu_ProcessInputNoWrapClearOnChoose()) { - case 0: + case 0: // Yes DisplayPartyMenuMessage(gText_WhichMoveToForget, TRUE); gTasks[taskId].func = Task_ShowSummaryScreenToForgetMove; break; case MENU_B_PRESSED: PlaySE(SE_SELECT); // fallthrough - case 1: + case 1: // No StopLearningMovePrompt(taskId); break; } @@ -4911,26 +4887,24 @@ static void Task_ShowSummaryScreenToForgetMove(u8 taskId) static void CB2_ShowSummaryScreenToForgetMove(void) { - ShowSelectMovePokemonSummaryScreen(gPlayerParty, gPartyMenu.slotId, gPlayerPartyCount - 1, CB2_ReturnToPartyMenuWhileLearningMove, gPartyMenu.data1); + ShowSelectMovePokemonSummaryScreen(gPlayerParty, gPartyMenu.slotId, gPlayerPartyCount - 1, CB2_ReturnToPartyMenuWhileLearningMove, gPartyMenu.learnMoveId); } static void CB2_ReturnToPartyMenuWhileLearningMove(void) { u8 moveIdx = GetMoveSlotToReplace(); u16 move; - s32 learnMoveState = gPartyMenu.learnMoveState; + s32 learnMethod = gPartyMenu.learnMoveMethod; - if (learnMoveState == 0 && moveIdx != MAX_MON_MOVES) + if (learnMethod == LEARN_VIA_TMHM && moveIdx != MAX_MON_MOVES) { move = GetMonData(&gPlayerParty[gPartyMenu.slotId], moveIdx + MON_DATA_MOVE1); - StartUseItemAnim_ForgetMoveAndLearnTMorHM(gPartyMenu.slotId, gSpecialVar_ItemId, move, sub_8124EFC); - gItemUseCB = sub_8125F4C; - gPartyMenu.action = learnMoveState; + StartUseItemAnim_ForgetMoveAndLearnTMorHM(gPartyMenu.slotId, gSpecialVar_ItemId, move, CB2_UseTMHMAfterForgettingMove); + gItemUseCB = ItemUseCB_ReplaceMoveWithTMHM; + gPartyMenu.action = PARTY_ACTION_CHOOSE_MON; } else - { InitPartyMenu(PARTY_MENU_TYPE_FIELD, PARTY_LAYOUT_SINGLE, PARTY_ACTION_CHOOSE_MON, TRUE, PARTY_MSG_NONE, Task_ReturnToPartyMenuWhileLearningMove, gPartyMenu.exitCallback); - } } static void Task_ReturnToPartyMenuWhileLearningMove(u8 taskId) @@ -4944,12 +4918,12 @@ static void Task_ReturnToPartyMenuWhileLearningMove(u8 taskId) } } -static void sub_8125F4C(u8 taskId, UNUSED TaskFunc func) +static void ItemUseCB_ReplaceMoveWithTMHM(u8 taskId, TaskFunc func) { - sub_8125F5C(taskId); + Task_ReplaceMoveWithTMHM(taskId); } -static void sub_8125F5C(u8 taskId) +static void Task_ReplaceMoveWithTMHM(u8 taskId) { struct Pokemon *mon = &gPlayerParty[gPartyMenu.slotId]; u8 moveIdx = GetMoveSlotToReplace(); @@ -4959,7 +4933,7 @@ static void sub_8125F5C(u8 taskId) GetMonNickname(mon, gStringVar1); StringCopy(gStringVar2, gMoveNames[move]); RemoveMonPPBonus(mon, moveIdx); - SetMonMoveSlot(mon, gPartyMenu.data1, moveIdx); + SetMonMoveSlot(mon, gPartyMenu.learnMoveId, moveIdx); Task_LearnedMove(taskId); } @@ -4983,7 +4957,7 @@ static void Task_PartyMenuReplaceMove(u8 taskId) { mon = &gPlayerParty[gPartyMenu.slotId]; RemoveMonPPBonus(mon, GetMoveSlotToReplace()); - move = gPartyMenu.data1; + move = gPartyMenu.learnMoveId; SetMonMoveSlot(mon, move, GetMoveSlotToReplace()); Task_LearnedMove(taskId); } @@ -4991,7 +4965,7 @@ static void Task_PartyMenuReplaceMove(u8 taskId) static void StopLearningMovePrompt(u8 taskId) { - StringCopy(gStringVar2, gMoveNames[gPartyMenu.data1]); + StringCopy(gStringVar2, gMoveNames[gPartyMenu.learnMoveId]); StringExpandPlaceholders(gStringVar4, gText_StopLearningMove2); DisplayPartyMenuMessage(gStringVar4, TRUE); ScheduleBgCopyTilemapToVram(2); @@ -5013,18 +4987,18 @@ static void Task_HandleStopLearningMoveYesNoInput(u8 taskId) switch (Menu_ProcessInputNoWrapClearOnChoose()) { - case 0: + case 0: // Yes GetMonNickname(mon, gStringVar1); - StringCopy(gStringVar2, gMoveNames[gPartyMenu.data1]); + StringCopy(gStringVar2, gMoveNames[gPartyMenu.learnMoveId]); StringExpandPlaceholders(gStringVar4, gText_MoveNotLearned); DisplayPartyMenuMessage(gStringVar4, TRUE); - if (gPartyMenu.learnMoveState == 1) + if (gPartyMenu.learnMoveMethod == LEARN_VIA_LEVEL_UP) { gTasks[taskId].func = Task_TryLearningNextMoveAfterText; } else { - if (gPartyMenu.learnMoveState == 2) // never occurs + if (gPartyMenu.learnMoveMethod == LEARN_VIA_TUTOR) gSpecialVar_Result = FALSE; gTasks[taskId].func = Task_ClosePartyMenuAfterText; } @@ -5032,9 +5006,9 @@ static void Task_HandleStopLearningMoveYesNoInput(u8 taskId) case MENU_B_PRESSED: PlaySE(SE_SELECT); // fallthrough - case 1: + case 1: // No GetMonNickname(mon, gStringVar1); - StringCopy(gStringVar2, gMoveNames[gPartyMenu.data1]); + StringCopy(gStringVar2, gMoveNames[gPartyMenu.learnMoveId]); DisplayLearnMoveMessage(gText_PkmnNeedsToReplaceMove); gTasks[taskId].func = Task_ReplaceMoveYesNo; break; @@ -5067,12 +5041,12 @@ void ItemUseCB_RareCandy(u8 taskId, TaskFunc func) } else { - sub_8124DC0(taskId); + Task_DoUseItemAnim(taskId); gItemUseCB = ItemUseCB_RareCandyStep; } } -static void ItemUseCB_RareCandyStep(u8 taskId, UNUSED TaskFunc func) +static void ItemUseCB_RareCandyStep(u8 taskId, TaskFunc func) { struct Pokemon *mon = &gPlayerParty[gPartyMenu.slotId]; struct PartyMenuInternal *ptr = sPartyMenuInternal; @@ -5100,9 +5074,9 @@ static void UpdateMonDisplayInfoAfterRareCandy(u8 slot, struct Pokemon *mon) { SetPartyMonAilmentGfx(mon, &sPartyMenuBoxes[slot]); if (gSprites[sPartyMenuBoxes[slot].statusSpriteId].invisible) - DisplayPartyPokemonLevelCheck(mon, &sPartyMenuBoxes[slot], 1); - DisplayPartyPokemonHPCheck(mon, &sPartyMenuBoxes[slot], 1); - DisplayPartyPokemonMaxHPCheck(mon, &sPartyMenuBoxes[slot], 1); + DisplayPartyPokemonLevelCheck(mon, &sPartyMenuBoxes[slot], DRAW_MENU_BOX_AND_TEXT); + DisplayPartyPokemonHPCheck(mon, &sPartyMenuBoxes[slot], DRAW_MENU_BOX_AND_TEXT); + DisplayPartyPokemonMaxHPCheck(mon, &sPartyMenuBoxes[slot], DRAW_MENU_BOX_AND_TEXT); DisplayPartyPokemonHPBarCheck(mon, &sPartyMenuBoxes[slot]); UpdatePartyMonHPBar(sPartyMenuBoxes[slot].monSpriteId, mon); AnimatePartySlot(slot, 1); @@ -5152,14 +5126,14 @@ static void Task_TryLearnNewMoves(u8 taskId) { u16 learnMove; - if (WaitFanfare(0) && (JOY_NEW(A_BUTTON) || JOY_NEW(B_BUTTON))) + if (WaitFanfare(FALSE) && (JOY_NEW(A_BUTTON) || JOY_NEW(B_BUTTON))) { RemoveLevelUpStatsWindow(); learnMove = MonTryLearningNewMove(&gPlayerParty[gPartyMenu.slotId], TRUE); - gPartyMenu.learnMoveState = 1; + gPartyMenu.learnMoveMethod = LEARN_VIA_LEVEL_UP; switch (learnMove) { - case 0: // No moves to learn + case MOVE_NONE: // No moves to learn PartyMenuTryEvolution(taskId); break; case MON_HAS_MAX_MOVES: @@ -5181,7 +5155,7 @@ static void Task_TryLearningNextMove(u8 taskId) switch (result) { - case 0: // No moves to learn + case MOVE_NONE: // No moves to learn PartyMenuTryEvolution(taskId); break; case MON_HAS_MAX_MOVES: @@ -5198,19 +5172,17 @@ static void Task_TryLearningNextMove(u8 taskId) static void PartyMenuTryEvolution(u8 taskId) { struct Pokemon *mon = &gPlayerParty[gPartyMenu.slotId]; - u16 targetSpecies = GetEvolutionTargetSpecies(mon, EVO_MODE_NORMAL, 0); + u16 targetSpecies = GetEvolutionTargetSpecies(mon, EVO_MODE_NORMAL, ITEM_NONE); if (targetSpecies != SPECIES_NONE) { FreePartyPointers(); gCB2_AfterEvolution = gPartyMenu.exitCallback; - BeginEvolutionScene(mon, targetSpecies, 1, gPartyMenu.slotId); + BeginEvolutionScene(mon, targetSpecies, TRUE, gPartyMenu.slotId); DestroyTask(taskId); } else - { gTasks[taskId].func = Task_ClosePartyMenuAfterText; - } } static void DisplayMonNeedsToReplaceMove(u8 taskId) @@ -5220,7 +5192,7 @@ static void DisplayMonNeedsToReplaceMove(u8 taskId) StringExpandPlaceholders(gStringVar4, gText_PkmnNeedsToReplaceMove); DisplayPartyMenuMessage(gStringVar4, TRUE); ScheduleBgCopyTilemapToVram(2); - gPartyMenu.data1 = gMoveToLearn; + gPartyMenu.learnMoveId = gMoveToLearn; gTasks[taskId].func = Task_ReplaceMoveYesNo; } @@ -5231,7 +5203,7 @@ static void DisplayMonLearnedMove(u8 taskId, u16 move) StringExpandPlaceholders(gStringVar4, gText_PkmnLearnedMove3); DisplayPartyMenuMessage(gStringVar4, TRUE); ScheduleBgCopyTilemapToVram(2); - gPartyMenu.data1 = move; + gPartyMenu.learnMoveId = move; gTasks[taskId].func = Task_DoLearnedMoveFanfareAfterText; } @@ -5239,7 +5211,7 @@ static void DisplayMonLearnedMove(u8 taskId, u16 move) #define tHadEffect data[1] #define tLastSlotUsed data[2] -void ItemUseCB_SacredAsh(u8 taskId, UNUSED TaskFunc func) +void ItemUseCB_SacredAsh(u8 taskId, TaskFunc func) { sPartyMenuInternal->tUsedOnSlot = FALSE; sPartyMenuInternal->tHadEffect = FALSE; @@ -5268,7 +5240,7 @@ static void UseSacredAsh(u8 taskId) sSacredAshQuestLogMonBackup = mon; SetPartyMonAilmentGfx(mon, &sPartyMenuBoxes[gPartyMenu.slotId]); if (gSprites[sPartyMenuBoxes[gPartyMenu.slotId].statusSpriteId].invisible) - DisplayPartyPokemonLevelCheck(mon, &sPartyMenuBoxes[gPartyMenu.slotId], 1); + DisplayPartyPokemonLevelCheck(mon, &sPartyMenuBoxes[gPartyMenu.slotId], DRAW_MENU_BOX_AND_TEXT); AnimatePartySlot(sPartyMenuInternal->tLastSlotUsed, 0); AnimatePartySlot(gPartyMenu.slotId, 1); PartyMenuModifyHP(taskId, gPartyMenu.slotId, 1, GetMonData(mon, MON_DATA_HP) - hp, Task_SacredAshDisplayHPRestored); @@ -5338,12 +5310,10 @@ void ItemUseCB_EvolutionStone(u8 taskId, TaskFunc func) gTasks[taskId].func = func; } else - { - sub_8124DC0(taskId); - } + Task_DoUseItemAnim(taskId); } -static void sub_8126BD4(void) +static void CB2_UseEvolutionStone(void) { gCB2_AfterEvolution = gPartyMenu.exitCallback; ExecuteTableBasedItemEffect_(gPartyMenu.slotId, gSpecialVar_ItemId, 0); @@ -5427,16 +5397,16 @@ u8 GetItemEffectType(u16 item) static void TryTutorSelectedMon(u8 taskId) { struct Pokemon *mon; - s16 *move; + s16 *data; if (!gPaletteFade.active) { mon = &gPlayerParty[gPartyMenu.slotId]; - move = &gPartyMenu.data1; + data = gPartyMenu.data; GetMonNickname(mon, gStringVar1); - gPartyMenu.data1 = GetTutorMove(gSpecialVar_0x8005); - StringCopy(gStringVar2, gMoveNames[gPartyMenu.data1]); - move[1] = 2; + gPartyMenu.learnMoveId = GetTutorMove(gSpecialVar_0x8005); + StringCopy(gStringVar2, gMoveNames[gPartyMenu.learnMoveId]); + learnMoveMethod = LEARN_VIA_TUTOR; switch (CanMonLearnTMTutor(mon, 0, gSpecialVar_0x8005)) { case CANNOT_LEARN_MOVE: @@ -5446,7 +5416,7 @@ static void TryTutorSelectedMon(u8 taskId) DisplayLearnMoveMessageAndClose(taskId, gText_PkmnAlreadyKnows); return; default: - if (GiveMoveToMon(mon, gPartyMenu.data1) != MON_HAS_MAX_MOVES) + if (GiveMoveToMon(mon, gPartyMenu.learnMoveId) != MON_HAS_MAX_MOVES) { Task_LearnedMove(taskId); return; @@ -5458,6 +5428,9 @@ static void TryTutorSelectedMon(u8 taskId) } } +#undef learnMoveId +#undef learnMoveMethod + void CB2_PartyMenuFromStartMenu(void) { InitPartyMenu(PARTY_MENU_TYPE_FIELD, PARTY_LAYOUT_SINGLE, PARTY_ACTION_CHOOSE_MON, FALSE, PARTY_MSG_CHOOSE_MON, Task_HandleChooseMonInput, CB2_ReturnToFieldWithOpenMenu); @@ -5681,12 +5654,12 @@ static void TryGiveMailToSelectedMon(u8 taskId) gTasks[taskId].func = Task_UpdateHeldItemSpriteAndClosePartyMenu; } -void InitChooseHalfPartyForBattle(u8 a1) +void InitChooseMonsForBattle(u8 chooseMonsBattleType) { ClearSelectedPartyOrder(); - InitPartyMenu(PARTY_MENU_TYPE_CHOOSE_HALF, PARTY_LAYOUT_SINGLE, PARTY_ACTION_CHOOSE_MON, FALSE, PARTY_MSG_CHOOSE_MON, Task_HandleChooseMonInput, gMain.savedCallback); - gPartyMenu.unk_8_6 = a1; - gPartyMenu.task = Task_ValidateChosenHalfParty; + InitPartyMenu(PARTY_MENU_TYPE_CHOOSE_MULTIPLE_MONS, PARTY_LAYOUT_SINGLE, PARTY_ACTION_CHOOSE_MON, FALSE, PARTY_MSG_CHOOSE_MON, Task_HandleChooseMonInput, gMain.savedCallback); + gPartyMenu.chooseMonsBattleType = chooseMonsBattleType; + gPartyMenu.task = Task_ValidateChosenMonsForBattle; } void ClearSelectedPartyOrder(void) @@ -5697,10 +5670,11 @@ void ClearSelectedPartyOrder(void) static u8 GetPartySlotEntryStatus(s8 slot) { if (GetBattleEntryEligibility(&gPlayerParty[slot]) == FALSE) - return 2; - if (HasPartySlotAlreadyBeenSelected(slot + 1) == TRUE) - return 1; - return 0; + return 2; // Not eligible + else if (HasPartySlotAlreadyBeenSelected(slot + 1) == TRUE) + return 1; // Already selected + else + return 0; // Eligible, not selected } static bool8 GetBattleEntryEligibility(struct Pokemon *mon) @@ -5710,17 +5684,17 @@ static bool8 GetBattleEntryEligibility(struct Pokemon *mon) if (GetMonData(mon, MON_DATA_IS_EGG)) return FALSE; - switch (gPartyMenu.unk_8_6) + switch (gPartyMenu.chooseMonsBattleType) { default: if (GetMonData(mon, MON_DATA_LEVEL) > 30) return FALSE; break; - case 0: + case CHOOSE_MONS_FOR_CABLE_CLUB_BATTLE: if (GetMonData(mon, MON_DATA_HP) == 0) return FALSE; break; - case 1: + case CHOOSE_MONS_FOR_BATTLE_TOWER: if (gSaveBlock2Ptr->battleTower.battleTowerLevelType == 0 // level 50 && GetMonData(mon, MON_DATA_LEVEL) > 50) return FALSE; @@ -5739,9 +5713,9 @@ static u8 CheckBattleEntriesAndGetMessage(void) struct Pokemon *party = gPlayerParty; u8 *order = gSelectedOrderFromParty; - switch (gPartyMenu.unk_8_6) + switch (gPartyMenu.chooseMonsBattleType) { - case 1: + case CHOOSE_MONS_FOR_BATTLE_TOWER: if (order[2] == 0) return PARTY_MSG_THREE_MONS_ARE_NEEDED; for (i = 0; i < 2; ++i) @@ -5757,7 +5731,7 @@ static u8 CheckBattleEntriesAndGetMessage(void) } } break; - case 2: + case CHOOSE_MONS_FOR_UNION_ROOM_BATTLE: if (order[1] == 0) return PARTY_MSG_TWO_MONS_ARE_NEEDED; break; @@ -5775,7 +5749,7 @@ static bool8 HasPartySlotAlreadyBeenSelected(u8 slot) return FALSE; } -static void Task_ValidateChosenHalfParty(u8 taskId) +static void Task_ValidateChosenMonsForBattle(u8 taskId) { u8 msgId = CheckBattleEntriesAndGetMessage(); @@ -5783,7 +5757,7 @@ static void Task_ValidateChosenHalfParty(u8 taskId) { PlaySE(SE_FAILURE); DisplayPartyMenuStdMessage(msgId); - gTasks[taskId].func = Task_ContinueChoosingHalfParty; + gTasks[taskId].func = Task_ContinueChoosingMonsForBattle; } else { @@ -5796,12 +5770,12 @@ static void Task_ValidateChosenHalfParty(u8 taskId) { PlaySE(SE_FAILURE); DisplayPartyMenuStdMessage(PARTY_MSG_NO_MON_FOR_BATTLE); - gTasks[taskId].func = Task_ContinueChoosingHalfParty; + gTasks[taskId].func = Task_ContinueChoosingMonsForBattle; } } } -static void Task_ContinueChoosingHalfParty(u8 taskId) +static void Task_ContinueChoosingMonsForBattle(u8 taskId) { if (JOY_NEW(A_BUTTON) || JOY_NEW(B_BUTTON)) { @@ -6368,7 +6342,7 @@ static void Task_PartyMenuWaitForFade(u8 taskId) if (IsWeatherNotFadingIn()) { DestroyTask(taskId); - ScriptContext2_Disable(); - EnableBothScriptContexts(); + UnlockPlayerFieldControls(); + ScriptContext_Enable(); } } diff --git a/src/party_menu_specials.c b/src/party_menu_specials.c index aaa066980..567f6b860 100644 --- a/src/party_menu_specials.c +++ b/src/party_menu_specials.c @@ -9,15 +9,15 @@ #include "event_data.h" #include "constants/moves.h" -static void sub_80BF97C(u8 taskId); +static void Task_ChoosePartyMon(u8 taskId); void ChoosePartyMon(void) { u8 taskId; - ScriptContext2_Enable(); - taskId = CreateTask(sub_80BF97C, 10); - gTasks[taskId].data[0] = PARTY_MENU_TYPE_CHOOSE_MON; + LockPlayerFieldControls(); + taskId = CreateTask(Task_ChoosePartyMon, 10); + gTasks[taskId].data[0] = PARTY_MENU_TYPE_CHOOSE_SINGLE_MON; BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_BLACK); } @@ -25,13 +25,13 @@ void SelectMoveTutorMon(void) { u8 taskId; - ScriptContext2_Enable(); - taskId = CreateTask(sub_80BF97C, 10); + LockPlayerFieldControls(); + taskId = CreateTask(Task_ChoosePartyMon, 10); gTasks[taskId].data[0] = PARTY_MENU_TYPE_MOVE_RELEARNER; BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_BLACK); } -static void sub_80BF97C(u8 taskId) +static void Task_ChoosePartyMon(u8 taskId) { if (!gPaletteFade.active) { diff --git a/src/pc_screen_effect.c b/src/pc_screen_effect.c index 99a73d427..e7303a030 100644 --- a/src/pc_screen_effect.c +++ b/src/pc_screen_effect.c @@ -16,7 +16,7 @@ #define tBldCntBak data[7] #define tBldYBak data[8] -static void BeginPCScreenEffect(TaskFunc func, u16 a2, UNUSED u16 a3, u8 priority); +static void BeginPCScreenEffect(TaskFunc func, u16 a2, u16 a3, u8 priority); static void Task_PCScreenEffect_TurnOn(u8 taskId); static void Task_PCScreenEffect_TurnOff(u8 taskId); @@ -40,7 +40,7 @@ bool8 IsPCScreenEffectRunning_TurnOff(void) return FuncIsActiveTask(Task_PCScreenEffect_TurnOff); } -static void BeginPCScreenEffect(TaskFunc func, u16 speed, UNUSED u16 unused, u8 priority) +static void BeginPCScreenEffect(TaskFunc func, u16 speed, u16 unused, u8 priority) { u8 taskId = CreateTask(func, priority); diff --git a/src/player_pc.c b/src/player_pc.c index a150828b3..9428fb026 100644 --- a/src/player_pc.c +++ b/src/player_pc.c @@ -88,8 +88,8 @@ static const struct MenuAction sMenuActions_TopMenu[] = { {gText_TurnOff, Task_PlayerPcTurnOff} }; -static const u8 gUnknown_8402200[] = { 0, 1, 2 }; -static const u8 gUnknown_8402203[] = { 0, 1, 2 }; +static const u8 sItemOrder_BedroomPC[] = { 0, 1, 2 }; +static const u8 sItemOrder_PlayerPC[] = { 0, 1, 2 }; static const struct MenuAction sMenuActions_ItemPc[] = { {gText_WithdrawItem2, Task_PlayerPcWithdrawItem}, @@ -154,7 +154,7 @@ void BedroomPC(void) gPlayerPcMenuManager.notInRoom = FALSE; BackupHelpContext(); - sItemOrder = gUnknown_8402200; + sItemOrder = sItemOrder_BedroomPC; sTopMenuItemCount = 3; taskId = CreateTask(TaskDummy, 0); DisplayItemMessageOnField(taskId, FONT_2, gText_WhatWouldYouLikeToDo, Task_DrawPlayerPcTopMenu); @@ -166,7 +166,7 @@ void PlayerPC(void) gPlayerPcMenuManager.notInRoom = TRUE; BackupHelpContext(); - sItemOrder = gUnknown_8402203; + sItemOrder = sItemOrder_PlayerPC; sTopMenuItemCount = 3; taskId = CreateTask(TaskDummy, 0); DisplayItemMessageOnField(taskId, FONT_2, gText_WhatWouldYouLikeToDo, Task_DrawPlayerPcTopMenu); @@ -257,9 +257,9 @@ static void Task_PlayerPcMailbox(u8 taskId) static void Task_PlayerPcTurnOff(u8 taskId) { if (gPlayerPcMenuManager.notInRoom == FALSE) - ScriptContext1_SetupScript(EventScript_PalletTown_PlayersHouse_2F_ShutDownPC); + ScriptContext_SetupScript(EventScript_PalletTown_PlayersHouse_2F_ShutDownPC); else - EnableBothScriptContexts(); + ScriptContext_Enable(); DestroyTask(taskId); } diff --git a/src/pokedex.c b/src/pokedex.c index e3e83c3c4..914626718 100644 --- a/src/pokedex.c +++ b/src/pokedex.c @@ -2,7 +2,8 @@ #include "pokedex.h" #include "pokedex_screen.h" -const u8 *sub_8088E20(u16 dexNum) +// Unused +const u8 *GetPokedexCategoryName(u16 dexNum) { return gPokedexEntries[dexNum].categoryName; } @@ -47,6 +48,30 @@ u16 GetNationalPokedexCount(u8 caseID) return count; } +/* +u16 GetHoennPokedexCount(u8 caseID) +{ + u16 count = 0; + u16 i; + + for (i = 0; i < HOENN_DEX_COUNT; i++) + { + switch (caseID) + { + case FLAG_GET_SEEN: + if (GetSetPokedexFlag(HoennToNationalOrder(i + 1), FLAG_GET_SEEN)) + count++; + break; + case FLAG_GET_CAUGHT: + if (GetSetPokedexFlag(HoennToNationalOrder(i + 1), FLAG_GET_CAUGHT)) + count++; + break; + } + } + return count; +} +*/ + u16 GetKantoPokedexCount(u8 caseID) { u16 count = 0; @@ -73,6 +98,7 @@ bool16 HasAllHoennMons(void) { u16 i; + // -2 excludes Jirachi and Deoxys for (i = 0; i < HOENN_DEX_COUNT - 2; i++) { if (!GetSetPokedexFlag(HoennToNationalOrder(i + 1), FLAG_GET_CAUGHT)) @@ -85,6 +111,7 @@ bool16 HasAllKantoMons(void) { u16 i; + // -1 excludes Mew for (i = 0; i < KANTO_DEX_COUNT - 1; i++) { if (!GetSetPokedexFlag(i + 1, FLAG_GET_CAUGHT)) @@ -97,17 +124,22 @@ bool16 HasAllMons(void) { u16 i; - for (i = 0; i < NATIONAL_DEX_MEWTWO; i++) + // -1 excludes Mew + for (i = 0; i < KANTO_DEX_COUNT - 1; i++) { if (!GetSetPokedexFlag(i + 1, FLAG_GET_CAUGHT)) return FALSE; } - for (i = NATIONAL_DEX_MEW; i < NATIONAL_DEX_TYRANITAR; i++) + + // -3 excludes Lugia, Ho-Oh, and Celebi + for (i = KANTO_DEX_COUNT; i < JOHTO_DEX_COUNT - 3; i++) { if (!GetSetPokedexFlag(i + 1, FLAG_GET_CAUGHT)) return FALSE; } - for (i = NATIONAL_DEX_CELEBI; i < NATIONAL_DEX_RAYQUAZA; i++) + + // -2 excludes Jirachi and Deoxys + for (i = JOHTO_DEX_COUNT; i < NATIONAL_DEX_COUNT - 2; i++) { if (!GetSetPokedexFlag(i + 1, FLAG_GET_CAUGHT)) return FALSE; diff --git a/src/pokedex_screen.c b/src/pokedex_screen.c index 17f29ac13..2c5662d9f 100644 --- a/src/pokedex_screen.c +++ b/src/pokedex_screen.c @@ -3103,14 +3103,14 @@ u8 DexScreen_DrawMonAreaPage(void) { sPokedexScreenData->windowIds[14] = CreateMonPicSprite_HandleDeoxys(species, SHINY_ODDS, DexScreen_GetDefaultPersonality(species), TRUE, 40, 104, 0, 0xFFFF); gSprites[sPokedexScreenData->windowIds[14]].oam.paletteNum = 2; - gSprites[sPokedexScreenData->windowIds[14]].oam.affineMode = 1; + gSprites[sPokedexScreenData->windowIds[14]].oam.affineMode = ST_OAM_AFFINE_NORMAL; gSprites[sPokedexScreenData->windowIds[14]].oam.matrixNum = 2; gSprites[sPokedexScreenData->windowIds[14]].oam.priority = 1; gSprites[sPokedexScreenData->windowIds[14]].y2 = gPokedexEntries[speciesId].pokemonOffset; SetOamMatrix(2, gPokedexEntries[speciesId].pokemonScale, 0, 0, gPokedexEntries[speciesId].pokemonScale); sPokedexScreenData->windowIds[15] = CreateTrainerPicSprite(PlayerGenderToFrontTrainerPicId_Debug(gSaveBlock2Ptr->playerGender, TRUE), 1, 80, 104, 0, 0xFFFF); gSprites[sPokedexScreenData->windowIds[15]].oam.paletteNum = 2; - gSprites[sPokedexScreenData->windowIds[15]].oam.affineMode = 1; + gSprites[sPokedexScreenData->windowIds[15]].oam.affineMode = ST_OAM_AFFINE_NORMAL; gSprites[sPokedexScreenData->windowIds[15]].oam.matrixNum = 1; gSprites[sPokedexScreenData->windowIds[15]].oam.priority = 1; gSprites[sPokedexScreenData->windowIds[15]].y2 = gPokedexEntries[speciesId].trainerOffset; diff --git a/src/pokemon.c b/src/pokemon.c index bf8daac60..6a164028e 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -94,6 +94,9 @@ static const struct CombinedMove sCombinedMoves[2] = {0xFFFF, 0xFFFF, 0xFFFF} }; +// NOTE: The order of the elements in the 3 arrays below is irrelevant. +// To reorder the pokedex, see the values in include/constants/pokedex.h. + static const u16 sSpeciesToHoennPokedexNum[] = // Assigns all species to the Hoenn Dex Index (Summary No. for Hoenn Dex) { SPECIES_TO_HOENN(BULBASAUR), @@ -1506,9 +1509,9 @@ const struct SpriteTemplate gSpriteTemplates_Battlers[] = }, }; -const struct SpriteTemplate gSpriteTemplates_TrainerBackpics[] = +static const struct SpriteTemplate sTrainerBackSpriteTemplates[] = { - { + [TRAINER_BACK_PIC_RED] = { .tileTag = TAG_NONE, .paletteTag = 0, .oam = &gOamData_BattlerPlayer, @@ -1517,7 +1520,7 @@ const struct SpriteTemplate gSpriteTemplates_TrainerBackpics[] = .affineAnims = gAffineAnims_BattleSpritePlayerSide, .callback = SpriteCB_AllyMon, }, - { + [TRAINER_BACK_PIC_LEAF] = { .tileTag = TAG_NONE, .paletteTag = 0, .oam = &gOamData_BattlerPlayer, @@ -1526,7 +1529,7 @@ const struct SpriteTemplate gSpriteTemplates_TrainerBackpics[] = .affineAnims = gAffineAnims_BattleSpritePlayerSide, .callback = SpriteCB_AllyMon, }, - { + [TRAINER_BACK_PIC_RUBY_SAPPHIRE_BRENDAN] = { .tileTag = TAG_NONE, .paletteTag = 0, .oam = &gOamData_BattlerPlayer, @@ -1535,7 +1538,7 @@ const struct SpriteTemplate gSpriteTemplates_TrainerBackpics[] = .affineAnims = gAffineAnims_BattleSpritePlayerSide, .callback = SpriteCB_AllyMon, }, - { + [TRAINER_BACK_PIC_RUBY_SAPPHIRE_MAY] = { .tileTag = TAG_NONE, .paletteTag = 0, .oam = &gOamData_BattlerPlayer, @@ -1544,7 +1547,7 @@ const struct SpriteTemplate gSpriteTemplates_TrainerBackpics[] = .affineAnims = gAffineAnims_BattleSpritePlayerSide, .callback = SpriteCB_AllyMon, }, - { + [TRAINER_BACK_PIC_POKEDUDE] = { .tileTag = TAG_NONE, .paletteTag = 0, .oam = &gOamData_BattlerPlayer, @@ -1553,7 +1556,7 @@ const struct SpriteTemplate gSpriteTemplates_TrainerBackpics[] = .affineAnims = gAffineAnims_BattleSpritePlayerSide, .callback = SpriteCB_AllyMon, }, - { + [TRAINER_BACK_PIC_OLD_MAN] = { .tileTag = TAG_NONE, .paletteTag = 0, .oam = &gOamData_BattlerPlayer, @@ -1665,7 +1668,7 @@ const u16 gLinkPlayerFacilityClasses[] = static const struct OamData sOakSpeechNidoranFDummyOamData = { .y = 0, - .affineMode = 0, + .affineMode = ST_OAM_AFFINE_OFF, .objMode = 0, .mosaic = FALSE, .bpp = 0, @@ -2755,7 +2758,7 @@ void SetMultiuseSpriteTemplateToTrainerBack(u16 trainerSpriteId, u8 battlerPosit gMultiuseSpriteTemplate.paletteTag = trainerSpriteId; if (battlerPosition == B_POSITION_PLAYER_LEFT || battlerPosition == B_POSITION_PLAYER_RIGHT) { - gMultiuseSpriteTemplate = gSpriteTemplates_TrainerBackpics[trainerSpriteId]; + gMultiuseSpriteTemplate = sTrainerBackSpriteTemplates[trainerSpriteId]; gMultiuseSpriteTemplate.anims = gTrainerBackAnimsPtrTable[trainerSpriteId]; } else @@ -3796,7 +3799,7 @@ static void CreateSecretBaseEnemyParty(struct SecretBaseRecord *secretBaseRecord } } gBattleTypeFlags = 8; - gTrainerBattleOpponent_A = SECRET_BASE_OPPONENT; + gTrainerBattleOpponent_A = TRAINER_SECRET_BASE; } u8 GetSecretBaseTrainerPicIndex(void) @@ -5008,7 +5011,7 @@ u16 GetEvolutionTargetSpecies(struct Pokemon *mon, u8 type, u16 evolutionItem) if (gEvolutionTable[species][i].param == heldItem) { targetSpecies = gEvolutionTable[species][i].targetSpecies; - if (IsNationalPokedexEnabled() || targetSpecies <= 151) + if (IsNationalPokedexEnabled() || targetSpecies <= KANTO_SPECIES_END) { heldItem = 0; SetMonData(mon, MON_DATA_HELD_ITEM, &heldItem); @@ -5664,7 +5667,7 @@ u16 SpeciesToPokedexNum(u16 species) { species = SpeciesToNationalPokedexNum(species); - if (!IsNationalPokedexEnabled() && species > 151) + if (!IsNationalPokedexEnabled() && species > KANTO_SPECIES_END) return 0xFFFF; return species; } @@ -6082,7 +6085,7 @@ bool8 CheckBattleTypeGhost(struct Pokemon *mon, u8 battlerId) if (gBattleTypeFlags & BATTLE_TYPE_GHOST && GetBattlerSide(battlerId) != B_SIDE_PLAYER) { GetMonData(mon, MON_DATA_NICKNAME, buffer); - StringGetEnd10(buffer); + StringGet_Nickname(buffer); if (!StringCompare(buffer, gText_Ghost)) return TRUE; } diff --git a/src/pokemon_jump.c b/src/pokemon_jump.c index a29397d37..39e13f786 100644 --- a/src/pokemon_jump.c +++ b/src/pokemon_jump.c @@ -709,7 +709,7 @@ static void Task_StaticCountdown_Run(u8 taskId) u16 packet[RFU_PACKET_SIZE]; s16 *data = gTasks[taskId].data; - if (gReceivedRemoteLinkPlayers != 0) + if (gReceivedRemoteLinkPlayers) { // Read link timer if (gRecvCmds[0][1] == LINKCMD_COUNTDOWN) @@ -3053,8 +3053,8 @@ static void LoadPokeJumpGfx(void) FillBgTilemapBufferRect_Palette0(BG_INTERFACE, 0, 0, 0, 0x20, 0x20); PrintScoreSuffixes(); PrintScore(0); - DrawWindowBorderWithStdpal3(0, 1, 0xE0); - LoadUserWindowBorderGfx(0, 0x00A, 0xD0); + LoadStdWindowGfxOnBg(0, 1, 0xE0); + LoadUserWindowGfx2(0, 0x00A, 0xD0); CopyBgTilemapBufferToVram(BG_INTERFACE); CopyBgTilemapBufferToVram(BG_VENUSAUR); CopyBgTilemapBufferToVram(BG_BONUSES); @@ -3532,8 +3532,8 @@ static const u8 sVenusaurStates[] = { [VINE_UPSWING_HIGHER] = VENUSAUR_UP, }; -static const struct CompressedSpriteSheet sSpriteSheet_Digits = {gUnknown_8479688, 0, TAG_DIGITS}; -static const struct SpritePalette sSpritePalette_Digits = {gUnknown_8479668, TAG_DIGITS}; +static const struct CompressedSpriteSheet sSpriteSheet_Digits = {gMinigameDigits_Gfx, 0, TAG_DIGITS}; +static const struct SpritePalette sSpritePalette_Digits = {gMinigameDigits_Pal, TAG_DIGITS}; static const u16 sPlayerNameWindowCoords_2Players[] = { 6, 8, @@ -4535,7 +4535,7 @@ static void Task_ShowPokemonJumpRecords(u8 taskId) { RemoveWindow(tWindowId); DestroyTask(taskId); - EnableBothScriptContexts(); + ScriptContext_Enable(); } break; } @@ -4554,7 +4554,7 @@ static void PrintRecordsText(u16 windowId) recordNums[1] = records->bestJumpScore; recordNums[2] = records->excellentsInRow; - TextWindow_SetStdFrame0_WithPal(windowId, 0x21D, 0xD0); + LoadStdWindowGfx(windowId, 0x21D, 0xD0); DrawTextBorderOuter(windowId, 0x21D, 0xD); FillWindowPixelBuffer(windowId, PIXEL_FILL(1)); AddTextPrinterParameterized5(windowId, FONT_2, gText_PkmnJumpRecords, 0, 0, TEXT_SKIP_DRAW, NULL, 1, 0); diff --git a/src/pokemon_special_anim.c b/src/pokemon_special_anim.c index f13732e2a..bf56a5c21 100644 --- a/src/pokemon_special_anim.c +++ b/src/pokemon_special_anim.c @@ -601,7 +601,7 @@ static void Task_CleanUp(u8 taskId) static const struct { u16 itemId; u16 animType; -} gUnknown_8459634[2] = { +} sItemAnimMap[2] = { {ITEM_RARE_CANDY, 0}, {ITEM_POTION, 1} }; @@ -610,10 +610,10 @@ static u16 GetAnimTypeByItemId(u16 itemId) { int i; - for (i = 0; i < NELEMS(gUnknown_8459634); i++) + for (i = 0; i < ARRAY_COUNT(sItemAnimMap); i++) { - if (gUnknown_8459634[i].itemId == itemId) - return gUnknown_8459634[i].animType; + if (sItemAnimMap[i].itemId == itemId) + return sItemAnimMap[i].animType; } if (itemId >= ITEM_TM01 && itemId <= ITEM_HM08) diff --git a/src/pokemon_special_anim_scene.c b/src/pokemon_special_anim_scene.c index 0b1277113..2643dd01a 100644 --- a/src/pokemon_special_anim_scene.c +++ b/src/pokemon_special_anim_scene.c @@ -8,6 +8,7 @@ #include "menu.h" #include "new_menu_helpers.h" #include "pokemon_special_anim_internal.h" +#include "random.h" #include "strings.h" #include "text_window.h" #include "trig.h" @@ -92,9 +93,9 @@ static const struct WindowTemplate sWindowTemplates[] = { }; static const u8 *const s1_2_and_Poof_textPtrs[] = { - gUnknown_841B2ED, // 1, - gUnknown_841B2F1, // 2, and ‥ ‥ ‥ - gUnknown_841B2FF, // Poof! + gText_Counting_1, + gText_Counting_2And, + gText_Poof, }; static const u16 sUnref_84599A4[] = { @@ -340,7 +341,7 @@ void InitPokemonSpecialAnimScene(struct PokemonSpecialAnimScene * buffer, u16 an FillBgTilemapBufferRect_Palette0(0, 0x000, 0, 0, 32, 32); LoadBgGfxByAnimType(animType); FillWindowPixelBuffer(0, PIXEL_FILL(0)); - TextWindow_SetUserSelectedFrame(0, 0x000, 0xe0); + LoadUserWindowGfx(0, 0x000, 0xe0); CopyWindowToVram(0, COPYWIN_FULL); ShowBg(0); ShowBg(3); @@ -394,49 +395,49 @@ void PSA_PrintMessage(u8 messageId) { case 0: // Item was used on Mon str = StringCopy(scene->textBuf, ItemId_GetName(itemId)); - str = StringCopy(str, gUnknown_841B285); + str = StringCopy(str, gText_WasUsedOn); GetMonData(pokemon, MON_DATA_NICKNAME, str); - StringAppend(scene->textBuf, gUnknown_841B293); + StringAppend(scene->textBuf, gText_Period); break; case 1: // Mon's level was elevated to level level = GetMonData(pokemon, MON_DATA_LEVEL); GetMonData(pokemon, MON_DATA_NICKNAME, scene->textBuf); - str = StringAppend(scene->textBuf, gUnknown_841B295); + str = StringAppend(scene->textBuf, gText_LevelRoseTo); if (level < MAX_LEVEL) level++; str = ConvertIntToDecimalStringN(str, level, STR_CONV_MODE_LEFT_ALIGN, level < MAX_LEVEL ? 2 : 3); - StringAppend(str, gUnknown_841B2A7); + StringAppend(str, gText_Period2); break; case 9: // Mon learned move DynamicPlaceholderTextUtil_Reset(); DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, PSA_GetMonNickname()); DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, PSA_GetNameOfMoveToTeach()); - DynamicPlaceholderTextUtil_ExpandPlaceholders(scene->textBuf, gUnknown_841B32E); + DynamicPlaceholderTextUtil_ExpandPlaceholders(scene->textBuf, gText_MonLearnedTMHM); break; - case 4: // poof! - strWidth += GetStringWidth(FONT_2, gUnknown_841B2F1, -1); + case 4: + strWidth += GetStringWidth(FONT_2, gText_Counting_2And, -1); // fallthrough - case 3: // 2 and... - strWidth += GetStringWidth(FONT_2, gUnknown_841B2ED, -1); + case 3: + strWidth += GetStringWidth(FONT_2, gText_Counting_1, -1); // fallthrough case 2: // 1 StringCopy(scene->textBuf, s1_2_and_Poof_textPtrs[messageId - 2]); textSpeed = 1; break; - case 5: // Mon forgot move + case 5: DynamicPlaceholderTextUtil_Reset(); DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, PSA_GetMonNickname()); DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, PSA_GetNameOfMoveForgotten()); - DynamicPlaceholderTextUtil_ExpandPlaceholders(scene->textBuf, gUnknown_841B306); + DynamicPlaceholderTextUtil_ExpandPlaceholders(scene->textBuf, gText_MonForgotMove); break; - case 6: // And... - StringCopy(scene->textBuf, gUnknown_841B315); + case 6: + StringCopy(scene->textBuf, gText_And); break; - case 7: // Machine set! - StringCopy(scene->textBuf, gUnknown_841B31B); + case 7: + StringCopy(scene->textBuf, gText_MachineSet); break; - case 8: // Huh? - StringCopy(scene->textBuf, gUnknown_841B329); + case 8: + StringCopy(scene->textBuf, gText_Huh); break; default: return; @@ -597,7 +598,8 @@ bool8 PSA_UseTM_RunMachineSetWobble(void) // anim in with using Rare Candy, but they were scrapped // at a later stage of development -UNUSED void PSA_CreateLevelUpVerticalSpritesTask(void) +// Unused +void PSA_CreateLevelUpVerticalSpritesTask(void) { CreateLevelUpVerticalSpritesTask(120, 56, 4, 4, 2, 0); } @@ -607,20 +609,24 @@ bool8 PSA_LevelUpVerticalSpritesTaskIsRunning(void) return LevelUpVerticalSpritesTaskIsRunning(); } -UNUSED void PSA_DrawLevelUpWindowPg1(u16 *statsBefore, u16 *statsAfter) +// Unused +void PSA_DrawLevelUpWindowPg1(u16 *statsBefore, u16 *statsAfter) { DrawTextBorderOuter(1, 0x001, 0xE); DrawLevelUpWindowPg1(1, statsBefore, statsAfter, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_LIGHT_GRAY); PutWindowTilemap(1); CopyWindowToVram(1, COPYWIN_FULL); } -UNUSED void PSA_DrawLevelUpWindowPg2(u16 *currStats) + +// Unused +void PSA_DrawLevelUpWindowPg2(u16 *currStats) { DrawLevelUpWindowPg2(1, currStats, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_LIGHT_GRAY); CopyWindowToVram(1, COPYWIN_GFX); } -UNUSED bool8 PSA_IsCopyingLevelUpWindowToVram(void) +// Unused +bool8 PSA_IsCopyingLevelUpWindowToVram(void) { return IsDma3ManagerBusyWithBgCopy(); } @@ -1303,7 +1309,7 @@ static void Task_UseItem_OutwardSpiralDots(u8 taskId) static u16 PSAScene_RandomFromTask(u8 taskId) { u32 state = GetWordTaskArg(taskId, tOff_RngState); - state = state * 1103515245 + 24691; + state = ISO_RANDOMIZE1(state); SetWordTaskArg(taskId, tOff_RngState, state); return state >> 16; } @@ -1441,8 +1447,7 @@ static void CreateLevelUpVerticalSprite(u8 taskId, s16 *data) { gSprites[spriteId].oam.priority = tPriority; gSprites[spriteId].tsYsubpixel = 0; - // similar to the LCRNG in random.c, but seeding from data[2] - gSprites[spriteId].tsSpeed = ((tMadeSprCt * 1103515245 + 24691) & 0x3F) + 0x20; + gSprites[spriteId].tsSpeed = (ISO_RANDOMIZE1(tMadeSprCt) & 0x3F) + 0x20; gSprites[spriteId].tsTaskId = taskId; tActiveSprCt++; } @@ -1477,12 +1482,12 @@ static void SpriteCB_LevelUpVertical(struct Sprite *sprite) // ======================================================== static const u8 *const sLevelUpWindowStatNames[] = { - gUnknown_841B2A9, - gUnknown_841B2B7, - gUnknown_841B2BE, - gUnknown_841B2CC, - gUnknown_841B2D4, - gUnknown_841B2C6 + gText_LevelUp_MaxHP, + gText_LevelUp_Attack, + gText_LevelUp_Defense, + gText_LevelUp_SpAtk, + gText_LevelUp_SpDef, + gText_LevelUp_Speed }; void DrawLevelUpWindowPg1(u16 windowId, u16 *beforeStats, u16 *afterStats, u8 bgColor, u8 fgColor, u8 shadowColor) @@ -1509,7 +1514,7 @@ void DrawLevelUpWindowPg1(u16 windowId, u16 *beforeStats, u16 *afterStats, u8 bg for (i = 0; i < 6; i++) { AddTextPrinterParameterized3(windowId, FONT_2, 0, i * 15, textColor, TEXT_SKIP_DRAW, sLevelUpWindowStatNames[i]); - StringCopy(textbuf, diffStats[i] >= 0 ? gUnknown_841B2DC : gUnknown_841B2E5); + StringCopy(textbuf, diffStats[i] >= 0 ? gText_LevelUp_Plus : gText_LevelUp_Minus); AddTextPrinterParameterized3(windowId, FONT_2, 56, i * 15, textColor, TEXT_SKIP_DRAW, textbuf); textbuf[0] = CHAR_SPACE; x = abs(diffStats[i]) < 10 ? 12 : 6; diff --git a/src/pokemon_storage_system_3.c b/src/pokemon_storage_system_3.c deleted file mode 100644 index 46212d06c..000000000 --- a/src/pokemon_storage_system_3.c +++ /dev/null @@ -1,2777 +0,0 @@ -#include "global.h" -#include "gflib.h" -#include "box_party_pokemon_dropdown.h" -#include "data.h" -#include "decompress.h" -#include "dynamic_placeholder_text_util.h" -#include "event_data.h" -#include "graphics.h" -#include "help_system.h" -#include "item.h" -#include "item_menu.h" -#include "mail_data.h" -#include "menu.h" -#include "naming_screen.h" -#include "new_menu_helpers.h" -#include "pc_screen_effect.h" -#include "pokemon_icon.h" -#include "pokemon_storage_system_internal.h" -#include "pokemon_summary_screen.h" -#include "quest_log.h" -#include "strings.h" -#include "task.h" -#include "text_window.h" -#include "trig.h" -#include "constants/items.h" -#include "constants/help_system.h" -#include "constants/songs.h" - -EWRAM_DATA struct PokemonStorageSystemData *gPSSData = NULL; -static EWRAM_DATA bool8 sInPartyMenu = 0; -static EWRAM_DATA u8 sCurrentBoxOption = 0; -static EWRAM_DATA u8 gUnknown_20397B6 = 0; -static EWRAM_DATA u8 sWhichToReshow = 0; -static EWRAM_DATA u8 sLastUsedBox = 0; -static EWRAM_DATA u16 gUnknown_20397BA = ITEM_NONE; - -static void Cb_InitPSS(u8 taskId); -static void Cb_ShowPSS(u8 taskId); -static void Cb_ReshowPSS(u8 taskId); -static void Cb_MainPSS(u8 taskId); -static void Cb_ShowPartyPokemon(u8 taskId); -static void Cb_HidePartyPokemon(u8 taskId); -static void Cb_OnSelectedMon(u8 taskId); -static void Cb_MoveMon(u8 taskId); -static void Cb_PlaceMon(u8 taskId); -static void Cb_ShiftMon(u8 taskId); -static void Cb_WithdrawMon(u8 taskId); -static void Cb_DepositMenu(u8 taskId); -static void Cb_ReleaseMon(u8 taskId); -static void Cb_ShowMarkMenu(u8 taskId); -static void Cb_TakeItemForMoving(u8 taskId); -static void Cb_GiveMovingItemToMon(u8 taskId); -static void Cb_ItemToBag(u8 taskId); -static void Cb_SwitchSelectedItem(u8 taskId); -static void Cb_ShowItemInfo(u8 taskId); -static void Cb_HandleMovingMonFromParty(u8 taskId); -static void Cb_PrintCantStoreMail(u8 taskId); -static void Cb_HandleBoxOptions(u8 taskId); -static void Cb_HandleWallpapers(u8 taskId); -static void Cb_JumpBox(u8 taskId); -static void Cb_NameBox(u8 taskId); -static void Cb_ShowMonSummary(u8 taskId); -static void Cb_GiveItemFromBag(u8 taskId); -static void Cb_OnCloseBoxPressed(u8 taskId); -static void Cb_OnBPressed(u8 taskId); -static void Cb_ChangeScreen(u8 taskId); -static void GiveChosenBagItem(void); -static void FreePSSData(void); -static void SetScrollingBackground(void); -static void ScrollBackground(void); -static void LoadPSSMenuGfx(void); -static bool8 InitPSSWindows(void); -static void LoadWaveformSpritePalette(void); -static void sub_808F078(void); -static void PSS_CreateMonMarkingSprite(void); -static void CreateWaveformSprites(void); -static void RefreshCursorMonData(void); -static void BoxSetMosaic(void); -static void SpriteCB_CursorMon_Mosaic(struct Sprite *sprite); -static bool8 BoxGetMosaic(void); -static void LoadCursorMonSprite(void); -static void LoadCursorMonGfx(u16 species, u32 pid); -static void PrintCursorMonInfo(void); -static void sub_808F5E8(void); -static void sub_808F68C(void); -static void SetUpHidePartyMenu(void); -static bool8 HidePartyMenu(void); -static void sub_808F90C(bool8 species); -static void sub_808F948(void); -static void sub_808F974(void); -static void sub_808F99C(void); -static void sub_808F9FC(void); -static void sub_808FA30(u8 pos, bool8 isPartyMon); -static void sub_808FAA8(void); -static void SetUpDoShowPartyMenu(void); -static bool8 DoShowPartyMenu(void); -static void sub_808FB68(void); -static void PrintStorageActionText(u8 textId); -static void ShowYesNoWindow(s8 species); -static void ClearBottomWindow(void); -static void AddWallpaperSetsMenu(void); -static void AddWallpapersMenu(u8 wallpaperSet); -static void sub_808FDFC(void); -static void sub_808FE54(u8 species); -static void sub_808FF70(void); - -static const u32 sPokemonStorageScrollingBGTileset[] = INCBIN_U32("graphics/interface/pss_unk_83CE438.4bpp.lz"); -static const u32 sPokemonStorageScrollingBGTilemap[] = INCBIN_U32("graphics/interface/pss_unk_83CE4D0.bin.lz"); -static const u16 sPokemonStorageScrollingBGPalette[] = INCBIN_U16("graphics/interface/pss_unk_83CE5DC.gbapal"); -static const u32 gUnknown_83CE5FC[] = INCBIN_U32("graphics/interface/pss_unk_83CE5FC.bin.lz"); - -static const u16 gUnknown_83CE6F8[] = { - 0x0101, 0x0102, 0x0103, 0x0104, 0x0105, 0x0106, 0x0107, 0x0108, - 0x0111, 0x0112, 0x0113, 0x0114, 0x0115, 0x0116, 0x0117, 0x0118, - 0x2101, 0x2102, 0x2103, 0x2104, 0x2105, 0x2106, 0x2107, 0x2108, - 0x2111, 0x2112, 0x2113, 0x2114, 0x2115, 0x2116, 0x2117, 0x2118, -}; - -static const u16 gUnknown_83CE738[] = INCBIN_U16("graphics/interface/pss_unk_83CE738.gbapal"); -static const u16 gUnknown_83CE758[] = INCBIN_U16("graphics/interface/pss_unk_83CE758.gbapal"); - -static const u16 gUnknown_83CE778[] = { - 0x014c, 0x014d, 0x014e, 0x014f, 0x0170, 0x0171, 0x0172, 0x0173, 0x0174, - 0x015c, 0x015d, 0x015e, 0x015f, 0x0180, 0x0181, 0x0182, 0x0183, 0x0184, - 0x0175, 0x0176, 0x0177, 0x0178, 0x0179, 0x017a, 0x017b, 0x017c, 0x017d, - 0x0185, 0x0186, 0x0187, 0x0188, 0x0189, 0x018a, 0x018b, 0x018c, 0x018d, -}; - -static const u16 gUnknown_83CE7C0[] = { - 0x1140, 0x1141, 0x1141, 0x1142, - 0x1150, 0x1151, 0x1151, 0x1152, - 0x1160, 0x1161, 0x1161, 0x1162, -}; - -static const u16 gUnknown_83CE7D8[] = { - 0x1143, 0x1144, 0x1144, 0x1145, - 0x1153, 0x1154, 0x1154, 0x1155, - 0x1163, 0x1164, 0x1164, 0x1165, -}; - -static const u16 gUnknown_83CE7F0[] = INCBIN_U16("graphics/interface/pss_unk_83CE810.gbapal"); -static const u16 gUnknown_83CE810[] = INCBIN_U16("graphics/interface/pss_unk_83CE810.4bpp"); -static const u16 gUnknown_83CE9D0[] = INCBIN_U16("graphics/interface/pss_unk_83CE9D0.gbapal"); -static const u16 gUnknown_83CEA10[] = INCBIN_U16("graphics/interface/pss_unk_83CEA10.gbapal"); - -static const struct WindowTemplate gUnknown_83CEA30[] = { - { - .bg = 1, - .tilemapLeft = 0, - .tilemapTop = 11, - .width = 9, - .height = 7, - .paletteNum = 3, - .baseBlock = 0x0c0 - }, { - .bg = 0, - .tilemapLeft = 11, - .tilemapTop = 17, - .width = 18, - .height = 2, - .paletteNum = 13, - .baseBlock = 0x014 - }, { - .bg = 0, - .tilemapLeft = 0, - .tilemapTop = 12, - .width = 25, - .height = 8, - .paletteNum = 15, - .baseBlock = 0x014 - }, DUMMY_WIN_TEMPLATE -}; - -static const struct BgTemplate gUnknown_83CEA50[] = { - { - .bg = 0, - .charBaseIndex = 0, - .mapBaseIndex = 29, - .screenSize = 0, - .paletteMode = 0, - .priority = 0, - .baseTile = 0x000 - }, { - .bg = 1, - .charBaseIndex = 1, - .mapBaseIndex = 30, - .screenSize = 0, - .paletteMode = 0, - .priority = 1, - .baseTile = 0x100 - }, { - .bg = 2, - .charBaseIndex = 2, - .mapBaseIndex = 27, - .screenSize = 1, - .paletteMode = 0, - .priority = 2, - .baseTile = 0x000 - }, { - .bg = 3, - .charBaseIndex = 3, - .mapBaseIndex = 31, - .screenSize = 0, - .paletteMode = 0, - .priority = 3, - .baseTile = 0x000 - } -}; - -static const struct SpritePalette sWaveformSpritePalette = { - gUnknown_83CE7F0, TAG_PAL_WAVEFORM -}; - -static const struct SpriteSheet sWaveformSpriteSheet = { - gUnknown_83CE810, 0x01c0, TAG_TILE_WAVEFORM -}; - -static const struct OamData gUnknown_83CEB88; - -static const struct SpriteTemplate sSpriteTemplate_CursorMon = { - .tileTag = TAG_TILE_2, - .paletteTag = TAG_PAL_DAC6, - .oam = &gUnknown_83CEB88, - .anims = gDummySpriteAnimTable, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCallbackDummy -}; - -static const struct StorageAction sPCStorageActionTexts[] = { - [PC_TEXT_EXIT_BOX] = {gText_ExitFromBox, PC_TEXT_FMT_NORMAL}, - [PC_TEXT_WHAT_YOU_DO] = {gText_WhatDoYouWantToDo, PC_TEXT_FMT_NORMAL}, - [PC_TEXT_PICK_A_THEME] = {gText_PleasePickATheme, PC_TEXT_FMT_NORMAL}, - [PC_TEXT_PICK_A_WALLPAPER] = {gText_PickTheWallpaper, PC_TEXT_FMT_NORMAL}, - [PC_TEXT_IS_SELECTED] = {gText_PkmnIsSelected, PC_TEXT_FMT_MON_NAME_1}, - [PC_TEXT_JUMP_TO_WHICH_BOX] = {gText_JumpToWhichBox, PC_TEXT_FMT_NORMAL}, - [PC_TEXT_DEPOSIT_IN_WHICH_BOX] = {gText_DepositInWhichBox, PC_TEXT_FMT_NORMAL}, - [PC_TEXT_WAS_DEPOSITED] = {gText_PkmnWasDeposited, PC_TEXT_FMT_MON_NAME_1}, - [PC_TEXT_BOX_IS_FULL] = {gText_BoxIsFull2, PC_TEXT_FMT_NORMAL}, - [PC_TEXT_RELEASE_POKE] = {gText_ReleaseThisPokemon, PC_TEXT_FMT_NORMAL}, - [PC_TEXT_WAS_RELEASED] = {gText_PkmnWasReleased, PC_TEXT_FMT_MON_NAME_4}, - [PC_TEXT_BYE_BYE] = {gText_ByeByePkmn, PC_TEXT_FMT_MON_NAME_6}, - [PC_TEXT_MARK_POKE] = {gText_MarkYourPkmn, PC_TEXT_FMT_NORMAL}, - [PC_TEXT_LAST_POKE] = {gText_ThatsYourLastPkmn, PC_TEXT_FMT_NORMAL}, - [PC_TEXT_PARTY_FULL] = {gText_YourPartysFull, PC_TEXT_FMT_NORMAL}, - [PC_TEXT_HOLDING_POKE] = {gText_YoureHoldingAPkmn, PC_TEXT_FMT_NORMAL}, - [PC_TEXT_WHICH_ONE_WILL_TAKE] = {gText_WhichOneWillYouTake, PC_TEXT_FMT_NORMAL}, - [PC_TEXT_CANT_RELEASE_EGG] = {gText_YouCantReleaseAnEgg, PC_TEXT_FMT_NORMAL}, - [PC_TEXT_CONTINUE_BOX] = {gText_ContinueBoxOperations, PC_TEXT_FMT_NORMAL}, - [PC_TEXT_CAME_BACK] = {gText_PkmnCameBack, PC_TEXT_FMT_MON_NAME_1}, - [PC_TEXT_WORRIED] = {gText_WasItWorriedAboutYou, PC_TEXT_FMT_NORMAL}, - [PC_TEXT_SURPRISE] = {gText_FourEllipsesExclamation, PC_TEXT_FMT_NORMAL}, - [PC_TEXT_PLEASE_REMOVE_MAIL] = {gText_PleaseRemoveTheMail, PC_TEXT_FMT_NORMAL}, - [PC_TEXT_IS_SELECTED2] = {gText_PkmnIsSelected, PC_TEXT_FMT_ITEM_NAME}, - [PC_TEXT_GIVE_TO_MON] = {gText_GiveToAPkmn, PC_TEXT_FMT_NORMAL}, - [PC_TEXT_PLACED_IN_BAG] = {gText_PlacedItemInBag, PC_TEXT_FMT_ITEM_NAME}, - [PC_TEXT_BAG_FULL] = {gText_BagIsFull2, PC_TEXT_FMT_NORMAL}, - [PC_TEXT_PUT_IN_BAG] = {gText_PutItemInBag, PC_TEXT_FMT_NORMAL}, - [PC_TEXT_ITEM_IS_HELD] = {gText_ItemIsNowHeld, PC_TEXT_FMT_ITEM_NAME}, - [PC_TEXT_CHANGED_TO_ITEM] = {gText_ChangedToNewItem, PC_TEXT_FMT_ITEM_NAME}, - [PC_TEXT_CANT_STORE_MAIL] = {gText_MailCantBeStored, PC_TEXT_FMT_NORMAL}, -}; - -// Yes/No menu -static const struct WindowTemplate sYesNoWindowTemplate = { - .bg = 0, - .tilemapLeft = 24, - .tilemapTop = 11, - .width = 5, - .height = 4, - .paletteNum = 15, - .baseBlock = 0x05c -}; - -static const struct OamData gUnknown_83CEB88 = { - .y = 0, - .affineMode = ST_OAM_AFFINE_OFF, - .objMode = ST_OAM_OBJ_NORMAL, - .mosaic = FALSE, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(64x64), - .x = 0, - .matrixNum = 0, - .size = SPRITE_SIZE(64x64), - .tileNum = 0x000, - .priority = 0, - .paletteNum = 0 -}; - -// Waveform - -static const struct OamData gUnknown_83CEB90 = { - .y = 0, - .affineMode = ST_OAM_AFFINE_OFF, - .objMode = ST_OAM_OBJ_NORMAL, - .mosaic = FALSE, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(16x8), - .x = 0, - .matrixNum = 0, - .size = SPRITE_SIZE(16x8), - .tileNum = 0x000, - .priority = 0, - .paletteNum = 0 -}; - -static const union AnimCmd gUnknown_83CEB98[] = { - ANIMCMD_FRAME(0, 5), - ANIMCMD_END -}; - -static const union AnimCmd gUnknown_83CEBA0[] = { - ANIMCMD_FRAME(2, 8), - ANIMCMD_FRAME(4, 8), - ANIMCMD_FRAME(6, 8), - ANIMCMD_JUMP(0) -}; - -static const union AnimCmd gUnknown_83CEBB0[] = { - ANIMCMD_FRAME(8, 5), - ANIMCMD_END -}; - -static const union AnimCmd gUnknown_83CEBB8[] = { - ANIMCMD_FRAME(10, 8), - ANIMCMD_FRAME(4, 8), - ANIMCMD_FRAME(12, 8), - ANIMCMD_JUMP(0) -}; - -static const union AnimCmd *const gUnknown_83CEBC8[] = { - gUnknown_83CEB98, - gUnknown_83CEBA0, - gUnknown_83CEBB0, - gUnknown_83CEBB8 -}; - -static const struct SpriteTemplate sSpriteTemplate_Waveform = { - .tileTag = TAG_TILE_WAVEFORM, - .paletteTag = TAG_PAL_WAVEFORM, - .oam = &gUnknown_83CEB90, - .anims = gUnknown_83CEBC8, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCallbackDummy, -}; - -static void VblankCb_PSS(void) -{ - LoadOam(); - ProcessSpriteCopyRequests(); - UnkUtil_Run(); - TransferPlttBuffer(); - SetGpuReg(REG_OFFSET_BG2HOFS, gPSSData->bg2_X); -} - -static void Cb2_PSS(void) -{ - RunTasks(); - DoScheduledBgTilemapCopiesToVram(); - ScrollBackground(); - sub_808F99C(); - AnimateSprites(); - BuildOamBuffer(); -} - -void Cb2_EnterPSS(u8 boxOption) -{ - ResetTasks(); - sCurrentBoxOption = boxOption; - gPSSData = Alloc(sizeof(struct PokemonStorageSystemData)); - if (gPSSData == NULL) - SetMainCallback2(CB2_ExitPokeStorage); - else - { - gPSSData->boxOption = boxOption; - gPSSData->isReshowingPSS = FALSE; - gUnknown_20397BA = 0; - gPSSData->state = 0; - gPSSData->taskId = CreateTask(Cb_InitPSS, 3); - SetHelpContext(HELPCONTEXT_BILLS_PC); - sLastUsedBox = StorageGetCurrentBox(); - SetMainCallback2(Cb2_PSS); - } -} - -void Cb2_ReturnToPSS(void) -{ - ResetTasks(); - gPSSData = Alloc(sizeof(struct PokemonStorageSystemData)); - if (gPSSData == NULL) - SetMainCallback2(CB2_ExitPokeStorage); - else - { - gPSSData->boxOption = sCurrentBoxOption; - gPSSData->isReshowingPSS = TRUE; - gPSSData->state = 0; - gPSSData->taskId = CreateTask(Cb_InitPSS, 3); - SetHelpContext(HELPCONTEXT_BILLS_PC); - SetMainCallback2(Cb2_PSS); - } -} - -static void ResetAllBgCoords(void) -{ - SetGpuReg(REG_OFFSET_BG0HOFS, 0); - SetGpuReg(REG_OFFSET_BG0VOFS, 0); - SetGpuReg(REG_OFFSET_BG1HOFS, 0); - SetGpuReg(REG_OFFSET_BG1VOFS, 0); - SetGpuReg(REG_OFFSET_BG2HOFS, 0); - SetGpuReg(REG_OFFSET_BG2VOFS, 0); - SetGpuReg(REG_OFFSET_BG3HOFS, 0); - SetGpuReg(REG_OFFSET_BG3VOFS, 0); -} - -static void sub_808CF10(void) -{ - ResetPaletteFade(); - ResetSpriteData(); - FreeSpriteTileRanges(); - FreeAllSpritePalettes(); - ClearDma3Requests(); - gReservedSpriteTileCount = 0x280; - UnkUtil_Init(&gPSSData->unkUtil, gPSSData->unkUtilData, 8); - gKeyRepeatStartDelay = 20; - ClearScheduledBgCopiesToVram(); - AllocBoxPartyPokemonDropdowns(3); - SetBoxPartyPokemonDropdownMap2(0, 1, gUnknown_83CE6F8, 8, 4); - SetBoxPartyPokemonDropdownMap2Pos(0, 1, 0); - gPSSData->closeBoxFlashing = FALSE; -} - -static void sub_808CF94(void) -{ - sub_8092B50(); - sInPartyMenu = gPSSData->boxOption == OPTION_DEPOSIT; - gUnknown_20397B6 = 0; -} - -static void sub_808CFC4(void) -{ - if (gPSSData->boxOption == OPTION_MOVE_ITEMS) - { - SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL); - SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(7, 11)); - } - SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_BG_ALL_ON | DISPCNT_OBJ_1D_MAP); -} - -static void SetPSSCallback(TaskFunc newFunc) -{ - gTasks[gPSSData->taskId].func = newFunc; - gPSSData->state = 0; -} - -static void Cb_InitPSS(u8 taskId) -{ - switch (gPSSData->state) - { - case 0: - SetVBlankCallback(NULL); - SetGpuReg(REG_OFFSET_DISPCNT, 0); - sub_808CF10(); - if (gPSSData->isReshowingPSS) - { - switch (sWhichToReshow) - { - case 1: - sub_8093660(); - break; - case 0: - sub_80937B4(); - break; - case 2: - GiveChosenBagItem(); - break; - } - } - LoadPSSMenuGfx(); - LoadWaveformSpritePalette(); - break; - case 1: - if (!InitPSSWindows()) - { - SetPSSCallback(Cb_ChangeScreen); - return; - } - break; - case 2: - PutWindowTilemap(0); - ClearWindowTilemap(1); - CpuFill32(0, (void *)VRAM, 0x200); - TextWindow_SetUserSelectedFrame(1, 0xB, 0xE0); - break; - case 3: - ResetAllBgCoords(); - if (!gPSSData->isReshowingPSS) - sub_808CF94(); - break; - case 4: - sub_808FFAC(); - if (!gPSSData->isReshowingPSS) - sub_80922C0(); - else - sub_8092340(); - break; - case 5: - if (!sub_8095050()) - { - SetPSSCallback(Cb_ChangeScreen); - return; - } - else - { - SetScrollingBackground(); - sub_808FB68(); - } - break; - case 6: - sub_808F078(); - break; - case 7: - sub_808F68C(); - break; - case 8: - sub_80913DC(StorageGetCurrentBox()); - break; - case 9: - if (sub_809140C()) - return; - - if (gPSSData->boxOption != OPTION_MOVE_ITEMS) - { - gPSSData->markMenu.baseTileTag = TAG_TILE_D; - gPSSData->markMenu.basePaletteTag = TAG_PAL_DACE; - InitMonMarkingsMenu(&gPSSData->markMenu); - BufferMonMarkingsMenuTiles(); - } - else - { - CreateItemIconSprites(); - sub_808FDFC(); - } - break; - case 10: - sub_808CFC4(); - if (!gPSSData->isReshowingPSS) - { - BlendPalettes(PALETTES_ALL, 0x10, RGB_BLACK); - SetPSSCallback(Cb_ShowPSS); - } - else - { - BlendPalettes(PALETTES_ALL, 0x10, RGB_BLACK); - SetPSSCallback(Cb_ReshowPSS); - } - SetVBlankCallback(VblankCb_PSS); - return; - default: - return; - } - - gPSSData->state++; -} - -static void Cb_ShowPSS(u8 taskId) -{ - switch (gPSSData->state) - { - case 0: - PlaySE(SE_PC_LOGIN); - BeginPCScreenEffect_TurnOn(20, 0, 1); - gPSSData->state++; - break; - case 1: - if (!IsPCScreenEffectRunning_TurnOn()) - SetPSSCallback(Cb_MainPSS); - break; - } -} - -static void Cb_ReshowPSS(u8 taskId) -{ - switch (gPSSData->state) - { - case 0: - BeginNormalPaletteFade(PALETTES_ALL, -1, 0x10, 0, RGB_BLACK); - gPSSData->state++; - break; - case 1: - if (!UpdatePaletteFade()) - { - SetPSSCallback(Cb_MainPSS); - } - break; - } -} - -static void Cb_MainPSS(u8 taskId) -{ - switch (gPSSData->state) - { - case 0: - switch (HandleInput()) - { - case 1: - PlaySE(SE_SELECT); - gPSSData->state = 1; - break; - case 5: - if (gPSSData->boxOption != OPTION_MOVE_MONS && gPSSData->boxOption != OPTION_MOVE_ITEMS) - { - PrintStorageActionText(PC_TEXT_WHICH_ONE_WILL_TAKE); - gPSSData->state = 3; - } - else - { - sub_8092B50(); - SetPSSCallback(Cb_ShowPartyPokemon); - } - break; - case 6: - if (gPSSData->boxOption == OPTION_MOVE_MONS) - { - if (IsMonBeingMoved() && ItemIsMail(gPSSData->displayMonItemId)) - gPSSData->state = 5; - else - SetPSSCallback(Cb_HidePartyPokemon); - } - else if (gPSSData->boxOption == OPTION_MOVE_ITEMS) - { - SetPSSCallback(Cb_HidePartyPokemon); - } - break; - case 4: - SetPSSCallback(Cb_OnCloseBoxPressed); - break; - case 19: - SetPSSCallback(Cb_OnBPressed); - break; - case 7: - PlaySE(SE_SELECT); - SetPSSCallback(Cb_HandleBoxOptions); - break; - case 8: - SetPSSCallback(Cb_OnSelectedMon); - break; - case 9: - PlaySE(SE_SELECT); - gPSSData->newCurrBoxId = StorageGetCurrentBox() + 1; - if (gPSSData->newCurrBoxId >= TOTAL_BOXES_COUNT) - gPSSData->newCurrBoxId = 0; - if (gPSSData->boxOption != OPTION_MOVE_ITEMS) - { - SetUpScrollToBox(gPSSData->newCurrBoxId); - gPSSData->state = 2; - } - else - { - sub_8094D60(); - gPSSData->state = 10; - } - break; - case 10: - PlaySE(SE_SELECT); - gPSSData->newCurrBoxId = StorageGetCurrentBox() - 1; - if (gPSSData->newCurrBoxId < 0) - gPSSData->newCurrBoxId = TOTAL_BOXES_COUNT - 1; - if (gPSSData->boxOption != OPTION_MOVE_ITEMS) - { - SetUpScrollToBox(gPSSData->newCurrBoxId); - gPSSData->state = 2; - } - else - { - sub_8094D60(); - gPSSData->state = 10; - } - break; - case 11: - if (!CanMovePartyMon()) - { - if (ItemIsMail(gPSSData->displayMonItemId)) - { - gPSSData->state = 5; - } - else - { - PlaySE(SE_SELECT); - SetPSSCallback(Cb_DepositMenu); - } - } - else - { - gPSSData->state = 4; - } - break; - case 13: - if (CanMovePartyMon()) - { - gPSSData->state = 4; - } - else - { - PlaySE(SE_SELECT); - SetPSSCallback(Cb_MoveMon); - } - break; - case 14: - if (!CanShiftMon()) - { - gPSSData->state = 4; - } - else - { - PlaySE(SE_SELECT); - SetPSSCallback(Cb_ShiftMon); - } - break; - case 12: - PlaySE(SE_SELECT); - SetPSSCallback(Cb_WithdrawMon); - break; - case 15: - PlaySE(SE_SELECT); - SetPSSCallback(Cb_PlaceMon); - break; - case 16: - PlaySE(SE_SELECT); - SetPSSCallback(Cb_TakeItemForMoving); - break; - case 17: - PlaySE(SE_SELECT); - SetPSSCallback(Cb_GiveMovingItemToMon); - break; - case 18: - PlaySE(SE_SELECT); - SetPSSCallback(Cb_SwitchSelectedItem); - break; - case 20: - PlaySE(SE_SELECT); - sub_80950BC(0); - gPSSData->state = 7; - break; - case 22: - sub_80950BC(1); - gPSSData->state = 8; - break; - case 21: - PlaySE(SE_SELECT); - sub_80950BC(2); - gPSSData->state = 9; - break; - case 23: - sub_80950BC(3); - gPSSData->state = 7; - break; - case 25: - PlaySE(SE_SELECT); - sub_80950BC(4); - gPSSData->state = 9; - break; - case 26: - PlaySE(SE_SELECT); - sub_808FE54(3); - sub_80950BC(5); - gPSSData->state = 7; - break; - case 24: - PlaySE(SE_FAILURE); - break; - } - break; - case 1: - if (!sub_80924A8()) - { - if (IsCursorOnCloseBox()) - sub_808F948(); - else - sub_808F974(); - - if (gPSSData->setMosaic) - BoxSetMosaic(); - gPSSData->state = 0; - } - break; - case 2: - if (!ScrollToBox()) - { - SetCurrentBox(gPSSData->newCurrBoxId); - if (!sInPartyMenu && !IsMonBeingMoved()) - { - sub_8092F54(); - BoxSetMosaic(); - } - - if (gPSSData->boxOption == OPTION_MOVE_ITEMS) - { - sub_8094D84(); - gPSSData->state = 11; - } - else - { - gPSSData->state = 0; - } - } - break; - case 3: - if (JOY_NEW(A_BUTTON | B_BUTTON | DPAD_ANY)) - { - ClearBottomWindow(); - gPSSData->state = 0; - } - break; - case 4: - PlaySE(SE_FAILURE); - PrintStorageActionText(PC_TEXT_LAST_POKE); - gPSSData->state = 6; - break; - case 5: - PlaySE(SE_FAILURE); - PrintStorageActionText(PC_TEXT_PLEASE_REMOVE_MAIL); - gPSSData->state = 6; - break; - case 6: - if (JOY_NEW(A_BUTTON | B_BUTTON | DPAD_ANY)) - { - ClearBottomWindow(); - SetPSSCallback(Cb_MainPSS); - } - break; - case 7: - if (!sub_80950D0()) - gPSSData->state = 0; - break; - case 8: - if (!sub_80950D0()) - SetPSSCallback(Cb_MoveMon); - break; - case 9: - if (!sub_80950D0()) - { - if (gPSSData->setMosaic) - BoxSetMosaic(); - gPSSData->state = 0; - } - break; - case 10: - if (!sub_809610C()) - { - SetUpScrollToBox(gPSSData->newCurrBoxId); - gPSSData->state = 2; - } - break; - case 11: - if (!sub_809610C()) - gPSSData->state = 0; - break; - } -} - -static void Cb_ShowPartyPokemon(u8 taskId) -{ - switch (gPSSData->state) - { - case 0: - SetUpDoShowPartyMenu(); - gPSSData->state++; - break; - case 1: - if (!DoShowPartyMenu()) - SetPSSCallback(Cb_MainPSS); - break; - } -} - -static void Cb_HidePartyPokemon(u8 taskId) -{ - switch (gPSSData->state) - { - case 0: - PlaySE(SE_SELECT); - SetUpHidePartyMenu(); - gPSSData->state++; - break; - case 1: - if (!HidePartyMenu()) - { - sub_8092B3C(sub_8092B70()); - gPSSData->state++; - } - break; - case 2: - if (!sub_80924A8()) - { - if (gPSSData->setMosaic) - BoxSetMosaic(); - SetPSSCallback(Cb_MainPSS); - } - break; - } -} - -static void Cb_OnSelectedMon(u8 taskId) -{ - switch (gPSSData->state) - { - case 0: - if (!BoxGetMosaic()) - { - PlaySE(SE_SELECT); - if (gPSSData->boxOption != OPTION_MOVE_ITEMS) - PrintStorageActionText(PC_TEXT_IS_SELECTED); - else if (IsActiveItemMoving() || gPSSData->displayMonItemId != 0) - PrintStorageActionText(PC_TEXT_IS_SELECTED2); - else - PrintStorageActionText(PC_TEXT_GIVE_TO_MON); - - AddMenu(); - gPSSData->state = 1; - } - break; - case 1: // debug? - if (!sub_8094F90()) - gPSSData->state = 2; - break; - case 2: - switch (sub_8094F94()) - { - case -1: - case 0: - ClearBottomWindow(); - SetPSSCallback(Cb_MainPSS); - break; - case 3: - if (CanMovePartyMon()) - { - gPSSData->state = 3; - } - else - { - PlaySE(SE_SELECT); - ClearBottomWindow(); - SetPSSCallback(Cb_MoveMon); - } - break; - case 5: - PlaySE(SE_SELECT); - ClearBottomWindow(); - SetPSSCallback(Cb_PlaceMon); - break; - case 4: - if (!CanShiftMon()) - { - gPSSData->state = 3; - } - else - { - PlaySE(SE_SELECT); - ClearBottomWindow(); - SetPSSCallback(Cb_ShiftMon); - } - break; - case 2: - PlaySE(SE_SELECT); - ClearBottomWindow(); - SetPSSCallback(Cb_WithdrawMon); - break; - case 1: - if (CanMovePartyMon()) - { - gPSSData->state = 3; - } - else if (ItemIsMail(gPSSData->displayMonItemId)) - { - gPSSData->state = 4; - } - else - { - PlaySE(SE_SELECT); - ClearBottomWindow(); - SetPSSCallback(Cb_DepositMenu); - } - break; - case 7: - if (CanMovePartyMon()) - { - gPSSData->state = 3; - } - else if (gPSSData->displayMonIsEgg) - { - gPSSData->state = 5; // Cannot release an Egg. - } - else if (ItemIsMail(gPSSData->displayMonItemId)) - { - gPSSData->state = 4; - } - else - { - PlaySE(SE_SELECT); - SetPSSCallback(Cb_ReleaseMon); - } - break; - case 6: - PlaySE(SE_SELECT); - SetPSSCallback(Cb_ShowMonSummary); - break; - case 8: - PlaySE(SE_SELECT); - SetPSSCallback(Cb_ShowMarkMenu); - break; - case 12: - PlaySE(SE_SELECT); - SetPSSCallback(Cb_TakeItemForMoving); - break; - case 13: - PlaySE(SE_SELECT); - SetPSSCallback(Cb_GiveMovingItemToMon); - break; - case 16: - SetPSSCallback(Cb_ItemToBag); - break; - case 15: - SetPSSCallback(Cb_SwitchSelectedItem); - break; - case 14: - SetPSSCallback(Cb_GiveItemFromBag); - break; - case 17: - SetPSSCallback(Cb_ShowItemInfo); - break; - } - break; - case 3: - PlaySE(SE_FAILURE); - PrintStorageActionText(PC_TEXT_LAST_POKE); - gPSSData->state = 6; - break; - case 5: - PlaySE(SE_FAILURE); - PrintStorageActionText(PC_TEXT_CANT_RELEASE_EGG); - gPSSData->state = 6; - break; - case 4: - PlaySE(SE_FAILURE); - PrintStorageActionText(PC_TEXT_PLEASE_REMOVE_MAIL); - gPSSData->state = 6; - break; - case 6: - if (JOY_NEW(A_BUTTON | B_BUTTON | DPAD_ANY)) - { - ClearBottomWindow(); - SetPSSCallback(Cb_MainPSS); - } - break; - } -} - -static void Cb_MoveMon(u8 taskId) -{ - switch (gPSSData->state) - { - case 0: - InitMonPlaceChange(0); - gPSSData->state++; - break; - case 1: - if (!DoMonPlaceChange()) - { - if (sInPartyMenu) - SetPSSCallback(Cb_HandleMovingMonFromParty); - else - SetPSSCallback(Cb_MainPSS); - } - break; - } -} - -static void Cb_PlaceMon(u8 taskId) -{ - switch (gPSSData->state) - { - case 0: - sub_808FE54(1); - InitMonPlaceChange(1); - gPSSData->state++; - break; - case 1: - if (!DoMonPlaceChange()) - { - if (sInPartyMenu) - SetPSSCallback(Cb_HandleMovingMonFromParty); - else - SetPSSCallback(Cb_MainPSS); - } - break; - } -} - -static void Cb_ShiftMon(u8 taskId) -{ - switch (gPSSData->state) - { - case 0: - sub_808FE54(0); - InitMonPlaceChange(2); - gPSSData->state++; - break; - case 1: - if (!DoMonPlaceChange()) - { - BoxSetMosaic(); - SetPSSCallback(Cb_MainPSS); - } - break; - } -} - -static void Cb_WithdrawMon(u8 taskId) -{ - switch (gPSSData->state) - { - case 0: - if (CalculatePlayerPartyCount() == PARTY_SIZE) - { - PrintStorageActionText(PC_TEXT_PARTY_FULL); - gPSSData->state = 1; - } - else - { - sub_8092B5C(); - InitMonPlaceChange(0); - gPSSData->state = 2; - } - break; - case 1: - if (JOY_NEW(A_BUTTON | B_BUTTON | DPAD_ANY)) - { - ClearBottomWindow(); - SetPSSCallback(Cb_MainPSS); - } - break; - case 2: - if (!DoMonPlaceChange()) - { - SetMovingMonPriority(1); - SetUpDoShowPartyMenu(); - gPSSData->state++; - } - break; - case 3: - if (!DoShowPartyMenu()) - { - sub_808FE54(1); - InitMonPlaceChange(1); - gPSSData->state++; - } - break; - case 4: - if (!DoMonPlaceChange()) - { - sub_808FAA8(); - gPSSData->state++; - } - break; - case 5: - SetPSSCallback(Cb_HidePartyPokemon); - break; - } -} - -static void Cb_DepositMenu(u8 taskId) -{ - u8 boxId; - - switch (gPSSData->state) - { - case 0: - PrintStorageActionText(PC_TEXT_DEPOSIT_IN_WHICH_BOX); - LoadChooseBoxMenuGfx(&gPSSData->field_1E5C, TAG_TILE_A, TAG_PAL_DAC7, 3, FALSE); - sub_808C940(gUnknown_20397B6); - gPSSData->state++; - break; - case 1: - boxId = HandleBoxChooseSelectionInput(); - if (boxId == 200) - { - // no box chosen yet - } - else if (boxId == 201) - { - ClearBottomWindow(); - sub_808C950(); - FreeBoxSelectionPopupSpriteGfx(); - SetPSSCallback(Cb_MainPSS); - } - else - { - if (TryStorePartyMonInBox(boxId)) - { - gUnknown_20397B6 = boxId; - sub_808FE54(2); - ClearBottomWindow(); - sub_808C950(); - FreeBoxSelectionPopupSpriteGfx(); - gPSSData->state = 2; - } - else - { - PrintStorageActionText(PC_TEXT_BOX_IS_FULL); - gPSSData->state = 4; - } - } - break; - case 2: - CompactPartySlots(); - sub_80909F4(); - gPSSData->state++; - break; - case 3: - if (!sub_8090A60()) - { - sub_8093174(); - BoxSetMosaic(); - sub_808FAA8(); - SetPSSCallback(Cb_MainPSS); - } - break; - case 4: - if (JOY_NEW(A_BUTTON | B_BUTTON | DPAD_ANY)) - { - PrintStorageActionText(PC_TEXT_DEPOSIT_IN_WHICH_BOX); - gPSSData->state = 1; - } - break; - } -} - -static void Cb_ReleaseMon(u8 taskId) -{ - switch (gPSSData->state) - { - case 0: - PrintStorageActionText(PC_TEXT_RELEASE_POKE); - ShowYesNoWindow(1); - gPSSData->state++; - // fallthrough - case 1: - switch (Menu_ProcessInputNoWrapClearOnChoose()) - { - case MENU_B_PRESSED: - case 1: - ClearBottomWindow(); - SetPSSCallback(Cb_MainPSS); - break; - case 0: - ClearBottomWindow(); - InitCanReleaseMonVars(); - sub_8093194(); - gPSSData->state++; - break; - } - break; - case 2: - RunCanReleaseMon(); - if (!sub_80931EC()) - { - while (1) - { - s8 r0 = RunCanReleaseMon(); - if (r0 == 1) - { - gPSSData->state++; - break; - } - else if (r0 == 0) - { - gPSSData->state = 8; // Can't release the mon. - break; - } - } - } - break; - case 3: - ReleaseMon(); - RefreshCursorMonData(); - PrintStorageActionText(PC_TEXT_WAS_RELEASED); - gPSSData->state++; - break; - case 4: - if (JOY_NEW(A_BUTTON | B_BUTTON | DPAD_ANY)) - { - PrintStorageActionText(PC_TEXT_BYE_BYE); - gPSSData->state++; - } - break; - case 5: - if (JOY_NEW(A_BUTTON | B_BUTTON | DPAD_ANY)) - { - ClearBottomWindow(); - if (sInPartyMenu) - { - CompactPartySlots(); - sub_80909F4(); - gPSSData->state++; - } - else - { - gPSSData->state = 7; - } - } - break; - case 6: - if (!sub_8090A60()) - { - sub_8092F54(); - BoxSetMosaic(); - sub_808FAA8(); - gPSSData->state++; - } - break; - case 7: - SetPSSCallback(Cb_MainPSS); - break; - case 8: - PrintStorageActionText(PC_TEXT_WAS_RELEASED); - gPSSData->state++; - break; - case 9: - if (JOY_NEW(A_BUTTON | B_BUTTON | DPAD_ANY)) - { - PrintStorageActionText(PC_TEXT_SURPRISE); - gPSSData->state++; - } - break; - case 10: - if (JOY_NEW(A_BUTTON | B_BUTTON | DPAD_ANY)) - { - ClearBottomWindow(); - sub_8091114(); - gPSSData->state++; - } - break; - case 11: - if (!sub_8091150()) - { - sub_8093264(); - PrintStorageActionText(PC_TEXT_CAME_BACK); - gPSSData->state++; - } - break; - case 12: - if (JOY_NEW(A_BUTTON | B_BUTTON | DPAD_ANY)) - { - PrintStorageActionText(PC_TEXT_WORRIED); - gPSSData->state++; - } - break; - case 13: - if (JOY_NEW(A_BUTTON | B_BUTTON | DPAD_ANY)) - { - ClearBottomWindow(); - SetPSSCallback(Cb_MainPSS); - } - break; - } -} - -static void Cb_ShowMarkMenu(u8 taskId) -{ - switch (gPSSData->state) - { - case 0: - PrintStorageActionText(PC_TEXT_MARK_POKE); - gPSSData->markMenu.markings = gPSSData->displayMonMarkings; - OpenMonMarkingsMenu(gPSSData->displayMonMarkings, 0xb0, 0x10); - gPSSData->state++; - break; - case 1: - if (!HandleMonMarkingsMenuInput()) - { - FreeMonMarkingsMenu(); - ClearBottomWindow(); - SetMonMarkings(gPSSData->markMenu.markings); - RefreshCursorMonData(); - SetPSSCallback(Cb_MainPSS); - } - break; - } -} - -static void Cb_TakeItemForMoving(u8 taskId) -{ - switch (gPSSData->state) - { - case 0: - if (!ItemIsMail(gPSSData->displayMonItemId)) - { - ClearBottomWindow(); - gPSSData->state++; - } - else - { - SetPSSCallback(Cb_PrintCantStoreMail); - } - break; - case 1: - sub_8094D14(2); - Item_FromMonToMoving(sInPartyMenu ? CURSOR_AREA_IN_PARTY : CURSOR_AREA_IN_BOX, GetBoxCursorPosition()); - gPSSData->state++; - break; - case 2: - if (!sub_809610C()) - { - sub_8094D14(3); - ClearBottomWindow(); - sub_8092F54(); - PrintCursorMonInfo(); - gPSSData->state++; - } - break; - case 3: - if (!IsDma3ManagerBusyWithBgCopy()) - SetPSSCallback(Cb_MainPSS); - break; - } -} - -static void Cb_GiveMovingItemToMon(u8 taskId) -{ - switch (gPSSData->state) - { - case 0: - ClearBottomWindow(); - gPSSData->state++; - break; - case 1: - sub_8094D14(2); - Item_GiveMovingToMon(sInPartyMenu ? CURSOR_AREA_IN_PARTY : CURSOR_AREA_IN_BOX, GetBoxCursorPosition()); - gPSSData->state++; - break; - case 2: - if (!sub_809610C()) - { - sub_8094D14(0); - sub_8092F54(); - PrintCursorMonInfo(); - PrintStorageActionText(PC_TEXT_ITEM_IS_HELD); - gPSSData->state++; - } - break; - case 3: - if (JOY_NEW(A_BUTTON | B_BUTTON | DPAD_ANY)) - { - ClearBottomWindow(); - gPSSData->state++; - } - break; - case 4: - if (!IsDma3ManagerBusyWithBgCopy()) - SetPSSCallback(Cb_MainPSS); - break; - } -} - -static void Cb_ItemToBag(u8 taskId) -{ - switch (gPSSData->state) - { - case 0: - if (!AddBagItem(gPSSData->displayMonItemId, 1)) - { - PlaySE(SE_FAILURE); - PrintStorageActionText(PC_TEXT_BAG_FULL); - gPSSData->state = 3; - } - else - { - PlaySE(SE_SELECT); - Item_TakeMons(sInPartyMenu ? CURSOR_AREA_IN_PARTY : CURSOR_AREA_IN_BOX, GetBoxCursorPosition()); - gPSSData->state = 1; - } - break; - case 1: - if (!sub_809610C()) - { - PrintStorageActionText(PC_TEXT_PLACED_IN_BAG); - gPSSData->state = 2; - } - break; - case 2: - if (JOY_NEW(A_BUTTON | B_BUTTON | DPAD_ANY)) - { - ClearBottomWindow(); - sub_8092F54(); - PrintCursorMonInfo(); - gPSSData->state = 4; - } - break; - case 4: - if (!IsDma3ManagerBusyWithBgCopy()) - SetPSSCallback(Cb_MainPSS); - break; - case 3: - if (JOY_NEW(A_BUTTON | B_BUTTON | DPAD_ANY)) - { - ClearBottomWindow(); - SetPSSCallback(Cb_MainPSS); - } - break; - } -} - -static void Cb_SwitchSelectedItem(u8 taskId) -{ - switch (gPSSData->state) - { - case 0: - if (!ItemIsMail(gPSSData->displayMonItemId)) - { - ClearBottomWindow(); - gPSSData->state++; - } - else - { - SetPSSCallback(Cb_PrintCantStoreMail); - } - break; - case 1: - sub_8094D14(2); - Item_SwitchMonsWithMoving(sInPartyMenu ? CURSOR_AREA_IN_PARTY : CURSOR_AREA_IN_BOX, GetBoxCursorPosition()); - gPSSData->state++; - break; - case 2: - if (!sub_809610C()) - { - sub_8094D14(3); - sub_8092F54(); - PrintCursorMonInfo(); - PrintStorageActionText(PC_TEXT_CHANGED_TO_ITEM); - gPSSData->state++; - } - break; - case 3: - if (JOY_NEW(A_BUTTON | B_BUTTON | DPAD_ANY)) - { - ClearBottomWindow(); - gPSSData->state++; - } - break; - case 4: - if (!IsDma3ManagerBusyWithBgCopy()) - SetPSSCallback(Cb_MainPSS); - break; - } -} - -static void Cb_ShowItemInfo(u8 taskId) -{ - switch (gPSSData->state) - { - case 0: - ClearBottomWindow(); - gPSSData->state++; - break; - case 1: - if (!IsDma3ManagerBusyWithBgCopy()) - { - PlaySE(SE_WIN_OPEN); - PrintItemDescription(); - InitItemInfoWindow(); - gPSSData->state++; - } - break; - case 2: - if (!UpdateItemInfoWindowSlideIn()) - gPSSData->state++; - break; - case 3: - if (!IsDma3ManagerBusyWithBgCopy()) - gPSSData->state++; - break; - case 4: - if (JOY_NEW(A_BUTTON | B_BUTTON | DPAD_ANY)) - { - PlaySE(SE_WIN_OPEN); - gPSSData->state++; - } - break; - case 5: - if (!UpdateItemInfoWindowSlideOut()) - gPSSData->state++; - break; - case 6: - if (!IsDma3ManagerBusyWithBgCopy()) - SetPSSCallback(Cb_MainPSS); - break; - } -} - -static void Cb_CloseBoxWhileHoldingItem(u8 taskId) -{ - switch (gPSSData->state) - { - case 0: - PlaySE(SE_SELECT); - PrintStorageActionText(PC_TEXT_PUT_IN_BAG); - ShowYesNoWindow(0); - gPSSData->state = 1; - break; - case 1: - switch (Menu_ProcessInputNoWrapClearOnChoose()) - { - case MENU_B_PRESSED: - case 1: - ClearBottomWindow(); - SetPSSCallback(Cb_MainPSS); - break; - case 0: - if (AddBagItem(gPSSData->movingItemId, 1) == TRUE) - { - ClearBottomWindow(); - gPSSData->state = 3; - } - else - { - PrintStorageActionText(PC_TEXT_BAG_FULL); - gPSSData->state = 2; - } - break; - } - break; - case 2: - if (JOY_NEW(A_BUTTON | B_BUTTON | DPAD_ANY)) - { - ClearBottomWindow(); - gPSSData->state = 5; - } - break; - case 3: - sub_8096088(); - gPSSData->state = 4; - break; - case 4: - if (!sub_809610C()) - { - sub_8094D14(0); - SetPSSCallback(Cb_MainPSS); - } - break; - case 5: - if (!IsDma3ManagerBusyWithBgCopy()) - SetPSSCallback(Cb_MainPSS); - break; - } -} - -static void Cb_HandleMovingMonFromParty(u8 taskId) -{ - switch (gPSSData->state) - { - case 0: - CompactPartySlots(); - sub_80909F4(); - gPSSData->state++; - break; - case 1: - if (!sub_8090A60()) - { - sub_808FAA8(); - SetPSSCallback(Cb_MainPSS); - } - break; - } -} - -static void Cb_PrintCantStoreMail(u8 taskId) -{ - switch (gPSSData->state) - { - case 0: - PrintStorageActionText(PC_TEXT_CANT_STORE_MAIL); - gPSSData->state++; - break; - case 1: - if (!IsDma3ManagerBusyWithBgCopy()) - gPSSData->state++; - break; - case 2: - if (JOY_NEW(A_BUTTON | B_BUTTON | DPAD_ANY)) - { - ClearBottomWindow(); - gPSSData->state++; - } - break; - case 3: - if (!IsDma3ManagerBusyWithBgCopy()) - SetPSSCallback(Cb_MainPSS); - break; - } -} - -static void Cb_HandleBoxOptions(u8 taskId) -{ - switch (gPSSData->state) - { - case 0: - PrintStorageActionText(PC_TEXT_WHAT_YOU_DO); - AddMenu(); - gPSSData->state++; - break; - case 1: - if (sub_8094F90()) - return; - gPSSData->state++; - case 2: - switch (sub_8094F94()) - { - case -1: - case 0: - AnimateBoxScrollArrows(TRUE); - ClearBottomWindow(); - SetPSSCallback(Cb_MainPSS); - break; - case 11: - PlaySE(SE_SELECT); - SetPSSCallback(Cb_NameBox); - break; - case 10: - PlaySE(SE_SELECT); - ClearBottomWindow(); - SetPSSCallback(Cb_HandleWallpapers); - break; - case 9: - PlaySE(SE_SELECT); - ClearBottomWindow(); - SetPSSCallback(Cb_JumpBox); - break; - } - break; - } -} - -static void Cb_HandleWallpapers(u8 taskId) -{ - switch (gPSSData->state) - { - case 0: - AddWallpaperSetsMenu(); - PrintStorageActionText(PC_TEXT_PICK_A_THEME); - gPSSData->state++; - break; - case 1: - if (!sub_8094F90()) - gPSSData->state++; - break; - case 2: - gPSSData->wallpaperSetId = sub_8094F94(); - switch (gPSSData->wallpaperSetId) - { - case -1: - AnimateBoxScrollArrows(TRUE); - ClearBottomWindow(); - SetPSSCallback(Cb_MainPSS); - break; - case 18 ... 21: - PlaySE(SE_SELECT); - sub_8095024(); - gPSSData->wallpaperSetId -= 18; - gPSSData->state++; - break; - } - break; - case 3: - if (!IsDma3ManagerBusyWithBgCopy()) - { - AddWallpapersMenu(gPSSData->wallpaperSetId); - PrintStorageActionText(PC_TEXT_PICK_A_WALLPAPER); - gPSSData->state++; - } - break; - case 4: - gPSSData->wallpaperId = sub_8094F94(); - switch (gPSSData->wallpaperId) - { - case MENU_NOTHING_CHOSEN: - break; - case MENU_B_PRESSED: - ClearBottomWindow(); - gPSSData->state = 0; - break; - default: - PlaySE(SE_SELECT); - ClearBottomWindow(); - gPSSData->wallpaperId -= 22; - SetWallpaperForCurrentBox(gPSSData->wallpaperId); - gPSSData->state++; - break; - } - break; - case 5: - if (!DoWallpaperGfxChange()) - { - AnimateBoxScrollArrows(TRUE); - SetPSSCallback(Cb_MainPSS); - } - break; - } -} - -static void Cb_JumpBox(u8 taskId) -{ - switch (gPSSData->state) - { - case 0: - PrintStorageActionText(PC_TEXT_JUMP_TO_WHICH_BOX); - LoadChooseBoxMenuGfx(&gPSSData->field_1E5C, TAG_TILE_A, TAG_PAL_DAC7, 3, FALSE); - sub_808C940(StorageGetCurrentBox()); - gPSSData->state++; - break; - case 1: - gPSSData->newCurrBoxId = HandleBoxChooseSelectionInput(); - switch (gPSSData->newCurrBoxId) - { - case 200: - break; - default: - ClearBottomWindow(); - sub_808C950(); - FreeBoxSelectionPopupSpriteGfx(); - if (gPSSData->newCurrBoxId == 201 || gPSSData->newCurrBoxId == StorageGetCurrentBox()) - { - AnimateBoxScrollArrows(TRUE); - SetPSSCallback(Cb_MainPSS); - } - else - { - gPSSData->state++; - } - break; - } - break; - case 2: - SetUpScrollToBox(gPSSData->newCurrBoxId); - gPSSData->state++; - break; - case 3: - if (!ScrollToBox()) - { - SetCurrentBox(gPSSData->newCurrBoxId); - SetPSSCallback(Cb_MainPSS); - } - break; - } -} - -static void Cb_NameBox(u8 taskId) -{ - switch (gPSSData->state) - { - case 0: - sub_8093630(); - BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); - gPSSData->state++; - break; - case 1: - if (!UpdatePaletteFade()) - { - sWhichToReshow = 1; - gPSSData->screenChangeType = SCREEN_CHANGE_NAME_BOX; - SetPSSCallback(Cb_ChangeScreen); - } - break; - } -} - -static void Cb_ShowMonSummary(u8 taskId) -{ - switch (gPSSData->state) - { - case 0: - sub_80936B8(); - BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); - gPSSData->state++; - break; - case 1: - if (!UpdatePaletteFade()) - { - sWhichToReshow = 0; - gPSSData->screenChangeType = SCREEN_CHANGE_SUMMARY_SCREEN; - SetPSSCallback(Cb_ChangeScreen); - } - break; - } -} - -static void Cb_GiveItemFromBag(u8 taskId) -{ - switch (gPSSData->state) - { - case 0: - BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); - gPSSData->state++; - break; - case 1: - if (!UpdatePaletteFade()) - { - sWhichToReshow = 2; - gPSSData->screenChangeType = SCREEN_CHANGE_ITEM_FROM_BAG; - SetPSSCallback(Cb_ChangeScreen); - } - break; - } -} - -static void Cb_OnCloseBoxPressed(u8 taskId) -{ - switch (gPSSData->state) - { - case 0: - if (IsMonBeingMoved()) - { - PlaySE(SE_FAILURE); - PrintStorageActionText(PC_TEXT_HOLDING_POKE); - gPSSData->state = 1; - } - else if (IsActiveItemMoving()) - { - SetPSSCallback(Cb_CloseBoxWhileHoldingItem); - } - else - { - PlaySE(SE_SELECT); - PrintStorageActionText(PC_TEXT_EXIT_BOX); - ShowYesNoWindow(0); - gPSSData->state = 2; - } - break; - case 1: - if (JOY_NEW(A_BUTTON | B_BUTTON | DPAD_ANY)) - { - ClearBottomWindow(); - SetPSSCallback(Cb_MainPSS); - } - break; - case 2: - switch (Menu_ProcessInputNoWrapClearOnChoose()) - { - case MENU_B_PRESSED: - case 1: - ClearBottomWindow(); - SetPSSCallback(Cb_MainPSS); - break; - case 0: - PlaySE(SE_PC_OFF); - ClearBottomWindow(); - gPSSData->state++; - break; - } - break; - case 3: - BeginPCScreenEffect_TurnOff(20, 0, 1); - gPSSData->state++; - break; - case 4: - if (!IsPCScreenEffectRunning_TurnOff()) - { - sub_808FF70(); - gPlayerPartyCount = CalculatePlayerPartyCount(); - gPSSData->screenChangeType = SCREEN_CHANGE_EXIT_BOX; - SetPSSCallback(Cb_ChangeScreen); - } - break; - } -} - -static void Cb_OnBPressed(u8 taskId) -{ - switch (gPSSData->state) - { - case 0: - if (IsMonBeingMoved()) - { - PlaySE(SE_FAILURE); - PrintStorageActionText(PC_TEXT_HOLDING_POKE); - gPSSData->state = 1; - } - else if (IsActiveItemMoving()) - { - SetPSSCallback(Cb_CloseBoxWhileHoldingItem); - } - else - { - PlaySE(SE_SELECT); - PrintStorageActionText(PC_TEXT_CONTINUE_BOX); - ShowYesNoWindow(0); - gPSSData->state = 2; - } - break; - case 1: - if (JOY_NEW(A_BUTTON | B_BUTTON | DPAD_ANY)) - { - ClearBottomWindow(); - SetPSSCallback(Cb_MainPSS); - } - break; - case 2: - switch (Menu_ProcessInputNoWrapClearOnChoose()) - { - case 0: - ClearBottomWindow(); - SetPSSCallback(Cb_MainPSS); - break; - case 1: - case MENU_B_PRESSED: - PlaySE(SE_PC_OFF); - ClearBottomWindow(); - gPSSData->state++; - break; - } - break; - case 3: - BeginPCScreenEffect_TurnOff(20, 0, 0); - gPSSData->state++; - break; - case 4: - if (!IsPCScreenEffectRunning_TurnOff()) - { - sub_808FF70(); - gPlayerPartyCount = CalculatePlayerPartyCount(); - gPSSData->screenChangeType = SCREEN_CHANGE_EXIT_BOX; - SetPSSCallback(Cb_ChangeScreen); - } - break; - } -} - -static void Cb_ChangeScreen(u8 taskId) -{ - struct Pokemon * partyMon; - u8 mode, monIndex, maxMonIndex; - u8 screenChangeType = gPSSData->screenChangeType; - - if (gPSSData->boxOption == OPTION_MOVE_ITEMS && IsActiveItemMoving() == TRUE) - gUnknown_20397BA = GetMovingItem(); - else - gUnknown_20397BA = ITEM_NONE; - - switch (screenChangeType) - { - case SCREEN_CHANGE_EXIT_BOX: - default: - FreePSSData(); - SetMainCallback2(CB2_ExitPokeStorage); - break; - case SCREEN_CHANGE_SUMMARY_SCREEN: - partyMon = gPSSData->field_218C.mon; - monIndex = gPSSData->field_2187; - maxMonIndex = gPSSData->field_2186; - mode = gPSSData->summaryScreenMode; - FreePSSData(); - ShowPokemonSummaryScreen(partyMon, monIndex, maxMonIndex, Cb2_ReturnToPSS, mode); - break; - case SCREEN_CHANGE_NAME_BOX: - FreePSSData(); - DoNamingScreen(NAMING_SCREEN_BOX, GetBoxNamePtr(StorageGetCurrentBox()), 0, 0, 0, Cb2_ReturnToPSS); - break; - case SCREEN_CHANGE_ITEM_FROM_BAG: - FreePSSData(); - GoToBagMenu(ITEMMENULOCATION_PCBOX, OPEN_BAG_ITEMS, Cb2_ReturnToPSS); - break; - } - - DestroyTask(taskId); -} - -static void GiveChosenBagItem(void) -{ - u16 item = gSpecialVar_ItemId; - - if (item != ITEM_NONE) - { - u8 id = GetBoxCursorPosition(); - - if (sInPartyMenu) - SetMonData(&gPlayerParty[id], MON_DATA_HELD_ITEM, &item); - else - SetCurrentBoxMonData(id, MON_DATA_HELD_ITEM, &item); - - RemoveBagItem(item, 1); - } -} - -static void FreePSSData(void) -{ - FreeBoxPartyPokemonDropdowns(); - sub_80950A4(); - FREE_AND_SET_NULL(gPSSData); - FreeAllWindowBuffers(); -} - -// ****************************************************************** -// Graphics util -// ****************************************************************** - -static void SetScrollingBackground(void) -{ - SetGpuReg(REG_OFFSET_BG3CNT, BGCNT_PRIORITY(3) | BGCNT_CHARBASE(3) | BGCNT_16COLOR | BGCNT_SCREENBASE(31)); - DecompressAndLoadBgGfxUsingHeap(3, sPokemonStorageScrollingBGTileset, 0, 0, 0); - LZ77UnCompVram(sPokemonStorageScrollingBGTilemap, (void *)BG_SCREEN_ADDR(31)); -} - -static void ScrollBackground(void) -{ - ChangeBgX(3, 128, 1); - ChangeBgY(3, 128, 2); -} - -static void LoadPSSMenuGfx(void) -{ - InitBgsFromTemplates(0, gUnknown_83CEA50, NELEMS(gUnknown_83CEA50)); - DecompressAndLoadBgGfxUsingHeap(1, gPSSMenu_Gfx, 0, 0, 0); - LZ77UnCompWram(gUnknown_83CE5FC, gPSSData->field_5AC4); - SetBgTilemapBuffer(1, gPSSData->field_5AC4); - ShowBg(1); - ScheduleBgCopyTilemapToVram(1); -} - -static bool8 InitPSSWindows(void) -{ - if (!InitWindows(gUnknown_83CEA30)) - { - return FALSE; - } - else - { - DeactivateAllTextPrinters(); - return TRUE; - } -} - -static void LoadWaveformSpritePalette(void) -{ - LoadSpritePalette(&sWaveformSpritePalette); -} - -static void sub_808F078(void) -{ - LoadPalette(gUnknown_8E9C3F8, 0, 0x20); - LoadPalette(gUnknown_8E9C418, 0x20, 0x20); - LoadPalette(gUnknown_83CEA10, 0xF0, 0x20); - if (gPSSData->boxOption != OPTION_MOVE_ITEMS) - LoadPalette(gUnknown_83CE738, 0x30, 0x20); - else - LoadPalette(gUnknown_83CE758, 0x30, 0x20); - - SetGpuReg(REG_OFFSET_BG1CNT, BGCNT_PRIORITY(1) | BGCNT_CHARBASE(1) | BGCNT_16COLOR | BGCNT_SCREENBASE(30)); - LoadCursorMonSprite(); - PSS_CreateMonMarkingSprite(); - CreateWaveformSprites(); - RefreshCursorMonData(); -} - -static void PSS_CreateMonMarkingSprite(void) -{ - gPSSData->markingComboSprite = CreateMonMarkingComboSprite(TAG_TILE_10, TAG_PAL_DAC8, NULL); - gPSSData->markingComboSprite->oam.priority = 1; - gPSSData->markingComboSprite->subpriority = 1; - gPSSData->markingComboSprite->x = 40; - gPSSData->markingComboSprite->y = 150; - gPSSData->markingComboTilesPtr = (void *)OBJ_VRAM0 + 32 * GetSpriteTileStartByTag(TAG_TILE_10); -} - -static void CreateWaveformSprites(void) -{ - u16 i; - struct SpriteSheet sheet = sWaveformSpriteSheet; - - LoadSpriteSheet(&sheet); - for (i = 0; i < 2; i++) - { - u8 spriteId = CreateSprite(&sSpriteTemplate_Waveform, i * 63 + 8, 9, 2); - gPSSData->waveformSprites[i] = &gSprites[spriteId]; - } -} - -static void RefreshCursorMonData(void) -{ - LoadCursorMonGfx(gPSSData->displayMonSpecies, gPSSData->displayMonPersonality); - PrintCursorMonInfo(); - sub_808F5E8(); - ScheduleBgCopyTilemapToVram(0); -} - -static void BoxSetMosaic(void) -{ - RefreshCursorMonData(); - if (gPSSData->cursorMonSprite) - { - gPSSData->cursorMonSprite->oam.mosaic = TRUE; - gPSSData->cursorMonSprite->data[0] = 10; - gPSSData->cursorMonSprite->data[1] = 1; - gPSSData->cursorMonSprite->callback = SpriteCB_CursorMon_Mosaic; - SetGpuReg(REG_OFFSET_MOSAIC, (gPSSData->cursorMonSprite->data[0] << 12) | (gPSSData->cursorMonSprite->data[0] << 8)); - } -} - -static u8 BoxGetMosaic(void) -{ - return gPSSData->cursorMonSprite->oam.mosaic; -} - -static void SpriteCB_CursorMon_Mosaic(struct Sprite *sprite) -{ - sprite->data[0] -= sprite->data[1]; - if (sprite->data[0] < 0) - sprite->data[0] = 0; - SetGpuReg(REG_OFFSET_MOSAIC, (sprite->data[0] << 12) | (sprite->data[0] << 8)); - if (sprite->data[0] == 0) - { - sprite->oam.mosaic = FALSE; - sprite->callback = SpriteCallbackDummy; - } -} - -static void LoadCursorMonSprite(void) -{ - u16 i; - u16 tileStart; - u8 palSlot; - u8 spriteId; - struct SpriteSheet sheet = {gPSSData->field_22C4, 0x800, TAG_TILE_2}; - struct SpritePalette palette = {gPSSData->field_2244, TAG_PAL_DAC6}; - struct SpriteTemplate template = sSpriteTemplate_CursorMon; - - for (i = 0; i < 0x800; i++) - gPSSData->field_22C4[i] = 0; - for (i = 0; i < 0x10; i++) - gPSSData->field_2244[i] = 0; - - gPSSData->cursorMonSprite = NULL; - - do - { - tileStart = LoadSpriteSheet(&sheet); - if (tileStart == 0) - break; - - palSlot = LoadSpritePalette(&palette); - if (palSlot == 0xFF) - break; - - spriteId = CreateSprite(&template, 40, 48, 0); - if (spriteId == MAX_SPRITES) - break; - - gPSSData->cursorMonSprite = &gSprites[spriteId]; - gPSSData->field_223A = palSlot * 16 + 0x100; - gPSSData->field_223C = (void *)OBJ_VRAM0 + tileStart * 32; - } while (0); - - if (gPSSData->cursorMonSprite == NULL) - { - FreeSpriteTilesByTag(TAG_TILE_2); - FreeSpritePaletteByTag(TAG_PAL_DAC6); - } -} - -static void LoadCursorMonGfx(u16 species, u32 pid) -{ - if (gPSSData->cursorMonSprite == NULL) - return; - - if (species != SPECIES_NONE) - { - HandleLoadSpecialPokePic(&gMonFrontPicTable[species], gPSSData->field_22C4, species, pid); - LZ77UnCompWram(gPSSData->displayMonPalette, gPSSData->field_2244); - CpuCopy32(gPSSData->field_22C4, gPSSData->field_223C, 0x800); - LoadPalette(gPSSData->field_2244, gPSSData->field_223A, 0x20); - gPSSData->cursorMonSprite->invisible = FALSE; - } - else - { - gPSSData->cursorMonSprite->invisible = TRUE; - } -} - -static void PrintCursorMonInfo(void) -{ - u16 i; - u16 y; - FillWindowPixelBuffer(0, PIXEL_FILL(1)); - if (gPSSData->boxOption != OPTION_MOVE_ITEMS) - { - for (i = 0, y = 0; i < 3; i++, y += 14) - { - AddTextPrinterParameterized(0, FONT_2, gPSSData->displayMonTexts[i], i == 2 ? 10 : 6, y, TEXT_SKIP_DRAW, NULL); - } - AddTextPrinterParameterized(0, FONT_0, gPSSData->displayMonTexts[3], 6, y + 2, TEXT_SKIP_DRAW, NULL); - } - else - { - AddTextPrinterParameterized(0, FONT_0, gPSSData->displayMonTexts[3], 6, 0, TEXT_SKIP_DRAW, NULL); - for (i = 0, y = 15; i < 3; i++, y += 14) - { - AddTextPrinterParameterized(0, FONT_2, gPSSData->displayMonTexts[i], i == 2 ? 10 : 6, y, TEXT_SKIP_DRAW, NULL); - } - } - - CopyWindowToVram(0, COPYWIN_GFX); - if (gPSSData->displayMonSpecies != SPECIES_NONE) - { - UpdateMonMarkingTiles(gPSSData->displayMonMarkings, gPSSData->markingComboTilesPtr); - gPSSData->markingComboSprite->invisible = FALSE; - } - else - { - gPSSData->markingComboSprite->invisible = TRUE; - } -} - -static void sub_808F5E8(void) -{ - u16 i; - - if (gPSSData->displayMonSpecies != SPECIES_NONE) - { - SetBoxPartyPokemonDropdownMap2Rect(0, 0, 0, 8, 2); - for (i = 0; i < 2; i++) - StartSpriteAnimIfDifferent(gPSSData->waveformSprites[i], i * 2 + 1); - } - else - { - SetBoxPartyPokemonDropdownMap2Rect(0, 0, 2, 8, 2); - for (i = 0; i < 2; i++) - StartSpriteAnim(gPSSData->waveformSprites[i], i * 2); - } - - CopyBoxPartyPokemonDropdownToBgTilemapBuffer(0); - ScheduleBgCopyTilemapToVram(1); -} - -static void sub_808F68C(void) -{ - LZ77UnCompWram(gUnknown_8E9CAEC, gPSSData->partyMenuTilemapBuffer); - LoadPalette(gPSSMenu_Pal, 0x10, 0x20); - SetBoxPartyPokemonDropdownMap2(1, 1, gPSSData->partyMenuTilemapBuffer, 12, 22); - SetBoxPartyPokemonDropdownMap2(2, 1, gUnknown_83CE778, 9, 4); - SetBoxPartyPokemonDropdownMap2Pos(1, 10, 0); - SetBoxPartyPokemonDropdownMap2Pos(2, 21, 0); - sub_808F9FC(); - if (sInPartyMenu) - { - sub_808F90C(TRUE); - CreatePartyMonsSprites(TRUE); - CopyBoxPartyPokemonDropdownToBgTilemapBuffer(2); - CopyBoxPartyPokemonDropdownToBgTilemapBuffer(1); - } - else - { - SetBoxPartyPokemonDropdownMap2Rect(1, 0, 20, 12, 2); - sub_808F90C(TRUE); - CopyBoxPartyPokemonDropdownToBgTilemapBuffer(1); - CopyBoxPartyPokemonDropdownToBgTilemapBuffer(2); - } - - ScheduleBgCopyTilemapToVram(1); - gPSSData->closeBoxFlashing = FALSE; -} - -static void SetUpShowPartyMenu(void) -{ - gPSSData->partyMenuUnused1 = 20; - gPSSData->partyMenuY = 2; - gPSSData->partyMenuMoveTimer = 0; - CreatePartyMonsSprites(FALSE); -} - -static bool8 ShowPartyMenu(void) -{ - if (gPSSData->partyMenuMoveTimer == 20) - return FALSE; - - gPSSData->partyMenuUnused1--; - gPSSData->partyMenuY++; - AdjustBoxPartyPokemonDropdownPos(1, 3, 1); - CopyBoxPartyPokemonDropdownToBgTilemapBuffer(1); - ScheduleBgCopyTilemapToVram(1); - sub_8090B98(8); - if (++gPSSData->partyMenuMoveTimer == 20) - { - sInPartyMenu = TRUE; - return FALSE; - } - else - { - return TRUE; - } -} - -static void SetUpHidePartyMenu(void) -{ - gPSSData->partyMenuUnused1 = 0; - gPSSData->partyMenuY = 22; - gPSSData->partyMenuMoveTimer = 0; - if (gPSSData->boxOption == OPTION_MOVE_ITEMS) - sub_80960C0(); -} - -static bool8 HidePartyMenu(void) -{ - if (gPSSData->partyMenuMoveTimer != 20) - { - gPSSData->partyMenuUnused1++; - gPSSData->partyMenuY--; - AdjustBoxPartyPokemonDropdownPos(1, 3, -1); - CopyBoxPartyPokemonDropdownToBgTilemapBuffer(1); - FillBgTilemapBufferRect_Palette0(1, 0x100, 10, gPSSData->partyMenuY, 12, 1); - sub_8090B98(-8); - if (++gPSSData->partyMenuMoveTimer != 20) - { - ScheduleBgCopyTilemapToVram(1); - return TRUE; - } - else - { - sInPartyMenu = FALSE; - DestroyAllPartyMonIcons(); - CompactPartySlots(); - SetBoxPartyPokemonDropdownMap2Rect(2, 0, 0, 9, 2); - CopyBoxPartyPokemonDropdownToBgTilemapBuffer(2); - ScheduleBgCopyTilemapToVram(1); - return FALSE; - } - } - - return FALSE; -} - -static void sub_808F90C(bool8 arg0) -{ - if (arg0) - SetBoxPartyPokemonDropdownMap2Rect(2, 0, 0, 9, 2); - else - SetBoxPartyPokemonDropdownMap2Rect(2, 0, 2, 9, 2); - - CopyBoxPartyPokemonDropdownToBgTilemapBuffer(2); - ScheduleBgCopyTilemapToVram(1); -} - -static void sub_808F948(void) -{ - gPSSData->closeBoxFlashing = TRUE; - gPSSData->closeBoxFlashTimer = 30; - gPSSData->closeBoxFlashState = TRUE; -} - -static void sub_808F974(void) -{ - if (gPSSData->closeBoxFlashing) - { - gPSSData->closeBoxFlashing = FALSE; - sub_808F90C(TRUE); - } -} - -static void sub_808F99C(void) -{ - if (gPSSData->closeBoxFlashing && ++gPSSData->closeBoxFlashTimer > 30) - { - gPSSData->closeBoxFlashTimer = 0; - gPSSData->closeBoxFlashState = (gPSSData->closeBoxFlashState == FALSE); - sub_808F90C(gPSSData->closeBoxFlashState); - } -} - -static void sub_808F9FC(void) -{ - u8 i; - - for (i = 1; i < PARTY_SIZE; i++) - { - s32 species = GetMonData(gPlayerParty + i, MON_DATA_SPECIES); - sub_808FA30(i, (species != SPECIES_NONE)); - } -} - -static void sub_808FA30(u8 pos, bool8 isPartyMon) -{ - u16 i, j, index; - const u16 *data; - - if (isPartyMon) - data = gUnknown_83CE7C0; - else - data = gUnknown_83CE7D8; - - index = 3 * (3 * (pos - 1) + 1); - index *= 4; - index += 7; - for (i = 0; i < 3; i++) - { - for (j = 0; j < 4; j++) - { - gPSSData->partyMenuTilemapBuffer[index + j] = data[j]; - } - data += 4; - index += 12; - } -} - -static void sub_808FAA8(void) -{ - sub_808F9FC(); - SetBoxPartyPokemonDropdownMap2Rect(1, 0, 0, 12, 22); - CopyBoxPartyPokemonDropdownToBgTilemapBuffer(1); - ScheduleBgCopyTilemapToVram(1); -} - -static void SetUpDoShowPartyMenu(void) -{ - gPSSData->showPartyMenuState = 0; - PlaySE(SE_WIN_OPEN); - SetUpShowPartyMenu(); -} - -static bool8 DoShowPartyMenu(void) -{ - switch (gPSSData->showPartyMenuState) - { - case 0: - if (!ShowPartyMenu()) - { - sub_8092AE4(); - gPSSData->showPartyMenuState++; - } - break; - case 1: - if (!sub_80924A8()) - { - if (gPSSData->setMosaic) - BoxSetMosaic(); - gPSSData->showPartyMenuState++; - } - break; - case 2: - return FALSE; - } - return TRUE; -} - -static void sub_808FB68(void) -{ - SetGpuReg(REG_OFFSET_BG0CNT, BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(29)); - TextWindow_SetStdFrame0_WithPal(1, 2, 208); - FillBgTilemapBufferRect(0, 0, 0, 0, 32, 20, 17); - CopyBgTilemapBufferToVram(0); -} - -static void PrintStorageActionText(u8 id) -{ - u8 *txtPtr; - - DynamicPlaceholderTextUtil_Reset(); - switch (sPCStorageActionTexts[id].format) - { - case PC_TEXT_FMT_NORMAL: - break; - case PC_TEXT_FMT_MON_NAME_1: - case PC_TEXT_FMT_MON_NAME_2: - case PC_TEXT_FMT_MON_NAME_3: - DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gPSSData->displayMonName); - break; - case PC_TEXT_FMT_MON_NAME_4: - case PC_TEXT_FMT_MON_NAME_5: - case PC_TEXT_FMT_MON_NAME_6: - DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gPSSData->field_21E0); - break; - case PC_TEXT_FMT_ITEM_NAME: - if (IsActiveItemMoving()) - txtPtr = StringCopy(gPSSData->itemName, GetMovingItemName()); - else - txtPtr = StringCopy(gPSSData->itemName, gPSSData->displayMonTexts[3]); - - while (*(txtPtr - 1) == CHAR_SPACE) - txtPtr--; - - *txtPtr = EOS; - DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gPSSData->itemName); - break; - } - - DynamicPlaceholderTextUtil_ExpandPlaceholders(gPSSData->field_2190, sPCStorageActionTexts[id].text); - FillWindowPixelBuffer(1, PIXEL_FILL(1)); - AddTextPrinterParameterized(1, FONT_1, gPSSData->field_2190, 0, 2, TEXT_SKIP_DRAW, NULL); - DrawTextBorderOuter(1, 2, 13); - PutWindowTilemap(1); - CopyWindowToVram(1, COPYWIN_GFX); - ScheduleBgCopyTilemapToVram(0); -} - -static void ShowYesNoWindow(s8 cursorPos) -{ - CreateYesNoMenu(&sYesNoWindowTemplate, FONT_1, 0, 2, 0x00b, 14, 1); - Menu_MoveCursorNoWrapAround(cursorPos); -} - -static void ClearBottomWindow(void) -{ - ClearStdWindowAndFrameToTransparent(1, FALSE); - ScheduleBgCopyTilemapToVram(0); -} - -static void AddWallpaperSetsMenu(void) -{ - InitMenu(); - SetMenuText(PC_TEXT_SCENERY1); - SetMenuText(PC_TEXT_SCENERY2); - SetMenuText(PC_TEXT_SCENERY3); - SetMenuText(PC_TEXT_ETCETERA); - AddMenu(); -} - -static void AddWallpapersMenu(u8 wallpaperSet) -{ - InitMenu(); - switch (wallpaperSet) - { - case 0: - SetMenuText(PC_TEXT_FOREST); - SetMenuText(PC_TEXT_CITY); - SetMenuText(PC_TEXT_DESERT); - SetMenuText(PC_TEXT_SAVANNA); - break; - case 1: - SetMenuText(PC_TEXT_CRAG); - SetMenuText(PC_TEXT_VOLCANO); - SetMenuText(PC_TEXT_SNOW); - SetMenuText(PC_TEXT_CAVE); - break; - case 2: - SetMenuText(PC_TEXT_BEACH); - SetMenuText(PC_TEXT_SEAFLOOR); - SetMenuText(PC_TEXT_RIVER); - SetMenuText(PC_TEXT_SKY); - break; - case 3: - SetMenuText(PC_TEXT_POLKADOT); - SetMenuText(PC_TEXT_POKECENTER); - SetMenuText(PC_TEXT_MACHINE); - SetMenuText(PC_TEXT_SIMPLE); - break; - } - AddMenu(); -} - -u8 GetCurrentBoxOption(void) -{ - return sCurrentBoxOption; -} - -static void sub_808FDFC(void) -{ - if (!IsCursorOnBoxTitle()) - { - if (sInPartyMenu) - sub_8095C84(CURSOR_AREA_IN_PARTY, GetBoxCursorPosition()); - else - sub_8095C84(CURSOR_AREA_IN_BOX, GetBoxCursorPosition()); - } - - if (gUnknown_20397BA != ITEM_NONE) - { - sub_8095E2C(gUnknown_20397BA); - sub_8094D14(3); - } -} - -static void sub_808FE54(u8 action) -{ - u16 event; - u8 fromBox = sub_8094D34(); - u16 species = gPSSData->displayMonSpecies; - u16 species2; - u8 toBox; - struct PssQuestLogBuffer * qlogBuffer; - if (sInPartyMenu) - { - toBox = TOTAL_BOXES_COUNT; - species2 = GetMonData(&gPlayerParty[GetBoxCursorPosition()], MON_DATA_SPECIES2); - } - else - { - toBox = StorageGetCurrentBox(); - species2 = GetCurrentBoxMonData(GetBoxCursorPosition(), MON_DATA_SPECIES2); - } - qlogBuffer = &gPSSData->qlogBuffer; - - switch (action) - { - default: - return; - case 0: - if (sInPartyMenu) - { - if (fromBox == TOTAL_BOXES_COUNT) - return; - else - event = QL_EVENT_SWITCHED_PARTY_MON_FOR_PC_MON; - } - else - { - if (fromBox == TOTAL_BOXES_COUNT) - // Should upmerge but doesn't - event = QL_EVENT_SWITCHED_PARTY_MON_FOR_PC_MON; - else - event = fromBox != toBox ? QL_EVENT_SWITCHED_MONS_BETWEEN_BOXES : QL_EVENT_SWITCHED_MONS_WITHIN_BOX; - } - qlogBuffer->species = species; - qlogBuffer->species2 = species2; - qlogBuffer->fromBox = fromBox; - qlogBuffer->toBox = toBox; - break; - case 1: - qlogBuffer->species = species; - qlogBuffer->species2 = SPECIES_NONE; - qlogBuffer->fromBox = fromBox; - qlogBuffer->toBox = 0xFF; - if (sInPartyMenu) - { - if (fromBox == TOTAL_BOXES_COUNT) - return; - else - event = QL_EVENT_WITHDREW_MON_PC; - } - else - { - if (fromBox == TOTAL_BOXES_COUNT) - { - event = QL_EVENT_DEPOSITED_MON_PC; - qlogBuffer->fromBox = toBox; - } - else if (fromBox != toBox) - { - event = QL_EVENT_MOVED_MON_BETWEEN_BOXES; - qlogBuffer->toBox = toBox; - } - else - event = QL_EVENT_MOVED_MON_WITHIN_BOX; - } - break; - case 2: - event = QL_EVENT_DEPOSITED_MON_PC; - qlogBuffer->species = species; - qlogBuffer->species2 = SPECIES_NONE; - qlogBuffer->fromBox = gUnknown_20397B6; - qlogBuffer->toBox = 0xFF; - break; - case 3: - event = QL_EVENT_SWITCHED_MULTIPLE_MONS; - qlogBuffer->species = SPECIES_NONE; - qlogBuffer->species2 = SPECIES_NONE; - qlogBuffer->fromBox = fromBox; - qlogBuffer->toBox = toBox; - break; - } - SetQuestLogEvent(event, (const void *)qlogBuffer); -} - -static void sub_808FF70(void) -{ - if (sLastUsedBox != StorageGetCurrentBox()) - { - FlagClear(FLAG_SHOWN_BOX_WAS_FULL_MESSAGE); - VarSet(VAR_PC_BOX_TO_SEND_MON, StorageGetCurrentBox()); - } -} diff --git a/src/pokemon_storage_system_4.c b/src/pokemon_storage_system_4.c deleted file mode 100644 index cbd2f1b9c..000000000 --- a/src/pokemon_storage_system_4.c +++ /dev/null @@ -1,1504 +0,0 @@ -#include "global.h" -#include "gflib.h" -#include "event_data.h" -#include "graphics.h" -#include "new_menu_helpers.h" -#include "pokemon_icon.h" -#include "pokemon_storage_system_internal.h" -#include "strings.h" -#include "task.h" -#include "trig.h" - -static void sub_8090324(struct Sprite *sprite); -static void SetBoxSpeciesAndPersonalities(u8 boxId); -static void sub_8090A74(struct Sprite *sprite, u16 idx); -static void sub_8090AE0(struct Sprite *sprite); -static void DestroyBoxMonIcon(struct Sprite *sprite); -static void sub_80911B0(struct Sprite *sprite); -static void sub_8091420(u8 taskId); -static s8 sub_80916F4(u8 boxId); -static void LoadWallpaperGfx(u8 wallpaperId, s8 direction); -static bool32 WaitForWallpaperGfxLoad(void); -static void sub_8091984(void *buffer, const void *buffer2, s8 direction, u8 baseBlock); -static void sub_8091A24(void *buffer); -static void sub_8091A94(u8 wallpaperId); -static void sub_8091C48(u8 wallpaperId, s8 direction); -static void sub_8091E84(struct Sprite *sprite); -static void sub_8091EB8(struct Sprite *sprite); -static s16 GetBoxTitleBaseX(const u8 *boxName); -static void sub_8091E34(void); -static void CycleBoxTitleColor(void); -static void CreateBoxScrollArrows(void); -static void StartBoxScrollArrowsSlide(s8 direction); -static void StopBoxScrollArrowsSlide(void); -static void SpriteCB_Arrow(struct Sprite *sprite); - -static const struct OamData gUnknown_83CEC08; - -static const struct SpriteTemplate gUnknown_83CEBF0 = { - .tileTag = TAG_TILE_12, - .paletteTag = TAG_PAL_DAC0, - .oam = &gUnknown_83CEC08, - .anims = gDummySpriteAnimTable, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCallbackDummy -}; - -static const struct OamData gUnknown_83CEC08 = { - .y = 0, - .affineMode = ST_OAM_AFFINE_OFF, - .objMode = ST_OAM_OBJ_NORMAL, - .mosaic = FALSE, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(32x32), - .x = 0, - .matrixNum = 0, - .size = SPRITE_SIZE(32x32), - .tileNum = 0x000, - .priority = 0, - .paletteNum = 0 -}; - -static const union AffineAnimCmd gUnknown_83CEC10[] = { - AFFINEANIMCMD_FRAME(-2, -2, 0, 120), - AFFINEANIMCMD_END -}; - -static const union AffineAnimCmd gUnknown_83CEC20[] = { - AFFINEANIMCMD_FRAME(16, 16, 0, 0), - AFFINEANIMCMD_FRAME(16, 16, 0, 15), - AFFINEANIMCMD_END -}; - -static const union AffineAnimCmd *const gUnknown_83CEC38[] = { - gUnknown_83CEC10, - gUnknown_83CEC20 -}; - -static const u16 gUnknown_83CEC40[] = INCBIN_U16("graphics/interface/pss_unk_83CEC40.gbapal"); -static const u32 gUnknown_83CEC80[] = INCBIN_U32("graphics/interface/pss_unk_83CEC80.4bpp.lz"); -static const u32 gUnknown_83CF050[] = INCBIN_U32("graphics/interface/pss_unk_83CF050.bin.lz"); -static const u16 gUnknown_83CF12C[] = INCBIN_U16("graphics/interface/pss_unk_83CF12C.gbapal"); -static const u32 gUnknown_83CF16C[] = INCBIN_U32("graphics/interface/pss_unk_83CF16C.4bpp.lz"); -static const u32 gUnknown_83CF374[] = INCBIN_U32("graphics/interface/pss_unk_83CF374.bin.lz"); -static const u16 gUnknown_83CF424[] = INCBIN_U16("graphics/interface/pss_unk_83CF424.gbapal"); -static const u32 gUnknown_83CF464[] = INCBIN_U32("graphics/interface/pss_unk_83CF464.4bpp.lz"); -static const u32 gUnknown_83CF750[] = INCBIN_U32("graphics/interface/pss_unk_83CF750.bin.lz"); -static const u16 gUnknown_83CF834[] = INCBIN_U16("graphics/interface/pss_unk_83CF834.gbapal"); -static const u32 gUnknown_83CF874[] = INCBIN_U32("graphics/interface/pss_unk_83CF874.4bpp.lz"); -static const u32 gUnknown_83CFA94[] = INCBIN_U32("graphics/interface/pss_unk_83CFA94.bin.lz"); -static const u16 gUnknown_83CFB60[] = INCBIN_U16("graphics/interface/pss_unk_83CFB60.gbapal"); -static const u32 gUnknown_83CFBA0[] = INCBIN_U32("graphics/interface/pss_unk_83CFBA0.4bpp.lz"); -static const u32 gUnknown_83CFEF0[] = INCBIN_U32("graphics/interface/pss_unk_83CFEF0.bin.lz"); -static const u16 gUnknown_83CFFC8[] = INCBIN_U16("graphics/interface/pss_unk_83CFFC8.gbapal"); -static const u32 gUnknown_83D0008[] = INCBIN_U32("graphics/interface/pss_unk_83D0008.4bpp.lz"); -static const u8 sSpace_83D0338[4] = {}; -static const u32 gUnknown_83D033C[] = INCBIN_U32("graphics/interface/pss_unk_83D033C.bin.lz"); -static const u16 gUnknown_83D0414[] = INCBIN_U16("graphics/interface/pss_unk_83D0414.gbapal"); -static const u32 gUnknown_83D0454[] = INCBIN_U32("graphics/interface/pss_unk_83D0454.4bpp.lz"); -static const u32 gUnknown_83D070C[] = INCBIN_U32("graphics/interface/pss_unk_83D070C.bin.lz"); -static const u16 gUnknown_83D07D8[] = INCBIN_U16("graphics/interface/pss_unk_83D07D8.gbapal"); -static const u32 gUnknown_83D0818[] = INCBIN_U32("graphics/interface/pss_unk_83D0818.4bpp.lz"); -static const u32 gUnknown_83D0B5C[] = INCBIN_U32("graphics/interface/pss_unk_83D0B5C.bin.lz"); -static const u16 gUnknown_83D0C38[] = INCBIN_U16("graphics/interface/pss_unk_83D0C38.gbapal"); -static const u32 gUnknown_83D0C78[] = INCBIN_U32("graphics/interface/pss_unk_83D0C78.4bpp.lz"); -static const u32 gUnknown_83D0FFC[] = INCBIN_U32("graphics/interface/pss_unk_83D0FFC.bin.lz"); -static const u16 gUnknown_83D10E4[] = INCBIN_U16("graphics/interface/pss_unk_83D10E4.gbapal"); -static const u32 gUnknown_83D1124[] = INCBIN_U32("graphics/interface/pss_unk_83D1124.4bpp.lz"); -static const u32 gUnknown_83D13D8[] = INCBIN_U32("graphics/interface/pss_unk_83D13D8.bin.lz"); -static const u16 gUnknown_83D14B4[] = INCBIN_U16("graphics/interface/pss_unk_83D14B4.gbapal"); -static const u32 gUnknown_83D14F4[] = INCBIN_U32("graphics/interface/pss_unk_83D14F4.4bpp.lz"); -static const u32 gUnknown_83D1788[] = INCBIN_U32("graphics/interface/pss_unk_83D1788.bin.lz"); -static const u16 gUnknown_83D1874[] = INCBIN_U16("graphics/interface/pss_unk_83D1874.gbapal"); -static const u32 gUnknown_83D18B4[] = INCBIN_U32("graphics/interface/pss_unk_83D18B4.4bpp.lz"); -static const u32 gUnknown_83D1B4C[] = INCBIN_U32("graphics/interface/pss_unk_83D1B4C.bin.lz"); -static const u16 gUnknown_83D1C2C[] = INCBIN_U16("graphics/interface/pss_unk_83D1C2C.gbapal"); -static const u8 sSpace_83D1C6C[32] = {}; -static const u32 gUnknown_83D1C8C[] = INCBIN_U32("graphics/interface/pss_unk_83D1C8C.4bpp.lz"); -static const u32 gUnknown_83D1EC4[] = INCBIN_U32("graphics/interface/pss_unk_83D1EC4.bin.lz"); -static const u16 gUnknown_83D1F94[] = INCBIN_U16("graphics/interface/pss_unk_83D1F94.gbapal"); -static const u32 gUnknown_83D1FD4[] = INCBIN_U32("graphics/interface/pss_unk_83D1FD4.4bpp.lz"); -static const u32 gUnknown_83D22B8[] = INCBIN_U32("graphics/interface/pss_unk_83D22B8.bin.lz"); -static const u16 gUnknown_83D239C[] = INCBIN_U16("graphics/interface/pss_unk_83D239C.gbapal"); -static const u32 gUnknown_83D23DC[] = INCBIN_U32("graphics/interface/pss_unk_83D23DC.4bpp.lz"); -static const u32 gUnknown_83D256C[] = INCBIN_U32("graphics/interface/pss_unk_83D256C.bin.lz"); -static const u16 gUnknown_83D2614[] = INCBIN_U16("graphics/interface/pss_unk_83D2614.gbapal"); -static const u32 gUnknown_83D2654[] = INCBIN_U32("graphics/interface/pss_unk_83D2654.4bpp.lz"); -static const u32 gUnknown_83D277C[] = INCBIN_U32("graphics/interface/pss_unk_83D277C.bin.lz"); -static const u16 gUnknown_83D2820[] = INCBIN_U16("graphics/interface/pss_unk_83D2820.bin"); - -static const u16 sBoxTitleColors[][2] = { - {RGB( 7, 7, 7), RGB(31, 31, 31)}, - {RGB( 7, 7, 7), RGB(31, 31, 31)}, - {RGB( 7, 7, 7), RGB(31, 31, 31)}, - {RGB( 7, 7, 7), RGB(31, 31, 31)}, - {RGB( 7, 7, 7), RGB(31, 31, 31)}, - {RGB( 7, 7, 7), RGB(31, 31, 31)}, - {RGB( 7, 7, 7), RGB(31, 31, 31)}, - {RGB( 7, 7, 7), RGB(31, 31, 31)}, - {RGB( 7, 7, 7), RGB(31, 31, 31)}, - {RGB( 7, 7, 7), RGB(31, 31, 31)}, - {RGB( 7, 7, 7), RGB(31, 31, 31)}, - {RGB( 7, 7, 7), RGB(31, 31, 31)}, - {RGB( 7, 7, 7), RGB(31, 31, 31)}, - {RGB( 7, 7, 7), RGB(31, 31, 31)}, - {RGB( 7, 7, 7), RGB(31, 31, 31)}, - {RGB( 7, 7, 7), RGB(31, 31, 31)} -}; - -static const struct WallpaperTable sWallpaperTable[] = { - {gUnknown_83CEC80, gUnknown_83CF050, gUnknown_83CEC40}, - {gUnknown_83CF16C, gUnknown_83CF374, gUnknown_83CF12C}, - {gUnknown_83CF464, gUnknown_83CF750, gUnknown_83CF424}, - {gUnknown_83CF874, gUnknown_83CFA94, gUnknown_83CF834}, - {gUnknown_83CFBA0, gUnknown_83CFEF0, gUnknown_83CFB60}, - {gUnknown_83D0008, gUnknown_83D033C, gUnknown_83CFFC8}, - {gUnknown_83D0454, gUnknown_83D070C, gUnknown_83D0414}, - {gUnknown_83D0818, gUnknown_83D0B5C, gUnknown_83D07D8}, - {gUnknown_83D0C78, gUnknown_83D0FFC, gUnknown_83D0C38}, - {gUnknown_83D1124, gUnknown_83D13D8, gUnknown_83D10E4}, - {gUnknown_83D14F4, gUnknown_83D1788, gUnknown_83D14B4}, - {gUnknown_83D18B4, gUnknown_83D1B4C, gUnknown_83D1874}, - {gUnknown_83D1C8C, gUnknown_83D1EC4, gUnknown_83D1C2C}, - {gUnknown_83D1FD4, gUnknown_83D22B8, gUnknown_83D1F94}, - {gUnknown_83D23DC, gUnknown_83D256C, gUnknown_83D239C}, - {gUnknown_83D2654, gUnknown_83D277C, gUnknown_83D2614}, -}; - -static const u16 gUnknown_83D2AD0[] = INCBIN_U16("graphics/interface/pss_unk_83D2AD0.4bpp"); -static const u8 sUnref_83D2B50[] = {0xba, 0x23}; - -static const struct SpriteSheet sSpriteSheet_Arrow = { - gUnknown_83D2AD0, 0x0080, TAG_TILE_6 -}; - -static const struct OamData gUnknown_83D2B5C = { - .y = 0, - .affineMode = ST_OAM_AFFINE_OFF, - .objMode = ST_OAM_OBJ_NORMAL, - .mosaic = FALSE, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(32x16), - .x = 0, - .matrixNum = 0, - .size = SPRITE_SIZE(32x16), - .tileNum = 0, - .priority = 2, - .paletteNum = 0 -}; - -static const union AnimCmd gUnknown_83D2B64[] = { - ANIMCMD_FRAME(0, 5), - ANIMCMD_END -}; - -static const union AnimCmd gUnknown_83D2B6C[] = { - ANIMCMD_FRAME(8, 5), - ANIMCMD_END -}; - -static const union AnimCmd *const gUnknown_83D2B74[] = { - gUnknown_83D2B64, - gUnknown_83D2B6C -}; - -static const struct SpriteTemplate gUnknown_83D2B7C = { - .tileTag = TAG_TILE_3, - .paletteTag = TAG_PAL_DAC9, - .oam = &gUnknown_83D2B5C, - .anims = gUnknown_83D2B74, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCallbackDummy -}; - -static const struct OamData gUnknown_83D2B94 = { - .y = 0, - .affineMode = ST_OAM_AFFINE_OFF, - .objMode = ST_OAM_OBJ_NORMAL, - .mosaic = FALSE, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(8x16), - .x = 0, - .matrixNum = 0, - .size = SPRITE_SIZE(8x16), - .tileNum = 0x000, - .priority = 2, - .paletteNum = 0 -}; - -static const union AnimCmd gUnknown_83D2B9C[] = { - ANIMCMD_FRAME(0, 5), - ANIMCMD_END -}; - -static const union AnimCmd gUnknown_83D2BA4[] = { - ANIMCMD_FRAME(2, 5), - ANIMCMD_END -}; - -static const union AnimCmd *const gUnknown_83D2BAC[] = { - gUnknown_83D2B9C, - gUnknown_83D2BA4 -}; - -static const struct SpriteTemplate sSpriteTemplate_Arrow = { - .tileTag = TAG_TILE_6, - .paletteTag = TAG_PAL_WAVEFORM, - .oam = &gUnknown_83D2B94, - .anims = gUnknown_83D2BAC, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCB_Arrow -}; - -void sub_808FFAC(void) -{ - u16 i; - - LoadMonIconPalettes(); - for (i = 0; i < MAX_MON_ICONS; i++) - gPSSData->numIconsPerSpecies[i] = 0; - for (i = 0; i < MAX_MON_ICONS; i++) - gPSSData->iconSpeciesList[i] = 0; - for (i = 0; i < PARTY_SIZE; i++) - gPSSData->partySprites[i] = NULL; - for (i = 0; i < IN_BOX_COUNT; i++) - gPSSData->boxMonsSprites[i] = NULL; - - gPSSData->movingMonSprite = NULL; - gPSSData->unkUnused1 = 0; -} - -static u8 sub_8090058(void) -{ - return (IsCursorInBox() ? 2 : 1); -} - -void CreateMovingMonIcon(void) -{ - u32 personality = GetMonData(&gPSSData->movingMon, MON_DATA_PERSONALITY); - u16 species = GetMonData(&gPSSData->movingMon, MON_DATA_SPECIES2); - u8 priority = sub_8090058(); - - gPSSData->movingMonSprite = CreateMonIconSprite(species, personality, 0, 0, priority, 7); - gPSSData->movingMonSprite->callback = sub_80911B0; -} - -static void sub_80900D4(u8 boxId) -{ - u8 boxPosition; - u16 i, j, count; - u16 species; - u32 personality; - - count = 0; - boxPosition = 0; - for (i = 0; i < IN_BOX_COLUMNS; i++) - { - for (j = 0; j < IN_BOX_ROWS; j++) - { - species = GetBoxMonDataAt(boxId, boxPosition, MON_DATA_SPECIES2); - if (species != SPECIES_NONE) - { - personality = GetBoxMonDataAt(boxId, boxPosition, MON_DATA_PERSONALITY); - gPSSData->boxMonsSprites[count] = CreateMonIconSprite(species, personality, 8 * (3 * j) + 100, 8 * (3 * i) + 44, 2, 19 - j); - } - else - { - gPSSData->boxMonsSprites[count] = NULL; - } - boxPosition++; - count++; - } - } - - if (gPSSData->boxOption == OPTION_MOVE_ITEMS) - { - for (boxPosition = 0; boxPosition < IN_BOX_COUNT; boxPosition++) - { - if (GetBoxMonDataAt(boxId, boxPosition, MON_DATA_HELD_ITEM) == 0) - gPSSData->boxMonsSprites[boxPosition]->oam.objMode = ST_OAM_OBJ_BLEND; - } - } -} - -void sub_80901EC(u8 boxPosition) -{ - u16 species = GetCurrentBoxMonData(boxPosition, MON_DATA_SPECIES2); - - if (species != SPECIES_NONE) - { - s16 x = 8 * (3 * (boxPosition % IN_BOX_ROWS)) + 100; - s16 y = 8 * (3 * (boxPosition / IN_BOX_ROWS)) + 44; - u32 personality = GetCurrentBoxMonData(boxPosition, MON_DATA_PERSONALITY); - - gPSSData->boxMonsSprites[boxPosition] = CreateMonIconSprite(species, personality, x, y, 2, 19 - (boxPosition % IN_BOX_ROWS)); - if (gPSSData->boxOption == OPTION_MOVE_ITEMS) - gPSSData->boxMonsSprites[boxPosition]->oam.objMode = ST_OAM_OBJ_BLEND; - } -} - -static void sub_809029C(s16 arg0) -{ - u16 i; - - for (i = 0; i < IN_BOX_COUNT; i++) - { - if (gPSSData->boxMonsSprites[i] != NULL) - { - gPSSData->boxMonsSprites[i]->data[2] = arg0; - gPSSData->boxMonsSprites[i]->data[4] = 1; - gPSSData->boxMonsSprites[i]->callback = sub_8090324; - } - } -} - -static void sub_80902E0(struct Sprite *sprite) -{ - if (sprite->data[1] != 0) - { - sprite->data[1]--; - sprite->x += sprite->data[2]; - } - else - { - gPSSData->iconScrollNumIncoming--; - sprite->x = sprite->data[3]; - sprite->callback = SpriteCallbackDummy; - } -} - -static void sub_8090324(struct Sprite *sprite) -{ - if (sprite->data[4] != 0) - { - sprite->data[4]--; - } - else - { - sprite->x += sprite->data[2]; - sprite->data[5] = sprite->x + sprite->x2; - if (sprite->data[5] <= 68 || sprite->data[5] >= 252) - sprite->callback = SpriteCallbackDummy; - } -} - -static void DestroyAllIconsInRow(u8 row) -{ - u16 column; - u8 boxPosition = row; - - for (column = 0; column < IN_BOX_COLUMNS; column++) - { - if (gPSSData->boxMonsSprites[boxPosition] != NULL) - { - DestroyBoxMonIcon(gPSSData->boxMonsSprites[boxPosition]); - gPSSData->boxMonsSprites[boxPosition] = NULL; - } - boxPosition += IN_BOX_ROWS; - } -} - -static u8 sub_80903A4(u8 row, u16 times, s16 xDelta) -{ - s32 i; - u16 y = 44; - s16 xDest = 8 * (3 * row) + 100; - u16 x = xDest - ((times + 1) * xDelta); - u8 subpriority = 19 - row; - u8 count = 0; - u8 boxPosition = row; - - if (gPSSData->boxOption != OPTION_MOVE_ITEMS) - { - for (i = 0; i < IN_BOX_COLUMNS; i++) - { - if (gPSSData->boxSpecies[boxPosition] != SPECIES_NONE) - { - gPSSData->boxMonsSprites[boxPosition] = CreateMonIconSprite(gPSSData->boxSpecies[boxPosition], - gPSSData->boxPersonalities[boxPosition], - x, y, 2, subpriority); - if (gPSSData->boxMonsSprites[boxPosition] != NULL) - { - gPSSData->boxMonsSprites[boxPosition]->data[1] = times; - gPSSData->boxMonsSprites[boxPosition]->data[2] = xDelta; - gPSSData->boxMonsSprites[boxPosition]->data[3] = xDest; - gPSSData->boxMonsSprites[boxPosition]->callback = sub_80902E0; - count++; - } - } - boxPosition += IN_BOX_ROWS; - y += 24; - } - } - else - { - for (i = 0; i < IN_BOX_COLUMNS; i++) - { - if (gPSSData->boxSpecies[boxPosition] != SPECIES_NONE) - { - gPSSData->boxMonsSprites[boxPosition] = CreateMonIconSprite(gPSSData->boxSpecies[boxPosition], - gPSSData->boxPersonalities[boxPosition], - x, y, 2, subpriority); - if (gPSSData->boxMonsSprites[boxPosition] != NULL) - { - gPSSData->boxMonsSprites[boxPosition]->data[1] = times; - gPSSData->boxMonsSprites[boxPosition]->data[2] = xDelta; - gPSSData->boxMonsSprites[boxPosition]->data[3] = xDest; - gPSSData->boxMonsSprites[boxPosition]->callback = sub_80902E0; - if (GetBoxMonDataAt(gPSSData->incomingBoxId, boxPosition, MON_DATA_HELD_ITEM) == 0) - gPSSData->boxMonsSprites[boxPosition]->oam.objMode = ST_OAM_OBJ_BLEND; - count++; - } - } - boxPosition += IN_BOX_ROWS; - y += 24; - } - } - - return count; -} - -static void sub_8090574(u8 boxId, s8 direction) -{ - gPSSData->iconScrollState = 0; - gPSSData->iconScrollToBoxId = boxId; - gPSSData->iconScrollDirection = direction; - gPSSData->iconScrollDistance = 32; - gPSSData->iconScrollSpeed = -(6 * direction); - gPSSData->iconScrollNumIncoming = 0; - SetBoxSpeciesAndPersonalities(boxId); - if (direction > 0) - gPSSData->iconScrollCurColumn = 0; - else - gPSSData->iconScrollCurColumn = IN_BOX_ROWS - 1; - - gPSSData->iconScrollPos = (24 * gPSSData->iconScrollCurColumn) + 100; - sub_809029C(gPSSData->iconScrollSpeed); -} - -static bool8 sub_809062C(void) -{ - if (gPSSData->iconScrollDistance != 0) - gPSSData->iconScrollDistance--; - - switch (gPSSData->iconScrollState) - { - case 0: - gPSSData->iconScrollPos += gPSSData->iconScrollSpeed; - if (gPSSData->iconScrollPos <= 64 || gPSSData->iconScrollPos >= 252) - { - DestroyAllIconsInRow(gPSSData->iconScrollCurColumn); - gPSSData->iconScrollPos += gPSSData->iconScrollDirection * 24; - gPSSData->iconScrollState++; - } - break; - case 1: - gPSSData->iconScrollPos += gPSSData->iconScrollSpeed; - gPSSData->iconScrollNumIncoming += sub_80903A4(gPSSData->iconScrollCurColumn, gPSSData->iconScrollDistance, gPSSData->iconScrollSpeed); - if ((gPSSData->iconScrollDirection > 0 && gPSSData->iconScrollCurColumn == IN_BOX_ROWS - 1) - || (gPSSData->iconScrollDirection < 0 && gPSSData->iconScrollCurColumn == 0)) - { - gPSSData->iconScrollState++; - } - else - { - gPSSData->iconScrollCurColumn += gPSSData->iconScrollDirection; - gPSSData->iconScrollState = 0; - } - break; - case 2: - if (gPSSData->iconScrollNumIncoming == 0) - { - gPSSData->iconScrollDistance++; - return FALSE; - } - break; - default: - return FALSE; - } - - return TRUE; -} - -static void SetBoxSpeciesAndPersonalities(u8 boxId) -{ - s32 i, j, boxPosition; - - boxPosition = 0; - for (i = 0; i < IN_BOX_COLUMNS; i++) - { - for (j = 0; j < IN_BOX_ROWS; j++) - { - gPSSData->boxSpecies[boxPosition] = GetBoxMonDataAt(boxId, boxPosition, MON_DATA_SPECIES2); - if (gPSSData->boxSpecies[boxPosition] != SPECIES_NONE) - gPSSData->boxPersonalities[boxPosition] = GetBoxMonDataAt(boxId, boxPosition, MON_DATA_PERSONALITY); - boxPosition++; - } - } - - gPSSData->incomingBoxId = boxId; -} - -void DestroyBoxMonIconAtPosition(u8 boxPosition) -{ - if (gPSSData->boxMonsSprites[boxPosition] != NULL) - { - DestroyBoxMonIcon(gPSSData->boxMonsSprites[boxPosition]); - gPSSData->boxMonsSprites[boxPosition] = NULL; - } -} - -void SetBoxMonIconObjMode(u8 boxPosition, u8 objMode) -{ - if (gPSSData->boxMonsSprites[boxPosition] != NULL) - { - gPSSData->boxMonsSprites[boxPosition]->oam.objMode = objMode; - } -} - -void CreatePartyMonsSprites(bool8 arg0) -{ - u16 i, count; - u16 species = GetMonData(&gPlayerParty[0], MON_DATA_SPECIES2); - u32 personality = GetMonData(&gPlayerParty[0], MON_DATA_PERSONALITY); - - gPSSData->partySprites[0] = CreateMonIconSprite(species, personality, 104, 64, 1, 12); - count = 1; - for (i = 1; i < PARTY_SIZE; i++) - { - species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2); - if (species != SPECIES_NONE) - { - personality = GetMonData(&gPlayerParty[i], MON_DATA_PERSONALITY); - gPSSData->partySprites[i] = CreateMonIconSprite(species, personality, 152, 8 * (3 * (i - 1)) + 16, 1, 12); - count++; - } - else - { - gPSSData->partySprites[i] = NULL; - } - } - - if (!arg0) - { - for (i = 0; i < count; i++) - { - gPSSData->partySprites[i]->y -= 160; - gPSSData->partySprites[i]->invisible = TRUE; - } - } - - if (gPSSData->boxOption == OPTION_MOVE_ITEMS) - { - for (i = 0; i < PARTY_SIZE; i++) - { - if (gPSSData->partySprites[i] != NULL && GetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM) == 0) - gPSSData->partySprites[i]->oam.objMode = ST_OAM_OBJ_BLEND; - } - } -} - -void sub_80909F4(void) -{ - u16 i, count; - - gPSSData->numPartyToCompact = 0; - for (i = 0, count = 0; i < PARTY_SIZE; i++) - { - if (gPSSData->partySprites[i] != NULL) - { - if (i != count) - { - sub_8090A74(gPSSData->partySprites[i], count); - gPSSData->partySprites[i] = NULL; - gPSSData->numPartyToCompact++; - } - count++; - } - } -} - -u8 sub_8090A60(void) -{ - return gPSSData->numPartyToCompact; -} - -static void sub_8090A74(struct Sprite *sprite, u16 partyId) -{ - s16 x, y; - - sprite->data[1] = partyId; - if (partyId == 0) - x = 104, y = 64; - else - x = 152, y = 8 * (3 * (partyId - 1)) + 16; - - sprite->data[2] = (u16)(sprite->x) * 8; - sprite->data[3] = (u16)(sprite->y) * 8; - sprite->data[4] = ((x * 8) - sprite->data[2]) / 8; - sprite->data[5] = ((y * 8) - sprite->data[3]) / 8; - sprite->data[6] = 8; - sprite->callback = sub_8090AE0; -} - -static void sub_8090AE0(struct Sprite *sprite) -{ - if (sprite->data[6] != 0) - { - s16 x = sprite->data[2] += sprite->data[4]; - s16 y = sprite->data[3] += sprite->data[5]; - sprite->x = x / 8u; - sprite->y = y / 8u; - sprite->data[6]--; - } - else - { - if (sprite->data[1] == 0) - { - sprite->x = 104; - sprite->y = 64; - } - else - { - sprite->x = 152; - sprite->y = 8 * (3 * (sprite->data[1] - 1)) + 16; - } - sprite->callback = SpriteCallbackDummy; - gPSSData->partySprites[sprite->data[1]] = sprite; - gPSSData->numPartyToCompact--; - } -} - -void DestroyMovingMonIcon(void) -{ - if (gPSSData->movingMonSprite != NULL) - { - DestroyBoxMonIcon(gPSSData->movingMonSprite); - gPSSData->movingMonSprite = NULL; - } -} - -void sub_8090B98(s16 yDelta) -{ - u16 i, posY; - - for (i = 0; i < PARTY_SIZE; i++) - { - if (gPSSData->partySprites[i] != NULL) - { - gPSSData->partySprites[i]->y += yDelta; - posY = gPSSData->partySprites[i]->y + gPSSData->partySprites[i]->y2 + gPSSData->partySprites[i]->centerToCornerVecY; - posY += 16; - if (posY > 192) - gPSSData->partySprites[i]->invisible = TRUE; - else - gPSSData->partySprites[i]->invisible = FALSE; - } - } -} - -void DestroyPartyMonIcon(u8 partyId) -{ - if (gPSSData->partySprites[partyId] != NULL) - { - DestroyBoxMonIcon(gPSSData->partySprites[partyId]); - gPSSData->partySprites[partyId] = NULL; - } -} - -void DestroyAllPartyMonIcons(void) -{ - u16 i; - - for (i = 0; i < PARTY_SIZE; i++) - { - if (gPSSData->partySprites[i] != NULL) - { - DestroyBoxMonIcon(gPSSData->partySprites[i]); - gPSSData->partySprites[i] = NULL; - } - } -} - -void SetPartyMonIconObjMode(u8 partyId, u8 objMode) -{ - if (gPSSData->partySprites[partyId] != NULL) - { - gPSSData->partySprites[partyId]->oam.objMode = objMode; - } -} - -void sub_8090CC0(u8 mode, u8 id) -{ - if (mode == MODE_PARTY) - { - gPSSData->movingMonSprite = gPSSData->partySprites[id]; - gPSSData->partySprites[id] = NULL; - } - else if (mode == MODE_BOX) - { - gPSSData->movingMonSprite = gPSSData->boxMonsSprites[id]; - gPSSData->boxMonsSprites[id] = NULL; - } - else - { - return; - } - - gPSSData->movingMonSprite->callback = sub_80911B0; - gPSSData->movingMonSprite->oam.priority = sub_8090058(); - gPSSData->movingMonSprite->subpriority = 7; -} - -void sub_8090D58(u8 boxId, u8 position) -{ - if (boxId == TOTAL_BOXES_COUNT) // party mon - { - gPSSData->partySprites[position] = gPSSData->movingMonSprite; - gPSSData->partySprites[position]->oam.priority = 1; - gPSSData->partySprites[position]->subpriority = 12; - } - else - { - gPSSData->boxMonsSprites[position] = gPSSData->movingMonSprite; - gPSSData->boxMonsSprites[position]->oam.priority = 2; - gPSSData->boxMonsSprites[position]->subpriority = 19 - (position % IN_BOX_ROWS); - } - gPSSData->movingMonSprite->callback = SpriteCallbackDummy; - gPSSData->movingMonSprite = NULL; -} - -void sub_8090E08(u8 boxId, u8 position) -{ - if (boxId == TOTAL_BOXES_COUNT) // party mon - gPSSData->shiftMonSpritePtr = &gPSSData->partySprites[position]; - else - gPSSData->shiftMonSpritePtr = &gPSSData->boxMonsSprites[position]; - - gPSSData->movingMonSprite->callback = SpriteCallbackDummy; - gPSSData->shiftTimer = 0; -} - -bool8 sub_8090E74(void) -{ - if (gPSSData->shiftTimer == 16) - return FALSE; - - gPSSData->shiftTimer++; - if (gPSSData->shiftTimer & 1) - { - (*gPSSData->shiftMonSpritePtr)->y--; - gPSSData->movingMonSprite->y++; - } - - (*gPSSData->shiftMonSpritePtr)->x2 = gSineTable[gPSSData->shiftTimer * 8] / 16; - gPSSData->movingMonSprite->x2 = -(gSineTable[gPSSData->shiftTimer * 8] / 16); - if (gPSSData->shiftTimer == 8) - { - gPSSData->movingMonSprite->oam.priority = (*gPSSData->shiftMonSpritePtr)->oam.priority; - gPSSData->movingMonSprite->subpriority = (*gPSSData->shiftMonSpritePtr)->subpriority; - (*gPSSData->shiftMonSpritePtr)->oam.priority = sub_8090058(); - (*gPSSData->shiftMonSpritePtr)->subpriority = 7; - } - - if (gPSSData->shiftTimer == 16) - { - struct Sprite *sprite = gPSSData->movingMonSprite; - gPSSData->movingMonSprite = (*gPSSData->shiftMonSpritePtr); - *gPSSData->shiftMonSpritePtr = sprite; - - gPSSData->movingMonSprite->callback = sub_80911B0; - (*gPSSData->shiftMonSpritePtr)->callback = SpriteCallbackDummy; - } - - return TRUE; -} - -void sub_8090FC4(u8 mode, u8 position) -{ - switch (mode) - { - case MODE_PARTY: - gPSSData->releaseMonSpritePtr = &gPSSData->partySprites[position]; - break; - case MODE_BOX: - gPSSData->releaseMonSpritePtr = &gPSSData->boxMonsSprites[position]; - break; - case MODE_2: - gPSSData->releaseMonSpritePtr = &gPSSData->movingMonSprite; - break; - default: - return; - } - - if (*gPSSData->releaseMonSpritePtr != NULL) - { - InitSpriteAffineAnim(*gPSSData->releaseMonSpritePtr); - (*gPSSData->releaseMonSpritePtr)->oam.affineMode = ST_OAM_AFFINE_NORMAL; - (*gPSSData->releaseMonSpritePtr)->affineAnims = gUnknown_83CEC38; - StartSpriteAffineAnim(*gPSSData->releaseMonSpritePtr, 0); - } -} - -bool8 sub_8091084(void) -{ - if (*gPSSData->releaseMonSpritePtr == NULL || (*gPSSData->releaseMonSpritePtr)->invisible) - return FALSE; - - if ((*gPSSData->releaseMonSpritePtr)->affineAnimEnded) - (*gPSSData->releaseMonSpritePtr)->invisible = TRUE; - - return TRUE; -} - -void sub_80910CC(void) -{ - if (*gPSSData->releaseMonSpritePtr != NULL) - { - FreeOamMatrix((*gPSSData->releaseMonSpritePtr)->oam.matrixNum); - DestroyBoxMonIcon(*gPSSData->releaseMonSpritePtr); - *gPSSData->releaseMonSpritePtr = NULL; - } -} - -void sub_8091114(void) -{ - if (*gPSSData->releaseMonSpritePtr != NULL) - { - (*gPSSData->releaseMonSpritePtr)->invisible = FALSE; - StartSpriteAffineAnim(*gPSSData->releaseMonSpritePtr, 1); - } -} - -bool8 sub_8091150(void) -{ - if (gPSSData->releaseMonSpritePtr == NULL) - return FALSE; - - if ((*gPSSData->releaseMonSpritePtr)->affineAnimEnded) - gPSSData->releaseMonSpritePtr = NULL; - - return TRUE; -} - -void SetMovingMonPriority(u8 priority) -{ - gPSSData->movingMonSprite->oam.priority = priority; -} - -static void sub_80911B0(struct Sprite *sprite) -{ - sprite->x = gPSSData->cursorSprite->x; - sprite->y = gPSSData->cursorSprite->y + gPSSData->cursorSprite->y2 + 4; -} - -static u16 sub_80911D4(u16 species) -{ - u16 i, var; - - // Find the currently-allocated slot - for (i = 0; i < MAX_MON_ICONS; i++) - { - if (gPSSData->iconSpeciesList[i] == species) - break; - } - - if (i == MAX_MON_ICONS) - { - // Find the first empty slot - for (i = 0; i < MAX_MON_ICONS; i++) - { - if (gPSSData->iconSpeciesList[i] == SPECIES_NONE) - break; - } - if (i == MAX_MON_ICONS) - return 0xFFFF; - } - - gPSSData->iconSpeciesList[i] = species; - gPSSData->numIconsPerSpecies[i]++; - var = 16 * i; - CpuCopy32(GetMonIconTiles(species, TRUE), (void *)(OBJ_VRAM0) + var * 32, 0x200); - - return var; -} - -static void sub_8091290(u16 species) -{ - u16 i; - - for (i = 0; i < MAX_MON_ICONS; i++) - { - if (gPSSData->iconSpeciesList[i] == species) - { - if (--gPSSData->numIconsPerSpecies[i] == 0) - gPSSData->iconSpeciesList[i] = 0; - break; - } - } -} - -struct Sprite *CreateMonIconSprite(u16 species, u32 personality, s16 x, s16 y, u8 oamPriority, u8 subpriority) -{ - u16 tileNum; - u8 spriteId; - struct SpriteTemplate template = gUnknown_83CEBF0; - - species = GetIconSpecies(species, personality); - template.paletteTag = 0xDAC0 + gMonIconPaletteIndices[species]; - tileNum = sub_80911D4(species); - if (tileNum == 0xFFFF) - return NULL; - - spriteId = CreateSprite(&template, x, y, subpriority); - if (spriteId == MAX_SPRITES) - { - sub_8091290(species); - return NULL; - } - - gSprites[spriteId].oam.tileNum = tileNum; - gSprites[spriteId].oam.priority = oamPriority; - gSprites[spriteId].data[0] = species; - return &gSprites[spriteId]; -} - -static void DestroyBoxMonIcon(struct Sprite *sprite) -{ - sub_8091290(sprite->data[0]); - DestroySprite(sprite); -} - -void sub_80913DC(u8 boxId) -{ - u8 taskId = CreateTask(sub_8091420, 2); - - gTasks[taskId].data[2] = boxId; -} - -bool8 sub_809140C(void) -{ - return FuncIsActiveTask(sub_8091420); -} - -static void sub_8091420(u8 taskId) -{ - struct Task *task = &gTasks[taskId]; - - switch (task->data[0]) - { - case 0: - gPSSData->wallpaperOffset = 0; - gPSSData->bg2_X = 0; - task->data[1] = RequestDma3Fill(0, gPSSData->field_4AC4, 0x1000, DMA3_32BIT); - break; - case 1: - if (WaitDma3Request(task->data[1]) == -1) - return; - - SetBgTilemapBuffer(2, gPSSData->field_4AC4); - ShowBg(2); - break; - case 2: - LoadWallpaperGfx(task->data[2], 0); - break; - case 3: - if (!WaitForWallpaperGfxLoad()) - return; - - sub_8091A94(task->data[2]); - CreateBoxScrollArrows(); - sub_80900D4(task->data[2]); - SetGpuReg(REG_OFFSET_BG2CNT, BGCNT_PRIORITY(2) | BGCNT_CHARBASE(2) | BGCNT_SCREENBASE(27) | BGCNT_TXT512x256); - break; - case 4: - DestroyTask(taskId); - break; - default: - task->data[0] = 0; - return; - } - - task->data[0]++; -} - -void SetUpScrollToBox(u8 boxId) -{ - s8 direction = sub_80916F4(boxId); - - gPSSData->scrollSpeed = (direction > 0) ? 6 : -6; - gPSSData->scrollUnused1 = (direction > 0) ? 1 : 2; - gPSSData->scrollTimer = 32; - gPSSData->scrollToBoxIdUnused = boxId; - gPSSData->scrollUnused2 = (direction <= 0) ? 5 : 0; - gPSSData->scrollDirectionUnused = direction; - gPSSData->scrollUnused3 = (direction > 0) ? 264 : 56; - gPSSData->scrollUnused4 = (direction <= 0) ? 5 : 0; - gPSSData->scrollUnused5 = 0; - gPSSData->scrollUnused6 = 2; - gPSSData->scrollToBoxId = boxId; - gPSSData->scrollDirection = direction; - gPSSData->scrollState = 0; -} - -bool8 ScrollToBox(void) -{ - bool8 var; - - switch (gPSSData->scrollState) - { - case 0: - LoadWallpaperGfx(gPSSData->scrollToBoxId, gPSSData->scrollDirection); - gPSSData->scrollState++; - case 1: - if (!WaitForWallpaperGfxLoad()) - return TRUE; - - sub_8090574(gPSSData->scrollToBoxId, gPSSData->scrollDirection); - sub_8091C48(gPSSData->scrollToBoxId, gPSSData->scrollDirection); - StartBoxScrollArrowsSlide(gPSSData->scrollDirection); - break; - case 2: - var = sub_809062C(); - if (gPSSData->scrollTimer != 0) - { - gPSSData->bg2_X += gPSSData->scrollSpeed; - if (--gPSSData->scrollTimer != 0) - return TRUE; - sub_8091E34(); - StopBoxScrollArrowsSlide(); - } - return var; - } - - gPSSData->scrollState++; - return TRUE; -} - -static s8 sub_80916F4(u8 boxId) -{ - u8 i; - u8 currentBox = StorageGetCurrentBox(); - - for (i = 0; currentBox != boxId; i++) - { - currentBox++; - if (currentBox >= TOTAL_BOXES_COUNT) - currentBox = 0; - } - - return (i < TOTAL_BOXES_COUNT / 2) ? 1 : -1; -} - -void SetWallpaperForCurrentBox(u8 wallpaperId) -{ - u8 boxId = StorageGetCurrentBox(); - SetBoxWallpaper(boxId, wallpaperId); - gPSSData->wallpaperChangeState = 0; -} - -bool8 DoWallpaperGfxChange(void) -{ - switch (gPSSData->wallpaperChangeState) - { - case 0: - BeginNormalPaletteFade(gPSSData->wallpaperPalBits, 1, 0, 16, RGB_WHITEALPHA); - gPSSData->wallpaperChangeState++; - break; - case 1: - if (!UpdatePaletteFade()) - { - u8 curBox = StorageGetCurrentBox(); - LoadWallpaperGfx(curBox, 0); - gPSSData->wallpaperChangeState++; - } - break; - case 2: - if (WaitForWallpaperGfxLoad() == TRUE) - { - CycleBoxTitleColor(); - BeginNormalPaletteFade(gPSSData->wallpaperPalBits, 1, 16, 0, RGB_WHITEALPHA); - gPSSData->wallpaperChangeState++; - } - break; - case 3: - if (!UpdatePaletteFade()) - gPSSData->wallpaperChangeState++; - break; - case 4: - return FALSE; - } - - return TRUE; -} - -static void LoadWallpaperGfx(u8 boxId, s8 direction) -{ - u8 wallpaperId; - const struct WallpaperTable *wallpaperGfx; - void *iconGfx; - u32 size1, size2; - - gPSSData->wallpaperLoadState = 0; - gPSSData->wallpaperLoadBoxId = boxId; - gPSSData->wallpaperLoadDir = direction; - if (gPSSData->wallpaperLoadDir != 0) - { - gPSSData->wallpaperOffset = (gPSSData->wallpaperOffset == 0); - sub_8091A24(gPSSData->field_4AC4); - } - - wallpaperId = GetBoxWallpaper(gPSSData->wallpaperLoadBoxId); - wallpaperGfx = &sWallpaperTable[wallpaperId]; - LZ77UnCompWram(wallpaperGfx->tileMap, gPSSData->wallpaperTilemap); - sub_8091984(gPSSData->field_4AC4, gPSSData->wallpaperTilemap, gPSSData->wallpaperLoadDir, gPSSData->wallpaperOffset); - - if (gPSSData->wallpaperLoadDir != 0) - LoadPalette(wallpaperGfx->palettes, (gPSSData->wallpaperOffset * 32) + 0x40, 0x40); - else - CpuCopy16(wallpaperGfx->palettes, &gPlttBufferUnfaded[(gPSSData->wallpaperOffset * 32) + 0x40], 0x40); - - DecompressAndLoadBgGfxUsingHeap(2, wallpaperGfx->tiles, 0, 256 * gPSSData->wallpaperOffset, 0); - - CopyBgTilemapBufferToVram(2); -} - -static bool32 WaitForWallpaperGfxLoad(void) -{ - if (IsDma3ManagerBusyWithBgCopy() == TRUE) - return FALSE; - - return TRUE; -} - -static void sub_8091984(void *buffer, const void *tilemap, s8 direction, u8 arg2) -{ - s16 var = (arg2 * 2) + 3; - s16 x = ((gPSSData->bg2_X / 8 + 10) + (direction * 24)) & 0x3F; - - CopyRectToBgTilemapBufferRect(2, tilemap, 0, 0, 0x14, 0x12, x, 2, 0x14, 0x12, 0x11, arg2 << 8, var); - - if (direction == 0) - return; - else if (direction > 0) - x *= 1, x += 0x14; // x * 1 is needed to match, but can be safely removed as it makes no functional difference - else - x -= 4; - - FillBgTilemapBufferRect(2, 0, x, 2, 4, 0x12, 0x11); -} - -static void sub_8091A24(void *arg0) -{ - u16 i; - u16 *dest = arg0; - s16 r3 = ((gPSSData->bg2_X / 8) + 30) & 0x3F; - - if (r3 <= 31) - dest += r3 + 0x260; - else - dest += r3 + 0x640; - - for (i = 0; i < 0x2C; i++) - { - *dest++ = 0; - r3 = (r3 + 1) & 0x3F; - if (r3 == 0) - dest -= 0x420; - if (r3 == 0x20) - dest += 0x3e0; - } -} - -static void sub_8091A94(u8 boxId) -{ - u8 tagIndex; - s16 r6; - u16 i; - - struct SpriteSheet spriteSheet = {gPSSData->field_2F8, 0x200, TAG_TILE_3}; - struct SpritePalette palettes[] = { - {gPSSData->boxTitlePal, TAG_PAL_DAC9}, - {} - }; - - u16 wallpaperId = GetBoxWallpaper(boxId); - - gPSSData->boxTitlePal[14] = sBoxTitleColors[wallpaperId][0]; - gPSSData->boxTitlePal[15] = sBoxTitleColors[wallpaperId][1]; - LoadSpritePalettes(palettes); - gPSSData->wallpaperPalBits = 0x3f0; - - tagIndex = IndexOfSpritePaletteTag(TAG_PAL_DAC9); - gPSSData->boxTitlePalOffset = 0x10e + 16 * tagIndex; - gPSSData->wallpaperPalBits |= 0x10000 << tagIndex; - - tagIndex = IndexOfSpritePaletteTag(TAG_PAL_DAC9); - gPSSData->boxTitleAltPalOffset = 0x10e + 16 * tagIndex; - gPSSData->wallpaperPalBits |= 0x10000 << tagIndex; - - StringCopyPadded(gPSSData->field_21B8, GetBoxNamePtr(boxId), 0, 8); - DrawTextWindowAndBufferTiles(gPSSData->field_21B8, gPSSData->field_2F8, 0, 0, gPSSData->field_4F8, 2); - LoadSpriteSheet(&spriteSheet); - r6 = GetBoxTitleBaseX(GetBoxNamePtr(boxId)); - - for (i = 0; i < 2; i++) - { - u8 spriteId = CreateSprite(&gUnknown_83D2B7C, r6 + i * 32, 28, 24); - gPSSData->curBoxTitleSprites[i] = &gSprites[spriteId]; - StartSpriteAnim(gPSSData->curBoxTitleSprites[i], i); - } - gPSSData->boxTitleCycleId = 0; -} - -static void sub_8091C48(u8 boxId, s8 direction) -{ - u16 r8; - s16 x, x2; - u16 i; - struct SpriteSheet spriteSheet = {gPSSData->field_2F8, 0x200, TAG_TILE_3}; - struct SpriteTemplate template = gUnknown_83D2B7C; - - gPSSData->boxTitleCycleId = (gPSSData->boxTitleCycleId == 0); - if (gPSSData->boxTitleCycleId == 0) - { - spriteSheet.tag = TAG_TILE_3; - r8 = gPSSData->boxTitlePalOffset; - } - else - { - spriteSheet.tag = TAG_TILE_4; - r8 = gPSSData->boxTitlePalOffset; - template.tileTag = TAG_TILE_4; - template.paletteTag = TAG_PAL_DAC9; - } - - StringCopyPadded(gPSSData->field_21B8, GetBoxNamePtr(boxId), 0, 8); - DrawTextWindowAndBufferTiles(gPSSData->field_21B8, gPSSData->field_2F8, 0, 0, gPSSData->field_4F8, 2); - LoadSpriteSheet(&spriteSheet); - LoadPalette(sBoxTitleColors[GetBoxWallpaper(boxId)], r8, 4); - x = GetBoxTitleBaseX(GetBoxNamePtr(boxId)); - x2 = x; - x2 += direction * 192; - - for (i = 0; i < 2; i++) - { - u8 spriteId = CreateSprite(&template, i * 32 + x2, 28, 24); - - gPSSData->nextBoxTitleSprites[i] = &gSprites[spriteId]; - gPSSData->nextBoxTitleSprites[i]->data[0] = (-direction) * 6; - gPSSData->nextBoxTitleSprites[i]->data[1] = i * 32 + x; - gPSSData->nextBoxTitleSprites[i]->data[2] = 0; - gPSSData->nextBoxTitleSprites[i]->callback = sub_8091E84; - StartSpriteAnim(gPSSData->nextBoxTitleSprites[i], i); - - gPSSData->curBoxTitleSprites[i]->data[0] = (-direction) * 6; - gPSSData->curBoxTitleSprites[i]->data[1] = 1; - gPSSData->curBoxTitleSprites[i]->callback = sub_8091EB8; - } -} - -static void sub_8091E34(void) -{ - if (gPSSData->boxTitleCycleId == 0) - FreeSpriteTilesByTag(TAG_TILE_4); - else - FreeSpriteTilesByTag(TAG_TILE_3); - - gPSSData->curBoxTitleSprites[0] = gPSSData->nextBoxTitleSprites[0]; - gPSSData->curBoxTitleSprites[1] = gPSSData->nextBoxTitleSprites[1]; -} - -static void sub_8091E84(struct Sprite *sprite) -{ - if (sprite->data[2] != 0) - sprite->data[2]--; - else if ((sprite->x += sprite->data[0]) == sprite->data[1]) - sprite->callback = SpriteCallbackDummy; -} - -static void sub_8091EB8(struct Sprite *sprite) -{ - if (sprite->data[1] != 0) - { - sprite->data[1]--; - } - else - { - sprite->x += sprite->data[0]; - sprite->data[2] = sprite->x + sprite->x2; - if (sprite->data[2] < 0x40 || sprite->data[2] > 0x100) - DestroySprite(sprite); - } -} - -static void CycleBoxTitleColor(void) -{ - u8 boxId = StorageGetCurrentBox(); - u8 wallpaperId = GetBoxWallpaper(boxId); - if (gPSSData->boxTitleCycleId == 0) - CpuCopy16(sBoxTitleColors[wallpaperId], gPlttBufferUnfaded + gPSSData->boxTitlePalOffset, 4); - else - CpuCopy16(sBoxTitleColors[wallpaperId], gPlttBufferUnfaded + gPSSData->boxTitleAltPalOffset, 4); -} - -static s16 GetBoxTitleBaseX(const u8 *string) -{ - return DISPLAY_WIDTH - 64 - GetStringWidth(FONT_1, string, 0) / 2; -} - - -//------------------------------------------------------------------------------ -// SECTION: Scroll arrows -//------------------------------------------------------------------------------ - - -// Sprite data for box scroll arrows -#define sState data[0] -#define sTimer data[1] -#define sSpeed data[3] - -static void CreateBoxScrollArrows(void) -{ - u16 i; - - LoadSpriteSheet(&sSpriteSheet_Arrow); - for (i = 0; i < 2; i++) - { - u8 spriteId = CreateSprite(&sSpriteTemplate_Arrow, 92 + i * 136, 28, 22); - if (spriteId != MAX_SPRITES) - { - struct Sprite *sprite = &gSprites[spriteId]; - StartSpriteAnim(sprite, i); - sprite->data[3] = (i == 0) ? -1 : 1; - gPSSData->arrowSprites[i] = sprite; - } - } - if (IsCursorOnBoxTitle()) - AnimateBoxScrollArrows(TRUE); -} - -// Slide box scroll arrows horizontally for box change -static void StartBoxScrollArrowsSlide(s8 direction) -{ - u16 i; - - for (i = 0; i < 2; i++) - { - gPSSData->arrowSprites[i]->x2 = 0; - gPSSData->arrowSprites[i]->sState = 2; - } - if (direction < 0) - { - gPSSData->arrowSprites[0]->sTimer = 29; - gPSSData->arrowSprites[1]->sTimer = 5; - gPSSData->arrowSprites[0]->data[2] = 72; - gPSSData->arrowSprites[1]->data[2] = 72; - } - else - { - gPSSData->arrowSprites[0]->sTimer = 5; - gPSSData->arrowSprites[1]->sTimer = 29; - gPSSData->arrowSprites[0]->data[2] = DISPLAY_WIDTH + 8; - gPSSData->arrowSprites[1]->data[2] = DISPLAY_WIDTH + 8; - } - gPSSData->arrowSprites[0]->data[7] = 0; - gPSSData->arrowSprites[1]->data[7] = 1; -} - -// New box's scroll arrows have entered, stop sliding and set their position -static void StopBoxScrollArrowsSlide(void) -{ - u16 i; - - for (i = 0; i < 2; i++) - { - gPSSData->arrowSprites[i]->x = 136 * i + 92; - gPSSData->arrowSprites[i]->x2 = 0; - gPSSData->arrowSprites[i]->invisible = FALSE; - } - AnimateBoxScrollArrows(TRUE); -} - -// Bounce scroll arrows while title is selected -void AnimateBoxScrollArrows(bool8 animate) -{ - u16 i; - - if (animate) - { - // Start arrows moving - for (i = 0; i < 2; i++) - { - gPSSData->arrowSprites[i]->sState = 1; - gPSSData->arrowSprites[i]->sTimer = 0; - gPSSData->arrowSprites[i]->data[2] = 0; - gPSSData->arrowSprites[i]->data[4] = 0; - } - } - else - { - // Stop arrows moving - for (i = 0; i < 2; i++) - gPSSData->arrowSprites[i]->sState = 0; - } -} - -static void SpriteCB_Arrow(struct Sprite *sprite) -{ - switch (sprite->sState) - { - case 0: - sprite->x2 = 0; - break; - case 1: - if (++sprite->sTimer > 3) - { - sprite->sTimer = 0; - sprite->x2 += sprite->sSpeed; - if (++sprite->data[2] > 5) - { - sprite->data[2] = 0; - sprite->x2 = 0; - } - } - break; - case 2: - sprite->sState = 3; - break; - case 3: - sprite->x -= gPSSData->scrollSpeed; - if (sprite->x <= 72 || sprite->x >= DISPLAY_WIDTH + 8) - sprite->invisible = TRUE; - if (--sprite->sTimer == 0) - { - sprite->x = sprite->data[2]; - sprite->invisible = FALSE; - sprite->sState = 4; - } - break; - case 4: - sprite->x -= gPSSData->scrollSpeed; - break; - } -} - -#undef sState -#undef sSpeed - -// Arrows for Deposit/Jump Box selection -struct Sprite *CreateChooseBoxArrows(u16 x, u16 y, u8 animId, u8 priority, u8 subpriority) -{ - u8 spriteId = CreateSprite(&sSpriteTemplate_Arrow, x, y, subpriority); - if (spriteId == MAX_SPRITES) - return NULL; - - animId %= 2; - StartSpriteAnim(&gSprites[spriteId], animId); - gSprites[spriteId].oam.priority = priority; - gSprites[spriteId].callback = SpriteCallbackDummy; - return &gSprites[spriteId]; -} diff --git a/src/pokemon_storage_system_5.c b/src/pokemon_storage_system_5.c deleted file mode 100644 index f01a1551b..000000000 --- a/src/pokemon_storage_system_5.c +++ /dev/null @@ -1,2036 +0,0 @@ -#include "global.h" -#include "gflib.h" -#include "data.h" -#include "item.h" -#include "mail_data.h" -#include "pokemon_storage_system_internal.h" -#include "pokemon_summary_screen.h" -#include "strings.h" -#include "constants/items.h" -#include "constants/moves.h" - -static EWRAM_DATA struct Pokemon sMonBeingCarried = {}; -static EWRAM_DATA s8 sBoxCursorArea = 0; -static EWRAM_DATA s8 sBoxCursorPosition = 0; -static EWRAM_DATA bool8 sIsMonBeingMoved = FALSE; -static EWRAM_DATA u8 sMovingMonOrigBoxId = 0; -static EWRAM_DATA u8 sMovingMonOrigBoxPos = 0; -static EWRAM_DATA bool8 sCanOnlyMove = FALSE; -static EWRAM_DATA u8 gUnknown_2039826 = 0; - -static void sub_80929B0(void); -static bool8 MonPlaceChange_Move(void); -static bool8 MonPlaceChange_Place(void); -static bool8 MonPlaceChange_Shift(void); -static bool8 sub_8092E00(void); -static bool8 sub_8092E10(void); -static bool8 sub_8092E20(void); -static bool8 sub_8092E54(void); -static void MoveMon(void); -static void PlaceMon(void); -static void SetMovedMonData(u8 boxId, u8 cursorPos); -static void SetPlacedMonData(u8 boxId, u8 cursorPos); -static void PurgeMonOrBoxMon(u8 boxId, u8 cursorPos); -static void SetShiftedMonData(u8 boxId, u8 cursorPos); -static void sub_8093A10(void); -static void SetCursorMonData(void *cursorMon, u8 mode); -static void sub_8093AAC(void); -static u8 InBoxInput_Normal(void); -static u8 InBoxInput_GrabbingMultiple(void); -static u8 InBoxInput_MovingMultiple(void); -static void AddBoxMenu(void); -static bool8 sub_8094924(void); -static bool8 sub_809494C(void); -static bool8 sub_8094A0C(void); -static void sub_8094AD8(void); -static void sub_8094C84(void); - -static const u16 sHandCursorPalette[] = INCBIN_U16("graphics/interface/pss_unk_83D2BCC.gbapal"); -static const u16 sHandCursorTiles[] = INCBIN_U16("graphics/interface/pss_unk_83D2BEC.4bpp"); -static const u16 sHandCursorShadowTiles[] = INCBIN_U16("graphics/interface/pss_unk_83D33EC.4bpp"); - -void sub_80922C0(void) -{ - if (gPSSData->boxOption != OPTION_DEPOSIT) - sBoxCursorArea = CURSOR_AREA_IN_BOX; - else - sBoxCursorArea = CURSOR_AREA_IN_PARTY; - - sBoxCursorPosition = 0; - sIsMonBeingMoved = FALSE; - sMovingMonOrigBoxId = 0; - sMovingMonOrigBoxPos = 0; - sCanOnlyMove = FALSE; - sub_8092B50(); - sub_8094AD8(); - gPSSData->cursorPrevHorizPos = 1; - gPSSData->inBoxMovingMode = 0; - sub_8093A10(); -} - -void sub_8092340(void) -{ - sub_8094AD8(); - sub_8093AAC(); - gPSSData->cursorPrevHorizPos = 1; - gPSSData->inBoxMovingMode = 0; - if (sIsMonBeingMoved) - { - gPSSData->movingMon = sMonBeingCarried; - CreateMovingMonIcon(); - } -} - -static void sub_8092398(u8 cursorArea, u8 cursorPosition, u16 *x, u16 *y) -{ - switch (cursorArea) - { - case CURSOR_AREA_IN_BOX: - *x = (cursorPosition % IN_BOX_ROWS) * 24 + 100; - *y = (cursorPosition / IN_BOX_ROWS) * 24 + 32; - break; - case CURSOR_AREA_IN_PARTY: - if (cursorPosition == 0) - { - *x = 0x68; - *y = 0x34; - } - else if (cursorPosition == PARTY_SIZE) - { - *x = 0x98; - *y = 0x84; - } - else - { - *x = 0x98; - *y = (cursorPosition - 1) * 24 + 4; - } - break; - case CURSOR_AREA_BOX: - *x = 0xa2; - *y = 0x0c; - break; - case CURSOR_AREA_BUTTONS: - *y = sIsMonBeingMoved ? 8 : 14; - *x = cursorPosition * 0x58 + 0x78; - break; - case 4: - *x = 0xa0; - *y = 0x60; - break; - } -} - -static u16 sub_8092458(void) -{ - switch (sBoxCursorArea) - { - case CURSOR_AREA_IN_PARTY: - return GetMonData(&gPlayerParty[sBoxCursorPosition], MON_DATA_SPECIES); - case CURSOR_AREA_IN_BOX: - return GetCurrentBoxMonData(sBoxCursorPosition, MON_DATA_SPECIES); - default: - return SPECIES_NONE; - } -} - -bool8 sub_80924A8(void) -{ - s16 tmp; - - if (gPSSData->cursorMoveSteps == 0) - { - if (gPSSData->boxOption != OPTION_MOVE_ITEMS) - return FALSE; - else - return sub_809610C(); - } - else if (--gPSSData->cursorMoveSteps != 0) - { - gPSSData->cursorNewX += gPSSData->cursorSpeedX; - gPSSData->cursorNewY += gPSSData->cursorSpeedY; - gPSSData->cursorSprite->x = gPSSData->cursorNewX >> 8; - gPSSData->cursorSprite->y = gPSSData->cursorNewY >> 8; - if (gPSSData->cursorSprite->x > 0x100) - { - tmp = gPSSData->cursorSprite->x - 0x100; - gPSSData->cursorSprite->x = tmp + 0x40; - } - if (gPSSData->cursorSprite->x < 0x40) - { - tmp = 0x40 - gPSSData->cursorSprite->x; - gPSSData->cursorSprite->x = 0x100 - tmp; - } - if (gPSSData->cursorSprite->y > 0xb0) - { - tmp = gPSSData->cursorSprite->y - 0xb0; - gPSSData->cursorSprite->y = tmp - 0x10; - } - if (gPSSData->cursorSprite->y < -0x10) - { - tmp = -0x10 - gPSSData->cursorSprite->y; - gPSSData->cursorSprite->y = 0xb0 - tmp; - } - if (gPSSData->cursorFlipTimer && --gPSSData->cursorFlipTimer == 0) - gPSSData->cursorSprite->vFlip = (gPSSData->cursorSprite->vFlip == FALSE); - } - else - { - gPSSData->cursorSprite->x = gPSSData->cursorTargetX; - gPSSData->cursorSprite->y = gPSSData->cursorTargetY; - sub_80929B0(); - } - - return TRUE; -} - -static void sub_8092604(u8 newCurosrArea, u8 newCursorPosition) -{ - u16 x, y; - - sub_8092398(newCurosrArea, newCursorPosition, &x, &y); - gPSSData->newCursorArea = newCurosrArea; - gPSSData->newCursorPosition = newCursorPosition; - gPSSData->cursorTargetX = x; - gPSSData->cursorTargetY = y; -} - -static void sub_8092660(void) -{ - int r7, r0; - - if (gPSSData->cursorVerticalWrap != 0 || gPSSData->cursorHorizontalWrap != 0) - gPSSData->cursorMoveSteps = 12; - else - gPSSData->cursorMoveSteps = 6; - - if (gPSSData->cursorFlipTimer) - gPSSData->cursorFlipTimer = gPSSData->cursorMoveSteps >> 1; - - switch (gPSSData->cursorVerticalWrap) - { - default: - r7 = gPSSData->cursorTargetY - gPSSData->cursorSprite->y; - break; - case -1: - r7 = gPSSData->cursorTargetY - 0xc0 - gPSSData->cursorSprite->y; - break; - case 1: - r7 = gPSSData->cursorTargetY + 0xc0 - gPSSData->cursorSprite->y; - break; - } - - switch (gPSSData->cursorHorizontalWrap) - { - default: - r0 = gPSSData->cursorTargetX - gPSSData->cursorSprite->x; - break; - case -1: - r0 = gPSSData->cursorTargetX - 0xc0 - gPSSData->cursorSprite->x; - break; - case 1: - r0 = gPSSData->cursorTargetX + 0xc0 - gPSSData->cursorSprite->x; - break; - } - - r7 <<= 8; - r0 <<= 8; - gPSSData->cursorSpeedX = r0 / gPSSData->cursorMoveSteps; - gPSSData->cursorSpeedY = r7 / gPSSData->cursorMoveSteps; - gPSSData->cursorNewX = gPSSData->cursorSprite->x << 8; - gPSSData->cursorNewY = gPSSData->cursorSprite->y << 8; -} - -static void sub_80927E8(u8 newCurosrArea, u8 newCursorPosition) -{ - sub_8092604(newCurosrArea, newCursorPosition); - sub_8092660(); - if (gPSSData->boxOption != OPTION_MOVE_ITEMS) - { - if (gPSSData->inBoxMovingMode == 0 && !sIsMonBeingMoved) - StartSpriteAnim(gPSSData->cursorSprite, 1); - } - else - { - if (!IsActiveItemMoving()) - StartSpriteAnim(gPSSData->cursorSprite, 1); - } - - if (gPSSData->boxOption == OPTION_MOVE_ITEMS) - { - if (sBoxCursorArea == CURSOR_AREA_IN_BOX) - sub_8095D44(CURSOR_AREA_IN_BOX, sBoxCursorPosition); - else if (sBoxCursorArea == CURSOR_AREA_IN_PARTY) - sub_8095D44(CURSOR_AREA_IN_PARTY, sBoxCursorPosition); - - if (newCurosrArea == CURSOR_AREA_IN_BOX) - sub_8095C84(newCurosrArea, newCursorPosition); - else if (newCurosrArea == CURSOR_AREA_IN_PARTY) - sub_8095C84(newCurosrArea, newCursorPosition); - } - - if (newCurosrArea == CURSOR_AREA_IN_PARTY && sBoxCursorArea != CURSOR_AREA_IN_PARTY) - { - gPSSData->cursorPrevHorizPos = newCurosrArea; - gPSSData->cursorShadowSprite->invisible = TRUE; - } - - switch (newCurosrArea) - { - case CURSOR_AREA_IN_PARTY: - case CURSOR_AREA_BOX: - case CURSOR_AREA_BUTTONS: - gPSSData->cursorSprite->oam.priority = 1; - gPSSData->cursorShadowSprite->invisible = TRUE; - gPSSData->cursorShadowSprite->oam.priority = 1; - break; - case CURSOR_AREA_IN_BOX: - if (gPSSData->inBoxMovingMode != 0) - { - gPSSData->cursorSprite->oam.priority = 0; - gPSSData->cursorShadowSprite->invisible = TRUE; - } - else - { - gPSSData->cursorSprite->oam.priority = 2; - if (sBoxCursorArea == CURSOR_AREA_IN_BOX && sIsMonBeingMoved) - SetMovingMonPriority(2); - } - break; - } -} - -static void sub_80929B0(void) -{ - sBoxCursorArea = gPSSData->newCursorArea; - sBoxCursorPosition = gPSSData->newCursorPosition; - if (gPSSData->boxOption != OPTION_MOVE_ITEMS) - { - if (gPSSData->inBoxMovingMode == 0 && !sIsMonBeingMoved) - StartSpriteAnim(gPSSData->cursorSprite, 1); - } - else - { - if (!IsActiveItemMoving()) - StartSpriteAnim(gPSSData->cursorSprite, 1); - } - - sub_8093A10(); - switch (sBoxCursorArea) - { - case CURSOR_AREA_BUTTONS: - SetMovingMonPriority(1); - break; - case CURSOR_AREA_BOX: - AnimateBoxScrollArrows(TRUE); - break; - case CURSOR_AREA_IN_PARTY: - gPSSData->cursorShadowSprite->subpriority = 13; - SetMovingMonPriority(1); - break; - case CURSOR_AREA_IN_BOX: - if (gPSSData->inBoxMovingMode == 0) - { - gPSSData->cursorSprite->oam.priority = 1; - gPSSData->cursorShadowSprite->oam.priority = 2; - gPSSData->cursorShadowSprite->subpriority = 21; - gPSSData->cursorShadowSprite->invisible = FALSE; - SetMovingMonPriority(2); - } - break; - } -} - -void sub_8092AE4(void) -{ - u8 partyCount; - - if (!sIsMonBeingMoved) - { - partyCount = 0; - } - else - { - partyCount = CalculatePlayerPartyCount(); - if (partyCount >= PARTY_SIZE) - partyCount = PARTY_SIZE - 1; - } - if (gPSSData->cursorSprite->vFlip) - gPSSData->cursorFlipTimer = 1; - sub_80927E8(CURSOR_AREA_IN_PARTY, partyCount); -} - -void sub_8092B3C(u8 cursorBoxPosition) -{ - sub_80927E8(CURSOR_AREA_IN_BOX, cursorBoxPosition); -} - -void sub_8092B50(void) -{ - gUnknown_2039826 = 0; -} - -void sub_8092B5C(void) -{ - gUnknown_2039826 = sBoxCursorPosition; -} - -u8 sub_8092B70(void) -{ - return gUnknown_2039826; -} - -void InitMonPlaceChange(u8 a0) -{ - static bool8 (*const placeChangeFuncs[])(void) = { - MonPlaceChange_Move, - MonPlaceChange_Place, - MonPlaceChange_Shift, - }; - - gPSSData->monPlaceChangeFunc = placeChangeFuncs[a0]; - gPSSData->monPlaceChangeState = 0; -} - -void sub_8092BAC(bool8 arg0) -{ - if (!arg0) - gPSSData->monPlaceChangeFunc = sub_8092E00; - else - gPSSData->monPlaceChangeFunc = sub_8092E10; - - gPSSData->monPlaceChangeState = 0; -} - -bool8 DoMonPlaceChange(void) -{ - return gPSSData->monPlaceChangeFunc(); -} - -static bool8 MonPlaceChange_Move(void) -{ - switch (gPSSData->monPlaceChangeState) - { - case 0: - if (sIsMonBeingMoved) - return FALSE; - StartSpriteAnim(gPSSData->cursorSprite, 2); - gPSSData->monPlaceChangeState++; - break; - case 1: - if (!sub_8092E20()) - { - StartSpriteAnim(gPSSData->cursorSprite, 3); - MoveMon(); - gPSSData->monPlaceChangeState++; - } - break; - case 2: - if (!sub_8092E54()) - gPSSData->monPlaceChangeState++; - break; - case 3: - return FALSE; - } - - return TRUE; -} - -static bool8 MonPlaceChange_Place(void) -{ - switch (gPSSData->monPlaceChangeState) - { - case 0: - if (!sub_8092E20()) - { - StartSpriteAnim(gPSSData->cursorSprite, 2); - PlaceMon(); - gPSSData->monPlaceChangeState++; - } - break; - case 1: - if (!sub_8092E54()) - { - StartSpriteAnim(gPSSData->cursorSprite, 0); - gPSSData->monPlaceChangeState++; - } - break; - case 2: - return FALSE; - } - - return TRUE; -} - -static bool8 MonPlaceChange_Shift(void) -{ - switch (gPSSData->monPlaceChangeState) - { - case 0: - switch (sBoxCursorArea) - { - case CURSOR_AREA_IN_PARTY: - gPSSData->shiftBoxId = TOTAL_BOXES_COUNT; - break; - case CURSOR_AREA_IN_BOX: - gPSSData->shiftBoxId = StorageGetCurrentBox(); - break; - default: - return FALSE; - } - StartSpriteAnim(gPSSData->cursorSprite, 2); - sub_8090E08(gPSSData->shiftBoxId, sBoxCursorPosition); - gPSSData->monPlaceChangeState++; - break; - case 1: - if (!sub_8090E74()) - { - StartSpriteAnim(gPSSData->cursorSprite, 3); - SetShiftedMonData(gPSSData->shiftBoxId, sBoxCursorPosition); - gPSSData->monPlaceChangeState++; - } - break; - case 2: - return FALSE; - } - - return TRUE; -} - -static bool8 sub_8092E00(void) -{ - return sub_8092E20(); -} - -static bool8 sub_8092E10(void) -{ - return sub_8092E54(); -} - -static bool8 sub_8092E20(void) -{ - switch (gPSSData->cursorSprite->y2) - { - default: - gPSSData->cursorSprite->y2++; - break; - case 0: - gPSSData->cursorSprite->y2++; - break; - case 8: - return FALSE; - } - - return TRUE; -} - -static bool8 sub_8092E54(void) -{ - switch (gPSSData->cursorSprite->y2) - { - case 0: - return FALSE; - default: - gPSSData->cursorSprite->y2--; - break; - } - - return TRUE; -} - -static void MoveMon(void) -{ - switch (sBoxCursorArea) - { - case CURSOR_AREA_IN_PARTY: - SetMovedMonData(TOTAL_BOXES_COUNT, sBoxCursorPosition); - sub_8090CC0(MODE_PARTY, sBoxCursorPosition); - break; - case CURSOR_AREA_IN_BOX: - if (gPSSData->inBoxMovingMode == 0) - { - SetMovedMonData(StorageGetCurrentBox(), sBoxCursorPosition); - sub_8090CC0(MODE_BOX, sBoxCursorPosition); - } - break; - default: - return; - } - - sIsMonBeingMoved = TRUE; -} - -static void PlaceMon(void) -{ - u8 boxId; - - switch (sBoxCursorArea) - { - case CURSOR_AREA_IN_PARTY: - SetPlacedMonData(TOTAL_BOXES_COUNT, sBoxCursorPosition); - sub_8090D58(TOTAL_BOXES_COUNT, sBoxCursorPosition); - break; - case CURSOR_AREA_IN_BOX: - boxId = StorageGetCurrentBox(); - SetPlacedMonData(boxId, sBoxCursorPosition); - sub_8090D58(boxId, sBoxCursorPosition); - break; - default: - return; - } - - sIsMonBeingMoved = FALSE; -} - -void sub_8092F54(void) -{ - sub_8093A10(); -} - -static void SetMovedMonData(u8 boxId, u8 position) -{ - if (boxId == TOTAL_BOXES_COUNT) - gPSSData->movingMon = gPlayerParty[sBoxCursorPosition]; - else - BoxMonAtToMon(boxId, position, &gPSSData->movingMon); - - PurgeMonOrBoxMon(boxId, position); - sMovingMonOrigBoxId = boxId; - sMovingMonOrigBoxPos = position; -} - -static void SetPlacedMonData(u8 boxId, u8 position) -{ - if (boxId == TOTAL_BOXES_COUNT) - { - gPlayerParty[position] = gPSSData->movingMon; - } - else - { - BoxMonRestorePP(&gPSSData->movingMon.box); - SetBoxMonAt(boxId, position, &gPSSData->movingMon.box); - } -} - -static void PurgeMonOrBoxMon(u8 boxId, u8 position) -{ - if (boxId == TOTAL_BOXES_COUNT) - ZeroMonData(&gPlayerParty[position]); - else - ZeroBoxMonAt(boxId, position); -} - -static void SetShiftedMonData(u8 boxId, u8 position) -{ - if (boxId == TOTAL_BOXES_COUNT) - gPSSData->field_2108 = gPlayerParty[position]; - else - BoxMonAtToMon(boxId, position, &gPSSData->field_2108); - - SetPlacedMonData(boxId, position); - gPSSData->movingMon = gPSSData->field_2108; - SetCursorMonData(&gPSSData->movingMon, MODE_PARTY); - sMovingMonOrigBoxId = boxId; - sMovingMonOrigBoxPos = position; -} - -bool8 TryStorePartyMonInBox(u8 boxId) -{ - s16 boxPosition = GetFirstFreeBoxSpot(boxId); - if (boxPosition == -1) - return FALSE; - - if (sIsMonBeingMoved) - { - SetPlacedMonData(boxId, boxPosition); - DestroyMovingMonIcon(); - sIsMonBeingMoved = FALSE; - } - else - { - SetMovedMonData(TOTAL_BOXES_COUNT, sBoxCursorPosition); - SetPlacedMonData(boxId, boxPosition); - DestroyPartyMonIcon(sBoxCursorPosition); - } - - if (boxId == StorageGetCurrentBox()) - sub_80901EC(boxPosition); - - StartSpriteAnim(gPSSData->cursorSprite, 1); - return TRUE; -} - -void sub_8093174(void) -{ - StartSpriteAnim(gPSSData->cursorSprite, 0); - sub_8093A10(); -} - -void sub_8093194(void) -{ - u8 mode; - - if (sIsMonBeingMoved) - mode = MODE_2; - else if (sBoxCursorArea == CURSOR_AREA_IN_PARTY) - mode = MODE_PARTY; - else - mode = MODE_BOX; - - sub_8090FC4(mode, sBoxCursorPosition); - StringCopy(gPSSData->field_21E0, gPSSData->displayMonName); -} - -bool8 sub_80931EC(void) -{ - if (!sub_8091084()) - { - StartSpriteAnim(gPSSData->cursorSprite, 0); - return FALSE; - } - else - { - return TRUE; - } -} - -void ReleaseMon(void) -{ - u8 boxId; - - sub_80910CC(); - if (sIsMonBeingMoved) - { - sIsMonBeingMoved = FALSE; - } - else - { - if (sBoxCursorArea == CURSOR_AREA_IN_PARTY) - boxId = TOTAL_BOXES_COUNT; - else - boxId = StorageGetCurrentBox(); - - PurgeMonOrBoxMon(boxId, sBoxCursorPosition); - } - sub_8093A10(); -} - -void sub_8093264(void) -{ - if (sIsMonBeingMoved) - StartSpriteAnim(gPSSData->cursorSprite, 3); -} - -void InitCanReleaseMonVars(void) -{ - u16 knownIdx; - if (sIsMonBeingMoved) - { - gPSSData->field_2108 = gPSSData->movingMon; - gPSSData->field_2170 = -1; - gPSSData->field_2171 = -1; - } - else - { - if (sBoxCursorArea == CURSOR_AREA_IN_PARTY) - { - gPSSData->field_2108 = gPlayerParty[sBoxCursorPosition]; - gPSSData->field_2170 = TOTAL_BOXES_COUNT; - } - else - { - BoxMonAtToMon(StorageGetCurrentBox(), sBoxCursorPosition, &gPSSData->field_2108); - gPSSData->field_2170 = StorageGetCurrentBox(); - } - gPSSData->field_2171 = sBoxCursorPosition; - } - - gPSSData->isSurfMon = FALSE; - gPSSData->isDiveMon = FALSE; - gPSSData->field_2176[0] = MOVE_SURF; - gPSSData->field_2176[1] = MOVE_DIVE; - gPSSData->field_2176[2] = MOVES_COUNT; - knownIdx = GetMonData(&gPSSData->field_2108, MON_DATA_KNOWN_MOVES, (u8 *)gPSSData->field_2176); - gPSSData->isSurfMon = knownIdx & 1; - gPSSData->isDiveMon = (knownIdx >> 1) & 1; - if (gPSSData->isSurfMon || gPSSData->isDiveMon) - { - gPSSData->field_216D = 0; - } - else - { - gPSSData->field_216D = 1; - gPSSData->field_216C = 1; - } - - gPSSData->field_2172 = 0; -} - -s8 RunCanReleaseMon(void) -{ - u16 i; - u16 knownMoves; - - if (gPSSData->field_216D) - return gPSSData->field_216C; - - switch (gPSSData->field_2172) - { - case 0: - for (i = 0; i < PARTY_SIZE; i++) - { - if (gPSSData->field_2170 != TOTAL_BOXES_COUNT || gPSSData->field_2171 != i) - { - knownMoves = GetMonData(gPlayerParty + i, MON_DATA_KNOWN_MOVES, (u8 *)gPSSData->field_2176); - if (knownMoves & 1) - gPSSData->isSurfMon = FALSE; - if (knownMoves & 2) - gPSSData->isDiveMon = FALSE; - } - } - if (!(gPSSData->isSurfMon || gPSSData->isDiveMon)) - { - gPSSData->field_216D = 1; - gPSSData->field_216C = 1; - } - else - { - gPSSData->field_216E = 0; - gPSSData->field_216F = 0; - gPSSData->field_2172++; - } - break; - case 1: - for (i = 0; i < 5; i++) - { - knownMoves = GetAndCopyBoxMonDataAt(gPSSData->field_216E, gPSSData->field_216F, MON_DATA_KNOWN_MOVES, (u8 *)gPSSData->field_2176); - if (knownMoves != 0 - && !(gPSSData->field_2170 == gPSSData->field_216E && gPSSData->field_2171 == gPSSData->field_216F)) - { - if (knownMoves & 1) - gPSSData->isSurfMon = FALSE; - if (knownMoves & 2) - gPSSData->isDiveMon = FALSE; - } - if (++gPSSData->field_216F >= IN_BOX_COUNT) - { - gPSSData->field_216F = 0; - if (++gPSSData->field_216E >= TOTAL_BOXES_COUNT) - { - gPSSData->field_216D = 1; - gPSSData->field_216C = 0; - break; - } - } - } - if (!(gPSSData->isSurfMon || gPSSData->isDiveMon)) - { - gPSSData->field_216D = 1; - gPSSData->field_216C = 1; - } - break; - } - - return -1; -} - -void sub_8093630(void) -{ - if (sIsMonBeingMoved) - sMonBeingCarried = gPSSData->movingMon; -} - -void sub_8093660(void) -{ - if (sIsMonBeingMoved) - { - if (sMovingMonOrigBoxId == TOTAL_BOXES_COUNT) - gPSSData->movingMon = sMonBeingCarried; - else - gPSSData->movingMon.box = sMonBeingCarried.box; - } -} - -void sub_80936B8(void) -{ - if (sIsMonBeingMoved) - { - sub_8093630(); - gPSSData->field_218C.mon = &sMonBeingCarried; - gPSSData->field_2187 = 0; - gPSSData->field_2186 = 0; - gPSSData->summaryScreenMode = PSS_MODE_NORMAL; - } - else if (sBoxCursorArea == CURSOR_AREA_IN_PARTY) - { - gPSSData->field_218C.mon = gPlayerParty; - gPSSData->field_2187 = sBoxCursorPosition; - gPSSData->field_2186 = CountPartyMons() - 1; - gPSSData->summaryScreenMode = PSS_MODE_NORMAL; - } - else - { - gPSSData->field_218C.box = GetBoxedMonPtr(StorageGetCurrentBox(), 0); - gPSSData->field_2187 = sBoxCursorPosition; - gPSSData->field_2186 = IN_BOX_COUNT - 1; - gPSSData->summaryScreenMode = PSS_MODE_BOX; - } -} - -void sub_80937B4(void) -{ - if (sIsMonBeingMoved) - sub_8093660(); - else - sBoxCursorPosition = GetLastViewedMonIndex(); -} - -// file boundary maybe? - -s16 CompactPartySlots(void) -{ - s16 retVal = -1; - u16 i, last; - - for (i = 0, last = 0; i < PARTY_SIZE; i++) - { - u16 species = GetMonData(gPlayerParty + i, MON_DATA_SPECIES); - if (species != SPECIES_NONE) - { - if (i != last) - gPlayerParty[last] = gPlayerParty[i]; - last++; - } - else if (retVal == -1) - { - retVal = i; - } - } - for (; last < PARTY_SIZE; last++) - ZeroMonData(gPlayerParty + last); - - return retVal; -} - -void SetMonMarkings(u8 markings) -{ - gPSSData->displayMonMarkings = markings; - if (sIsMonBeingMoved) - { - SetMonData(&gPSSData->movingMon, MON_DATA_MARKINGS, &markings); - } - else - { - if (sBoxCursorArea == CURSOR_AREA_IN_PARTY) - SetMonData(gPlayerParty + sBoxCursorPosition, MON_DATA_MARKINGS, &markings); - if (sBoxCursorArea == CURSOR_AREA_IN_BOX) - SetCurrentBoxMonData(sBoxCursorPosition, MON_DATA_MARKINGS, &markings); - } -} - -bool8 CanMovePartyMon(void) -{ - if (sBoxCursorArea == CURSOR_AREA_IN_PARTY && !sIsMonBeingMoved && CountPartyAliveNonEggMonsExcept(sBoxCursorPosition) == 0) - return TRUE; - else - return FALSE; -} - -bool8 CanShiftMon(void) -{ - if (sIsMonBeingMoved) - { - if (sBoxCursorArea == CURSOR_AREA_IN_PARTY && CountPartyAliveNonEggMonsExcept(sBoxCursorPosition) == 0) - { - if (gPSSData->displayMonIsEgg || GetMonData(&gPSSData->movingMon, MON_DATA_HP) == 0) - return FALSE; - } - return TRUE; - } - return FALSE; -} - -bool8 IsMonBeingMoved(void) -{ - return sIsMonBeingMoved; -} - -bool8 IsCursorOnBoxTitle(void) -{ - return (sBoxCursorArea == CURSOR_AREA_BOX); -} - -bool8 IsCursorOnCloseBox(void) -{ - return (sBoxCursorArea == CURSOR_AREA_BUTTONS && sBoxCursorPosition == 1); -} - -bool8 IsCursorInBox(void) -{ - return (sBoxCursorArea == CURSOR_AREA_IN_BOX); -} - -static void sub_8093A10(void) -{ - gPSSData->setMosaic = (sIsMonBeingMoved == FALSE); - if (!sIsMonBeingMoved) - { - switch (sBoxCursorArea) - { - case CURSOR_AREA_IN_PARTY: - if (sBoxCursorPosition < PARTY_SIZE) - { - SetCursorMonData(&gPlayerParty[sBoxCursorPosition], MODE_PARTY); - break; - } - // fallthrough - case CURSOR_AREA_BUTTONS: - case CURSOR_AREA_BOX: - SetCursorMonData(NULL, MODE_2); - break; - case CURSOR_AREA_IN_BOX: - SetCursorMonData(GetBoxedMonPtr(StorageGetCurrentBox(), sBoxCursorPosition), MODE_BOX); - break; - } - } -} - -static void sub_8093AAC(void) -{ - if (sIsMonBeingMoved) - SetCursorMonData(&sMonBeingCarried, MODE_PARTY); - else - sub_8093A10(); -} - -static void SetCursorMonData(void *pokemon, u8 mode) -{ - u8 *txtPtr; - u16 gender; - bool8 sanityIsBagEgg; - - gPSSData->displayMonItemId = 0; - gender = MON_MALE; - sanityIsBagEgg = FALSE; - if (mode == MODE_PARTY) - { - struct Pokemon *mon = (struct Pokemon *)pokemon; - - gPSSData->displayMonSpecies = GetMonData(mon, MON_DATA_SPECIES2); - if (gPSSData->displayMonSpecies != SPECIES_NONE) - { - sanityIsBagEgg = GetMonData(mon, MON_DATA_SANITY_IS_BAD_EGG); - if (sanityIsBagEgg) - gPSSData->displayMonIsEgg = TRUE; - else - gPSSData->displayMonIsEgg = GetMonData(mon, MON_DATA_IS_EGG); - - GetMonData(mon, MON_DATA_NICKNAME, gPSSData->displayMonName); - StringGetEnd10(gPSSData->displayMonName); - gPSSData->displayMonLevel = GetMonData(mon, MON_DATA_LEVEL); - gPSSData->displayMonMarkings = GetMonData(mon, MON_DATA_MARKINGS); - gPSSData->displayMonPersonality = GetMonData(mon, MON_DATA_PERSONALITY); - gPSSData->displayMonPalette = GetMonFrontSpritePal(mon); - gender = GetMonGender(mon); - gPSSData->displayMonItemId = GetMonData(mon, MON_DATA_HELD_ITEM); - } - } - else if (mode == MODE_BOX) - { - struct BoxPokemon *boxMon = (struct BoxPokemon *)pokemon; - - gPSSData->displayMonSpecies = GetBoxMonData(pokemon, MON_DATA_SPECIES2); - if (gPSSData->displayMonSpecies != SPECIES_NONE) - { - u32 otId = GetBoxMonData(boxMon, MON_DATA_OT_ID); - sanityIsBagEgg = GetBoxMonData(boxMon, MON_DATA_SANITY_IS_BAD_EGG); - if (sanityIsBagEgg) - gPSSData->displayMonIsEgg = TRUE; - else - gPSSData->displayMonIsEgg = GetBoxMonData(boxMon, MON_DATA_IS_EGG); - - - GetBoxMonData(boxMon, MON_DATA_NICKNAME, gPSSData->displayMonName); - StringGetEnd10(gPSSData->displayMonName); - gPSSData->displayMonLevel = GetLevelFromBoxMonExp(boxMon); - gPSSData->displayMonMarkings = GetBoxMonData(boxMon, MON_DATA_MARKINGS); - gPSSData->displayMonPersonality = GetBoxMonData(boxMon, MON_DATA_PERSONALITY); - gPSSData->displayMonPalette = GetMonSpritePalFromSpeciesAndPersonality(gPSSData->displayMonSpecies, otId, gPSSData->displayMonPersonality); - gender = GetGenderFromSpeciesAndPersonality(gPSSData->displayMonSpecies, gPSSData->displayMonPersonality); - gPSSData->displayMonItemId = GetBoxMonData(boxMon, MON_DATA_HELD_ITEM); - } - } - else - { - gPSSData->displayMonSpecies = SPECIES_NONE; - gPSSData->displayMonItemId = 0; - } - - if (gPSSData->displayMonSpecies == SPECIES_NONE) - { - StringFill(gPSSData->displayMonName, CHAR_SPACE, 5); - StringFill(gPSSData->displayMonTexts[0], CHAR_SPACE, 8); - StringFill(gPSSData->displayMonTexts[1], CHAR_SPACE, 8); - StringFill(gPSSData->displayMonTexts[2], CHAR_SPACE, 8); - StringFill(gPSSData->displayMonTexts[3], CHAR_SPACE, 8); - } - else if (gPSSData->displayMonIsEgg) - { - if (sanityIsBagEgg) - StringCopyPadded(gPSSData->displayMonTexts[0], gPSSData->displayMonName, CHAR_SPACE, 5); - else - StringCopyPadded(gPSSData->displayMonTexts[0], gText_EggNickname, CHAR_SPACE, 8); - - StringFill(gPSSData->displayMonTexts[1], CHAR_SPACE, 8); - StringFill(gPSSData->displayMonTexts[2], CHAR_SPACE, 8); - StringFill(gPSSData->displayMonTexts[3], CHAR_SPACE, 8); - } - else - { - if (gPSSData->displayMonSpecies == SPECIES_NIDORAN_F || gPSSData->displayMonSpecies == SPECIES_NIDORAN_M) - gender = MON_GENDERLESS; - - StringCopyPadded(gPSSData->displayMonTexts[0], gPSSData->displayMonName, CHAR_SPACE, 5); - - txtPtr = gPSSData->displayMonTexts[1]; - *(txtPtr)++ = CHAR_SLASH; - StringCopyPadded(txtPtr, gSpeciesNames[gPSSData->displayMonSpecies], CHAR_SPACE, 5); - - txtPtr = gPSSData->displayMonTexts[2]; - *(txtPtr)++ = EXT_CTRL_CODE_BEGIN; - *(txtPtr)++ = EXT_CTRL_CODE_COLOR_HIGHLIGHT_SHADOW; - switch (gender) - { - case MON_MALE: - *(txtPtr)++ = TEXT_COLOR_RED; - *(txtPtr)++ = TEXT_COLOR_WHITE; - *(txtPtr)++ = TEXT_COLOR_LIGHT_RED; - *(txtPtr)++ = CHAR_MALE; - break; - case MON_FEMALE: - *(txtPtr)++ = TEXT_COLOR_GREEN; - *(txtPtr)++ = TEXT_COLOR_WHITE; - *(txtPtr)++ = TEXT_COLOR_LIGHT_GREEN; - *(txtPtr)++ = CHAR_FEMALE; - break; - default: - *(txtPtr)++ = TEXT_COLOR_DARK_GRAY; - *(txtPtr)++ = TEXT_COLOR_WHITE; - *(txtPtr)++ = TEXT_COLOR_LIGHT_GRAY; - *(txtPtr)++ = CHAR_SPACE; - break; - } - - *(txtPtr++) = EXT_CTRL_CODE_BEGIN; - *(txtPtr++) = EXT_CTRL_CODE_COLOR_HIGHLIGHT_SHADOW; - *(txtPtr++) = TEXT_COLOR_DARK_GRAY; - *(txtPtr++) = TEXT_COLOR_WHITE; - *(txtPtr++) = TEXT_COLOR_LIGHT_GRAY; - *(txtPtr++) = CHAR_SPACE; - *(txtPtr++) = CHAR_EXTRA_SYMBOL; - *(txtPtr++) = 5; // LV_2 - - txtPtr = ConvertIntToDecimalStringN(txtPtr, gPSSData->displayMonLevel, STR_CONV_MODE_LEFT_ALIGN, 3); - txtPtr[0] = CHAR_SPACE; - txtPtr[1] = EOS; - - if (gPSSData->displayMonItemId != 0) - StringCopyPadded(gPSSData->displayMonTexts[3], ItemId_GetName(gPSSData->displayMonItemId), CHAR_SPACE, 8); - else - StringFill(gPSSData->displayMonTexts[3], CHAR_SPACE, 8); - } -} - -static u8 HandleInput_InBox(void) -{ - switch (gPSSData->inBoxMovingMode) - { - case 0: - default: - return InBoxInput_Normal(); - case 1: - return InBoxInput_GrabbingMultiple(); - case 2: - return InBoxInput_MovingMultiple(); - } -} - -static u8 InBoxInput_Normal(void) -{ - u8 retVal; - s8 cursorArea; - s8 cursorPosition; - - do - { - cursorArea = sBoxCursorArea; - cursorPosition = sBoxCursorPosition; - gPSSData->cursorVerticalWrap = 0; - gPSSData->cursorHorizontalWrap = 0; - gPSSData->cursorFlipTimer = 0; - if (JOY_REPT(DPAD_UP)) - { - retVal = TRUE; - if (sBoxCursorPosition >= IN_BOX_ROWS) - { - cursorPosition -= IN_BOX_ROWS; - } - else - { - cursorArea = CURSOR_AREA_BOX; - cursorPosition = 0; - } - break; - } - else if (JOY_REPT(DPAD_DOWN)) - { - retVal = TRUE; - cursorPosition += IN_BOX_ROWS; - if (cursorPosition >= IN_BOX_COUNT) - { - cursorArea = CURSOR_AREA_BUTTONS; - cursorPosition -= IN_BOX_COUNT; - cursorPosition /= 3; - gPSSData->cursorVerticalWrap = 1; - gPSSData->cursorFlipTimer = 1; - } - break; - } - else if (JOY_REPT(DPAD_LEFT)) - { - retVal = TRUE; - if (sBoxCursorPosition % IN_BOX_ROWS != 0) - { - cursorPosition--; - } - else - { - gPSSData->cursorHorizontalWrap = -1; - cursorPosition += (IN_BOX_ROWS - 1); - } - break; - } - else if (JOY_REPT(DPAD_RIGHT)) - { - retVal = TRUE; - if ((sBoxCursorPosition + 1) % IN_BOX_ROWS != 0) - { - cursorPosition++; - } - else - { - gPSSData->cursorHorizontalWrap = 1; - cursorPosition -= (IN_BOX_ROWS - 1); - } - break; - } - else if (JOY_NEW(START_BUTTON)) - { - retVal = TRUE; - cursorArea = CURSOR_AREA_BOX; - cursorPosition = 0; - break; - } - - if ((JOY_NEW(A_BUTTON)) && sub_8094924()) - { - if (!sCanOnlyMove) - return 8; - - if (gPSSData->boxOption != OPTION_MOVE_MONS || sIsMonBeingMoved == TRUE) - { - switch (sub_8094E50(0)) - { - case PC_TEXT_STORE: - return 11; - case PC_TEXT_WITHDRAW: - return 12; - case PC_TEXT_MOVE: - return 13; - case PC_TEXT_SHIFT: - return 14; - case PC_TEXT_PLACE: - return 15; - case PC_TEXT_TAKE: - return 16; - case PC_TEXT_GIVE: - return 17; - case PC_TEXT_SWITCH: - return 18; - } - } - else - { - gPSSData->inBoxMovingMode = 1; - return 20; - } - } - - if (JOY_NEW(B_BUTTON)) - return 19; - - if (gSaveBlock2Ptr->optionsButtonMode == OPTIONS_BUTTON_MODE_LR) - { - if (JOY_HELD(L_BUTTON)) - return 10; - if (JOY_HELD(R_BUTTON)) - return 9; - } - - if (JOY_NEW(SELECT_BUTTON)) - { - sub_8094C84(); - return 0; - } - - retVal = 0; - - } while (0); - - if (retVal) - sub_80927E8(cursorArea, cursorPosition); - - return retVal; -} - -static u8 InBoxInput_GrabbingMultiple(void) -{ - if (JOY_HELD(A_BUTTON)) - { - if (JOY_REPT(DPAD_UP)) - { - if (sBoxCursorPosition / IN_BOX_ROWS != 0) - { - sub_80927E8(CURSOR_AREA_IN_BOX, sBoxCursorPosition - IN_BOX_ROWS); - return 21; - } - else - { - return 24; - } - } - else if (JOY_REPT(DPAD_DOWN)) - { - if (sBoxCursorPosition + IN_BOX_ROWS < IN_BOX_COUNT) - { - sub_80927E8(CURSOR_AREA_IN_BOX, sBoxCursorPosition + IN_BOX_ROWS); - return 21; - } - else - { - return 24; - } - } - else if (JOY_REPT(DPAD_LEFT)) - { - if (sBoxCursorPosition % IN_BOX_ROWS != 0) - { - sub_80927E8(CURSOR_AREA_IN_BOX, sBoxCursorPosition - 1); - return 21; - } - else - { - return 24; - } - } - else if (JOY_REPT(DPAD_RIGHT)) - { - if ((sBoxCursorPosition + 1) % IN_BOX_ROWS != 0) - { - sub_80927E8(CURSOR_AREA_IN_BOX, sBoxCursorPosition + 1); - return 21; - } - else - { - return 24; - } - } - else - { - return 0; - } - } - else - { - if (sub_8095AA0() == sBoxCursorPosition) - { - gPSSData->inBoxMovingMode = 0; - gPSSData->cursorShadowSprite->invisible = FALSE; - return 22; - } - else - { - sIsMonBeingMoved = (gPSSData->displayMonSpecies != SPECIES_NONE); - gPSSData->inBoxMovingMode = 2; - sMovingMonOrigBoxId = StorageGetCurrentBox(); - return 23; - } - } -} - -static u8 InBoxInput_MovingMultiple(void) -{ - if (JOY_REPT(DPAD_UP)) - { - if (sub_8095474(0)) - { - sub_80927E8(CURSOR_AREA_IN_BOX, sBoxCursorPosition - IN_BOX_ROWS); - return 25; - } - else - { - return 24; - } - } - else if (JOY_REPT(DPAD_DOWN)) - { - if (sub_8095474(1)) - { - sub_80927E8(CURSOR_AREA_IN_BOX, sBoxCursorPosition + IN_BOX_ROWS); - return 25; - } - else - { - return 24; - } - } - else if (JOY_REPT(DPAD_LEFT)) - { - if (sub_8095474(2)) - { - sub_80927E8(CURSOR_AREA_IN_BOX, sBoxCursorPosition - 1); - return 25; - } - else - { - return 10; - } - } - else if (JOY_REPT(DPAD_RIGHT)) - { - if (sub_8095474(3)) - { - sub_80927E8(CURSOR_AREA_IN_BOX, sBoxCursorPosition + 1); - return 25; - } - else - { - return 9; - } - } - else if (JOY_NEW(A_BUTTON)) - { - if (sub_8095ABC()) - { - sIsMonBeingMoved = FALSE; - gPSSData->inBoxMovingMode = 0; - return 26; - } - else - { - return 24; - } - } - else if (JOY_NEW(B_BUTTON)) - { - return 24; - } - else - { - if (gSaveBlock2Ptr->optionsButtonMode == OPTIONS_BUTTON_MODE_LR) - { - if (JOY_HELD(L_BUTTON)) - return 10; - if (JOY_HELD(R_BUTTON)) - return 9; - } - - return 0; - } -} - -static u8 HandleInput_InParty(void) -{ - u8 retVal; - bool8 gotoBox; - s8 cursorArea; - s8 cursorPosition; - - do - { - cursorArea = sBoxCursorArea; - cursorPosition = sBoxCursorPosition; - gPSSData->cursorHorizontalWrap = 0; - gPSSData->cursorVerticalWrap = 0; - gPSSData->cursorFlipTimer = 0; - gotoBox = FALSE; - retVal = 0; - - if (JOY_REPT(DPAD_UP)) - { - if (--cursorPosition < 0) - cursorPosition = PARTY_SIZE; - if (cursorPosition != sBoxCursorPosition) - retVal = 1; - break; - } - else if (JOY_REPT(DPAD_DOWN)) - { - if (++cursorPosition > PARTY_SIZE) - cursorPosition = 0; - if (cursorPosition != sBoxCursorPosition) - retVal = 1; - break; - } - else if (JOY_REPT(DPAD_LEFT) && sBoxCursorPosition != 0) - { - retVal = 1; - gPSSData->cursorPrevHorizPos = sBoxCursorPosition; - cursorPosition = 0; - break; - } - else if (JOY_REPT(DPAD_RIGHT)) - { - if (sBoxCursorPosition == 0) - { - retVal = 1; - cursorPosition = gPSSData->cursorPrevHorizPos; - } - else - { - retVal = 6; - cursorArea = CURSOR_AREA_IN_BOX; - cursorPosition = 0; - } - break; - } - - if (JOY_NEW(A_BUTTON)) - { - if (sBoxCursorPosition == PARTY_SIZE) - { - if (gPSSData->boxOption == OPTION_DEPOSIT) - return 4; - - gotoBox = TRUE; - } - else if (sub_8094924()) - { - if (!sCanOnlyMove) - return 8; - - switch (sub_8094E50(0)) - { - case PC_TEXT_STORE: - return 11; - case PC_TEXT_WITHDRAW: - return 12; - case PC_TEXT_MOVE: - return 13; - case PC_TEXT_SHIFT: - return 14; - case PC_TEXT_PLACE: - return 15; - case PC_TEXT_TAKE: - return 16; - case PC_TEXT_GIVE: - return 17; - case PC_TEXT_SWITCH: - return 18; - } - } - } - - if (JOY_NEW(B_BUTTON)) - { - if (gPSSData->boxOption == OPTION_DEPOSIT) - return 19; - - gotoBox = TRUE; - } - - if (gotoBox) - { - retVal = 6; - cursorArea = CURSOR_AREA_IN_BOX; - cursorPosition = 0; - } - else if (JOY_NEW(SELECT_BUTTON)) - { - sub_8094C84(); - return 0; - } - - } while (0); - - if (retVal != 0) - { - if (retVal != 6) - sub_80927E8(cursorArea, cursorPosition); - } - - return retVal; -} - -static u8 HandleInput_OnBox(void) -{ - u8 retVal; - s8 cursorArea; - s8 cursorPosition; - - do - { - gPSSData->cursorHorizontalWrap = 0; - gPSSData->cursorVerticalWrap = 0; - gPSSData->cursorFlipTimer = 0; - - if (JOY_REPT(DPAD_UP)) - { - retVal = 1; - cursorArea = CURSOR_AREA_BUTTONS; - cursorPosition = 0; - gPSSData->cursorFlipTimer = 1; - break; - } - else if (JOY_REPT(DPAD_DOWN)) - { - retVal = 1; - cursorArea = CURSOR_AREA_IN_BOX; - cursorPosition = 2; - break; - } - - if (JOY_HELD(DPAD_LEFT)) - return 10; - if (JOY_HELD(DPAD_RIGHT)) - return 9; - - if (gSaveBlock2Ptr->optionsButtonMode == OPTIONS_BUTTON_MODE_LR) - { - if (JOY_HELD(L_BUTTON)) - return 10; - if (JOY_HELD(R_BUTTON)) - return 9; - } - - if (JOY_NEW(A_BUTTON)) - { - AnimateBoxScrollArrows(FALSE); - AddBoxMenu(); - return 7; - } - - if (JOY_NEW(B_BUTTON)) - return 19; - - if (JOY_NEW(SELECT_BUTTON)) - { - sub_8094C84(); - return 0; - } - - retVal = 0; - - } while (0); - - if (retVal) - { - if (cursorArea != CURSOR_AREA_BOX) - AnimateBoxScrollArrows(FALSE); - sub_80927E8(cursorArea, cursorPosition); - } - - return retVal; -} - -static u8 HandleInput_OnButtons(void) -{ - u8 retVal; - s8 cursorArea; - s8 cursorPosition; - s8 prevPos; - - do - { - cursorArea = sBoxCursorArea; - cursorPosition = sBoxCursorPosition; - gPSSData->cursorHorizontalWrap = 0; - gPSSData->cursorVerticalWrap = 0; - gPSSData->cursorFlipTimer = 0; - - if (JOY_REPT(DPAD_UP)) - { - retVal = 1; - cursorArea = CURSOR_AREA_IN_BOX; - gPSSData->cursorVerticalWrap = -1; - if (sBoxCursorPosition == 0) - cursorPosition = IN_BOX_COUNT - 1 - 5; - else - cursorPosition = IN_BOX_COUNT - 1; - gPSSData->cursorFlipTimer = 1; - break; - } - else if (JOY_REPT(DPAD_DOWN | START_BUTTON)) - { - retVal = 1; - cursorArea = CURSOR_AREA_BOX; - cursorPosition = 0; - gPSSData->cursorFlipTimer = 1; - break; - } - - if (JOY_REPT(DPAD_LEFT)) - { - retVal = 1; - if (--cursorPosition < 0) - cursorPosition = 1; - break; - } - else if (JOY_REPT(DPAD_RIGHT)) - { - retVal = 1; - if (++cursorPosition > 1) - cursorPosition = 0; - break; - } - - if (JOY_NEW(A_BUTTON)) - { - return cursorPosition == 0 ? 5 : 4; - } - if (JOY_NEW(B_BUTTON)) - return 19; - - if (JOY_NEW(SELECT_BUTTON)) - { - sub_8094C84(); - return 0; - } - - retVal = 0; - } while (0); - - if (retVal != 0) - sub_80927E8(cursorArea, cursorPosition); - - return retVal; -} - -u8 HandleInput(void) -{ - struct - { - u8 (*func)(void); - s8 area; - } - static const inputFuncs[] = { - {HandleInput_InBox, CURSOR_AREA_IN_BOX}, - {HandleInput_InParty, CURSOR_AREA_IN_PARTY}, - {HandleInput_OnBox, CURSOR_AREA_BOX}, - {HandleInput_OnButtons, CURSOR_AREA_BUTTONS}, - {NULL, 0}, - }; - - u16 i = 0; - while (inputFuncs[i].func != NULL) - { - if (inputFuncs[i].area == sBoxCursorArea) - return inputFuncs[i].func(); - i++; - } - - return 0; -} - -static void AddBoxMenu(void) -{ - InitMenu(); - SetMenuText(PC_TEXT_JUMP); - SetMenuText(PC_TEXT_WALLPAPER); - SetMenuText(PC_TEXT_NAME); - SetMenuText(PC_TEXT_CANCEL); -} - -static bool8 sub_8094924(void) -{ - InitMenu(); - if (gPSSData->boxOption != OPTION_MOVE_ITEMS) - return sub_809494C(); - else - return sub_8094A0C(); -} - -static bool8 sub_809494C(void) -{ - u16 var0 = sub_8092458(); - - switch (gPSSData->boxOption) - { - case OPTION_DEPOSIT: - if (var0) - SetMenuText(PC_TEXT_STORE); - else - return FALSE; - break; - case OPTION_WITHDRAW: - if (var0) - SetMenuText(PC_TEXT_WITHDRAW); - else - return FALSE; - break; - case OPTION_MOVE_MONS: - if (sIsMonBeingMoved) - { - if (var0) - SetMenuText(PC_TEXT_SHIFT); - else - SetMenuText(PC_TEXT_PLACE); - } - else - { - if (var0) - SetMenuText(PC_TEXT_MOVE); - else - return FALSE; - } - break; - case OPTION_MOVE_ITEMS: - default: - return FALSE; - } - - SetMenuText(PC_TEXT_SUMMARY); - if (gPSSData->boxOption == OPTION_MOVE_MONS) - { - if (!sBoxCursorArea) - SetMenuText(PC_TEXT_WITHDRAW); - else - SetMenuText(PC_TEXT_STORE); - } - - SetMenuText(PC_TEXT_MARK); - SetMenuText(PC_TEXT_RELEASE); - SetMenuText(PC_TEXT_CANCEL); - return TRUE; -} - -static bool8 sub_8094A0C(void) -{ - if (gPSSData->displayMonSpecies == SPECIES_EGG) - return FALSE; - - if (!IsActiveItemMoving()) - { - if (gPSSData->displayMonItemId == ITEM_NONE) - { - if (gPSSData->displayMonSpecies == SPECIES_NONE) - return FALSE; - - SetMenuText(PC_TEXT_GIVE2); - } - else - { - if (!ItemIsMail(gPSSData->displayMonItemId)) - { - SetMenuText(PC_TEXT_TAKE); - SetMenuText(PC_TEXT_BAG); - } - SetMenuText(PC_TEXT_INFO); - } - } - else - { - if (gPSSData->displayMonItemId == ITEM_NONE) - { - if (gPSSData->displayMonSpecies == SPECIES_NONE) - return FALSE; - - SetMenuText(PC_TEXT_GIVE); - } - else - { - if (ItemIsMail(gPSSData->displayMonItemId) == TRUE) - return FALSE; - - SetMenuText(PC_TEXT_SWITCH); - } - } - - SetMenuText(PC_TEXT_CANCEL); - return TRUE; -} - -static void sub_8094AB8(struct Sprite *sprite) -{ - sprite->x = gPSSData->cursorSprite->x; - sprite->y = gPSSData->cursorSprite->y + 20; -} - -static void sub_8094AD8(void) -{ - u16 x, y; - u8 spriteId; - u8 priority, subpriority; - struct SpriteSheet spriteSheets[] = { - {sHandCursorTiles, 0x800, TAG_TILE_0}, - {sHandCursorShadowTiles, 0x80, TAG_TILE_1}, - {} - }; - - struct SpritePalette spritePalettes[] = { - {sHandCursorPalette, TAG_PAL_DAC7}, - {} - }; - - static const struct OamData sOamData_857BA0C = { - .shape = SPRITE_SHAPE(32x32), - .size = SPRITE_SIZE(32x32), - .priority = 1, - }; - static const struct OamData sOamData_857BA14 = { - .shape = SPRITE_SHAPE(16x16), - .size = SPRITE_SIZE(16x16), - .priority = 1, - }; - - static const union AnimCmd sSpriteAnim_857BA1C[] = { - ANIMCMD_FRAME(0, 30), - ANIMCMD_FRAME(16, 30), - ANIMCMD_JUMP(0) - }; - static const union AnimCmd sSpriteAnim_857BA28[] = { - ANIMCMD_FRAME(0, 5), - ANIMCMD_END - }; - static const union AnimCmd sSpriteAnim_857BA30[] = { - ANIMCMD_FRAME(32, 5), - ANIMCMD_END - }; - static const union AnimCmd sSpriteAnim_857BA38[] = { - ANIMCMD_FRAME(48, 5), - ANIMCMD_END - }; - - static const union AnimCmd *const sSpriteAnimTable_857BA40[] = { - sSpriteAnim_857BA1C, - sSpriteAnim_857BA28, - sSpriteAnim_857BA30, - sSpriteAnim_857BA38 - }; - - static const struct SpriteTemplate gSpriteTemplate_857BA50 = { - .tileTag = TAG_TILE_0, - .paletteTag = TAG_PAL_WAVEFORM, - .oam = &sOamData_857BA0C, - .anims = sSpriteAnimTable_857BA40, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCallbackDummy, - }; - - static const struct SpriteTemplate gSpriteTemplate_857BA68 = { - .tileTag = TAG_TILE_1, - .paletteTag = TAG_PAL_WAVEFORM, - .oam = &sOamData_857BA14, - .anims = gDummySpriteAnimTable, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8094AB8, - }; - - LoadSpriteSheets(spriteSheets); - LoadSpritePalettes(spritePalettes); - gPSSData->cursorPalNums[0] = IndexOfSpritePaletteTag(TAG_PAL_WAVEFORM); - gPSSData->cursorPalNums[1] = IndexOfSpritePaletteTag(TAG_PAL_DAC7); - - sub_8092398(sBoxCursorArea, sBoxCursorPosition, &x, &y); - spriteId = CreateSprite(&gSpriteTemplate_857BA50, x, y, 6); - if (spriteId != MAX_SPRITES) - { - gPSSData->cursorSprite = &gSprites[spriteId]; - gPSSData->cursorSprite->oam.paletteNum = gPSSData->cursorPalNums[sCanOnlyMove]; - gPSSData->cursorSprite->oam.priority = 1; - if (sIsMonBeingMoved) - StartSpriteAnim(gPSSData->cursorSprite, 3); - } - else - { - gPSSData->cursorSprite = NULL; - } - - if (sBoxCursorArea == CURSOR_AREA_IN_PARTY) - { - subpriority = 13; - priority = 1; - } - else - { - subpriority = 21; - priority = 2; - } - - spriteId = CreateSprite(&gSpriteTemplate_857BA68, 0, 0, subpriority); - if (spriteId != MAX_SPRITES) - { - gPSSData->cursorShadowSprite = &gSprites[spriteId]; - gPSSData->cursorShadowSprite->oam.priority = priority; - if (sBoxCursorArea) - gPSSData->cursorShadowSprite->invisible = 1; - } - else - { - gPSSData->cursorShadowSprite = NULL; - } -} - -static void sub_8094C84(void) -{ - sCanOnlyMove = !sCanOnlyMove; - gPSSData->cursorSprite->oam.paletteNum = gPSSData->cursorPalNums[sCanOnlyMove]; -} - -u8 GetBoxCursorPosition(void) -{ - return sBoxCursorPosition; -} - -void sub_8094CD4(u8 *arg0, u8 *arg1) -{ - if (sBoxCursorArea == CURSOR_AREA_IN_BOX) - { - *arg0 = sBoxCursorPosition % IN_BOX_ROWS; - *arg1 = sBoxCursorPosition / IN_BOX_ROWS; - } - else - { - *arg0 = 0; - *arg1 = 0; - } -} - -void sub_8094D14(u8 animNum) -{ - StartSpriteAnim(gPSSData->cursorSprite, animNum); -} - -u8 sub_8094D34(void) -{ - return sMovingMonOrigBoxId; -} - -void sub_8094D40(void) -{ - gPSSData->cursorSprite->oam.priority = 1; -} - -void sub_8094D60(void) -{ - if (sBoxCursorArea == CURSOR_AREA_IN_BOX) - sub_8095D44(CURSOR_AREA_IN_BOX, sBoxCursorPosition); -} - -void sub_8094D84(void) -{ - if (sBoxCursorArea == CURSOR_AREA_IN_BOX) - sub_8095C84(CURSOR_AREA_IN_BOX, sBoxCursorPosition); -} diff --git a/src/pokemon_storage_system_6.c b/src/pokemon_storage_system_6.c deleted file mode 100644 index 6b8b4f67d..000000000 --- a/src/pokemon_storage_system_6.c +++ /dev/null @@ -1,147 +0,0 @@ -#include "global.h" -#include "gflib.h" -#include "menu.h" -#include "new_menu_helpers.h" -#include "pokemon_storage_system_internal.h" -#include "strings.h" -#include "constants/songs.h" - -void InitMenu(void) -{ - gPSSData->menuItemsCount = 0; - gPSSData->menuWidth = 0; - gPSSData->menuWindow.bg = 0; - gPSSData->menuWindow.paletteNum = 15; - gPSSData->menuWindow.baseBlock = 92; -} - -static const u8 *const sMenuTexts[] = { - [PC_TEXT_CANCEL] = gPCText_Cancel, - [PC_TEXT_STORE] = gPCText_Store, - [PC_TEXT_WITHDRAW] = gPCText_Withdraw, - [PC_TEXT_MOVE] = gPCText_Move, - [PC_TEXT_SHIFT] = gPCText_Shift, - [PC_TEXT_PLACE] = gPCText_Place, - [PC_TEXT_SUMMARY] = gPCText_Summary, - [PC_TEXT_RELEASE] = gPCText_Release, - [PC_TEXT_MARK] = gPCText_Mark, - [PC_TEXT_JUMP] = gPCText_Jump, - [PC_TEXT_WALLPAPER] = gPCText_Wallpaper, - [PC_TEXT_NAME] = gPCText_Name, - [PC_TEXT_TAKE] = gPCText_Take, - [PC_TEXT_GIVE] = gPCText_Give, - [PC_TEXT_GIVE2] = gPCText_Give, - [PC_TEXT_SWITCH] = gPCText_Switch, - [PC_TEXT_BAG] = gPCText_Bag, - [PC_TEXT_INFO] = gPCText_Info, - [PC_TEXT_SCENERY1] = gPCText_Scenery1, - [PC_TEXT_SCENERY2] = gPCText_Scenery2, - [PC_TEXT_SCENERY3] = gPCText_Scenery3, - [PC_TEXT_ETCETERA] = gPCText_Etcetera, - [PC_TEXT_FOREST] = gPCText_Forest, - [PC_TEXT_CITY] = gPCText_City, - [PC_TEXT_DESERT] = gPCText_Desert, - [PC_TEXT_SAVANNA] = gPCText_Savanna, - [PC_TEXT_CRAG] = gPCText_Crag, - [PC_TEXT_VOLCANO] = gPCText_Volcano, - [PC_TEXT_SNOW] = gPCText_Snow, - [PC_TEXT_CAVE] = gPCText_Cave, - [PC_TEXT_BEACH] = gPCText_Beach, - [PC_TEXT_SEAFLOOR] = gPCText_Seafloor, - [PC_TEXT_RIVER] = gPCText_River, - [PC_TEXT_SKY] = gPCText_Sky, - [PC_TEXT_POLKADOT] = gPCText_PolkaDot, - [PC_TEXT_POKECENTER] = gPCText_Pokecenter, - [PC_TEXT_MACHINE] = gPCText_Machine, - [PC_TEXT_SIMPLE] = gPCText_Simple, -}; - -void SetMenuText(u8 textId) -{ - if (gPSSData->menuItemsCount < ARRAY_COUNT(gPSSData->menuItems)) - { - u8 len; - struct StorageMenu *menu = &gPSSData->menuItems[gPSSData->menuItemsCount]; - - menu->text = sMenuTexts[textId]; - menu->textId = textId; - len = StringLength(menu->text); - if (len > gPSSData->menuWidth) - gPSSData->menuWidth = len; - - gPSSData->menuItemsCount++; - } -} - -s8 sub_8094E50(u8 arg0) -{ - if (arg0 >= gPSSData->menuItemsCount) - return -1; - else - return gPSSData->menuItems[arg0].textId; -} - -void AddMenu(void) -{ - gPSSData->menuWindow.width = gPSSData->menuWidth + 2; - gPSSData->menuWindow.height = 2 * gPSSData->menuItemsCount; - gPSSData->menuWindow.tilemapLeft = 29 - gPSSData->menuWindow.width; - gPSSData->menuWindow.tilemapTop = 15 - gPSSData->menuWindow.height; - gPSSData->menuWindowId = AddWindow(&gPSSData->menuWindow); - ClearWindowTilemap(gPSSData->menuWindowId); - DrawStdFrameWithCustomTileAndPalette(gPSSData->menuWindowId, FALSE, 0x00b, 14); - PrintTextArray(gPSSData->menuWindowId, FONT_1, 8, 2, 16, gPSSData->menuItemsCount, (void *)gPSSData->menuItems); - Menu_InitCursor(gPSSData->menuWindowId, FONT_1, 0, 2, 16, gPSSData->menuItemsCount, 0); - ScheduleBgCopyTilemapToVram(0); - gPSSData->menuUnusedField = 0; -} - -bool8 sub_8094F90(void) -{ - // Some debug flag? - return FALSE; -} - -s16 sub_8094F94(void) -{ - s32 textId = -2; - - do - { - if (JOY_NEW(A_BUTTON)) - { - textId = Menu_GetCursorPos(); - break; - } - else if (JOY_NEW(B_BUTTON)) - { - PlaySE(SE_SELECT); - textId = -1; - } - - if (JOY_NEW(DPAD_UP)) - { - PlaySE(SE_SELECT); - Menu_MoveCursor(-1); - } - else if (JOY_NEW(DPAD_DOWN)) - { - PlaySE(SE_SELECT); - Menu_MoveCursor(1); - } - } while (0); - - if (textId != -2) - sub_8095024(); - - if (textId >= 0) - textId = gPSSData->menuItems[textId].textId; - - return textId; -} - -void sub_8095024(void) -{ - ClearStdWindowAndFrameToTransparent(gPSSData->menuWindowId, TRUE); - RemoveWindow(gPSSData->menuWindowId); -} diff --git a/src/pokemon_storage_system_7.c b/src/pokemon_storage_system_7.c deleted file mode 100644 index 95d199172..000000000 --- a/src/pokemon_storage_system_7.c +++ /dev/null @@ -1,586 +0,0 @@ -#include // to declare abs -#include "global.h" -#include "gflib.h" -#include "pokemon_icon.h" -#include "pokemon_storage_system_internal.h" -#include "text_window.h" - -struct MoveMons -{ - u8 field_0; - u8 state; - u8 fromRow; - u8 fromColumn; - u8 toRow; - u8 toColumn; - u8 field_6; - u8 field_7; - u8 minRow; - u8 minColumn; - u8 rowsTotal; - u8 columsTotal; - u16 bgX; - u16 bgY; - u16 field_10; - struct BoxPokemon boxMons[IN_BOX_COUNT]; -}; - -static EWRAM_DATA struct MoveMons *sMoveMonsPtr = NULL; - -static bool8 sub_8095138(void); -static bool8 sub_8095234(void); -static bool8 sub_80952A0(void); -static bool8 sub_8095314(void); -static bool8 sub_8095394(void); -static bool8 sub_80953BC(void); -static void sub_8095520(void); -static void sub_80955C4(u8 arg0, u8 arg1, u8 arg2); -static void sub_80955FC(u8 arg0, u8 arg1, u8 arg2); -static void sub_8095634(u8 arg0, u8 arg1, u8 arg2); -static void sub_809566C(u8 arg0, u8 arg1, u8 arg2); -static void sub_80956A4(u8 x, u8 y); -static void sub_809572C(u8 x, u8 y); -static void sub_8095780(u16 bgX, u16 bgY, u16 duration); -static u8 sub_8095790(void); -static void sub_80957C8(void); -static void sub_80958A0(void); -static void sub_8095918(void); -static void sub_80959A8(void); -static void sub_8095A58(void); - -static const struct WindowTemplate gUnknown_83D35D4 = { - .bg = 0, - .tilemapLeft = 10, - .tilemapTop = 3, - .width = 20, - .height = 18, - .paletteNum = 9, - .baseBlock = 0x00a -}; - -bool8 sub_8095050(void) -{ - sMoveMonsPtr = Alloc(sizeof(*sMoveMonsPtr)); - if (sMoveMonsPtr != NULL) - { - gPSSData->field_2200 = AddWindow8Bit(&gUnknown_83D35D4); - if (gPSSData->field_2200 != 0xFF) - { - FillWindowPixelBuffer(gPSSData->field_2200, PIXEL_FILL(0)); - return TRUE; - } - } - - return FALSE; -} - -void sub_80950A4(void) -{ - if (sMoveMonsPtr != NULL) - Free(sMoveMonsPtr); -} - -void sub_80950BC(u8 arg0) -{ - sMoveMonsPtr->field_0 = arg0; - sMoveMonsPtr->state = 0; -} - -bool8 sub_80950D0(void) -{ - switch (sMoveMonsPtr->field_0) - { - case 0: - return sub_8095138(); - case 1: - return sub_8095234(); - case 2: - return sub_80952A0(); - case 3: - return sub_8095314(); - case 4: - return sub_8095394(); - case 5: - return sub_80953BC(); - } - - return FALSE; -} - -static bool8 sub_8095138(void) -{ - switch (sMoveMonsPtr->state) - { - case 0: - HideBg(0); - LoadMonIconPalettesAt(0x80); - sMoveMonsPtr->state++; - break; - case 1: - sub_8094CD4(&sMoveMonsPtr->fromRow, &sMoveMonsPtr->fromColumn); - sMoveMonsPtr->toRow = sMoveMonsPtr->fromRow; - sMoveMonsPtr->toColumn = sMoveMonsPtr->fromColumn; - ChangeBgX(0, -1024, 0); - ChangeBgY(0, -1024, 0); - FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 0x20, 0x20); - FillWindowPixelBuffer8Bit(gPSSData->field_2200, PIXEL_FILL(0)); - sub_80956A4(sMoveMonsPtr->fromRow, sMoveMonsPtr->fromColumn); - SetBgAttribute(0, BG_ATTR_PALETTEMODE, 1); - PutWindowTilemap(gPSSData->field_2200); - CopyWindowToVram8Bit(gPSSData->field_2200, COPYWIN_FULL); - BlendPalettes(0x3F00, 8, RGB_WHITE); - sub_8094D14(2); - SetGpuRegBits(REG_OFFSET_BG0CNT, BGCNT_256COLOR); - sMoveMonsPtr->state++; - break; - case 2: - if (!IsDma3ManagerBusyWithBgCopy()) - { - ShowBg(0); - return FALSE; - } - break; - } - - return TRUE; -} - -static bool8 sub_8095234(void) -{ - switch (sMoveMonsPtr->state) - { - case 0: - HideBg(0); - sMoveMonsPtr->state++; - break; - case 1: - sub_8095A58(); - sub_8094D14(0); - sMoveMonsPtr->state++; - break; - case 2: - if (!IsDma3ManagerBusyWithBgCopy()) - { - sub_8094D40(); - LoadPalette(stdpal_get(3), 0xD0, 0x20); - ShowBg(0); - return FALSE; - } - break; - } - - return TRUE; -} - -static bool8 sub_80952A0(void) -{ - switch (sMoveMonsPtr->state) - { - case 0: - if (!sub_80924A8()) - { - sub_8094CD4(&sMoveMonsPtr->field_6, &sMoveMonsPtr->field_7); - sub_8095520(); - sMoveMonsPtr->toRow = sMoveMonsPtr->field_6; - sMoveMonsPtr->toColumn = sMoveMonsPtr->field_7; - CopyWindowToVram8Bit(gPSSData->field_2200, COPYWIN_GFX); - sMoveMonsPtr->state++; - } - break; - case 1: - return IsDma3ManagerBusyWithBgCopy(); - } - - return TRUE; -} - -static bool8 sub_8095314(void) -{ - u8 var1, var2; - - switch (sMoveMonsPtr->state) - { - case 0: - sub_80957C8(); - sub_80958A0(); - sub_8092BAC(FALSE); - sMoveMonsPtr->state++; - break; - case 1: - if (!DoMonPlaceChange()) - { - sub_8094D14(3); - sub_8095780(0, 256, 8); - sub_8092BAC(TRUE); - sMoveMonsPtr->state++; - } - break; - case 2: - var1 = sub_8095790(); - var2 = DoMonPlaceChange(); - if (!var1 && !var2) - return FALSE; - break; - } - - return TRUE; -} - -static bool8 sub_8095394(void) -{ - u8 var1 = sub_80924A8(); - u8 var2 = sub_8095790(); - - if (!var1 && !var2) - return FALSE; - else - return TRUE; -} - -static bool8 sub_80953BC(void) -{ - switch (sMoveMonsPtr->state) - { - case 0: - sub_80959A8(); - sub_8095780(0, -256, 8); - sub_8092BAC(FALSE); - sMoveMonsPtr->state++; - break; - case 1: - if (!DoMonPlaceChange() && !sub_8095790()) - { - sub_8095918(); - sub_8094D14(2); - sub_8092BAC(TRUE); - HideBg(0); - sMoveMonsPtr->state++; - } - break; - case 2: - if (!DoMonPlaceChange()) - { - sub_8094D14(0); - sub_8095A58(); - sMoveMonsPtr->state++; - } - break; - case 3: - if (!IsDma3ManagerBusyWithBgCopy()) - { - LoadPalette(stdpal_get(3), 0xD0, 0x20); - sub_8094D40(); - ShowBg(0); - return FALSE; - } - break; - } - - return TRUE; -} - -bool8 sub_8095474(u8 arg0) -{ - switch (arg0) - { - case 0: // up - if (sMoveMonsPtr->minColumn == 0) - return FALSE; - sMoveMonsPtr->minColumn--; - sub_8095780(0, 1024, 6); - break; - case 1: // down - if (sMoveMonsPtr->minColumn + sMoveMonsPtr->columsTotal >= 5) - return FALSE; - sMoveMonsPtr->minColumn++; - sub_8095780(0, -1024, 6); - break; - case 2: // left - if (sMoveMonsPtr->minRow == 0) - return FALSE; - sMoveMonsPtr->minRow--; - sub_8095780(1024, 0, 6); - break; - case 3: // right - if (sMoveMonsPtr->minRow + sMoveMonsPtr->rowsTotal > 5) - return FALSE; - sMoveMonsPtr->minRow++; - sub_8095780(-1024, 0, 6); - break; - } - - return TRUE; -} - -static void sub_8095520(void) -{ - s16 var = (abs(sMoveMonsPtr->fromRow - sMoveMonsPtr->field_6)) - (abs(sMoveMonsPtr->fromRow - sMoveMonsPtr->toRow)); - s16 var2 = (abs(sMoveMonsPtr->fromColumn - sMoveMonsPtr->field_7)) - (abs(sMoveMonsPtr->fromColumn - sMoveMonsPtr->toColumn)); - - if (var > 0) - sub_80955C4(sMoveMonsPtr->field_6, sMoveMonsPtr->fromColumn, sMoveMonsPtr->toColumn); - - if (var < 0) - { - sub_8095634(sMoveMonsPtr->toRow, sMoveMonsPtr->fromColumn, sMoveMonsPtr->toColumn); - sub_80955C4(sMoveMonsPtr->field_6, sMoveMonsPtr->fromColumn, sMoveMonsPtr->toColumn); - } - - if (var2 > 0) - sub_80955FC(sMoveMonsPtr->field_7, sMoveMonsPtr->fromRow, sMoveMonsPtr->toRow); - - if (var2 < 0) - { - sub_809566C(sMoveMonsPtr->toColumn, sMoveMonsPtr->fromRow, sMoveMonsPtr->toRow); - sub_80955FC(sMoveMonsPtr->field_7, sMoveMonsPtr->fromRow, sMoveMonsPtr->toRow); - } -} - -static void sub_80955C4(u8 arg0, u8 arg1, u8 arg2) -{ - u8 var1 = arg1; - - if (arg1 > arg2) - { - arg1 = arg2; - arg2 = var1; - } - - while (arg1 <= arg2) - sub_80956A4(arg0, arg1++); -} - -static void sub_80955FC(u8 arg0, u8 arg1, u8 arg2) -{ - u8 var1 = arg1; - - if (arg1 > arg2) - { - arg1 = arg2; - arg2 = var1; - } - - while (arg1 <= arg2) - sub_80956A4(arg1++, arg0); -} - -static void sub_8095634(u8 arg0, u8 arg1, u8 arg2) -{ - u8 var1 = arg1; - - if (arg1 > arg2) - { - arg1 = arg2; - arg2 = var1; - } - - while (arg1 <= arg2) - sub_809572C(arg0, arg1++); -} - -static void sub_809566C(u8 arg0, u8 arg1, u8 arg2) -{ - u8 var1 = arg1; - - if (arg1 > arg2) - { - arg1 = arg2; - arg2 = var1; - } - - while (arg1 <= arg2) - sub_809572C(arg1++, arg0); -} - -static void sub_80956A4(u8 x, u8 y) -{ - u8 position = x + (IN_BOX_ROWS * y); - u16 species = GetCurrentBoxMonData(position, MON_DATA_SPECIES2); - u32 personality = GetCurrentBoxMonData(position, MON_DATA_PERSONALITY); - - if (species != SPECIES_NONE) - { - const u8 *iconGfx = GetMonIconPtr(species, personality, 1); - u8 index = GetValidMonIconPalIndex(species) + 8; - - BlitBitmapRectToWindow4BitTo8Bit(gPSSData->field_2200, - iconGfx, - 0, - 0, - 32, - 32, - 24 * x, - 24 * y, - 32, - 32, - index); - } -} - -static void sub_809572C(u8 x, u8 y) -{ - u8 position = x + (IN_BOX_ROWS * y); - u16 species = GetCurrentBoxMonData(position, MON_DATA_SPECIES2); - - if (species != SPECIES_NONE) - { - FillWindowPixelRect8Bit(gPSSData->field_2200, - PIXEL_FILL(0), - 24 * x, - 24 * y, - 32, - 32); - } -} - -static void sub_8095780(u16 bgX, u16 bgY, u16 duration) -{ - sMoveMonsPtr->bgX = bgX; - sMoveMonsPtr->bgY = bgY; - sMoveMonsPtr->field_10 = duration; -} - -static u8 sub_8095790(void) -{ - if (sMoveMonsPtr->field_10 != 0) - { - ChangeBgX(0, sMoveMonsPtr->bgX, 1); - ChangeBgY(0, sMoveMonsPtr->bgY, 1); - sMoveMonsPtr->field_10--; - } - - return sMoveMonsPtr->field_10; -} - -static void sub_80957C8(void) -{ - s32 i, j; - s32 rowCount, columnCount; - u8 boxId; - u8 monArrayId; - - sMoveMonsPtr->minRow = min(sMoveMonsPtr->fromRow, sMoveMonsPtr->toRow); - sMoveMonsPtr->minColumn = min(sMoveMonsPtr->fromColumn, sMoveMonsPtr->toColumn); - sMoveMonsPtr->rowsTotal = abs(sMoveMonsPtr->fromRow - sMoveMonsPtr->toRow) + 1; - sMoveMonsPtr->columsTotal = abs(sMoveMonsPtr->fromColumn - sMoveMonsPtr->toColumn) + 1; - boxId = StorageGetCurrentBox(); - monArrayId = 0; - rowCount = sMoveMonsPtr->minRow + sMoveMonsPtr->rowsTotal; - columnCount = sMoveMonsPtr->minColumn + sMoveMonsPtr->columsTotal; - for (i = sMoveMonsPtr->minColumn; i < columnCount; i++) - { - u8 boxPosition = (IN_BOX_ROWS * i) + sMoveMonsPtr->minRow; - for (j = sMoveMonsPtr->minRow; j < rowCount; j++) - { - struct BoxPokemon *boxMon = GetBoxedMonPtr(boxId, boxPosition); - // UB: possible null dereference -#ifdef UBFIX - if (boxMon != NULL) - sMoveMonsPtr->boxMons[monArrayId] = *boxMon; -#else - sMoveMonsPtr->boxMons[monArrayId] = *boxMon; -#endif - monArrayId++; - boxPosition++; - } - } -} - -static void sub_80958A0(void) -{ - s32 i, j; - s32 rowCount = sMoveMonsPtr->minRow + sMoveMonsPtr->rowsTotal; - s32 columnCount = sMoveMonsPtr->minColumn + sMoveMonsPtr->columsTotal; - u8 boxId = StorageGetCurrentBox(); - - for (i = sMoveMonsPtr->minColumn; i < columnCount; i++) - { - u8 boxPosition = (IN_BOX_ROWS * i) + sMoveMonsPtr->minRow; - for (j = sMoveMonsPtr->minRow; j < rowCount; j++) - { - DestroyBoxMonIconAtPosition(boxPosition); - ZeroBoxMonAt(boxId, boxPosition); - boxPosition++; - } - } -} - -static void sub_8095918(void) -{ - s32 i, j; - s32 rowCount = sMoveMonsPtr->minRow + sMoveMonsPtr->rowsTotal; - s32 columnCount = sMoveMonsPtr->minColumn + sMoveMonsPtr->columsTotal; - u8 monArrayId = 0; - - for (i = sMoveMonsPtr->minColumn; i < columnCount; i++) - { - u8 boxPosition = (IN_BOX_ROWS * i) + sMoveMonsPtr->minRow; - for (j = sMoveMonsPtr->minRow; j < rowCount; j++) - { - if (GetBoxMonData(&sMoveMonsPtr->boxMons[monArrayId], MON_DATA_SANITY_HAS_SPECIES)) - sub_80901EC(boxPosition); - monArrayId++; - boxPosition++; - } - } -} - -static void sub_80959A8(void) -{ - s32 i, j; - s32 rowCount = sMoveMonsPtr->minRow + sMoveMonsPtr->rowsTotal; - s32 columnCount = sMoveMonsPtr->minColumn + sMoveMonsPtr->columsTotal; - u8 boxId = StorageGetCurrentBox(); - u8 monArrayId = 0; - - for (i = sMoveMonsPtr->minColumn; i < columnCount; i++) - { - u8 boxPosition = (IN_BOX_ROWS * i) + sMoveMonsPtr->minRow; - for (j = sMoveMonsPtr->minRow; j < rowCount; j++) - { - if (GetBoxMonData(&sMoveMonsPtr->boxMons[monArrayId], MON_DATA_SANITY_HAS_SPECIES)) - SetBoxMonAt(boxId, boxPosition, &sMoveMonsPtr->boxMons[monArrayId]); - boxPosition++; - monArrayId++; - } - } -} - -static void sub_8095A58(void) -{ - ChangeBgX(0, 0, 0); - ChangeBgY(0, 0, 0); - SetBgAttribute(0, BG_ATTR_PALETTEMODE, 0); - ClearGpuRegBits(REG_OFFSET_BG0CNT, BGCNT_256COLOR); - FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 32, 32); - CopyBgTilemapBufferToVram(0); -} - -u8 sub_8095AA0(void) -{ - return (IN_BOX_ROWS * sMoveMonsPtr->fromColumn) + sMoveMonsPtr->fromRow; -} - -bool8 sub_8095ABC(void) -{ - s32 i, j; - s32 rowCount = sMoveMonsPtr->minRow + sMoveMonsPtr->rowsTotal; - s32 columnCount = sMoveMonsPtr->minColumn + sMoveMonsPtr->columsTotal; - u8 monArrayId = 0; - - for (i = sMoveMonsPtr->minColumn; i < columnCount; i++) - { - u8 boxPosition = (IN_BOX_ROWS * i) + sMoveMonsPtr->minRow; - for (j = sMoveMonsPtr->minRow; j < rowCount; j++) - { - if (GetBoxMonData(&sMoveMonsPtr->boxMons[monArrayId], MON_DATA_SANITY_HAS_SPECIES) - && GetCurrentBoxMonData(boxPosition, MON_DATA_SANITY_HAS_SPECIES)) - return FALSE; - - monArrayId++; - boxPosition++; - } - } - - return TRUE; -} diff --git a/src/pokemon_storage_system_8.c b/src/pokemon_storage_system_8.c deleted file mode 100644 index cdd7728a2..000000000 --- a/src/pokemon_storage_system_8.c +++ /dev/null @@ -1,877 +0,0 @@ -#include "global.h" -#include "gflib.h" -#include "decompress.h" -#include "item.h" -#include "item_menu_icons.h" -#include "menu.h" -#include "new_menu_helpers.h" -#include "pokemon_storage_system_internal.h" -#include "trig.h" -#include "constants/items.h" - -// IDs for the item icon sprite callbacks -enum { - ITEM_CB_WAIT_ANIM, - ITEM_CB_TO_HAND, - ITEM_CB_TO_MON, - ITEM_CB_SWAP_TO_HAND, - ITEM_CB_SWAP_TO_MON, - ITEM_CB_UNUSED_1, - ITEM_CB_UNUSED_2, - ITEM_CB_HIDE_PARTY, -}; - -static u8 GetNewItemIconIdx(void); -static bool32 IsItemIconAtPosition(u8 cursorArea, u8 cursorPos); -static u8 GetItemIconIdxByPosition(u8 cursorArea, u8 cursorPos); -static void SetItemIconPosition(u8 id, u8 cursorArea, u8 cursorPos); -static void LoadItemIconGfx(u8 id, const u32 * tiles, const u32 * pal); -static void SetItemIconAffineAnim(u8 id, u8 affineAnimNo); -static void SetItemIconCallback(u8 id, u8 command, u8 cursorArea, u8 cursorPos); -static void SetItemIconActive(u8 id, bool8 show); -static const u32 *GetItemIconPic(u16 itemId); -static const u32 *GetItemIconPalette(u16 itemId); -static void DrawItemInfoWindow(u32 x); -static void SpriteCB_ItemIcon_WaitAnim(struct Sprite *sprite); -static void SpriteCB_ItemIcon_ToHand(struct Sprite *sprite); -static void SpriteCB_ItemIcon_SetPosToCursor(struct Sprite *sprite); -static void SpriteCB_ItemIcon_ToMon(struct Sprite *sprite); -static void SpriteCB_ItemIcon_SwapToHand(struct Sprite *sprite); -static void SpriteCB_ItemIcon_SwapToMon(struct Sprite *sprite); -static void SpriteCB_ItemIcon_HideParty(struct Sprite *sprite); - -static const u32 sItemInfoFrame_Gfx[] = INCBIN_U32("graphics/interface/pss_unk_83D35DC.4bpp"); - -static const struct OamData gUnknown_83D365C = { - .y = 0, - .affineMode = ST_OAM_AFFINE_NORMAL, - .objMode = ST_OAM_OBJ_NORMAL, - .mosaic = FALSE, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(32x32), - .x = 0, - .matrixNum = 0, - .size = SPRITE_SIZE(32x32), - .tileNum = 0x000, - .priority = 1, - .paletteNum = 0, - .affineParam = 0 -}; - -static const union AffineAnimCmd gUnknown_83D3664[] = { - AFFINEANIMCMD_FRAME(128, 128, 0, 0), - AFFINEANIMCMD_END -}; - -static const union AffineAnimCmd gUnknown_83D3674[] = { - AFFINEANIMCMD_FRAME(88, 88, 0, 0), - AFFINEANIMCMD_FRAME(5, 5, 0, 8), - AFFINEANIMCMD_END -}; - -static const union AffineAnimCmd gUnknown_83D368C[] = { - AFFINEANIMCMD_FRAME(128, 128, 0, 0), - AFFINEANIMCMD_FRAME(-5, -5, 0, 8), - AFFINEANIMCMD_END -}; - -static const union AffineAnimCmd gUnknown_83D36A4[] = { - AFFINEANIMCMD_FRAME(128, 128, 0, 0), - AFFINEANIMCMD_FRAME(10, 10, 0, 12), - AFFINEANIMCMD_FRAME(256, 256, 0, 0), - AFFINEANIMCMD_END -}; - -static const union AffineAnimCmd gUnknown_83D36C4[] = { - AFFINEANIMCMD_FRAME(256, 256, 0, 0), - AFFINEANIMCMD_FRAME(-10, -10, 0, 12), - AFFINEANIMCMD_FRAME(128, 128, 0, 0), - AFFINEANIMCMD_END -}; - -static const union AffineAnimCmd gUnknown_83D36E4[] = { - AFFINEANIMCMD_FRAME(256, 256, 0, 0), - AFFINEANIMCMD_FRAME(-5, -5, 0, 16), - AFFINEANIMCMD_END -}; - -static const union AffineAnimCmd gUnknown_83D36FC[] = { - AFFINEANIMCMD_FRAME(256, 256, 0, 0), - AFFINEANIMCMD_END -}; - -static const union AffineAnimCmd *const gUnknown_83D370C[] = { - gUnknown_83D3664, - gUnknown_83D3674, - gUnknown_83D368C, - gUnknown_83D36A4, - gUnknown_83D36C4, - gUnknown_83D36E4, - gUnknown_83D36FC -}; - -static const struct SpriteTemplate sSpriteTemplate_ItemIcon = { - .tileTag = TAG_TILE_7, - .paletteTag = TAG_PAL_DACB, - .oam = &gUnknown_83D365C, - .anims = gDummySpriteAnimTable, - .images = NULL, - .affineAnims = gUnknown_83D370C, - .callback = SpriteCallbackDummy, -}; - -void CreateItemIconSprites(void) -{ - s32 i; - u8 spriteId; - struct CompressedSpriteSheet spriteSheet; - struct SpriteTemplate spriteTemplate; - static u32 sItemIconGfxBuffer[0x61]; - - if (gPSSData->boxOption == OPTION_MOVE_ITEMS) - { - spriteSheet.data = sItemIconGfxBuffer; - spriteSheet.size = 0x200; - spriteTemplate = sSpriteTemplate_ItemIcon; - - for (i = 0; i < MAX_ITEM_ICONS; i++) - { - spriteSheet.tag = TAG_TILE_7 + i; - LoadCompressedSpriteSheet(&spriteSheet); - gPSSData->itemIcons[i].tiles = GetSpriteTileStartByTag(spriteSheet.tag) * TILE_SIZE_4BPP + (void *)(OBJ_VRAM0); - gPSSData->itemIcons[i].palIndex = AllocSpritePalette(TAG_PAL_DACB + i); - gPSSData->itemIcons[i].palIndex *= 16; - gPSSData->itemIcons[i].palIndex += 0x100; - spriteTemplate.tileTag = TAG_TILE_7 + i; - spriteTemplate.paletteTag = TAG_PAL_DACB + i; - spriteId = CreateSprite(&spriteTemplate, 0, 0, 11); - gPSSData->itemIcons[i].sprite = &gSprites[spriteId]; - gPSSData->itemIcons[i].sprite->invisible = TRUE; - gPSSData->itemIcons[i].active = FALSE; - } - } - gPSSData->movingItemId = ITEM_NONE; -} - -void sub_8095C84(u8 cursorArea, u8 cursorPos) -{ - u16 heldItem; - - if (gPSSData->boxOption != OPTION_MOVE_ITEMS) - return; - if (IsItemIconAtPosition(cursorArea, cursorPos)) - return; - - switch (cursorArea) - { - case CURSOR_AREA_IN_BOX: - if (!GetCurrentBoxMonData(cursorPos, MON_DATA_SANITY_HAS_SPECIES)) - return; - heldItem = GetCurrentBoxMonData(cursorPos, MON_DATA_HELD_ITEM); - break; - case CURSOR_AREA_IN_PARTY: - if (!GetMonData(&gPlayerParty[cursorPos], MON_DATA_SANITY_HAS_SPECIES)) - return; - heldItem = GetMonData(&gPlayerParty[cursorPos], MON_DATA_HELD_ITEM); - break; - default: - return; - } - - if (heldItem != ITEM_NONE) - { - const u32 *tiles = GetItemIconPic(heldItem); - const u32 *pal = GetItemIconPalette(heldItem); - u8 id = GetNewItemIconIdx(); - - SetItemIconPosition(id, cursorArea, cursorPos); - LoadItemIconGfx(id, tiles, pal); - SetItemIconAffineAnim(id, 1); - SetItemIconActive(id, TRUE); - } -} - -void sub_8095D44(u8 cursorArea, u8 cursorPos) -{ - u8 id; - - if (gPSSData->boxOption != OPTION_MOVE_ITEMS) - return; - - id = GetItemIconIdxByPosition(cursorArea, cursorPos); - SetItemIconAffineAnim(id, 2); - SetItemIconCallback(id, 0, cursorArea, cursorPos); -} - -void Item_FromMonToMoving(u8 cursorArea, u8 cursorPos) -{ - u8 id; - u16 item; - - if (gPSSData->boxOption != OPTION_MOVE_ITEMS) - return; - - id = GetItemIconIdxByPosition(cursorArea, cursorPos); - item = 0; - SetItemIconAffineAnim(id, 3); - SetItemIconCallback(id, 1, cursorArea, cursorPos); - SetItemIconPosition(id, 2, 0); - if (cursorArea == CURSOR_AREA_IN_BOX) - { - SetCurrentBoxMonData(cursorPos, MON_DATA_HELD_ITEM, &item); - SetBoxMonIconObjMode(cursorPos, ST_OAM_OBJ_BLEND); - } - else - { - SetMonData(&gPlayerParty[cursorPos], MON_DATA_HELD_ITEM, &item); - SetPartyMonIconObjMode(cursorPos, ST_OAM_OBJ_BLEND); - } - - gPSSData->movingItemId = gPSSData->displayMonItemId; -} - -void sub_8095E2C(u16 item) -{ - const u32 *tiles = GetItemIconPic(item); - const u32 *pal = GetItemIconPalette(item); - u8 id = GetNewItemIconIdx(); - - LoadItemIconGfx(id, tiles, pal); - SetItemIconAffineAnim(id, 6); - SetItemIconCallback(id, 1, CURSOR_AREA_IN_BOX, 0); - SetItemIconPosition(id, CURSOR_AREA_BOX, 0); - SetItemIconActive(id, TRUE); - gPSSData->movingItemId = item; -} - -void Item_SwitchMonsWithMoving(u8 cursorArea, u8 cursorPos) -{ - u8 id; - u16 item; - - if (gPSSData->boxOption != OPTION_MOVE_ITEMS) - return; - - id = GetItemIconIdxByPosition(cursorArea, cursorPos); - SetItemIconAffineAnim(id, 3); - SetItemIconCallback(id, 3, CURSOR_AREA_BOX, 0); - if (cursorArea == CURSOR_AREA_IN_BOX) - { - item = GetCurrentBoxMonData(cursorPos, MON_DATA_HELD_ITEM); - SetCurrentBoxMonData(cursorPos, MON_DATA_HELD_ITEM, &gPSSData->movingItemId); - gPSSData->movingItemId = item; - } - else - { - item = GetMonData(&gPlayerParty[cursorPos], MON_DATA_HELD_ITEM); - SetMonData(&gPlayerParty[cursorPos], MON_DATA_HELD_ITEM, &gPSSData->movingItemId); - gPSSData->movingItemId = item; - } - - id = GetItemIconIdxByPosition(2, 0); - SetItemIconAffineAnim(id, 4); - SetItemIconCallback(id, 4, cursorArea, cursorPos); -} - -void Item_GiveMovingToMon(u8 cursorArea, u8 cursorPos) -{ - u8 id; - - if (gPSSData->boxOption != OPTION_MOVE_ITEMS) - return; - - id = GetItemIconIdxByPosition(2, 0); - SetItemIconAffineAnim(id, 4); - SetItemIconCallback(id, 2, cursorArea, cursorPos); - if (cursorArea == CURSOR_AREA_IN_BOX) - { - SetCurrentBoxMonData(cursorPos, MON_DATA_HELD_ITEM, &gPSSData->movingItemId); - SetBoxMonIconObjMode(cursorPos, ST_OAM_OBJ_NORMAL); - } - else - { - SetMonData(&gPlayerParty[cursorPos], MON_DATA_HELD_ITEM, &gPSSData->movingItemId); - SetPartyMonIconObjMode(cursorPos, ST_OAM_OBJ_NORMAL); - } -} - -void Item_TakeMons(u8 cursorArea, u8 cursorPos) -{ - u8 id; - u16 item; - - if (gPSSData->boxOption != OPTION_MOVE_ITEMS) - return; - - item = 0; - id = GetItemIconIdxByPosition(cursorArea, cursorPos); - SetItemIconAffineAnim(id, 2); - SetItemIconCallback(id, 0, cursorArea, cursorPos); - if (cursorArea == CURSOR_AREA_IN_BOX) - { - SetCurrentBoxMonData(cursorPos, MON_DATA_HELD_ITEM, &item); - SetBoxMonIconObjMode(cursorPos, ST_OAM_OBJ_BLEND); - } - else - { - SetMonData(&gPlayerParty[cursorPos], MON_DATA_HELD_ITEM, &item); - SetPartyMonIconObjMode(cursorPos, ST_OAM_OBJ_BLEND); - } -} - -void sub_8096088(void) -{ - if (gPSSData->boxOption == OPTION_MOVE_ITEMS) - { - u8 id = GetItemIconIdxByPosition(2, 0); - SetItemIconAffineAnim(id, 5); - SetItemIconCallback(id, 0, CURSOR_AREA_BOX, 0); - } -} - -void sub_80960C0(void) -{ - s32 i; - - if (gPSSData->boxOption != OPTION_MOVE_ITEMS) - return; - - for (i = 0; i < MAX_ITEM_ICONS; i++) - { - if (gPSSData->itemIcons[i].active && gPSSData->itemIcons[i].cursorArea == CURSOR_AREA_IN_PARTY) - SetItemIconCallback(i, 7, CURSOR_AREA_BOX, 0); - } -} - -bool8 sub_809610C(void) -{ - s32 i; - - for (i = 0; i < MAX_ITEM_ICONS; i++) - { - if (gPSSData->itemIcons[i].active) - { - if (!gPSSData->itemIcons[i].sprite->affineAnimEnded && gPSSData->itemIcons[i].sprite->affineAnimBeginning) - return TRUE; - if (gPSSData->itemIcons[i].sprite->callback != SpriteCallbackDummy && gPSSData->itemIcons[i].sprite->callback != SpriteCB_ItemIcon_SetPosToCursor) - return TRUE; - } - } - - return FALSE; -} - -bool8 IsActiveItemMoving(void) -{ - s32 i; - - if (gPSSData->boxOption == OPTION_MOVE_ITEMS) - { - for (i = 0; i < MAX_ITEM_ICONS; i++) - { - if (gPSSData->itemIcons[i].active && gPSSData->itemIcons[i].cursorArea == CURSOR_AREA_BOX) - return TRUE; - } - } - - return FALSE; -} - -const u8 *GetMovingItemName(void) -{ - return ItemId_GetName(gPSSData->movingItemId); -} - -u16 GetMovingItem(void) -{ - return gPSSData->movingItemId; -} - -static u8 GetNewItemIconIdx(void) -{ - u8 i; - - for (i = 0; i < MAX_ITEM_ICONS; i++) - { - if (!gPSSData->itemIcons[i].active) - { - gPSSData->itemIcons[i].active = TRUE; - return i; - } - } - - return MAX_ITEM_ICONS; -} - -static bool32 IsItemIconAtPosition(u8 cursorArea, u8 cursorPos) -{ - s32 i; - - for (i = 0; i < MAX_ITEM_ICONS; i++) - { - if (gPSSData->itemIcons[i].active - && gPSSData->itemIcons[i].cursorArea == cursorArea - && gPSSData->itemIcons[i].cursorPos == cursorPos) - return TRUE; - } - - return FALSE; -} - -static u8 GetItemIconIdxByPosition(u8 cursorArea, u8 cursorPos) -{ - u8 i; - - for (i = 0; i < MAX_ITEM_ICONS; i++) - { - if (gPSSData->itemIcons[i].active - && gPSSData->itemIcons[i].cursorArea == cursorArea - && gPSSData->itemIcons[i].cursorPos == cursorPos) - return i; - } - - return MAX_ITEM_ICONS; -} - -static u8 GetItemIconIdxBySprite(struct Sprite *sprite) -{ - u8 i; - - for (i = 0; i < MAX_ITEM_ICONS; i++) - { - if (gPSSData->itemIcons[i].active - && gPSSData->itemIcons[i].sprite == sprite) - return i; - } - - return MAX_ITEM_ICONS; -} - -static void SetItemIconPosition(u8 id, u8 cursorArea, u8 cursorPos) -{ - u8 row, column; - - if (id >= MAX_ITEM_ICONS) - return; - - switch (cursorArea) - { - case CURSOR_AREA_IN_BOX: - row = cursorPos % IN_BOX_ROWS; - column = cursorPos / IN_BOX_ROWS; - gPSSData->itemIcons[id].sprite->x = (24 * row) + 112; - gPSSData->itemIcons[id].sprite->y = (24 * column) + 56; - gPSSData->itemIcons[id].sprite->oam.priority = 2; - break; - case CURSOR_AREA_IN_PARTY: - if (cursorPos == 0) - { - gPSSData->itemIcons[id].sprite->x = 116; - gPSSData->itemIcons[id].sprite->y = 76; - } - else - { - gPSSData->itemIcons[id].sprite->x = 164; - gPSSData->itemIcons[id].sprite->y = 24 * (cursorPos - 1) + 28; - } - gPSSData->itemIcons[id].sprite->oam.priority = 1; - break; - } - - gPSSData->itemIcons[id].cursorArea = cursorArea; - gPSSData->itemIcons[id].cursorPos = cursorPos; -} - -static void LoadItemIconGfx(u8 id, const u32 *itemTiles, const u32 *itemPal) -{ - s32 i; - - if (id >= MAX_ITEM_ICONS) - return; - - CpuFastFill(0, gPSSData->itemIconBuffer, 0x200); - LZ77UnCompWram(itemTiles, gPSSData->field_22C4); - for (i = 0; i < 3; i++) - CpuFastCopy(gPSSData->field_22C4 + (i * 0x60), gPSSData->itemIconBuffer + (i * 0x80), 0x60); - - CpuFastCopy(gPSSData->itemIconBuffer, gPSSData->itemIcons[id].tiles, 0x200); - LZ77UnCompWram(itemPal, gPSSData->itemIconBuffer); - LoadPalette(gPSSData->itemIconBuffer, gPSSData->itemIcons[id].palIndex, 0x20); -} - -static void SetItemIconAffineAnim(u8 id, u8 animNum) -{ - if (id >= MAX_ITEM_ICONS) - return; - - StartSpriteAffineAnim(gPSSData->itemIcons[id].sprite, animNum); -} - -#define sItemIconId data[0] -#define sState data[0] -#define sCursorArea data[6] -#define sCursorPos data[7] - -static void SetItemIconCallback(u8 id, u8 callbackId, u8 cursorArea, u8 cursorPos) -{ - if (id >= MAX_ITEM_ICONS) - return; - - switch (callbackId) - { - case ITEM_CB_WAIT_ANIM: - gPSSData->itemIcons[id].sprite->sItemIconId = id; - gPSSData->itemIcons[id].sprite->callback = SpriteCB_ItemIcon_WaitAnim; - break; - case ITEM_CB_TO_HAND: - gPSSData->itemIcons[id].sprite->sState = 0; - gPSSData->itemIcons[id].sprite->callback = SpriteCB_ItemIcon_ToHand; - break; - case ITEM_CB_TO_MON: - gPSSData->itemIcons[id].sprite->sState = 0; - gPSSData->itemIcons[id].sprite->sCursorArea = cursorArea; - gPSSData->itemIcons[id].sprite->sCursorPos = cursorPos; - gPSSData->itemIcons[id].sprite->callback = SpriteCB_ItemIcon_ToMon; - break; - case ITEM_CB_SWAP_TO_HAND: - gPSSData->itemIcons[id].sprite->sState = 0; - gPSSData->itemIcons[id].sprite->callback = SpriteCB_ItemIcon_SwapToHand; - gPSSData->itemIcons[id].sprite->sCursorArea = cursorArea; - gPSSData->itemIcons[id].sprite->sCursorPos = cursorPos; - break; - case ITEM_CB_SWAP_TO_MON: - gPSSData->itemIcons[id].sprite->sState = 0; - gPSSData->itemIcons[id].sprite->sCursorArea = cursorArea; - gPSSData->itemIcons[id].sprite->sCursorPos = cursorPos; - gPSSData->itemIcons[id].sprite->callback = SpriteCB_ItemIcon_SwapToMon; - break; - case ITEM_CB_HIDE_PARTY: - // If cursor is on a Pokémon with a held item and - // the player closes the party menu, have the held - // item follow the Pokémon as the menu slides out - gPSSData->itemIcons[id].sprite->callback = SpriteCB_ItemIcon_HideParty; - break; - } -} - -static void SetItemIconActive(u8 id, bool8 show) -{ - if (id >= MAX_ITEM_ICONS) - return; - - gPSSData->itemIcons[id].active = show; - gPSSData->itemIcons[id].sprite->invisible = (show == FALSE); -} - -static const u32 *GetItemIconPic(u16 itemId) -{ - return GetItemIconGfxPtr(itemId, 0); -} - -static const u32 *GetItemIconPalette(u16 itemId) -{ - return GetItemIconGfxPtr(itemId, 1); -} - -void PrintItemDescription(void) -{ - const u8 *description; - - if (IsActiveItemMoving()) - description = ItemId_GetDescription(gPSSData->movingItemId); - else - description = ItemId_GetDescription(gPSSData->displayMonItemId); - - FillWindowPixelBuffer(2, PIXEL_FILL(1)); - AddTextPrinterParameterized5(2, FONT_2, description, 2, 0, 0, NULL, 0, 0); -} - -void InitItemInfoWindow(void) -{ - gPSSData->itemInfoWindowOffset = 25; - LoadBgTiles(0, sItemInfoFrame_Gfx, 0x80, 0x1A4); - DrawItemInfoWindow(0); -} - -bool8 UpdateItemInfoWindowSlideIn(void) -{ - s32 i, pos; - - if (gPSSData->itemInfoWindowOffset == 0) - return FALSE; - - gPSSData->itemInfoWindowOffset--; - pos = 25 - gPSSData->itemInfoWindowOffset; - for (i = 0; i < pos; i++) - { - WriteSequenceToBgTilemapBuffer(0, GetBgAttribute(0, BG_ATTR_BASETILE) + 0x14 + gPSSData->itemInfoWindowOffset + i, i, 12, 1, 8, 15, 25); - } - - DrawItemInfoWindow(pos); - return (gPSSData->itemInfoWindowOffset != 0); -} - -bool8 UpdateItemInfoWindowSlideOut(void) -{ - s32 i, pos; - - if (gPSSData->itemInfoWindowOffset == 25) - return FALSE; - - if (gPSSData->itemInfoWindowOffset == 0) - FillBgTilemapBufferRect(0, 0, 25, 11, 1, 10, 17); - - gPSSData->itemInfoWindowOffset++; - pos = 25 - gPSSData->itemInfoWindowOffset; - for (i = 0; i < pos; i++) - { - WriteSequenceToBgTilemapBuffer(0, GetBgAttribute(0, BG_ATTR_BASETILE) + 0x14 + gPSSData->itemInfoWindowOffset + i, i, 12, 1, 8, 15, 25); - } - - DrawItemInfoWindow(pos); - - FillBgTilemapBufferRect(0, 0, pos, 11, 1, 10, 0x11); - return (gPSSData->itemInfoWindowOffset != 25); -} - -static void DrawItemInfoWindow(u32 x) -{ - if (x != 0) - { - FillBgTilemapBufferRect(0, 0x1A4, 0, 0xB, x, 1, 0xFu); - FillBgTilemapBufferRect(0, 0x9A4, 0, 0x14, x, 1, 0xFu); - } - FillBgTilemapBufferRect(0, 0x1A5, x, 0xC, 1, 8, 0xFu); - FillBgTilemapBufferRect(0, 0x1A6, x, 0xB, 1, 1, 0xFu); - FillBgTilemapBufferRect(0, 0x1A7, x, 0x14, 1, 1, 0xFu); - ScheduleBgCopyTilemapToVram(0); -} - -static void SpriteCB_ItemIcon_WaitAnim(struct Sprite *sprite) -{ - if (sprite->affineAnimEnded) - { - SetItemIconActive(sprite->data[0], FALSE); - sprite->callback = SpriteCallbackDummy; - } -} - -static void SpriteCB_ItemIcon_ToHand(struct Sprite *sprite) -{ - switch (sprite->data[0]) - { - case 0: - sprite->data[1] = sprite->x << 4; - sprite->data[2] = sprite->y << 4; - sprite->data[3] = 10; - sprite->data[4] = 21; - sprite->data[5] = 0; - sprite->data[0]++; - case 1: - sprite->data[1] -= sprite->data[3]; - sprite->data[2] -= sprite->data[4]; - sprite->x = sprite->data[1] >> 4; - sprite->y = sprite->data[2] >> 4; - if (++sprite->data[5] > 11) - sprite->callback = SpriteCB_ItemIcon_SetPosToCursor; - break; - } -} - -static void SpriteCB_ItemIcon_SetPosToCursor(struct Sprite *sprite) -{ - sprite->x = gPSSData->cursorSprite->x + 4; - sprite->y = gPSSData->cursorSprite->y + gPSSData->cursorSprite->y2 + 8; - sprite->oam.priority = gPSSData->cursorSprite->oam.priority; -} - -static void SpriteCB_ItemIcon_ToMon(struct Sprite *sprite) -{ - switch (sprite->data[0]) - { - case 0: - sprite->data[1] = sprite->x << 4; - sprite->data[2] = sprite->y << 4; - sprite->data[3] = 10; - sprite->data[4] = 21; - sprite->data[5] = 0; - sprite->data[0]++; - case 1: - sprite->data[1] += sprite->data[3]; - sprite->data[2] += sprite->data[4]; - sprite->x = sprite->data[1] >> 4; - sprite->y = sprite->data[2] >> 4; - if (++sprite->data[5] > 11) - { - SetItemIconPosition(GetItemIconIdxBySprite(sprite), sprite->data[6], sprite->data[7]); - sprite->callback = SpriteCallbackDummy; - } - break; - } -} - -static void SpriteCB_ItemIcon_SwapToHand(struct Sprite *sprite) -{ - switch (sprite->data[0]) - { - case 0: - sprite->data[1] = sprite->x << 4; - sprite->data[2] = sprite->y << 4; - sprite->data[3] = 10; - sprite->data[4] = 21; - sprite->data[5] = 0; - sprite->data[0]++; - case 1: - sprite->data[1] -= sprite->data[3]; - sprite->data[2] -= sprite->data[4]; - sprite->x = sprite->data[1] >> 4; - sprite->y = sprite->data[2] >> 4; - sprite->x2 = gSineTable[sprite->data[5] * 8] >> 4; - if (++sprite->data[5] > 11) - { - SetItemIconPosition(GetItemIconIdxBySprite(sprite), sprite->data[6], sprite->data[7]); - sprite->x2 = 0; - sprite->callback = SpriteCB_ItemIcon_SetPosToCursor; - } - break; - } -} - -static void SpriteCB_ItemIcon_SwapToMon(struct Sprite *sprite) -{ - switch (sprite->data[0]) - { - case 0: - sprite->data[1] = sprite->x << 4; - sprite->data[2] = sprite->y << 4; - sprite->data[3] = 10; - sprite->data[4] = 21; - sprite->data[5] = 0; - sprite->data[0]++; - case 1: - sprite->data[1] += sprite->data[3]; - sprite->data[2] += sprite->data[4]; - sprite->x = sprite->data[1] >> 4; - sprite->y = sprite->data[2] >> 4; - sprite->x2 = -(gSineTable[sprite->data[5] * 8] >> 4); - if (++sprite->data[5] > 11) - { - SetItemIconPosition(GetItemIconIdxBySprite(sprite), sprite->data[6], sprite->data[7]); - sprite->callback = SpriteCallbackDummy; - sprite->x2 = 0; - } - break; - } -} - -static void SpriteCB_ItemIcon_HideParty(struct Sprite *sprite) -{ - sprite->y -= 8; - if (sprite->y + sprite->y2 < -16) - { - sprite->callback = SpriteCallbackDummy; - SetItemIconActive(GetItemIconIdxBySprite(sprite), FALSE); - } -} - -#undef sState -#undef sItemIconId -#undef sCursorArea -#undef sCursorPos - - -//------------------------------------------------------------------------------ -// SECTION: UnkUtil -// -// Some data transfer utility that goes functionally unused. -// It gets initialized with UnkUtil_Init, and run every vblank in Pokémon -// Storage with UnkUtil_Run, but neither of the Add functions are ever used, -// so UnkUtil_Run performs no actions. -//------------------------------------------------------------------------------ - - -static EWRAM_DATA struct UnkUtil *sUnkUtil = NULL; - -static void UnkUtil_CpuRun(struct UnkUtilData *unkStruct); -static void UnkUtil_DmaRun(struct UnkUtilData *unkStruct); - -void UnkUtil_Init(struct UnkUtil *util, struct UnkUtilData *data, u32 max) -{ - sUnkUtil = util; - util->data = data; - util->max = max; - util->numActive = 0; -} - -void UnkUtil_Run(void) -{ - u16 i; - if (sUnkUtil->numActive) - { - for (i = 0; i < sUnkUtil->numActive; i++) - { - struct UnkUtilData *data = &sUnkUtil->data[i]; - data->func(data); - } - sUnkUtil->numActive = 0; - } -} - -// Unused -static bool8 UnkUtil_CpuAdd(u8 *dest, u16 dLeft, u16 dTop, const u8 *src, u16 sLeft, u16 sTop, u16 width, u16 height, u16 unkArg) -{ - struct UnkUtilData *data; - - if (sUnkUtil->numActive >= sUnkUtil->max) - return FALSE; - - data = &sUnkUtil->data[sUnkUtil->numActive++]; - data->size = width * 2; - data->dest = dest + 2 * (dTop * 32 + dLeft); - data->src = src + 2 * (sTop * unkArg + sLeft); - data->height = height; - data->unk = unkArg; - data->func = UnkUtil_CpuRun; - return TRUE; -} - -// Functionally unused -static void UnkUtil_CpuRun(struct UnkUtilData *data) -{ - u16 i; - - for (i = 0; i < data->height; i++) - { - CpuCopy16(data->src, data->dest, data->size); - data->dest += 64; - data->src += (data->unk * 2); - } -} - -// Unused -static bool8 UnkUtil_DmaAdd(void *dest, u16 dLeft, u16 dTop, u16 width, u16 height) -{ - struct UnkUtilData *data; - - if (sUnkUtil->numActive >= sUnkUtil->max) - return FALSE; - - data = &sUnkUtil->data[sUnkUtil->numActive++]; - data->size = width * 2; - data->dest = dest + ((dTop * 32) + dLeft) * 2; - data->height = height; - data->func = UnkUtil_DmaRun; - return TRUE; -} - -// Functionally unused -static void UnkUtil_DmaRun(struct UnkUtilData *data) -{ - u16 i; - - for (i = 0; i < data->height; i++) - { - Dma3FillLarge_(0, data->dest, data->size, 16); - data->dest += 64; - } -} diff --git a/src/pokemon_storage_system_data.c b/src/pokemon_storage_system_data.c new file mode 100644 index 000000000..dfe34330a --- /dev/null +++ b/src/pokemon_storage_system_data.c @@ -0,0 +1,2165 @@ +#include "global.h" +#include "gflib.h" +#include "data.h" +#include "item.h" +#include "mail_data.h" +#include "menu.h" +#include "new_menu_helpers.h" +#include "pokemon_storage_system_internal.h" +#include "pokemon_summary_screen.h" +#include "strings.h" +#include "constants/items.h" +#include "constants/moves.h" +#include "constants/songs.h" + +static EWRAM_DATA struct Pokemon sMonBeingCarried = {}; +static EWRAM_DATA s8 sCursorArea = 0; +static EWRAM_DATA s8 sCursorPosition = 0; +static EWRAM_DATA bool8 sIsMonBeingMoved = FALSE; +static EWRAM_DATA u8 sMovingMonOrigBoxId = 0; +static EWRAM_DATA u8 sMovingMonOrigBoxPos = 0; +static EWRAM_DATA bool8 sInMultiMoveMode = FALSE; +static EWRAM_DATA u8 sSavedCursorPosition = 0; + +static void DoCursorNewPosUpdate(void); +static bool8 MonPlaceChange_Grab(void); +static bool8 MonPlaceChange_Place(void); +static bool8 MonPlaceChange_Shift(void); +static bool8 MonPlaceChange_DoMoveCursorDown(void); +static bool8 MonPlaceChange_DoMoveCursorUp(void); +static bool8 MonPlaceChange_MoveCursorDown(void); +static bool8 MonPlaceChange_MoveCursorUp(void); +static void MoveMon(void); +static void PlaceMon(void); +static void SetMovedMonData(u8 boxId, u8 cursorPos); +static void SetPlacedMonData(u8 boxId, u8 cursorPos); +static void PurgeMonOrBoxMon(u8 boxId, u8 cursorPos); +static void SetShiftedMonData(u8 boxId, u8 cursorPos); +static void TrySetDisplayMonData(void); +static void SetDisplayMonData(void *pokemon, u8 mode); +static void ReshowDisplayMon(void); +static u8 HandleInput_InBox_Normal(void); +static u8 HandleInput_InBox_GrabbingMultiple(void); +static u8 HandleInput_InBox_MovingMultiple(void); +static void AddBoxMenu(void); +static bool8 SetSelectionMenuTexts(void); +static bool8 SetMenuTextsForMon(void); +static bool8 SetMenuTextsForItem(void); +static void CreateCursorSprites(void); +static void ToggleCursorMultiMoveMode(void); + +static const u16 sPokeStorageMisc1Pal[] = INCBIN_U16("graphics/pokemon_storage/misc1.gbapal"); +static const u16 sHandCursorTiles[] = INCBIN_U16("graphics/pokemon_storage/cursor.4bpp"); +static const u16 sHandCursorShadowTiles[] = INCBIN_U16("graphics/pokemon_storage/cursor_shadow.4bpp"); + +// Modes for selecting and moving Pokémon in the box. Multiple Pokémon can be +// selected by pressing the Select button to change the cursor, then holding +// down the A button while moving the cursor around. This is +// MOVE_MODE_MULTIPLE_SELECTING. After releasing the A button, those Pokémon +// will be picked up and can be moved around as a single unit. This is +// MOVE_MODE_MULTIPLE_MOVING. +enum +{ + MOVE_MODE_NORMAL, + MOVE_MODE_MULTIPLE_SELECTING, + MOVE_MODE_MULTIPLE_MOVING, +}; + +void InitCursor(void) +{ + if (gStorage->boxOption != OPTION_DEPOSIT) + sCursorArea = CURSOR_AREA_IN_BOX; + else + sCursorArea = CURSOR_AREA_IN_PARTY; + + sCursorPosition = 0; + sIsMonBeingMoved = FALSE; + sMovingMonOrigBoxId = 0; + sMovingMonOrigBoxPos = 0; + sInMultiMoveMode = FALSE; + ClearSavedCursorPos(); + CreateCursorSprites(); + gStorage->cursorPrevPartyPos = 1; + gStorage->inBoxMovingMode = MOVE_MODE_NORMAL; + TrySetDisplayMonData(); +} + +void InitCursorOnReopen(void) +{ + CreateCursorSprites(); + ReshowDisplayMon(); + gStorage->cursorPrevPartyPos = 1; + gStorage->inBoxMovingMode = MOVE_MODE_NORMAL; + if (sIsMonBeingMoved) + { + gStorage->movingMon = sMonBeingCarried; + CreateMovingMonIcon(); + } +} + +static void GetCursorCoordsByPos(u8 cursorArea, u8 cursorPosition, u16 *x, u16 *y) +{ + switch (cursorArea) + { + case CURSOR_AREA_IN_BOX: + *x = (cursorPosition % IN_BOX_COLUMNS) * 24 + 100; + *y = (cursorPosition / IN_BOX_COLUMNS) * 24 + 32; + break; + case CURSOR_AREA_IN_PARTY: + if (cursorPosition == 0) + { + *x = 104; + *y = 52; + } + else if (cursorPosition == PARTY_SIZE) + { + *x = 152; + *y = 132; + } + else + { + *x = 152; + *y = (cursorPosition - 1) * 24 + 4; + } + break; + case CURSOR_AREA_BOX_TITLE: + *x = 162; + *y = 12; + break; + case CURSOR_AREA_BUTTONS: + *y = sIsMonBeingMoved ? 8 : 14; + *x = cursorPosition * 88 + 120; + break; + case 4: + *x = 160; + *y = 96; + break; + } +} + +static u16 GetSpeciesAtCursorPosition(void) +{ + switch (sCursorArea) + { + case CURSOR_AREA_IN_PARTY: + return GetMonData(&gPlayerParty[sCursorPosition], MON_DATA_SPECIES); + case CURSOR_AREA_IN_BOX: + return GetCurrentBoxMonData(sCursorPosition, MON_DATA_SPECIES); + default: + return SPECIES_NONE; + } +} + +bool8 UpdateCursorPos(void) +{ + s16 tmp; + + if (gStorage->cursorMoveSteps == 0) + { + if (gStorage->boxOption != OPTION_MOVE_ITEMS) + return FALSE; + else + return IsItemIconAnimActive(); + } + else if (--gStorage->cursorMoveSteps != 0) + { + // Update position toward target + gStorage->cursorNewX += gStorage->cursorSpeedX; + gStorage->cursorNewY += gStorage->cursorSpeedY; + gStorage->cursorSprite->x = gStorage->cursorNewX >> 8; + gStorage->cursorSprite->y = gStorage->cursorNewY >> 8; + + // Limit cursor on right + if (gStorage->cursorSprite->x > DISPLAY_WIDTH + 16) + { + tmp = gStorage->cursorSprite->x - (DISPLAY_WIDTH + 16); + gStorage->cursorSprite->x = tmp + 64; + } + + // Limit cursor on left + if (gStorage->cursorSprite->x < 64) + { + tmp = 64 - gStorage->cursorSprite->x; + gStorage->cursorSprite->x = DISPLAY_WIDTH + 16 - tmp; + } + + // Limit cursor on bottom + if (gStorage->cursorSprite->y > DISPLAY_HEIGHT + 16) + { + tmp = gStorage->cursorSprite->y - (DISPLAY_HEIGHT + 16); + gStorage->cursorSprite->y = tmp - 16; + } + + // Limit cursor on top + if (gStorage->cursorSprite->y < -16) + { + tmp = -16 - gStorage->cursorSprite->y; + gStorage->cursorSprite->y = DISPLAY_HEIGHT + 16 - tmp; + } + + // Cursor flips vertically when moving on/off the top buttons + if (gStorage->cursorFlipTimer && --gStorage->cursorFlipTimer == 0) + gStorage->cursorSprite->vFlip = (gStorage->cursorSprite->vFlip == FALSE); + } + else + { + // Time is up for cursor movement, make sure it's exactly at target + gStorage->cursorSprite->x = gStorage->cursorTargetX; + gStorage->cursorSprite->y = gStorage->cursorTargetY; + DoCursorNewPosUpdate(); + } + + return TRUE; +} + +static void InitNewCursorPos(u8 newCursorArea, u8 newCursorPosition) +{ + u16 x, y; + + GetCursorCoordsByPos(newCursorArea, newCursorPosition, &x, &y); + gStorage->newCursorArea = newCursorArea; + gStorage->newCursorPosition = newCursorPosition; + gStorage->cursorTargetX = x; + gStorage->cursorTargetY = y; +} + +static void InitCursorMove(void) +{ + int yDistance, xDistance; + + if (gStorage->cursorVerticalWrap != 0 || gStorage->cursorHorizontalWrap != 0) + gStorage->cursorMoveSteps = 12; + else + gStorage->cursorMoveSteps = 6; + + if (gStorage->cursorFlipTimer) + gStorage->cursorFlipTimer = gStorage->cursorMoveSteps / 2; + + switch (gStorage->cursorVerticalWrap) + { + default: + yDistance = gStorage->cursorTargetY - gStorage->cursorSprite->y; + break; + case -1: + yDistance = gStorage->cursorTargetY - 192 - gStorage->cursorSprite->y; + break; + case 1: + yDistance = gStorage->cursorTargetY + 192 - gStorage->cursorSprite->y; + break; + } + + switch (gStorage->cursorHorizontalWrap) + { + default: + xDistance = gStorage->cursorTargetX - gStorage->cursorSprite->x; + break; + case -1: + xDistance = gStorage->cursorTargetX - 192 - gStorage->cursorSprite->x; + break; + case 1: + xDistance = gStorage->cursorTargetX + 192 - gStorage->cursorSprite->x; + break; + } + + yDistance <<= 8; + xDistance <<= 8; + gStorage->cursorSpeedX = xDistance / gStorage->cursorMoveSteps; + gStorage->cursorSpeedY = yDistance / gStorage->cursorMoveSteps; + gStorage->cursorNewX = gStorage->cursorSprite->x << 8; + gStorage->cursorNewY = gStorage->cursorSprite->y << 8; +} + +static void SetCursorPosition(u8 newCursorArea, u8 newCursorPosition) +{ + InitNewCursorPos(newCursorArea, newCursorPosition); + InitCursorMove(); + if (gStorage->boxOption != OPTION_MOVE_ITEMS) + { + if (gStorage->inBoxMovingMode == MOVE_MODE_NORMAL && !sIsMonBeingMoved) + StartSpriteAnim(gStorage->cursorSprite, 1); + } + else + { + if (!IsActiveItemMoving()) + StartSpriteAnim(gStorage->cursorSprite, 1); + } + + if (gStorage->boxOption == OPTION_MOVE_ITEMS) + { + if (sCursorArea == CURSOR_AREA_IN_BOX) + TryHideItemIconAtPos(CURSOR_AREA_IN_BOX, sCursorPosition); + else if (sCursorArea == CURSOR_AREA_IN_PARTY) + TryHideItemIconAtPos(CURSOR_AREA_IN_PARTY, sCursorPosition); + + if (newCursorArea == CURSOR_AREA_IN_BOX) + TryLoadItemIconAtPos(newCursorArea, newCursorPosition); + else if (newCursorArea == CURSOR_AREA_IN_PARTY) + TryLoadItemIconAtPos(newCursorArea, newCursorPosition); + } + + if (newCursorArea == CURSOR_AREA_IN_PARTY && sCursorArea != CURSOR_AREA_IN_PARTY) + { + gStorage->cursorPrevPartyPos = 1; + gStorage->cursorShadowSprite->invisible = TRUE; + } + + switch (newCursorArea) + { + case CURSOR_AREA_IN_PARTY: + case CURSOR_AREA_BOX_TITLE: + case CURSOR_AREA_BUTTONS: + gStorage->cursorSprite->oam.priority = 1; + gStorage->cursorShadowSprite->invisible = TRUE; + gStorage->cursorShadowSprite->oam.priority = 1; + break; + case CURSOR_AREA_IN_BOX: + if (gStorage->inBoxMovingMode != MOVE_MODE_NORMAL) + { + gStorage->cursorSprite->oam.priority = 0; + gStorage->cursorShadowSprite->invisible = TRUE; + } + else + { + gStorage->cursorSprite->oam.priority = 2; + if (sCursorArea == CURSOR_AREA_IN_BOX && sIsMonBeingMoved) + SetMovingMonPriority(2); + } + break; + } +} + +static void DoCursorNewPosUpdate(void) +{ + sCursorArea = gStorage->newCursorArea; + sCursorPosition = gStorage->newCursorPosition; + if (gStorage->boxOption != OPTION_MOVE_ITEMS) + { + if (gStorage->inBoxMovingMode == MOVE_MODE_NORMAL && !sIsMonBeingMoved) + StartSpriteAnim(gStorage->cursorSprite, 1); + } + else if (!IsActiveItemMoving()) + StartSpriteAnim(gStorage->cursorSprite, 1); + + TrySetDisplayMonData(); + switch (sCursorArea) + { + case CURSOR_AREA_BUTTONS: + SetMovingMonPriority(1); + break; + case CURSOR_AREA_BOX_TITLE: + AnimateBoxScrollArrows(TRUE); + break; + case CURSOR_AREA_IN_PARTY: + gStorage->cursorShadowSprite->subpriority = 13; + SetMovingMonPriority(1); + break; + case CURSOR_AREA_IN_BOX: + if (gStorage->inBoxMovingMode == MOVE_MODE_NORMAL) + { + gStorage->cursorSprite->oam.priority = 1; + gStorage->cursorShadowSprite->oam.priority = 2; + gStorage->cursorShadowSprite->subpriority = 21; + gStorage->cursorShadowSprite->invisible = FALSE; + SetMovingMonPriority(2); + } + break; + } +} + +void SetCursorInParty(void) +{ + u8 partyCount; + + if (!sIsMonBeingMoved) + partyCount = 0; + else + { + partyCount = CalculatePlayerPartyCount(); + if (partyCount >= PARTY_SIZE) + partyCount = PARTY_SIZE - 1; + } + if (gStorage->cursorSprite->vFlip) + gStorage->cursorFlipTimer = 1; + SetCursorPosition(CURSOR_AREA_IN_PARTY, partyCount); +} + +void SetCursorBoxPosition(u8 cursorBoxPosition) +{ + SetCursorPosition(CURSOR_AREA_IN_BOX, cursorBoxPosition); +} + +void ClearSavedCursorPos(void) +{ + sSavedCursorPosition = 0; +} + +void SaveCursorPos(void) +{ + sSavedCursorPosition = sCursorPosition; +} + +u8 GetSavedCursorPos(void) +{ + return sSavedCursorPosition; +} + +void InitMonPlaceChange(u8 type) +{ + static bool8 (*const placeChangeFuncs[])(void) = { + [CHANGE_GRAB] = MonPlaceChange_Grab, + [CHANGE_PLACE] = MonPlaceChange_Place, + [CHANGE_SHIFT] = MonPlaceChange_Shift, + }; + + gStorage->monPlaceChangeFunc = placeChangeFuncs[type]; + gStorage->monPlaceChangeState = 0; +} + +void InitMultiMonPlaceChange(bool8 moveCursorUp) +{ + if (!moveCursorUp) + gStorage->monPlaceChangeFunc = MonPlaceChange_DoMoveCursorDown; + else + gStorage->monPlaceChangeFunc = MonPlaceChange_DoMoveCursorUp; + + gStorage->monPlaceChangeState = 0; +} + +bool8 DoMonPlaceChange(void) +{ + return gStorage->monPlaceChangeFunc(); +} + +static bool8 MonPlaceChange_Grab(void) +{ + switch (gStorage->monPlaceChangeState) + { + case 0: + if (sIsMonBeingMoved) + return FALSE; + StartSpriteAnim(gStorage->cursorSprite, 2); + gStorage->monPlaceChangeState++; + break; + case 1: + if (!MonPlaceChange_MoveCursorDown()) + { + StartSpriteAnim(gStorage->cursorSprite, 3); + MoveMon(); + gStorage->monPlaceChangeState++; + } + break; + case 2: + if (!MonPlaceChange_MoveCursorUp()) + gStorage->monPlaceChangeState++; + break; + case 3: + return FALSE; + } + + return TRUE; +} + +static bool8 MonPlaceChange_Place(void) +{ + switch (gStorage->monPlaceChangeState) + { + case 0: + if (!MonPlaceChange_MoveCursorDown()) + { + StartSpriteAnim(gStorage->cursorSprite, 2); + PlaceMon(); + gStorage->monPlaceChangeState++; + } + break; + case 1: + if (!MonPlaceChange_MoveCursorUp()) + { + StartSpriteAnim(gStorage->cursorSprite, 0); + gStorage->monPlaceChangeState++; + } + break; + case 2: + return FALSE; + } + + return TRUE; +} + +static bool8 MonPlaceChange_Shift(void) +{ + switch (gStorage->monPlaceChangeState) + { + case 0: + switch (sCursorArea) + { + case CURSOR_AREA_IN_PARTY: + gStorage->shiftBoxId = TOTAL_BOXES_COUNT; + break; + case CURSOR_AREA_IN_BOX: + gStorage->shiftBoxId = StorageGetCurrentBox(); + break; + default: + return FALSE; + } + StartSpriteAnim(gStorage->cursorSprite, 2); + SetShiftMonSpritePtr(gStorage->shiftBoxId, sCursorPosition); + gStorage->monPlaceChangeState++; + break; + case 1: + if (!ShiftMons()) + { + StartSpriteAnim(gStorage->cursorSprite, 3); + SetShiftedMonData(gStorage->shiftBoxId, sCursorPosition); + gStorage->monPlaceChangeState++; + } + break; + case 2: + return FALSE; + } + + return TRUE; +} + +static bool8 MonPlaceChange_DoMoveCursorDown(void) +{ + return MonPlaceChange_MoveCursorDown(); +} + +static bool8 MonPlaceChange_DoMoveCursorUp(void) +{ + return MonPlaceChange_MoveCursorUp(); +} + +static bool8 MonPlaceChange_MoveCursorDown(void) +{ + switch (gStorage->cursorSprite->y2) + { + default: + gStorage->cursorSprite->y2++; + break; + case 0: + gStorage->cursorSprite->y2++; + break; + case 8: // Cursor has reached bottom + return FALSE; + } + + return TRUE; +} + +static bool8 MonPlaceChange_MoveCursorUp(void) +{ + switch (gStorage->cursorSprite->y2) + { + case 0: // Cursor has reached top + return FALSE; + default: + gStorage->cursorSprite->y2--; + break; + } + + return TRUE; +} + +static void MoveMon(void) +{ + switch (sCursorArea) + { + case CURSOR_AREA_IN_PARTY: + SetMovedMonData(TOTAL_BOXES_COUNT, sCursorPosition); + SetMovingMonSprite(MODE_PARTY, sCursorPosition); + break; + case CURSOR_AREA_IN_BOX: + if (gStorage->inBoxMovingMode == MOVE_MODE_NORMAL) + { + SetMovedMonData(StorageGetCurrentBox(), sCursorPosition); + SetMovingMonSprite(MODE_BOX, sCursorPosition); + } + break; + default: + return; + } + + sIsMonBeingMoved = TRUE; +} + +static void PlaceMon(void) +{ + u8 boxId; + + switch (sCursorArea) + { + case CURSOR_AREA_IN_PARTY: + SetPlacedMonData(TOTAL_BOXES_COUNT, sCursorPosition); + SetPlacedMonSprite(TOTAL_BOXES_COUNT, sCursorPosition); + break; + case CURSOR_AREA_IN_BOX: + boxId = StorageGetCurrentBox(); + SetPlacedMonData(boxId, sCursorPosition); + SetPlacedMonSprite(boxId, sCursorPosition); + break; + default: + return; + } + + sIsMonBeingMoved = FALSE; +} + +void DoTrySetDisplayMonData(void) +{ + TrySetDisplayMonData(); +} + +static void SetMovedMonData(u8 boxId, u8 position) +{ + if (boxId == TOTAL_BOXES_COUNT) + gStorage->movingMon = gPlayerParty[sCursorPosition]; + else + BoxMonAtToMon(boxId, position, &gStorage->movingMon); + + PurgeMonOrBoxMon(boxId, position); + sMovingMonOrigBoxId = boxId; + sMovingMonOrigBoxPos = position; +} + +static void SetPlacedMonData(u8 boxId, u8 position) +{ + if (boxId == TOTAL_BOXES_COUNT) + gPlayerParty[position] = gStorage->movingMon; + else + { + BoxMonRestorePP(&gStorage->movingMon.box); + SetBoxMonAt(boxId, position, &gStorage->movingMon.box); + } +} + +static void PurgeMonOrBoxMon(u8 boxId, u8 position) +{ + if (boxId == TOTAL_BOXES_COUNT) + ZeroMonData(&gPlayerParty[position]); + else + ZeroBoxMonAt(boxId, position); +} + +static void SetShiftedMonData(u8 boxId, u8 position) +{ + if (boxId == TOTAL_BOXES_COUNT) + gStorage->tempMon = gPlayerParty[position]; + else + BoxMonAtToMon(boxId, position, &gStorage->tempMon); + + SetPlacedMonData(boxId, position); + gStorage->movingMon = gStorage->tempMon; + SetDisplayMonData(&gStorage->movingMon, MODE_PARTY); + sMovingMonOrigBoxId = boxId; + sMovingMonOrigBoxPos = position; +} + +bool8 TryStorePartyMonInBox(u8 boxId) +{ + s16 boxPosition = GetFirstFreeBoxSpot(boxId); + if (boxPosition == -1) + return FALSE; + + if (sIsMonBeingMoved) + { + SetPlacedMonData(boxId, boxPosition); + DestroyMovingMonIcon(); + sIsMonBeingMoved = FALSE; + } + else + { + SetMovedMonData(TOTAL_BOXES_COUNT, sCursorPosition); + SetPlacedMonData(boxId, boxPosition); + DestroyPartyMonIcon(sCursorPosition); + } + + if (boxId == StorageGetCurrentBox()) + CreateBoxMonIconAtPos(boxPosition); + + StartSpriteAnim(gStorage->cursorSprite, 1); + return TRUE; +} + +void ResetSelectionAfterDeposit(void) +{ + StartSpriteAnim(gStorage->cursorSprite, 0); + TrySetDisplayMonData(); +} + +void InitReleaseMon(void) +{ + u8 mode; + + if (sIsMonBeingMoved) + mode = MODE_MOVE; + else if (sCursorArea == CURSOR_AREA_IN_PARTY) + mode = MODE_PARTY; + else + mode = MODE_BOX; + + DoReleaseMonAnim(mode, sCursorPosition); + StringCopy(gStorage->releaseMonName, gStorage->displayMonNickname); +} + +bool8 TryHideReleaseMon(void) +{ + if (!TryHideReleaseMonSprite()) + { + StartSpriteAnim(gStorage->cursorSprite, 0); + return FALSE; + } + else + return TRUE; +} + +void ReleaseMon(void) +{ + u8 boxId; + + DestroyReleaseMonIcon(); + if (sIsMonBeingMoved) + sIsMonBeingMoved = FALSE; + else + { + if (sCursorArea == CURSOR_AREA_IN_PARTY) + boxId = TOTAL_BOXES_COUNT; + else + boxId = StorageGetCurrentBox(); + + PurgeMonOrBoxMon(boxId, sCursorPosition); + } + TrySetDisplayMonData(); +} + +void TrySetCursorFistAnim(void) +{ + if (sIsMonBeingMoved) + StartSpriteAnim(gStorage->cursorSprite, 3); +} + +void InitCanReleaseMonVars(void) +{ + u16 knownMoveFlags; + if (sIsMonBeingMoved) + { + gStorage->tempMon = gStorage->movingMon; + gStorage->releaseBoxId = -1; + gStorage->releaseBoxPos = -1; + } + else + { + if (sCursorArea == CURSOR_AREA_IN_PARTY) + { + gStorage->tempMon = gPlayerParty[sCursorPosition]; + gStorage->releaseBoxId = TOTAL_BOXES_COUNT; + } + else + { + BoxMonAtToMon(StorageGetCurrentBox(), sCursorPosition, &gStorage->tempMon); + gStorage->releaseBoxId = StorageGetCurrentBox(); + } + gStorage->releaseBoxPos = sCursorPosition; + } + + gStorage->isSurfMon = FALSE; + gStorage->isDiveMon = FALSE; + gStorage->restrictedMoveList[0] = MOVE_SURF; + gStorage->restrictedMoveList[1] = MOVE_DIVE; + gStorage->restrictedMoveList[2] = MOVES_COUNT; + knownMoveFlags = GetMonData(&gStorage->tempMon, MON_DATA_KNOWN_MOVES, (u8 *)gStorage->restrictedMoveList); + gStorage->isSurfMon = knownMoveFlags & 1; + gStorage->isDiveMon = (knownMoveFlags >> 1) & 1; + if (gStorage->isSurfMon || gStorage->isDiveMon) + gStorage->releaseMonStatusResolved = FALSE; + else + { + gStorage->releaseMonStatusResolved = TRUE; + gStorage->releaseMonStatus = RELEASE_MON_ALLOWED; + } + + gStorage->releaseCheckState = 0; +} + +s8 RunCanReleaseMon(void) +{ + u16 i; + u16 knownMoveFlags; + + if (gStorage->releaseMonStatusResolved) + return gStorage->releaseMonStatus; + + switch (gStorage->releaseCheckState) + { + case 0: + for (i = 0; i < PARTY_SIZE; i++) + { + if (gStorage->releaseBoxId != TOTAL_BOXES_COUNT || gStorage->releaseBoxPos != i) + { + knownMoveFlags = GetMonData(&gPlayerParty[i], MON_DATA_KNOWN_MOVES, (u8 *)gStorage->restrictedMoveList); + if (knownMoveFlags & 1) + gStorage->isSurfMon = FALSE; + if (knownMoveFlags & 2) + gStorage->isDiveMon = FALSE; + } + } + if (!(gStorage->isSurfMon || gStorage->isDiveMon)) + { + gStorage->releaseMonStatusResolved = TRUE; + gStorage->releaseMonStatus = RELEASE_MON_ALLOWED; + } + else + { + gStorage->releaseCheckBoxId = 0; + gStorage->releaseCheckBoxPos = 0; + gStorage->releaseCheckState++; + } + break; + case 1: + // for some reason, check only 5 mons in box each time this function is called + for (i = 0; i < 5; i++) + { + knownMoveFlags = GetAndCopyBoxMonDataAt(gStorage->releaseCheckBoxId, gStorage->releaseCheckBoxPos, MON_DATA_KNOWN_MOVES, (u8 *)gStorage->restrictedMoveList); + if (knownMoveFlags != 0 + && !(gStorage->releaseBoxId == gStorage->releaseCheckBoxId && gStorage->releaseBoxPos == gStorage->releaseCheckBoxPos)) + { + if (knownMoveFlags & 1) + gStorage->isSurfMon = FALSE; + if (knownMoveFlags & 2) + gStorage->isDiveMon = FALSE; + } + if (++gStorage->releaseCheckBoxPos >= IN_BOX_COUNT) + { + gStorage->releaseCheckBoxPos = 0; + if (++gStorage->releaseCheckBoxId >= TOTAL_BOXES_COUNT) + { + gStorage->releaseMonStatusResolved = TRUE; + gStorage->releaseMonStatus = RELEASE_MON_NOT_ALLOWED; + break; + } + } + } + if (!(gStorage->isSurfMon || gStorage->isDiveMon)) + { + gStorage->releaseMonStatusResolved = TRUE; + gStorage->releaseMonStatus = RELEASE_MON_ALLOWED; + } + break; + } + + return RELEASE_MON_UNDETERMINED; +} + +void SaveMovingMon(void) +{ + if (sIsMonBeingMoved) + sMonBeingCarried = gStorage->movingMon; +} + +void LoadSavedMovingMon(void) +{ + if (sIsMonBeingMoved) + { + if (sMovingMonOrigBoxId == TOTAL_BOXES_COUNT) + gStorage->movingMon = sMonBeingCarried; + else + gStorage->movingMon.box = sMonBeingCarried.box; + } +} + +void InitSummaryScreenData(void) +{ + if (sIsMonBeingMoved) + { + SaveMovingMon(); + gStorage->summaryMonPtr.mon = &sMonBeingCarried; + gStorage->summaryCursorPos = 0; + gStorage->summaryLastIndex = 0; + gStorage->summaryScreenMode = PSS_MODE_NORMAL; + } + else if (sCursorArea == CURSOR_AREA_IN_PARTY) + { + gStorage->summaryMonPtr.mon = gPlayerParty; + gStorage->summaryCursorPos = sCursorPosition; + gStorage->summaryLastIndex = CountPartyMons() - 1; + gStorage->summaryScreenMode = PSS_MODE_NORMAL; + } + else + { + gStorage->summaryMonPtr.box = GetBoxedMonPtr(StorageGetCurrentBox(), 0); + gStorage->summaryCursorPos = sCursorPosition; + gStorage->summaryLastIndex = IN_BOX_COUNT - 1; + gStorage->summaryScreenMode = PSS_MODE_BOX; + } +} + +void SetSelectionAfterSummaryScreen(void) +{ + if (sIsMonBeingMoved) + LoadSavedMovingMon(); + else + sCursorPosition = GetLastViewedMonIndex(); +} + +s16 CompactPartySlots(void) +{ + s16 retVal = -1; + u16 i, last; + + for (i = 0, last = 0; i < PARTY_SIZE; i++) + { + u16 species = GetMonData(gPlayerParty + i, MON_DATA_SPECIES); + if (species != SPECIES_NONE) + { + if (i != last) + gPlayerParty[last] = gPlayerParty[i]; + last++; + } + else if (retVal == -1) + retVal = i; + } + for (; last < PARTY_SIZE; last++) + ZeroMonData(gPlayerParty + last); + + return retVal; +} + +void SetMonMarkings(u8 markings) +{ + gStorage->displayMonMarkings = markings; + if (sIsMonBeingMoved) + SetMonData(&gStorage->movingMon, MON_DATA_MARKINGS, &markings); + else + { + if (sCursorArea == CURSOR_AREA_IN_PARTY) + SetMonData(gPlayerParty + sCursorPosition, MON_DATA_MARKINGS, &markings); + if (sCursorArea == CURSOR_AREA_IN_BOX) + SetCurrentBoxMonData(sCursorPosition, MON_DATA_MARKINGS, &markings); + } +} + +bool8 CanMovePartyMon(void) +{ + if (sCursorArea == CURSOR_AREA_IN_PARTY && !sIsMonBeingMoved && CountPartyAliveNonEggMonsExcept(sCursorPosition) == 0) + return TRUE; + else + return FALSE; +} + +bool8 CanShiftMon(void) +{ + if (sIsMonBeingMoved) + { + if (sCursorArea == CURSOR_AREA_IN_PARTY && CountPartyAliveNonEggMonsExcept(sCursorPosition) == 0) + { + if (gStorage->displayMonIsEgg || GetMonData(&gStorage->movingMon, MON_DATA_HP) == 0) + return FALSE; + } + return TRUE; + } + return FALSE; +} + +bool8 IsMonBeingMoved(void) +{ + return sIsMonBeingMoved; +} + +bool8 IsCursorOnBoxTitle(void) +{ + return (sCursorArea == CURSOR_AREA_BOX_TITLE); +} + +bool8 IsCursorOnCloseBox(void) +{ + return (sCursorArea == CURSOR_AREA_BUTTONS && sCursorPosition == 1); +} + +bool8 IsCursorInBox(void) +{ + return (sCursorArea == CURSOR_AREA_IN_BOX); +} + +static void TrySetDisplayMonData(void) +{ + gStorage->setMosaic = (sIsMonBeingMoved == FALSE); + if (!sIsMonBeingMoved) + { + switch (sCursorArea) + { + case CURSOR_AREA_IN_PARTY: + if (sCursorPosition < PARTY_SIZE) + { + SetDisplayMonData(&gPlayerParty[sCursorPosition], MODE_PARTY); + break; + } + // fallthrough + case CURSOR_AREA_BUTTONS: + case CURSOR_AREA_BOX_TITLE: + SetDisplayMonData(NULL, MODE_MOVE); + break; + case CURSOR_AREA_IN_BOX: + SetDisplayMonData(GetBoxedMonPtr(StorageGetCurrentBox(), sCursorPosition), MODE_BOX); + break; + } + } +} + +static void ReshowDisplayMon(void) +{ + if (sIsMonBeingMoved) + SetDisplayMonData(&sMonBeingCarried, MODE_PARTY); + else + TrySetDisplayMonData(); +} + +#define displayMonNicknameText displayMonTexts[0] +#define displayMonSpeciesNameText displayMonTexts[1] +#define displayMonGenderAndLevelText displayMonTexts[2] +#define displayMonItemNameText displayMonTexts[3] + +static void SetDisplayMonData(void *pokemon, u8 mode) +{ + u8 *txtPtr; + u16 gender; + bool8 sanityIsBagEgg; + + gStorage->displayMonItemId = ITEM_NONE; + gender = MON_MALE; + sanityIsBagEgg = FALSE; + if (mode == MODE_PARTY) + { + struct Pokemon *mon = (struct Pokemon *)pokemon; + + gStorage->displayMonSpecies = GetMonData(mon, MON_DATA_SPECIES2); + if (gStorage->displayMonSpecies != SPECIES_NONE) + { + sanityIsBagEgg = GetMonData(mon, MON_DATA_SANITY_IS_BAD_EGG); + if (sanityIsBagEgg) + gStorage->displayMonIsEgg = TRUE; + else + gStorage->displayMonIsEgg = GetMonData(mon, MON_DATA_IS_EGG); + + GetMonData(mon, MON_DATA_NICKNAME, gStorage->displayMonNickname); + StringGet_Nickname(gStorage->displayMonNickname); + gStorage->displayMonLevel = GetMonData(mon, MON_DATA_LEVEL); + gStorage->displayMonMarkings = GetMonData(mon, MON_DATA_MARKINGS); + gStorage->displayMonPersonality = GetMonData(mon, MON_DATA_PERSONALITY); + gStorage->displayMonPalette = GetMonFrontSpritePal(mon); + gender = GetMonGender(mon); + gStorage->displayMonItemId = GetMonData(mon, MON_DATA_HELD_ITEM); + } + } + else if (mode == MODE_BOX) + { + struct BoxPokemon *boxMon = (struct BoxPokemon *)pokemon; + + gStorage->displayMonSpecies = GetBoxMonData(pokemon, MON_DATA_SPECIES2); + if (gStorage->displayMonSpecies != SPECIES_NONE) + { + u32 otId = GetBoxMonData(boxMon, MON_DATA_OT_ID); + sanityIsBagEgg = GetBoxMonData(boxMon, MON_DATA_SANITY_IS_BAD_EGG); + if (sanityIsBagEgg) + gStorage->displayMonIsEgg = TRUE; + else + gStorage->displayMonIsEgg = GetBoxMonData(boxMon, MON_DATA_IS_EGG); + + GetBoxMonData(boxMon, MON_DATA_NICKNAME, gStorage->displayMonNickname); + StringGet_Nickname(gStorage->displayMonNickname); + gStorage->displayMonLevel = GetLevelFromBoxMonExp(boxMon); + gStorage->displayMonMarkings = GetBoxMonData(boxMon, MON_DATA_MARKINGS); + gStorage->displayMonPersonality = GetBoxMonData(boxMon, MON_DATA_PERSONALITY); + gStorage->displayMonPalette = GetMonSpritePalFromSpeciesAndPersonality(gStorage->displayMonSpecies, otId, gStorage->displayMonPersonality); + gender = GetGenderFromSpeciesAndPersonality(gStorage->displayMonSpecies, gStorage->displayMonPersonality); + gStorage->displayMonItemId = GetBoxMonData(boxMon, MON_DATA_HELD_ITEM); + } + } + else + { + gStorage->displayMonSpecies = SPECIES_NONE; + gStorage->displayMonItemId = ITEM_NONE; + } + + if (gStorage->displayMonSpecies == SPECIES_NONE) + { + StringFill(gStorage->displayMonNickname, CHAR_SPACE, 5); + StringFill(gStorage->displayMonNicknameText, CHAR_SPACE, 8); + StringFill(gStorage->displayMonSpeciesNameText, CHAR_SPACE, 8); + StringFill(gStorage->displayMonGenderAndLevelText, CHAR_SPACE, 8); + StringFill(gStorage->displayMonItemNameText, CHAR_SPACE, 8); + } + else if (gStorage->displayMonIsEgg) + { + if (sanityIsBagEgg) + StringCopyPadded(gStorage->displayMonNicknameText, gStorage->displayMonNickname, CHAR_SPACE, 5); + else + StringCopyPadded(gStorage->displayMonNicknameText, gText_EggNickname, CHAR_SPACE, 8); + + StringFill(gStorage->displayMonSpeciesNameText, CHAR_SPACE, 8); + StringFill(gStorage->displayMonGenderAndLevelText, CHAR_SPACE, 8); + StringFill(gStorage->displayMonItemNameText, CHAR_SPACE, 8); + } + else + { + if (gStorage->displayMonSpecies == SPECIES_NIDORAN_F || gStorage->displayMonSpecies == SPECIES_NIDORAN_M) + gender = MON_GENDERLESS; + + // Buffer nickname + StringCopyPadded(gStorage->displayMonNicknameText, gStorage->displayMonNickname, CHAR_SPACE, 5); + + // Buffer species name + txtPtr = gStorage->displayMonSpeciesNameText; + *(txtPtr)++ = CHAR_SLASH; + StringCopyPadded(txtPtr, gSpeciesNames[gStorage->displayMonSpecies], CHAR_SPACE, 5); + + // Buffer gender and level + txtPtr = gStorage->displayMonGenderAndLevelText; + *(txtPtr)++ = EXT_CTRL_CODE_BEGIN; + *(txtPtr)++ = EXT_CTRL_CODE_COLOR_HIGHLIGHT_SHADOW; + switch (gender) + { + case MON_MALE: + *(txtPtr)++ = TEXT_COLOR_RED; + *(txtPtr)++ = TEXT_COLOR_WHITE; + *(txtPtr)++ = TEXT_COLOR_LIGHT_RED; + *(txtPtr)++ = CHAR_MALE; + break; + case MON_FEMALE: + *(txtPtr)++ = TEXT_COLOR_GREEN; + *(txtPtr)++ = TEXT_COLOR_WHITE; + *(txtPtr)++ = TEXT_COLOR_LIGHT_GREEN; + *(txtPtr)++ = CHAR_FEMALE; + break; + default: + *(txtPtr)++ = TEXT_COLOR_DARK_GRAY; + *(txtPtr)++ = TEXT_COLOR_WHITE; + *(txtPtr)++ = TEXT_COLOR_LIGHT_GRAY; + *(txtPtr)++ = CHAR_SPACE; + break; + } + + *(txtPtr++) = EXT_CTRL_CODE_BEGIN; + *(txtPtr++) = EXT_CTRL_CODE_COLOR_HIGHLIGHT_SHADOW; + *(txtPtr++) = TEXT_COLOR_DARK_GRAY; + *(txtPtr++) = TEXT_COLOR_WHITE; + *(txtPtr++) = TEXT_COLOR_LIGHT_GRAY; + *(txtPtr++) = CHAR_SPACE; + *(txtPtr++) = CHAR_EXTRA_SYMBOL; + *(txtPtr++) = CHAR_LV_2; + + txtPtr = ConvertIntToDecimalStringN(txtPtr, gStorage->displayMonLevel, STR_CONV_MODE_LEFT_ALIGN, 3); + txtPtr[0] = CHAR_SPACE; + txtPtr[1] = EOS; + + // Buffer item name + if (gStorage->displayMonItemId != ITEM_NONE) + StringCopyPadded(gStorage->displayMonItemNameText, ItemId_GetName(gStorage->displayMonItemId), CHAR_SPACE, 8); + else + StringFill(gStorage->displayMonItemNameText, CHAR_SPACE, 8); + } +} + +#undef displayMonNicknameText +#undef displayMonSpeciesNameText +#undef displayMonGenderAndLevelText +#undef displayMonItemNameText + +static u8 HandleInput_InBox(void) +{ + switch (gStorage->inBoxMovingMode) + { + case MOVE_MODE_NORMAL: + default: + return HandleInput_InBox_Normal(); + case MOVE_MODE_MULTIPLE_SELECTING: + return HandleInput_InBox_GrabbingMultiple(); + case MOVE_MODE_MULTIPLE_MOVING: + return HandleInput_InBox_MovingMultiple(); + } +} + +static u8 HandleInput_InBox_Normal(void) +{ + u8 input; + s8 cursorArea; + s8 cursorPosition; + + do + { + cursorArea = sCursorArea; + cursorPosition = sCursorPosition; + gStorage->cursorVerticalWrap = 0; + gStorage->cursorHorizontalWrap = 0; + gStorage->cursorFlipTimer = 0; + if (JOY_REPT(DPAD_UP)) + { + input = INPUT_MOVE_CURSOR; + if (sCursorPosition >= IN_BOX_COLUMNS) + cursorPosition -= IN_BOX_COLUMNS; + else + { + cursorArea = CURSOR_AREA_BOX_TITLE; + cursorPosition = 0; + } + break; + } + else if (JOY_REPT(DPAD_DOWN)) + { + input = INPUT_MOVE_CURSOR; + cursorPosition += IN_BOX_COLUMNS; + if (cursorPosition >= IN_BOX_COUNT) + { + cursorArea = CURSOR_AREA_BUTTONS; + cursorPosition -= IN_BOX_COUNT; + cursorPosition /= 3; + gStorage->cursorVerticalWrap = 1; + gStorage->cursorFlipTimer = 1; + } + break; + } + else if (JOY_REPT(DPAD_LEFT)) + { + input = INPUT_MOVE_CURSOR; + if (sCursorPosition % IN_BOX_COLUMNS != 0) + cursorPosition--; + else + { + gStorage->cursorHorizontalWrap = -1; + cursorPosition += (IN_BOX_COLUMNS - 1); + } + break; + } + else if (JOY_REPT(DPAD_RIGHT)) + { + input = INPUT_MOVE_CURSOR; + if ((sCursorPosition + 1) % IN_BOX_COLUMNS != 0) + cursorPosition++; + else + { + gStorage->cursorHorizontalWrap = 1; + cursorPosition -= (IN_BOX_COLUMNS - 1); + } + break; + } + else if (JOY_NEW(START_BUTTON)) + { + input = INPUT_MOVE_CURSOR; + cursorArea = CURSOR_AREA_BOX_TITLE; + cursorPosition = 0; + break; + } + + if ((JOY_NEW(A_BUTTON)) && SetSelectionMenuTexts()) + { + if (!sInMultiMoveMode) + return INPUT_IN_MENU; + + if (gStorage->boxOption != OPTION_MOVE_MONS || sIsMonBeingMoved == TRUE) + { + switch (GetMenuItemTextId(0)) + { + case MENU_TEXT_STORE: + return INPUT_DEPOSIT; + case MENU_TEXT_WITHDRAW: + return INPUT_WITHDRAW; + case MENU_TEXT_MOVE: + return INPUT_MOVE_MON; + case MENU_TEXT_SHIFT: + return INPUT_SHIFT_MON; + case MENU_TEXT_PLACE: + return INPUT_PLACE_MON; + case MENU_TEXT_TAKE: + return INPUT_TAKE_ITEM; + case MENU_TEXT_GIVE: + return INPUT_GIVE_ITEM; + case MENU_TEXT_SWITCH: + return INPUT_SWITCH_ITEMS; + } + } + else + { + gStorage->inBoxMovingMode = MOVE_MODE_MULTIPLE_SELECTING; + return INPUT_MULTIMOVE_START; + } + } + + if (JOY_NEW(B_BUTTON)) + return INPUT_PRESSED_B; + + if (gSaveBlock2Ptr->optionsButtonMode == OPTIONS_BUTTON_MODE_LR) + { + if (JOY_HELD(L_BUTTON)) + return INPUT_SCROLL_LEFT; + if (JOY_HELD(R_BUTTON)) + return INPUT_SCROLL_RIGHT; + } + + if (JOY_NEW(SELECT_BUTTON)) + { + ToggleCursorMultiMoveMode(); + return INPUT_NONE; + } + + input = INPUT_NONE; + + } while (FALSE); + + if (input != INPUT_NONE) + SetCursorPosition(cursorArea, cursorPosition); + + return input; +} + +static u8 HandleInput_InBox_GrabbingMultiple(void) +{ + if (JOY_HELD(A_BUTTON)) + { + if (JOY_REPT(DPAD_UP)) + { + if (sCursorPosition / IN_BOX_COLUMNS != 0) + { + SetCursorPosition(CURSOR_AREA_IN_BOX, sCursorPosition - IN_BOX_COLUMNS); + return INPUT_MULTIMOVE_CHANGE_SELECTION; + } + else + return INPUT_MULTIMOVE_UNABLE; + } + else if (JOY_REPT(DPAD_DOWN)) + { + if (sCursorPosition + IN_BOX_COLUMNS < IN_BOX_COUNT) + { + SetCursorPosition(CURSOR_AREA_IN_BOX, sCursorPosition + IN_BOX_COLUMNS); + return INPUT_MULTIMOVE_CHANGE_SELECTION; + } + else + return INPUT_MULTIMOVE_UNABLE; + } + else if (JOY_REPT(DPAD_LEFT)) + { + if (sCursorPosition % IN_BOX_COLUMNS != 0) + { + SetCursorPosition(CURSOR_AREA_IN_BOX, sCursorPosition - 1); + return INPUT_MULTIMOVE_CHANGE_SELECTION; + } + else + return INPUT_MULTIMOVE_UNABLE; + } + else if (JOY_REPT(DPAD_RIGHT)) + { + if ((sCursorPosition + 1) % IN_BOX_COLUMNS != 0) + { + SetCursorPosition(CURSOR_AREA_IN_BOX, sCursorPosition + 1); + return INPUT_MULTIMOVE_CHANGE_SELECTION; + } + else + return INPUT_MULTIMOVE_UNABLE; + } + else + return INPUT_NONE; + } + else + { + if (MultiMove_GetOriginPosition() == sCursorPosition) + { + gStorage->inBoxMovingMode = MOVE_MODE_NORMAL; + gStorage->cursorShadowSprite->invisible = FALSE; + return INPUT_MULTIMOVE_SINGLE; + } + else + { + sIsMonBeingMoved = (gStorage->displayMonSpecies != SPECIES_NONE); + gStorage->inBoxMovingMode = MOVE_MODE_MULTIPLE_MOVING; + sMovingMonOrigBoxId = StorageGetCurrentBox(); + return INPUT_MULTIMOVE_GRAB_SELECTION; + } + } +} + +static u8 HandleInput_InBox_MovingMultiple(void) +{ + if (JOY_REPT(DPAD_UP)) + { + if (MultiMove_TryMoveGroup(0)) + { + SetCursorPosition(CURSOR_AREA_IN_BOX, sCursorPosition - IN_BOX_COLUMNS); + return INPUT_MULTIMOVE_MOVE_MONS; + } + else + return INPUT_MULTIMOVE_UNABLE; + } + else if (JOY_REPT(DPAD_DOWN)) + { + if (MultiMove_TryMoveGroup(1)) + { + SetCursorPosition(CURSOR_AREA_IN_BOX, sCursorPosition + IN_BOX_COLUMNS); + return INPUT_MULTIMOVE_MOVE_MONS; + } + else + return INPUT_MULTIMOVE_UNABLE; + } + else if (JOY_REPT(DPAD_LEFT)) + { + if (MultiMove_TryMoveGroup(2)) + { + SetCursorPosition(CURSOR_AREA_IN_BOX, sCursorPosition - 1); + return INPUT_MULTIMOVE_MOVE_MONS; + } + else + return INPUT_SCROLL_LEFT; + } + else if (JOY_REPT(DPAD_RIGHT)) + { + if (MultiMove_TryMoveGroup(3)) + { + SetCursorPosition(CURSOR_AREA_IN_BOX, sCursorPosition + 1); + return INPUT_MULTIMOVE_MOVE_MONS; + } + else + return INPUT_SCROLL_RIGHT; + } + else if (JOY_NEW(A_BUTTON)) + { + if (MultiMove_CanPlaceSelection()) + { + sIsMonBeingMoved = FALSE; + gStorage->inBoxMovingMode = MOVE_MODE_NORMAL; + return INPUT_MULTIMOVE_PLACE_MONS; + } + else + return INPUT_MULTIMOVE_UNABLE; + } + else if (JOY_NEW(B_BUTTON)) + return INPUT_MULTIMOVE_UNABLE; + + else + { + if (gSaveBlock2Ptr->optionsButtonMode == OPTIONS_BUTTON_MODE_LR) + { + if (JOY_HELD(L_BUTTON)) + return INPUT_SCROLL_LEFT; + if (JOY_HELD(R_BUTTON)) + return INPUT_SCROLL_RIGHT; + } + + return INPUT_NONE; + } +} + +static u8 HandleInput_InParty(void) +{ + u8 input; + bool8 gotoBox; + s8 cursorArea; + s8 cursorPosition; + + do + { + cursorArea = sCursorArea; + cursorPosition = sCursorPosition; + gStorage->cursorHorizontalWrap = 0; + gStorage->cursorVerticalWrap = 0; + gStorage->cursorFlipTimer = 0; + gotoBox = FALSE; + input = INPUT_NONE; + + if (JOY_REPT(DPAD_UP)) + { + if (--cursorPosition < 0) + cursorPosition = PARTY_SIZE; + if (cursorPosition != sCursorPosition) + input = INPUT_MOVE_CURSOR; + break; + } + else if (JOY_REPT(DPAD_DOWN)) + { + if (++cursorPosition > PARTY_SIZE) + cursorPosition = 0; + if (cursorPosition != sCursorPosition) + input = INPUT_MOVE_CURSOR; + break; + } + else if (JOY_REPT(DPAD_LEFT) && sCursorPosition != 0) + { + input = INPUT_MOVE_CURSOR; + gStorage->cursorPrevPartyPos = sCursorPosition; + cursorPosition = 0; + break; + } + else if (JOY_REPT(DPAD_RIGHT)) + { + if (sCursorPosition == 0) + { + input = INPUT_MOVE_CURSOR; + cursorPosition = gStorage->cursorPrevPartyPos; + } + else + { + input = INPUT_HIDE_PARTY; + cursorArea = CURSOR_AREA_IN_BOX; + cursorPosition = 0; + } + break; + } + + if (JOY_NEW(A_BUTTON)) + { + if (sCursorPosition == PARTY_SIZE) + { + if (gStorage->boxOption == OPTION_DEPOSIT) + return INPUT_CLOSE_BOX; + + gotoBox = TRUE; + } + else if (SetSelectionMenuTexts()) + { + if (!sInMultiMoveMode) + return INPUT_IN_MENU; + + switch (GetMenuItemTextId(0)) + { + case MENU_TEXT_STORE: + return INPUT_DEPOSIT; + case MENU_TEXT_WITHDRAW: + return INPUT_WITHDRAW; + case MENU_TEXT_MOVE: + return INPUT_MOVE_MON; + case MENU_TEXT_SHIFT: + return INPUT_SHIFT_MON; + case MENU_TEXT_PLACE: + return INPUT_PLACE_MON; + case MENU_TEXT_TAKE: + return INPUT_TAKE_ITEM; + case MENU_TEXT_GIVE: + return INPUT_GIVE_ITEM; + case MENU_TEXT_SWITCH: + return INPUT_SWITCH_ITEMS; + } + } + } + + if (JOY_NEW(B_BUTTON)) + { + if (gStorage->boxOption == OPTION_DEPOSIT) + return INPUT_PRESSED_B; + + gotoBox = TRUE; + } + + if (gotoBox) + { + input = INPUT_HIDE_PARTY; + cursorArea = CURSOR_AREA_IN_BOX; + cursorPosition = 0; + } + else if (JOY_NEW(SELECT_BUTTON)) + { + ToggleCursorMultiMoveMode(); + return INPUT_NONE; + } + + } while (FALSE); + + if (input != INPUT_NONE && input != INPUT_HIDE_PARTY) + SetCursorPosition(cursorArea, cursorPosition); + + return input; +} + +static u8 HandleInput_BoxTitle(void) +{ + u8 input; + s8 cursorArea; + s8 cursorPosition; + + do + { + gStorage->cursorHorizontalWrap = 0; + gStorage->cursorVerticalWrap = 0; + gStorage->cursorFlipTimer = 0; + + if (JOY_REPT(DPAD_UP)) + { + input = INPUT_MOVE_CURSOR; + cursorArea = CURSOR_AREA_BUTTONS; + cursorPosition = 0; + gStorage->cursorFlipTimer = 1; + break; + } + else if (JOY_REPT(DPAD_DOWN)) + { + input = INPUT_MOVE_CURSOR; + cursorArea = CURSOR_AREA_IN_BOX; + cursorPosition = 2; + break; + } + + if (JOY_HELD(DPAD_LEFT)) + return INPUT_SCROLL_LEFT; + if (JOY_HELD(DPAD_RIGHT)) + return INPUT_SCROLL_RIGHT; + + if (gSaveBlock2Ptr->optionsButtonMode == OPTIONS_BUTTON_MODE_LR) + { + if (JOY_HELD(L_BUTTON)) + return INPUT_SCROLL_LEFT; + if (JOY_HELD(R_BUTTON)) + return INPUT_SCROLL_RIGHT; + } + + if (JOY_NEW(A_BUTTON)) + { + AnimateBoxScrollArrows(FALSE); + AddBoxMenu(); + return INPUT_BOX_OPTIONS; + } + + if (JOY_NEW(B_BUTTON)) + return INPUT_PRESSED_B; + + if (JOY_NEW(SELECT_BUTTON)) + { + ToggleCursorMultiMoveMode(); + return INPUT_NONE; + } + + input = INPUT_NONE; + + } while (FALSE); + + if (input != INPUT_NONE) + { + if (cursorArea != CURSOR_AREA_BOX_TITLE) + AnimateBoxScrollArrows(FALSE); + SetCursorPosition(cursorArea, cursorPosition); + } + + return input; +} + +static u8 HandleInput_OnButtons(void) +{ + u8 input; + s8 cursorArea; + s8 cursorPosition; + s8 prevPos; + + do + { + cursorArea = sCursorArea; + cursorPosition = sCursorPosition; + gStorage->cursorHorizontalWrap = 0; + gStorage->cursorVerticalWrap = 0; + gStorage->cursorFlipTimer = 0; + + if (JOY_REPT(DPAD_UP)) + { + input = INPUT_MOVE_CURSOR; + cursorArea = CURSOR_AREA_IN_BOX; + gStorage->cursorVerticalWrap = -1; + if (sCursorPosition == 0) + cursorPosition = IN_BOX_COUNT - 1 - 5; + else + cursorPosition = IN_BOX_COUNT - 1; + gStorage->cursorFlipTimer = 1; + break; + } + else if (JOY_REPT(DPAD_DOWN | START_BUTTON)) + { + input = INPUT_MOVE_CURSOR; + cursorArea = CURSOR_AREA_BOX_TITLE; + cursorPosition = 0; + gStorage->cursorFlipTimer = 1; + break; + } + + if (JOY_REPT(DPAD_LEFT)) + { + input = INPUT_MOVE_CURSOR; + if (--cursorPosition < 0) + cursorPosition = 1; + break; + } + else if (JOY_REPT(DPAD_RIGHT)) + { + input = INPUT_MOVE_CURSOR; + if (++cursorPosition > 1) + cursorPosition = 0; + break; + } + + if (JOY_NEW(A_BUTTON)) + return cursorPosition == 0 ? INPUT_SHOW_PARTY : INPUT_CLOSE_BOX; + + if (JOY_NEW(B_BUTTON)) + return INPUT_PRESSED_B; + + if (JOY_NEW(SELECT_BUTTON)) + { + ToggleCursorMultiMoveMode(); + return INPUT_NONE; + } + + input = INPUT_NONE; + } while (FALSE); + + if (input != INPUT_NONE) + SetCursorPosition(cursorArea, cursorPosition); + + return input; +} + +u8 HandleInput(void) +{ + struct + { + u8 (*func)(void); + s8 area; + } + static const inputFuncs[] = { + {HandleInput_InBox, CURSOR_AREA_IN_BOX}, + {HandleInput_InParty, CURSOR_AREA_IN_PARTY}, + {HandleInput_BoxTitle, CURSOR_AREA_BOX_TITLE}, + {HandleInput_OnButtons, CURSOR_AREA_BUTTONS}, + {NULL, 0}, + }; + + u16 i = 0; + while (inputFuncs[i].func != NULL) + { + if (inputFuncs[i].area == sCursorArea) + return inputFuncs[i].func(); + i++; + } + + return INPUT_NONE; +} + +static void AddBoxMenu(void) +{ + InitMenu(); + SetMenuText(MENU_TEXT_JUMP); + SetMenuText(MENU_TEXT_WALLPAPER); + SetMenuText(MENU_TEXT_NAME); + SetMenuText(MENU_TEXT_CANCEL); +} + +static bool8 SetSelectionMenuTexts(void) +{ + InitMenu(); + if (gStorage->boxOption != OPTION_MOVE_ITEMS) + return SetMenuTextsForMon(); + else + return SetMenuTextsForItem(); +} + +static bool8 SetMenuTextsForMon(void) +{ + u16 species = GetSpeciesAtCursorPosition(); + + switch (gStorage->boxOption) + { + case OPTION_DEPOSIT: + if (species != SPECIES_NONE) + SetMenuText(MENU_TEXT_STORE); + else + return FALSE; + break; + case OPTION_WITHDRAW: + if (species != SPECIES_NONE) + SetMenuText(MENU_TEXT_WITHDRAW); + else + return FALSE; + break; + case OPTION_MOVE_MONS: + if (sIsMonBeingMoved) + { + if (species != SPECIES_NONE) + SetMenuText(MENU_TEXT_SHIFT); + else + SetMenuText(MENU_TEXT_PLACE); + } + else + { + if (species != SPECIES_NONE) + SetMenuText(MENU_TEXT_MOVE); + else + return FALSE; + } + break; + case OPTION_MOVE_ITEMS: + default: + return FALSE; + } + + SetMenuText(MENU_TEXT_SUMMARY); + if (gStorage->boxOption == OPTION_MOVE_MONS) + { + if (!sCursorArea) + SetMenuText(MENU_TEXT_WITHDRAW); + else + SetMenuText(MENU_TEXT_STORE); + } + + SetMenuText(MENU_TEXT_MARK); + SetMenuText(MENU_TEXT_RELEASE); + SetMenuText(MENU_TEXT_CANCEL); + return TRUE; +} + +static bool8 SetMenuTextsForItem(void) +{ + if (gStorage->displayMonSpecies == SPECIES_EGG) + return FALSE; + + if (!IsActiveItemMoving()) + { + if (gStorage->displayMonItemId == ITEM_NONE) + { + if (gStorage->displayMonSpecies == SPECIES_NONE) + return FALSE; + + SetMenuText(MENU_TEXT_GIVE2); + } + else + { + if (!ItemIsMail(gStorage->displayMonItemId)) + { + SetMenuText(MENU_TEXT_TAKE); + SetMenuText(MENU_TEXT_BAG); + } + SetMenuText(MENU_TEXT_INFO); + } + } + else + { + if (gStorage->displayMonItemId == ITEM_NONE) + { + if (gStorage->displayMonSpecies == SPECIES_NONE) + return FALSE; + + SetMenuText(MENU_TEXT_GIVE); + } + else + { + if (ItemIsMail(gStorage->displayMonItemId) == TRUE) + return FALSE; + + SetMenuText(MENU_TEXT_SWITCH); + } + } + + SetMenuText(MENU_TEXT_CANCEL); + return TRUE; +} + +static void SpriteCB_CursorShadow(struct Sprite *sprite) +{ + sprite->x = gStorage->cursorSprite->x; + sprite->y = gStorage->cursorSprite->y + 20; +} + +static void CreateCursorSprites(void) +{ + u16 x, y; + u8 spriteId; + u8 priority, subpriority; + struct SpriteSheet spriteSheets[] = { + {sHandCursorTiles, 0x800, GFXTAG_CURSOR}, + {sHandCursorShadowTiles, 0x80, GFXTAG_CURSOR_SHADOW}, + {} + }; + + struct SpritePalette spritePalettes[] = { + {sPokeStorageMisc1Pal, PALTAG_MISC_1}, + {} + }; + + static const struct OamData sOamData_Cursor = { + .shape = SPRITE_SHAPE(32x32), + .size = SPRITE_SIZE(32x32), + .priority = 1, + }; + static const struct OamData sOamData_CursorShadow = { + .shape = SPRITE_SHAPE(16x16), + .size = SPRITE_SIZE(16x16), + .priority = 1, + }; + + static const union AnimCmd sAnim_Cursor_Bouncing[] = { + ANIMCMD_FRAME(0, 30), + ANIMCMD_FRAME(16, 30), + ANIMCMD_JUMP(0) + }; + static const union AnimCmd sAnim_Cursor_Still[] = { + ANIMCMD_FRAME(0, 5), + ANIMCMD_END + }; + static const union AnimCmd sAnim_Cursor_Open[] = { + ANIMCMD_FRAME(32, 5), + ANIMCMD_END + }; + static const union AnimCmd sAnim_Cursor_Fist[] = { + ANIMCMD_FRAME(48, 5), + ANIMCMD_END + }; + + static const union AnimCmd *const sAnims_Cursor[] = { + [CURSOR_ANIM_BOUNCE] = sAnim_Cursor_Bouncing, + [CURSOR_ANIM_STILL] = sAnim_Cursor_Still, + [CURSOR_ANIM_OPEN] = sAnim_Cursor_Open, + [CURSOR_ANIM_FIST] = sAnim_Cursor_Fist, + }; + + static const struct SpriteTemplate sSpriteTemplate_Cursor = { + .tileTag = GFXTAG_CURSOR, + .paletteTag = PALTAG_MISC_2, + .oam = &sOamData_Cursor, + .anims = sAnims_Cursor, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, + }; + + static const struct SpriteTemplate sSpriteTemplate_CursorShadow = { + .tileTag = GFXTAG_CURSOR_SHADOW, + .paletteTag = PALTAG_MISC_2, + .oam = &sOamData_CursorShadow, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCB_CursorShadow, + }; + + LoadSpriteSheets(spriteSheets); + LoadSpritePalettes(spritePalettes); + gStorage->cursorPalNums[0] = IndexOfSpritePaletteTag(PALTAG_MISC_2); + gStorage->cursorPalNums[1] = IndexOfSpritePaletteTag(PALTAG_MISC_1); + + GetCursorCoordsByPos(sCursorArea, sCursorPosition, &x, &y); + spriteId = CreateSprite(&sSpriteTemplate_Cursor, x, y, 6); + if (spriteId != MAX_SPRITES) + { + gStorage->cursorSprite = &gSprites[spriteId]; + gStorage->cursorSprite->oam.paletteNum = gStorage->cursorPalNums[sInMultiMoveMode]; + gStorage->cursorSprite->oam.priority = 1; + if (sIsMonBeingMoved) + StartSpriteAnim(gStorage->cursorSprite, 3); + } + else + gStorage->cursorSprite = NULL; + + + if (sCursorArea == CURSOR_AREA_IN_PARTY) + { + subpriority = 13; + priority = 1; + } + else + { + subpriority = 21; + priority = 2; + } + + spriteId = CreateSprite(&sSpriteTemplate_CursorShadow, 0, 0, subpriority); + if (spriteId != MAX_SPRITES) + { + gStorage->cursorShadowSprite = &gSprites[spriteId]; + gStorage->cursorShadowSprite->oam.priority = priority; + if (sCursorArea) + gStorage->cursorShadowSprite->invisible = 1; + } + else + gStorage->cursorShadowSprite = NULL; +} + +static void ToggleCursorMultiMoveMode(void) +{ + sInMultiMoveMode = !sInMultiMoveMode; + gStorage->cursorSprite->oam.paletteNum = gStorage->cursorPalNums[sInMultiMoveMode]; +} + +u8 GetBoxCursorPosition(void) +{ + return sCursorPosition; +} + +void GetCursorBoxColumnAndRow(u8 *column, u8 *row) +{ + if (sCursorArea == CURSOR_AREA_IN_BOX) + { + *column = sCursorPosition % IN_BOX_COLUMNS; + *row = sCursorPosition / IN_BOX_COLUMNS; + } + else + { + *column = 0; + *row = 0; + } +} + +void StartCursorAnim(u8 animNum) +{ + StartSpriteAnim(gStorage->cursorSprite, animNum); +} + +u8 GetMovingMonOriginalBoxId(void) +{ + return sMovingMonOrigBoxId; +} + +void SetCursorPriorityTo1(void) +{ + gStorage->cursorSprite->oam.priority = 1; +} + +void TryHideItemAtCursor(void) +{ + if (sCursorArea == CURSOR_AREA_IN_BOX) + TryHideItemIconAtPos(CURSOR_AREA_IN_BOX, sCursorPosition); +} + +void TryShowItemAtCursor(void) +{ + if (sCursorArea == CURSOR_AREA_IN_BOX) + TryLoadItemIconAtPos(CURSOR_AREA_IN_BOX, sCursorPosition); +} + +static const u8 *const sMenuTexts[] = { + [MENU_TEXT_CANCEL] = gPCText_Cancel, + [MENU_TEXT_STORE] = gPCText_Store, + [MENU_TEXT_WITHDRAW] = gPCText_Withdraw, + [MENU_TEXT_MOVE] = gPCText_Move, + [MENU_TEXT_SHIFT] = gPCText_Shift, + [MENU_TEXT_PLACE] = gPCText_Place, + [MENU_TEXT_SUMMARY] = gPCText_Summary, + [MENU_TEXT_RELEASE] = gPCText_Release, + [MENU_TEXT_MARK] = gPCText_Mark, + [MENU_TEXT_JUMP] = gPCText_Jump, + [MENU_TEXT_WALLPAPER] = gPCText_Wallpaper, + [MENU_TEXT_NAME] = gPCText_Name, + [MENU_TEXT_TAKE] = gPCText_Take, + [MENU_TEXT_GIVE] = gPCText_Give, + [MENU_TEXT_GIVE2] = gPCText_Give, + [MENU_TEXT_SWITCH] = gPCText_Switch, + [MENU_TEXT_BAG] = gPCText_Bag, + [MENU_TEXT_INFO] = gPCText_Info, + [MENU_TEXT_SCENERY_1] = gPCText_Scenery1, + [MENU_TEXT_SCENERY_2] = gPCText_Scenery2, + [MENU_TEXT_SCENERY_3] = gPCText_Scenery3, + [MENU_TEXT_ETCETERA] = gPCText_Etcetera, + [MENU_TEXT_FOREST] = gPCText_Forest, + [MENU_TEXT_CITY] = gPCText_City, + [MENU_TEXT_DESERT] = gPCText_Desert, + [MENU_TEXT_SAVANNA] = gPCText_Savanna, + [MENU_TEXT_CRAG] = gPCText_Crag, + [MENU_TEXT_VOLCANO] = gPCText_Volcano, + [MENU_TEXT_SNOW] = gPCText_Snow, + [MENU_TEXT_CAVE] = gPCText_Cave, + [MENU_TEXT_BEACH] = gPCText_Beach, + [MENU_TEXT_SEAFLOOR] = gPCText_Seafloor, + [MENU_TEXT_RIVER] = gPCText_River, + [MENU_TEXT_SKY] = gPCText_Sky, + [MENU_TEXT_POLKADOT] = gPCText_PolkaDot, + [MENU_TEXT_POKECENTER] = gPCText_Pokecenter, + [MENU_TEXT_MACHINE] = gPCText_Machine, + [MENU_TEXT_SIMPLE] = gPCText_Simple, +}; + +void InitMenu(void) +{ + gStorage->menuItemsCount = 0; + gStorage->menuWidth = 0; + gStorage->menuWindow.bg = 0; + gStorage->menuWindow.paletteNum = 15; + gStorage->menuWindow.baseBlock = 92; +} + +void SetMenuText(u8 textId) +{ + if (gStorage->menuItemsCount < ARRAY_COUNT(gStorage->menuItems)) + { + u8 len; + struct StorageMenu *menu = &gStorage->menuItems[gStorage->menuItemsCount]; + + menu->text = sMenuTexts[textId]; + menu->textId = textId; + len = StringLength(menu->text); + if (len > gStorage->menuWidth) + gStorage->menuWidth = len; + + gStorage->menuItemsCount++; + } +} + +s8 GetMenuItemTextId(u8 menuIndex) +{ + if (menuIndex >= gStorage->menuItemsCount) + return MENU_B_PRESSED; + else + return gStorage->menuItems[menuIndex].textId; +} + +void AddMenu(void) +{ + gStorage->menuWindow.width = gStorage->menuWidth + 2; + gStorage->menuWindow.height = 2 * gStorage->menuItemsCount; + gStorage->menuWindow.tilemapLeft = 29 - gStorage->menuWindow.width; + gStorage->menuWindow.tilemapTop = 15 - gStorage->menuWindow.height; + gStorage->menuWindowId = AddWindow(&gStorage->menuWindow); + ClearWindowTilemap(gStorage->menuWindowId); + DrawStdFrameWithCustomTileAndPalette(gStorage->menuWindowId, FALSE, 11, 14); + PrintTextArray(gStorage->menuWindowId, FONT_1, 8, 2, 16, gStorage->menuItemsCount, (void *)gStorage->menuItems); + Menu_InitCursor(gStorage->menuWindowId, FONT_1, 0, 2, 16, gStorage->menuItemsCount, 0); + ScheduleBgCopyTilemapToVram(0); + gStorage->menuUnusedField = 0; +} + +bool8 IsMenuLoading(void) +{ + // Possibly stubbed out debug code? + return FALSE; +} + +s16 HandleMenuInput(void) +{ + s32 input = MENU_NOTHING_CHOSEN; + + do + { + if (JOY_NEW(A_BUTTON)) + { + input = Menu_GetCursorPos(); + break; + } + else if (JOY_NEW(B_BUTTON)) + { + PlaySE(SE_SELECT); + input = MENU_B_PRESSED; + } + + if (JOY_NEW(DPAD_UP)) + { + PlaySE(SE_SELECT); + Menu_MoveCursor(-1); + } + else if (JOY_NEW(DPAD_DOWN)) + { + PlaySE(SE_SELECT); + Menu_MoveCursor(1); + } + } while (FALSE); + + if (input != MENU_NOTHING_CHOSEN) + RemoveMenu(); + + if (input >= 0) + input = gStorage->menuItems[input].textId; + + return input; +} + +void RemoveMenu(void) +{ + ClearStdWindowAndFrameToTransparent(gStorage->menuWindowId, TRUE); + RemoveWindow(gStorage->menuWindowId); +} diff --git a/src/pokemon_storage_system_graphics.c b/src/pokemon_storage_system_graphics.c new file mode 100644 index 000000000..c6b45194a --- /dev/null +++ b/src/pokemon_storage_system_graphics.c @@ -0,0 +1,1594 @@ +#include "global.h" +#include "gflib.h" +#include "event_data.h" +#include "graphics.h" +#include "new_menu_helpers.h" +#include "pokemon_icon.h" +#include "pokemon_storage_system_internal.h" +#include "strings.h" +#include "task.h" +#include "trig.h" + +static void SpriteCB_BoxMonIconScrollOut(struct Sprite *sprite); +static void SetBoxSpeciesAndPersonalities(u8 boxId); +static void MovePartySpriteToNextSlot(struct Sprite *sprite, u16 idx); +static void SpriteCB_MovePartySpriteToNextSlot(struct Sprite *sprite); +static void DestroyBoxMonIcon(struct Sprite *sprite); +static void SpriteCB_HeldMon(struct Sprite *sprite); +static void Task_InitBox(u8 taskId); +static s8 DetermineBoxScrollDirection(u8 boxId); +static void LoadWallpaperGfx(u8 wallpaperId, s8 direction); +static bool32 WaitForWallpaperGfxLoad(void); +static void DrawWallpaper(void *unused, const void *tilemap, s8 direction, u8 offset); +static void TrimOldWallpaper(void *buffer); +static void InitBoxTitle(u8 wallpaperId); +static void CreateIncomingBoxTitle(u8 wallpaperId, s8 direction); +static void SpriteCB_IncomingBoxTitle(struct Sprite *sprite); +static void SpriteCB_OutgoingBoxTitle(struct Sprite *sprite); +static s16 GetBoxTitleBaseX(const u8 *boxName); +static void CycleBoxTitleSprites(void); +static void CycleBoxTitleColor(void); +static void CreateBoxScrollArrows(void); +static void StartBoxScrollArrowsSlide(s8 direction); +static void StopBoxScrollArrowsSlide(void); +static void SpriteCB_BoxScrollArrow(struct Sprite *sprite); + +static const struct OamData sOamData_MonIcon; + +static const struct SpriteTemplate sSpriteTemplate_MonIcon = { + .tileTag = GFXTAG_MON_ICON, + .paletteTag = PALTAG_MON_ICON_0, + .oam = &sOamData_MonIcon, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy +}; + +static const struct OamData sOamData_MonIcon = { + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .mosaic = FALSE, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(32x32), + .x = 0, + .matrixNum = 0, + .size = SPRITE_SIZE(32x32), + .tileNum = 0x000, + .priority = 0, + .paletteNum = 0 +}; + +static const union AffineAnimCmd sAffineAnim_ReleaseMon_Release[] = { + AFFINEANIMCMD_FRAME(-2, -2, 0, 120), + AFFINEANIMCMD_END +}; + +static const union AffineAnimCmd sAffineAnim_ReleaseMon_ComeBack[] = { + AFFINEANIMCMD_FRAME(16, 16, 0, 0), + AFFINEANIMCMD_FRAME(16, 16, 0, 15), + AFFINEANIMCMD_END +}; + +static const union AffineAnimCmd *const sAffineAnims_ReleaseMon[] = { + [RELEASE_ANIM_RELEASE] = sAffineAnim_ReleaseMon_Release, + [RELEASE_ANIM_COME_BACK] = sAffineAnim_ReleaseMon_ComeBack, +}; + +static const u16 sWallpaperPalettes_Forest[][16] = { + INCBIN_U16("graphics/pokemon_storage/wallpapers/forest/title.gbapal"), + INCBIN_U16("graphics/pokemon_storage/wallpapers/forest/box.gbapal"), +}; +static const u32 sWallpaperTiles_Forest[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/forest/tiles.4bpp.lz"); +static const u32 sWallpaperTilemap_Forest[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/forest/tilemap.bin.lz"); + +static const u16 sWallpaperPalettes_City[][16] = { + INCBIN_U16("graphics/pokemon_storage/wallpapers/city/title.gbapal"), + INCBIN_U16("graphics/pokemon_storage/wallpapers/city/box.gbapal"), +}; +static const u32 sWallpaperTiles_City[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/city/tiles.4bpp.lz"); +static const u32 sWallpaperTilemap_City[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/city/tilemap.bin.lz"); + +static const u16 sWallpaperPalettes_Desert[][16] = { + INCBIN_U16("graphics/pokemon_storage/wallpapers/desert/title.gbapal"), + INCBIN_U16("graphics/pokemon_storage/wallpapers/desert/box.gbapal"), +}; +static const u32 sWallpaperTiles_Desert[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/desert/tiles.4bpp.lz"); +static const u32 sWallpaperTilemap_Desert[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/desert/tilemap.bin.lz"); + +static const u16 sWallpaperPalettes_Savanna[][16] = { + INCBIN_U16("graphics/pokemon_storage/wallpapers/savanna/title.gbapal"), + INCBIN_U16("graphics/pokemon_storage/wallpapers/savanna/box.gbapal"), +}; +static const u32 sWallpaperTiles_Savanna[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/savanna/tiles.4bpp.lz"); +static const u32 sWallpaperTilemap_Savanna[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/savanna/tilemap.bin.lz"); + +static const u16 sWallpaperPalettes_Crag[][16] = { + INCBIN_U16("graphics/pokemon_storage/wallpapers/crag/title.gbapal"), + INCBIN_U16("graphics/pokemon_storage/wallpapers/crag/box.gbapal"), +}; +static const u32 sWallpaperTiles_Crag[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/crag/tiles.4bpp.lz"); +static const u32 sWallpaperTilemap_Crag[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/crag/tilemap.bin.lz"); + +static const u16 sWallpaperPalettes_Volcano[][16] = { + INCBIN_U16("graphics/pokemon_storage/wallpapers/volcano/title.gbapal"), + INCBIN_U16("graphics/pokemon_storage/wallpapers/volcano/box.gbapal"), +}; +static const u32 sWallpaperTiles_Volcano[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/volcano/tiles.4bpp.lz"); +static const u8 sUnusedSpace1[4] = {}; +static const u32 sWallpaperTilemap_Volcano[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/volcano/tilemap.bin.lz"); + +static const u16 sWallpaperPalettes_Snow[][16] = { + INCBIN_U16("graphics/pokemon_storage/wallpapers/snow/title.gbapal"), + INCBIN_U16("graphics/pokemon_storage/wallpapers/snow/box.gbapal"), +}; +static const u32 sWallpaperTiles_Snow[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/snow/tiles.4bpp.lz"); +static const u32 sWallpaperTilemap_Snow[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/snow/tilemap.bin.lz"); + +static const u16 sWallpaperPalettes_Cave[][16] = { + INCBIN_U16("graphics/pokemon_storage/wallpapers/cave/title.gbapal"), + INCBIN_U16("graphics/pokemon_storage/wallpapers/cave/box.gbapal"), +}; +static const u32 sWallpaperTiles_Cave[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/cave/tiles.4bpp.lz"); +static const u32 sWallpaperTilemap_Cave[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/cave/tilemap.bin.lz"); + +static const u16 sWallpaperPalettes_Beach[][16] = { + INCBIN_U16("graphics/pokemon_storage/wallpapers/beach/title.gbapal"), + INCBIN_U16("graphics/pokemon_storage/wallpapers/beach/box.gbapal"), +}; +static const u32 sWallpaperTiles_Beach[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/beach/tiles.4bpp.lz"); +static const u32 sWallpaperTilemap_Beach[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/beach/tilemap.bin.lz"); + +static const u16 sWallpaperPalettes_Seafloor[][16] = { + INCBIN_U16("graphics/pokemon_storage/wallpapers/seafloor/title.gbapal"), + INCBIN_U16("graphics/pokemon_storage/wallpapers/seafloor/box.gbapal"), +}; +static const u32 sWallpaperTiles_Seafloor[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/seafloor/tiles.4bpp.lz"); +static const u32 sWallpaperTilemap_Seafloor[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/seafloor/tilemap.bin.lz"); + +static const u16 sWallpaperPalettes_River[][16] = { + INCBIN_U16("graphics/pokemon_storage/wallpapers/river/title.gbapal"), + INCBIN_U16("graphics/pokemon_storage/wallpapers/river/box.gbapal"), +}; +static const u32 sWallpaperTiles_River[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/river/tiles.4bpp.lz"); +static const u32 sWallpaperTilemap_River[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/river/tilemap.bin.lz"); + +static const u16 sWallpaperPalettes_Sky[][16] = { + INCBIN_U16("graphics/pokemon_storage/wallpapers/sky/title.gbapal"), + INCBIN_U16("graphics/pokemon_storage/wallpapers/sky/box.gbapal"), +}; +static const u32 sWallpaperTiles_Sky[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/sky/tiles.4bpp.lz"); +static const u32 sWallpaperTilemap_Sky[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/sky/tilemap.bin.lz"); + +static const u16 sWallpaperPalettes_Stars[][16] = { + INCBIN_U16("graphics/pokemon_storage/wallpapers/stars/title.gbapal"), + INCBIN_U16("graphics/pokemon_storage/wallpapers/stars/box.gbapal"), +}; +static const u8 sUnusedSpace2[32] = {}; +static const u32 sWallpaperTiles_Stars[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/stars/tiles.4bpp.lz"); +static const u32 sWallpaperTilemap_Stars[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/stars/tilemap.bin.lz"); + +static const u16 sWallpaperPalettes_Pokecenter[][16] = { + INCBIN_U16("graphics/pokemon_storage/wallpapers/pokecenter/title.gbapal"), + INCBIN_U16("graphics/pokemon_storage/wallpapers/pokecenter/box.gbapal"), +}; +static const u32 sWallpaperTiles_Pokecenter[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/pokecenter/tiles.4bpp.lz"); +static const u32 sWallpaperTilemap_Pokecenter[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/pokecenter/tilemap.bin.lz"); + +static const u16 sWallpaperPalettes_Tiles[][16] = { + INCBIN_U16("graphics/pokemon_storage/wallpapers/tiles/title.gbapal"), + INCBIN_U16("graphics/pokemon_storage/wallpapers/tiles/box.gbapal"), +}; +static const u32 sWallpaperTiles_Tiles[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/tiles/tiles.4bpp.lz"); +static const u32 sWallpaperTilemap_Tiles[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/tiles/tilemap.bin.lz"); + +static const u16 sWallpaperPalettes_Simple[][16] = { + INCBIN_U16("graphics/pokemon_storage/wallpapers/simple/title.gbapal"), + INCBIN_U16("graphics/pokemon_storage/wallpapers/simple/box.gbapal"), +}; +static const u32 sWallpaperTiles_Simple[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/simple/tiles.4bpp.lz"); +static const u32 sWallpaperTilemap_Simple[] = INCBIN_U32("graphics/pokemon_storage/wallpapers/simple/tilemap.bin.lz"); + +// Unused +static const u16 sWallpaperTilemap_Unused[] = INCBIN_U16("graphics/pokemon_storage/wallpapers/unused.bin"); + +// Shadow color, text color +static const u16 sBoxTitleColors[][2] = { + {RGB( 7, 7, 7), RGB_WHITE}, + {RGB( 7, 7, 7), RGB_WHITE}, + {RGB( 7, 7, 7), RGB_WHITE}, + {RGB( 7, 7, 7), RGB_WHITE}, + {RGB( 7, 7, 7), RGB_WHITE}, + {RGB( 7, 7, 7), RGB_WHITE}, + {RGB( 7, 7, 7), RGB_WHITE}, + {RGB( 7, 7, 7), RGB_WHITE}, + {RGB( 7, 7, 7), RGB_WHITE}, + {RGB( 7, 7, 7), RGB_WHITE}, + {RGB( 7, 7, 7), RGB_WHITE}, + {RGB( 7, 7, 7), RGB_WHITE}, + {RGB( 7, 7, 7), RGB_WHITE}, + {RGB( 7, 7, 7), RGB_WHITE}, + {RGB( 7, 7, 7), RGB_WHITE}, + {RGB( 7, 7, 7), RGB_WHITE} +}; + +static const struct Wallpaper sWallpapers[] = { + {sWallpaperTiles_Forest, sWallpaperTilemap_Forest, *sWallpaperPalettes_Forest }, + {sWallpaperTiles_City, sWallpaperTilemap_City, *sWallpaperPalettes_City }, + {sWallpaperTiles_Desert, sWallpaperTilemap_Desert, *sWallpaperPalettes_Desert }, + {sWallpaperTiles_Savanna, sWallpaperTilemap_Savanna, *sWallpaperPalettes_Savanna }, + {sWallpaperTiles_Crag, sWallpaperTilemap_Crag, *sWallpaperPalettes_Crag }, + {sWallpaperTiles_Volcano, sWallpaperTilemap_Volcano, *sWallpaperPalettes_Volcano }, + {sWallpaperTiles_Snow, sWallpaperTilemap_Snow, *sWallpaperPalettes_Snow }, + {sWallpaperTiles_Cave, sWallpaperTilemap_Cave, *sWallpaperPalettes_Cave }, + {sWallpaperTiles_Beach, sWallpaperTilemap_Beach, *sWallpaperPalettes_Beach }, + {sWallpaperTiles_Seafloor, sWallpaperTilemap_Seafloor, *sWallpaperPalettes_Seafloor }, + {sWallpaperTiles_River, sWallpaperTilemap_River, *sWallpaperPalettes_River }, + {sWallpaperTiles_Sky, sWallpaperTilemap_Sky, *sWallpaperPalettes_Sky }, + {sWallpaperTiles_Stars, sWallpaperTilemap_Stars, *sWallpaperPalettes_Stars }, + {sWallpaperTiles_Pokecenter, sWallpaperTilemap_Pokecenter, *sWallpaperPalettes_Pokecenter}, + {sWallpaperTiles_Tiles, sWallpaperTilemap_Tiles, *sWallpaperPalettes_Tiles }, + {sWallpaperTiles_Simple, sWallpaperTilemap_Simple, *sWallpaperPalettes_Simple }, +}; + +static const u16 sBoxScrollArrow_Gfx[] = INCBIN_U16("graphics/pokemon_storage/box_scroll_arrow.4bpp"); + +static const u16 sUnusedColor = RGB(26, 29, 8); + +static const struct SpriteSheet sSpriteSheet_BoxScrollArrow = { + sBoxScrollArrow_Gfx, 0x0080, GFXTAG_BOX_SCROLL_ARROW +}; + +static const struct OamData sOamData_BoxTitle = { + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .mosaic = FALSE, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(32x16), + .x = 0, + .matrixNum = 0, + .size = SPRITE_SIZE(32x16), + .tileNum = 0, + .priority = 2, + .paletteNum = 0 +}; + +static const union AnimCmd sAnim_BoxTitle_Left[] = { + ANIMCMD_FRAME(0, 5), + ANIMCMD_END +}; + +static const union AnimCmd sAnim_BoxTitle_Right[] = { + ANIMCMD_FRAME(8, 5), + ANIMCMD_END +}; + +static const union AnimCmd *const sAnims_BoxTitle[] = { + sAnim_BoxTitle_Left, + sAnim_BoxTitle_Right, +}; + +static const struct SpriteTemplate sSpriteTemplate_BoxTitle = { + .tileTag = GFXTAG_BOX_TITLE, + .paletteTag = PALTAG_BOX_TITLE, + .oam = &sOamData_BoxTitle, + .anims = sAnims_BoxTitle, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy +}; + +static const struct OamData sOamData_BoxScrollArrow = { + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .mosaic = FALSE, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(8x16), + .x = 0, + .matrixNum = 0, + .size = SPRITE_SIZE(8x16), + .tileNum = 0x000, + .priority = 2, + .paletteNum = 0 +}; + +static const union AnimCmd sAnim_BoxScrollArrow_Left[] = { + ANIMCMD_FRAME(0, 5), + ANIMCMD_END +}; + +static const union AnimCmd sAnim_BoxScrollArrow_Right[] = { + ANIMCMD_FRAME(2, 5), + ANIMCMD_END +}; + +static const union AnimCmd *const sAnims_BoxScrollArrow[] = { + sAnim_BoxScrollArrow_Left, + sAnim_BoxScrollArrow_Right, +}; + +static const struct SpriteTemplate sSpriteTemplate_BoxScrollArrow = { + .tileTag = GFXTAG_BOX_SCROLL_ARROW, + .paletteTag = PALTAG_MISC_2, + .oam = &sOamData_BoxScrollArrow, + .anims = sAnims_BoxScrollArrow, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCB_BoxScrollArrow, +}; + +void InitMonIconFields(void) +{ + u16 i; + + LoadMonIconPalettes(); + for (i = 0; i < MAX_MON_ICONS; i++) + gStorage->numIconsPerSpecies[i] = 0; + for (i = 0; i < MAX_MON_ICONS; i++) + gStorage->iconSpeciesList[i] = SPECIES_NONE; + for (i = 0; i < PARTY_SIZE; i++) + gStorage->partySprites[i] = NULL; + for (i = 0; i < IN_BOX_COUNT; i++) + gStorage->boxMonsSprites[i] = NULL; + + gStorage->movingMonSprite = NULL; + gStorage->unusedField1 = 0; +} + +static u8 GetMonIconPriorityByCursorArea(void) +{ + return (IsCursorInBox() ? 2 : 1); +} + +void CreateMovingMonIcon(void) +{ + u32 personality = GetMonData(&gStorage->movingMon, MON_DATA_PERSONALITY); + u16 species = GetMonData(&gStorage->movingMon, MON_DATA_SPECIES2); + u8 priority = GetMonIconPriorityByCursorArea(); + + gStorage->movingMonSprite = CreateMonIconSprite(species, personality, 0, 0, priority, 7); + gStorage->movingMonSprite->callback = SpriteCB_HeldMon; +} + +static void InitBoxMonSprites(u8 boxId) +{ + u8 boxPosition; + u16 i, j, count; + u16 species; + u32 personality; + + count = 0; + boxPosition = 0; + for (i = 0; i < IN_BOX_ROWS; i++) + { + for (j = 0; j < IN_BOX_COLUMNS; j++) + { + species = GetBoxMonDataAt(boxId, boxPosition, MON_DATA_SPECIES2); + if (species != SPECIES_NONE) + { + personality = GetBoxMonDataAt(boxId, boxPosition, MON_DATA_PERSONALITY); + gStorage->boxMonsSprites[count] = CreateMonIconSprite(species, personality, 8 * (3 * j) + 100, 8 * (3 * i) + 44, 2, 19 - j); + } + else + gStorage->boxMonsSprites[count] = NULL; + + boxPosition++; + count++; + } + } + + if (gStorage->boxOption == OPTION_MOVE_ITEMS) + { + for (boxPosition = 0; boxPosition < IN_BOX_COUNT; boxPosition++) + { + if (GetBoxMonDataAt(boxId, boxPosition, MON_DATA_HELD_ITEM) == 0) + gStorage->boxMonsSprites[boxPosition]->oam.objMode = ST_OAM_OBJ_BLEND; + } + } +} + +void CreateBoxMonIconAtPos(u8 boxPosition) +{ + u16 species = GetCurrentBoxMonData(boxPosition, MON_DATA_SPECIES2); + + if (species != SPECIES_NONE) + { + s16 x = 8 * (3 * (boxPosition % IN_BOX_COLUMNS)) + 100; + s16 y = 8 * (3 * (boxPosition / IN_BOX_COLUMNS)) + 44; + u32 personality = GetCurrentBoxMonData(boxPosition, MON_DATA_PERSONALITY); + + gStorage->boxMonsSprites[boxPosition] = CreateMonIconSprite(species, personality, x, y, 2, 19 - (boxPosition % IN_BOX_COLUMNS)); + if (gStorage->boxOption == OPTION_MOVE_ITEMS) + gStorage->boxMonsSprites[boxPosition]->oam.objMode = ST_OAM_OBJ_BLEND; + } +} + +#define sDistance data[1] +#define sSpeed data[2] +#define sDestX data[3] +#define sDelay data[4] +#define sPosX data[5] + +static void StartBoxMonIconsScrollOut(s16 speed) +{ + u16 i; + + for (i = 0; i < IN_BOX_COUNT; i++) + { + if (gStorage->boxMonsSprites[i] != NULL) + { + gStorage->boxMonsSprites[i]->sSpeed = speed; + gStorage->boxMonsSprites[i]->sDelay = 1; + gStorage->boxMonsSprites[i]->callback = SpriteCB_BoxMonIconScrollOut; + } + } +} + +static void SpriteCB_BoxMonIconScrollIn(struct Sprite *sprite) +{ + if (sprite->sDistance != 0) + { + sprite->sDistance--; + sprite->x += sprite->sSpeed; + } + else + { + gStorage->iconScrollNumIncoming--; + sprite->x = sprite->sDestX; + sprite->callback = SpriteCallbackDummy; + } +} + +static void SpriteCB_BoxMonIconScrollOut(struct Sprite *sprite) +{ + if (sprite->sDelay != 0) + sprite->sDelay--; + else + { + sprite->x += sprite->sSpeed; + sprite->sPosX = sprite->x + sprite->x2; + + // Check if mon icon has scrolled out of view of the box area + if (sprite->sPosX <= 68 || sprite->sPosX >= 252) + sprite->callback = SpriteCallbackDummy; + } +} + +static void DestroyAllIconsInColumn(u8 column) +{ + u16 row; + u8 boxPosition = column; + + for (row = 0; row < IN_BOX_ROWS; row++) + { + if (gStorage->boxMonsSprites[boxPosition] != NULL) + { + DestroyBoxMonIcon(gStorage->boxMonsSprites[boxPosition]); + gStorage->boxMonsSprites[boxPosition] = NULL; + } + boxPosition += IN_BOX_COLUMNS; + } +} + +static u8 CreateBoxMonIconsInColumn(u8 column, u16 distance, s16 speed) +{ + s32 i; + u16 y = 44; + s16 xDest = 8 * (3 * column) + 100; + u16 x = xDest - ((distance + 1) * speed); + u8 subpriority = 19 - column; + u8 count = 0; + u8 boxPosition = column; + + if (gStorage->boxOption != OPTION_MOVE_ITEMS) + { + for (i = 0; i < IN_BOX_ROWS; i++) + { + if (gStorage->boxSpecies[boxPosition] != SPECIES_NONE) + { + gStorage->boxMonsSprites[boxPosition] = CreateMonIconSprite(gStorage->boxSpecies[boxPosition], + gStorage->boxPersonalities[boxPosition], + x, y, 2, subpriority); + if (gStorage->boxMonsSprites[boxPosition] != NULL) + { + gStorage->boxMonsSprites[boxPosition]->sDistance = distance; + gStorage->boxMonsSprites[boxPosition]->sSpeed = speed; + gStorage->boxMonsSprites[boxPosition]->sDestX = xDest; + gStorage->boxMonsSprites[boxPosition]->callback = SpriteCB_BoxMonIconScrollIn; + count++; + } + } + boxPosition += IN_BOX_COLUMNS; + y += 24; + } + } + else + { + for (i = 0; i < IN_BOX_ROWS; i++) + { + if (gStorage->boxSpecies[boxPosition] != SPECIES_NONE) + { + gStorage->boxMonsSprites[boxPosition] = CreateMonIconSprite(gStorage->boxSpecies[boxPosition], + gStorage->boxPersonalities[boxPosition], + x, y, 2, subpriority); + if (gStorage->boxMonsSprites[boxPosition] != NULL) + { + gStorage->boxMonsSprites[boxPosition]->sDistance = distance; + gStorage->boxMonsSprites[boxPosition]->sSpeed = speed; + gStorage->boxMonsSprites[boxPosition]->sDestX = xDest; + gStorage->boxMonsSprites[boxPosition]->callback = SpriteCB_BoxMonIconScrollIn; + if (GetBoxMonDataAt(gStorage->incomingBoxId, boxPosition, MON_DATA_HELD_ITEM) == 0) + gStorage->boxMonsSprites[boxPosition]->oam.objMode = ST_OAM_OBJ_BLEND; + count++; + } + } + boxPosition += IN_BOX_COLUMNS; + y += 24; + } + } + + return count; +} + +#undef sDistance +#undef sSpeed +#undef sDestX +#undef sDelay +#undef sPosX + +static void InitBoxMonIconScroll(u8 boxId, s8 direction) +{ + gStorage->iconScrollState = 0; + gStorage->iconScrollToBoxId = boxId; + gStorage->iconScrollDirection = direction; + gStorage->iconScrollDistance = 32; + gStorage->iconScrollSpeed = -(6 * direction); + gStorage->iconScrollNumIncoming = 0; + SetBoxSpeciesAndPersonalities(boxId); + if (direction > 0) + gStorage->iconScrollCurColumn = 0; + else + gStorage->iconScrollCurColumn = IN_BOX_COLUMNS - 1; + + gStorage->iconScrollPos = (24 * gStorage->iconScrollCurColumn) + 100; + StartBoxMonIconsScrollOut(gStorage->iconScrollSpeed); +} + +static bool8 UpdateBoxMonIconScroll(void) +{ + if (gStorage->iconScrollDistance != 0) + gStorage->iconScrollDistance--; + + switch (gStorage->iconScrollState) + { + case 0: + gStorage->iconScrollPos += gStorage->iconScrollSpeed; + if (gStorage->iconScrollPos <= 64 || gStorage->iconScrollPos >= 252) + { + // A column of icons has gone offscreen, destroy them + DestroyAllIconsInColumn(gStorage->iconScrollCurColumn); + gStorage->iconScrollPos += gStorage->iconScrollDirection * 24; + gStorage->iconScrollState++; + } + break; + case 1: + // Create the new incoming column of icons + gStorage->iconScrollPos += gStorage->iconScrollSpeed; + gStorage->iconScrollNumIncoming += CreateBoxMonIconsInColumn(gStorage->iconScrollCurColumn, gStorage->iconScrollDistance, gStorage->iconScrollSpeed); + if ((gStorage->iconScrollDirection > 0 && gStorage->iconScrollCurColumn == IN_BOX_COLUMNS - 1) + || (gStorage->iconScrollDirection < 0 && gStorage->iconScrollCurColumn == 0)) + { + // Scroll has reached final column + gStorage->iconScrollState++; + } + else + { + // Continue scrolling + gStorage->iconScrollCurColumn += gStorage->iconScrollDirection; + gStorage->iconScrollState = 0; + } + break; + case 2: + // Wait to make sure all icons have arrived + if (gStorage->iconScrollNumIncoming == 0) + { + gStorage->iconScrollDistance++; + return FALSE; + } + break; + default: + return FALSE; + } + + return TRUE; +} + +static void SetBoxSpeciesAndPersonalities(u8 boxId) +{ + s32 i, j, boxPosition; + + boxPosition = 0; + for (i = 0; i < IN_BOX_ROWS; i++) + { + for (j = 0; j < IN_BOX_COLUMNS; j++) + { + gStorage->boxSpecies[boxPosition] = GetBoxMonDataAt(boxId, boxPosition, MON_DATA_SPECIES2); + if (gStorage->boxSpecies[boxPosition] != SPECIES_NONE) + gStorage->boxPersonalities[boxPosition] = GetBoxMonDataAt(boxId, boxPosition, MON_DATA_PERSONALITY); + boxPosition++; + } + } + + gStorage->incomingBoxId = boxId; +} + +void DestroyBoxMonIconAtPosition(u8 boxPosition) +{ + if (gStorage->boxMonsSprites[boxPosition] != NULL) + { + DestroyBoxMonIcon(gStorage->boxMonsSprites[boxPosition]); + gStorage->boxMonsSprites[boxPosition] = NULL; + } +} + +void SetBoxMonIconObjMode(u8 boxPosition, u8 objMode) +{ + if (gStorage->boxMonsSprites[boxPosition] != NULL) + { + gStorage->boxMonsSprites[boxPosition]->oam.objMode = objMode; + } +} + +void CreatePartyMonsSprites(bool8 visible) +{ + u16 i, count; + u16 species = GetMonData(&gPlayerParty[0], MON_DATA_SPECIES2); + u32 personality = GetMonData(&gPlayerParty[0], MON_DATA_PERSONALITY); + + gStorage->partySprites[0] = CreateMonIconSprite(species, personality, 104, 64, 1, 12); + count = 1; + for (i = 1; i < PARTY_SIZE; i++) + { + species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2); + if (species != SPECIES_NONE) + { + personality = GetMonData(&gPlayerParty[i], MON_DATA_PERSONALITY); + gStorage->partySprites[i] = CreateMonIconSprite(species, personality, 152, 8 * (3 * (i - 1)) + 16, 1, 12); + count++; + } + else + gStorage->partySprites[i] = NULL; + } + + if (!visible) + { + for (i = 0; i < count; i++) + { + gStorage->partySprites[i]->y -= 160; + gStorage->partySprites[i]->invisible = TRUE; + } + } + + if (gStorage->boxOption == OPTION_MOVE_ITEMS) + { + for (i = 0; i < PARTY_SIZE; i++) + { + if (gStorage->partySprites[i] != NULL && GetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM) == 0) + gStorage->partySprites[i]->oam.objMode = ST_OAM_OBJ_BLEND; + } + } +} + +void CompactPartySprites(void) +{ + u16 i, targetPartyId; + + gStorage->numPartySpritesToCompact = 0; + for (i = 0, targetPartyId = 0; i < PARTY_SIZE; i++) + { + if (gStorage->partySprites[i] != NULL) + { + if (i != targetPartyId) + { + MovePartySpriteToNextSlot(gStorage->partySprites[i], targetPartyId); + gStorage->partySprites[i] = NULL; + gStorage->numPartySpritesToCompact++; + } + targetPartyId++; + } + } +} + +u8 GetNumPartySpritesCompacting(void) +{ + return gStorage->numPartySpritesToCompact; +} + +#define sPartyId data[1] +#define sMonX data[2] +#define sMonY data[3] +#define sSpeedX data[4] +#define sSpeedY data[5] +#define sMoveSteps data[6] + +static void MovePartySpriteToNextSlot(struct Sprite *sprite, u16 partyId) +{ + s16 x, y; + + sprite->sPartyId = partyId; + if (partyId == 0) + x = 104, y = 64; + else + x = 152, y = 8 * (3 * (partyId - 1)) + 16; + + sprite->sMonX = (u16)(sprite->x) * 8; + sprite->sMonY = (u16)(sprite->y) * 8; + sprite->sSpeedX = ((x * 8) - sprite->sMonX) / 8; + sprite->sSpeedY = ((y * 8) - sprite->sMonY) / 8; + sprite->sMoveSteps = 8; + sprite->callback = SpriteCB_MovePartySpriteToNextSlot; +} + +static void SpriteCB_MovePartySpriteToNextSlot(struct Sprite *sprite) +{ + if (sprite->sMoveSteps != 0) + { + s16 x = sprite->sMonX += sprite->sSpeedX; + s16 y = sprite->sMonY += sprite->sSpeedY; + sprite->x = x / 8u; + sprite->y = y / 8u; + sprite->sMoveSteps--; + } + else + { + if (sprite->sPartyId == 0) + { + sprite->x = 104; + sprite->y = 64; + } + else + { + sprite->x = 152; + sprite->y = 8 * (3 * (sprite->sPartyId - 1)) + 16; + } + sprite->callback = SpriteCallbackDummy; + gStorage->partySprites[sprite->sPartyId] = sprite; + gStorage->numPartySpritesToCompact--; + } +} + +#undef sPartyId +#undef sMonX +#undef sMonY +#undef sSpeedX +#undef sSpeedY +#undef sMoveSteps + +void DestroyMovingMonIcon(void) +{ + if (gStorage->movingMonSprite != NULL) + { + DestroyBoxMonIcon(gStorage->movingMonSprite); + gStorage->movingMonSprite = NULL; + } +} + +void MovePartySprites(s16 yDelta) +{ + u16 i, posY; + + for (i = 0; i < PARTY_SIZE; i++) + { + if (gStorage->partySprites[i] != NULL) + { + gStorage->partySprites[i]->y += yDelta; + posY = gStorage->partySprites[i]->y + gStorage->partySprites[i]->y2 + gStorage->partySprites[i]->centerToCornerVecY; + posY += 16; + if (posY > 192) + gStorage->partySprites[i]->invisible = TRUE; + else + gStorage->partySprites[i]->invisible = FALSE; + } + } +} + +void DestroyPartyMonIcon(u8 partyId) +{ + if (gStorage->partySprites[partyId] != NULL) + { + DestroyBoxMonIcon(gStorage->partySprites[partyId]); + gStorage->partySprites[partyId] = NULL; + } +} + +void DestroyAllPartyMonIcons(void) +{ + u16 i; + + for (i = 0; i < PARTY_SIZE; i++) + { + if (gStorage->partySprites[i] != NULL) + { + DestroyBoxMonIcon(gStorage->partySprites[i]); + gStorage->partySprites[i] = NULL; + } + } +} + +void SetPartyMonIconObjMode(u8 partyId, u8 objMode) +{ + if (gStorage->partySprites[partyId] != NULL) + gStorage->partySprites[partyId]->oam.objMode = objMode; +} + +void SetMovingMonSprite(u8 mode, u8 id) +{ + if (mode == MODE_PARTY) + { + gStorage->movingMonSprite = gStorage->partySprites[id]; + gStorage->partySprites[id] = NULL; + } + else if (mode == MODE_BOX) + { + gStorage->movingMonSprite = gStorage->boxMonsSprites[id]; + gStorage->boxMonsSprites[id] = NULL; + } + else + return; + + gStorage->movingMonSprite->callback = SpriteCB_HeldMon; + gStorage->movingMonSprite->oam.priority = GetMonIconPriorityByCursorArea(); + gStorage->movingMonSprite->subpriority = 7; +} + +void SetPlacedMonSprite(u8 boxId, u8 position) +{ + if (boxId == TOTAL_BOXES_COUNT) // party mon + { + gStorage->partySprites[position] = gStorage->movingMonSprite; + gStorage->partySprites[position]->oam.priority = 1; + gStorage->partySprites[position]->subpriority = 12; + } + else + { + gStorage->boxMonsSprites[position] = gStorage->movingMonSprite; + gStorage->boxMonsSprites[position]->oam.priority = 2; + gStorage->boxMonsSprites[position]->subpriority = 19 - (position % IN_BOX_COLUMNS); + } + gStorage->movingMonSprite->callback = SpriteCallbackDummy; + gStorage->movingMonSprite = NULL; +} + +void SetShiftMonSpritePtr(u8 boxId, u8 position) +{ + if (boxId == TOTAL_BOXES_COUNT) // party mon + gStorage->shiftMonSpritePtr = &gStorage->partySprites[position]; + else + gStorage->shiftMonSpritePtr = &gStorage->boxMonsSprites[position]; + + gStorage->movingMonSprite->callback = SpriteCallbackDummy; + gStorage->shiftTimer = 0; +} + +bool8 ShiftMons(void) +{ + if (gStorage->shiftTimer == 16) + return FALSE; + + gStorage->shiftTimer++; + if (gStorage->shiftTimer & 1) + { + (*gStorage->shiftMonSpritePtr)->y--; + gStorage->movingMonSprite->y++; + } + + (*gStorage->shiftMonSpritePtr)->x2 = gSineTable[gStorage->shiftTimer * 8] / 16; + gStorage->movingMonSprite->x2 = -(gSineTable[gStorage->shiftTimer * 8] / 16); + if (gStorage->shiftTimer == 8) + { + gStorage->movingMonSprite->oam.priority = (*gStorage->shiftMonSpritePtr)->oam.priority; + gStorage->movingMonSprite->subpriority = (*gStorage->shiftMonSpritePtr)->subpriority; + (*gStorage->shiftMonSpritePtr)->oam.priority = GetMonIconPriorityByCursorArea(); + (*gStorage->shiftMonSpritePtr)->subpriority = 7; + } + + if (gStorage->shiftTimer == 16) + { + struct Sprite *sprite = gStorage->movingMonSprite; + gStorage->movingMonSprite = (*gStorage->shiftMonSpritePtr); + *gStorage->shiftMonSpritePtr = sprite; + + gStorage->movingMonSprite->callback = SpriteCB_HeldMon; + (*gStorage->shiftMonSpritePtr)->callback = SpriteCallbackDummy; + } + + return TRUE; +} + +void DoReleaseMonAnim(u8 mode, u8 position) +{ + switch (mode) + { + case MODE_PARTY: + gStorage->releaseMonSpritePtr = &gStorage->partySprites[position]; + break; + case MODE_BOX: + gStorage->releaseMonSpritePtr = &gStorage->boxMonsSprites[position]; + break; + case MODE_MOVE: + gStorage->releaseMonSpritePtr = &gStorage->movingMonSprite; + break; + default: + return; + } + + if (*gStorage->releaseMonSpritePtr != NULL) + { + InitSpriteAffineAnim(*gStorage->releaseMonSpritePtr); + (*gStorage->releaseMonSpritePtr)->oam.affineMode = ST_OAM_AFFINE_NORMAL; + (*gStorage->releaseMonSpritePtr)->affineAnims = sAffineAnims_ReleaseMon; + StartSpriteAffineAnim(*gStorage->releaseMonSpritePtr, RELEASE_ANIM_RELEASE); + } +} + +bool8 TryHideReleaseMonSprite(void) +{ + if (*gStorage->releaseMonSpritePtr == NULL || (*gStorage->releaseMonSpritePtr)->invisible) + return FALSE; + + if ((*gStorage->releaseMonSpritePtr)->affineAnimEnded) + (*gStorage->releaseMonSpritePtr)->invisible = TRUE; + + return TRUE; +} + +void DestroyReleaseMonIcon(void) +{ + if (*gStorage->releaseMonSpritePtr != NULL) + { + FreeOamMatrix((*gStorage->releaseMonSpritePtr)->oam.matrixNum); + DestroyBoxMonIcon(*gStorage->releaseMonSpritePtr); + *gStorage->releaseMonSpritePtr = NULL; + } +} + +void DoReleaseMonComeBackAnim(void) +{ + if (*gStorage->releaseMonSpritePtr != NULL) + { + (*gStorage->releaseMonSpritePtr)->invisible = FALSE; + StartSpriteAffineAnim(*gStorage->releaseMonSpritePtr, RELEASE_ANIM_COME_BACK); + } +} + +bool8 ResetReleaseMonSpritePtr(void) +{ + if (gStorage->releaseMonSpritePtr == NULL) + return FALSE; + + if ((*gStorage->releaseMonSpritePtr)->affineAnimEnded) + gStorage->releaseMonSpritePtr = NULL; + + return TRUE; +} + +void SetMovingMonPriority(u8 priority) +{ + gStorage->movingMonSprite->oam.priority = priority; +} + +static void SpriteCB_HeldMon(struct Sprite *sprite) +{ + sprite->x = gStorage->cursorSprite->x; + sprite->y = gStorage->cursorSprite->y + gStorage->cursorSprite->y2 + 4; +} + +static u16 TryLoadMonIconTiles(u16 species) +{ + u16 i, offset; + + // Find the currently-allocated slot + for (i = 0; i < MAX_MON_ICONS; i++) + { + if (gStorage->iconSpeciesList[i] == species) + break; + } + + if (i == MAX_MON_ICONS) + { + // Find the first empty slot + for (i = 0; i < MAX_MON_ICONS; i++) + { + if (gStorage->iconSpeciesList[i] == SPECIES_NONE) + break; + } + if (i == MAX_MON_ICONS) + return 0xFFFF; + } + + gStorage->iconSpeciesList[i] = species; + gStorage->numIconsPerSpecies[i]++; + offset = 16 * i; + CpuCopy32(GetMonIconTiles(species, TRUE), (void *)(OBJ_VRAM0) + offset * 32, 0x200); + + return offset; +} + +static void RemoveSpeciesFromIconList(u16 species) +{ + u16 i; + + for (i = 0; i < MAX_MON_ICONS; i++) + { + if (gStorage->iconSpeciesList[i] == species) + { + if (--gStorage->numIconsPerSpecies[i] == 0) + gStorage->iconSpeciesList[i] = SPECIES_NONE; + break; + } + } +} + +struct Sprite *CreateMonIconSprite(u16 species, u32 personality, s16 x, s16 y, u8 oamPriority, u8 subpriority) +{ + u16 tileNum; + u8 spriteId; + struct SpriteTemplate template = sSpriteTemplate_MonIcon; + + species = GetIconSpecies(species, personality); + template.paletteTag = PALTAG_MON_ICON_0 + gMonIconPaletteIndices[species]; + tileNum = TryLoadMonIconTiles(species); + if (tileNum == 0xFFFF) + return NULL; + + spriteId = CreateSprite(&template, x, y, subpriority); + if (spriteId == MAX_SPRITES) + { + RemoveSpeciesFromIconList(species); + return NULL; + } + + gSprites[spriteId].oam.tileNum = tileNum; + gSprites[spriteId].oam.priority = oamPriority; + gSprites[spriteId].data[0] = species; + return &gSprites[spriteId]; +} + +static void DestroyBoxMonIcon(struct Sprite *sprite) +{ + RemoveSpeciesFromIconList(sprite->data[0]); + DestroySprite(sprite); +} + +#define tState data[0] +#define tDmaIdx data[1] +#define tBoxId data[2] + +void CreateInitBoxTask(u8 boxId) +{ + u8 taskId = CreateTask(Task_InitBox, 2); + + gTasks[taskId].tBoxId = boxId; +} + +bool8 IsInitBoxActive(void) +{ + return FuncIsActiveTask(Task_InitBox); +} + +static void Task_InitBox(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + + switch (task->tState) + { + case 0: + gStorage->wallpaperOffset = 0; + gStorage->bg2_X = 0; + task->tDmaIdx = RequestDma3Fill(0, gStorage->wallpaperBgTilemapBuffer, sizeof(gStorage->wallpaperBgTilemapBuffer), DMA3_32BIT); + break; + case 1: + if (WaitDma3Request(task->tDmaIdx) == -1) + return; + + SetBgTilemapBuffer(2, gStorage->wallpaperBgTilemapBuffer); + ShowBg(2); + break; + case 2: + LoadWallpaperGfx(task->tBoxId, 0); + break; + case 3: + if (!WaitForWallpaperGfxLoad()) + return; + + InitBoxTitle(task->tBoxId); + CreateBoxScrollArrows(); + InitBoxMonSprites(task->tBoxId); + SetGpuReg(REG_OFFSET_BG2CNT, BGCNT_PRIORITY(2) | BGCNT_CHARBASE(2) | BGCNT_SCREENBASE(27) | BGCNT_TXT512x256); + break; + case 4: + DestroyTask(taskId); + break; + default: + task->tState = 0; + return; + } + + task->tState++; +} + +#undef tState +#undef tDmaIdx +#undef tBoxId + +void SetUpScrollToBox(u8 boxId) +{ + s8 direction = DetermineBoxScrollDirection(boxId); + + gStorage->scrollSpeed = (direction > 0) ? 6 : -6; + gStorage->scrollUnused1 = (direction > 0) ? 1 : 2; + gStorage->scrollTimer = 32; + gStorage->scrollToBoxIdUnused = boxId; + gStorage->scrollUnused2 = (direction <= 0) ? 5 : 0; + gStorage->scrollDirectionUnused = direction; + gStorage->scrollUnused3 = (direction > 0) ? 264 : 56; + gStorage->scrollUnused4 = (direction <= 0) ? 5 : 0; + gStorage->scrollUnused5 = 0; + gStorage->scrollUnused6 = 2; + gStorage->scrollToBoxId = boxId; + gStorage->scrollDirection = direction; + gStorage->scrollState = 0; +} + +bool8 ScrollToBox(void) +{ + bool8 isStillScrolling; + + switch (gStorage->scrollState) + { + case 0: + LoadWallpaperGfx(gStorage->scrollToBoxId, gStorage->scrollDirection); + gStorage->scrollState++; + case 1: + if (!WaitForWallpaperGfxLoad()) + return TRUE; + + InitBoxMonIconScroll(gStorage->scrollToBoxId, gStorage->scrollDirection); + CreateIncomingBoxTitle(gStorage->scrollToBoxId, gStorage->scrollDirection); + StartBoxScrollArrowsSlide(gStorage->scrollDirection); + break; + case 2: + isStillScrolling = UpdateBoxMonIconScroll(); + if (gStorage->scrollTimer != 0) + { + gStorage->bg2_X += gStorage->scrollSpeed; + if (--gStorage->scrollTimer != 0) + return TRUE; + CycleBoxTitleSprites(); + StopBoxScrollArrowsSlide(); + } + return isStillScrolling; + } + + gStorage->scrollState++; + return TRUE; +} + +static s8 DetermineBoxScrollDirection(u8 boxId) +{ + u8 i; + u8 currentBox = StorageGetCurrentBox(); + + for (i = 0; currentBox != boxId; i++) + { + currentBox++; + if (currentBox >= TOTAL_BOXES_COUNT) + currentBox = 0; + } + + return (i < TOTAL_BOXES_COUNT / 2) ? 1 : -1; +} + +void SetWallpaperForCurrentBox(u8 wallpaperId) +{ + SetBoxWallpaper(StorageGetCurrentBox(), wallpaperId); + gStorage->wallpaperChangeState = 0; +} + +bool8 DoWallpaperGfxChange(void) +{ + switch (gStorage->wallpaperChangeState) + { + case 0: + BeginNormalPaletteFade(gStorage->wallpaperPalBits, 1, 0, 16, RGB_WHITEALPHA); + gStorage->wallpaperChangeState++; + break; + case 1: + if (!UpdatePaletteFade()) + { + u8 curBox = StorageGetCurrentBox(); + LoadWallpaperGfx(curBox, 0); + gStorage->wallpaperChangeState++; + } + break; + case 2: + if (WaitForWallpaperGfxLoad() == TRUE) + { + CycleBoxTitleColor(); + BeginNormalPaletteFade(gStorage->wallpaperPalBits, 1, 16, 0, RGB_WHITEALPHA); + gStorage->wallpaperChangeState++; + } + break; + case 3: + if (!UpdatePaletteFade()) + gStorage->wallpaperChangeState++; + break; + case 4: + return FALSE; + } + + return TRUE; +} + +static void LoadWallpaperGfx(u8 boxId, s8 direction) +{ + u8 wallpaperId; + const struct Wallpaper *wallpaper; + + gStorage->wallpaperLoadState = 0; + gStorage->wallpaperLoadBoxId = boxId; + gStorage->wallpaperLoadDir = direction; + if (gStorage->wallpaperLoadDir != 0) + { + gStorage->wallpaperOffset = !gStorage->wallpaperOffset; + TrimOldWallpaper(gStorage->wallpaperBgTilemapBuffer); + } + + wallpaperId = GetBoxWallpaper(gStorage->wallpaperLoadBoxId); + wallpaper = &sWallpapers[wallpaperId]; + LZ77UnCompWram(wallpaper->tileMap, gStorage->wallpaperTilemap); + DrawWallpaper(gStorage->wallpaperBgTilemapBuffer, gStorage->wallpaperTilemap, gStorage->wallpaperLoadDir, gStorage->wallpaperOffset); + + if (gStorage->wallpaperLoadDir != 0) + LoadPalette(wallpaper->palettes, (gStorage->wallpaperOffset * 32) + 0x40, 0x40); + else + CpuCopy16(wallpaper->palettes, &gPlttBufferUnfaded[(gStorage->wallpaperOffset * 32) + 0x40], 0x40); + + DecompressAndLoadBgGfxUsingHeap(2, wallpaper->tiles, 0, 256 * gStorage->wallpaperOffset, 0); + + CopyBgTilemapBufferToVram(2); +} + +static bool32 WaitForWallpaperGfxLoad(void) +{ + if (IsDma3ManagerBusyWithBgCopy() == TRUE) + return FALSE; + + return TRUE; +} + +static void DrawWallpaper(void *unused, const void *tilemap, s8 direction, u8 offset) +{ + s16 paletteNum = (offset * 2) + 3; + s16 x = ((gStorage->bg2_X / 8 + 10) + (direction * 24)) & 0x3F; + + CopyRectToBgTilemapBufferRect(2, tilemap, 0, 0, 20, 18, x, 2, 20, 18, 17, offset << 8, paletteNum); + + if (direction == 0) + return; + else if (direction > 0) + x *= 1, x += 20; // x * 1 is needed to match + else + x -= 4; + + FillBgTilemapBufferRect(2, 0, x, 2, 4, 18, 17); +} + +static void TrimOldWallpaper(void *tilemapBuffer) +{ + u16 i; + u16 *dest = tilemapBuffer; + s16 right = ((gStorage->bg2_X / 8 + 10) + 20) & 0x3F; + + if (right < 32) + dest += right + 0x260; + else + dest += right + 0x640; + + for (i = 0; i < 44; i++) + { + *dest++ = 0; + right = (right + 1) & 0x3F; + if (right == 0) + dest -= 0x420; + if (right == 32) + dest += 0x3e0; + } +} + +static void InitBoxTitle(u8 boxId) +{ + u8 tagIndex; + s16 x; + u16 i; + + struct SpriteSheet spriteSheet = {gStorage->boxTitleTiles, 0x200, GFXTAG_BOX_TITLE}; + struct SpritePalette palettes[] = { + {gStorage->boxTitlePal, PALTAG_BOX_TITLE}, + {} + }; + + u16 wallpaperId = GetBoxWallpaper(boxId); + + gStorage->boxTitlePal[14] = sBoxTitleColors[wallpaperId][0]; + gStorage->boxTitlePal[15] = sBoxTitleColors[wallpaperId][1]; + LoadSpritePalettes(palettes); + gStorage->wallpaperPalBits = 0x3F0; + + tagIndex = IndexOfSpritePaletteTag(PALTAG_BOX_TITLE); + gStorage->boxTitlePalOffset = 0x10e + 16 * tagIndex; + gStorage->wallpaperPalBits |= 0x10000 << tagIndex; + + tagIndex = IndexOfSpritePaletteTag(PALTAG_BOX_TITLE); + gStorage->boxTitleAltPalOffset = 0x10e + 16 * tagIndex; + gStorage->wallpaperPalBits |= 0x10000 << tagIndex; + + StringCopyPadded(gStorage->boxTitleText, GetBoxNamePtr(boxId), 0, 8); + DrawTextWindowAndBufferTiles(gStorage->boxTitleText, gStorage->boxTitleTiles, 0, 0, gStorage->boxTitleUnused, 2); + LoadSpriteSheet(&spriteSheet); + x = GetBoxTitleBaseX(GetBoxNamePtr(boxId)); + + for (i = 0; i < 2; i++) + { + u8 spriteId = CreateSprite(&sSpriteTemplate_BoxTitle, x + i * 32, 28, 24); + gStorage->curBoxTitleSprites[i] = &gSprites[spriteId]; + StartSpriteAnim(gStorage->curBoxTitleSprites[i], i); + } + gStorage->boxTitleCycleId = 0; +} + +static void CreateIncomingBoxTitle(u8 boxId, s8 direction) +{ + u16 palOffset; + s16 x, adjustedX; + u16 i; + struct SpriteSheet spriteSheet = {gStorage->boxTitleTiles, 0x200, GFXTAG_BOX_TITLE}; + struct SpriteTemplate template = sSpriteTemplate_BoxTitle; + + gStorage->boxTitleCycleId = !gStorage->boxTitleCycleId; + if (gStorage->boxTitleCycleId == 0) + { + spriteSheet.tag = GFXTAG_BOX_TITLE; + palOffset = gStorage->boxTitlePalOffset; + } + else + { + spriteSheet.tag = GFXTAG_BOX_TITLE_ALT; + palOffset = gStorage->boxTitlePalOffset; + template.tileTag = GFXTAG_BOX_TITLE_ALT; + template.paletteTag = PALTAG_BOX_TITLE; + } + + StringCopyPadded(gStorage->boxTitleText, GetBoxNamePtr(boxId), 0, BOX_NAME_LENGTH); + DrawTextWindowAndBufferTiles(gStorage->boxTitleText, gStorage->boxTitleTiles, 0, 0, gStorage->boxTitleUnused, 2); + LoadSpriteSheet(&spriteSheet); + LoadPalette(sBoxTitleColors[GetBoxWallpaper(boxId)], palOffset, sizeof(sBoxTitleColors[0])); + x = GetBoxTitleBaseX(GetBoxNamePtr(boxId)); + adjustedX = x; + adjustedX += direction * 192; + + // Title is split across two sprites + for (i = 0; i < 2; i++) + { + u8 spriteId = CreateSprite(&template, i * 32 + adjustedX, 28, 24); + + gStorage->nextBoxTitleSprites[i] = &gSprites[spriteId]; + gStorage->nextBoxTitleSprites[i]->data[0] = (-direction) * 6; + gStorage->nextBoxTitleSprites[i]->data[1] = i * 32 + x; + gStorage->nextBoxTitleSprites[i]->data[2] = 0; + gStorage->nextBoxTitleSprites[i]->callback = SpriteCB_IncomingBoxTitle; + StartSpriteAnim(gStorage->nextBoxTitleSprites[i], i); + + gStorage->curBoxTitleSprites[i]->data[0] = (-direction) * 6; + gStorage->curBoxTitleSprites[i]->data[1] = 1; + gStorage->curBoxTitleSprites[i]->callback = SpriteCB_OutgoingBoxTitle; + } +} + +static void CycleBoxTitleSprites(void) +{ + if (gStorage->boxTitleCycleId == 0) + FreeSpriteTilesByTag(GFXTAG_BOX_TITLE_ALT); + else + FreeSpriteTilesByTag(GFXTAG_BOX_TITLE); + + gStorage->curBoxTitleSprites[0] = gStorage->nextBoxTitleSprites[0]; + gStorage->curBoxTitleSprites[1] = gStorage->nextBoxTitleSprites[1]; +} + +static void SpriteCB_IncomingBoxTitle(struct Sprite *sprite) +{ + if (sprite->data[2] != 0) + sprite->data[2]--; + else if ((sprite->x += sprite->data[0]) == sprite->data[1]) + sprite->callback = SpriteCallbackDummy; +} + +static void SpriteCB_OutgoingBoxTitle(struct Sprite *sprite) +{ + if (sprite->data[1] != 0) + sprite->data[1]--; + else + { + sprite->x += sprite->data[0]; + sprite->data[2] = sprite->x + sprite->x2; + if (sprite->data[2] < 0x40 || sprite->data[2] > 0x100) + DestroySprite(sprite); + } +} + +static void CycleBoxTitleColor(void) +{ + u8 boxId = StorageGetCurrentBox(); + u8 wallpaperId = GetBoxWallpaper(boxId); + if (gStorage->boxTitleCycleId == 0) + CpuCopy16(sBoxTitleColors[wallpaperId], gPlttBufferUnfaded + gStorage->boxTitlePalOffset, 4); + else + CpuCopy16(sBoxTitleColors[wallpaperId], gPlttBufferUnfaded + gStorage->boxTitleAltPalOffset, 4); +} + +static s16 GetBoxTitleBaseX(const u8 *string) +{ + return DISPLAY_WIDTH - 64 - GetStringWidth(FONT_1, string, 0) / 2; +} + +// Sprite data for box scroll arrows +#define sState data[0] +#define sTimer data[1] +#define sSpeed data[3] + +static void CreateBoxScrollArrows(void) +{ + u16 i; + + LoadSpriteSheet(&sSpriteSheet_BoxScrollArrow); + for (i = 0; i < 2; i++) + { + u8 spriteId = CreateSprite(&sSpriteTemplate_BoxScrollArrow, 92 + i * 136, 28, 22); + if (spriteId != MAX_SPRITES) + { + struct Sprite *sprite = &gSprites[spriteId]; + StartSpriteAnim(sprite, i); + sprite->sSpeed = (i == 0) ? -1 : 1; + gStorage->arrowSprites[i] = sprite; + } + } + if (IsCursorOnBoxTitle()) + AnimateBoxScrollArrows(TRUE); +} + +// Slide box scroll arrows horizontally for box change +static void StartBoxScrollArrowsSlide(s8 direction) +{ + u16 i; + + for (i = 0; i < 2; i++) + { + gStorage->arrowSprites[i]->x2 = 0; + gStorage->arrowSprites[i]->sState = 2; + } + if (direction < 0) + { + gStorage->arrowSprites[0]->sTimer = 29; + gStorage->arrowSprites[1]->sTimer = 5; + gStorage->arrowSprites[0]->data[2] = 72; + gStorage->arrowSprites[1]->data[2] = 72; + } + else + { + gStorage->arrowSprites[0]->sTimer = 5; + gStorage->arrowSprites[1]->sTimer = 29; + gStorage->arrowSprites[0]->data[2] = DISPLAY_WIDTH + 8; + gStorage->arrowSprites[1]->data[2] = DISPLAY_WIDTH + 8; + } + gStorage->arrowSprites[0]->data[7] = 0; + gStorage->arrowSprites[1]->data[7] = 1; +} + +// New box's scroll arrows have entered, stop sliding and set their position +static void StopBoxScrollArrowsSlide(void) +{ + u16 i; + + for (i = 0; i < 2; i++) + { + gStorage->arrowSprites[i]->x = 136 * i + 92; + gStorage->arrowSprites[i]->x2 = 0; + gStorage->arrowSprites[i]->invisible = FALSE; + } + AnimateBoxScrollArrows(TRUE); +} + +// Bounce scroll arrows while title is selected +void AnimateBoxScrollArrows(bool8 animate) +{ + u16 i; + + if (animate) + { + // Start arrows moving + for (i = 0; i < 2; i++) + { + gStorage->arrowSprites[i]->sState = 1; + gStorage->arrowSprites[i]->sTimer = 0; + gStorage->arrowSprites[i]->data[2] = 0; + gStorage->arrowSprites[i]->data[4] = 0; + } + } + else + { + // Stop arrows moving + for (i = 0; i < 2; i++) + gStorage->arrowSprites[i]->sState = 0; + } +} + +static void SpriteCB_BoxScrollArrow(struct Sprite *sprite) +{ + switch (sprite->sState) + { + case 0: + sprite->x2 = 0; + break; + case 1: + if (++sprite->sTimer > 3) + { + sprite->sTimer = 0; + sprite->x2 += sprite->sSpeed; + if (++sprite->data[2] > 5) + { + sprite->data[2] = 0; + sprite->x2 = 0; + } + } + break; + case 2: + sprite->sState = 3; + break; + case 3: + sprite->x -= gStorage->scrollSpeed; + if (sprite->x <= 72 || sprite->x >= DISPLAY_WIDTH + 8) + sprite->invisible = TRUE; + if (--sprite->sTimer == 0) + { + sprite->x = sprite->data[2]; + sprite->invisible = FALSE; + sprite->sState = 4; + } + break; + case 4: + sprite->x -= gStorage->scrollSpeed; + break; + } +} + +#undef sState +#undef sTimer +#undef sSpeed + +// Arrows for Deposit/Jump Box selection +struct Sprite *CreateChooseBoxArrows(u16 x, u16 y, u8 animId, u8 priority, u8 subpriority) +{ + u8 spriteId = CreateSprite(&sSpriteTemplate_BoxScrollArrow, x, y, subpriority); + if (spriteId == MAX_SPRITES) + return NULL; + + animId %= 2; + StartSpriteAnim(&gSprites[spriteId], animId); + gSprites[spriteId].oam.priority = priority; + gSprites[spriteId].callback = SpriteCallbackDummy; + return &gSprites[spriteId]; +} diff --git a/src/pokemon_storage_system_2.c b/src/pokemon_storage_system_menu.c similarity index 60% rename from src/pokemon_storage_system_2.c rename to src/pokemon_storage_system_menu.c index 918ffaf7d..298659efc 100644 --- a/src/pokemon_storage_system_2.c +++ b/src/pokemon_storage_system_menu.c @@ -16,22 +16,20 @@ #include "constants/help_system.h" static EWRAM_DATA u8 sPreviousBoxOption = 0; -static EWRAM_DATA struct ChooseBoxMenu *sBoxSelectionPopupSpriteManager = NULL; +static EWRAM_DATA struct ChooseBoxMenu *sChooseBoxMenu = NULL; -static void PSS_CreatePCMenu(u8 whichMenu, s16 *windowIdPtr); +static void CreatePCMainMenu(u8 whichMenu, s16 *windowIdPtr); static void ChooseBoxMenu_CreateSprites(u8 curBox); -static void sub_808CBA4(void); -static void UpdateBoxNameAndCountSprite_WraparoundRight(void); -static void UpdateBoxNameAndCountSprite_WraparoundLeft(void); -static void PrintBoxNameAndCountToSprite(void); -static void PrintToSpriteWithTagUnk0240(const u8 *a0, u16 x, u16 y); -static void sub_808CD64(struct Sprite *sprite); +static void ChooseBoxMenu_DestroySprites(void); +static void ChooseBoxMenu_MoveRight(void); +static void ChooseBoxMenu_MoveLeft(void); +static void ChooseBoxMenu_PrintBoxNameAndCount(void); +static void ChooseBoxMenu_PrintTextToSprite(const u8 *a0, u16 x, u16 y); +static void SpriteCB_ChooseBoxArrow(struct Sprite *sprite); -// Forward declarations - -static const u16 sBoxSelectionPopupPalette[]; -static const u16 sBoxSelectionPopupCenterTiles[]; -static const u16 sBoxSelectionPopupSidesTiles[]; +static const u16 sChooseBoxMenu_Pal[]; +static const u8 sChooseBoxMenuCenter_Gfx[]; +static const u8 sChooseBoxMenuCorners_Gfx[]; struct { const u8 *text; @@ -44,7 +42,7 @@ struct { [OPTION_EXIT] = {gText_SeeYa, gText_SeeYaDescription} }; -void DrawTextWindowAndBufferTiles(const u8 *string, void *dst, u8 zero1, u8 zero2, u8 *buffer, s32 bytesToBuffer) +void DrawTextWindowAndBufferTiles(const u8 *string, void *dst, u8 zero1, u8 zero2, u8 *unused, s32 bytesToBuffer) { s32 i, tileBytesToBuffer, remainingBytes; u16 windowId; @@ -90,7 +88,7 @@ void DrawTextWindowAndBufferTiles(const u8 *string, void *dst, u8 zero1, u8 zero RemoveWindow(windowId); } -static void PrintStringToBufferCopyNow(const u8 *string, void *dst, u16 rise, u8 bgClr, u8 fgClr, u8 shClr, u8 *buffer) +static void PrintStringToBufferCopyNow(const u8 *string, void *dst, u16 offset, u8 bgColor, u8 fgColor, u8 shadowColor, u8 *unused) { u32 var; u8 windowId; @@ -102,15 +100,15 @@ static void PrintStringToBufferCopyNow(const u8 *string, void *dst, u16 rise, u8 winTemplate.height = 2; var = winTemplate.width * 32; windowId = AddWindow(&winTemplate); - FillWindowPixelBuffer(windowId, PIXEL_FILL(bgClr)); + FillWindowPixelBuffer(windowId, PIXEL_FILL(bgColor)); tileData1 = (u8 *)GetWindowAttribute(windowId, WINDOW_TILE_DATA); tileData2 = (winTemplate.width * 32) + tileData1; - txtColor[0] = bgClr; - txtColor[1] = fgClr; - txtColor[2] = shClr; + txtColor[0] = bgColor; + txtColor[1] = fgColor; + txtColor[2] = shadowColor; AddTextPrinterParameterized4(windowId, FONT_1, 0, 2, 0, 0, txtColor, -1, string); CpuCopy16(tileData1, dst, var); - CpuCopy16(tileData2, dst + rise, var); + CpuCopy16(tileData2, dst + offset, var); RemoveWindow(windowId); } @@ -147,10 +145,8 @@ u8 CountPartyNonEggMons(void) for (i = 0, count = 0; i < PARTY_SIZE; i++) { if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES) != SPECIES_NONE - && !GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG)) - { + && !GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG)) count++; - } } return count; @@ -163,12 +159,10 @@ u8 CountPartyAliveNonEggMonsExcept(u8 slotToIgnore) for (i = 0, count = 0; i < PARTY_SIZE; i++) { if (i != slotToIgnore - && GetMonData(&gPlayerParty[i], MON_DATA_SPECIES) != SPECIES_NONE - && !GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG) - && GetMonData(&gPlayerParty[i], MON_DATA_HP) != 0) - { + && GetMonData(&gPlayerParty[i], MON_DATA_SPECIES) != SPECIES_NONE + && !GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG) + && GetMonData(&gPlayerParty[i], MON_DATA_HP) != 0) count++; - } } return count; @@ -186,9 +180,7 @@ u8 CountPartyMons(void) for (i = 0, count = 0; i < PARTY_SIZE; i++) { if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES) != SPECIES_NONE) - { count++; - } } return count; @@ -205,7 +197,8 @@ static u8 *StringCopyAndFillWithSpaces(u8 *dst, const u8 *src, u16 n) return str; } -static void sub_808C25C(u16 *dest, u16 dest_left, u16 dest_top, const u16 *src, u16 src_left, u16 src_top, u16 dest_width, u16 dest_height, u16 src_width) +// Unused +static void UnusedWriteRectCpu(u16 *dest, u16 dest_left, u16 dest_top, const u16 *src, u16 src_left, u16 src_top, u16 dest_width, u16 dest_height, u16 src_width) { u16 i; @@ -231,16 +224,6 @@ static void UnusedWriteRectDma(u16 *dest, u16 dest_left, u16 dest_top, u16 width Dma3FillLarge16_(0, dest, width); } - -//------------------------------------------------------------------------------ -// SECTION: Main menu -// -// The below functions generally handle the PC main menu where the main -// options can be selected (Withdraw, Deposit, etc.), as well as exiting -// Pokémon Storage back to this menu. -//------------------------------------------------------------------------------ - - enum { STATE_LOAD, STATE_FADE_IN, @@ -263,7 +246,7 @@ static void Task_PCMainMenu(u8 taskId) { case STATE_LOAD: SetHelpContext(HELPCONTEXT_BILLS_PC); - PSS_CreatePCMenu(task->tSelectedOption, &task->tWindowId); + CreatePCMainMenu(task->tSelectedOption, &task->tWindowId); LoadStdWindowFrameGfx(); DrawDialogueFrame(0, FALSE); FillWindowPixelBuffer(0, PIXEL_FILL(1)); @@ -274,9 +257,8 @@ static void Task_PCMainMenu(u8 taskId) break; case STATE_FADE_IN: if (IsWeatherNotFadingIn()) - { task->tState++; - } + break; case STATE_HANDLE_INPUT: task->tInput = Menu_ProcessInput(); @@ -300,19 +282,19 @@ static void Task_PCMainMenu(u8 taskId) case OPTION_EXIT: ClearStdWindowAndFrame(0, TRUE); ClearStdWindowAndFrame(task->tWindowId, TRUE); - ScriptContext2_Disable(); - EnableBothScriptContexts(); + UnlockPlayerFieldControls(); + ScriptContext_Enable(); DestroyTask(taskId); break; default: - if (task->tInput == 0 && CountPartyMons() == PARTY_SIZE) + if (task->tInput == OPTION_WITHDRAW && CountPartyMons() == PARTY_SIZE) { // Can't withdraw FillWindowPixelBuffer(0, PIXEL_FILL(1)); AddTextPrinterParameterized2(0, FONT_2, gText_PartyFull, 0, NULL, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_GRAY); - task->tState = 3; + task->tState = STATE_ERROR_MSG; } - else if (task->tInput == 1 && CountPartyMons() == 1) + else if (task->tInput == OPTION_DEPOSIT && CountPartyMons() == 1) { // Can't deposit FillWindowPixelBuffer(0, PIXEL_FILL(1)); @@ -362,7 +344,7 @@ static void Task_PCMainMenu(u8 taskId) if (!gPaletteFade.active) { CleanupOverworldWindowsAndTilemaps(); - Cb2_EnterPSS(task->tInput); + EnterPokeStorage(task->tInput); DestroyTask(taskId); } break; @@ -372,9 +354,9 @@ static void Task_PCMainMenu(u8 taskId) void ShowPokemonStorageSystemPC(void) { u8 taskId = CreateTask(Task_PCMainMenu, 80); - gTasks[taskId].tState = 0; + gTasks[taskId].tState = STATE_LOAD; gTasks[taskId].tSelectedOption = 0; - ScriptContext2_Enable(); + LockPlayerFieldControls(); } static void FieldTask_ReturnToPcMenu(void) @@ -384,14 +366,14 @@ static void FieldTask_ReturnToPcMenu(void) SetVBlankCallback(NULL); taskId = CreateTask(Task_PCMainMenu, 80); - gTasks[taskId].tState = 0; + gTasks[taskId].tState = STATE_LOAD; gTasks[taskId].tSelectedOption = sPreviousBoxOption; Task_PCMainMenu(taskId); SetVBlankCallback(vblankCb); FadeInFromBlack(); } -static const struct WindowTemplate sUnknown_83CDA48 = { +static const struct WindowTemplate sWindowTemplate_MainMenu = { .bg = 0, .tilemapLeft = 1, .tilemapTop = 1, @@ -401,14 +383,13 @@ static const struct WindowTemplate sUnknown_83CDA48 = { .baseBlock = 0x001 }; -static void PSS_CreatePCMenu(u8 whichMenu, s16 *windowIdPtr) +static void CreatePCMainMenu(u8 whichMenu, s16 *windowIdPtr) { - s16 windowId; - windowId = AddWindow(&sUnknown_83CDA48); + s16 windowId = AddWindow(&sWindowTemplate_MainMenu); DrawStdWindowFrame(windowId, FALSE); - PrintTextArray(windowId, FONT_2, GetMenuCursorDimensionByFont(FONT_2, 0), 2, 16, NELEMS(sMainMenuTexts), (void *)sMainMenuTexts); - Menu_InitCursor(windowId, FONT_2, 0, 2, 16, NELEMS(sMainMenuTexts), whichMenu); + PrintTextArray(windowId, FONT_2, GetMenuCursorDimensionByFont(FONT_2, 0), 2, 16, ARRAY_COUNT(sMainMenuTexts), (void *)sMainMenuTexts); + Menu_InitCursor(windowId, FONT_2, 0, 2, 16, ARRAY_COUNT(sMainMenuTexts), whichMenu); *windowIdPtr = windowId; } @@ -439,54 +420,44 @@ void ResetPokemonStorageSystem(void) SetBoxWallpaper(boxId, boxId % (MAX_DEFAULT_WALLPAPER + 1)); } - -//------------------------------------------------------------------------------ -// SECTION: Choose Box menu -// -// The below functions handle the popup menu that allows the player to cycle -// through the boxes and select one. Used when storing Pokémon in Deposit mode -// and for the Jump feature. -//------------------------------------------------------------------------------ - - -void LoadChooseBoxMenuGfx(struct ChooseBoxMenu *a0, u16 tileTag, u16 palTag, u8 a3, bool32 loadPal) +void LoadChooseBoxMenuGfx(struct ChooseBoxMenu *menu, u16 tileTag, u16 palTag, u8 subpriority, bool32 loadPal) { struct SpritePalette palette = { - sBoxSelectionPopupPalette, palTag + sChooseBoxMenu_Pal, palTag }; struct SpriteSheet sheets[] = { - {sBoxSelectionPopupCenterTiles, 0x800, tileTag}, - {sBoxSelectionPopupSidesTiles, 0x180, tileTag + 1}, + {sChooseBoxMenuCenter_Gfx, 0x800, tileTag}, + {sChooseBoxMenuCorners_Gfx, 0x180, tileTag + 1}, {} }; - if (loadPal) + if (loadPal) // Always false LoadSpritePalette(&palette); LoadSpriteSheets(sheets); - sBoxSelectionPopupSpriteManager = a0; - a0->tileTag = tileTag; - a0->paletteTag = palTag; - a0->subpriority = a3; - a0->loadedPalette = loadPal; + sChooseBoxMenu = menu; + menu->tileTag = tileTag; + menu->paletteTag = palTag; + menu->subpriority = subpriority; + menu->loadedPalette = loadPal; } void FreeBoxSelectionPopupSpriteGfx(void) { - if (sBoxSelectionPopupSpriteManager->loadedPalette) - FreeSpritePaletteByTag(sBoxSelectionPopupSpriteManager->paletteTag); - FreeSpriteTilesByTag(sBoxSelectionPopupSpriteManager->tileTag); - FreeSpriteTilesByTag(sBoxSelectionPopupSpriteManager->tileTag + 1); + if (sChooseBoxMenu->loadedPalette) + FreeSpritePaletteByTag(sChooseBoxMenu->paletteTag); + FreeSpriteTilesByTag(sChooseBoxMenu->tileTag); + FreeSpriteTilesByTag(sChooseBoxMenu->tileTag + 1); } -void sub_808C940(u8 curBox) +void CreateChooseBoxMenuSprites(u8 curBox) { ChooseBoxMenu_CreateSprites(curBox); } -void sub_808C950(void) +void DestroyChooseBoxMenuSprites(void) { - sub_808CBA4(); + ChooseBoxMenu_DestroySprites(); } u8 HandleBoxChooseSelectionInput(void) @@ -494,60 +465,61 @@ u8 HandleBoxChooseSelectionInput(void) if (JOY_NEW(B_BUTTON)) { PlaySE(SE_SELECT); - return 201; + return BOXID_CANCELED; } if (JOY_NEW(A_BUTTON)) { PlaySE(SE_SELECT); - return sBoxSelectionPopupSpriteManager->curBox; + return sChooseBoxMenu->curBox; } if (JOY_NEW(DPAD_LEFT)) { PlaySE(SE_SELECT); - UpdateBoxNameAndCountSprite_WraparoundLeft(); + ChooseBoxMenu_MoveLeft(); } else if (JOY_NEW(DPAD_RIGHT)) { PlaySE(SE_SELECT); - UpdateBoxNameAndCountSprite_WraparoundRight(); + ChooseBoxMenu_MoveRight(); } - return 200; + return BOXID_NONE_CHOSEN; } -static const union AnimCmd gUnknown_83CDA50[] = { +static const union AnimCmd sAnim_ChooseBoxMenu_TopLeft[] = { ANIMCMD_FRAME( 0, 5), ANIMCMD_END }; -static const union AnimCmd gUnknown_83CDA58[] = { +static const union AnimCmd sAnim_ChooseBoxMenu_BottomLeft[] = { ANIMCMD_FRAME( 4, 5), ANIMCMD_END }; -static const union AnimCmd gUnknown_83CDA60[] = { +static const union AnimCmd sAnim_ChooseBoxMenu_TopRight[] = { ANIMCMD_FRAME( 6, 5), ANIMCMD_END }; -static const union AnimCmd gUnknown_83CDA68[] = { +static const union AnimCmd sAnim_ChooseBoxMenu_BottomRight[] = { ANIMCMD_FRAME(10, 5), ANIMCMD_END }; -static const union AnimCmd *const gUnknown_83CDA70[] = { - gUnknown_83CDA50, - gUnknown_83CDA58, - gUnknown_83CDA60, - gUnknown_83CDA68 +static const union AnimCmd *const sAnims_ChooseBoxMenu[] = { + sAnim_ChooseBoxMenu_TopLeft, + sAnim_ChooseBoxMenu_BottomLeft, + sAnim_ChooseBoxMenu_TopRight, + sAnim_ChooseBoxMenu_BottomRight, }; -static const union AffineAnimCmd gUnknown_83CDA80[] = { +static const union AffineAnimCmd sAffineAnim_ChooseBoxMenu[] = { AFFINEANIMCMD_FRAME(224, 224, 0, 0), AFFINEANIMCMD_END }; -static const union AffineAnimCmd *const gUnknown_83CDA90[] = { - gUnknown_83CDA80 +// Unused +static const union AffineAnimCmd *const sAffineAnims_ChooseBoxMenu[] = { + sAffineAnim_ChooseBoxMenu }; static void ChooseBoxMenu_CreateSprites(u8 curBox) @@ -562,112 +534,112 @@ static void ChooseBoxMenu_CreateSprites(u8 curBox) 0, 0, &oamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy }; { - const u8 gUnknown_83CDA94[] = _("/30"); + const u8 sText_OutOf30[] = _("/30"); - sBoxSelectionPopupSpriteManager->curBox = curBox; - template.tileTag = sBoxSelectionPopupSpriteManager->tileTag; - template.paletteTag = sBoxSelectionPopupSpriteManager->paletteTag; + sChooseBoxMenu->curBox = curBox; + template.tileTag = sChooseBoxMenu->tileTag; + template.paletteTag = sChooseBoxMenu->paletteTag; spriteId = CreateSprite(&template, 160, 96, 0); - sBoxSelectionPopupSpriteManager->menuSprite = gSprites + spriteId; + sChooseBoxMenu->menuSprite = gSprites + spriteId; - // Manual subsprites oamData.shape = SPRITE_SHAPE(8x32); oamData.size = SPRITE_SIZE(8x32); - template.tileTag = sBoxSelectionPopupSpriteManager->tileTag + 1; - template.anims = gUnknown_83CDA70; - for (i = 0; i < 4; i++) + template.tileTag = sChooseBoxMenu->tileTag + 1; + template.anims = sAnims_ChooseBoxMenu; + for (i = 0; i < ARRAY_COUNT(sChooseBoxMenu->menuCornerSprites); i++) { - u16 r5; - spriteId = CreateSprite(&template, 124, 80, sBoxSelectionPopupSpriteManager->subpriority); - sBoxSelectionPopupSpriteManager->menuSideSprites[i] = gSprites + spriteId; - r5 = 0; + // corner sprites are created in order of top left, bottom left, top right, bottom right + u16 animNum; + spriteId = CreateSprite(&template, 124, 80, sChooseBoxMenu->subpriority); // place at top left + sChooseBoxMenu->menuCornerSprites[i] = &gSprites[spriteId]; + animNum = 0; if (i & 2) { - sBoxSelectionPopupSpriteManager->menuSideSprites[i]->x = 196; - r5 = 2; + sChooseBoxMenu->menuCornerSprites[i]->x = 196; // move to bottom + animNum = 2; } if (i & 1) { - sBoxSelectionPopupSpriteManager->menuSideSprites[i]->y = 112; - sBoxSelectionPopupSpriteManager->menuSideSprites[i]->oam.size = SPRITE_SIZE(8x16); - r5++; + sChooseBoxMenu->menuCornerSprites[i]->y = 112; // move to right + sChooseBoxMenu->menuCornerSprites[i]->oam.size = SPRITE_SIZE(8x16); + animNum++; } - StartSpriteAnim(sBoxSelectionPopupSpriteManager->menuSideSprites[i], r5); + StartSpriteAnim(sChooseBoxMenu->menuCornerSprites[i], animNum); } - for (i = 0; i < 2; i++) + for (i = 0; i < ARRAY_COUNT(sChooseBoxMenu->arrowSprites); i++) { - sBoxSelectionPopupSpriteManager->arrowSprites[i] = CreateChooseBoxArrows(72 * i + 0x7c, 0x58, i, 0, sBoxSelectionPopupSpriteManager->subpriority); - if (sBoxSelectionPopupSpriteManager->arrowSprites[i]) + sChooseBoxMenu->arrowSprites[i] = CreateChooseBoxArrows(72 * i + 124, 88, i, 0, sChooseBoxMenu->subpriority); + if (sChooseBoxMenu->arrowSprites[i]) { - sBoxSelectionPopupSpriteManager->arrowSprites[i]->data[0] = (i == 0 ? -1 : 1); - sBoxSelectionPopupSpriteManager->arrowSprites[i]->callback = sub_808CD64; + sChooseBoxMenu->arrowSprites[i]->data[0] = (i == 0 ? -1 : 1); + sChooseBoxMenu->arrowSprites[i]->callback = SpriteCB_ChooseBoxArrow; } } - PrintBoxNameAndCountToSprite(); - PrintToSpriteWithTagUnk0240(gUnknown_83CDA94, 5, 3); + ChooseBoxMenu_PrintBoxNameAndCount(); + ChooseBoxMenu_PrintTextToSprite(sText_OutOf30, 5, 3); } } -static void sub_808CBA4(void) +static void ChooseBoxMenu_DestroySprites(void) { u16 i; - if (sBoxSelectionPopupSpriteManager->menuSprite) + if (sChooseBoxMenu->menuSprite) { - DestroySprite(sBoxSelectionPopupSpriteManager->menuSprite); - sBoxSelectionPopupSpriteManager->menuSprite = NULL; + DestroySprite(sChooseBoxMenu->menuSprite); + sChooseBoxMenu->menuSprite = NULL; } - for (i = 0; i < 4; i++) + for (i = 0; i < ARRAY_COUNT(sChooseBoxMenu->menuCornerSprites); i++) { - if (sBoxSelectionPopupSpriteManager->menuSideSprites[i]) + if (sChooseBoxMenu->menuCornerSprites[i]) { - DestroySprite(sBoxSelectionPopupSpriteManager->menuSideSprites[i]); - sBoxSelectionPopupSpriteManager->menuSideSprites[i] = NULL; + DestroySprite(sChooseBoxMenu->menuCornerSprites[i]); + sChooseBoxMenu->menuCornerSprites[i] = NULL; } } - for (i = 0; i < 2; i++) + for (i = 0; i < ARRAY_COUNT(sChooseBoxMenu->arrowSprites); i++) { - if (sBoxSelectionPopupSpriteManager->arrowSprites[i]) - DestroySprite(sBoxSelectionPopupSpriteManager->arrowSprites[i]); + if (sChooseBoxMenu->arrowSprites[i]) + DestroySprite(sChooseBoxMenu->arrowSprites[i]); } } -static void UpdateBoxNameAndCountSprite_WraparoundRight(void) +static void ChooseBoxMenu_MoveRight(void) { - if (++sBoxSelectionPopupSpriteManager->curBox >= TOTAL_BOXES_COUNT) - sBoxSelectionPopupSpriteManager->curBox = 0; - PrintBoxNameAndCountToSprite(); + if (++sChooseBoxMenu->curBox >= TOTAL_BOXES_COUNT) + sChooseBoxMenu->curBox = 0; + ChooseBoxMenu_PrintBoxNameAndCount(); } -static void UpdateBoxNameAndCountSprite_WraparoundLeft(void) +static void ChooseBoxMenu_MoveLeft(void) { - sBoxSelectionPopupSpriteManager->curBox = (sBoxSelectionPopupSpriteManager->curBox == 0 ? TOTAL_BOXES_COUNT - 1 : sBoxSelectionPopupSpriteManager->curBox - 1); - PrintBoxNameAndCountToSprite(); + sChooseBoxMenu->curBox = (sChooseBoxMenu->curBox == 0 ? TOTAL_BOXES_COUNT - 1 : sChooseBoxMenu->curBox - 1); + ChooseBoxMenu_PrintBoxNameAndCount(); } -static void PrintBoxNameAndCountToSprite(void) +static void ChooseBoxMenu_PrintBoxNameAndCount(void) { - u8 nPokemonInBox = CountMonsInBox(sBoxSelectionPopupSpriteManager->curBox); - u8 *boxName = StringCopy(sBoxSelectionPopupSpriteManager->strbuf, GetBoxNamePtr(sBoxSelectionPopupSpriteManager->curBox)); + u8 numMonInBox = CountMonsInBox(sChooseBoxMenu->curBox); + u8 *boxName = StringCopy(sChooseBoxMenu->strbuf, GetBoxNamePtr(sChooseBoxMenu->curBox)); - while (boxName < sBoxSelectionPopupSpriteManager->strbuf + BOX_NAME_LENGTH) + while (boxName < sChooseBoxMenu->strbuf + BOX_NAME_LENGTH) *boxName++ = CHAR_SPACE; *boxName = EOS; - PrintToSpriteWithTagUnk0240(sBoxSelectionPopupSpriteManager->strbuf, 0, 1); + ChooseBoxMenu_PrintTextToSprite(sChooseBoxMenu->strbuf, 0, 1); - ConvertIntToDecimalStringN(sBoxSelectionPopupSpriteManager->strbuf, nPokemonInBox, STR_CONV_MODE_RIGHT_ALIGN, 2); + ConvertIntToDecimalStringN(sChooseBoxMenu->strbuf, numMonInBox, STR_CONV_MODE_RIGHT_ALIGN, 2); - PrintToSpriteWithTagUnk0240(sBoxSelectionPopupSpriteManager->strbuf, 3, 3); + ChooseBoxMenu_PrintTextToSprite(sChooseBoxMenu->strbuf, 3, 3); } -static void PrintToSpriteWithTagUnk0240(const u8 *str, u16 x, u16 y) +static void ChooseBoxMenu_PrintTextToSprite(const u8 *str, u16 x, u16 y) { - u16 tileStart = GetSpriteTileStartByTag(sBoxSelectionPopupSpriteManager->tileTag); - PrintStringToBufferCopyNow(str, (void *)(OBJ_VRAM0 + tileStart * 32 + 256 * y + 32 * x), 0x100, TEXT_COLOR_RED, TEXT_DYNAMIC_COLOR_6, TEXT_DYNAMIC_COLOR_5, sBoxSelectionPopupSpriteManager->buffer); + void *dst = (void *)(OBJ_VRAM0 + GetSpriteTileStartByTag(sChooseBoxMenu->tileTag) * 32 + 256 * y + 32 * x); + PrintStringToBufferCopyNow(str, dst, 0x100, TEXT_COLOR_RED, TEXT_DYNAMIC_COLOR_6, TEXT_DYNAMIC_COLOR_5, sChooseBoxMenu->buffer); } -static void sub_808CD64(struct Sprite *sprite) +static void SpriteCB_ChooseBoxArrow(struct Sprite *sprite) { if (++sprite->data[1] > 3) { @@ -681,8 +653,8 @@ static void sub_808CD64(struct Sprite *sprite) } } -// Forward-declared rodata +// Unused, since LoadChooseBoxMenuGfx is always called with `loadPal` as false +static const u16 sChooseBoxMenu_Pal[] = INCBIN_U16("graphics/pokemon_storage/unused_choose_box_menu.gbapal"); -static const u16 sBoxSelectionPopupPalette[] = INCBIN_U16("graphics/interface/pss_unk_83CDA98.gbapal"); -static const u16 sBoxSelectionPopupCenterTiles[] = INCBIN_U16("graphics/interface/pss_unk_83CDAB8.4bpp"); -static const u16 sBoxSelectionPopupSidesTiles[] = INCBIN_U16("graphics/interface/pss_unk_83CE2B8.4bpp"); +static const u8 sChooseBoxMenuCenter_Gfx[] = INCBIN_U8("graphics/pokemon_storage/choose_box_menu_center.4bpp"); +static const u8 sChooseBoxMenuCorners_Gfx[] = INCBIN_U8("graphics/pokemon_storage/choose_box_menu_corners.4bpp"); diff --git a/src/pokemon_storage_system_misc.c b/src/pokemon_storage_system_misc.c new file mode 100644 index 000000000..4bc94532f --- /dev/null +++ b/src/pokemon_storage_system_misc.c @@ -0,0 +1,1431 @@ +#include // to declare abs +#include "global.h" +#include "gflib.h" +#include "decompress.h" +#include "item.h" +#include "item_menu_icons.h" +#include "menu.h" +#include "new_menu_helpers.h" +#include "pokemon_icon.h" +#include "pokemon_storage_system_internal.h" +#include "text_window.h" +#include "trig.h" +#include "constants/items.h" + +static EWRAM_DATA struct +{ + u8 funcId; + u8 state; + u8 fromColumn; + u8 fromRow; + u8 toColumn; + u8 toRow; + u8 cursorColumn; + u8 cursorRow; + u8 minColumn; + u8 minRow; + u8 columnsTotal; + u8 rowsTotal; + u16 bgX; + u16 bgY; + u16 bgMoveSteps; + struct BoxPokemon boxMons[IN_BOX_COUNT]; +} *sMultiMove = NULL; + +static bool8 MultiMove_Function_Start(void); +static bool8 MultiMove_Function_Single(void); +static bool8 MultiMove_Function_ChangeSelection(void); +static bool8 MultiMove_Function_GrabSelection(void); +static bool8 MultiMove_Function_MoveMons(void); +static bool8 MultiMove_Function_PlaceMons(void); +static void MultiMove_UpdateSelectedIcons(void); +static void MultiMove_SelectColumn(u8 column, u8 minRow, u8 maxRow); +static void MultiMove_SelectRow(u8 row, u8 minColumn, u8 maxColumn); +static void MultiMove_DeselectColumn(u8 arg0, u8 minRow, u8 maxRow); +static void MultiMove_DeselectRow(u8 row, u8 minColumn, u8 maxColumn); +static void MultiMove_SetIconToBg(u8 x, u8 y); +static void MultiMove_ClearIconFromBg(u8 x, u8 y); +static void MultiMove_InitBg(u16 bgX, u16 bgY, u16 duration); +static u8 MultiMove_UpdateBg(void); +static void MultiMove_GetMonsFromSelection(void); +static void MultiMove_RemoveMonsFromBox(void); +static void MultiMove_CreatePlacedMonIcons(void); +static void MultiMove_SetPlacedMonData(void); +static void MultiMove_ResetBg(void); + +static const struct WindowTemplate sWindowTemplate_MultiMove = { + .bg = 0, + .tilemapLeft = 10, + .tilemapTop = 3, + .width = 20, + .height = 18, + .paletteNum = 9, + .baseBlock = 0x00a +}; + +bool8 MultiMove_Init(void) +{ + sMultiMove = Alloc(sizeof(*sMultiMove)); + if (sMultiMove != NULL) + { + gStorage->multiMoveWindowId = AddWindow8Bit(&sWindowTemplate_MultiMove); + if (gStorage->multiMoveWindowId != WINDOW_NONE) + { + FillWindowPixelBuffer(gStorage->multiMoveWindowId, PIXEL_FILL(0)); + return TRUE; + } + } + + return FALSE; +} + +void MultiMove_Free(void) +{ + if (sMultiMove != NULL) + Free(sMultiMove); +} + +void MultiMove_SetFunction(u8 funcId) +{ + sMultiMove->funcId = funcId; + sMultiMove->state = 0; +} + +bool8 MultiMove_RunFunction(void) +{ + switch (sMultiMove->funcId) + { + case MULTIMOVE_START: + return MultiMove_Function_Start(); + case MULTIMOVE_SINGLE: + return MultiMove_Function_Single(); + case MULTIMOVE_CHANGE_SELECTION: + return MultiMove_Function_ChangeSelection(); + case MULTIMOVE_GRAB_SELECTION: + return MultiMove_Function_GrabSelection(); + case MULTIMOVE_MOVE_MONS: + return MultiMove_Function_MoveMons(); + case MULTIMOVE_PLACE_MONS: + return MultiMove_Function_PlaceMons(); + } + + return FALSE; +} + +static bool8 MultiMove_Function_Start(void) +{ + switch (sMultiMove->state) + { + case 0: + HideBg(0); + LoadMonIconPalettesAt(0x80); + sMultiMove->state++; + break; + case 1: + GetCursorBoxColumnAndRow(&sMultiMove->fromColumn, &sMultiMove->fromRow); + sMultiMove->toColumn = sMultiMove->fromColumn; + sMultiMove->toRow = sMultiMove->fromRow; + ChangeBgX(0, -1024, BG_COORD_SET); + ChangeBgY(0, -1024, BG_COORD_SET); + FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 32, 32); + FillWindowPixelBuffer8Bit(gStorage->multiMoveWindowId, PIXEL_FILL(0)); + MultiMove_SetIconToBg(sMultiMove->fromColumn, sMultiMove->fromRow); + SetBgAttribute(0, BG_ATTR_PALETTEMODE, 1); + PutWindowTilemap(gStorage->multiMoveWindowId); + CopyWindowToVram8Bit(gStorage->multiMoveWindowId, COPYWIN_FULL); + BlendPalettes(0x3F00, 8, RGB_WHITE); + StartCursorAnim(CURSOR_ANIM_OPEN); + SetGpuRegBits(REG_OFFSET_BG0CNT, BGCNT_256COLOR); + sMultiMove->state++; + break; + case 2: + if (!IsDma3ManagerBusyWithBgCopy()) + { + ShowBg(0); + return FALSE; + } + break; + } + + return TRUE; +} + +static bool8 MultiMove_Function_Single(void) +{ + switch (sMultiMove->state) + { + case 0: + HideBg(0); + sMultiMove->state++; + break; + case 1: + MultiMove_ResetBg(); + StartCursorAnim(CURSOR_ANIM_BOUNCE); + sMultiMove->state++; + break; + case 2: + if (!IsDma3ManagerBusyWithBgCopy()) + { + SetCursorPriorityTo1(); + LoadPalette(GetTextWindowPalette(3), 0xD0, 0x20); + ShowBg(0); + return FALSE; + } + break; + } + + return TRUE; +} + +static bool8 MultiMove_Function_ChangeSelection(void) +{ + switch (sMultiMove->state) + { + case 0: + if (!UpdateCursorPos()) + { + GetCursorBoxColumnAndRow(&sMultiMove->cursorColumn, &sMultiMove->cursorRow); + MultiMove_UpdateSelectedIcons(); + sMultiMove->toColumn = sMultiMove->cursorColumn; + sMultiMove->toRow = sMultiMove->cursorRow; + CopyWindowToVram8Bit(gStorage->multiMoveWindowId, COPYWIN_GFX); + sMultiMove->state++; + } + break; + case 1: + return IsDma3ManagerBusyWithBgCopy(); + } + + return TRUE; +} + +static bool8 MultiMove_Function_GrabSelection(void) +{ + u8 movingBg, movingMon; + + switch (sMultiMove->state) + { + case 0: + MultiMove_GetMonsFromSelection(); + MultiMove_RemoveMonsFromBox(); + InitMultiMonPlaceChange(FALSE); + sMultiMove->state++; + break; + case 1: + if (!DoMonPlaceChange()) + { + StartCursorAnim(CURSOR_ANIM_FIST); + MultiMove_InitBg(0, 256, 8); + InitMultiMonPlaceChange(TRUE); + sMultiMove->state++; + } + break; + case 2: + movingBg = MultiMove_UpdateBg(); + movingMon = DoMonPlaceChange(); + if (!movingBg && !movingMon) + return FALSE; + break; + } + + return TRUE; +} + +static bool8 MultiMove_Function_MoveMons(void) +{ + u8 movingCursor = UpdateCursorPos(); + u8 movingBg = MultiMove_UpdateBg(); + + if (!movingCursor && !movingBg) + return FALSE; + else + return TRUE; +} + +static bool8 MultiMove_Function_PlaceMons(void) +{ + switch (sMultiMove->state) + { + case 0: + MultiMove_SetPlacedMonData(); + MultiMove_InitBg(0, -256, 8); + InitMultiMonPlaceChange(FALSE); + sMultiMove->state++; + break; + case 1: + if (!DoMonPlaceChange() && !MultiMove_UpdateBg()) + { + MultiMove_CreatePlacedMonIcons(); + StartCursorAnim(CURSOR_ANIM_OPEN); + InitMultiMonPlaceChange(TRUE); + HideBg(0); + sMultiMove->state++; + } + break; + case 2: + if (!DoMonPlaceChange()) + { + StartCursorAnim(CURSOR_ANIM_BOUNCE); + MultiMove_ResetBg(); + sMultiMove->state++; + } + break; + case 3: + if (!IsDma3ManagerBusyWithBgCopy()) + { + LoadPalette(GetTextWindowPalette(3), 0xD0, 0x20); + SetCursorPriorityTo1(); + ShowBg(0); + return FALSE; + } + break; + } + + return TRUE; +} + +bool8 MultiMove_TryMoveGroup(u8 dir) +{ + switch (dir) + { + case 0: // up + if (sMultiMove->minRow == 0) + return FALSE; + sMultiMove->minRow--; + MultiMove_InitBg(0, 1024, 6); + break; + case 1: // down + if (sMultiMove->minRow + sMultiMove->rowsTotal >= 5) + return FALSE; + sMultiMove->minRow++; + MultiMove_InitBg(0, -1024, 6); + break; + case 2: // left + if (sMultiMove->minColumn == 0) + return FALSE; + sMultiMove->minColumn--; + MultiMove_InitBg(1024, 0, 6); + break; + case 3: // right + if (sMultiMove->minColumn + sMultiMove->columnsTotal > 5) + return FALSE; + sMultiMove->minColumn++; + MultiMove_InitBg(-1024, 0, 6); + break; + } + + return TRUE; +} + +static void MultiMove_UpdateSelectedIcons(void) +{ + s16 columnChange = (abs(sMultiMove->fromColumn - sMultiMove->cursorColumn)) - (abs(sMultiMove->fromColumn - sMultiMove->toColumn)); + s16 rowChange = (abs(sMultiMove->fromRow - sMultiMove->cursorRow)) - (abs(sMultiMove->fromRow - sMultiMove->toRow)); + + if (columnChange > 0) + MultiMove_SelectColumn(sMultiMove->cursorColumn, sMultiMove->fromRow, sMultiMove->toRow); + + if (columnChange < 0) + { + MultiMove_DeselectColumn(sMultiMove->toColumn, sMultiMove->fromRow, sMultiMove->toRow); + MultiMove_SelectColumn(sMultiMove->cursorColumn, sMultiMove->fromRow, sMultiMove->toRow); + } + + if (rowChange > 0) + MultiMove_SelectRow(sMultiMove->cursorRow, sMultiMove->fromColumn, sMultiMove->toColumn); + + if (rowChange < 0) + { + MultiMove_DeselectRow(sMultiMove->toRow, sMultiMove->fromColumn, sMultiMove->toColumn); + MultiMove_SelectRow(sMultiMove->cursorRow, sMultiMove->fromColumn, sMultiMove->toColumn); + } +} + +static void MultiMove_SelectColumn(u8 column, u8 minRow, u8 maxRow) +{ + u8 tmp = minRow; + + if (minRow > maxRow) + { + minRow = maxRow; + maxRow = tmp; + } + + while (minRow <= maxRow) + MultiMove_SetIconToBg(column, minRow++); +} + +static void MultiMove_SelectRow(u8 row, u8 minColumn, u8 maxColumn) +{ + u8 tmp = minColumn; + + if (minColumn > maxColumn) + { + minColumn = maxColumn; + maxColumn = tmp; + } + + while (minColumn <= maxColumn) + MultiMove_SetIconToBg(minColumn++, row); +} + +static void MultiMove_DeselectColumn(u8 column, u8 minRow, u8 maxRow) +{ + u8 tmp = minRow; + + if (minRow > maxRow) + { + minRow = maxRow; + maxRow = tmp; + } + + while (minRow <= maxRow) + MultiMove_ClearIconFromBg(column, minRow++); +} + +static void MultiMove_DeselectRow(u8 row, u8 minColumn, u8 maxColumn) +{ + u8 tmp = minColumn; + + if (minColumn > maxColumn) + { + minColumn = maxColumn; + maxColumn = tmp; + } + + while (minColumn <= maxColumn) + MultiMove_ClearIconFromBg(minColumn++, row); +} + +static void MultiMove_SetIconToBg(u8 x, u8 y) +{ + u8 position = x + (IN_BOX_COLUMNS * y); + u16 species = GetCurrentBoxMonData(position, MON_DATA_SPECIES2); + u32 personality = GetCurrentBoxMonData(position, MON_DATA_PERSONALITY); + + if (species != SPECIES_NONE) + { + const u8 *iconGfx = GetMonIconPtr(species, personality, 1); + u8 palNum = GetValidMonIconPalIndex(species) + 8; + BlitBitmapRectToWindow4BitTo8Bit(gStorage->multiMoveWindowId, iconGfx, 0, 0, 32, 32, 24 * x, 24 * y, 32, 32, palNum); + } +} + +static void MultiMove_ClearIconFromBg(u8 x, u8 y) +{ + u8 position = x + (IN_BOX_COLUMNS * y); + u16 species = GetCurrentBoxMonData(position, MON_DATA_SPECIES2); + + if (species != SPECIES_NONE) + FillWindowPixelRect8Bit(gStorage->multiMoveWindowId, PIXEL_FILL(0), 24 * x, 24 * y, 32, 32); +} + +static void MultiMove_InitBg(u16 bgX, u16 bgY, u16 duration) +{ + sMultiMove->bgX = bgX; + sMultiMove->bgY = bgY; + sMultiMove->bgMoveSteps = duration; +} + +static u8 MultiMove_UpdateBg(void) +{ + if (sMultiMove->bgMoveSteps != 0) + { + ChangeBgX(0, sMultiMove->bgX, BG_COORD_ADD); + ChangeBgY(0, sMultiMove->bgY, BG_COORD_ADD); + sMultiMove->bgMoveSteps--; + } + + return sMultiMove->bgMoveSteps; +} + +static void MultiMove_GetMonsFromSelection(void) +{ + s32 i, j; + s32 columnCount, rowCount; + u8 boxId; + u8 monArrayId; + + sMultiMove->minColumn = min(sMultiMove->fromColumn, sMultiMove->toColumn); + sMultiMove->minRow = min(sMultiMove->fromRow, sMultiMove->toRow); + sMultiMove->columnsTotal = abs(sMultiMove->fromColumn - sMultiMove->toColumn) + 1; + sMultiMove->rowsTotal = abs(sMultiMove->fromRow - sMultiMove->toRow) + 1; + boxId = StorageGetCurrentBox(); + monArrayId = 0; + columnCount = sMultiMove->minColumn + sMultiMove->columnsTotal; + rowCount = sMultiMove->minRow + sMultiMove->rowsTotal; + for (i = sMultiMove->minRow; i < rowCount; i++) + { + u8 boxPosition = (IN_BOX_COLUMNS * i) + sMultiMove->minColumn; + for (j = sMultiMove->minColumn; j < columnCount; j++) + { + struct BoxPokemon *boxMon = GetBoxedMonPtr(boxId, boxPosition); + // UB: possible null dereference +#ifdef UBFIX + if (boxMon != NULL) + sMultiMove->boxMons[monArrayId] = *boxMon; +#else + sMultiMove->boxMons[monArrayId] = *boxMon; +#endif + monArrayId++; + boxPosition++; + } + } +} + +static void MultiMove_RemoveMonsFromBox(void) +{ + s32 i, j; + s32 columnCount = sMultiMove->minColumn + sMultiMove->columnsTotal; + s32 rowCount = sMultiMove->minRow + sMultiMove->rowsTotal; + u8 boxId = StorageGetCurrentBox(); + + for (i = sMultiMove->minRow; i < rowCount; i++) + { + u8 boxPosition = (IN_BOX_COLUMNS * i) + sMultiMove->minColumn; + for (j = sMultiMove->minColumn; j < columnCount; j++) + { + DestroyBoxMonIconAtPosition(boxPosition); + ZeroBoxMonAt(boxId, boxPosition); + boxPosition++; + } + } +} + +static void MultiMove_CreatePlacedMonIcons(void) +{ + s32 i, j; + s32 columnCount = sMultiMove->minColumn + sMultiMove->columnsTotal; + s32 rowCount = sMultiMove->minRow + sMultiMove->rowsTotal; + u8 monArrayId = 0; + + for (i = sMultiMove->minRow; i < rowCount; i++) + { + u8 boxPosition = (IN_BOX_COLUMNS * i) + sMultiMove->minColumn; + for (j = sMultiMove->minColumn; j < columnCount; j++) + { + if (GetBoxMonData(&sMultiMove->boxMons[monArrayId], MON_DATA_SANITY_HAS_SPECIES)) + CreateBoxMonIconAtPos(boxPosition); + monArrayId++; + boxPosition++; + } + } +} + +static void MultiMove_SetPlacedMonData(void) +{ + s32 i, j; + s32 columnCount = sMultiMove->minColumn + sMultiMove->columnsTotal; + s32 rowCount = sMultiMove->minRow + sMultiMove->rowsTotal; + u8 boxId = StorageGetCurrentBox(); + u8 monArrayId = 0; + + for (i = sMultiMove->minRow; i < rowCount; i++) + { + u8 boxPosition = (IN_BOX_COLUMNS * i) + sMultiMove->minColumn; + for (j = sMultiMove->minColumn; j < columnCount; j++) + { + if (GetBoxMonData(&sMultiMove->boxMons[monArrayId], MON_DATA_SANITY_HAS_SPECIES)) + SetBoxMonAt(boxId, boxPosition, &sMultiMove->boxMons[monArrayId]); + boxPosition++; + monArrayId++; + } + } +} + +static void MultiMove_ResetBg(void) +{ + ChangeBgX(0, 0, BG_COORD_SET); + ChangeBgY(0, 0, BG_COORD_SET); + SetBgAttribute(0, BG_ATTR_PALETTEMODE, 0); + ClearGpuRegBits(REG_OFFSET_BG0CNT, BGCNT_256COLOR); + FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 32, 32); + CopyBgTilemapBufferToVram(0); +} + +u8 MultiMove_GetOriginPosition(void) +{ + return (IN_BOX_COLUMNS * sMultiMove->fromRow) + sMultiMove->fromColumn; +} + +bool8 MultiMove_CanPlaceSelection(void) +{ + s32 i, j; + s32 columnCount = sMultiMove->minColumn + sMultiMove->columnsTotal; + s32 rowCount = sMultiMove->minRow + sMultiMove->rowsTotal; + u8 monArrayId = 0; + + for (i = sMultiMove->minRow; i < rowCount; i++) + { + u8 boxPosition = (IN_BOX_COLUMNS * i) + sMultiMove->minColumn; + for (j = sMultiMove->minColumn; j < columnCount; j++) + { + if (GetBoxMonData(&sMultiMove->boxMons[monArrayId], MON_DATA_SANITY_HAS_SPECIES) + && GetCurrentBoxMonData(boxPosition, MON_DATA_SANITY_HAS_SPECIES)) + return FALSE; + + monArrayId++; + boxPosition++; + } + } + + return TRUE; +} + +// IDs for the item icon sprite callbacks +enum { + ITEM_CB_WAIT_ANIM, + ITEM_CB_TO_HAND, + ITEM_CB_TO_MON, + ITEM_CB_SWAP_TO_HAND, + ITEM_CB_SWAP_TO_MON, + ITEM_CB_UNUSED_1, + ITEM_CB_UNUSED_2, + ITEM_CB_HIDE_PARTY, +}; + +static u8 GetNewItemIconIdx(void); +static bool32 IsItemIconAtPosition(u8 cursorArea, u8 cursorPos); +static u8 GetItemIconIdxByPosition(u8 cursorArea, u8 cursorPos); +static void SetItemIconPosition(u8 id, u8 cursorArea, u8 cursorPos); +static void LoadItemIconGfx(u8 id, const u32 * tiles, const u32 * pal); +static void SetItemIconAffineAnim(u8 id, u8 affineAnimNo); +static void SetItemIconCallback(u8 id, u8 command, u8 cursorArea, u8 cursorPos); +static void SetItemIconActive(u8 id, bool8 show); +static const u32 *GetItemIconPic(u16 itemId); +static const u32 *GetItemIconPalette(u16 itemId); +static void DrawItemInfoWindow(u32 x); +static void SpriteCB_ItemIcon_WaitAnim(struct Sprite *sprite); +static void SpriteCB_ItemIcon_ToHand(struct Sprite *sprite); +static void SpriteCB_ItemIcon_SetPosToCursor(struct Sprite *sprite); +static void SpriteCB_ItemIcon_ToMon(struct Sprite *sprite); +static void SpriteCB_ItemIcon_SwapToHand(struct Sprite *sprite); +static void SpriteCB_ItemIcon_SwapToMon(struct Sprite *sprite); +static void SpriteCB_ItemIcon_HideParty(struct Sprite *sprite); + +static const u32 sItemInfoFrame_Gfx[] = INCBIN_U32("graphics/pokemon_storage/item_info_frame.4bpp"); + +static const struct OamData sOamData_ItemIcon = { + .y = 0, + .affineMode = ST_OAM_AFFINE_NORMAL, + .objMode = ST_OAM_OBJ_NORMAL, + .mosaic = FALSE, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(32x32), + .x = 0, + .matrixNum = 0, + .size = SPRITE_SIZE(32x32), + .tileNum = 0x000, + .priority = 1, + .paletteNum = 0, + .affineParam = 0 +}; + +static const union AffineAnimCmd sAffineAnim_ItemIcon_Small[] = { + AFFINEANIMCMD_FRAME(128, 128, 0, 0), + AFFINEANIMCMD_END +}; + +static const union AffineAnimCmd sAffineAnim_ItemIcon_Appear[] = { + AFFINEANIMCMD_FRAME(88, 88, 0, 0), + AFFINEANIMCMD_FRAME(5, 5, 0, 8), + AFFINEANIMCMD_END +}; + +static const union AffineAnimCmd sAffineAnim_ItemIcon_Disappear[] = { + AFFINEANIMCMD_FRAME(128, 128, 0, 0), + AFFINEANIMCMD_FRAME(-5, -5, 0, 8), + AFFINEANIMCMD_END +}; + +static const union AffineAnimCmd sAffineAnim_ItemIcon_PickUp[] = { + AFFINEANIMCMD_FRAME(128, 128, 0, 0), + AFFINEANIMCMD_FRAME(10, 10, 0, 12), + AFFINEANIMCMD_FRAME(256, 256, 0, 0), + AFFINEANIMCMD_END +}; + +static const union AffineAnimCmd sAffineAnim_ItemIcon_PutDown[] = { + AFFINEANIMCMD_FRAME(256, 256, 0, 0), + AFFINEANIMCMD_FRAME(-10, -10, 0, 12), + AFFINEANIMCMD_FRAME(128, 128, 0, 0), + AFFINEANIMCMD_END +}; + +static const union AffineAnimCmd sAffineAnim_ItemIcon_PutAway[] = { + AFFINEANIMCMD_FRAME(256, 256, 0, 0), + AFFINEANIMCMD_FRAME(-5, -5, 0, 16), + AFFINEANIMCMD_END +}; + +static const union AffineAnimCmd sAffineAnim_ItemIcon_Large[] = { + AFFINEANIMCMD_FRAME(256, 256, 0, 0), + AFFINEANIMCMD_END +}; + +static const union AffineAnimCmd *const sAffineAnims_ItemIcon[] = { + [ITEM_ANIM_NONE] = sAffineAnim_ItemIcon_Small, + [ITEM_ANIM_APPEAR] = sAffineAnim_ItemIcon_Appear, + [ITEM_ANIM_DISAPPEAR] = sAffineAnim_ItemIcon_Disappear, + [ITEM_ANIM_PICK_UP] = sAffineAnim_ItemIcon_PickUp, + [ITEM_ANIM_PUT_DOWN] = sAffineAnim_ItemIcon_PutDown, + [ITEM_ANIM_PUT_AWAY] = sAffineAnim_ItemIcon_PutAway, + [ITEM_ANIM_LARGE] = sAffineAnim_ItemIcon_Large, +}; + +static const struct SpriteTemplate sSpriteTemplate_ItemIcon = { + .tileTag = GFXTAG_ITEM_ICON_0, + .paletteTag = PALTAG_ITEM_ICON_0, + .oam = &sOamData_ItemIcon, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = sAffineAnims_ItemIcon, + .callback = SpriteCallbackDummy, +}; + +void CreateItemIconSprites(void) +{ + s32 i; + u8 spriteId; + struct CompressedSpriteSheet spriteSheet; + struct SpriteTemplate spriteTemplate; + static u32 sItemIconGfxBuffer[0x61]; + + if (gStorage->boxOption == OPTION_MOVE_ITEMS) + { + spriteSheet.data = sItemIconGfxBuffer; + spriteSheet.size = 0x200; + spriteTemplate = sSpriteTemplate_ItemIcon; + + for (i = 0; i < MAX_ITEM_ICONS; i++) + { + spriteSheet.tag = GFXTAG_ITEM_ICON_0 + i; + LoadCompressedSpriteSheet(&spriteSheet); + gStorage->itemIcons[i].tiles = GetSpriteTileStartByTag(spriteSheet.tag) * TILE_SIZE_4BPP + (void *)(OBJ_VRAM0); + gStorage->itemIcons[i].palIndex = AllocSpritePalette(PALTAG_ITEM_ICON_0 + i); + gStorage->itemIcons[i].palIndex *= 16; + gStorage->itemIcons[i].palIndex += 0x100; + spriteTemplate.tileTag = GFXTAG_ITEM_ICON_0 + i; + spriteTemplate.paletteTag = PALTAG_ITEM_ICON_0 + i; + spriteId = CreateSprite(&spriteTemplate, 0, 0, 11); + gStorage->itemIcons[i].sprite = &gSprites[spriteId]; + gStorage->itemIcons[i].sprite->invisible = TRUE; + gStorage->itemIcons[i].active = FALSE; + } + } + gStorage->movingItemId = ITEM_NONE; +} + +void TryLoadItemIconAtPos(u8 cursorArea, u8 cursorPos) +{ + u16 heldItem; + + if ((gStorage->boxOption != OPTION_MOVE_ITEMS) || IsItemIconAtPosition(cursorArea, cursorPos)) + return; + + switch (cursorArea) + { + case CURSOR_AREA_IN_BOX: + if (!GetCurrentBoxMonData(cursorPos, MON_DATA_SANITY_HAS_SPECIES)) + return; + heldItem = GetCurrentBoxMonData(cursorPos, MON_DATA_HELD_ITEM); + break; + case CURSOR_AREA_IN_PARTY: + if (!GetMonData(&gPlayerParty[cursorPos], MON_DATA_SANITY_HAS_SPECIES)) + return; + heldItem = GetMonData(&gPlayerParty[cursorPos], MON_DATA_HELD_ITEM); + break; + default: + return; + } + + if (heldItem != ITEM_NONE) + { + const u32 *tiles = GetItemIconPic(heldItem); + const u32 *pal = GetItemIconPalette(heldItem); + u8 id = GetNewItemIconIdx(); + + SetItemIconPosition(id, cursorArea, cursorPos); + LoadItemIconGfx(id, tiles, pal); + SetItemIconAffineAnim(id, ITEM_ANIM_APPEAR); + SetItemIconActive(id, TRUE); + } +} + +void TryHideItemIconAtPos(u8 cursorArea, u8 cursorPos) +{ + u8 id; + + if (gStorage->boxOption != OPTION_MOVE_ITEMS) + return; + + id = GetItemIconIdxByPosition(cursorArea, cursorPos); + SetItemIconAffineAnim(id, ITEM_ANIM_DISAPPEAR); + SetItemIconCallback(id, ITEM_CB_WAIT_ANIM, cursorArea, cursorPos); +} + +void Item_FromMonToMoving(u8 cursorArea, u8 cursorPos) +{ + u8 id; + u16 item; + + if (gStorage->boxOption != OPTION_MOVE_ITEMS) + return; + + id = GetItemIconIdxByPosition(cursorArea, cursorPos); + item = 0; + SetItemIconAffineAnim(id, ITEM_ANIM_PICK_UP); + SetItemIconCallback(id, ITEM_CB_TO_HAND, cursorArea, cursorPos); + SetItemIconPosition(id, CURSOR_AREA_IN_HAND, 0); + if (cursorArea == CURSOR_AREA_IN_BOX) + { + SetCurrentBoxMonData(cursorPos, MON_DATA_HELD_ITEM, &item); + SetBoxMonIconObjMode(cursorPos, ST_OAM_OBJ_BLEND); + } + else + { + SetMonData(&gPlayerParty[cursorPos], MON_DATA_HELD_ITEM, &item); + SetPartyMonIconObjMode(cursorPos, ST_OAM_OBJ_BLEND); + } + + gStorage->movingItemId = gStorage->displayMonItemId; +} + +void InitItemIconInCursor(u16 item) +{ + const u32 *tiles = GetItemIconPic(item); + const u32 *pal = GetItemIconPalette(item); + u8 id = GetNewItemIconIdx(); + + LoadItemIconGfx(id, tiles, pal); + SetItemIconAffineAnim(id, ITEM_ANIM_LARGE); + SetItemIconCallback(id, ITEM_CB_TO_HAND, 0, 0); + SetItemIconPosition(id, CURSOR_AREA_IN_HAND, 0); + SetItemIconActive(id, TRUE); + gStorage->movingItemId = item; +} + +void Item_SwitchMonsWithMoving(u8 cursorArea, u8 cursorPos) +{ + u8 id; + u16 item; + + if (gStorage->boxOption != OPTION_MOVE_ITEMS) + return; + + id = GetItemIconIdxByPosition(cursorArea, cursorPos); + SetItemIconAffineAnim(id, ITEM_ANIM_PICK_UP); + SetItemIconCallback(id, ITEM_CB_SWAP_TO_HAND, CURSOR_AREA_IN_HAND, 0); + if (cursorArea == CURSOR_AREA_IN_BOX) + { + item = GetCurrentBoxMonData(cursorPos, MON_DATA_HELD_ITEM); + SetCurrentBoxMonData(cursorPos, MON_DATA_HELD_ITEM, &gStorage->movingItemId); + gStorage->movingItemId = item; + } + else + { + item = GetMonData(&gPlayerParty[cursorPos], MON_DATA_HELD_ITEM); + SetMonData(&gPlayerParty[cursorPos], MON_DATA_HELD_ITEM, &gStorage->movingItemId); + gStorage->movingItemId = item; + } + + id = GetItemIconIdxByPosition(2, 0); + SetItemIconAffineAnim(id, ITEM_ANIM_PUT_DOWN); + SetItemIconCallback(id, ITEM_CB_SWAP_TO_MON, cursorArea, cursorPos); +} + +void Item_GiveMovingToMon(u8 cursorArea, u8 cursorPos) +{ + u8 id; + + if (gStorage->boxOption != OPTION_MOVE_ITEMS) + return; + + id = GetItemIconIdxByPosition(2, 0); + SetItemIconAffineAnim(id, ITEM_ANIM_PUT_DOWN); + SetItemIconCallback(id, ITEM_CB_TO_MON, cursorArea, cursorPos); + if (cursorArea == CURSOR_AREA_IN_BOX) + { + SetCurrentBoxMonData(cursorPos, MON_DATA_HELD_ITEM, &gStorage->movingItemId); + SetBoxMonIconObjMode(cursorPos, ST_OAM_OBJ_NORMAL); + } + else + { + SetMonData(&gPlayerParty[cursorPos], MON_DATA_HELD_ITEM, &gStorage->movingItemId); + SetPartyMonIconObjMode(cursorPos, ST_OAM_OBJ_NORMAL); + } +} + +void Item_TakeMons(u8 cursorArea, u8 cursorPos) +{ + u8 id; + u16 item; + + if (gStorage->boxOption != OPTION_MOVE_ITEMS) + return; + + item = ITEM_NONE; + id = GetItemIconIdxByPosition(cursorArea, cursorPos); + SetItemIconAffineAnim(id, ITEM_ANIM_DISAPPEAR); + SetItemIconCallback(id, ITEM_CB_WAIT_ANIM, cursorArea, cursorPos); + if (cursorArea == CURSOR_AREA_IN_BOX) + { + SetCurrentBoxMonData(cursorPos, MON_DATA_HELD_ITEM, &item); + SetBoxMonIconObjMode(cursorPos, ST_OAM_OBJ_BLEND); + } + else + { + SetMonData(&gPlayerParty[cursorPos], MON_DATA_HELD_ITEM, &item); + SetPartyMonIconObjMode(cursorPos, ST_OAM_OBJ_BLEND); + } +} + +void MoveItemFromCursorToBag(void) +{ + if (gStorage->boxOption == OPTION_MOVE_ITEMS) + { + u8 id = GetItemIconIdxByPosition(CURSOR_AREA_IN_HAND, 0); + SetItemIconAffineAnim(id, ITEM_ANIM_PUT_AWAY); + SetItemIconCallback(id, ITEM_CB_WAIT_ANIM, 2, 0); + } +} + +// The party menu is being closed, if the cursor is on +// a Pokémon that has a held item make sure it slides +// up along with the closing menu. +void MoveHeldItemWithPartyMenu(void) +{ + s32 i; + + if (gStorage->boxOption != OPTION_MOVE_ITEMS) + return; + + for (i = 0; i < MAX_ITEM_ICONS; i++) + { + if (gStorage->itemIcons[i].active && gStorage->itemIcons[i].cursorArea == CURSOR_AREA_IN_PARTY) + SetItemIconCallback(i, ITEM_CB_HIDE_PARTY, 2, 0); + } +} + +bool8 IsItemIconAnimActive(void) +{ + s32 i; + + for (i = 0; i < MAX_ITEM_ICONS; i++) + { + if (gStorage->itemIcons[i].active) + { + if (!gStorage->itemIcons[i].sprite->affineAnimEnded && gStorage->itemIcons[i].sprite->affineAnimBeginning) + return TRUE; + if (gStorage->itemIcons[i].sprite->callback != SpriteCallbackDummy && gStorage->itemIcons[i].sprite->callback != SpriteCB_ItemIcon_SetPosToCursor) + return TRUE; + } + } + + return FALSE; +} + +bool8 IsActiveItemMoving(void) +{ + s32 i; + + if (gStorage->boxOption == OPTION_MOVE_ITEMS) + { + for (i = 0; i < MAX_ITEM_ICONS; i++) + { + if (gStorage->itemIcons[i].active && gStorage->itemIcons[i].cursorArea == CURSOR_AREA_BOX_TITLE) + return TRUE; + } + } + + return FALSE; +} + +const u8 *GetMovingItemName(void) +{ + return ItemId_GetName(gStorage->movingItemId); +} + +u16 GetMovingItem(void) +{ + return gStorage->movingItemId; +} + +static u8 GetNewItemIconIdx(void) +{ + u8 i; + + for (i = 0; i < MAX_ITEM_ICONS; i++) + { + if (!gStorage->itemIcons[i].active) + { + gStorage->itemIcons[i].active = TRUE; + return i; + } + } + + return MAX_ITEM_ICONS; +} + +static bool32 IsItemIconAtPosition(u8 cursorArea, u8 cursorPos) +{ + s32 i; + + for (i = 0; i < MAX_ITEM_ICONS; i++) + { + if (gStorage->itemIcons[i].active + && gStorage->itemIcons[i].cursorArea == cursorArea + && gStorage->itemIcons[i].cursorPos == cursorPos) + return TRUE; + } + + return FALSE; +} + +static u8 GetItemIconIdxByPosition(u8 cursorArea, u8 cursorPos) +{ + u8 i; + + for (i = 0; i < MAX_ITEM_ICONS; i++) + { + if (gStorage->itemIcons[i].active + && gStorage->itemIcons[i].cursorArea == cursorArea + && gStorage->itemIcons[i].cursorPos == cursorPos) + return i; + } + + return MAX_ITEM_ICONS; +} + +static u8 GetItemIconIdxBySprite(struct Sprite *sprite) +{ + u8 i; + + for (i = 0; i < MAX_ITEM_ICONS; i++) + { + if (gStorage->itemIcons[i].active + && gStorage->itemIcons[i].sprite == sprite) + return i; + } + + return MAX_ITEM_ICONS; +} + +static void SetItemIconPosition(u8 id, u8 cursorArea, u8 cursorPos) +{ + u8 row, column; + + if (id >= MAX_ITEM_ICONS) + return; + + switch (cursorArea) + { + case CURSOR_AREA_IN_BOX: + row = cursorPos % IN_BOX_COLUMNS; + column = cursorPos / IN_BOX_COLUMNS; + gStorage->itemIcons[id].sprite->x = (24 * row) + 112; + gStorage->itemIcons[id].sprite->y = (24 * column) + 56; + gStorage->itemIcons[id].sprite->oam.priority = 2; + break; + case CURSOR_AREA_IN_PARTY: + if (cursorPos == 0) + { + gStorage->itemIcons[id].sprite->x = 116; + gStorage->itemIcons[id].sprite->y = 76; + } + else + { + gStorage->itemIcons[id].sprite->x = 164; + gStorage->itemIcons[id].sprite->y = 24 * (cursorPos - 1) + 28; + } + gStorage->itemIcons[id].sprite->oam.priority = 1; + break; + } + + gStorage->itemIcons[id].cursorArea = cursorArea; + gStorage->itemIcons[id].cursorPos = cursorPos; +} + +static void LoadItemIconGfx(u8 id, const u32 *itemTiles, const u32 *itemPal) +{ + s32 i; + + if (id >= MAX_ITEM_ICONS) + return; + + CpuFastFill(0, gStorage->itemIconBuffer, 0x200); + LZ77UnCompWram(itemTiles, gStorage->tileBuffer); + for (i = 0; i < 3; i++) + CpuFastCopy(gStorage->tileBuffer + (i * 0x60), gStorage->itemIconBuffer + (i * 0x80), 0x60); + + CpuFastCopy(gStorage->itemIconBuffer, gStorage->itemIcons[id].tiles, 0x200); + LZ77UnCompWram(itemPal, gStorage->itemIconBuffer); + LoadPalette(gStorage->itemIconBuffer, gStorage->itemIcons[id].palIndex, 0x20); +} + +static void SetItemIconAffineAnim(u8 id, u8 animNum) +{ + if (id >= MAX_ITEM_ICONS) + return; + + StartSpriteAffineAnim(gStorage->itemIcons[id].sprite, animNum); +} + +#define sItemIconId data[0] +#define sState data[0] +#define sCursorArea data[6] +#define sCursorPos data[7] + +static void SetItemIconCallback(u8 id, u8 callbackId, u8 cursorArea, u8 cursorPos) +{ + if (id >= MAX_ITEM_ICONS) + return; + + switch (callbackId) + { + case ITEM_CB_WAIT_ANIM: + gStorage->itemIcons[id].sprite->sItemIconId = id; + gStorage->itemIcons[id].sprite->callback = SpriteCB_ItemIcon_WaitAnim; + break; + case ITEM_CB_TO_HAND: + gStorage->itemIcons[id].sprite->sState = 0; + gStorage->itemIcons[id].sprite->callback = SpriteCB_ItemIcon_ToHand; + break; + case ITEM_CB_TO_MON: + gStorage->itemIcons[id].sprite->sState = 0; + gStorage->itemIcons[id].sprite->sCursorArea = cursorArea; + gStorage->itemIcons[id].sprite->sCursorPos = cursorPos; + gStorage->itemIcons[id].sprite->callback = SpriteCB_ItemIcon_ToMon; + break; + case ITEM_CB_SWAP_TO_HAND: + gStorage->itemIcons[id].sprite->sState = 0; + gStorage->itemIcons[id].sprite->callback = SpriteCB_ItemIcon_SwapToHand; + gStorage->itemIcons[id].sprite->sCursorArea = cursorArea; + gStorage->itemIcons[id].sprite->sCursorPos = cursorPos; + break; + case ITEM_CB_SWAP_TO_MON: + gStorage->itemIcons[id].sprite->sState = 0; + gStorage->itemIcons[id].sprite->sCursorArea = cursorArea; + gStorage->itemIcons[id].sprite->sCursorPos = cursorPos; + gStorage->itemIcons[id].sprite->callback = SpriteCB_ItemIcon_SwapToMon; + break; + case ITEM_CB_HIDE_PARTY: + // If cursor is on a Pokémon with a held item and + // the player closes the party menu, have the held + // item follow the Pokémon as the menu slides out + gStorage->itemIcons[id].sprite->callback = SpriteCB_ItemIcon_HideParty; + break; + } +} + +static void SetItemIconActive(u8 id, bool8 show) +{ + if (id >= MAX_ITEM_ICONS) + return; + + gStorage->itemIcons[id].active = show; + gStorage->itemIcons[id].sprite->invisible = (show == FALSE); +} + +static const u32 *GetItemIconPic(u16 itemId) +{ + return GetItemIconGfxPtr(itemId, 0); +} + +static const u32 *GetItemIconPalette(u16 itemId) +{ + return GetItemIconGfxPtr(itemId, 1); +} + +void PrintItemDescription(void) +{ + const u8 *description; + + if (IsActiveItemMoving()) + description = ItemId_GetDescription(gStorage->movingItemId); + else + description = ItemId_GetDescription(gStorage->displayMonItemId); + + FillWindowPixelBuffer(2, PIXEL_FILL(1)); + AddTextPrinterParameterized5(2, FONT_2, description, 2, 0, 0, NULL, 0, 0); +} + +void InitItemInfoWindow(void) +{ + gStorage->itemInfoWindowOffset = 25; + LoadBgTiles(0, sItemInfoFrame_Gfx, 0x80, 0x1A4); + DrawItemInfoWindow(0); +} + +bool8 UpdateItemInfoWindowSlideIn(void) +{ + s32 i, pos; + + if (gStorage->itemInfoWindowOffset == 0) + return FALSE; + + gStorage->itemInfoWindowOffset--; + pos = 25 - gStorage->itemInfoWindowOffset; + for (i = 0; i < pos; i++) + WriteSequenceToBgTilemapBuffer(0, GetBgAttribute(0, BG_ATTR_BASETILE) + 0x14 + gStorage->itemInfoWindowOffset + i, i, 12, 1, 8, 15, 25); + + DrawItemInfoWindow(pos); + return (gStorage->itemInfoWindowOffset != 0); +} + +bool8 UpdateItemInfoWindowSlideOut(void) +{ + s32 i, pos; + + if (gStorage->itemInfoWindowOffset == 25) + return FALSE; + + if (gStorage->itemInfoWindowOffset == 0) + FillBgTilemapBufferRect(0, 0, 25, 11, 1, 10, 17); + + gStorage->itemInfoWindowOffset++; + pos = 25 - gStorage->itemInfoWindowOffset; + for (i = 0; i < pos; i++) + WriteSequenceToBgTilemapBuffer(0, GetBgAttribute(0, BG_ATTR_BASETILE) + 0x14 + gStorage->itemInfoWindowOffset + i, i, 12, 1, 8, 15, 25); + + DrawItemInfoWindow(pos); + + FillBgTilemapBufferRect(0, 0, pos, 11, 1, 10, 17); + return (gStorage->itemInfoWindowOffset != 25); +} + +static void DrawItemInfoWindow(u32 x) +{ + if (x != 0) + { + FillBgTilemapBufferRect(0, 0x1A4, 0, 0xB, x, 1, 15); + FillBgTilemapBufferRect(0, 0x9A4, 0, 0x14, x, 1, 15); + } + FillBgTilemapBufferRect(0, 0x1A5, x, 0xC, 1, 8, 15); + FillBgTilemapBufferRect(0, 0x1A6, x, 0xB, 1, 1, 15); + FillBgTilemapBufferRect(0, 0x1A7, x, 0x14, 1, 1, 15); + ScheduleBgCopyTilemapToVram(0); +} + +static void SpriteCB_ItemIcon_WaitAnim(struct Sprite *sprite) +{ + if (sprite->affineAnimEnded) + { + SetItemIconActive(sprite->sItemIconId, FALSE); + sprite->callback = SpriteCallbackDummy; + } +} + +static void SpriteCB_ItemIcon_ToHand(struct Sprite *sprite) +{ + switch (sprite->sState) + { + case 0: + sprite->data[1] = sprite->x << 4; + sprite->data[2] = sprite->y << 4; + sprite->data[3] = 10; + sprite->data[4] = 21; + sprite->data[5] = 0; + sprite->sState++; + case 1: + sprite->data[1] -= sprite->data[3]; + sprite->data[2] -= sprite->data[4]; + sprite->x = sprite->data[1] >> 4; + sprite->y = sprite->data[2] >> 4; + if (++sprite->data[5] > 11) + sprite->callback = SpriteCB_ItemIcon_SetPosToCursor; + break; + } +} + +static void SpriteCB_ItemIcon_SetPosToCursor(struct Sprite *sprite) +{ + sprite->x = gStorage->cursorSprite->x + 4; + sprite->y = gStorage->cursorSprite->y + gStorage->cursorSprite->y2 + 8; + sprite->oam.priority = gStorage->cursorSprite->oam.priority; +} + +static void SpriteCB_ItemIcon_ToMon(struct Sprite *sprite) +{ + switch (sprite->sState) + { + case 0: + sprite->data[1] = sprite->x << 4; + sprite->data[2] = sprite->y << 4; + sprite->data[3] = 10; + sprite->data[4] = 21; + sprite->data[5] = 0; + sprite->sState++; + case 1: + sprite->data[1] += sprite->data[3]; + sprite->data[2] += sprite->data[4]; + sprite->x = sprite->data[1] >> 4; + sprite->y = sprite->data[2] >> 4; + if (++sprite->data[5] > 11) + { + SetItemIconPosition(GetItemIconIdxBySprite(sprite), sprite->sCursorArea, sprite->sCursorPos); + sprite->callback = SpriteCallbackDummy; + } + break; + } +} + +static void SpriteCB_ItemIcon_SwapToHand(struct Sprite *sprite) +{ + switch (sprite->sState) + { + case 0: + sprite->data[1] = sprite->x << 4; + sprite->data[2] = sprite->y << 4; + sprite->data[3] = 10; + sprite->data[4] = 21; + sprite->data[5] = 0; + sprite->sState++; + case 1: + sprite->data[1] -= sprite->data[3]; + sprite->data[2] -= sprite->data[4]; + sprite->x = sprite->data[1] >> 4; + sprite->y = sprite->data[2] >> 4; + sprite->x2 = gSineTable[sprite->data[5] * 8] >> 4; + if (++sprite->data[5] > 11) + { + SetItemIconPosition(GetItemIconIdxBySprite(sprite), sprite->sCursorArea, sprite->sCursorPos); + sprite->x2 = 0; + sprite->callback = SpriteCB_ItemIcon_SetPosToCursor; + } + break; + } +} + +static void SpriteCB_ItemIcon_SwapToMon(struct Sprite *sprite) +{ + switch (sprite->sState) + { + case 0: + sprite->data[1] = sprite->x << 4; + sprite->data[2] = sprite->y << 4; + sprite->data[3] = 10; + sprite->data[4] = 21; + sprite->data[5] = 0; + sprite->sState++; + case 1: + sprite->data[1] += sprite->data[3]; + sprite->data[2] += sprite->data[4]; + sprite->x = sprite->data[1] >> 4; + sprite->y = sprite->data[2] >> 4; + sprite->x2 = -(gSineTable[sprite->data[5] * 8] >> 4); + if (++sprite->data[5] > 11) + { + SetItemIconPosition(GetItemIconIdxBySprite(sprite), sprite->sCursorArea, sprite->sCursorPos); + sprite->callback = SpriteCallbackDummy; + sprite->x2 = 0; + } + break; + } +} + +static void SpriteCB_ItemIcon_HideParty(struct Sprite *sprite) +{ + sprite->y -= 8; + if (sprite->y + sprite->y2 < -16) + { + sprite->callback = SpriteCallbackDummy; + SetItemIconActive(GetItemIconIdxBySprite(sprite), FALSE); + } +} + +#undef sState +#undef sItemIconId +#undef sCursorArea +#undef sCursorPos + +// Some data transfer utility that goes functionally unused. +// It gets initialized with UnkUtil_Init, and run every vblank in Pokémon +// Storage with UnkUtil_Run, but neither of the Add functions are ever used, +// so UnkUtil_Run performs no actions. + +static EWRAM_DATA struct UnkUtil *sUnkUtil = NULL; + +static void UnkUtil_CpuRun(struct UnkUtilData *unkStruct); +static void UnkUtil_DmaRun(struct UnkUtilData *unkStruct); + +void UnkUtil_Init(struct UnkUtil *util, struct UnkUtilData *data, u32 max) +{ + sUnkUtil = util; + util->data = data; + util->max = max; + util->numActive = 0; +} + +void UnkUtil_Run(void) +{ + u16 i; + if (sUnkUtil->numActive) + { + for (i = 0; i < sUnkUtil->numActive; i++) + { + struct UnkUtilData *data = &sUnkUtil->data[i]; + data->func(data); + } + sUnkUtil->numActive = 0; + } +} + +// Unused +static bool8 UnkUtil_CpuAdd(u8 *dest, u16 dLeft, u16 dTop, const u8 *src, u16 sLeft, u16 sTop, u16 width, u16 height, u16 unkArg) +{ + struct UnkUtilData *data; + + if (sUnkUtil->numActive >= sUnkUtil->max) + return FALSE; + + data = &sUnkUtil->data[sUnkUtil->numActive++]; + data->size = width * 2; + data->dest = dest + 2 * (dTop * 32 + dLeft); + data->src = src + 2 * (sTop * unkArg + sLeft); + data->height = height; + data->unk = unkArg; + data->func = UnkUtil_CpuRun; + return TRUE; +} + +// Functionally unused +static void UnkUtil_CpuRun(struct UnkUtilData *data) +{ + u16 i; + + for (i = 0; i < data->height; i++) + { + CpuCopy16(data->src, data->dest, data->size); + data->dest += 64; + data->src += (data->unk * 2); + } +} + +// Unused +static bool8 UnkUtil_DmaAdd(void *dest, u16 dLeft, u16 dTop, u16 width, u16 height) +{ + struct UnkUtilData *data; + + if (sUnkUtil->numActive >= sUnkUtil->max) + return FALSE; + + data = &sUnkUtil->data[sUnkUtil->numActive++]; + data->size = width * 2; + data->dest = dest + ((dTop * 32) + dLeft) * 2; + data->height = height; + data->func = UnkUtil_DmaRun; + return TRUE; +} + +// Functionally unused +static void UnkUtil_DmaRun(struct UnkUtilData *data) +{ + u16 i; + + for (i = 0; i < data->height; i++) + { + Dma3FillLarge_(0, data->dest, data->size, 16); + data->dest += 64; + } +} diff --git a/src/pokemon_storage_system_tasks.c b/src/pokemon_storage_system_tasks.c new file mode 100644 index 000000000..3911cf2c1 --- /dev/null +++ b/src/pokemon_storage_system_tasks.c @@ -0,0 +1,2770 @@ +#include "global.h" +#include "gflib.h" +#include "data.h" +#include "decompress.h" +#include "dynamic_placeholder_text_util.h" +#include "event_data.h" +#include "graphics.h" +#include "help_system.h" +#include "item.h" +#include "item_menu.h" +#include "mail_data.h" +#include "menu.h" +#include "naming_screen.h" +#include "new_menu_helpers.h" +#include "pc_screen_effect.h" +#include "pokemon_icon.h" +#include "pokemon_storage_system_internal.h" +#include "pokemon_summary_screen.h" +#include "quest_log.h" +#include "strings.h" +#include "task.h" +#include "text_window.h" +#include "tilemap_util.h" +#include "trig.h" +#include "constants/items.h" +#include "constants/help_system.h" +#include "constants/songs.h" + +EWRAM_DATA struct PokemonStorageSystemData *gStorage = NULL; +static EWRAM_DATA bool8 sInPartyMenu = 0; +static EWRAM_DATA u8 sCurrentBoxOption = 0; +static EWRAM_DATA u8 sDepositBoxId = 0; +static EWRAM_DATA u8 sWhichToReshow = 0; +static EWRAM_DATA u8 sLastUsedBox = 0; +static EWRAM_DATA u16 sMovingItemId = ITEM_NONE; + +static void Task_InitPokeStorage(u8 taskId); +static void Task_ShowPokeStorage(u8 taskId); +static void Task_ReshowPokeStorage(u8 taskId); +static void Task_PokeStorageMain(u8 taskId); +static void Task_ShowPartyPokemon(u8 taskId); +static void Task_HidePartyPokemon(u8 taskId); +static void Task_OnSelectedMon(u8 taskId); +static void Task_MoveMon(u8 taskId); +static void Task_PlaceMon(u8 taskId); +static void Task_ShiftMon(u8 taskId); +static void Task_WithdrawMon(u8 taskId); +static void Task_DepositMenu(u8 taskId); +static void Task_ReleaseMon(u8 taskId); +static void Task_ShowMarkMenu(u8 taskId); +static void Task_TakeItemForMoving(u8 taskId); +static void Task_GiveMovingItemToMon(u8 taskId); +static void Task_ItemToBag(u8 taskId); +static void Task_SwitchSelectedItem(u8 taskId); +static void Task_ShowItemInfo(u8 taskId); +static void Task_HandleMovingMonFromParty(u8 taskId); +static void Task_PrintCantStoreMail(u8 taskId); +static void Task_HandleBoxOptions(u8 taskId); +static void Task_HandleWallpapers(u8 taskId); +static void Task_JumpBox(u8 taskId); +static void Task_NameBox(u8 taskId); +static void Task_ShowMonSummary(u8 taskId); +static void Task_GiveItemFromBag(u8 taskId); +static void Task_OnCloseBoxPressed(u8 taskId); +static void Task_OnBPressed(u8 taskId); +static void Task_ChangeScreen(u8 taskId); +static void GiveChosenBagItem(void); +static void FreePokeStorageData(void); +static void SetScrollingBackground(void); +static void ScrollBackground(void); +static void LoadPokeStorageMenuGfx(void); +static bool8 InitPokeStorageWindows(void); +static void LoadsMiscSpritePalette(void); +static void InitPalettesAndSprites(void); +static void CreateMarkingComboSprite(void); +static void CreateWaveformSprites(void); +static void RefreshDisplayMonData(void); +static void StartDisplayMonMosaic(void); +static void SpriteCB_DisplayMonMosaic(struct Sprite *sprite); +static bool8 IsDisplayMonMosaicActive(void); +static void CreateDisplayMonSprite(void); +static void LoadDisplayMonGfx(u16 species, u32 personality); +static void PrintDisplayMonInfo(void); +static void UpdateWaveformAnimation(void); +static void InitSupplementalTilemaps(void); +static void SetUpHidePartyMenu(void); +static bool8 HidePartyMenu(void); +static void UpdateCloseBoxButtonTilemap(bool8 normal); +static void StartFlashingCloseBoxButton(void); +static void StopFlashingCloseBoxButton(void); +static void UpdateCloseBoxButtonFlash(void); +static void SetPartySlotTilemaps(void); +static void SetPartySlotTilemap(u8 pos, bool8 isPartyMon); +static void UpdatePartySlotColors(void); +static void SetUpDoShowPartyMenu(void); +static bool8 DoShowPartyMenu(void); +static void InitPokeStorageBg0(void); +static void PrintStorageMessage(u8 textId); +static void ShowYesNoWindow(s8 cursorPos); +static void ClearBottomWindow(void); +static void AddWallpaperSetsMenu(void); +static void AddWallpapersMenu(u8 wallpaperSet); +static void InitCursorItemIcon(void); +static void SetPokeStorageQuestLogEvent(u8 species); +static void UpdateBoxToSendMons(void); + +enum { + TILEMAP_PKMN_DATA, // The "Pkmn Data" text at the top of the display + TILEMAP_PARTY_MENU, + TILEMAP_CLOSE_BUTTON, + TILEMAP_COUNT +}; + +enum +{ + SCREEN_CHANGE_EXIT_BOX, + SCREEN_CHANGE_SUMMARY_SCREEN, + SCREEN_CHANGE_NAME_BOX, + SCREEN_CHANGE_ITEM_FROM_BAG, +}; + +enum +{ + MSG_EXIT_BOX, + MSG_WHAT_YOU_DO, + MSG_PICK_A_THEME, + MSG_PICK_A_WALLPAPER, + MSG_IS_SELECTED, + MSG_JUMP_TO_WHICH_BOX, + MSG_DEPOSIT_IN_WHICH_BOX, + MSG_WAS_DEPOSITED, + MSG_BOX_IS_FULL, + MSG_RELEASE_POKE, + MSG_WAS_RELEASED, + MSG_BYE_BYE, + MSG_MARK_POKE, + MSG_LAST_POKE, + MSG_PARTY_FULL, + MSG_HOLDING_POKE, + MSG_WHICH_ONE_WILL_TAKE, + MSG_CANT_RELEASE_EGG, + MSG_CONTINUE_BOX, + MSG_CAME_BACK, + MSG_WORRIED, + MSG_SURPRISE, + MSG_PLEASE_REMOVE_MAIL, + MSG_IS_SELECTED2, + MSG_GIVE_TO_MON, + MSG_PLACED_IN_BAG, + MSG_BAG_FULL, + MSG_PUT_IN_BAG, + MSG_ITEM_IS_HELD, + MSG_CHANGED_TO_ITEM, + MSG_CANT_STORE_MAIL, +}; + +enum +{ + MSG_FMT_NONE, + MSG_FMT_MON_NAME_1, + MSG_FMT_MON_NAME_2, + MSG_FMT_MON_NAME_3, + MSG_FMT_RELEASE_MON_1, + MSG_FMT_RELEASE_MON_2, + MSG_FMT_RELEASE_MON_3, + MSG_FMT_ITEM_NAME, +}; + +static const u32 sScrollingBg_Gfx[] = INCBIN_U32("graphics/pokemon_storage/scrolling_bg.4bpp.lz"); +static const u32 sScrollingBg_Tilemap[] = INCBIN_U32("graphics/pokemon_storage/scrolling_bg.bin.lz"); + +// Unused +static const u16 sMenu_Pal[] = INCBIN_U16("graphics/pokemon_storage/menu.gbapal"); + +static const u32 sMenu_Tilemap[] = INCBIN_U32("graphics/pokemon_storage/menu.bin.lz"); +static const u16 sPkmnData_Tilemap[] = INCBIN_U16("graphics/pokemon_storage/pkmn_data.bin"); +static const u16 sScrollingBg_Pal[] = INCBIN_U16("graphics/pokemon_storage/scrolling_bg.gbapal"); +static const u16 sScrollingBgMoveItems_Pal[] = INCBIN_U16("graphics/pokemon_storage/scrolling_bg_move_items.gbapal"); +static const u16 sCloseBoxButton_Tilemap[] = INCBIN_U16("graphics/pokemon_storage/close_box_button.bin"); +static const u16 sPartySlotFilled_Tilemap[] = INCBIN_U16("graphics/pokemon_storage/party_slot_filled.bin"); +static const u16 sPartySlotEmpty_Tilemap[] = INCBIN_U16("graphics/pokemon_storage/party_slot_empty.bin"); +static const u16 sPokeStorageMisc2Pal[] = INCBIN_U16("graphics/pokemon_storage/misc2.gbapal"); +static const u16 sWaveform_Gfx[] = INCBIN_U16("graphics/pokemon_storage/waveform.4bpp"); + +// Unused +static const u16 sUnused_Pal[] = INCBIN_U16("graphics/pokemon_storage/unused.gbapal"); + +static const u16 sItemInfoFrame_Pal[] = INCBIN_U16("graphics/pokemon_storage/item_info_frame.gbapal"); + +static const struct WindowTemplate sWindowTemplates[] = { + { + .bg = 1, + .tilemapLeft = 0, + .tilemapTop = 11, + .width = 9, + .height = 7, + .paletteNum = 3, + .baseBlock = 0x0c0 + }, { + .bg = 0, + .tilemapLeft = 11, + .tilemapTop = 17, + .width = 18, + .height = 2, + .paletteNum = 13, + .baseBlock = 0x014 + }, { + .bg = 0, + .tilemapLeft = 0, + .tilemapTop = 12, + .width = 25, + .height = 8, + .paletteNum = 15, + .baseBlock = 0x014 + }, + DUMMY_WIN_TEMPLATE +}; + +static const struct BgTemplate sBgTemplates[] = { + { + .bg = 0, + .charBaseIndex = 0, + .mapBaseIndex = 29, + .screenSize = 0, + .paletteMode = 0, + .priority = 0, + .baseTile = 0x000 + }, { + .bg = 1, + .charBaseIndex = 1, + .mapBaseIndex = 30, + .screenSize = 0, + .paletteMode = 0, + .priority = 1, + .baseTile = 0x100 + }, { + .bg = 2, + .charBaseIndex = 2, + .mapBaseIndex = 27, + .screenSize = 1, + .paletteMode = 0, + .priority = 2, + .baseTile = 0x000 + }, { + .bg = 3, + .charBaseIndex = 3, + .mapBaseIndex = 31, + .screenSize = 0, + .paletteMode = 0, + .priority = 3, + .baseTile = 0x000 + } +}; + +static const struct SpritePalette sMiscSpritePalette = { + sPokeStorageMisc2Pal, PALTAG_MISC_2 +}; + +static const struct SpriteSheet sWaveformSpriteSheet = { + sWaveform_Gfx, 0x01C0, GFXTAG_WAVEFORM +}; + +static const struct OamData sOamData_DisplayMon; + +static const struct SpriteTemplate sSpriteTemplate_DisplayMon = { + .tileTag = GFXTAG_DISPLAY_MON, + .paletteTag = PALTAG_DISPLAY_MON, + .oam = &sOamData_DisplayMon, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy +}; + +static const struct StorageMessage sMessages[] = { + [MSG_EXIT_BOX] = {gText_ExitFromBox, MSG_FMT_NONE}, + [MSG_WHAT_YOU_DO] = {gText_WhatDoYouWantToDo, MSG_FMT_NONE}, + [MSG_PICK_A_THEME] = {gText_PleasePickATheme, MSG_FMT_NONE}, + [MSG_PICK_A_WALLPAPER] = {gText_PickTheWallpaper, MSG_FMT_NONE}, + [MSG_IS_SELECTED] = {gText_PkmnIsSelected, MSG_FMT_MON_NAME_1}, + [MSG_JUMP_TO_WHICH_BOX] = {gText_JumpToWhichBox, MSG_FMT_NONE}, + [MSG_DEPOSIT_IN_WHICH_BOX] = {gText_DepositInWhichBox, MSG_FMT_NONE}, + [MSG_WAS_DEPOSITED] = {gText_PkmnWasDeposited, MSG_FMT_MON_NAME_1}, + [MSG_BOX_IS_FULL] = {gText_BoxIsFull2, MSG_FMT_NONE}, + [MSG_RELEASE_POKE] = {gText_ReleaseThisPokemon, MSG_FMT_NONE}, + [MSG_WAS_RELEASED] = {gText_PkmnWasReleased, MSG_FMT_RELEASE_MON_1}, + [MSG_BYE_BYE] = {gText_ByeByePkmn, MSG_FMT_RELEASE_MON_3}, + [MSG_MARK_POKE] = {gText_MarkYourPkmn, MSG_FMT_NONE}, + [MSG_LAST_POKE] = {gText_ThatsYourLastPkmn, MSG_FMT_NONE}, + [MSG_PARTY_FULL] = {gText_YourPartysFull, MSG_FMT_NONE}, + [MSG_HOLDING_POKE] = {gText_YoureHoldingAPkmn, MSG_FMT_NONE}, + [MSG_WHICH_ONE_WILL_TAKE] = {gText_WhichOneWillYouTake, MSG_FMT_NONE}, + [MSG_CANT_RELEASE_EGG] = {gText_YouCantReleaseAnEgg, MSG_FMT_NONE}, + [MSG_CONTINUE_BOX] = {gText_ContinueBoxOperations, MSG_FMT_NONE}, + [MSG_CAME_BACK] = {gText_PkmnCameBack, MSG_FMT_MON_NAME_1}, + [MSG_WORRIED] = {gText_WasItWorriedAboutYou, MSG_FMT_NONE}, + [MSG_SURPRISE] = {gText_FourEllipsesExclamation, MSG_FMT_NONE}, + [MSG_PLEASE_REMOVE_MAIL] = {gText_PleaseRemoveTheMail, MSG_FMT_NONE}, + [MSG_IS_SELECTED2] = {gText_PkmnIsSelected, MSG_FMT_ITEM_NAME}, + [MSG_GIVE_TO_MON] = {gText_GiveToAPkmn, MSG_FMT_NONE}, + [MSG_PLACED_IN_BAG] = {gText_PlacedItemInBag, MSG_FMT_ITEM_NAME}, + [MSG_BAG_FULL] = {gText_BagIsFull2, MSG_FMT_NONE}, + [MSG_PUT_IN_BAG] = {gText_PutItemInBag, MSG_FMT_NONE}, + [MSG_ITEM_IS_HELD] = {gText_ItemIsNowHeld, MSG_FMT_ITEM_NAME}, + [MSG_CHANGED_TO_ITEM] = {gText_ChangedToNewItem, MSG_FMT_ITEM_NAME}, + [MSG_CANT_STORE_MAIL] = {gText_MailCantBeStored, MSG_FMT_NONE}, +}; + +static const struct WindowTemplate sYesNoWindowTemplate = { + .bg = 0, + .tilemapLeft = 24, + .tilemapTop = 11, + .width = 5, + .height = 4, + .paletteNum = 15, + .baseBlock = 0x05c +}; + +static const struct OamData sOamData_DisplayMon = { + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .mosaic = FALSE, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(64x64), + .x = 0, + .matrixNum = 0, + .size = SPRITE_SIZE(64x64), + .tileNum = 0x000, + .priority = 0, + .paletteNum = 0 +}; + +// Waveform + +static const struct OamData sOamData_Waveform = { + .y = 0, + .affineMode = ST_OAM_AFFINE_OFF, + .objMode = ST_OAM_OBJ_NORMAL, + .mosaic = FALSE, + .bpp = ST_OAM_4BPP, + .shape = SPRITE_SHAPE(16x8), + .x = 0, + .matrixNum = 0, + .size = SPRITE_SIZE(16x8), + .tileNum = 0x000, + .priority = 0, + .paletteNum = 0 +}; + +static const union AnimCmd sAnim_Waveform_LeftOff[] = { + ANIMCMD_FRAME(0, 5), + ANIMCMD_END +}; + +static const union AnimCmd sAnim_Waveform_LeftOn[] = { + ANIMCMD_FRAME(2, 8), + ANIMCMD_FRAME(4, 8), + ANIMCMD_FRAME(6, 8), + ANIMCMD_JUMP(0) +}; + +static const union AnimCmd sAnim_Waveform_RightOff[] = { + ANIMCMD_FRAME(8, 5), + ANIMCMD_END +}; + +static const union AnimCmd sAnim_Waveform_RightOn[] = { + ANIMCMD_FRAME(10, 8), + ANIMCMD_FRAME(4, 8), + ANIMCMD_FRAME(12, 8), + ANIMCMD_JUMP(0) +}; + +static const union AnimCmd *const sAnims_Waveform[] = { + sAnim_Waveform_LeftOff, + sAnim_Waveform_LeftOn, + sAnim_Waveform_RightOff, + sAnim_Waveform_RightOn +}; + +static const struct SpriteTemplate sSpriteTemplate_Waveform = { + .tileTag = GFXTAG_WAVEFORM, + .paletteTag = PALTAG_MISC_2, + .oam = &sOamData_Waveform, + .anims = sAnims_Waveform, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, +}; + +static void VBlankCB_PokeStorage(void) +{ + LoadOam(); + ProcessSpriteCopyRequests(); + UnkUtil_Run(); + TransferPlttBuffer(); + SetGpuReg(REG_OFFSET_BG2HOFS, gStorage->bg2_X); +} + +static void CB2_PokeStorage(void) +{ + RunTasks(); + DoScheduledBgTilemapCopiesToVram(); + ScrollBackground(); + UpdateCloseBoxButtonFlash(); + AnimateSprites(); + BuildOamBuffer(); +} + +void EnterPokeStorage(u8 boxOption) +{ + ResetTasks(); + sCurrentBoxOption = boxOption; + gStorage = Alloc(sizeof(struct PokemonStorageSystemData)); + if (gStorage == NULL) + SetMainCallback2(CB2_ExitPokeStorage); + else + { + gStorage->boxOption = boxOption; + gStorage->isReopening = FALSE; + sMovingItemId = 0; + gStorage->state = 0; + gStorage->taskId = CreateTask(Task_InitPokeStorage, 3); + SetHelpContext(HELPCONTEXT_BILLS_PC); + sLastUsedBox = StorageGetCurrentBox(); + SetMainCallback2(CB2_PokeStorage); + } +} + +void CB2_ReturnToPokeStorage(void) +{ + ResetTasks(); + gStorage = Alloc(sizeof(struct PokemonStorageSystemData)); + if (gStorage == NULL) + SetMainCallback2(CB2_ExitPokeStorage); + else + { + gStorage->boxOption = sCurrentBoxOption; + gStorage->isReopening = TRUE; + gStorage->state = 0; + gStorage->taskId = CreateTask(Task_InitPokeStorage, 3); + SetHelpContext(HELPCONTEXT_BILLS_PC); + SetMainCallback2(CB2_PokeStorage); + } +} + +static void ResetAllBgCoords(void) +{ + SetGpuReg(REG_OFFSET_BG0HOFS, 0); + SetGpuReg(REG_OFFSET_BG0VOFS, 0); + SetGpuReg(REG_OFFSET_BG1HOFS, 0); + SetGpuReg(REG_OFFSET_BG1VOFS, 0); + SetGpuReg(REG_OFFSET_BG2HOFS, 0); + SetGpuReg(REG_OFFSET_BG2VOFS, 0); + SetGpuReg(REG_OFFSET_BG3HOFS, 0); + SetGpuReg(REG_OFFSET_BG3VOFS, 0); +} + +static void ResetForPokeStorage(void) +{ + ResetPaletteFade(); + ResetSpriteData(); + FreeSpriteTileRanges(); + FreeAllSpritePalettes(); + ClearDma3Requests(); + gReservedSpriteTileCount = 0x280; + UnkUtil_Init(&gStorage->unkUtil, gStorage->unkUtilData, ARRAY_COUNT(gStorage->unkUtilData)); + gKeyRepeatStartDelay = 20; + ClearScheduledBgCopiesToVram(); + TilemapUtil_Init(TILEMAP_COUNT); + TilemapUtil_SetTilemap(TILEMAP_PKMN_DATA, 1, sPkmnData_Tilemap, 8, 4); + TilemapUtil_SetPos(TILEMAP_PKMN_DATA, 1, 0); + gStorage->closeBoxFlashing = FALSE; +} + +static void InitStartingPosData(void) +{ + ClearSavedCursorPos(); + sInPartyMenu = gStorage->boxOption == OPTION_DEPOSIT; + sDepositBoxId = 0; +} + +static void SetMonIconTransparency(void) +{ + if (gStorage->boxOption == OPTION_MOVE_ITEMS) + { + SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL); + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(7, 11)); + } + SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_BG_ALL_ON | DISPCNT_OBJ_1D_MAP); +} + +static void SetPokeStorageTask(TaskFunc newFunc) +{ + gTasks[gStorage->taskId].func = newFunc; + gStorage->state = 0; +} + +static void Task_InitPokeStorage(u8 taskId) +{ + switch (gStorage->state) + { + case 0: + SetVBlankCallback(NULL); + SetGpuReg(REG_OFFSET_DISPCNT, 0); + ResetForPokeStorage(); + if (gStorage->isReopening) + { + switch (sWhichToReshow) + { + case SCREEN_CHANGE_NAME_BOX - 1: + LoadSavedMovingMon(); + break; + case SCREEN_CHANGE_SUMMARY_SCREEN - 1: + SetSelectionAfterSummaryScreen(); + break; + case SCREEN_CHANGE_ITEM_FROM_BAG - 1: + GiveChosenBagItem(); + break; + } + } + LoadPokeStorageMenuGfx(); + LoadsMiscSpritePalette(); + break; + case 1: + if (!InitPokeStorageWindows()) + { + SetPokeStorageTask(Task_ChangeScreen); + return; + } + break; + case 2: + PutWindowTilemap(0); + ClearWindowTilemap(1); + CpuFill32(0, (void *)VRAM, 0x200); + LoadUserWindowGfx(1, 0xB, 0xE0); + break; + case 3: + ResetAllBgCoords(); + if (!gStorage->isReopening) + InitStartingPosData(); + break; + case 4: + InitMonIconFields(); + if (!gStorage->isReopening) + InitCursor(); + else + InitCursorOnReopen(); + break; + case 5: + if (!MultiMove_Init()) + { + SetPokeStorageTask(Task_ChangeScreen); + return; + } + else + { + SetScrollingBackground(); + InitPokeStorageBg0(); + } + break; + case 6: + InitPalettesAndSprites(); + break; + case 7: + InitSupplementalTilemaps(); + break; + case 8: + CreateInitBoxTask(StorageGetCurrentBox()); + break; + case 9: + if (IsInitBoxActive()) + return; + + if (gStorage->boxOption != OPTION_MOVE_ITEMS) + { + gStorage->markMenu.baseTileTag = GFXTAG_MARKING_MENU; + gStorage->markMenu.basePaletteTag = PALTAG_MARKING_MENU; + InitMonMarkingsMenu(&gStorage->markMenu); + BufferMonMarkingsMenuTiles(); + } + else + { + CreateItemIconSprites(); + InitCursorItemIcon(); + } + break; + case 10: + SetMonIconTransparency(); + if (!gStorage->isReopening) + { + BlendPalettes(PALETTES_ALL, 16, RGB_BLACK); + SetPokeStorageTask(Task_ShowPokeStorage); + } + else + { + BlendPalettes(PALETTES_ALL, 16, RGB_BLACK); + SetPokeStorageTask(Task_ReshowPokeStorage); + } + SetVBlankCallback(VBlankCB_PokeStorage); + return; + default: + return; + } + + gStorage->state++; +} + +static void Task_ShowPokeStorage(u8 taskId) +{ + switch (gStorage->state) + { + case 0: + PlaySE(SE_PC_LOGIN); + BeginPCScreenEffect_TurnOn(20, 0, 1); + gStorage->state++; + break; + case 1: + if (!IsPCScreenEffectRunning_TurnOn()) + SetPokeStorageTask(Task_PokeStorageMain); + break; + } +} + +static void Task_ReshowPokeStorage(u8 taskId) +{ + switch (gStorage->state) + { + case 0: + BeginNormalPaletteFade(PALETTES_ALL, -1, 0x10, 0, RGB_BLACK); + gStorage->state++; + break; + case 1: + if (!UpdatePaletteFade()) + SetPokeStorageTask(Task_PokeStorageMain); + break; + } +} + +static void Task_PokeStorageMain(u8 taskId) +{ + switch (gStorage->state) + { + case 0: + switch (HandleInput()) + { + case INPUT_MOVE_CURSOR: + PlaySE(SE_SELECT); + gStorage->state = 1; + break; + case INPUT_SHOW_PARTY: + if (gStorage->boxOption != OPTION_MOVE_MONS && gStorage->boxOption != OPTION_MOVE_ITEMS) + { + PrintStorageMessage(MSG_WHICH_ONE_WILL_TAKE); + gStorage->state = 3; + } + else + { + ClearSavedCursorPos(); + SetPokeStorageTask(Task_ShowPartyPokemon); + } + break; + case INPUT_HIDE_PARTY: + if (gStorage->boxOption == OPTION_MOVE_MONS) + { + if (IsMonBeingMoved() && ItemIsMail(gStorage->displayMonItemId)) + gStorage->state = 5; + else + SetPokeStorageTask(Task_HidePartyPokemon); + } + else if (gStorage->boxOption == OPTION_MOVE_ITEMS) + SetPokeStorageTask(Task_HidePartyPokemon); + break; + case INPUT_CLOSE_BOX: + SetPokeStorageTask(Task_OnCloseBoxPressed); + break; + case INPUT_PRESSED_B: + SetPokeStorageTask(Task_OnBPressed); + break; + case INPUT_BOX_OPTIONS: + PlaySE(SE_SELECT); + SetPokeStorageTask(Task_HandleBoxOptions); + break; + case INPUT_IN_MENU: + SetPokeStorageTask(Task_OnSelectedMon); + break; + case INPUT_SCROLL_RIGHT: + PlaySE(SE_SELECT); + gStorage->newCurrBoxId = StorageGetCurrentBox() + 1; + if (gStorage->newCurrBoxId >= TOTAL_BOXES_COUNT) + gStorage->newCurrBoxId = 0; + if (gStorage->boxOption != OPTION_MOVE_ITEMS) + { + SetUpScrollToBox(gStorage->newCurrBoxId); + gStorage->state = 2; + } + else + { + TryHideItemAtCursor(); + gStorage->state = 10; + } + break; + case INPUT_SCROLL_LEFT: + PlaySE(SE_SELECT); + gStorage->newCurrBoxId = StorageGetCurrentBox() - 1; + if (gStorage->newCurrBoxId < 0) + gStorage->newCurrBoxId = TOTAL_BOXES_COUNT - 1; + if (gStorage->boxOption != OPTION_MOVE_ITEMS) + { + SetUpScrollToBox(gStorage->newCurrBoxId); + gStorage->state = 2; + } + else + { + TryHideItemAtCursor(); + gStorage->state = 10; + } + break; + case INPUT_DEPOSIT: + if (!CanMovePartyMon()) + { + if (ItemIsMail(gStorage->displayMonItemId)) + gStorage->state = 5; + else + { + PlaySE(SE_SELECT); + SetPokeStorageTask(Task_DepositMenu); + } + } + else + gStorage->state = 4; + break; + case INPUT_MOVE_MON: + if (CanMovePartyMon()) + gStorage->state = 4; + + else + { + PlaySE(SE_SELECT); + SetPokeStorageTask(Task_MoveMon); + } + break; + case INPUT_SHIFT_MON: + if (!CanShiftMon()) + gStorage->state = 4; + else + { + PlaySE(SE_SELECT); + SetPokeStorageTask(Task_ShiftMon); + } + break; + case INPUT_WITHDRAW: + PlaySE(SE_SELECT); + SetPokeStorageTask(Task_WithdrawMon); + break; + case INPUT_PLACE_MON: + PlaySE(SE_SELECT); + SetPokeStorageTask(Task_PlaceMon); + break; + case INPUT_TAKE_ITEM: + PlaySE(SE_SELECT); + SetPokeStorageTask(Task_TakeItemForMoving); + break; + case INPUT_GIVE_ITEM: + PlaySE(SE_SELECT); + SetPokeStorageTask(Task_GiveMovingItemToMon); + break; + case INPUT_SWITCH_ITEMS: + PlaySE(SE_SELECT); + SetPokeStorageTask(Task_SwitchSelectedItem); + break; + case INPUT_MULTIMOVE_START: + PlaySE(SE_SELECT); + MultiMove_SetFunction(MULTIMOVE_START); + gStorage->state = 7; + break; + case INPUT_MULTIMOVE_SINGLE: + MultiMove_SetFunction(MULTIMOVE_SINGLE); + gStorage->state = 8; + break; + case INPUT_MULTIMOVE_CHANGE_SELECTION: + PlaySE(SE_SELECT); + MultiMove_SetFunction(MULTIMOVE_CHANGE_SELECTION); + gStorage->state = 9; + break; + case INPUT_MULTIMOVE_GRAB_SELECTION: + MultiMove_SetFunction(MULTIMOVE_GRAB_SELECTION); + gStorage->state = 7; + break; + case INPUT_MULTIMOVE_MOVE_MONS: + PlaySE(SE_SELECT); + MultiMove_SetFunction(MULTIMOVE_MOVE_MONS); + gStorage->state = 9; + break; + case INPUT_MULTIMOVE_PLACE_MONS: + PlaySE(SE_SELECT); + SetPokeStorageQuestLogEvent(3); + MultiMove_SetFunction(MULTIMOVE_PLACE_MONS); + gStorage->state = 7; + break; + case INPUT_MULTIMOVE_UNABLE: + PlaySE(SE_FAILURE); + break; + } + break; + case 1: + if (!UpdateCursorPos()) + { + if (IsCursorOnCloseBox()) + StartFlashingCloseBoxButton(); + else + StopFlashingCloseBoxButton(); + + if (gStorage->setMosaic) + StartDisplayMonMosaic(); + gStorage->state = 0; + } + break; + case 2: + if (!ScrollToBox()) + { + SetCurrentBox(gStorage->newCurrBoxId); + if (!sInPartyMenu && !IsMonBeingMoved()) + { + DoTrySetDisplayMonData(); + StartDisplayMonMosaic(); + } + + if (gStorage->boxOption == OPTION_MOVE_ITEMS) + { + TryShowItemAtCursor(); + gStorage->state = 11; + } + else + gStorage->state = 0; + } + break; + case 3: + if (JOY_NEW(A_BUTTON | B_BUTTON | DPAD_ANY)) + { + ClearBottomWindow(); + gStorage->state = 0; + } + break; + case 4: + PlaySE(SE_FAILURE); + PrintStorageMessage(MSG_LAST_POKE); + gStorage->state = 6; + break; + case 5: + PlaySE(SE_FAILURE); + PrintStorageMessage(MSG_PLEASE_REMOVE_MAIL); + gStorage->state = 6; + break; + case 6: + if (JOY_NEW(A_BUTTON | B_BUTTON | DPAD_ANY)) + { + ClearBottomWindow(); + SetPokeStorageTask(Task_PokeStorageMain); + } + break; + case 7: + if (!MultiMove_RunFunction()) + gStorage->state = 0; + break; + case 8: + if (!MultiMove_RunFunction()) + SetPokeStorageTask(Task_MoveMon); + break; + case 9: + if (!MultiMove_RunFunction()) + { + if (gStorage->setMosaic) + StartDisplayMonMosaic(); + gStorage->state = 0; + } + break; + case 10: + if (!IsItemIconAnimActive()) + { + SetUpScrollToBox(gStorage->newCurrBoxId); + gStorage->state = 2; + } + break; + case 11: + if (!IsItemIconAnimActive()) + gStorage->state = 0; + break; + } +} + +static void Task_ShowPartyPokemon(u8 taskId) +{ + switch (gStorage->state) + { + case 0: + SetUpDoShowPartyMenu(); + gStorage->state++; + break; + case 1: + if (!DoShowPartyMenu()) + SetPokeStorageTask(Task_PokeStorageMain); + break; + } +} + +static void Task_HidePartyPokemon(u8 taskId) +{ + switch (gStorage->state) + { + case 0: + PlaySE(SE_SELECT); + SetUpHidePartyMenu(); + gStorage->state++; + break; + case 1: + if (!HidePartyMenu()) + { + SetCursorBoxPosition(GetSavedCursorPos()); + gStorage->state++; + } + break; + case 2: + if (!UpdateCursorPos()) + { + if (gStorage->setMosaic) + StartDisplayMonMosaic(); + SetPokeStorageTask(Task_PokeStorageMain); + } + break; + } +} + +static void Task_OnSelectedMon(u8 taskId) +{ + switch (gStorage->state) + { + case 0: + if (!IsDisplayMonMosaicActive()) + { + PlaySE(SE_SELECT); + if (gStorage->boxOption != OPTION_MOVE_ITEMS) + PrintStorageMessage(MSG_IS_SELECTED); + else if (IsActiveItemMoving() || gStorage->displayMonItemId != 0) + PrintStorageMessage(MSG_IS_SELECTED2); + else + PrintStorageMessage(MSG_GIVE_TO_MON); + + AddMenu(); + gStorage->state = 1; + } + break; + case 1: + if (!IsMenuLoading()) + gStorage->state = 2; + break; + case 2: + switch (HandleMenuInput()) + { + case MENU_B_PRESSED: + case MENU_TEXT_CANCEL: + ClearBottomWindow(); + SetPokeStorageTask(Task_PokeStorageMain); + break; + case MENU_TEXT_MOVE: + if (CanMovePartyMon()) + gStorage->state = 3; + else + { + PlaySE(SE_SELECT); + ClearBottomWindow(); + SetPokeStorageTask(Task_MoveMon); + } + break; + case MENU_TEXT_PLACE: + PlaySE(SE_SELECT); + ClearBottomWindow(); + SetPokeStorageTask(Task_PlaceMon); + break; + case MENU_TEXT_SHIFT: + if (!CanShiftMon()) + gStorage->state = 3; + else + { + PlaySE(SE_SELECT); + ClearBottomWindow(); + SetPokeStorageTask(Task_ShiftMon); + } + break; + case MENU_TEXT_WITHDRAW: + PlaySE(SE_SELECT); + ClearBottomWindow(); + SetPokeStorageTask(Task_WithdrawMon); + break; + case MENU_TEXT_STORE: + if (CanMovePartyMon()) + gStorage->state = 3; + else if (ItemIsMail(gStorage->displayMonItemId)) + gStorage->state = 4; + else + { + PlaySE(SE_SELECT); + ClearBottomWindow(); + SetPokeStorageTask(Task_DepositMenu); + } + break; + case MENU_TEXT_RELEASE: + if (CanMovePartyMon()) + gStorage->state = 3; + else if (gStorage->displayMonIsEgg) + gStorage->state = 5; + else if (ItemIsMail(gStorage->displayMonItemId)) + gStorage->state = 4; + else + { + PlaySE(SE_SELECT); + SetPokeStorageTask(Task_ReleaseMon); + } + break; + case MENU_TEXT_SUMMARY: + PlaySE(SE_SELECT); + SetPokeStorageTask(Task_ShowMonSummary); + break; + case MENU_TEXT_MARK: + PlaySE(SE_SELECT); + SetPokeStorageTask(Task_ShowMarkMenu); + break; + case MENU_TEXT_TAKE: + PlaySE(SE_SELECT); + SetPokeStorageTask(Task_TakeItemForMoving); + break; + case MENU_TEXT_GIVE: + PlaySE(SE_SELECT); + SetPokeStorageTask(Task_GiveMovingItemToMon); + break; + case MENU_TEXT_BAG: + SetPokeStorageTask(Task_ItemToBag); + break; + case MENU_TEXT_SWITCH: + SetPokeStorageTask(Task_SwitchSelectedItem); + break; + case MENU_TEXT_GIVE2: + SetPokeStorageTask(Task_GiveItemFromBag); + break; + case MENU_TEXT_INFO: + SetPokeStorageTask(Task_ShowItemInfo); + break; + } + break; + case 3: + PlaySE(SE_FAILURE); + PrintStorageMessage(MSG_LAST_POKE); + gStorage->state = 6; + break; + case 5: + PlaySE(SE_FAILURE); + PrintStorageMessage(MSG_CANT_RELEASE_EGG); + gStorage->state = 6; + break; + case 4: + PlaySE(SE_FAILURE); + PrintStorageMessage(MSG_PLEASE_REMOVE_MAIL); + gStorage->state = 6; + break; + case 6: + if (JOY_NEW(A_BUTTON | B_BUTTON | DPAD_ANY)) + { + ClearBottomWindow(); + SetPokeStorageTask(Task_PokeStorageMain); + } + break; + } +} + +static void Task_MoveMon(u8 taskId) +{ + switch (gStorage->state) + { + case 0: + InitMonPlaceChange(CHANGE_GRAB); + gStorage->state++; + break; + case 1: + if (!DoMonPlaceChange()) + { + if (sInPartyMenu) + SetPokeStorageTask(Task_HandleMovingMonFromParty); + else + SetPokeStorageTask(Task_PokeStorageMain); + } + break; + } +} + +static void Task_PlaceMon(u8 taskId) +{ + switch (gStorage->state) + { + case 0: + SetPokeStorageQuestLogEvent(1); + InitMonPlaceChange(CHANGE_PLACE); + gStorage->state++; + break; + case 1: + if (!DoMonPlaceChange()) + { + if (sInPartyMenu) + SetPokeStorageTask(Task_HandleMovingMonFromParty); + else + SetPokeStorageTask(Task_PokeStorageMain); + } + break; + } +} + +static void Task_ShiftMon(u8 taskId) +{ + switch (gStorage->state) + { + case 0: + SetPokeStorageQuestLogEvent(0); + InitMonPlaceChange(CHANGE_SHIFT); + gStorage->state++; + break; + case 1: + if (!DoMonPlaceChange()) + { + StartDisplayMonMosaic(); + SetPokeStorageTask(Task_PokeStorageMain); + } + break; + } +} + +static void Task_WithdrawMon(u8 taskId) +{ + switch (gStorage->state) + { + case 0: + if (CalculatePlayerPartyCount() == PARTY_SIZE) + { + PrintStorageMessage(MSG_PARTY_FULL); + gStorage->state = 1; + } + else + { + SaveCursorPos(); + InitMonPlaceChange(CHANGE_GRAB); + gStorage->state = 2; + } + break; + case 1: + if (JOY_NEW(A_BUTTON | B_BUTTON | DPAD_ANY)) + { + ClearBottomWindow(); + SetPokeStorageTask(Task_PokeStorageMain); + } + break; + case 2: + if (!DoMonPlaceChange()) + { + SetMovingMonPriority(1); + SetUpDoShowPartyMenu(); + gStorage->state++; + } + break; + case 3: + if (!DoShowPartyMenu()) + { + SetPokeStorageQuestLogEvent(1); + InitMonPlaceChange(CHANGE_PLACE); + gStorage->state++; + } + break; + case 4: + if (!DoMonPlaceChange()) + { + UpdatePartySlotColors(); + gStorage->state++; + } + break; + case 5: + SetPokeStorageTask(Task_HidePartyPokemon); + break; + } +} + +static void Task_DepositMenu(u8 taskId) +{ + u8 boxId; + + switch (gStorage->state) + { + case 0: + PrintStorageMessage(MSG_DEPOSIT_IN_WHICH_BOX); + LoadChooseBoxMenuGfx(&gStorage->chooseBoxMenu, GFXTAG_CHOOSE_BOX_MENU_CENTER, PALTAG_MISC_1, 3, FALSE); + CreateChooseBoxMenuSprites(sDepositBoxId); + gStorage->state++; + break; + case 1: + boxId = HandleBoxChooseSelectionInput(); + switch (boxId) + { + case BOXID_NONE_CHOSEN: + break; + case BOXID_CANCELED: + ClearBottomWindow(); + DestroyChooseBoxMenuSprites(); + FreeBoxSelectionPopupSpriteGfx(); + SetPokeStorageTask(Task_PokeStorageMain); + break; + default: + if (TryStorePartyMonInBox(boxId)) + { + sDepositBoxId = boxId; + SetPokeStorageQuestLogEvent(2); + ClearBottomWindow(); + DestroyChooseBoxMenuSprites(); + FreeBoxSelectionPopupSpriteGfx(); + gStorage->state = 2; + } + else + { + PrintStorageMessage(MSG_BOX_IS_FULL); + gStorage->state = 4; + } + break; + } + break; + case 2: + CompactPartySlots(); + CompactPartySprites(); + gStorage->state++; + break; + case 3: + if (GetNumPartySpritesCompacting() == 0) + { + ResetSelectionAfterDeposit(); + StartDisplayMonMosaic(); + UpdatePartySlotColors(); + SetPokeStorageTask(Task_PokeStorageMain); + } + break; + case 4: + if (JOY_NEW(A_BUTTON | B_BUTTON | DPAD_ANY)) + { + PrintStorageMessage(MSG_DEPOSIT_IN_WHICH_BOX); + gStorage->state = 1; + } + break; + } +} + +static void Task_ReleaseMon(u8 taskId) +{ + switch (gStorage->state) + { + case 0: + PrintStorageMessage(MSG_RELEASE_POKE); + ShowYesNoWindow(1); + gStorage->state++; + // fallthrough + case 1: + switch (Menu_ProcessInputNoWrapClearOnChoose()) + { + case MENU_B_PRESSED: + case 1: + ClearBottomWindow(); + SetPokeStorageTask(Task_PokeStorageMain); + break; + case 0: + ClearBottomWindow(); + InitCanReleaseMonVars(); + InitReleaseMon(); + gStorage->state++; + break; + } + break; + case 2: + RunCanReleaseMon(); + if (!TryHideReleaseMon()) + { + while (TRUE) + { + // keep checking until status is no longer RELEASE_MON_UNDETERMINED + s8 canReleaseStatus = RunCanReleaseMon(); + if (canReleaseStatus == RELEASE_MON_ALLOWED) + { + gStorage->state++; + break; + } + else if (canReleaseStatus == RELEASE_MON_NOT_ALLOWED) + { + gStorage->state = 8; // Can't release the mon. + break; + } + } + } + break; + case 3: + ReleaseMon(); + RefreshDisplayMonData(); + PrintStorageMessage(MSG_WAS_RELEASED); + gStorage->state++; + break; + case 4: + if (JOY_NEW(A_BUTTON | B_BUTTON | DPAD_ANY)) + { + PrintStorageMessage(MSG_BYE_BYE); + gStorage->state++; + } + break; + case 5: + if (JOY_NEW(A_BUTTON | B_BUTTON | DPAD_ANY)) + { + ClearBottomWindow(); + if (sInPartyMenu) + { + CompactPartySlots(); + CompactPartySprites(); + gStorage->state++; + } + else + gStorage->state = 7; + } + break; + case 6: + if (GetNumPartySpritesCompacting() == 0) + { + DoTrySetDisplayMonData(); + StartDisplayMonMosaic(); + UpdatePartySlotColors(); + gStorage->state++; + } + break; + case 7: + SetPokeStorageTask(Task_PokeStorageMain); + break; + case 8: + // Start "can't release" sequence + PrintStorageMessage(MSG_WAS_RELEASED); + gStorage->state++; + break; + case 9: + if (JOY_NEW(A_BUTTON | B_BUTTON | DPAD_ANY)) + { + PrintStorageMessage(MSG_SURPRISE); + gStorage->state++; + } + break; + case 10: + if (JOY_NEW(A_BUTTON | B_BUTTON | DPAD_ANY)) + { + ClearBottomWindow(); + DoReleaseMonComeBackAnim(); + gStorage->state++; + } + break; + case 11: + if (!ResetReleaseMonSpritePtr()) + { + TrySetCursorFistAnim(); + PrintStorageMessage(MSG_CAME_BACK); + gStorage->state++; + } + break; + case 12: + if (JOY_NEW(A_BUTTON | B_BUTTON | DPAD_ANY)) + { + PrintStorageMessage(MSG_WORRIED); + gStorage->state++; + } + break; + case 13: + if (JOY_NEW(A_BUTTON | B_BUTTON | DPAD_ANY)) + { + ClearBottomWindow(); + SetPokeStorageTask(Task_PokeStorageMain); + } + break; + } +} + +static void Task_ShowMarkMenu(u8 taskId) +{ + switch (gStorage->state) + { + case 0: + PrintStorageMessage(MSG_MARK_POKE); + gStorage->markMenu.markings = gStorage->displayMonMarkings; + OpenMonMarkingsMenu(gStorage->displayMonMarkings, 176, 16); + gStorage->state++; + break; + case 1: + if (!HandleMonMarkingsMenuInput()) + { + FreeMonMarkingsMenu(); + ClearBottomWindow(); + SetMonMarkings(gStorage->markMenu.markings); + RefreshDisplayMonData(); + SetPokeStorageTask(Task_PokeStorageMain); + } + break; + } +} + +static void Task_TakeItemForMoving(u8 taskId) +{ + switch (gStorage->state) + { + case 0: + if (!ItemIsMail(gStorage->displayMonItemId)) + { + ClearBottomWindow(); + gStorage->state++; + } + else + SetPokeStorageTask(Task_PrintCantStoreMail); + break; + case 1: + StartCursorAnim(CURSOR_ANIM_OPEN); + Item_FromMonToMoving(sInPartyMenu ? CURSOR_AREA_IN_PARTY : CURSOR_AREA_IN_BOX, GetBoxCursorPosition()); + gStorage->state++; + break; + case 2: + if (!IsItemIconAnimActive()) + { + StartCursorAnim(CURSOR_ANIM_FIST); + ClearBottomWindow(); + DoTrySetDisplayMonData(); + PrintDisplayMonInfo(); + gStorage->state++; + } + break; + case 3: + if (!IsDma3ManagerBusyWithBgCopy()) + SetPokeStorageTask(Task_PokeStorageMain); + break; + } +} + +static void Task_GiveMovingItemToMon(u8 taskId) +{ + switch (gStorage->state) + { + case 0: + ClearBottomWindow(); + gStorage->state++; + break; + case 1: + StartCursorAnim(CURSOR_ANIM_OPEN); + Item_GiveMovingToMon(sInPartyMenu ? CURSOR_AREA_IN_PARTY : CURSOR_AREA_IN_BOX, GetBoxCursorPosition()); + gStorage->state++; + break; + case 2: + if (!IsItemIconAnimActive()) + { + StartCursorAnim(CURSOR_ANIM_BOUNCE); + DoTrySetDisplayMonData(); + PrintDisplayMonInfo(); + PrintStorageMessage(MSG_ITEM_IS_HELD); + gStorage->state++; + } + break; + case 3: + if (JOY_NEW(A_BUTTON | B_BUTTON | DPAD_ANY)) + { + ClearBottomWindow(); + gStorage->state++; + } + break; + case 4: + if (!IsDma3ManagerBusyWithBgCopy()) + SetPokeStorageTask(Task_PokeStorageMain); + break; + } +} + +static void Task_ItemToBag(u8 taskId) +{ + switch (gStorage->state) + { + case 0: + if (!AddBagItem(gStorage->displayMonItemId, 1)) + { + PlaySE(SE_FAILURE); + PrintStorageMessage(MSG_BAG_FULL); + gStorage->state = 3; + } + else + { + PlaySE(SE_SELECT); + Item_TakeMons(sInPartyMenu ? CURSOR_AREA_IN_PARTY : CURSOR_AREA_IN_BOX, GetBoxCursorPosition()); + gStorage->state = 1; + } + break; + case 1: + if (!IsItemIconAnimActive()) + { + PrintStorageMessage(MSG_PLACED_IN_BAG); + gStorage->state = 2; + } + break; + case 2: + if (JOY_NEW(A_BUTTON | B_BUTTON | DPAD_ANY)) + { + ClearBottomWindow(); + DoTrySetDisplayMonData(); + PrintDisplayMonInfo(); + gStorage->state = 4; + } + break; + case 4: + if (!IsDma3ManagerBusyWithBgCopy()) + SetPokeStorageTask(Task_PokeStorageMain); + break; + case 3: + if (JOY_NEW(A_BUTTON | B_BUTTON | DPAD_ANY)) + { + ClearBottomWindow(); + SetPokeStorageTask(Task_PokeStorageMain); + } + break; + } +} + +static void Task_SwitchSelectedItem(u8 taskId) +{ + switch (gStorage->state) + { + case 0: + if (!ItemIsMail(gStorage->displayMonItemId)) + { + ClearBottomWindow(); + gStorage->state++; + } + else + SetPokeStorageTask(Task_PrintCantStoreMail); + break; + case 1: + StartCursorAnim(CURSOR_ANIM_OPEN); + Item_SwitchMonsWithMoving(sInPartyMenu ? CURSOR_AREA_IN_PARTY : CURSOR_AREA_IN_BOX, GetBoxCursorPosition()); + gStorage->state++; + break; + case 2: + if (!IsItemIconAnimActive()) + { + StartCursorAnim(CURSOR_ANIM_FIST); + DoTrySetDisplayMonData(); + PrintDisplayMonInfo(); + PrintStorageMessage(MSG_CHANGED_TO_ITEM); + gStorage->state++; + } + break; + case 3: + if (JOY_NEW(A_BUTTON | B_BUTTON | DPAD_ANY)) + { + ClearBottomWindow(); + gStorage->state++; + } + break; + case 4: + if (!IsDma3ManagerBusyWithBgCopy()) + SetPokeStorageTask(Task_PokeStorageMain); + break; + } +} + +static void Task_ShowItemInfo(u8 taskId) +{ + switch (gStorage->state) + { + case 0: + ClearBottomWindow(); + gStorage->state++; + break; + case 1: + if (!IsDma3ManagerBusyWithBgCopy()) + { + PlaySE(SE_WIN_OPEN); + PrintItemDescription(); + InitItemInfoWindow(); + gStorage->state++; + } + break; + case 2: + if (!UpdateItemInfoWindowSlideIn()) + gStorage->state++; + break; + case 3: + if (!IsDma3ManagerBusyWithBgCopy()) + gStorage->state++; + break; + case 4: + if (JOY_NEW(A_BUTTON | B_BUTTON | DPAD_ANY)) + { + PlaySE(SE_WIN_OPEN); + gStorage->state++; + } + break; + case 5: + if (!UpdateItemInfoWindowSlideOut()) + gStorage->state++; + break; + case 6: + if (!IsDma3ManagerBusyWithBgCopy()) + SetPokeStorageTask(Task_PokeStorageMain); + break; + } +} + +static void Task_CloseBoxWhileHoldingItem(u8 taskId) +{ + switch (gStorage->state) + { + case 0: + PlaySE(SE_SELECT); + PrintStorageMessage(MSG_PUT_IN_BAG); + ShowYesNoWindow(0); + gStorage->state = 1; + break; + case 1: + switch (Menu_ProcessInputNoWrapClearOnChoose()) + { + case MENU_B_PRESSED: + case 1: + ClearBottomWindow(); + SetPokeStorageTask(Task_PokeStorageMain); + break; + case 0: + if (AddBagItem(gStorage->movingItemId, 1) == TRUE) + { + ClearBottomWindow(); + gStorage->state = 3; + } + else + { + PrintStorageMessage(MSG_BAG_FULL); + gStorage->state = 2; + } + break; + } + break; + case 2: + if (JOY_NEW(A_BUTTON | B_BUTTON | DPAD_ANY)) + { + ClearBottomWindow(); + gStorage->state = 5; + } + break; + case 3: + MoveItemFromCursorToBag(); + gStorage->state = 4; + break; + case 4: + if (!IsItemIconAnimActive()) + { + StartCursorAnim(CURSOR_ANIM_BOUNCE); + SetPokeStorageTask(Task_PokeStorageMain); + } + break; + case 5: + if (!IsDma3ManagerBusyWithBgCopy()) + SetPokeStorageTask(Task_PokeStorageMain); + break; + } +} + +static void Task_HandleMovingMonFromParty(u8 taskId) +{ + switch (gStorage->state) + { + case 0: + CompactPartySlots(); + CompactPartySprites(); + gStorage->state++; + break; + case 1: + if (GetNumPartySpritesCompacting() == 0) + { + UpdatePartySlotColors(); + SetPokeStorageTask(Task_PokeStorageMain); + } + break; + } +} + +static void Task_PrintCantStoreMail(u8 taskId) +{ + switch (gStorage->state) + { + case 0: + PrintStorageMessage(MSG_CANT_STORE_MAIL); + gStorage->state++; + break; + case 1: + if (!IsDma3ManagerBusyWithBgCopy()) + gStorage->state++; + break; + case 2: + if (JOY_NEW(A_BUTTON | B_BUTTON | DPAD_ANY)) + { + ClearBottomWindow(); + gStorage->state++; + } + break; + case 3: + if (!IsDma3ManagerBusyWithBgCopy()) + SetPokeStorageTask(Task_PokeStorageMain); + break; + } +} + +static void Task_HandleBoxOptions(u8 taskId) +{ + switch (gStorage->state) + { + case 0: + PrintStorageMessage(MSG_WHAT_YOU_DO); + AddMenu(); + gStorage->state++; + break; + case 1: + if (IsMenuLoading()) + return; + gStorage->state++; + case 2: + switch (HandleMenuInput()) + { + case MENU_B_PRESSED: + case MENU_TEXT_CANCEL: + AnimateBoxScrollArrows(TRUE); + ClearBottomWindow(); + SetPokeStorageTask(Task_PokeStorageMain); + break; + case MENU_TEXT_NAME: + PlaySE(SE_SELECT); + SetPokeStorageTask(Task_NameBox); + break; + case MENU_TEXT_WALLPAPER: + PlaySE(SE_SELECT); + ClearBottomWindow(); + SetPokeStorageTask(Task_HandleWallpapers); + break; + case MENU_TEXT_JUMP: + PlaySE(SE_SELECT); + ClearBottomWindow(); + SetPokeStorageTask(Task_JumpBox); + break; + } + break; + } +} + +static void Task_HandleWallpapers(u8 taskId) +{ + switch (gStorage->state) + { + case 0: + AddWallpaperSetsMenu(); + PrintStorageMessage(MSG_PICK_A_THEME); + gStorage->state++; + break; + case 1: + if (!IsMenuLoading()) + gStorage->state++; + break; + case 2: + gStorage->wallpaperSetId = HandleMenuInput(); + switch (gStorage->wallpaperSetId) + { + case MENU_B_PRESSED: + AnimateBoxScrollArrows(TRUE); + ClearBottomWindow(); + SetPokeStorageTask(Task_PokeStorageMain); + break; + case MENU_TEXT_SCENERY_1: + case MENU_TEXT_SCENERY_2: + case MENU_TEXT_SCENERY_3: + case MENU_TEXT_ETCETERA: + PlaySE(SE_SELECT); + RemoveMenu(); + gStorage->wallpaperSetId -= MENU_TEXT_SCENERY_1; + gStorage->state++; + break; + } + break; + case 3: + if (!IsDma3ManagerBusyWithBgCopy()) + { + AddWallpapersMenu(gStorage->wallpaperSetId); + PrintStorageMessage(MSG_PICK_A_WALLPAPER); + gStorage->state++; + } + break; + case 4: + gStorage->wallpaperId = HandleMenuInput(); + switch (gStorage->wallpaperId) + { + case MENU_NOTHING_CHOSEN: + break; + case MENU_B_PRESSED: + ClearBottomWindow(); + gStorage->state = 0; + break; + default: + PlaySE(SE_SELECT); + ClearBottomWindow(); + gStorage->wallpaperId -= MENU_TEXT_FOREST; + SetWallpaperForCurrentBox(gStorage->wallpaperId); + gStorage->state++; + break; + } + break; + case 5: + if (!DoWallpaperGfxChange()) + { + AnimateBoxScrollArrows(TRUE); + SetPokeStorageTask(Task_PokeStorageMain); + } + break; + } +} + +static void Task_JumpBox(u8 taskId) +{ + switch (gStorage->state) + { + case 0: + PrintStorageMessage(MSG_JUMP_TO_WHICH_BOX); + LoadChooseBoxMenuGfx(&gStorage->chooseBoxMenu, GFXTAG_CHOOSE_BOX_MENU_CENTER, PALTAG_MISC_1, 3, FALSE); + CreateChooseBoxMenuSprites(StorageGetCurrentBox()); + gStorage->state++; + break; + case 1: + gStorage->newCurrBoxId = HandleBoxChooseSelectionInput(); + switch (gStorage->newCurrBoxId) + { + case BOXID_NONE_CHOSEN: + break; + default: + ClearBottomWindow(); + DestroyChooseBoxMenuSprites(); + FreeBoxSelectionPopupSpriteGfx(); + if (gStorage->newCurrBoxId == BOXID_CANCELED || gStorage->newCurrBoxId == StorageGetCurrentBox()) + { + AnimateBoxScrollArrows(TRUE); + SetPokeStorageTask(Task_PokeStorageMain); + } + else + gStorage->state++; + break; + } + break; + case 2: + SetUpScrollToBox(gStorage->newCurrBoxId); + gStorage->state++; + break; + case 3: + if (!ScrollToBox()) + { + SetCurrentBox(gStorage->newCurrBoxId); + SetPokeStorageTask(Task_PokeStorageMain); + } + break; + } +} + +static void Task_NameBox(u8 taskId) +{ + switch (gStorage->state) + { + case 0: + SaveMovingMon(); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); + gStorage->state++; + break; + case 1: + if (!UpdatePaletteFade()) + { + sWhichToReshow = SCREEN_CHANGE_NAME_BOX - 1; + gStorage->screenChangeType = SCREEN_CHANGE_NAME_BOX; + SetPokeStorageTask(Task_ChangeScreen); + } + break; + } +} + +static void Task_ShowMonSummary(u8 taskId) +{ + switch (gStorage->state) + { + case 0: + InitSummaryScreenData(); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); + gStorage->state++; + break; + case 1: + if (!UpdatePaletteFade()) + { + sWhichToReshow = SCREEN_CHANGE_SUMMARY_SCREEN - 1; + gStorage->screenChangeType = SCREEN_CHANGE_SUMMARY_SCREEN; + SetPokeStorageTask(Task_ChangeScreen); + } + break; + } +} + +static void Task_GiveItemFromBag(u8 taskId) +{ + switch (gStorage->state) + { + case 0: + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); + gStorage->state++; + break; + case 1: + if (!UpdatePaletteFade()) + { + sWhichToReshow = SCREEN_CHANGE_ITEM_FROM_BAG - 1; + gStorage->screenChangeType = SCREEN_CHANGE_ITEM_FROM_BAG; + SetPokeStorageTask(Task_ChangeScreen); + } + break; + } +} + +static void Task_OnCloseBoxPressed(u8 taskId) +{ + switch (gStorage->state) + { + case 0: + if (IsMonBeingMoved()) + { + PlaySE(SE_FAILURE); + PrintStorageMessage(MSG_HOLDING_POKE); + gStorage->state = 1; + } + else if (IsActiveItemMoving()) + SetPokeStorageTask(Task_CloseBoxWhileHoldingItem); + else + { + PlaySE(SE_SELECT); + PrintStorageMessage(MSG_EXIT_BOX); + ShowYesNoWindow(0); + gStorage->state = 2; + } + break; + case 1: + if (JOY_NEW(A_BUTTON | B_BUTTON | DPAD_ANY)) + { + ClearBottomWindow(); + SetPokeStorageTask(Task_PokeStorageMain); + } + break; + case 2: + switch (Menu_ProcessInputNoWrapClearOnChoose()) + { + case MENU_B_PRESSED: + case 1: + ClearBottomWindow(); + SetPokeStorageTask(Task_PokeStorageMain); + break; + case 0: + PlaySE(SE_PC_OFF); + ClearBottomWindow(); + gStorage->state++; + break; + } + break; + case 3: + BeginPCScreenEffect_TurnOff(20, 0, 1); + gStorage->state++; + break; + case 4: + if (!IsPCScreenEffectRunning_TurnOff()) + { + UpdateBoxToSendMons(); + gPlayerPartyCount = CalculatePlayerPartyCount(); + gStorage->screenChangeType = SCREEN_CHANGE_EXIT_BOX; + SetPokeStorageTask(Task_ChangeScreen); + } + break; + } +} + +static void Task_OnBPressed(u8 taskId) +{ + switch (gStorage->state) + { + case 0: + if (IsMonBeingMoved()) + { + PlaySE(SE_FAILURE); + PrintStorageMessage(MSG_HOLDING_POKE); + gStorage->state = 1; + } + else if (IsActiveItemMoving()) + SetPokeStorageTask(Task_CloseBoxWhileHoldingItem); + else + { + PlaySE(SE_SELECT); + PrintStorageMessage(MSG_CONTINUE_BOX); + ShowYesNoWindow(0); + gStorage->state = 2; + } + break; + case 1: + if (JOY_NEW(A_BUTTON | B_BUTTON | DPAD_ANY)) + { + ClearBottomWindow(); + SetPokeStorageTask(Task_PokeStorageMain); + } + break; + case 2: + switch (Menu_ProcessInputNoWrapClearOnChoose()) + { + case 0: + ClearBottomWindow(); + SetPokeStorageTask(Task_PokeStorageMain); + break; + case 1: + case MENU_B_PRESSED: + PlaySE(SE_PC_OFF); + ClearBottomWindow(); + gStorage->state++; + break; + } + break; + case 3: + BeginPCScreenEffect_TurnOff(20, 0, 0); + gStorage->state++; + break; + case 4: + if (!IsPCScreenEffectRunning_TurnOff()) + { + UpdateBoxToSendMons(); + gPlayerPartyCount = CalculatePlayerPartyCount(); + gStorage->screenChangeType = SCREEN_CHANGE_EXIT_BOX; + SetPokeStorageTask(Task_ChangeScreen); + } + break; + } +} + +static void Task_ChangeScreen(u8 taskId) +{ + struct Pokemon *party; + u8 mode, cursorPos, lastIndex; + u8 screenChangeType = gStorage->screenChangeType; + + if (gStorage->boxOption == OPTION_MOVE_ITEMS && IsActiveItemMoving() == TRUE) + sMovingItemId = GetMovingItem(); + else + sMovingItemId = ITEM_NONE; + + switch (screenChangeType) + { + case SCREEN_CHANGE_EXIT_BOX: + default: + FreePokeStorageData(); + SetMainCallback2(CB2_ExitPokeStorage); + break; + case SCREEN_CHANGE_SUMMARY_SCREEN: + party = gStorage->summaryMonPtr.mon; + cursorPos = gStorage->summaryCursorPos; + lastIndex = gStorage->summaryLastIndex; + mode = gStorage->summaryScreenMode; + FreePokeStorageData(); + ShowPokemonSummaryScreen(party, cursorPos, lastIndex, CB2_ReturnToPokeStorage, mode); + break; + case SCREEN_CHANGE_NAME_BOX: + FreePokeStorageData(); + DoNamingScreen(NAMING_SCREEN_BOX, GetBoxNamePtr(StorageGetCurrentBox()), 0, 0, 0, CB2_ReturnToPokeStorage); + break; + case SCREEN_CHANGE_ITEM_FROM_BAG: + FreePokeStorageData(); + GoToBagMenu(ITEMMENULOCATION_PCBOX, OPEN_BAG_ITEMS, CB2_ReturnToPokeStorage); + break; + } + + DestroyTask(taskId); +} + +static void GiveChosenBagItem(void) +{ + u16 item = gSpecialVar_ItemId; + + if (item != ITEM_NONE) + { + u8 id = GetBoxCursorPosition(); + + if (sInPartyMenu) + SetMonData(&gPlayerParty[id], MON_DATA_HELD_ITEM, &item); + else + SetCurrentBoxMonData(id, MON_DATA_HELD_ITEM, &item); + + RemoveBagItem(item, 1); + } +} + +static void FreePokeStorageData(void) +{ + TilemapUtil_Free(); + MultiMove_Free(); + FREE_AND_SET_NULL(gStorage); + FreeAllWindowBuffers(); +} + +static void SetScrollingBackground(void) +{ + SetGpuReg(REG_OFFSET_BG3CNT, BGCNT_PRIORITY(3) | BGCNT_CHARBASE(3) | BGCNT_16COLOR | BGCNT_SCREENBASE(31)); + DecompressAndLoadBgGfxUsingHeap(3, sScrollingBg_Gfx, 0, 0, 0); + LZ77UnCompVram(sScrollingBg_Tilemap, (void *)BG_SCREEN_ADDR(31)); +} + +static void ScrollBackground(void) +{ + ChangeBgX(3, 128, 1); + ChangeBgY(3, 128, 2); +} + +static void LoadPokeStorageMenuGfx(void) +{ + InitBgsFromTemplates(0, sBgTemplates, ARRAY_COUNT(sBgTemplates)); + DecompressAndLoadBgGfxUsingHeap(1, gPokeStorageMenu_Gfx, 0, 0, 0); + LZ77UnCompWram(sMenu_Tilemap, gStorage->menuTilemapBuffer); + SetBgTilemapBuffer(1, gStorage->menuTilemapBuffer); + ShowBg(1); + ScheduleBgCopyTilemapToVram(1); +} + +static bool8 InitPokeStorageWindows(void) +{ + if (!InitWindows(sWindowTemplates)) + return FALSE; + + DeactivateAllTextPrinters(); + return TRUE; +} + +static void LoadsMiscSpritePalette(void) +{ + LoadSpritePalette(&sMiscSpritePalette); +} + +static void InitPalettesAndSprites(void) +{ + LoadPalette(gPokeStorageInterface_Pal, 0, 0x20); + LoadPalette(gPokeStorageInterface_NoDisplayMon_Pal, 0x20, 0x20); + LoadPalette(sItemInfoFrame_Pal, 0xF0, 0x20); + if (gStorage->boxOption != OPTION_MOVE_ITEMS) + LoadPalette(sScrollingBg_Pal, 0x30, sizeof(sScrollingBg_Pal)); + else + LoadPalette(sScrollingBgMoveItems_Pal, 0x30, sizeof(sScrollingBgMoveItems_Pal)); + + SetGpuReg(REG_OFFSET_BG1CNT, BGCNT_PRIORITY(1) | BGCNT_CHARBASE(1) | BGCNT_16COLOR | BGCNT_SCREENBASE(30)); + CreateDisplayMonSprite(); + CreateMarkingComboSprite(); + CreateWaveformSprites(); + RefreshDisplayMonData(); +} + +static void CreateMarkingComboSprite(void) +{ + gStorage->markingComboSprite = CreateMonMarkingComboSprite(GFXTAG_MARKING_COMBO, PALTAG_MARKING_COMBO, NULL); + gStorage->markingComboSprite->oam.priority = 1; + gStorage->markingComboSprite->subpriority = 1; + gStorage->markingComboSprite->x = 40; + gStorage->markingComboSprite->y = 150; + gStorage->markingComboTilesPtr = (void *)OBJ_VRAM0 + 32 * GetSpriteTileStartByTag(GFXTAG_MARKING_COMBO); +} + +static void CreateWaveformSprites(void) +{ + u16 i; + struct SpriteSheet sheet = sWaveformSpriteSheet; + + LoadSpriteSheet(&sheet); + for (i = 0; i < 2; i++) + { + u8 spriteId = CreateSprite(&sSpriteTemplate_Waveform, i * 63 + 8, 9, 2); + gStorage->waveformSprites[i] = &gSprites[spriteId]; + } +} + +static void RefreshDisplayMonData(void) +{ + LoadDisplayMonGfx(gStorage->displayMonSpecies, gStorage->displayMonPersonality); + PrintDisplayMonInfo(); + UpdateWaveformAnimation(); + ScheduleBgCopyTilemapToVram(0); +} + +static void StartDisplayMonMosaic(void) +{ + RefreshDisplayMonData(); + if (gStorage->displayMonSprite) + { + gStorage->displayMonSprite->oam.mosaic = TRUE; + gStorage->displayMonSprite->data[0] = 10; + gStorage->displayMonSprite->data[1] = 1; + gStorage->displayMonSprite->callback = SpriteCB_DisplayMonMosaic; + SetGpuReg(REG_OFFSET_MOSAIC, (gStorage->displayMonSprite->data[0] << 12) | (gStorage->displayMonSprite->data[0] << 8)); + } +} + +static u8 IsDisplayMonMosaicActive(void) +{ + return gStorage->displayMonSprite->oam.mosaic; +} + +static void SpriteCB_DisplayMonMosaic(struct Sprite *sprite) +{ + sprite->data[0] -= sprite->data[1]; + if (sprite->data[0] < 0) + sprite->data[0] = 0; + SetGpuReg(REG_OFFSET_MOSAIC, (sprite->data[0] << 12) | (sprite->data[0] << 8)); + if (sprite->data[0] == 0) + { + sprite->oam.mosaic = FALSE; + sprite->callback = SpriteCallbackDummy; + } +} + +static void CreateDisplayMonSprite(void) +{ + u16 i; + u16 tileStart; + u8 palSlot; + u8 spriteId; + struct SpriteSheet sheet = {gStorage->tileBuffer, MON_PIC_SIZE, GFXTAG_DISPLAY_MON}; + struct SpritePalette palette = {gStorage->displayMonPalBuffer, PALTAG_DISPLAY_MON}; + struct SpriteTemplate template = sSpriteTemplate_DisplayMon; + + for (i = 0; i < MON_PIC_SIZE; i++) + gStorage->tileBuffer[i] = 0; + for (i = 0; i < 0x10; i++) + gStorage->displayMonPalBuffer[i] = 0; + + gStorage->displayMonSprite = NULL; + + do + { + tileStart = LoadSpriteSheet(&sheet); + if (tileStart == 0) + break; + + palSlot = LoadSpritePalette(&palette); + if (palSlot == 0xFF) + break; + + spriteId = CreateSprite(&template, 40, 48, 0); + if (spriteId == MAX_SPRITES) + break; + + gStorage->displayMonSprite = &gSprites[spriteId]; + gStorage->displayMonPalOffset = palSlot * 16 + 0x100; + gStorage->displayMonTilePtr = (void *)OBJ_VRAM0 + tileStart * 32; + } while (FALSE); + + if (gStorage->displayMonSprite == NULL) + { + FreeSpriteTilesByTag(GFXTAG_DISPLAY_MON); + FreeSpritePaletteByTag(PALTAG_DISPLAY_MON); + } +} + +static void LoadDisplayMonGfx(u16 species, u32 personality) +{ + if (gStorage->displayMonSprite == NULL) + return; + + if (species != SPECIES_NONE) + { + HandleLoadSpecialPokePic(&gMonFrontPicTable[species], gStorage->tileBuffer, species, personality); + LZ77UnCompWram(gStorage->displayMonPalette, gStorage->displayMonPalBuffer); + CpuCopy32(gStorage->tileBuffer, gStorage->displayMonTilePtr, 0x800); + LoadPalette(gStorage->displayMonPalBuffer, gStorage->displayMonPalOffset, 0x20); + gStorage->displayMonSprite->invisible = FALSE; + } + else + gStorage->displayMonSprite->invisible = TRUE; +} + +static void PrintDisplayMonInfo(void) +{ + u16 i; + u16 y; + FillWindowPixelBuffer(0, PIXEL_FILL(1)); + if (gStorage->boxOption != OPTION_MOVE_ITEMS) + { + for (i = 0, y = 0; i < 3; i++, y += 14) + AddTextPrinterParameterized(0, FONT_2, gStorage->displayMonTexts[i], i == 2 ? 10 : 6, y, TEXT_SKIP_DRAW, NULL); + + AddTextPrinterParameterized(0, FONT_0, gStorage->displayMonTexts[3], 6, y + 2, TEXT_SKIP_DRAW, NULL); + } + else + { + AddTextPrinterParameterized(0, FONT_0, gStorage->displayMonTexts[3], 6, 0, TEXT_SKIP_DRAW, NULL); + for (i = 0, y = 15; i < 3; i++, y += 14) + AddTextPrinterParameterized(0, FONT_2, gStorage->displayMonTexts[i], i == 2 ? 10 : 6, y, TEXT_SKIP_DRAW, NULL); + } + + CopyWindowToVram(0, COPYWIN_GFX); + if (gStorage->displayMonSpecies != SPECIES_NONE) + { + UpdateMonMarkingTiles(gStorage->displayMonMarkings, gStorage->markingComboTilesPtr); + gStorage->markingComboSprite->invisible = FALSE; + } + else + gStorage->markingComboSprite->invisible = TRUE; +} + +static void UpdateWaveformAnimation(void) +{ + u16 i; + + if (gStorage->displayMonSpecies != SPECIES_NONE) + { + TilemapUtil_SetRect(TILEMAP_PKMN_DATA, 0, 0, 8, 2); + for (i = 0; i < 2; i++) + StartSpriteAnimIfDifferent(gStorage->waveformSprites[i], i * 2 + 1); + } + else + { + TilemapUtil_SetRect(TILEMAP_PKMN_DATA, 0, 2, 8, 2); + for (i = 0; i < 2; i++) + StartSpriteAnim(gStorage->waveformSprites[i], i * 2); + } + + TilemapUtil_Update(TILEMAP_PKMN_DATA); + ScheduleBgCopyTilemapToVram(1); +} + +static void InitSupplementalTilemaps(void) +{ + LZ77UnCompWram(gPokeStoragePartyMenu_Tilemap, gStorage->partyMenuTilemapBuffer); + LoadPalette(gPokeStoragePartyMenu_Pal, 0x10, 0x20); + TilemapUtil_SetTilemap(TILEMAP_PARTY_MENU, 1, gStorage->partyMenuTilemapBuffer, 12, 22); + TilemapUtil_SetTilemap(TILEMAP_CLOSE_BUTTON, 1, sCloseBoxButton_Tilemap, 9, 4); + TilemapUtil_SetPos(TILEMAP_PARTY_MENU, 10, 0); + TilemapUtil_SetPos(TILEMAP_CLOSE_BUTTON, 21, 0); + SetPartySlotTilemaps(); + if (sInPartyMenu) + { + UpdateCloseBoxButtonTilemap(TRUE); + CreatePartyMonsSprites(TRUE); + TilemapUtil_Update(TILEMAP_CLOSE_BUTTON); + TilemapUtil_Update(TILEMAP_PARTY_MENU); + } + else + { + TilemapUtil_SetRect(TILEMAP_PARTY_MENU, 0, 20, 12, 2); + UpdateCloseBoxButtonTilemap(TRUE); + TilemapUtil_Update(TILEMAP_PARTY_MENU); + TilemapUtil_Update(TILEMAP_CLOSE_BUTTON); + } + + ScheduleBgCopyTilemapToVram(1); + gStorage->closeBoxFlashing = FALSE; +} + +static void SetUpShowPartyMenu(void) +{ + gStorage->partyMenuUnused1 = 20; + gStorage->partyMenuY = 2; + gStorage->partyMenuMoveTimer = 0; + CreatePartyMonsSprites(FALSE); +} + +static bool8 ShowPartyMenu(void) +{ + if (gStorage->partyMenuMoveTimer == 20) + return FALSE; + + gStorage->partyMenuUnused1--; + gStorage->partyMenuY++; + TilemapUtil_Move(TILEMAP_PARTY_MENU, 3, 1); + TilemapUtil_Update(TILEMAP_PARTY_MENU); + ScheduleBgCopyTilemapToVram(1); + MovePartySprites(8); + if (++gStorage->partyMenuMoveTimer == 20) + { + sInPartyMenu = TRUE; + return FALSE; + } + else + return TRUE; +} + +static void SetUpHidePartyMenu(void) +{ + gStorage->partyMenuUnused1 = 0; + gStorage->partyMenuY = 22; + gStorage->partyMenuMoveTimer = 0; + if (gStorage->boxOption == OPTION_MOVE_ITEMS) + MoveHeldItemWithPartyMenu(); +} + +static bool8 HidePartyMenu(void) +{ + if (gStorage->partyMenuMoveTimer != 20) + { + gStorage->partyMenuUnused1++; + gStorage->partyMenuY--; + TilemapUtil_Move(TILEMAP_PARTY_MENU, 3, -1); + TilemapUtil_Update(TILEMAP_PARTY_MENU); + FillBgTilemapBufferRect_Palette0(1, 0x100, 10, gStorage->partyMenuY, 12, 1); + MovePartySprites(-8); + if (++gStorage->partyMenuMoveTimer != 20) + { + ScheduleBgCopyTilemapToVram(1); + return TRUE; + } + else + { + sInPartyMenu = FALSE; + DestroyAllPartyMonIcons(); + CompactPartySlots(); + TilemapUtil_SetRect(TILEMAP_CLOSE_BUTTON, 0, 0, 9, 2); + TilemapUtil_Update(TILEMAP_CLOSE_BUTTON); + ScheduleBgCopyTilemapToVram(1); + return FALSE; + } + } + + return FALSE; +} + +static void UpdateCloseBoxButtonTilemap(bool8 normal) +{ + if (normal) + TilemapUtil_SetRect(TILEMAP_CLOSE_BUTTON, 0, 0, 9, 2); + else + TilemapUtil_SetRect(TILEMAP_CLOSE_BUTTON, 0, 2, 9, 2); + + TilemapUtil_Update(TILEMAP_CLOSE_BUTTON); + ScheduleBgCopyTilemapToVram(1); +} + +static void StartFlashingCloseBoxButton(void) +{ + gStorage->closeBoxFlashing = TRUE; + gStorage->closeBoxFlashTimer = 30; + gStorage->closeBoxFlashState = TRUE; +} + +static void StopFlashingCloseBoxButton(void) +{ + if (gStorage->closeBoxFlashing) + { + gStorage->closeBoxFlashing = FALSE; + UpdateCloseBoxButtonTilemap(TRUE); + } +} + +static void UpdateCloseBoxButtonFlash(void) +{ + if (gStorage->closeBoxFlashing && ++gStorage->closeBoxFlashTimer > 30) + { + gStorage->closeBoxFlashTimer = 0; + gStorage->closeBoxFlashState = (gStorage->closeBoxFlashState == FALSE); + UpdateCloseBoxButtonTilemap(gStorage->closeBoxFlashState); + } +} + +static void SetPartySlotTilemaps(void) +{ + u8 i; + + // Skips first party slot, it should always be drawn + // as if it has a Pokémon in it + for (i = 1; i < PARTY_SIZE; i++) + { + s32 species = GetMonData(gPlayerParty + i, MON_DATA_SPECIES); + SetPartySlotTilemap(i, (species != SPECIES_NONE)); + } +} + +static void SetPartySlotTilemap(u8 pos, bool8 isFilled) +{ + u16 i, j, index; + const u16 *tilemap; + + if (isFilled) + tilemap = sPartySlotFilled_Tilemap; + else + tilemap = sPartySlotEmpty_Tilemap; + + index = 3 * (3 * (pos - 1) + 1); + index *= 4; + index += 7; + for (i = 0; i < 3; i++) + { + for (j = 0; j < 4; j++) + gStorage->partyMenuTilemapBuffer[index + j] = tilemap[j]; + + tilemap += 4; + index += 12; + } +} + +static void UpdatePartySlotColors(void) +{ + SetPartySlotTilemaps(); + TilemapUtil_SetRect(TILEMAP_PARTY_MENU, 0, 0, 12, 22); + TilemapUtil_Update(TILEMAP_PARTY_MENU); + ScheduleBgCopyTilemapToVram(1); +} + +static void SetUpDoShowPartyMenu(void) +{ + gStorage->showPartyMenuState = 0; + PlaySE(SE_WIN_OPEN); + SetUpShowPartyMenu(); +} + +static bool8 DoShowPartyMenu(void) +{ + switch (gStorage->showPartyMenuState) + { + case 0: + if (!ShowPartyMenu()) + { + SetCursorInParty(); + gStorage->showPartyMenuState++; + } + break; + case 1: + if (!UpdateCursorPos()) + { + if (gStorage->setMosaic) + StartDisplayMonMosaic(); + gStorage->showPartyMenuState++; + } + break; + case 2: + return FALSE; + } + return TRUE; +} + +static void InitPokeStorageBg0(void) +{ + SetGpuReg(REG_OFFSET_BG0CNT, BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(29)); + LoadStdWindowGfx(1, 2, 0xD0); + FillBgTilemapBufferRect(0, 0, 0, 0, 32, 20, 17); + CopyBgTilemapBufferToVram(0); +} + +static void PrintStorageMessage(u8 id) +{ + u8 *txtPtr; + + DynamicPlaceholderTextUtil_Reset(); + switch (sMessages[id].format) + { + case MSG_FMT_NONE: + break; + case MSG_FMT_MON_NAME_1: + case MSG_FMT_MON_NAME_2: + case MSG_FMT_MON_NAME_3: + DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gStorage->displayMonNickname); + break; + case MSG_FMT_RELEASE_MON_1: + case MSG_FMT_RELEASE_MON_2: + case MSG_FMT_RELEASE_MON_3: + DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gStorage->releaseMonName); + break; + case MSG_FMT_ITEM_NAME: + if (IsActiveItemMoving()) + txtPtr = StringCopy(gStorage->itemName, GetMovingItemName()); + else + txtPtr = StringCopy(gStorage->itemName, gStorage->displayMonTexts[3]); + + while (*(txtPtr - 1) == CHAR_SPACE) + txtPtr--; + + *txtPtr = EOS; + DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gStorage->itemName); + break; + } + + DynamicPlaceholderTextUtil_ExpandPlaceholders(gStorage->actionText, sMessages[id].text); + FillWindowPixelBuffer(1, PIXEL_FILL(1)); + AddTextPrinterParameterized(1, FONT_1, gStorage->actionText, 0, 2, TEXT_SKIP_DRAW, NULL); + DrawTextBorderOuter(1, 2, 13); + PutWindowTilemap(1); + CopyWindowToVram(1, COPYWIN_GFX); + ScheduleBgCopyTilemapToVram(0); +} + +static void ShowYesNoWindow(s8 cursorPos) +{ + CreateYesNoMenu(&sYesNoWindowTemplate, FONT_1, 0, 2, 11, 14, 1); + Menu_MoveCursorNoWrapAround(cursorPos); +} + +static void ClearBottomWindow(void) +{ + ClearStdWindowAndFrameToTransparent(1, FALSE); + ScheduleBgCopyTilemapToVram(0); +} + +static void AddWallpaperSetsMenu(void) +{ + InitMenu(); + SetMenuText(MENU_TEXT_SCENERY_1); + SetMenuText(MENU_TEXT_SCENERY_2); + SetMenuText(MENU_TEXT_SCENERY_3); + SetMenuText(MENU_TEXT_ETCETERA); + AddMenu(); +} + +static void AddWallpapersMenu(u8 wallpaperSet) +{ + InitMenu(); + switch (wallpaperSet) + { + case 0: // SCENERY_1 + SetMenuText(MENU_TEXT_FOREST); + SetMenuText(MENU_TEXT_CITY); + SetMenuText(MENU_TEXT_DESERT); + SetMenuText(MENU_TEXT_SAVANNA); + break; + case 1: // SCENERY_2 + SetMenuText(MENU_TEXT_CRAG); + SetMenuText(MENU_TEXT_VOLCANO); + SetMenuText(MENU_TEXT_SNOW); + SetMenuText(MENU_TEXT_CAVE); + break; + case 2: // SCENERY_3 + SetMenuText(MENU_TEXT_BEACH); + SetMenuText(MENU_TEXT_SEAFLOOR); + SetMenuText(MENU_TEXT_RIVER); + SetMenuText(MENU_TEXT_SKY); + break; + case 3: // ETCETERA + SetMenuText(MENU_TEXT_POLKADOT); + SetMenuText(MENU_TEXT_POKECENTER); + SetMenuText(MENU_TEXT_MACHINE); + SetMenuText(MENU_TEXT_SIMPLE); + break; + } + AddMenu(); +} + +u8 GetCurrentBoxOption(void) +{ + return sCurrentBoxOption; +} + +static void InitCursorItemIcon(void) +{ + if (!IsCursorOnBoxTitle()) + { + if (sInPartyMenu) + TryLoadItemIconAtPos(CURSOR_AREA_IN_PARTY, GetBoxCursorPosition()); + else + TryLoadItemIconAtPos(CURSOR_AREA_IN_BOX, GetBoxCursorPosition()); + } + + if (sMovingItemId != ITEM_NONE) + { + InitItemIconInCursor(sMovingItemId); + StartCursorAnim(CURSOR_ANIM_FIST); + } +} + +static void SetPokeStorageQuestLogEvent(u8 action) +{ + u16 event; + struct PokeStorageQuestLogData *questLogData; + u8 box1 = GetMovingMonOriginalBoxId(); + u16 species1 = gStorage->displayMonSpecies; + u16 species2; + u8 box2; + if (sInPartyMenu) + { + box2 = TOTAL_BOXES_COUNT; + species2 = GetMonData(&gPlayerParty[GetBoxCursorPosition()], MON_DATA_SPECIES2); + } + else + { + box2 = StorageGetCurrentBox(); + species2 = GetCurrentBoxMonData(GetBoxCursorPosition(), MON_DATA_SPECIES2); + } + questLogData = &gStorage->pokeStorageQuestLogData; + + switch (action) + { + default: + return; + case 0: + if (sInPartyMenu) + { + if (box1 == TOTAL_BOXES_COUNT) + return; + else + event = QL_EVENT_SWITCHED_PARTY_MON_FOR_PC_MON; + } + else + { + if (box1 == TOTAL_BOXES_COUNT) + // Should upmerge but doesn't + event = QL_EVENT_SWITCHED_PARTY_MON_FOR_PC_MON; + else + event = box1 != box2 ? QL_EVENT_SWITCHED_MONS_BETWEEN_BOXES : QL_EVENT_SWITCHED_MONS_WITHIN_BOX; + } + questLogData->species1 = species1; + questLogData->species2 = species2; + questLogData->box1 = box1; + questLogData->box2 = box2; + break; + case 1: + questLogData->species1 = species1; + questLogData->species2 = SPECIES_NONE; + questLogData->box1 = box1; + questLogData->box2 = 0xFF; + if (sInPartyMenu) + { + if (box1 == TOTAL_BOXES_COUNT) + return; + else + event = QL_EVENT_WITHDREW_MON_PC; + } + else + { + if (box1 == TOTAL_BOXES_COUNT) + { + event = QL_EVENT_DEPOSITED_MON_PC; + questLogData->box1 = box2; + } + else if (box1 != box2) + { + event = QL_EVENT_MOVED_MON_BETWEEN_BOXES; + questLogData->box2 = box2; + } + else + event = QL_EVENT_MOVED_MON_WITHIN_BOX; + } + break; + case 2: + event = QL_EVENT_DEPOSITED_MON_PC; + questLogData->species1 = species1; + questLogData->species2 = SPECIES_NONE; + questLogData->box1 = sDepositBoxId; + questLogData->box2 = 0xFF; + break; + case 3: + event = QL_EVENT_SWITCHED_MULTIPLE_MONS; + questLogData->species1 = SPECIES_NONE; + questLogData->species2 = SPECIES_NONE; + questLogData->box1 = box1; + questLogData->box2 = box2; + break; + } + SetQuestLogEvent(event, (const u16 *)questLogData); +} + +static void UpdateBoxToSendMons(void) +{ + if (sLastUsedBox != StorageGetCurrentBox()) + { + FlagClear(FLAG_SHOWN_BOX_WAS_FULL_MESSAGE); + VarSet(VAR_PC_BOX_TO_SEND_MON, StorageGetCurrentBox()); + } +} diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index 0b510f5e8..6f7a06d9c 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -2110,7 +2110,7 @@ static void BufferMonInfo(void) GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_NICKNAME, tempStr); StringCopyN_Multibyte(sMonSummaryScreen->summary.nicknameStrBuf, tempStr, POKEMON_NAME_LENGTH); - StringGetEnd10(sMonSummaryScreen->summary.nicknameStrBuf); + StringGet_Nickname(sMonSummaryScreen->summary.nicknameStrBuf); gender = GetMonGender(&sMonSummaryScreen->currentMon); dexNum = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPECIES2); @@ -5218,8 +5218,8 @@ static bool32 MapSecIsInKantoOrSevii(u8 mapSec) return FALSE; } -UNUSED -static void Unused_ShowPokemonSummaryScreen_NullParty(void) +// Unused +static void ShowPokemonSummaryScreen_NullParty(void) { ShowPokemonSummaryScreen(NULL, 0, 0, CB2_ReturnToField, PSS_MODE_NORMAL); } diff --git a/src/prof_pc.c b/src/prof_pc.c index 713912fe5..93d8b97f2 100644 --- a/src/prof_pc.c +++ b/src/prof_pc.c @@ -84,7 +84,7 @@ static const u8 *GetProfOaksRatingMessageByCount(u16 count) if (count < 150) return PokedexRating_Text_LessThan150; - if (count == 150) + if (count == KANTO_DEX_COUNT - 1) { // Mew doesn't count for completing the pokedex if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(SPECIES_MEW), 1)) @@ -94,7 +94,7 @@ static const u8 *GetProfOaksRatingMessageByCount(u16 count) return PokedexRating_Text_Complete; } - if (count == 151) + if (count == KANTO_DEX_COUNT) { gSpecialVar_Result = TRUE; return PokedexRating_Text_Complete; diff --git a/src/quest_log.c b/src/quest_log.c index 7eeb76e04..e2d55f544 100644 --- a/src/quest_log.c +++ b/src/quest_log.c @@ -256,7 +256,7 @@ static void QLogCB_Playback(void) else { sQuestLogCurrentScene.sceneEndMode = 2; - ScriptContext2_Enable(); + LockPlayerFieldControls(); QuestLog_BeginFadeAtEndOfScene(0); } } @@ -335,8 +335,8 @@ static void SetNPCInitialCoordsAtScene(u8 sceneNum) questLog->npcData[i].y = (u8)gSaveBlock1Ptr->objectEventTemplates[i].y; questLog->npcData[i].negy = FALSE; } - questLog->npcData[i].elevation = gSaveBlock1Ptr->objectEventTemplates[i].elevation; - questLog->npcData[i].movementType = gSaveBlock1Ptr->objectEventTemplates[i].movementType; + questLog->npcData[i].elevation = gSaveBlock1Ptr->objectEventTemplates[i].objUnion.normal.elevation; + questLog->npcData[i].movementType = gSaveBlock1Ptr->objectEventTemplates[i].objUnion.normal.movementType; } } @@ -459,7 +459,7 @@ void sub_8110FCC(void) static bool8 FieldCB2_QuestLogStartPlaybackWithWarpExit(void) { - LoadPalette(stdpal_get(4), 0xF0, 0x20); + LoadPalette(GetTextWindowPalette(4), 0xF0, 0x20); SetQuestLogState(QL_STATE_PLAYBACK); FieldCB_DefaultWarpExit(); sQuestLogCurrentScene = (struct UnkStruct_203AE94){}; @@ -469,7 +469,7 @@ static bool8 FieldCB2_QuestLogStartPlaybackWithWarpExit(void) static bool8 FieldCB2_QuestLogStartPlaybackStandingInPlace(void) { - LoadPalette(stdpal_get(4), 0xF0, 0x20); + LoadPalette(GetTextWindowPalette(4), 0xF0, 0x20); SetQuestLogState(QL_STATE_PLAYBACK); FieldCB_WarpExitFadeFromBlack(); sQuestLogCurrentScene = (struct UnkStruct_203AE94){}; @@ -525,8 +525,8 @@ static void QuestLogPlaybackSetObjectEventTemplates(u8 sceneNum) gSaveBlock1Ptr->objectEventTemplates[i].y = -(u8)questLog->npcData[i].y; else gSaveBlock1Ptr->objectEventTemplates[i].y = questLog->npcData[i].y; - gSaveBlock1Ptr->objectEventTemplates[i].elevation = questLog->npcData[i].elevation; - gSaveBlock1Ptr->objectEventTemplates[i].movementType = questLog->npcData[i].movementType; + gSaveBlock1Ptr->objectEventTemplates[i].objUnion.normal.elevation = questLog->npcData[i].elevation; + gSaveBlock1Ptr->objectEventTemplates[i].objUnion.normal.movementType = questLog->npcData[i].movementType; } SetSav1ObjectEventsFromQuestLog(questLog, gSaveBlock1Ptr->objectEventTemplates); @@ -791,7 +791,7 @@ static void QuestLog_AdvancePlayhead(void) { if (!gPaletteFade.active) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); if (++sCurrentSceneNum < QUEST_LOG_SCENE_COUNT && gSaveBlock1Ptr->questLog[sCurrentSceneNum].startType != 0) { sNumScenes--; @@ -1051,7 +1051,7 @@ static void QuestLog_WaitFadeAndCancelPlayback(void) { if (!gPaletteFade.active) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); for (sCurrentSceneNum = sCurrentSceneNum; sCurrentSceneNum < QUEST_LOG_SCENE_COUNT; sCurrentSceneNum++) { if (gSaveBlock1Ptr->questLog[sCurrentSceneNum].startType == 0) @@ -1076,7 +1076,7 @@ void QuestLog_BackUpPalette(u16 offset, u16 size) static bool8 FieldCB2_FinalScene(void) { - LoadPalette(stdpal_get(4), 0xF0, 0x20); + LoadPalette(GetTextWindowPalette(4), 0xF0, 0x20); DrawPreviouslyOnQuestHeader(0); FieldCB_WarpExitFadeFromBlack(); CreateTask(Task_FinalScene_WaitFade, 0xFF); @@ -1087,12 +1087,12 @@ static void Task_FinalScene_WaitFade(u8 taskId) { struct Task *task = &gTasks[taskId]; - if (ScriptContext2_IsEnabled() != TRUE) + if (ArePlayerFieldControlsLocked() != TRUE) { FreezeObjectEvents(); HandleEnforcedLookDirectionOnPlayerStopMoving(); StopPlayerAvatar(); - ScriptContext2_Enable(); + LockPlayerFieldControls(); task->func = Task_QuestLogScene_SavedGame; } } @@ -1113,7 +1113,7 @@ static void Task_QuestLogScene_SavedGame(u8 taskId) task->data[1] = 0; task->func = Task_WaitAtEndOfQuestLog; FreezeObjectEvents(); - ScriptContext2_Enable(); + LockPlayerFieldControls(); } } @@ -1179,7 +1179,7 @@ static void Task_EndQuestLog(u8 taskId) Free(sPalettesBackup); sQuestLogCurrentScene = (struct UnkStruct_203AE94){}; ClearPlayerHeldMovementAndUnfreezeObjectEvents(); - ScriptContext2_Disable(); + UnlockPlayerFieldControls(); gTextFlags.autoScroll = FALSE; gGlobalFieldTintMode = QL_TINT_NONE; DisableWildEncounters(FALSE); @@ -1199,8 +1199,8 @@ static bool8 sub_81121D8(u8 taskId) if (data[1] > 15) return TRUE; - sub_80716F8(gPlttBufferUnfaded + 0x01, gPlttBufferFaded + 0x01, 0xDF, 0x0F - data[1]); - sub_80716F8(gPlttBufferUnfaded + 0x100, gPlttBufferFaded + 0x100, 0x100, 0x0F - data[1]); + CopyPaletteInvertedTint(gPlttBufferUnfaded + 0x01, gPlttBufferFaded + 0x01, 0xDF, 0x0F - data[1]); + CopyPaletteInvertedTint(gPlttBufferUnfaded + 0x100, gPlttBufferFaded + 0x100, 0x100, 0x0F - data[1]); FillWindowPixelRect(sQuestLogHeaderWindowIds[0], 0x00, 0, sQuestLogHeaderWindowTemplates[0].height * 8 - 1 - data[1], sQuestLogHeaderWindowTemplates[0].width * 8, 1); FillWindowPixelRect(sQuestLogHeaderWindowIds[1], 0x00, 0, data[1], sQuestLogHeaderWindowTemplates[1].width * 8, 1); CopyWindowToVram(sQuestLogHeaderWindowIds[0], COPYWIN_GFX); @@ -1297,7 +1297,7 @@ void sub_811246C(struct Sprite *sprite) QuestLogUpdatePlayerSprite(sMovementScripts[0][1]); sMovementScripts[0][1] = 0xFF; } - sub_8063E28(objectEvent, sprite); + UpdateQuestLogObjectEventCurrentMovement(objectEvent, sprite); } else { @@ -1306,7 +1306,7 @@ void sub_811246C(struct Sprite *sprite) ObjectEventSetHeldMovement(objectEvent, sMovementScripts[objectEvent->localId][0]); sMovementScripts[objectEvent->localId][0] = 0xFF; } - sub_8063E28(objectEvent, sprite); + UpdateQuestLogObjectEventCurrentMovement(objectEvent, sprite); } } @@ -1417,7 +1417,7 @@ void sub_81127F8(struct FieldInput * a0) sCurQuestLogEntry[sQuestLogCursor].mapGroup = r2 >> 16; sCurQuestLogEntry[sQuestLogCursor].animId = r2 >> 24; // always 0 sQuestLogCursor++; - if (ScriptContext2_IsEnabled()) + if (ArePlayerFieldControlsLocked()) sNextStepDelay = TRUE; else sNextStepDelay = FALSE; @@ -1590,7 +1590,7 @@ void sub_8112B3C(void) } break; case 2: - if (ScriptContext2_IsEnabled() != TRUE) + if (ArePlayerFieldControlsLocked() != TRUE) { sNextStepDelay++; if (sQuestLogCursor >= sNumEventsInLogEntry) @@ -1627,7 +1627,7 @@ u8 sub_8112CAC(void) static bool8 RecordHeadAtEndOfEntryOrScriptContext2Enabled(void) { - if (sQuestLogCursor >= sNumEventsInLogEntry || ScriptContext2_IsEnabled() == TRUE) + if (sQuestLogCursor >= sNumEventsInLogEntry || ArePlayerFieldControlsLocked() == TRUE) return TRUE; return FALSE; } diff --git a/src/quest_log_events.c b/src/quest_log_events.c index e805b5f2e..6dc645b93 100644 --- a/src/quest_log_events.c +++ b/src/quest_log_events.c @@ -1149,9 +1149,9 @@ static const u16 *BufferQuestLogText_LinkBattledMulti(const u16 *a0) memset(gStringVar1, EOS, PLAYER_NAME_LENGTH + 1); memset(gStringVar2, EOS, PLAYER_NAME_LENGTH + 1); memset(gStringVar3, EOS, PLAYER_NAME_LENGTH + 1); - StringCopy7(gStringVar1, (const u8 *)a0 + 5); - StringCopy7(gStringVar2, (const u8 *)a0 + 12); - StringCopy7(gStringVar3, (const u8 *)a0 + 19); + StringCopy_PlayerName(gStringVar1, (const u8 *)a0 + 5); + StringCopy_PlayerName(gStringVar2, (const u8 *)a0 + 12); + StringCopy_PlayerName(gStringVar3, (const u8 *)a0 + 19); BufferLinkPartnersName(gStringVar1); BufferLinkPartnersName(gStringVar2); BufferLinkPartnersName(gStringVar3); diff --git a/src/quest_log_objects.c b/src/quest_log_objects.c index 47d328405..27f32b450 100644 --- a/src/quest_log_objects.c +++ b/src/quest_log_objects.c @@ -93,8 +93,8 @@ void SetSav1ObjectEventsFromQuestLog(const struct QuestLog * questLog, const str { gObjectEvents[i].initialCoords.x = templates[j].x + 7; gObjectEvents[i].initialCoords.y = templates[j].y + 7; - gObjectEvents[i].rangeX = templates[j].movementRangeX; - gObjectEvents[i].rangeY = templates[j].movementRangeY; + gObjectEvents[i].rangeX = templates[j].objUnion.normal.movementRangeX; + gObjectEvents[i].rangeY = templates[j].objUnion.normal.movementRangeY; } } diff --git a/src/quest_log_player.c b/src/quest_log_player.c index bb7372c35..8c2ef6196 100644 --- a/src/quest_log_player.c +++ b/src/quest_log_player.c @@ -80,7 +80,7 @@ static void QL_GfxTransition_Fish(void) if (gQuestLogPlaybackState == 1 || gQuestLogPlaybackState == 3) { u8 taskId; - ScriptContext2_Enable(); + LockPlayerFieldControls(); gPlayerAvatar.preventStep = TRUE; taskId = CreateTask(Task_QLFishMovement, 0xFF); gTasks[taskId].data[0] = 0; @@ -129,7 +129,7 @@ static void Task_QLFishMovement(u8 taskId) ObjectEventTurn(objectEvent, objectEvent->movementDirection); sprite->x2 = 0; sprite->y2 = 0; - ScriptContext2_Disable(); + UnlockPlayerFieldControls(); DestroyTask(taskId); } break; @@ -166,7 +166,7 @@ static void Task_QLVSSeekerMovement(u8 taskId) if (!FieldEffectActiveListContains(FLDEFF_USE_VS_SEEKER)) { UnfreezeObjectEvents(); - ScriptContext2_Disable(); + UnlockPlayerFieldControls(); DestroyTask(taskId); } } diff --git a/src/region_map.c b/src/region_map.c index 1c7a74590..a767ade9a 100644 --- a/src/region_map.c +++ b/src/region_map.c @@ -379,7 +379,7 @@ static void InitFlyMap(void); static void FreeFlyMap(u8); static void SetFlyWarpDestination(u16); -#include "data/text/map_section_names.h" +#include "data/region_map/region_map_entry_strings.h" static const u16 sTopBar_Pal[] = INCBIN_U16("graphics/region_map/top_bar.gbapal"); // Palette for the top bar and dynamic text color static const u16 sMapCursor_Pal[] = INCBIN_U16("graphics/region_map/cursor.gbapal"); @@ -636,79 +636,79 @@ static const union AnimCmd *const sAnims_SwitchMapCursor[] = { static const struct DungeonMapInfo sDungeonInfo[] = { { .id = MAPSEC_VIRIDIAN_FOREST, - .name = gMapSecName_ViridianForest, + .name = sMapsecName_VIRIDIANFOREST, .desc = gText_RegionMap_AreaDesc_ViridianForest }, { .id = MAPSEC_MT_MOON, - .name = gMapSecName_MtMoon, + .name = sMapsecName_MTMOON, .desc = gText_RegionMap_AreaDesc_MtMoon }, { .id = MAPSEC_DIGLETTS_CAVE, - .name = gMapSecName_DiglettsCave, + .name = sMapsecName_DIGLETTSCAVE, .desc = gText_RegionMap_AreaDesc_DiglettsCave }, { .id = MAPSEC_KANTO_VICTORY_ROAD, - .name = gMapSecName_VictoryRoad, + .name = sMapsecName_VICTORYROAD, .desc = gText_RegionMap_AreaDesc_VictoryRoad }, { .id = MAPSEC_POKEMON_MANSION, - .name = gMapSecName_PokemonMansion, + .name = sMapsecName_POKMONMANSION, .desc = gText_RegionMap_AreaDesc_PokemonMansion }, { .id = MAPSEC_KANTO_SAFARI_ZONE, - .name = gMapSecName_SafariZone, + .name = sMapsecName_SAFARIZONE, .desc = gText_RegionMap_AreaDesc_SafariZone }, { .id = MAPSEC_ROCK_TUNNEL, - .name = gMapSecName_RockTunnel, + .name = sMapsecName_ROCKTUNNEL, .desc = gText_RegionMap_AreaDesc_RockTunnel }, { .id = MAPSEC_SEAFOAM_ISLANDS, - .name = gMapSecName_SeafoamIslands, + .name = sMapsecName_SEAFOAMISLANDS, .desc = gText_RegionMap_AreaDesc_SeafoamIslands }, { .id = MAPSEC_POKEMON_TOWER, - .name = gMapSecName_PokemonTower, + .name = sMapsecName_POKMONTOWER, .desc = gText_RegionMap_AreaDesc_PokemonTower }, { .id = MAPSEC_CERULEAN_CAVE, - .name = gMapSecName_CeruleanCave, + .name = sMapsecName_CERULEANCAVE, .desc = gText_RegionMap_AreaDesc_CeruleanCave }, { .id = MAPSEC_POWER_PLANT, - .name = gMapSecName_PowerPlant, + .name = sMapsecName_POWERPLANT, .desc = gText_RegionMap_AreaDesc_PowerPlant }, { .id = MAPSEC_MT_EMBER, - .name = gMapSecName_MtEmber, + .name = sMapsecName_MTEMBER, .desc = gText_RegionMap_AreaDesc_MtEmber }, { .id = MAPSEC_BERRY_FOREST, - .name = gMapSecName_BerryForest, + .name = sMapsecName_BERRYFOREST, .desc = gText_RegionMap_AreaDesc_BerryForest }, { .id = MAPSEC_ICEFALL_CAVE, - .name = gMapSecName_IcefallCave, + .name = sMapsecName_ICEFALLCAVE, .desc = gText_RegionMap_AreaDesc_IcefallCave }, { .id = MAPSEC_LOST_CAVE, - .name = gMapSecName_LostCave, + .name = sMapsecName_LOSTCAVE, .desc = gText_RegionMap_AreaDesc_LostCave }, { .id = MAPSEC_TANOBY_CHAMBERS, - .name = gMapSecName_TanobyChambers, + .name = sMapsecName_TANOBYCHAMBERS, .desc = gText_RegionMap_AreaDesc_TanobyRuins }, { .id = MAPSEC_ALTERING_CAVE, - .name = gMapSecName_AlteringCave, + .name = sMapsecName_ALTERINGCAVE, .desc = gText_RegionMap_AreaDesc_AlteringCave }, { .id = MAPSEC_PATTERN_BUSH, - .name = gMapSecName_PatternBush, + .name = sMapsecName_PATTERNBUSH, .desc = gText_RegionMap_AreaDesc_PatternBush }, { .id = MAPSEC_DOTTED_HOLE, - .name = gMapSecName_DottedHole, + .name = sMapsecName_DOTTEDHOLE, .desc = gText_RegionMap_AreaDesc_DottedHole } }; @@ -814,458 +814,12 @@ static const u8 sWinRegs[][2] = { static const u8 sTextColors[] = {TEXT_DYNAMIC_COLOR_6, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GRAY}; -static const u8 *const sMapNames[] = { - [MAPSEC_PALLET_TOWN - MAPSECS_KANTO] = gMapSecName_PalletTown, - [MAPSEC_VIRIDIAN_CITY - MAPSECS_KANTO] = gMapSecName_ViridianCity, - [MAPSEC_PEWTER_CITY - MAPSECS_KANTO] = gMapSecName_PewterCity, - [MAPSEC_CERULEAN_CITY - MAPSECS_KANTO] = gMapSecName_CeruleanCity, - [MAPSEC_LAVENDER_TOWN - MAPSECS_KANTO] = gMapSecName_LavenderTown, - [MAPSEC_VERMILION_CITY - MAPSECS_KANTO] = gMapSecName_VermilionCity, - [MAPSEC_CELADON_CITY - MAPSECS_KANTO] = gMapSecName_CeladonCity, - [MAPSEC_FUCHSIA_CITY - MAPSECS_KANTO] = gMapSecName_FuchsiaCity, - [MAPSEC_CINNABAR_ISLAND - MAPSECS_KANTO] = gMapSecName_CinnabarIsland, - [MAPSEC_INDIGO_PLATEAU - MAPSECS_KANTO] = gMapSecName_IndigoPlateau, - [MAPSEC_SAFFRON_CITY - MAPSECS_KANTO] = gMapSecName_SaffronCity, - [MAPSEC_ROUTE_4_POKECENTER - MAPSECS_KANTO] = gMapSecName_Route4, - [MAPSEC_ROUTE_10_POKECENTER - MAPSECS_KANTO] = gMapSecName_Route10, - [MAPSEC_ROUTE_1 - MAPSECS_KANTO] = gMapSecName_Route1, - [MAPSEC_ROUTE_2 - MAPSECS_KANTO] = gMapSecName_Route2, - [MAPSEC_ROUTE_3 - MAPSECS_KANTO] = gMapSecName_Route3, - [MAPSEC_ROUTE_4 - MAPSECS_KANTO] = gMapSecName_Route4_2, - [MAPSEC_ROUTE_5 - MAPSECS_KANTO] = gMapSecName_Route5, - [MAPSEC_ROUTE_6 - MAPSECS_KANTO] = gMapSecName_Route6, - [MAPSEC_ROUTE_7 - MAPSECS_KANTO] = gMapSecName_Route7, - [MAPSEC_ROUTE_8 - MAPSECS_KANTO] = gMapSecName_Route8, - [MAPSEC_ROUTE_9 - MAPSECS_KANTO] = gMapSecName_Route9, - [MAPSEC_ROUTE_10 - MAPSECS_KANTO] = gMapSecName_Route10_2, - [MAPSEC_ROUTE_11 - MAPSECS_KANTO] = gMapSecName_Route11, - [MAPSEC_ROUTE_12 - MAPSECS_KANTO] = gMapSecName_Route12, - [MAPSEC_ROUTE_13 - MAPSECS_KANTO] = gMapSecName_Route13, - [MAPSEC_ROUTE_14 - MAPSECS_KANTO] = gMapSecName_Route14, - [MAPSEC_ROUTE_15 - MAPSECS_KANTO] = gMapSecName_Route15, - [MAPSEC_ROUTE_16 - MAPSECS_KANTO] = gMapSecName_Route16, - [MAPSEC_ROUTE_17 - MAPSECS_KANTO] = gMapSecName_Route17, - [MAPSEC_ROUTE_18 - MAPSECS_KANTO] = gMapSecName_Route18, - [MAPSEC_ROUTE_19 - MAPSECS_KANTO] = gMapSecName_Route19, - [MAPSEC_ROUTE_20 - MAPSECS_KANTO] = gMapSecName_Route20, - [MAPSEC_ROUTE_21 - MAPSECS_KANTO] = gMapSecName_Route21, - [MAPSEC_ROUTE_22 - MAPSECS_KANTO] = gMapSecName_Route22, - [MAPSEC_ROUTE_23 - MAPSECS_KANTO] = gMapSecName_Route23, - [MAPSEC_ROUTE_24 - MAPSECS_KANTO] = gMapSecName_Route24, - [MAPSEC_ROUTE_25 - MAPSECS_KANTO] = gMapSecName_Route25, - [MAPSEC_VIRIDIAN_FOREST - MAPSECS_KANTO] = gMapSecName_ViridianForest, - [MAPSEC_MT_MOON - MAPSECS_KANTO] = gMapSecName_MtMoon, - [MAPSEC_S_S_ANNE - MAPSECS_KANTO] = gMapSecName_SSAnne, - [MAPSEC_UNDERGROUND_PATH - MAPSECS_KANTO] = gMapSecName_UndergroundPath, - [MAPSEC_UNDERGROUND_PATH_2 - MAPSECS_KANTO] = gMapSecName_UndergroundPath_2, - [MAPSEC_DIGLETTS_CAVE - MAPSECS_KANTO] = gMapSecName_DiglettsCave, - [MAPSEC_KANTO_VICTORY_ROAD - MAPSECS_KANTO] = gMapSecName_VictoryRoad, - [MAPSEC_ROCKET_HIDEOUT - MAPSECS_KANTO] = gMapSecName_RocketHideout, - [MAPSEC_SILPH_CO - MAPSECS_KANTO] = gMapSecName_SilphCo, - [MAPSEC_POKEMON_MANSION - MAPSECS_KANTO] = gMapSecName_PokemonMansion, - [MAPSEC_KANTO_SAFARI_ZONE - MAPSECS_KANTO] = gMapSecName_SafariZone, - [MAPSEC_POKEMON_LEAGUE - MAPSECS_KANTO] = gMapSecName_PokemonLeague, - [MAPSEC_ROCK_TUNNEL - MAPSECS_KANTO] = gMapSecName_RockTunnel, - [MAPSEC_SEAFOAM_ISLANDS - MAPSECS_KANTO] = gMapSecName_SeafoamIslands, - [MAPSEC_POKEMON_TOWER - MAPSECS_KANTO] = gMapSecName_PokemonTower, - [MAPSEC_CERULEAN_CAVE - MAPSECS_KANTO] = gMapSecName_CeruleanCave, - [MAPSEC_POWER_PLANT - MAPSECS_KANTO] = gMapSecName_PowerPlant, - [MAPSEC_ONE_ISLAND - MAPSECS_KANTO] = gMapSecName_OneIsland, - [MAPSEC_TWO_ISLAND - MAPSECS_KANTO] = gMapSecName_TwoIsland, - [MAPSEC_THREE_ISLAND - MAPSECS_KANTO] = gMapSecName_ThreeIsland, - [MAPSEC_FOUR_ISLAND - MAPSECS_KANTO] = gMapSecName_FourIsland, - [MAPSEC_FIVE_ISLAND - MAPSECS_KANTO] = gMapSecName_FiveIsland, - [MAPSEC_SEVEN_ISLAND - MAPSECS_KANTO] = gMapSecName_SevenIsland, - [MAPSEC_SIX_ISLAND - MAPSECS_KANTO] = gMapSecName_SixIsland, - [MAPSEC_KINDLE_ROAD - MAPSECS_KANTO] = gMapSecName_KindleRoad, - [MAPSEC_TREASURE_BEACH - MAPSECS_KANTO] = gMapSecName_TreasureBeach, - [MAPSEC_CAPE_BRINK - MAPSECS_KANTO] = gMapSecName_CapeBrink, - [MAPSEC_BOND_BRIDGE - MAPSECS_KANTO] = gMapSecName_BondBridge, - [MAPSEC_THREE_ISLE_PORT - MAPSECS_KANTO] = gMapSecName_ThreeIslePort, - [MAPSEC_SEVII_ISLE_6 - MAPSECS_KANTO] = gMapSecName_SeviiIsle6, - [MAPSEC_SEVII_ISLE_7 - MAPSECS_KANTO] = gMapSecName_SeviiIsle7, - [MAPSEC_SEVII_ISLE_8 - MAPSECS_KANTO] = gMapSecName_SeviiIsle8, - [MAPSEC_SEVII_ISLE_9 - MAPSECS_KANTO] = gMapSecName_SeviiIsle9, - [MAPSEC_RESORT_GORGEOUS - MAPSECS_KANTO] = gMapSecName_ResortGorgeous, - [MAPSEC_WATER_LABYRINTH - MAPSECS_KANTO] = gMapSecName_WaterLabyrinth, - [MAPSEC_FIVE_ISLE_MEADOW - MAPSECS_KANTO] = gMapSecName_FiveIsleMeadow, - [MAPSEC_MEMORIAL_PILLAR - MAPSECS_KANTO] = gMapSecName_MemorialPillar, - [MAPSEC_OUTCAST_ISLAND - MAPSECS_KANTO] = gMapSecName_OutcastIsland, - [MAPSEC_GREEN_PATH - MAPSECS_KANTO] = gMapSecName_GreenPath, - [MAPSEC_WATER_PATH - MAPSECS_KANTO] = gMapSecName_WaterPath, - [MAPSEC_RUIN_VALLEY - MAPSECS_KANTO] = gMapSecName_RuinValley, - [MAPSEC_TRAINER_TOWER - MAPSECS_KANTO] = gMapSecName_TrainerTower, - [MAPSEC_CANYON_ENTRANCE - MAPSECS_KANTO] = gMapSecName_CanyonEntrance, - [MAPSEC_SEVAULT_CANYON - MAPSECS_KANTO] = gMapSecName_SevaultCanyon, - [MAPSEC_TANOBY_RUINS - MAPSECS_KANTO] = gMapSecName_TanobyRuins, - [MAPSEC_SEVII_ISLE_22 - MAPSECS_KANTO] = gMapSecName_SeviiIsle22, - [MAPSEC_SEVII_ISLE_23 - MAPSECS_KANTO] = gMapSecName_SeviiIsle23, - [MAPSEC_SEVII_ISLE_24 - MAPSECS_KANTO] = gMapSecName_SeviiIsle24, - [MAPSEC_NAVEL_ROCK - MAPSECS_KANTO] = gMapSecName_NavelRock, - [MAPSEC_MT_EMBER - MAPSECS_KANTO] = gMapSecName_MtEmber, - [MAPSEC_BERRY_FOREST - MAPSECS_KANTO] = gMapSecName_BerryForest, - [MAPSEC_ICEFALL_CAVE - MAPSECS_KANTO] = gMapSecName_IcefallCave, - [MAPSEC_ROCKET_WAREHOUSE - MAPSECS_KANTO] = gMapSecName_RocketWarehouse, - [MAPSEC_TRAINER_TOWER_2 - MAPSECS_KANTO] = gMapSecName_TrainerTower_2, - [MAPSEC_DOTTED_HOLE - MAPSECS_KANTO] = gMapSecName_DottedHole, - [MAPSEC_LOST_CAVE - MAPSECS_KANTO] = gMapSecName_LostCave, - [MAPSEC_PATTERN_BUSH - MAPSECS_KANTO] = gMapSecName_PatternBush, - [MAPSEC_ALTERING_CAVE - MAPSECS_KANTO] = gMapSecName_AlteringCave, - [MAPSEC_TANOBY_CHAMBERS - MAPSECS_KANTO] = gMapSecName_TanobyChambers, - [MAPSEC_THREE_ISLE_PATH - MAPSECS_KANTO] = gMapSecName_ThreeIslePath, - [MAPSEC_TANOBY_KEY - MAPSECS_KANTO] = gMapSecName_TanobyKey, - [MAPSEC_BIRTH_ISLAND - MAPSECS_KANTO] = gMapSecName_BirthIsland, - [MAPSEC_MONEAN_CHAMBER - MAPSECS_KANTO] = gMapSecName_MoneanChamber, - [MAPSEC_LIPTOO_CHAMBER - MAPSECS_KANTO] = gMapSecName_LiptooChamber, - [MAPSEC_WEEPTH_CHAMBER - MAPSECS_KANTO] = gMapSecName_WeepthChamber, - [MAPSEC_DILFORD_CHAMBER - MAPSECS_KANTO] = gMapSecName_DilfordChamber, - [MAPSEC_SCUFIB_CHAMBER - MAPSECS_KANTO] = gMapSecName_ScufibChamber, - [MAPSEC_RIXY_CHAMBER - MAPSECS_KANTO] = gMapSecName_RixyChamber, - [MAPSEC_VIAPOIS_CHAMBER - MAPSECS_KANTO] = gMapSecName_ViapoisChamber, - [MAPSEC_EMBER_SPA - MAPSECS_KANTO] = gMapSecName_EmberSpa, - [MAPSEC_SPECIAL_AREA - MAPSECS_KANTO] = gMapSecName_CeladonDept -}; +#include "data/region_map/region_map_entries.h" -static const u16 sMapSectionTopLeftCorners[MAPSEC_COUNT][2] = { - [MAPSEC_PALLET_TOWN - MAPSECS_KANTO] = { 4, 11}, - [MAPSEC_VIRIDIAN_CITY - MAPSECS_KANTO] = { 4, 8}, - [MAPSEC_PEWTER_CITY - MAPSECS_KANTO] = { 4, 4}, - [MAPSEC_CERULEAN_CITY - MAPSECS_KANTO] = {14, 3}, - [MAPSEC_LAVENDER_TOWN - MAPSECS_KANTO] = {18, 6}, - [MAPSEC_VERMILION_CITY - MAPSECS_KANTO] = {14, 9}, - [MAPSEC_CELADON_CITY - MAPSECS_KANTO] = {11, 6}, - [MAPSEC_FUCHSIA_CITY - MAPSECS_KANTO] = {12, 12}, - [MAPSEC_CINNABAR_ISLAND - MAPSECS_KANTO] = { 4, 14}, - [MAPSEC_INDIGO_PLATEAU - MAPSECS_KANTO] = { 2, 3}, - [MAPSEC_SAFFRON_CITY - MAPSECS_KANTO] = {14, 6}, - [MAPSEC_ROUTE_4_POKECENTER - MAPSECS_KANTO] = { 8, 3}, - [MAPSEC_ROUTE_10_POKECENTER - MAPSECS_KANTO] = {18, 3}, - [MAPSEC_ROUTE_1 - MAPSECS_KANTO] = { 4, 9}, - [MAPSEC_ROUTE_2 - MAPSECS_KANTO] = { 4, 5}, - [MAPSEC_ROUTE_3 - MAPSECS_KANTO] = { 5, 4}, - [MAPSEC_ROUTE_4 - MAPSECS_KANTO] = { 8, 3}, - [MAPSEC_ROUTE_5 - MAPSECS_KANTO] = {14, 4}, - [MAPSEC_ROUTE_6 - MAPSECS_KANTO] = {14, 7}, - [MAPSEC_ROUTE_7 - MAPSECS_KANTO] = {12, 6}, - [MAPSEC_ROUTE_8 - MAPSECS_KANTO] = {15, 6}, - [MAPSEC_ROUTE_9 - MAPSECS_KANTO] = {15, 3}, - [MAPSEC_ROUTE_10 - MAPSECS_KANTO] = {18, 3}, - [MAPSEC_ROUTE_11 - MAPSECS_KANTO] = {15, 9}, - [MAPSEC_ROUTE_12 - MAPSECS_KANTO] = {18, 7}, - [MAPSEC_ROUTE_13 - MAPSECS_KANTO] = {16, 11}, - [MAPSEC_ROUTE_14 - MAPSECS_KANTO] = {15, 11}, - [MAPSEC_ROUTE_15 - MAPSECS_KANTO] = {13, 12}, - [MAPSEC_ROUTE_16 - MAPSECS_KANTO] = { 7, 6}, - [MAPSEC_ROUTE_17 - MAPSECS_KANTO] = { 7, 7}, - [MAPSEC_ROUTE_18 - MAPSECS_KANTO] = { 7, 12}, - [MAPSEC_ROUTE_19 - MAPSECS_KANTO] = {12, 13}, - [MAPSEC_ROUTE_20 - MAPSECS_KANTO] = { 5, 14}, - [MAPSEC_ROUTE_21 - MAPSECS_KANTO] = { 4, 12}, - [MAPSEC_ROUTE_22 - MAPSECS_KANTO] = { 2, 8}, - [MAPSEC_ROUTE_23 - MAPSECS_KANTO] = { 2, 4}, - [MAPSEC_ROUTE_24 - MAPSECS_KANTO] = {14, 1}, - [MAPSEC_ROUTE_25 - MAPSECS_KANTO] = {15, 1}, - [MAPSEC_ONE_ISLAND - MAPSECS_KANTO] = { 1, 8}, - [MAPSEC_TWO_ISLAND - MAPSECS_KANTO] = { 9, 9}, - [MAPSEC_THREE_ISLAND - MAPSECS_KANTO] = {18, 12}, - [MAPSEC_FOUR_ISLAND - MAPSECS_KANTO] = { 3, 4}, - [MAPSEC_FIVE_ISLAND - MAPSECS_KANTO] = {16, 11}, - [MAPSEC_SEVEN_ISLAND - MAPSECS_KANTO] = { 5, 8}, - [MAPSEC_SIX_ISLAND - MAPSECS_KANTO] = {17, 5}, - [MAPSEC_KINDLE_ROAD - MAPSECS_KANTO] = { 2, 3}, - [MAPSEC_TREASURE_BEACH - MAPSECS_KANTO] = { 1, 9}, - [MAPSEC_CAPE_BRINK - MAPSECS_KANTO] = { 9, 7}, - [MAPSEC_BOND_BRIDGE - MAPSECS_KANTO] = {13, 12}, - [MAPSEC_THREE_ISLE_PORT - MAPSECS_KANTO] = {18, 13}, - [MAPSEC_SEVII_ISLE_6 - MAPSECS_KANTO] = { 4, 3}, - [MAPSEC_SEVII_ISLE_7 - MAPSECS_KANTO] = { 5, 4}, - [MAPSEC_SEVII_ISLE_8 - MAPSECS_KANTO] = { 1, 4}, - [MAPSEC_SEVII_ISLE_9 - MAPSECS_KANTO] = { 4, 5}, - [MAPSEC_RESORT_GORGEOUS - MAPSECS_KANTO] = {16, 9}, - [MAPSEC_WATER_LABYRINTH - MAPSECS_KANTO] = {14, 10}, - [MAPSEC_FIVE_ISLE_MEADOW - MAPSECS_KANTO] = {17, 10}, - [MAPSEC_MEMORIAL_PILLAR - MAPSECS_KANTO] = {18, 12}, - [MAPSEC_OUTCAST_ISLAND - MAPSECS_KANTO] = {15, 0}, - [MAPSEC_GREEN_PATH - MAPSECS_KANTO] = {15, 3}, - [MAPSEC_WATER_PATH - MAPSECS_KANTO] = {18, 3}, - [MAPSEC_RUIN_VALLEY - MAPSECS_KANTO] = {16, 7}, - [MAPSEC_TRAINER_TOWER - MAPSECS_KANTO] = { 5, 6}, - [MAPSEC_CANYON_ENTRANCE - MAPSECS_KANTO] = { 5, 9}, - [MAPSEC_SEVAULT_CANYON - MAPSECS_KANTO] = { 6, 9}, - [MAPSEC_TANOBY_RUINS - MAPSECS_KANTO] = { 3, 12}, - [MAPSEC_SEVII_ISLE_22 - MAPSECS_KANTO] = { 9, 12}, - [MAPSEC_SEVII_ISLE_23 - MAPSECS_KANTO] = { 3, 14}, - [MAPSEC_SEVII_ISLE_24 - MAPSECS_KANTO] = { 2, 12}, - [MAPSEC_NAVEL_ROCK - MAPSECS_KANTO] = {10, 8}, - [MAPSEC_BIRTH_ISLAND - MAPSECS_KANTO] = {18, 13}, -}; - -static const u16 sMapSectionDimensions[MAPSEC_COUNT][2] = { - [MAPSEC_PALLET_TOWN - MAPSECS_KANTO] = {1, 1}, - [MAPSEC_VIRIDIAN_CITY - MAPSECS_KANTO] = {1, 1}, - [MAPSEC_PEWTER_CITY - MAPSECS_KANTO] = {1, 1}, - [MAPSEC_CERULEAN_CITY - MAPSECS_KANTO] = {1, 1}, - [MAPSEC_LAVENDER_TOWN - MAPSECS_KANTO] = {1, 1}, - [MAPSEC_VERMILION_CITY - MAPSECS_KANTO] = {1, 1}, - [MAPSEC_CELADON_CITY - MAPSECS_KANTO] = {1, 1}, - [MAPSEC_FUCHSIA_CITY - MAPSECS_KANTO] = {1, 1}, - [MAPSEC_CINNABAR_ISLAND - MAPSECS_KANTO] = {1, 1}, - [MAPSEC_INDIGO_PLATEAU - MAPSECS_KANTO] = {1, 1}, - [MAPSEC_SAFFRON_CITY - MAPSECS_KANTO] = {1, 1}, - [MAPSEC_ROUTE_4_POKECENTER - MAPSECS_KANTO] = {1, 1}, - [MAPSEC_ROUTE_10_POKECENTER - MAPSECS_KANTO] = {1, 1}, - [MAPSEC_ROUTE_1 - MAPSECS_KANTO] = {1, 2}, - [MAPSEC_ROUTE_2 - MAPSECS_KANTO] = {1, 3}, - [MAPSEC_ROUTE_3 - MAPSECS_KANTO] = {4, 1}, - [MAPSEC_ROUTE_4 - MAPSECS_KANTO] = {6, 1}, - [MAPSEC_ROUTE_5 - MAPSECS_KANTO] = {1, 2}, - [MAPSEC_ROUTE_6 - MAPSECS_KANTO] = {1, 2}, - [MAPSEC_ROUTE_7 - MAPSECS_KANTO] = {2, 1}, - [MAPSEC_ROUTE_8 - MAPSECS_KANTO] = {3, 1}, - [MAPSEC_ROUTE_9 - MAPSECS_KANTO] = {3, 1}, - [MAPSEC_ROUTE_10 - MAPSECS_KANTO] = {1, 3}, - [MAPSEC_ROUTE_11 - MAPSECS_KANTO] = {3, 1}, - [MAPSEC_ROUTE_12 - MAPSECS_KANTO] = {1, 5}, - [MAPSEC_ROUTE_13 - MAPSECS_KANTO] = {2, 1}, - [MAPSEC_ROUTE_14 - MAPSECS_KANTO] = {1, 2}, - [MAPSEC_ROUTE_15 - MAPSECS_KANTO] = {2, 1}, - [MAPSEC_ROUTE_16 - MAPSECS_KANTO] = {4, 1}, - [MAPSEC_ROUTE_17 - MAPSECS_KANTO] = {1, 5}, - [MAPSEC_ROUTE_18 - MAPSECS_KANTO] = {5, 1}, - [MAPSEC_ROUTE_19 - MAPSECS_KANTO] = {1, 2}, - [MAPSEC_ROUTE_20 - MAPSECS_KANTO] = {7, 1}, - [MAPSEC_ROUTE_21 - MAPSECS_KANTO] = {1, 2}, - [MAPSEC_ROUTE_22 - MAPSECS_KANTO] = {2, 1}, - [MAPSEC_ROUTE_23 - MAPSECS_KANTO] = {1, 4}, - [MAPSEC_ROUTE_24 - MAPSECS_KANTO] = {1, 2}, - [MAPSEC_ROUTE_25 - MAPSECS_KANTO] = {2, 1}, - [MAPSEC_VIRIDIAN_FOREST - MAPSECS_KANTO] = {1, 1}, - [MAPSEC_MT_MOON - MAPSECS_KANTO] = {1, 1}, - [MAPSEC_S_S_ANNE - MAPSECS_KANTO] = {1, 1}, - [MAPSEC_UNDERGROUND_PATH - MAPSECS_KANTO] = {1, 1}, - [MAPSEC_UNDERGROUND_PATH_2 - MAPSECS_KANTO] = {1, 1}, - [MAPSEC_DIGLETTS_CAVE - MAPSECS_KANTO] = {1, 1}, - [MAPSEC_KANTO_VICTORY_ROAD - MAPSECS_KANTO] = {1, 1}, - [MAPSEC_ROCKET_HIDEOUT - MAPSECS_KANTO] = {1, 1}, - [MAPSEC_SILPH_CO - MAPSECS_KANTO] = {1, 1}, - [MAPSEC_POKEMON_MANSION - MAPSECS_KANTO] = {1, 1}, - [MAPSEC_KANTO_SAFARI_ZONE - MAPSECS_KANTO] = {1, 1}, - [MAPSEC_POKEMON_LEAGUE - MAPSECS_KANTO] = {1, 1}, - [MAPSEC_ROCK_TUNNEL - MAPSECS_KANTO] = {1, 1}, - [MAPSEC_SEAFOAM_ISLANDS - MAPSECS_KANTO] = {1, 1}, - [MAPSEC_POKEMON_TOWER - MAPSECS_KANTO] = {1, 1}, - [MAPSEC_CERULEAN_CAVE - MAPSECS_KANTO] = {1, 1}, - [MAPSEC_POWER_PLANT - MAPSECS_KANTO] = {1, 1}, - [MAPSEC_ONE_ISLAND - MAPSECS_KANTO] = {1, 1}, - [MAPSEC_TWO_ISLAND - MAPSECS_KANTO] = {1, 1}, - [MAPSEC_THREE_ISLAND - MAPSECS_KANTO] = {1, 1}, - [MAPSEC_FOUR_ISLAND - MAPSECS_KANTO] = {1, 1}, - [MAPSEC_FIVE_ISLAND - MAPSECS_KANTO] = {1, 1}, - [MAPSEC_SEVEN_ISLAND - MAPSECS_KANTO] = {1, 1}, - [MAPSEC_SIX_ISLAND - MAPSECS_KANTO] = {1, 1}, - [MAPSEC_KINDLE_ROAD - MAPSECS_KANTO] = {1, 6}, - [MAPSEC_TREASURE_BEACH - MAPSECS_KANTO] = {1, 2}, - [MAPSEC_CAPE_BRINK - MAPSECS_KANTO] = {1, 2}, - [MAPSEC_BOND_BRIDGE - MAPSECS_KANTO] = {4, 1}, - [MAPSEC_THREE_ISLE_PORT - MAPSECS_KANTO] = {2, 1}, - [MAPSEC_SEVII_ISLE_6 - MAPSECS_KANTO] = {1, 1}, - [MAPSEC_SEVII_ISLE_7 - MAPSECS_KANTO] = {1, 1}, - [MAPSEC_SEVII_ISLE_8 - MAPSECS_KANTO] = {3, 1}, - [MAPSEC_SEVII_ISLE_9 - MAPSECS_KANTO] = {1, 2}, - [MAPSEC_RESORT_GORGEOUS - MAPSECS_KANTO] = {3, 1}, - [MAPSEC_WATER_LABYRINTH - MAPSECS_KANTO] = {3, 1}, - [MAPSEC_FIVE_ISLE_MEADOW - MAPSECS_KANTO] = {1, 3}, - [MAPSEC_MEMORIAL_PILLAR - MAPSECS_KANTO] = {1, 3}, - [MAPSEC_OUTCAST_ISLAND - MAPSECS_KANTO] = {1, 3}, - [MAPSEC_GREEN_PATH - MAPSECS_KANTO] = {3, 1}, - [MAPSEC_WATER_PATH - MAPSECS_KANTO] = {1, 5}, - [MAPSEC_RUIN_VALLEY - MAPSECS_KANTO] = {2, 2}, - [MAPSEC_TRAINER_TOWER - MAPSECS_KANTO] = {1, 2}, - [MAPSEC_CANYON_ENTRANCE - MAPSECS_KANTO] = {1, 1}, - [MAPSEC_SEVAULT_CANYON - MAPSECS_KANTO] = {1, 3}, - [MAPSEC_TANOBY_RUINS - MAPSECS_KANTO] = {7, 1}, - [MAPSEC_SEVII_ISLE_22 - MAPSECS_KANTO] = {1, 3}, - [MAPSEC_SEVII_ISLE_23 - MAPSECS_KANTO] = {6, 1}, - [MAPSEC_SEVII_ISLE_24 - MAPSECS_KANTO] = {1, 3}, - [MAPSEC_NAVEL_ROCK - MAPSECS_KANTO] = {1, 1}, - [MAPSEC_MT_EMBER - MAPSECS_KANTO] = {1, 1}, - [MAPSEC_BERRY_FOREST - MAPSECS_KANTO] = {1, 1}, - [MAPSEC_ICEFALL_CAVE - MAPSECS_KANTO] = {1, 1}, - [MAPSEC_ROCKET_WAREHOUSE - MAPSECS_KANTO] = {1, 1}, - [MAPSEC_TRAINER_TOWER_2 - MAPSECS_KANTO] = {1, 1}, - [MAPSEC_DOTTED_HOLE - MAPSECS_KANTO] = {1, 1}, - [MAPSEC_LOST_CAVE - MAPSECS_KANTO] = {1, 1}, - [MAPSEC_PATTERN_BUSH - MAPSECS_KANTO] = {1, 1}, - [MAPSEC_ALTERING_CAVE - MAPSECS_KANTO] = {1, 1}, - [MAPSEC_TANOBY_CHAMBERS - MAPSECS_KANTO] = {1, 1}, - [MAPSEC_THREE_ISLE_PATH - MAPSECS_KANTO] = {1, 1}, - [MAPSEC_TANOBY_KEY - MAPSECS_KANTO] = {1, 1}, - [MAPSEC_BIRTH_ISLAND - MAPSECS_KANTO] = {1, 1}, - [MAPSEC_MONEAN_CHAMBER - MAPSECS_KANTO] = {1, 1}, - [MAPSEC_LIPTOO_CHAMBER - MAPSECS_KANTO] = {1, 1}, - [MAPSEC_WEEPTH_CHAMBER - MAPSECS_KANTO] = {1, 1}, - [MAPSEC_DILFORD_CHAMBER - MAPSECS_KANTO] = {1, 1}, - [MAPSEC_SCUFIB_CHAMBER - MAPSECS_KANTO] = {1, 1}, - [MAPSEC_RIXY_CHAMBER - MAPSECS_KANTO] = {1, 1}, - [MAPSEC_VIAPOIS_CHAMBER - MAPSECS_KANTO] = {1, 1}, - [MAPSEC_EMBER_SPA - MAPSECS_KANTO] = {1, 1} -}; - -static const u8 sRegionMapSections_Kanto[LAYER_COUNT][MAP_HEIGHT][MAP_WIDTH] = { - [LAYER_MAP] = - { - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_ROUTE_24, MAPSEC_ROUTE_25, MAPSEC_ROUTE_25, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_ROUTE_24, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_INDIGO_PLATEAU, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_ROUTE_4_POKECENTER, MAPSEC_ROUTE_4, MAPSEC_ROUTE_4, MAPSEC_ROUTE_4, MAPSEC_ROUTE_4, MAPSEC_ROUTE_4, MAPSEC_CERULEAN_CITY, MAPSEC_ROUTE_9, MAPSEC_ROUTE_9, MAPSEC_ROUTE_9, MAPSEC_ROUTE_10_POKECENTER, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_ROUTE_23, MAPSEC_NONE, MAPSEC_PEWTER_CITY, MAPSEC_ROUTE_3, MAPSEC_ROUTE_3, MAPSEC_ROUTE_3, MAPSEC_ROUTE_3, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_ROUTE_5, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_ROUTE_10, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_ROUTE_23, MAPSEC_NONE, MAPSEC_ROUTE_2, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_ROUTE_5, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_ROUTE_10, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_ROUTE_23, MAPSEC_NONE, MAPSEC_ROUTE_2, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_ROUTE_16, MAPSEC_ROUTE_16, MAPSEC_ROUTE_16, MAPSEC_ROUTE_16, MAPSEC_CELADON_CITY, MAPSEC_ROUTE_7, MAPSEC_ROUTE_7, MAPSEC_SAFFRON_CITY, MAPSEC_ROUTE_8, MAPSEC_ROUTE_8, MAPSEC_ROUTE_8, MAPSEC_LAVENDER_TOWN, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_ROUTE_23, MAPSEC_NONE, MAPSEC_ROUTE_2, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_ROUTE_17, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_ROUTE_6, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_ROUTE_12, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_ROUTE_22, MAPSEC_ROUTE_22, MAPSEC_VIRIDIAN_CITY, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_ROUTE_17, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_ROUTE_6, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_ROUTE_12, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_ROUTE_1, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_ROUTE_17, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_VERMILION_CITY, MAPSEC_ROUTE_11, MAPSEC_ROUTE_11, MAPSEC_ROUTE_11, MAPSEC_ROUTE_12, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_ROUTE_1, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_ROUTE_17, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_ROUTE_12, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_PALLET_TOWN, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_ROUTE_17, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_ROUTE_14, MAPSEC_ROUTE_13, MAPSEC_ROUTE_13, MAPSEC_ROUTE_12, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_ROUTE_21, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_ROUTE_18, MAPSEC_ROUTE_18, MAPSEC_ROUTE_18, MAPSEC_ROUTE_18, MAPSEC_ROUTE_18, MAPSEC_FUCHSIA_CITY, MAPSEC_ROUTE_15, MAPSEC_ROUTE_15, MAPSEC_ROUTE_14, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_ROUTE_21, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_ROUTE_19, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_CINNABAR_ISLAND, MAPSEC_ROUTE_20, MAPSEC_ROUTE_20, MAPSEC_ROUTE_20, MAPSEC_ROUTE_20, MAPSEC_ROUTE_20, MAPSEC_ROUTE_20, MAPSEC_ROUTE_20, MAPSEC_ROUTE_19, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE} - }, - [LAYER_DUNGEON] = - { - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_MT_MOON, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_CERULEAN_CAVE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_ROCK_TUNNEL, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_KANTO_VICTORY_ROAD, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_POWER_PLANT, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_DIGLETTS_CAVE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_VIRIDIAN_FOREST, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_POKEMON_TOWER, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_DIGLETTS_CAVE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_KANTO_SAFARI_ZONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_POKEMON_MANSION, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_SEAFOAM_ISLANDS, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE} - } -}; - -static const u8 sRegionMapSections_Sevii123[LAYER_COUNT][MAP_HEIGHT][MAP_WIDTH] = { - [LAYER_MAP] = - { - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_KINDLE_ROAD, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_KINDLE_ROAD, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_KINDLE_ROAD, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_KINDLE_ROAD, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_KINDLE_ROAD, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_CAPE_BRINK, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_ONE_ISLAND, MAPSEC_KINDLE_ROAD, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_CAPE_BRINK, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_TREASURE_BEACH, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_TWO_ISLAND, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_TREASURE_BEACH, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_BOND_BRIDGE, MAPSEC_BOND_BRIDGE, MAPSEC_BOND_BRIDGE, MAPSEC_BOND_BRIDGE, MAPSEC_THREE_ISLAND, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_THREE_ISLE_PORT, MAPSEC_THREE_ISLE_PORT, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE} - }, - [LAYER_DUNGEON] = - { - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_MT_EMBER, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_BERRY_FOREST, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE} - } -}; - -static const u8 sRegionMapSections_Sevii45[LAYER_COUNT][MAP_HEIGHT][MAP_WIDTH] = { - [LAYER_MAP] = - { - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_FOUR_ISLAND, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NAVEL_ROCK, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_RESORT_GORGEOUS, MAPSEC_RESORT_GORGEOUS, MAPSEC_RESORT_GORGEOUS, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_WATER_LABYRINTH, MAPSEC_WATER_LABYRINTH, MAPSEC_WATER_LABYRINTH, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_FIVE_ISLAND, MAPSEC_FIVE_ISLE_MEADOW, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_FIVE_ISLE_MEADOW, MAPSEC_MEMORIAL_PILLAR, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_MEMORIAL_PILLAR, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_MEMORIAL_PILLAR, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE} - }, - [LAYER_DUNGEON] = - { - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_ICEFALL_CAVE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_LOST_CAVE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE} - } -}; - -static const u8 sRegionMapSections_Sevii67[LAYER_COUNT][MAP_HEIGHT][MAP_WIDTH] = { - [LAYER_MAP] = - { - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_OUTCAST_ISLAND, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_OUTCAST_ISLAND, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_OUTCAST_ISLAND, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_GREEN_PATH, MAPSEC_GREEN_PATH, MAPSEC_GREEN_PATH, MAPSEC_WATER_PATH, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_WATER_PATH, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_SIX_ISLAND, MAPSEC_WATER_PATH, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_TRAINER_TOWER, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_WATER_PATH, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_TRAINER_TOWER, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_RUIN_VALLEY, MAPSEC_RUIN_VALLEY, MAPSEC_WATER_PATH, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_SEVEN_ISLAND, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_RUIN_VALLEY, MAPSEC_RUIN_VALLEY, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_CANYON_ENTRANCE, MAPSEC_SEVAULT_CANYON, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_SEVAULT_CANYON, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_SEVAULT_CANYON, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_TANOBY_RUINS, MAPSEC_TANOBY_RUINS, MAPSEC_TANOBY_RUINS, MAPSEC_TANOBY_RUINS, MAPSEC_TANOBY_RUINS, MAPSEC_TANOBY_RUINS, MAPSEC_TANOBY_RUINS, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_BIRTH_ISLAND, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE} - }, - [LAYER_DUNGEON] = - { - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_ALTERING_CAVE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_PATTERN_BUSH, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_DOTTED_HOLE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_TANOBY_CHAMBERS, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE}, - {MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE, MAPSEC_NONE} - } -}; +#include "data/region_map/region_map_layout_kanto.h" +#include "data/region_map/region_map_layout_sevii_123.h" +#include "data/region_map/region_map_layout_sevii_45.h" +#include "data/region_map/region_map_layout_sevii_67.h" static const u8 sMapFlyDestinations[][3] = { [MAPSEC_PALLET_TOWN - MAPSECS_KANTO] = {MAP(PALLET_TOWN), SPAWN_PALLET_TOWN}, @@ -4247,7 +3801,7 @@ u8 *GetMapName(u8 *dst0, u16 mapsec, u16 fill) if ((idx = mapsec - MAPSECS_KANTO) <= MAPSEC_SPECIAL_AREA - MAPSECS_KANTO) { if (IsCeladonDeptStoreMapsec(mapsec) == TRUE) - dst = StringCopy(dst0, gMapSecName_CeladonDept); + dst = StringCopy(dst0, sMapsecName_CELADONDEPT); else dst = StringCopy(dst0, sMapNames[idx]); } diff --git a/src/renewable_hidden_items.c b/src/renewable_hidden_items.c index 19eec3c29..e13829e93 100644 --- a/src/renewable_hidden_items.c +++ b/src/renewable_hidden_items.c @@ -3,527 +3,532 @@ #include "random.h" #include "constants/maps.h" +#define MAX_HIDDEN_ITEMS_PER_GROUP 8 + struct RenewableHiddenItemData { s8 mapGroup; s8 mapNum; u8 filler[2]; - u8 rare[8]; // 10% - u8 uncommon[8]; // 30% - u8 common[8]; // 60% + u8 rare[MAX_HIDDEN_ITEMS_PER_GROUP]; // 10% + u8 uncommon[MAX_HIDDEN_ITEMS_PER_GROUP]; // 30% + u8 common[MAX_HIDDEN_ITEMS_PER_GROUP]; // 60% }; static void SampleRenewableItemFlags(void); +#define HIDDEN_ID(flag)(flag - FLAG_HIDDEN_ITEMS_START) +#define NO_ITEM 0xFF + static const struct RenewableHiddenItemData sRenewableHiddenItems[] = { { .mapGroup = MAP_GROUP(ROUTE20), .mapNum = MAP_NUM(ROUTE20), .rare = { - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM }, .uncommon = { - HIDDEN_ITEM_ROUTE20_STARDUST, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF + HIDDEN_ID(FLAG_HIDDEN_ITEM_ROUTE20_STARDUST), + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM }, .common = { - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM } }, { .mapGroup = MAP_GROUP(ROUTE21_NORTH), .mapNum = MAP_NUM(ROUTE21_NORTH), .rare = { - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM }, .uncommon = { - HIDDEN_ITEM_ROUTE21_NORTH_PEARL, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF + HIDDEN_ID(FLAG_HIDDEN_ITEM_ROUTE21_NORTH_PEARL), + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM }, .common = { - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM } }, { .mapGroup = MAP_GROUP(UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL), .mapNum = MAP_NUM(UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL), .rare = { - HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_ETHER, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF + HIDDEN_ID(FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_ETHER), + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM }, .uncommon = { - HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_POTION, - HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_ANTIDOTE, - HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_PARALYZE_HEAL, - HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_AWAKENING, - HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_BURN_HEAL, - HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_ICE_HEAL, - 0xFF, - 0xFF + HIDDEN_ID(FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_POTION), + HIDDEN_ID(FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_ANTIDOTE), + HIDDEN_ID(FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_PARALYZE_HEAL), + HIDDEN_ID(FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_AWAKENING), + HIDDEN_ID(FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_BURN_HEAL), + HIDDEN_ID(FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_ICE_HEAL), + NO_ITEM, + NO_ITEM }, .common = { - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM } }, { .mapGroup = MAP_GROUP(UNDERGROUND_PATH_EAST_WEST_TUNNEL), .mapNum = MAP_NUM(UNDERGROUND_PATH_EAST_WEST_TUNNEL), .rare = { - HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_ETHER, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF + HIDDEN_ID(FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_ETHER), + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM }, .uncommon = { - HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_POTION, - HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_ANTIDOTE, - HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_PARALYZE_HEAL, - HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_AWAKENING, - HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_BURN_HEAL, - HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_ICE_HEAL, - 0xFF, - 0xFF + HIDDEN_ID(FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_POTION), + HIDDEN_ID(FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_ANTIDOTE), + HIDDEN_ID(FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_PARALYZE_HEAL), + HIDDEN_ID(FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_AWAKENING), + HIDDEN_ID(FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_BURN_HEAL), + HIDDEN_ID(FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_ICE_HEAL), + NO_ITEM, + NO_ITEM }, .common = { - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM } }, { .mapGroup = MAP_GROUP(SEVEN_ISLAND_TANOBY_RUINS), .mapNum = MAP_NUM(SEVEN_ISLAND_TANOBY_RUINS), .rare = { - HIDDEN_ITEM_SEVEN_ISLAND_TANOBY_RUINS_HEART_SCALE_4, - HIDDEN_ITEM_SEVEN_ISLAND_TANOBY_RUINS_HEART_SCALE, - HIDDEN_ITEM_SEVEN_ISLAND_TANOBY_RUINS_HEART_SCALE_2, - HIDDEN_ITEM_SEVEN_ISLAND_TANOBY_RUINS_HEART_SCALE_3, - 0xFF, - 0xFF, - 0xFF, - 0xFF + HIDDEN_ID(FLAG_HIDDEN_ITEM_SEVEN_ISLAND_TANOBY_RUINS_HEART_SCALE_4), + HIDDEN_ID(FLAG_HIDDEN_ITEM_SEVEN_ISLAND_TANOBY_RUINS_HEART_SCALE), + HIDDEN_ID(FLAG_HIDDEN_ITEM_SEVEN_ISLAND_TANOBY_RUINS_HEART_SCALE_2), + HIDDEN_ID(FLAG_HIDDEN_ITEM_SEVEN_ISLAND_TANOBY_RUINS_HEART_SCALE_3), + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM }, .uncommon = { - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM }, .common = { - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM } }, { .mapGroup = MAP_GROUP(MT_MOON_B1F), .mapNum = MAP_NUM(MT_MOON_B1F), .rare = { - HIDDEN_ITEM_MT_MOON_B1F_TINY_MUSHROOM, - HIDDEN_ITEM_MT_MOON_B1F_TINY_MUSHROOM_2, - HIDDEN_ITEM_MT_MOON_B1F_TINY_MUSHROOM_3, - HIDDEN_ITEM_MT_MOON_B1F_BIG_MUSHROOM, - HIDDEN_ITEM_MT_MOON_B1F_BIG_MUSHROOM_2, - HIDDEN_ITEM_MT_MOON_B1F_BIG_MUSHROOM_3, - 0xFF, - 0xFF + HIDDEN_ID(FLAG_HIDDEN_ITEM_MT_MOON_B1F_TINY_MUSHROOM), + HIDDEN_ID(FLAG_HIDDEN_ITEM_MT_MOON_B1F_TINY_MUSHROOM_2), + HIDDEN_ID(FLAG_HIDDEN_ITEM_MT_MOON_B1F_TINY_MUSHROOM_3), + HIDDEN_ID(FLAG_HIDDEN_ITEM_MT_MOON_B1F_BIG_MUSHROOM), + HIDDEN_ID(FLAG_HIDDEN_ITEM_MT_MOON_B1F_BIG_MUSHROOM_2), + HIDDEN_ID(FLAG_HIDDEN_ITEM_MT_MOON_B1F_BIG_MUSHROOM_3), + NO_ITEM, + NO_ITEM }, .uncommon = { - HIDDEN_ITEM_MT_MOON_B1F_TINY_MUSHROOM, - HIDDEN_ITEM_MT_MOON_B1F_TINY_MUSHROOM_2, - HIDDEN_ITEM_MT_MOON_B1F_TINY_MUSHROOM_3, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF + HIDDEN_ID(FLAG_HIDDEN_ITEM_MT_MOON_B1F_TINY_MUSHROOM), + HIDDEN_ID(FLAG_HIDDEN_ITEM_MT_MOON_B1F_TINY_MUSHROOM_2), + HIDDEN_ID(FLAG_HIDDEN_ITEM_MT_MOON_B1F_TINY_MUSHROOM_3), + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM }, .common = { - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM } }, { .mapGroup = MAP_GROUP(THREE_ISLAND_BERRY_FOREST), .mapNum = MAP_NUM(THREE_ISLAND_BERRY_FOREST), .rare = { - HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_BLUK_BERRY, - HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_WEPEAR_BERRY, - HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_ORAN_BERRY, - HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_CHERI_BERRY, - HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_ASPEAR_BERRY, - HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_PERSIM_BERRY, - HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_PINAP_BERRY, - HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_LUM_BERRY + HIDDEN_ID(FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_BLUK_BERRY), + HIDDEN_ID(FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_WEPEAR_BERRY), + HIDDEN_ID(FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_ORAN_BERRY), + HIDDEN_ID(FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_CHERI_BERRY), + HIDDEN_ID(FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_ASPEAR_BERRY), + HIDDEN_ID(FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_PERSIM_BERRY), + HIDDEN_ID(FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_PINAP_BERRY), + HIDDEN_ID(FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_LUM_BERRY), }, .uncommon = { - HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_BLUK_BERRY, - HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_WEPEAR_BERRY, - HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_ORAN_BERRY, - HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_CHERI_BERRY, - HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_ASPEAR_BERRY, - HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_PERSIM_BERRY, - HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_PINAP_BERRY, - 0xFF + HIDDEN_ID(FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_BLUK_BERRY), + HIDDEN_ID(FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_WEPEAR_BERRY), + HIDDEN_ID(FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_ORAN_BERRY), + HIDDEN_ID(FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_CHERI_BERRY), + HIDDEN_ID(FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_ASPEAR_BERRY), + HIDDEN_ID(FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_PERSIM_BERRY), + HIDDEN_ID(FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_PINAP_BERRY), + NO_ITEM }, .common = { - HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_RAZZ_BERRY, - HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_NANAB_BERRY, - HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_CHESTO_BERRY, - HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_PECHA_BERRY, - HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_RAWST_BERRY, - 0xFF, - 0xFF, - 0xFF + HIDDEN_ID(FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_RAZZ_BERRY), + HIDDEN_ID(FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_NANAB_BERRY), + HIDDEN_ID(FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_CHESTO_BERRY), + HIDDEN_ID(FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_PECHA_BERRY), + HIDDEN_ID(FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_RAWST_BERRY), + NO_ITEM, + NO_ITEM, + NO_ITEM } }, { .mapGroup = MAP_GROUP(ONE_ISLAND_TREASURE_BEACH), .mapNum = MAP_NUM(ONE_ISLAND_TREASURE_BEACH), .rare = { - HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_ULTRA_BALL, - HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_ULTRA_BALL_2, - HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_STAR_PIECE, - HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_BIG_PEARL, - 0xFF, - 0xFF, - 0xFF, - 0xFF + HIDDEN_ID(FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_ULTRA_BALL), + HIDDEN_ID(FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_ULTRA_BALL_2), + HIDDEN_ID(FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_STAR_PIECE), + HIDDEN_ID(FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_BIG_PEARL), + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM }, .uncommon = { - HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_STARDUST, - HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_STARDUST_2, - HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_PEARL, - HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_PEARL_2, - HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_ULTRA_BALL, - HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_ULTRA_BALL_2, - 0xFF, - 0xFF + HIDDEN_ID(FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_STARDUST), + HIDDEN_ID(FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_STARDUST_2), + HIDDEN_ID(FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_PEARL), + HIDDEN_ID(FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_PEARL_2), + HIDDEN_ID(FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_ULTRA_BALL), + HIDDEN_ID(FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_ULTRA_BALL_2), + NO_ITEM, + NO_ITEM }, .common = { - HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_ULTRA_BALL, - HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_ULTRA_BALL_2, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF + HIDDEN_ID(FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_ULTRA_BALL), + HIDDEN_ID(FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_ULTRA_BALL_2), + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM } }, { .mapGroup = MAP_GROUP(THREE_ISLAND_BOND_BRIDGE), .mapNum = MAP_NUM(THREE_ISLAND_BOND_BRIDGE), .rare = { - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM }, .uncommon = { - HIDDEN_ITEM_THREE_ISLAND_BOND_BRIDGE_PEARL, - HIDDEN_ITEM_THREE_ISLAND_BOND_BRIDGE_STARDUST, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF + HIDDEN_ID(FLAG_HIDDEN_ITEM_THREE_ISLAND_BOND_BRIDGE_PEARL), + HIDDEN_ID(FLAG_HIDDEN_ITEM_THREE_ISLAND_BOND_BRIDGE_STARDUST), + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM }, .common = { - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM } }, { .mapGroup = MAP_GROUP(FOUR_ISLAND), .mapNum = MAP_NUM(FOUR_ISLAND), .rare = { - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM }, .uncommon = { - HIDDEN_ITEM_FOUR_ISLAND_PEARL, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF + HIDDEN_ID(FLAG_HIDDEN_ITEM_FOUR_ISLAND_PEARL), + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM }, .common = { - HIDDEN_ITEM_FOUR_ISLAND_ULTRA_BALL, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF + HIDDEN_ID(FLAG_HIDDEN_ITEM_FOUR_ISLAND_ULTRA_BALL), + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM } }, { .mapGroup = MAP_GROUP(FIVE_ISLAND_MEMORIAL_PILLAR), .mapNum = MAP_NUM(FIVE_ISLAND_MEMORIAL_PILLAR), .rare = { - HIDDEN_ITEM_FIVE_ISLAND_MEMORIAL_PILLAR_BIG_PEARL, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF + HIDDEN_ID(FLAG_HIDDEN_ITEM_FIVE_ISLAND_MEMORIAL_PILLAR_BIG_PEARL), + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM }, .uncommon = { - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM }, .common = { - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM } }, { .mapGroup = MAP_GROUP(FIVE_ISLAND_RESORT_GORGEOUS), .mapNum = MAP_NUM(FIVE_ISLAND_RESORT_GORGEOUS), .rare = { - HIDDEN_ITEM_FIVE_ISLAND_RESORT_GORGEOUS_NEST_BALL, - HIDDEN_ITEM_FIVE_ISLAND_RESORT_GORGEOUS_STAR_PIECE, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF + HIDDEN_ID(FLAG_HIDDEN_ITEM_FIVE_ISLAND_RESORT_GORGEOUS_NEST_BALL), + HIDDEN_ID(FLAG_HIDDEN_ITEM_FIVE_ISLAND_RESORT_GORGEOUS_STAR_PIECE), + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM }, .uncommon = { - HIDDEN_ITEM_FIVE_ISLAND_RESORT_GORGEOUS_STARDUST, - HIDDEN_ITEM_FIVE_ISLAND_RESORT_GORGEOUS_STARDUST_2, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF + HIDDEN_ID(FLAG_HIDDEN_ITEM_FIVE_ISLAND_RESORT_GORGEOUS_STARDUST), + HIDDEN_ID(FLAG_HIDDEN_ITEM_FIVE_ISLAND_RESORT_GORGEOUS_STARDUST_2), + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM }, .common = { - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM } }, { .mapGroup = MAP_GROUP(SIX_ISLAND_OUTCAST_ISLAND), .mapNum = MAP_NUM(SIX_ISLAND_OUTCAST_ISLAND), .rare = { - HIDDEN_ITEM_SIX_ISLAND_OUTCAST_ISLAND_STAR_PIECE, - HIDDEN_ITEM_SIX_ISLAND_OUTCAST_ISLAND_NET_BALL, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF + HIDDEN_ID(FLAG_HIDDEN_ITEM_SIX_ISLAND_OUTCAST_ISLAND_STAR_PIECE), + HIDDEN_ID(FLAG_HIDDEN_ITEM_SIX_ISLAND_OUTCAST_ISLAND_NET_BALL), + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM }, .uncommon = { - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM }, .common = { - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM } }, { .mapGroup = MAP_GROUP(SIX_ISLAND_GREEN_PATH), .mapNum = MAP_NUM(SIX_ISLAND_GREEN_PATH), .rare = { - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM }, .uncommon = { - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM }, .common = { - HIDDEN_ITEM_SIX_ISLAND_GREEN_PATH_ULTRA_BALL, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF + HIDDEN_ID(FLAG_HIDDEN_ITEM_SIX_ISLAND_GREEN_PATH_ULTRA_BALL), + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM } }, { .mapGroup = MAP_GROUP(SEVEN_ISLAND_TRAINER_TOWER), .mapNum = MAP_NUM(SEVEN_ISLAND_TRAINER_TOWER), .rare = { - HIDDEN_ITEM_SEVEN_ISLAND_TRAINER_TOWER_BIG_PEARL, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF + HIDDEN_ID(FLAG_HIDDEN_ITEM_SEVEN_ISLAND_TRAINER_TOWER_BIG_PEARL), + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM }, .uncommon = { - HIDDEN_ITEM_SEVEN_ISLAND_TRAINER_TOWER_PEARL, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF + HIDDEN_ID(FLAG_HIDDEN_ITEM_SEVEN_ISLAND_TRAINER_TOWER_PEARL), + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM }, .common = { - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM, + NO_ITEM } }, }; @@ -532,18 +537,18 @@ void SetAllRenewableItemFlags(void) { u8 i, j; - for (i = 0; i < 15; i++) + for (i = 0; i < ARRAY_COUNT(sRenewableHiddenItems); i++) { const u8 * rare = sRenewableHiddenItems[i].rare; const u8 * uncommon = sRenewableHiddenItems[i].uncommon; const u8 * common = sRenewableHiddenItems[i].common; - for (j = 0; j < 8; j++) + for (j = 0; j < MAX_HIDDEN_ITEMS_PER_GROUP; j++) { - if (rare[j] != 0xFF) + if (rare[j] != NO_ITEM) FlagSet(FLAG_HIDDEN_ITEMS_START + rare[j]); - if (uncommon[j] != 0xFF) + if (uncommon[j] != NO_ITEM) FlagSet(FLAG_HIDDEN_ITEMS_START + uncommon[j]); - if (common[j] != 0xFF) + if (common[j] != NO_ITEM) FlagSet(FLAG_HIDDEN_ITEMS_START + common[j]); } } @@ -562,9 +567,10 @@ void TryRegenerateRenewableHiddenItems(void) { u8 i; u8 found_map = 0xFF; - for (i = 0; i < 15; i++) + for (i = 0; i < ARRAY_COUNT(sRenewableHiddenItems); i++) { - if (sRenewableHiddenItems[i].mapGroup == gSaveBlock1Ptr->location.mapGroup && sRenewableHiddenItems[i].mapNum == gSaveBlock1Ptr->location.mapNum) + if (sRenewableHiddenItems[i].mapGroup == gSaveBlock1Ptr->location.mapGroup + && sRenewableHiddenItems[i].mapNum == gSaveBlock1Ptr->location.mapNum) found_map = i; } @@ -584,7 +590,7 @@ static void SampleRenewableItemFlags(void) const u8 * flags; u16 rval; - for (i = 0; i < 15; i++) + for (i = 0; i < ARRAY_COUNT(sRenewableHiddenItems); i++) { rval = Random() % 100; if (rval >= 90) @@ -593,9 +599,9 @@ static void SampleRenewableItemFlags(void) flags = sRenewableHiddenItems[i].uncommon; else flags = sRenewableHiddenItems[i].common; - for (j = 0; j < 8; j++) + for (j = 0; j < MAX_HIDDEN_ITEMS_PER_GROUP; j++) { - if (flags[j] != 0xFF) + if (flags[j] != NO_ITEM) FlagClear(FLAG_HIDDEN_ITEMS_START + flags[j]); } } diff --git a/src/reshow_battle_screen.c b/src/reshow_battle_screen.c index 23cb24941..124b6468a 100644 --- a/src/reshow_battle_screen.c +++ b/src/reshow_battle_screen.c @@ -202,9 +202,9 @@ static bool8 LoadBattlerSpriteGfx(u8 battler) BattleLoadSubstituteOrMonSpriteGfx(battler, FALSE); } else if (gBattleTypeFlags & BATTLE_TYPE_SAFARI && battler == B_POSITION_PLAYER_LEFT) // Should be checking position, not battler. - DecompressTrainerBackPalette(BACK_PIC_RED + gSaveBlock2Ptr->playerGender, battler); + DecompressTrainerBackPalette(gSaveBlock2Ptr->playerGender, battler); else if (gBattleTypeFlags & BATTLE_TYPE_OLD_MAN_TUTORIAL && battler == B_POSITION_PLAYER_LEFT) // Should be checking position, not battler. - DecompressTrainerBackPalette(BACK_PIC_OLDMAN, battler); + DecompressTrainerBackPalette(TRAINER_BACK_PIC_OLD_MAN, battler); else if (!gBattleSpritesDataPtr->battlerData[battler].behindSubstitute) BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlerPartyIndexes[battler]], battler); else @@ -231,7 +231,7 @@ static void CreateBattlerSprite(u8 battler) if (GetMonData(&gEnemyParty[gBattlerPartyIndexes[battler]], MON_DATA_HP) == 0) return; SetMultiuseSpriteTemplateToPokemon(GetMonData(&gEnemyParty[gBattlerPartyIndexes[battler]], MON_DATA_SPECIES), GetBattlerPosition(battler)); - gBattlerSpriteIds[battler] = CreateSprite(&gMultiuseSpriteTemplate, GetBattlerSpriteCoord(battler, 2), posY, GetBattlerSpriteSubpriority(battler)); + gBattlerSpriteIds[battler] = CreateSprite(&gMultiuseSpriteTemplate, GetBattlerSpriteCoord(battler, BATTLER_COORD_X_2), posY, GetBattlerSpriteSubpriority(battler)); gSprites[gBattlerSpriteIds[battler]].oam.paletteNum = battler; gSprites[gBattlerSpriteIds[battler]].callback = SpriteCallbackDummy; gSprites[gBattlerSpriteIds[battler]].data[0] = battler; @@ -265,7 +265,7 @@ static void CreateBattlerSprite(u8 battler) else { SetMultiuseSpriteTemplateToPokemon(GetMonData(&gPlayerParty[gBattlerPartyIndexes[battler]], MON_DATA_SPECIES), GetBattlerPosition(battler)); - gBattlerSpriteIds[battler] = CreateSprite(&gMultiuseSpriteTemplate, GetBattlerSpriteCoord(battler, 2), posY, GetBattlerSpriteSubpriority(battler)); + gBattlerSpriteIds[battler] = CreateSprite(&gMultiuseSpriteTemplate, GetBattlerSpriteCoord(battler, BATTLER_COORD_X_2), posY, GetBattlerSpriteSubpriority(battler)); gSprites[gBattlerSpriteIds[battler]].oam.paletteNum = battler; gSprites[gBattlerSpriteIds[battler]].callback = SpriteCallbackDummy; gSprites[gBattlerSpriteIds[battler]].data[0] = battler; diff --git a/src/rfu_union_tool.c b/src/rfu_union_tool.c index 0d848a69e..dc9782d47 100644 --- a/src/rfu_union_tool.c +++ b/src/rfu_union_tool.c @@ -86,15 +86,16 @@ static const u8 sUnionRoomLocalIds[] = { 3 }; -static const u16 sUnref_8457128[] = { - 0x63, - 0x64, - 0x65, - 0x66, - 0x67, - 0x68, - 0x69, - 0x6A +// Unused +static const u16 sHidePlayerFlags[] = { + FLAG_HIDE_UNION_ROOM_PLAYER_1, + FLAG_HIDE_UNION_ROOM_PLAYER_2, + FLAG_HIDE_UNION_ROOM_PLAYER_3, + FLAG_HIDE_UNION_ROOM_PLAYER_4, + FLAG_HIDE_UNION_ROOM_PLAYER_5, + FLAG_HIDE_UNION_ROOM_PLAYER_6, + FLAG_HIDE_UNION_ROOM_PLAYER_7, + FLAG_HIDE_UNION_ROOM_PLAYER_8 }; static bool32 is_walking_or_running(void) @@ -200,7 +201,7 @@ static bool32 TryReleaseUnionRoomPlayerObjectEvent(u32 playerIdx) { return FALSE; } - if (!ScriptContext2_IsEnabled()) + if (!ArePlayerFieldControlsLocked()) { UnfreezeObjectEvent(object); } @@ -440,7 +441,7 @@ void CreateGroupMemberObjectsInvisible(u8 * sprite_ids, s32 group) { s32 obj_id = 5 * group + i; sprite_ids[obj_id] = CreateVirtualObject(OBJ_EVENT_GFX_MAN, obj_id - 0x38, sUnionPartnerCoords[group][0] + sFacingDirectionOffsets[i][0], sUnionPartnerCoords[group][1] + sFacingDirectionOffsets[i][1], 3, 1); - RfuUnionObjectToggleInvisibility(obj_id - 0x38, TRUE); + SetVirtualObjectInvisibility(obj_id - 0x38, TRUE); } } @@ -484,7 +485,7 @@ static u8 UnionPartnerObjectGetFacing(u32 member, u32 group, struct RfuGameData static u32 RfuUnionGroupMemberIsInvisible(u32 group, u32 member) { - return RfuUnionObjectIsInvisible(5 * group + member - 0x38); + return IsVirtualObjectInvisible(5 * group + member - 0x38); } static void SpawnGroupMember(u32 groupNo, u32 memberNo, u8 direction, struct RfuGameData * gname) @@ -493,10 +494,10 @@ static void SpawnGroupMember(u32 groupNo, u32 memberNo, u8 direction, struct Rfu s32 objId = 5 * groupNo + memberNo; if (RfuUnionGroupMemberIsInvisible(groupNo, memberNo) == TRUE) { - RfuUnionObjectToggleInvisibility(objId - 0x38, FALSE); - RfuUnionObjectStartWarp(objId - 0x38, UNION_ROOM_SPAWN_IN); + SetVirtualObjectInvisibility(objId - 0x38, FALSE); + SetVirtualObjectSpriteAnim(objId - 0x38, UNION_ROOM_SPAWN_IN); } - RfuUnionObjectSetFacingDirection(objId - 0x38, direction); + SetVirtualObjectGraphics(objId - 0x38, direction); UnionPartnerObjectSetFacing(memberNo, groupNo, UnionPartnerObjectGetFacing(memberNo, groupNo, gname)); GetUnionRoomPlayerFacingCoords(groupNo, memberNo, &x, &y); MapGridSetMetatileImpassabilityAt(x, y, TRUE); @@ -505,7 +506,7 @@ static void SpawnGroupMember(u32 groupNo, u32 memberNo, u8 direction, struct Rfu static void DespawnGroupMember(u32 group, u32 member) { s32 x, y; - RfuUnionObjectStartWarp(5 * group + member - 0x38, UNION_ROOM_SPAWN_OUT); + SetVirtualObjectSpriteAnim(5 * group + member - 0x38, UNION_ROOM_SPAWN_OUT); GetUnionRoomPlayerFacingCoords(group, member, &x, &y); MapGridSetMetatileImpassabilityAt(x, y, FALSE); } @@ -517,7 +518,7 @@ static void AssembleGroup(u32 group, struct RfuGameData * gname) PlayerGetDestCoords(&x, &y); player_get_pos_including_state_based_drift(&x2, &y2); - if (RfuUnionObjectIsInvisible(5 * group - 0x38) == TRUE) + if (IsVirtualObjectInvisible(5 * group - 0x38) == TRUE) { if (IsUnionRoomPlayerFacingTileAt(group, 0, x, y) == TRUE || IsUnionRoomPlayerFacingTileAt(group, 0, x2, y2) == TRUE) { @@ -630,11 +631,11 @@ bool32 RfuUnionTool_GetGroupAndMemberInFrontOfPlayer(struct UnkStruct_Main0 *mai { continue; } - if (RfuUnionObjectIsInvisible(objId - 0x38) != 0) + if (IsVirtualObjectInvisible(objId - 0x38) != FALSE) { continue; } - if (RfuUnionObjectIsWarping(objId - 0x38) != 0) + if (IsVirtualObjectAnimating(objId - 0x38) != FALSE) { continue; } diff --git a/src/safari_zone.c b/src/safari_zone.c index 748a7d996..a61cc7fdf 100644 --- a/src/safari_zone.c +++ b/src/safari_zone.c @@ -46,7 +46,7 @@ bool8 SafariZoneTakeStep(void) gSafariZoneStepCounter--; if (gSafariZoneStepCounter == 0) { - ScriptContext1_SetupScript(SafariZone_EventScript_TimesUp); + ScriptContext_SetupScript(SafariZone_EventScript_TimesUp); return TRUE; } return FALSE; @@ -54,7 +54,7 @@ bool8 SafariZoneTakeStep(void) void SafariZoneRetirePrompt(void) { - ScriptContext1_SetupScript(SafariZone_EventScript_RetirePrompt); + ScriptContext_SetupScript(SafariZone_EventScript_RetirePrompt); } void CB2_EndSafariBattle(void) @@ -65,15 +65,15 @@ void CB2_EndSafariBattle(void) } else if (gBattleOutcome == B_OUTCOME_NO_SAFARI_BALLS) { - ScriptContext2_RunNewScript(SafariZone_EventScript_OutOfBallsMidBattle); + RunScriptImmediately(SafariZone_EventScript_OutOfBallsMidBattle); WarpIntoMap(); gFieldCallback = FieldCB_SafariZoneRanOutOfBalls; SetMainCallback2(CB2_LoadMap); } else if (gBattleOutcome == B_OUTCOME_CAUGHT) { - ScriptContext1_SetupScript(SafariZone_EventScript_OutOfBalls); - ScriptContext1_Stop(); + ScriptContext_SetupScript(SafariZone_EventScript_OutOfBalls); + ScriptContext_Stop(); SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic); } } diff --git a/src/save_failed_screen.c b/src/save_failed_screen.c index c6e078078..ddb45171a 100644 --- a/src/save_failed_screen.c +++ b/src/save_failed_screen.c @@ -10,7 +10,7 @@ bool32 sIsInSaveFailedScreen; static EWRAM_DATA u16 sSaveType = SAVE_NORMAL; -static EWRAM_DATA u16 unused_203AB4E = 0; +static EWRAM_DATA u16 sUnused = 0; static EWRAM_DATA u8 sSaveFailedScreenState = 0; static void BlankPalettes(void); @@ -59,7 +59,7 @@ bool32 RunSaveFailedScreen(void) break; case 3: ClearMapBuffer(); - PrintTextOnSaveFailedScreen(gText_SaveFailedScreen_CheckingBackupMemory); + PrintTextOnSaveFailedScreen(gText_SaveFailedCheckingBackup); UpdateMapBufferWithText(); sSaveFailedScreenState = 4; break; @@ -75,12 +75,12 @@ bool32 RunSaveFailedScreen(void) if (TryWipeDamagedSectors() == TRUE) { gSaveAttemptStatus = SAVE_STATUS_OK; - PrintTextOnSaveFailedScreen(gText_SaveFailedScreen_SaveCompleted); + PrintTextOnSaveFailedScreen(gText_SaveCompletePressA); } else { gSaveAttemptStatus = SAVE_STATUS_ERROR; - PrintTextOnSaveFailedScreen(gText_SaveFailedScreen_BackupMemoryDamaged); + PrintTextOnSaveFailedScreen(gText_BackupMemoryDamaged); } sSaveFailedScreenState = 6; break; diff --git a/src/save_location.c b/src/save_location.c index 3dc58f32e..52220739c 100644 --- a/src/save_location.c +++ b/src/save_location.c @@ -7,7 +7,7 @@ static bool32 IsCurMapInLocationList(const u16 *list) s32 i; u16 locSum = (gSaveBlock1Ptr->location.mapGroup << 8) + (gSaveBlock1Ptr->location.mapNum); - for (i = 0; list[i] != 0xFFFF; i++) + for (i = 0; list[i] != MAP_UNDEFINED; i++) { if (list[i] == locSum) return TRUE; @@ -40,7 +40,7 @@ static const u16 sSaveLocationPokeCenterList[] = MAP_TRADE_CENTER, MAP_BATTLE_COLOSSEUM_4P, MAP_UNION_ROOM, - 0xFFFF, + MAP_UNDEFINED, }; bool32 IsCurMapPokeCenter(void) @@ -48,18 +48,19 @@ bool32 IsCurMapPokeCenter(void) return IsCurMapInLocationList(sSaveLocationPokeCenterList); } -static const u16 sSaveLocationReloadLocList[] = { 0xFFFF }; +static const u16 sSaveLocationReloadLocList[] = { MAP_UNDEFINED }; static bool32 IsCurMapReloadLocation(void) { return IsCurMapInLocationList(sSaveLocationReloadLocList); } -static const u16 sUnknown_8453094[] = { 0xFFFF }; +// Nulled out list. Unknown what this would have been. +static const u16 sEmptyMapList[] = { MAP_UNDEFINED }; -static bool32 sub_810B75C(void) +static bool32 IsCurMapInEmptyList(void) { - return IsCurMapInLocationList(sUnknown_8453094); + return IsCurMapInLocationList(sEmptyMapList); } static void TrySetPokeCenterWarpStatus(void) @@ -78,9 +79,10 @@ static void TrySetReloadWarpStatus(void) gSaveBlock2Ptr->specialSaveWarpFlags |= LOBBY_SAVEWARP; } -static void sub_810B7CC(void) +// Unknown save warp flag. Never set because map list is empty. +static void TrySetUnknownWarpStatus(void) { - if (!sub_810B75C()) + if (!IsCurMapInEmptyList()) gSaveBlock2Ptr->specialSaveWarpFlags &= ~(UNK_SPECIAL_SAVE_WARP_FLAG_3); else gSaveBlock2Ptr->specialSaveWarpFlags |= UNK_SPECIAL_SAVE_WARP_FLAG_3; @@ -90,21 +92,21 @@ void TrySetMapSaveWarpStatus(void) { TrySetPokeCenterWarpStatus(); TrySetReloadWarpStatus(); - sub_810B7CC(); + TrySetUnknownWarpStatus(); } void SetUnlockedPokedexFlags(void) { - gSaveBlock2Ptr->gcnLinkFlags |= 0x1; - gSaveBlock2Ptr->gcnLinkFlags |= 0x10; - gSaveBlock2Ptr->gcnLinkFlags |= 0x20; + gSaveBlock2Ptr->gcnLinkFlags |= (1 << 0); + gSaveBlock2Ptr->gcnLinkFlags |= (1 << 4); + gSaveBlock2Ptr->gcnLinkFlags |= (1 << 5); } void SetPostgameFlags(void) { gSaveBlock2Ptr->specialSaveWarpFlags |= CHAMPION_SAVEWARP; - gSaveBlock2Ptr->gcnLinkFlags |= 0x2; - gSaveBlock2Ptr->gcnLinkFlags |= 0x4; - gSaveBlock2Ptr->gcnLinkFlags |= 0x8; - gSaveBlock2Ptr->gcnLinkFlags |= 0x8000; + gSaveBlock2Ptr->gcnLinkFlags |= (1 << 1); + gSaveBlock2Ptr->gcnLinkFlags |= (1 << 2); + gSaveBlock2Ptr->gcnLinkFlags |= (1 << 3); + gSaveBlock2Ptr->gcnLinkFlags |= (1 << 15); } diff --git a/src/scrcmd.c b/src/scrcmd.c index 37e7bfefb..12d0a9588 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -125,7 +125,7 @@ bool8 ScrCmd_callnative(struct ScriptContext * ctx) bool8 ScrCmd_waitstate(struct ScriptContext * ctx) { - ScriptContext1_Stop(); + ScriptContext_Stop(); return TRUE; } @@ -254,7 +254,7 @@ bool8 ScrCmd_callstd_if(struct ScriptContext * ctx) bool8 ScrCmd_returnram(struct ScriptContext * ctx) { - ScriptJump(ctx, gRAMScriptPtr); + ScriptJump(ctx, gRamScriptRetAddr); return FALSE; } @@ -276,7 +276,7 @@ bool8 ScrCmd_trywondercardscript(struct ScriptContext * ctx) const u8 * script = GetSavedRamScriptIfValid(); if (script != NULL) { - gRAMScriptPtr = ctx->scriptPtr; + gRamScriptRetAddr = ctx->scriptPtr; ScriptJump(ctx, script); } return FALSE; @@ -604,7 +604,7 @@ bool8 ScrCmd_setworldmapflag(struct ScriptContext * ctx) bool8 ScrCmd_animateflash(struct ScriptContext * ctx) { AnimateFlash(ScriptReadByte(ctx)); - ScriptContext1_Stop(); + ScriptContext_Stop(); return TRUE; } @@ -1414,7 +1414,7 @@ bool8 ScrCmd_yesnobox(struct ScriptContext * ctx) if (ScriptMenu_YesNo(left, top) == TRUE) { - ScriptContext1_Stop(); + ScriptContext_Stop(); return TRUE; } else @@ -1432,7 +1432,7 @@ bool8 ScrCmd_multichoice(struct ScriptContext * ctx) if (ScriptMenu_Multichoice(left, top, multichoiceId, ignoreBPress) == TRUE) { - ScriptContext1_Stop(); + ScriptContext_Stop(); return TRUE; } else @@ -1451,7 +1451,7 @@ bool8 ScrCmd_multichoicedefault(struct ScriptContext * ctx) if (ScriptMenu_MultichoiceWithDefault(left, top, multichoiceId, ignoreBPress, defaultChoice) == TRUE) { - ScriptContext1_Stop(); + ScriptContext_Stop(); return TRUE; } else @@ -1481,7 +1481,7 @@ bool8 ScrCmd_multichoicegrid(struct ScriptContext * ctx) if (ScriptMenu_MultichoiceGrid(left, top, multichoiceId, ignoreBPress, numColumns) == TRUE) { - ScriptContext1_Stop(); + ScriptContext_Stop(); return TRUE; } else @@ -1510,7 +1510,7 @@ bool8 ScrCmd_drawboxtext(struct ScriptContext * ctx) /*if (Multichoice(left, top, multichoiceId, ignoreBPress) == TRUE) { - ScriptContext1_Stop(); + ScriptContext_Stop(); return TRUE; }*/ return FALSE; @@ -1548,7 +1548,7 @@ bool8 ScrCmd_showcontestpainting(struct ScriptContext * ctx) SetContestWinnerForPainting(contestWinnerId); ShowContestPainting(); - ScriptContext1_Stop() + ScriptContext_Stop() return TRUE; */ return FALSE; @@ -1617,7 +1617,7 @@ bool8 ScrCmd_bufferpartymonnick(struct ScriptContext * ctx) u16 partyIndex = VarGet(ScriptReadHalfword(ctx)); GetMonData(&gPlayerParty[partyIndex], MON_DATA_NICKNAME, sScriptStringVars[stringVarIndex]); - StringGetEnd10(sScriptStringVars[stringVarIndex]); + StringGet_Nickname(sScriptStringVars[stringVarIndex]); return FALSE; } @@ -1932,7 +1932,7 @@ bool8 ScrCmd_setwildbattle(struct ScriptContext * ctx) bool8 ScrCmd_dowildbattle(struct ScriptContext * ctx) { StartScriptedWildBattle(); - ScriptContext1_Stop(); + ScriptContext_Stop(); return TRUE; } @@ -1941,7 +1941,7 @@ bool8 ScrCmd_pokemart(struct ScriptContext * ctx) const void *ptr = (void *)ScriptReadWord(ctx); CreatePokemartMenu(ptr); - ScriptContext1_Stop(); + ScriptContext_Stop(); return TRUE; } @@ -1950,7 +1950,7 @@ bool8 ScrCmd_pokemartdecoration(struct ScriptContext * ctx) const void *ptr = (void *)ScriptReadWord(ctx); CreateDecorationShop1Menu(ptr); - ScriptContext1_Stop(); + ScriptContext_Stop(); return TRUE; } @@ -1960,7 +1960,7 @@ bool8 ScrCmd_pokemartdecoration2(struct ScriptContext * ctx) const void *ptr = (void *)ScriptReadWord(ctx); CreateDecorationShop2Menu(ptr); - ScriptContext1_Stop(); + ScriptContext_Stop(); return TRUE; } @@ -1969,7 +1969,7 @@ bool8 ScrCmd_playslotmachine(struct ScriptContext * ctx) u8 slotMachineIndex = VarGet(ScriptReadHalfword(ctx)); PlaySlotMachine(slotMachineIndex, CB2_ReturnToFieldContinueScriptPlayMapMusic); - ScriptContext1_Stop(); + ScriptContext_Stop(); return TRUE; } @@ -1997,7 +1997,7 @@ bool8 ScrCmd_getpokenewsactive(struct ScriptContext * ctx) bool8 ScrCmd_choosecontestmon(struct ScriptContext * ctx) { // ChooseContestMon(); - ScriptContext1_Stop(); + ScriptContext_Stop(); return TRUE; } @@ -2005,7 +2005,7 @@ bool8 ScrCmd_choosecontestmon(struct ScriptContext * ctx) bool8 ScrCmd_startcontest(struct ScriptContext * ctx) { // StartContest(); -// ScriptContext1_Stop(); +// ScriptContext_Stop(); // return TRUE; return FALSE; } @@ -2013,7 +2013,7 @@ bool8 ScrCmd_startcontest(struct ScriptContext * ctx) bool8 ScrCmd_showcontestresults(struct ScriptContext * ctx) { // ShowContestResults(); -// ScriptContext1_Stop(); +// ScriptContext_Stop(); // return TRUE; return FALSE; } @@ -2021,7 +2021,7 @@ bool8 ScrCmd_showcontestresults(struct ScriptContext * ctx) bool8 ScrCmd_contestlinktransfer(struct ScriptContext * ctx) { // ContestLinkTransfer(gSpecialVar_ContestCategory); -// ScriptContext1_Stop(); +// ScriptContext_Stop(); // return TRUE; return FALSE; } @@ -2091,15 +2091,15 @@ bool8 ScrCmd_setmetatile(struct ScriptContext * ctx) { u16 x = VarGet(ScriptReadHalfword(ctx)); u16 y = VarGet(ScriptReadHalfword(ctx)); - u16 tileId = VarGet(ScriptReadHalfword(ctx)); + u16 metatileId = VarGet(ScriptReadHalfword(ctx)); bool16 isImpassable = VarGet(ScriptReadHalfword(ctx)); x += MAP_OFFSET; y += MAP_OFFSET; if (!isImpassable) - MapGridSetMetatileIdAt(x, y, tileId); + MapGridSetMetatileIdAt(x, y, metatileId); else - MapGridSetMetatileIdAt(x, y, tileId | METATILE_COLLISION_MASK); + MapGridSetMetatileIdAt(x, y, metatileId | MAPGRID_COLLISION_MASK); return FALSE; } @@ -2176,7 +2176,7 @@ bool8 ScrCmd_addelevmenuitem(struct ScriptContext * ctx) bool8 ScrCmd_showelevmenu(struct ScriptContext * ctx) { /*ScriptShowElevatorMenu(); - ScriptContext1_Stop(); + ScriptContext_Stop(); return TRUE;*/ return FALSE; } @@ -2212,13 +2212,13 @@ bool8 ScrCmd_removecoins(struct ScriptContext * ctx) bool8 ScrCmd_signmsg(struct ScriptContext * ctx) { - MsgSetSignPost(); + MsgSetSignpost(); return FALSE; } bool8 ScrCmd_normalmsg(struct ScriptContext * ctx) { - MsgSetNotSignPost(); + MsgSetNotSignpost(); return FALSE; } diff --git a/src/script.c b/src/script.c index 1592170cd..641c63572 100644 --- a/src/script.c +++ b/src/script.c @@ -3,37 +3,40 @@ #include "event_data.h" #include "quest_log.h" #include "constants/maps.h" - -#define RAM_SCRIPT_MAGIC 51 -#define SCRIPT_STACK_SIZE 20 - +#include "constants/map_scripts.h" extern void ResetContextNpcTextColor(void); // field_specials extern u16 CalcCRC16WithTable(u8 *data, int length); // util extern bool32 ValidateReceivedWonderCard(void); // mevent -enum -{ +#define RAM_SCRIPT_MAGIC 51 + +enum { SCRIPT_MODE_STOPPED, SCRIPT_MODE_BYTECODE, SCRIPT_MODE_NATIVE, }; -EWRAM_DATA u8 gWalkAwayFromSignInhibitTimer = 0; -EWRAM_DATA const u8 *gRAMScriptPtr = NULL; +enum { + CONTEXT_RUNNING, + CONTEXT_WAITING, + CONTEXT_SHUTDOWN, +}; -// iwram bss -static u8 sScriptContext1Status; +EWRAM_DATA u8 gWalkAwayFromSignInhibitTimer = 0; +EWRAM_DATA const u8 *gRamScriptRetAddr = NULL; + +static u8 sGlobalScriptContextStatus; static u32 sUnusedVariable1; -static struct ScriptContext sScriptContext1; +static struct ScriptContext sGlobalScriptContext; static u32 sUnusedVariable2; -static struct ScriptContext sScriptContext2; -static bool8 sScriptContext2Enabled; +static struct ScriptContext sImmediateScriptContext; +static bool8 sLockFieldControls; static u8 sMsgBoxWalkawayDisabled; static u8 sMsgBoxIsCancelable; static u8 sQuestLogInput; static u8 sQuestLogInputIsDpad; -static u8 sMsgIsSignPost; +static u8 sMsgIsSignpost; extern ScrCmdFunc gScriptCmdTable[]; extern ScrCmdFunc gScriptCmdTableEnd[]; @@ -50,10 +53,10 @@ void InitScriptContext(struct ScriptContext *ctx, void *cmdTable, void *cmdTable ctx->cmdTable = cmdTable; ctx->cmdTableEnd = cmdTableEnd; - for (i = 0; i < 4; i++) + for (i = 0; i < (int)ARRAY_COUNT(ctx->data); i++) ctx->data[i] = 0; - for (i = 0; i < SCRIPT_STACK_SIZE; i++) + for (i = 0; i < (int)ARRAY_COUNT(ctx->stack); i++) ctx->stack[i] = 0; } @@ -90,6 +93,8 @@ bool8 RunScriptCommand(struct ScriptContext *ctx) case SCRIPT_MODE_STOPPED: return FALSE; case SCRIPT_MODE_NATIVE: + // Try to call a function in C + // Continue to bytecode if no function or it returns TRUE if (ctx->nativePtr) { if (ctx->nativePtr() == TRUE) @@ -97,6 +102,7 @@ bool8 RunScriptCommand(struct ScriptContext *ctx) return TRUE; } ctx->mode = SCRIPT_MODE_BYTECODE; + // fallthrough case SCRIPT_MODE_BYTECODE: while (1) { @@ -133,9 +139,9 @@ bool8 RunScriptCommand(struct ScriptContext *ctx) return TRUE; } -u8 ScriptPush(struct ScriptContext *ctx, const u8 *ptr) +static u8 ScriptPush(struct ScriptContext *ctx, const u8 *ptr) { - if (ctx->stackDepth + 1 >= SCRIPT_STACK_SIZE) + if (ctx->stackDepth + 1 >= (int)ARRAY_COUNT(ctx->stack)) { return 1; } @@ -147,7 +153,7 @@ u8 ScriptPush(struct ScriptContext *ctx, const u8 *ptr) } } -const u8 *ScriptPop(struct ScriptContext *ctx) +static const u8 *ScriptPop(struct ScriptContext *ctx) { if (ctx->stackDepth == 0) return NULL; @@ -188,19 +194,19 @@ u32 ScriptReadWord(struct ScriptContext *ctx) return (((((value3 << 8) + value2) << 8) + value1) << 8) + value0; } -void ScriptContext2_Enable(void) +void LockPlayerFieldControls(void) { - sScriptContext2Enabled = TRUE; + sLockFieldControls = TRUE; } -void ScriptContext2_Disable(void) +void UnlockPlayerFieldControls(void) { - sScriptContext2Enabled = FALSE; + sLockFieldControls = FALSE; } -bool8 ScriptContext2_IsEnabled(void) +bool8 ArePlayerFieldControlsLocked(void) { - return sScriptContext2Enabled; + return sLockFieldControls; } void SetQuestLogInputIsDpadFlag(void) @@ -270,94 +276,110 @@ bool8 CanWalkAwayToCancelMsgBox(void) return FALSE; } -void MsgSetSignPost(void) +void MsgSetSignpost(void) { - sMsgIsSignPost = TRUE; + sMsgIsSignpost = TRUE; } -void MsgSetNotSignPost(void) +void MsgSetNotSignpost(void) { - sMsgIsSignPost = FALSE; + sMsgIsSignpost = FALSE; } -bool8 IsMsgSignPost(void) +bool8 IsMsgSignpost(void) { - if(sMsgIsSignPost == TRUE) + if(sMsgIsSignpost == TRUE) return TRUE; else return FALSE; } -void ResetFacingNpcOrSignPostVars(void) +void ResetFacingNpcOrSignpostVars(void) { ResetContextNpcTextColor(); - MsgSetNotSignPost(); + MsgSetNotSignpost(); } -bool8 ScriptContext1_IsScriptSetUp(void) +// The ScriptContext_* functions work with the primary script context, +// which yields control back to native code should the script make a wait call. + +// Checks if the global script context is able to be run right now. +bool8 ScriptContext_IsEnabled(void) { - if (sScriptContext1Status == 0) + if (sGlobalScriptContextStatus == CONTEXT_RUNNING) return TRUE; else return FALSE; } -void ScriptContext1_Init(void) +// Re-initializes the global script context to zero. +void ScriptContext_Init(void) { - InitScriptContext(&sScriptContext1, gScriptCmdTable, gScriptCmdTableEnd); - sScriptContext1Status = 2; + InitScriptContext(&sGlobalScriptContext, gScriptCmdTable, gScriptCmdTableEnd); + sGlobalScriptContextStatus = CONTEXT_SHUTDOWN; } -bool8 ScriptContext2_RunScript(void) +// Runs the script until the script makes a wait* call, then returns true if +// there's more script to run, or false if the script has hit the end. +// This function also returns false if the context is finished +// or waiting (after a call to _Stop) +bool8 ScriptContext_RunScript(void) { - if (sScriptContext1Status == 2) - return 0; + if (sGlobalScriptContextStatus == CONTEXT_SHUTDOWN) + return FALSE; - if (sScriptContext1Status == 1) - return 0; + if (sGlobalScriptContextStatus == CONTEXT_WAITING) + return FALSE; - ScriptContext2_Enable(); + LockPlayerFieldControls(); - if (!RunScriptCommand(&sScriptContext1)) + if (!RunScriptCommand(&sGlobalScriptContext)) { - sScriptContext1Status = 2; - ScriptContext2_Disable(); - return 0; + sGlobalScriptContextStatus = CONTEXT_SHUTDOWN; + UnlockPlayerFieldControls(); + return FALSE; } - return 1; + return TRUE; } -void ScriptContext1_SetupScript(const u8 *ptr) +// Sets up a new script in the global context and enables the context +void ScriptContext_SetupScript(const u8 *ptr) { ClearMsgBoxCancelableState(); EnableMsgBoxWalkaway(); ClearQuestLogInputIsDpadFlag(); - InitScriptContext(&sScriptContext1, gScriptCmdTable, gScriptCmdTableEnd); - SetupBytecodeScript(&sScriptContext1, ptr); - ScriptContext2_Enable(); - sScriptContext1Status = 0; + + InitScriptContext(&sGlobalScriptContext, gScriptCmdTable, gScriptCmdTableEnd); + SetupBytecodeScript(&sGlobalScriptContext, ptr); + LockPlayerFieldControls(); + sGlobalScriptContextStatus = CONTEXT_RUNNING; } -void ScriptContext1_Stop(void) +// Puts the script into waiting mode; usually called from a wait* script command. +void ScriptContext_Stop(void) { - sScriptContext1Status = 1; + sGlobalScriptContextStatus = CONTEXT_WAITING; } -void EnableBothScriptContexts(void) +// Puts the script into running mode. +void ScriptContext_Enable(void) { - sScriptContext1Status = 0; - ScriptContext2_Enable(); + sGlobalScriptContextStatus = CONTEXT_RUNNING; + LockPlayerFieldControls(); } -void ScriptContext2_RunNewScript(const u8 *ptr) +// Sets up and runs a script in its own context immediately. The script will be +// finished when this function returns. Used mainly by all of the map header +// scripts (except the frame table scripts). +void RunScriptImmediately(const u8 *ptr) { - InitScriptContext(&sScriptContext2, &gScriptCmdTable, &gScriptCmdTableEnd); - SetupBytecodeScript(&sScriptContext2, ptr); - while (RunScriptCommand(&sScriptContext2) == TRUE); + InitScriptContext(&sImmediateScriptContext, &gScriptCmdTable, &gScriptCmdTableEnd); + SetupBytecodeScript(&sImmediateScriptContext, ptr); + while (RunScriptCommand(&sImmediateScriptContext) == TRUE); } -u8 *mapheader_get_tagged_pointer(u8 tag) +static u8 *MapHeaderGetScriptTable(u8 tag) { const u8 *mapScripts = gMapHeader.mapScripts; @@ -377,16 +399,16 @@ u8 *mapheader_get_tagged_pointer(u8 tag) } } -void mapheader_run_script_by_tag(u8 tag) +static void MapHeaderRunScriptType(u8 tag) { - u8 *ptr = mapheader_get_tagged_pointer(tag); + u8 *ptr = MapHeaderGetScriptTable(tag); if (ptr != NULL) - ScriptContext2_RunNewScript(ptr); + RunScriptImmediately(ptr); } -u8 *mapheader_get_first_match_from_tagged_ptr_list(u8 tag) +static u8 *MapHeaderCheckScriptTable(u8 tag) { - u8 *ptr = mapheader_get_tagged_pointer(tag); + u8 *ptr = MapHeaderGetScriptTable(tag); if (ptr == NULL) return NULL; @@ -395,64 +417,70 @@ u8 *mapheader_get_first_match_from_tagged_ptr_list(u8 tag) { u16 varIndex1; u16 varIndex2; - varIndex1 = ptr[0] | (ptr[1] << 8); + + // Read first var (or .2byte terminal value) + varIndex1 = T1_READ_16(ptr); if (!varIndex1) - return NULL; + return NULL; // Reached end of table ptr += 2; - varIndex2 = ptr[0] | (ptr[1] << 8); + + // Read second var + varIndex2 = T1_READ_16(ptr); ptr += 2; + + // Run map script if vars are equal if (VarGet(varIndex1) == VarGet(varIndex2)) - return (u8 *)(ptr[0] + (ptr[1] << 8) + (ptr[2] << 16) + (ptr[3] << 24)); + return T2_READ_PTR(ptr); ptr += 4; } } void RunOnLoadMapScript(void) { - mapheader_run_script_by_tag(1); + MapHeaderRunScriptType(MAP_SCRIPT_ON_LOAD); } void RunOnTransitionMapScript(void) { - mapheader_run_script_by_tag(3); + MapHeaderRunScriptType(MAP_SCRIPT_ON_TRANSITION); } void RunOnResumeMapScript(void) { - mapheader_run_script_by_tag(5); + MapHeaderRunScriptType(MAP_SCRIPT_ON_RESUME); } void RunOnReturnToFieldMapScript(void) { - mapheader_run_script_by_tag(7); + MapHeaderRunScriptType(MAP_SCRIPT_ON_RETURN_TO_FIELD); } void RunOnDiveWarpMapScript(void) { - mapheader_run_script_by_tag(6); + MapHeaderRunScriptType(MAP_SCRIPT_ON_DIVE_WARP); } bool8 TryRunOnFrameMapScript(void) { u8 *ptr; - if(gQuestLogState == QL_STATE_PLAYBACK_LAST) - return 0; + if (gQuestLogState == QL_STATE_PLAYBACK_LAST) + return FALSE; - ptr = mapheader_get_first_match_from_tagged_ptr_list(2); + ptr = MapHeaderCheckScriptTable(MAP_SCRIPT_ON_FRAME_TABLE); if (!ptr) - return 0; + return FALSE; - ScriptContext1_SetupScript(ptr); - return 1; + ScriptContext_SetupScript(ptr); + return TRUE; } void TryRunOnWarpIntoMapScript(void) { - u8 *ptr = mapheader_get_first_match_from_tagged_ptr_list(4); + u8 *ptr = MapHeaderCheckScriptTable(MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE); if (ptr) - ScriptContext2_RunNewScript(ptr); + RunScriptImmediately(ptr); } u32 CalculateRamScriptChecksum(void) @@ -486,7 +514,7 @@ bool8 InitRamScript(u8 *script, u16 scriptSize, u8 mapGroup, u8 mapNum, u8 objec const u8 *GetRamScript(u8 objectId, const u8 *script) { struct RamScriptData *scriptData = &gSaveBlock1Ptr->ramScript.data; - gRAMScriptPtr = NULL; + gRamScriptRetAddr = NULL; if (scriptData->magic != RAM_SCRIPT_MAGIC) return script; if (scriptData->mapGroup != gSaveBlock1Ptr->location.mapGroup) @@ -502,7 +530,7 @@ const u8 *GetRamScript(u8 objectId, const u8 *script) } else { - gRAMScriptPtr = script; + gRamScriptRetAddr = script; return scriptData->script; } } @@ -547,9 +575,9 @@ u8 *GetSavedRamScriptIfValid(void) } } -void MEventSetRamScript(u8 *script, u16 scriptSize) +void InitRamScript_NoObjectEvent(u8 *script, u16 scriptSize) { if (scriptSize > sizeof(gSaveBlock1Ptr->ramScript.data.script)) scriptSize = sizeof(gSaveBlock1Ptr->ramScript.data.script); - InitRamScript(script, scriptSize, 0xFF, 0xFF, 0xFF); + InitRamScript(script, scriptSize, MAP_GROUP(UNDEFINED), MAP_NUM(UNDEFINED), 0xFF); } diff --git a/src/script_menu.c b/src/script_menu.c index d59ed07f7..921a12682 100644 --- a/src/script_menu.c +++ b/src/script_menu.c @@ -306,7 +306,7 @@ static const struct MenuAction sScriptMultiChoiceMenu_Eeveelutions[] = { }; static const struct MenuAction sScriptMultiChoiceMenu_BikeShop[] = { - { gText_Bicycle_1000000 }, + { gText_Bicycle_Price }, { gText_NoThanks } }; @@ -379,8 +379,8 @@ static const struct MenuAction sScriptMultiChoiceMenu_TradeColosseumCrush[] = { }; static const struct MenuAction sScriptMultiChoiceMenu_48[] = { - { gText_Dummy_8417E66 }, - { gText_Dummy_8417E67 }, + { gText_EmptyLinkService1 }, + { gText_EmptyLinkService2 }, { gOtherText_Exit } }; @@ -404,7 +404,7 @@ static const struct MenuAction sScriptMultiChoiceMenu_Mushrooms[] = { static const struct MenuAction sScriptMultiChoiceMenu_TradeColosseumBlankCrush[] = { { gText_TradeCenter }, { gText_Colosseum_2 }, - { gText_Dummy_8417E71 }, + { gText_RecordCorner }, { gText_BerryCrush }, { gOtherText_Exit } }; @@ -412,7 +412,7 @@ static const struct MenuAction sScriptMultiChoiceMenu_TradeColosseumBlankCrush[] static const struct MenuAction sScriptMultiChoiceMenu_TradeColosseumBlank[] = { { gText_TradeCenter }, { gText_Colosseum_2 }, - { gText_Dummy_8417E71 }, + { gText_RecordCorner }, { gOtherText_Exit } }; @@ -469,8 +469,8 @@ static const struct MenuAction sScriptMultiChoiceMenu_SeagallopVermilion[] = { }; static const struct MenuAction sScriptMultiChoiceMenu_62[] = { - { gText_Dummy_8417F68 }, - { gText_Dummy_8417F67 }, + { gText_Multichoice_Empty1 }, + { gText_Multichoice_Empty2 }, { gOtherText_Exit } }; @@ -816,7 +816,7 @@ static void Task_MultichoiceMenu_HandleInput(u8 taskId) } DestroyScriptMenuWindow(data[6]); DestroyTask(taskId); - EnableBothScriptContexts(); + ScriptContext_Enable(); } } } @@ -853,7 +853,8 @@ bool8 ScriptMenu_YesNo(u8 unused, u8 stuff) return TRUE; } -bool8 sub_809CE38(void) +// Unused +static bool8 IsScriptActive(void) { if (gSpecialVar_Result == SCR_MENU_UNSET) return FALSE; @@ -885,7 +886,7 @@ static void Task_YesNoMenu_HandleInput(u8 taskId) break; } DestroyTask(taskId); - EnableBothScriptContexts(); + ScriptContext_Enable(); } } @@ -936,7 +937,7 @@ static void Hask_MultichoiceGridMenu_HandleInput(u8 taskId) } DestroyScriptMenuWindow(data[6]); DestroyTask(taskId); - EnableBothScriptContexts(); + ScriptContext_Enable(); } bool8 CreatePCMenu(void) @@ -1002,7 +1003,7 @@ static void CreatePCMenuWindow(void) void ScriptMenu_DisplayPCStartupPrompt(void) { - sub_80F7768(0, TRUE); + LoadMessageBoxAndFrameGfx(0, TRUE); AddTextPrinterParameterized2(0, FONT_2, Text_AccessWhichPC, 0, NULL, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_GRAY); } @@ -1172,7 +1173,7 @@ void QLPlaybackCB_DestroyScriptMenuMonPicSprites(void) { u8 taskId; s16 *data; - ScriptContext1_SetupScript(EventScript_ReleaseEnd); + ScriptContext_SetupScript(EventScript_ReleaseEnd); taskId = FindTaskIdByFunc(Task_ScriptShowMonPic); if (taskId != 0xFF) { diff --git a/src/script_pokemon_util.c b/src/script_pokemon_util.c index 561621c1f..4bd5c9f22 100644 --- a/src/script_pokemon_util.c +++ b/src/script_pokemon_util.c @@ -153,7 +153,7 @@ void ChooseHalfPartyForBattle(void) { gMain.savedCallback = CB2_ReturnFromChooseHalfParty; // VarSet(VAR_FRONTIER_FACILITY, FACILITY_MULTI_OR_EREADER); - InitChooseHalfPartyForBattle(0); + InitChooseMonsForBattle(CHOOSE_MONS_FOR_CABLE_CLUB_BATTLE); } static void CB2_ReturnFromChooseHalfParty(void) @@ -174,7 +174,7 @@ static void CB2_ReturnFromChooseHalfParty(void) void ChooseBattleTowerPlayerParty(void) { gMain.savedCallback = CB2_ReturnFromChooseBattleTowerParty; - InitChooseHalfPartyForBattle(1); + InitChooseMonsForBattle(CHOOSE_MONS_FOR_BATTLE_TOWER); } static void CB2_ReturnFromChooseBattleTowerParty(void) diff --git a/src/seagallop.c b/src/seagallop.c index 0c8ab7500..73e580894 100644 --- a/src/seagallop.c +++ b/src/seagallop.c @@ -212,7 +212,7 @@ static void CB2_SetUpSeagallopScene(void) CopyToBgTilemapBufferRect(3, sWaterTilemap_WB, 0, 0, 32, 32); } LoadPalette(sWaterPal, 0x40, 0x20); - LoadPalette(stdpal_get(2), 0xF0, 0x20); + LoadPalette(GetTextWindowPalette(2), 0xF0, 0x20); gMain.state++; break; case 4: diff --git a/src/shop.c b/src/shop.c index 7f815c486..a81e6e824 100644 --- a/src/shop.c +++ b/src/shop.c @@ -338,7 +338,7 @@ static void Task_ReturnToShopMenu(u8 taskId) if (IsWeatherNotFadingIn() != TRUE) return; - DisplayItemMessageOnField(taskId, GetMartFontId(), gText_CanIHelpWithAnythingElse, ShowShopMenuAfterExitingBuyOrSellMenu); + DisplayItemMessageOnField(taskId, GetMartFontId(), gText_AnythingElseICanHelp, ShowShopMenuAfterExitingBuyOrSellMenu); } static void ShowShopMenuAfterExitingBuyOrSellMenu(u8 taskId) @@ -594,7 +594,7 @@ static void BuyMenuPrintItemDescriptionAndShowItemIcon(s32 item, bool8 onInit, s if (item != INDEX_CANCEL) CreateItemMenuIcon(item, gShopData.itemSlot); else - CreateItemMenuIcon(ITEM_N_A, gShopData.itemSlot); + CreateItemMenuIcon(ITEMS_COUNT, gShopData.itemSlot); gShopData.itemSlot ^= 1; BuyMenuPrint(5, FONT_2, description, 0, 3, 2, 1, 0, 0); @@ -629,7 +629,7 @@ static void LoadTmHmNameInMart(s32 item) if (item != INDEX_CANCEL) { ConvertIntToDecimalStringN(gStringVar1, item - ITEM_DEVON_SCOPE, 2, 2); - StringCopy(gStringVar4, gOtherText_UnkF9_08_Clear_01); + StringCopy(gStringVar4, gText_NumberClear01); StringAppend(gStringVar4, gStringVar1); BuyMenuPrint(6, FONT_0, gStringVar4, 0, 0, 0, 0, TEXT_SKIP_DRAW, 1); StringCopy(gStringVar4, gMoveNames[ItemIdToBattleMoveId(item)]); @@ -751,13 +751,9 @@ static void BuyMenuDrawMapBg(void) metatileLayerType = MapGridGetMetatileLayerTypeAt(x + i, y + j); if (metatile < NUM_METATILES_IN_PRIMARY) - { - BuyMenuDrawMapMetatile(i, j, (u16 *)mapLayout->primaryTileset->metatiles + metatile * 8, metatileLayerType); - } + BuyMenuDrawMapMetatile(i, j, mapLayout->primaryTileset->metatiles + metatile * 8, metatileLayerType); else - { - BuyMenuDrawMapMetatile(i, j, (u16 *)mapLayout->secondaryTileset->metatiles + ((metatile - NUM_METATILES_IN_PRIMARY) * 8), metatileLayerType); - } + BuyMenuDrawMapMetatile(i, j, mapLayout->secondaryTileset->metatiles + ((metatile - NUM_METATILES_IN_PRIMARY) * 8), metatileLayerType); } } } @@ -769,15 +765,15 @@ static void BuyMenuDrawMapMetatile(s16 x, s16 y, const u16 *src, u8 metatileLaye switch (metatileLayerType) { - case 0: + case METATILE_LAYER_TYPE_NORMAL: BuyMenuDrawMapMetatileLayer(*gShopTilemapBuffer4, offset1, offset2, src); BuyMenuDrawMapMetatileLayer(*gShopTilemapBuffer2, offset1, offset2, src + 4); break; - case 1: + case METATILE_LAYER_TYPE_COVERED: BuyMenuDrawMapMetatileLayer(*gShopTilemapBuffer3, offset1, offset2, src); BuyMenuDrawMapMetatileLayer(*gShopTilemapBuffer4, offset1, offset2, src + 4); break; - case 2: + case METATILE_LAYER_TYPE_SPLIT: BuyMenuDrawMapMetatileLayer(*gShopTilemapBuffer3, offset1, offset2, src); BuyMenuDrawMapMetatileLayer(*gShopTilemapBuffer2, offset1, offset2, src + 4); break; @@ -795,11 +791,11 @@ static void BuyMenuDrawMapMetatileLayer(u16 *dest, s16 offset1, s16 offset2, con static void BuyMenuCollectObjectEventData(void) { s16 facingX, facingY; - u8 x, y, z; + u8 x, y, elevation; u8 num = 0; GetXYCoordsOneStepInFrontOfPlayer(&facingX, &facingY); - z = PlayerGetZCoord(); + elevation = PlayerGetElevation(); for (y = 0; y < OBJECT_EVENTS_COUNT; y++) sViewportObjectEvents[y][OBJECT_EVENT_ID] = OBJECT_EVENTS_COUNT; @@ -808,7 +804,7 @@ static void BuyMenuCollectObjectEventData(void) { for (x = 0; x < 7; x++) { - u8 eventObjId = GetObjectEventIdByXYZ(facingX - 3 + x, facingY - 2 + y, z); + u8 eventObjId = GetObjectEventIdByPosition(facingX - 3 + x, facingY - 2 + y, elevation); if (eventObjId != OBJECT_EVENTS_COUNT) { sViewportObjectEvents[num][OBJECT_EVENT_ID] = eventObjId; @@ -848,7 +844,7 @@ static void BuyMenuDrawObjectEvents(void) continue; graphicsInfo = GetObjectEventGraphicsInfo(gObjectEvents[sViewportObjectEvents[i][OBJECT_EVENT_ID]].graphicsId); - spriteId = AddPseudoObjectEvent( + spriteId = CreateObjectGraphicsSprite( gObjectEvents[sViewportObjectEvents[i][OBJECT_EVENT_ID]].graphicsId, SpriteCallbackDummy, (u16)sViewportObjectEvents[i][X_COORD] * 16 - 8, @@ -1129,7 +1125,7 @@ void CreatePokemartMenu(const u16 *itemsForSale) { SetShopItemsForSale(itemsForSale); CreateShopMenu(MART_TYPE_REGULAR); - SetShopMenuCallback(EnableBothScriptContexts); + SetShopMenuCallback(ScriptContext_Enable); DebugFunc_PrintShopMenuHistoryBeforeClearMaybe(); memset(&gShopMenuHistory, 0, sizeof(gShopMenuHistory)); gShopMenuHistory[0].unk8 = gMapHeader.regionMapSectionId; @@ -1140,13 +1136,13 @@ void CreateDecorationShop1Menu(const u16 *itemsForSale) { SetShopItemsForSale(itemsForSale); CreateShopMenu(MART_TYPE_DECOR); - SetShopMenuCallback(EnableBothScriptContexts); + SetShopMenuCallback(ScriptContext_Enable); } void CreateDecorationShop2Menu(const u16 *itemsForSale) { SetShopItemsForSale(itemsForSale); CreateShopMenu(MART_TYPE_DECOR2); - SetShopMenuCallback(EnableBothScriptContexts); + SetShopMenuCallback(ScriptContext_Enable); } diff --git a/src/slot_machine.c b/src/slot_machine.c index 8ec307ea0..1e59680fc 100644 --- a/src/slot_machine.c +++ b/src/slot_machine.c @@ -1975,8 +1975,8 @@ static bool8 SlotsTask_GraphicsInit(u8 * state, struct SlotMachineSetupTaskData LoadPalette(sBgPal_50, 0x50, 0x20); LoadPalette(sBgPal_70, 0x70, 0x60); LoadColor(RGB(30, 30, 31), pal); - LoadUserWindowBorderGfx(0, 0x00A, 0xD0); - DrawWindowBorderWithStdpal3(0, 0x001, 0xF0); + LoadUserWindowGfx2(0, 0x00A, 0xD0); + LoadStdWindowGfxOnBg(0, 0x001, 0xF0); SetBgTilemapBuffer(0, ptr->bg0TilemapBuffer); FillBgTilemapBufferRect_Palette0(0, 0, 0, 2, 32, 30); @@ -1984,7 +1984,7 @@ static bool8 SlotsTask_GraphicsInit(u8 * state, struct SlotMachineSetupTaskData DecompressAndCopyTileDataToVram(1, sBg1Map, 0, 0, 1); CopyBgTilemapBufferToVram(1); - LoadPalette(stdpal_get(2), 0xE0, 0x20); + LoadPalette(GetTextWindowPalette(2), 0xE0, 0x20); FillWindowPixelBuffer(1, 0xFF); PutWindowTilemap(1); diff --git a/src/smokescreen.c b/src/smokescreen.c deleted file mode 100644 index c1d30a347..000000000 --- a/src/smokescreen.c +++ /dev/null @@ -1,73 +0,0 @@ -#include "global.h" -#include "decompress.h" -#include "util.h" - -static void SmokescreenImpact_Callback(struct Sprite *sprite); - -extern const struct CompressedSpriteSheet gSmokescreenImpactSpriteSheet; -extern const struct CompressedSpritePalette gSmokescreenImpactSpritePalette; -extern const struct SpriteTemplate gSmokescreenImpactSpriteTemplate; - -u8 SmokescreenImpact(s16 x, s16 y, u8 a3) -{ - u8 mainSpriteId; - u8 spriteId1, spriteId2, spriteId3, spriteId4; - struct Sprite *mainSprite; - - if (GetSpriteTileStartByTag(gSmokescreenImpactSpriteSheet.tag) == 0xFFFF) - { - LoadCompressedSpriteSheetUsingHeap(&gSmokescreenImpactSpriteSheet); - LoadCompressedSpritePaletteUsingHeap(&gSmokescreenImpactSpritePalette); - } - - mainSpriteId = CreateInvisibleSpriteWithCallback(SmokescreenImpact_Callback); - mainSprite = &gSprites[mainSpriteId]; - mainSprite->data[1] = a3; - - spriteId1 = CreateSprite(&gSmokescreenImpactSpriteTemplate, x - 16, y - 16, 2); - gSprites[spriteId1].data[0] = mainSpriteId; - mainSprite->data[0]++; - AnimateSprite(&gSprites[spriteId1]); - - spriteId2 = CreateSprite(&gSmokescreenImpactSpriteTemplate, x, y - 16, 2); - gSprites[spriteId2].data[0] = mainSpriteId; - mainSprite->data[0]++; - StartSpriteAnim(&gSprites[spriteId2], 1); - AnimateSprite(&gSprites[spriteId2]); - - spriteId3 = CreateSprite(&gSmokescreenImpactSpriteTemplate, x - 16, y, 2); - gSprites[spriteId3].data[0] = mainSpriteId; - mainSprite->data[0]++; - StartSpriteAnim(&gSprites[spriteId3], 2); - AnimateSprite(&gSprites[spriteId3]); - - spriteId4 = CreateSprite(&gSmokescreenImpactSpriteTemplate, x, y, 2); - gSprites[spriteId4].data[0] = mainSpriteId; - mainSprite->data[0]++; - StartSpriteAnim(&gSprites[spriteId4], 3); - AnimateSprite(&gSprites[spriteId4]); - - return mainSpriteId; -} - -static void SmokescreenImpact_Callback(struct Sprite *sprite) -{ - if (!sprite->data[0]) - { - FreeSpriteTilesByTag(gSmokescreenImpactSpriteSheet.tag); - FreeSpritePaletteByTag(gSmokescreenImpactSpritePalette.tag); - if (!sprite->data[1]) - DestroySprite(sprite); - else - sprite->callback = SpriteCallbackDummy; - } -} - -void SpriteCB_DestroySprite(struct Sprite *sprite) -{ - if (sprite->animEnded) - { - gSprites[sprite->data[0]].data[0]--; - DestroySprite(sprite); - } -} diff --git a/src/special_field_anim.c b/src/special_field_anim.c index 4193f0b5a..370c0e375 100644 --- a/src/special_field_anim.c +++ b/src/special_field_anim.c @@ -137,13 +137,13 @@ static void Task_DrawEscalator(u8 taskId) SetEscalatorMetatile(taskId, sEscalatorMetatiles_BottomRail, 0); break; case 2: - SetEscalatorMetatile(taskId, sEscalatorMetatiles_BottomNext, METATILE_COLLISION_MASK); + SetEscalatorMetatile(taskId, sEscalatorMetatiles_BottomNext, MAPGRID_COLLISION_MASK); break; case 3: SetEscalatorMetatile(taskId, sEscalatorMetatiles_Bottom, 0); break; case 4: - SetEscalatorMetatile(taskId, sEscalatorMetatiles_TopNext, METATILE_COLLISION_MASK); + SetEscalatorMetatile(taskId, sEscalatorMetatiles_TopNext, MAPGRID_COLLISION_MASK); break; case 5: SetEscalatorMetatile(taskId, sEscalatorMetatiles_Top, 0); @@ -254,13 +254,13 @@ static void Task_DrawTeleporterHousing(u8 taskId) // Alternate the teleporter light / brightness of the teleporter door if ((tState & 1) == 0) { - MapGridSetMetatileIdAt(tX, tY, METATILE_SeaCottage_Teleporter_Light_Yellow | METATILE_COLLISION_MASK); - MapGridSetMetatileIdAt(tX, tY + 2, METATILE_SeaCottage_Teleporter_Door_HalfGlowing | METATILE_COLLISION_MASK); + MapGridSetMetatileIdAt(tX, tY, METATILE_SeaCottage_Teleporter_Light_Yellow | MAPGRID_COLLISION_MASK); + MapGridSetMetatileIdAt(tX, tY + 2, METATILE_SeaCottage_Teleporter_Door_HalfGlowing | MAPGRID_COLLISION_MASK); } else { - MapGridSetMetatileIdAt(tX, tY, METATILE_SeaCottage_Teleporter_Light_Red | METATILE_COLLISION_MASK); - MapGridSetMetatileIdAt(tX, tY + 2, METATILE_SeaCottage_Teleporter_Door_FullGlowing | METATILE_COLLISION_MASK); + MapGridSetMetatileIdAt(tX, tY, METATILE_SeaCottage_Teleporter_Light_Red | MAPGRID_COLLISION_MASK); + MapGridSetMetatileIdAt(tX, tY + 2, METATILE_SeaCottage_Teleporter_Door_FullGlowing | MAPGRID_COLLISION_MASK); } CurrentMapDrawMetatileAt(tX, tY); CurrentMapDrawMetatileAt(tX, tY + 2); @@ -275,8 +275,8 @@ static void Task_DrawTeleporterHousing(u8 taskId) if (tState != 13) return; - MapGridSetMetatileIdAt(tX, tY, METATILE_SeaCottage_Teleporter_Light_Green | METATILE_COLLISION_MASK); - MapGridSetMetatileIdAt(tX, tY + 2, METATILE_SeaCottage_Teleporter_Door | METATILE_COLLISION_MASK); + MapGridSetMetatileIdAt(tX, tY, METATILE_SeaCottage_Teleporter_Light_Green | MAPGRID_COLLISION_MASK); + MapGridSetMetatileIdAt(tX, tY + 2, METATILE_SeaCottage_Teleporter_Door | MAPGRID_COLLISION_MASK); CurrentMapDrawMetatileAt(tX, tY); CurrentMapDrawMetatileAt(tX, tY + 2); DestroyTask(taskId); @@ -305,8 +305,8 @@ static void Task_DrawTeleporterCable(u8 taskId) if (tState != 0) { // Set default cable tiles to clear the ball - MapGridSetMetatileIdAt(tX, tY, METATILE_SeaCottage_Teleporter_Cable_Top | METATILE_COLLISION_MASK); - MapGridSetMetatileIdAt(tX, tY + 1, METATILE_SeaCottage_Teleporter_Cable_Bottom | METATILE_COLLISION_MASK); + MapGridSetMetatileIdAt(tX, tY, METATILE_SeaCottage_Teleporter_Cable_Top | MAPGRID_COLLISION_MASK); + MapGridSetMetatileIdAt(tX, tY + 1, METATILE_SeaCottage_Teleporter_Cable_Bottom | MAPGRID_COLLISION_MASK); CurrentMapDrawMetatileAt(tX, tY); CurrentMapDrawMetatileAt(tX, tY + 1); @@ -321,8 +321,8 @@ static void Task_DrawTeleporterCable(u8 taskId) } // Draw the cable ball - MapGridSetMetatileIdAt(tX, tY, METATILE_SeaCottage_Teleporter_CableBall_Top | METATILE_COLLISION_MASK); - MapGridSetMetatileIdAt(tX, tY + 1, METATILE_SeaCottage_Teleporter_CableBall_Bottom | METATILE_COLLISION_MASK); + MapGridSetMetatileIdAt(tX, tY, METATILE_SeaCottage_Teleporter_CableBall_Top | MAPGRID_COLLISION_MASK); + MapGridSetMetatileIdAt(tX, tY + 1, METATILE_SeaCottage_Teleporter_CableBall_Bottom | MAPGRID_COLLISION_MASK); CurrentMapDrawMetatileAt(tX, tY); CurrentMapDrawMetatileAt(tX, tY + 1); } diff --git a/src/sprite.c b/src/sprite.c index 482003a5f..5b1ea5e4b 100644 --- a/src/sprite.c +++ b/src/sprite.c @@ -5,6 +5,9 @@ #define OAM_MATRIX_COUNT 32 +#define sAnchorX data[6] +#define sAnchorY data[7] + #define SET_SPRITE_TILE_RANGE(index, start, count) \ { \ sSpriteTileRanges[index * 2] = start; \ @@ -83,7 +86,7 @@ static void ApplyAffineAnimFrame(u8 matrixNum, struct AffineAnimFrameCmd *frameC static u8 IndexOfSpriteTileTag(u16 tag); static void AllocSpriteTileRange(u16 tag, u16 start, u16 count); static void DoLoadSpritePalette(const u16 *src, u16 paletteOffset); -static void obj_update_pos2(struct Sprite* sprite, s32 a1, s32 a2); +static void UpdateSpriteMatrixAnchorPos(struct Sprite* sprite, s32 a1, s32 a2); typedef void (*AnimFunc)(struct Sprite *); typedef void (*AnimCmdFunc)(struct Sprite *); @@ -161,41 +164,11 @@ static const struct Sprite sDummySprite = { .oam = DUMMY_OAM_DATA, .anims = gDummySpriteAnimTable, - .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .template = &gDummySpriteTemplate, - .subspriteTables = NULL, .callback = SpriteCallbackDummy, - .x = 304, .y = 160, - .x2 = 0, .y2 = 0, - .centerToCornerVecX = 0, - .centerToCornerVecY = 0, - .animNum = 0, - .animCmdIndex = 0, - .animDelayCounter = 0, - .animPaused = 0, - .affineAnimPaused = 0, - .animLoopCounter = 0, - .data = {0, 0, 0, 0, 0, 0, 0}, - .inUse = 0, - .coordOffsetEnabled = 0, - .invisible = 0, - .flags_3 = 0, - .flags_4 = 0, - .flags_5 = 0, - .flags_6 = 0, - .flags_7 = 0, - .hFlip = 0, - .vFlip = 0, - .animBeginning = 0, - .affineAnimBeginning = 0, - .animEnded = 0, - .affineAnimEnded = 0, - .usingSheet = 0, - .flags_f = 0, - .sheetTileStart = 0, - .subspriteTableNum = 0, - .subspriteMode = 0, + .x = DISPLAY_WIDTH + 64, + .y = DISPLAY_HEIGHT, .subpriority = 0xFF }; @@ -212,7 +185,7 @@ const union AffineAnimCmd * const gDummySpriteAffineAnimTable[] = { &sDummyAffin const struct SpriteTemplate gDummySpriteTemplate = { .tileTag = 0, - .paletteTag = 0xFFFF, + .paletteTag = TAG_NONE, .oam = &gDummyOamData, .anims = gDummySpriteAnimTable, .images = NULL, @@ -1099,8 +1072,8 @@ void BeginAffineAnim(struct Sprite *sprite) sprite->affineAnimEnded = FALSE; ApplyAffineAnimFrame(matrixNum, &frameCmd); sAffineAnimStates[matrixNum].delayCounter = frameCmd.duration; - if (sprite->flags_f) - obj_update_pos2(sprite, sprite->data[6], sprite->data[7]); + if (sprite->anchored) + UpdateSpriteMatrixAnchorPos(sprite, sprite->sAnchorX, sprite->sAnchorY); } } @@ -1125,8 +1098,8 @@ void ContinueAffineAnim(struct Sprite *sprite) funcIndex = type - 32765; sAffineAnimCmdFuncs[funcIndex](matrixNum, sprite); } - if (sprite->flags_f) - obj_update_pos2(sprite, sprite->data[6], sprite->data[7]); + if (sprite->anchored) + UpdateSpriteMatrixAnchorPos(sprite, sprite->sAnchorX, sprite->sAnchorY); } } @@ -1220,14 +1193,14 @@ u8 GetSpriteMatrixNum(struct Sprite *sprite) return matrixNum; } -void obj_pos2_update_enable(struct Sprite* sprite, s16 xmod, s16 ymod) +void SetSpriteMatrixAnchor(struct Sprite* sprite, s16 x, s16 y) { - sprite->data[6] = xmod; - sprite->data[7] = ymod; - sprite->flags_f = 1; + sprite->sAnchorX = x; + sprite->sAnchorY = y; + sprite->anchored = TRUE; } -static s32 affine_get_new_pos2(s32 baseDim, s32 xformed, s32 modifier) +static s32 GetAnchorCoord(s32 baseDim, s32 xformed, s32 modifier) { s32 subResult, shiftResult; @@ -1239,24 +1212,24 @@ static s32 affine_get_new_pos2(s32 baseDim, s32 xformed, s32 modifier) return modifier - ((u32)(modifier * xformed) / (u32)(baseDim) + shiftResult); } -static void obj_update_pos2(struct Sprite *sprite, s32 xmod, s32 ymod) +static void UpdateSpriteMatrixAnchorPos(struct Sprite *sprite, s32 x, s32 y) { s32 dim, baseDim, xFormed; u32 matrixNum = sprite->oam.matrixNum; - if (xmod != 0x800) + if (x != NO_ANCHOR) { dim = sOamDimensionsCopy[sprite->oam.shape][sprite->oam.size][0]; baseDim = dim << 8; xFormed = (dim << 16) / gOamMatrices[matrixNum].a; - sprite->x2 = affine_get_new_pos2(baseDim, xFormed, xmod); + sprite->x2 = GetAnchorCoord(baseDim, xFormed, x); } - if (ymod != 0x800) + if (y != NO_ANCHOR) { dim = sOamDimensionsCopy[sprite->oam.shape][sprite->oam.size][1]; baseDim = dim << 8; xFormed = (dim << 16) / gOamMatrices[matrixNum].d; - sprite->y2 = affine_get_new_pos2(baseDim, xFormed, ymod); + sprite->y2 = GetAnchorCoord(baseDim, xFormed, y); } } diff --git a/src/ss_anne.c b/src/ss_anne.c index 78ed5b48b..ce46bc6f6 100644 --- a/src/ss_anne.c +++ b/src/ss_anne.c @@ -137,7 +137,7 @@ static void Task_SSAnneFinish(u8 taskId) FreeSpriteTilesByTag(SPRITE_TAG_WAKE); FreeSpriteTilesByTag(SPRITE_TAG_SMOKE); DestroyTask(taskId); - EnableBothScriptContexts(); + ScriptContext_Enable(); } } diff --git a/src/start_menu.c b/src/start_menu.c index 80381216e..ec2616338 100644 --- a/src/start_menu.c +++ b/src/start_menu.c @@ -113,15 +113,15 @@ static void CloseSaveStatsWindow(void); static void CloseStartMenu(void); static const struct MenuAction sStartMenuActionTable[] = { - { gStartMenuText_Pokedex, {.u8_void = StartMenuPokedexCallback} }, - { gStartMenuText_Pokemon, {.u8_void = StartMenuPokemonCallback} }, - { gStartMenuText_Bag, {.u8_void = StartMenuBagCallback} }, - { gStartMenuText_Player, {.u8_void = StartMenuPlayerCallback} }, - { gStartMenuText_Save, {.u8_void = StartMenuSaveCallback} }, - { gStartMenuText_Option, {.u8_void = StartMenuOptionCallback} }, - { gStartMenuText_Exit, {.u8_void = StartMenuExitCallback} }, - { gStartMenuText_Retire, {.u8_void = StartMenuSafariZoneRetireCallback} }, - { gStartMenuText_Player, {.u8_void = StartMenuLinkPlayerCallback} } + { gText_MenuPokedex, {.u8_void = StartMenuPokedexCallback} }, + { gText_MenuPokemon, {.u8_void = StartMenuPokemonCallback} }, + { gText_MenuBag, {.u8_void = StartMenuBagCallback} }, + { gText_MenuPlayer, {.u8_void = StartMenuPlayerCallback} }, + { gText_MenuSave, {.u8_void = StartMenuSaveCallback} }, + { gText_MenuOption, {.u8_void = StartMenuOptionCallback} }, + { gText_MenuExit, {.u8_void = StartMenuExitCallback} }, + { gText_MenuRetire, {.u8_void = StartMenuSafariZoneRetireCallback} }, + { gText_MenuPlayer, {.u8_void = StartMenuLinkPlayerCallback} } }; static const struct WindowTemplate sSafariZoneStatsWindowTemplate = { @@ -252,7 +252,7 @@ static void DrawSafariZoneStatsWindow(void) ConvertIntToDecimalStringN(gStringVar1, gSafariZoneStepCounter, STR_CONV_MODE_RIGHT_ALIGN, 3); ConvertIntToDecimalStringN(gStringVar2, 600, STR_CONV_MODE_RIGHT_ALIGN, 3); ConvertIntToDecimalStringN(gStringVar3, gNumSafariBalls, STR_CONV_MODE_RIGHT_ALIGN, 2); - StringExpandPlaceholders(gStringVar4, gUnknown_84162A9); + StringExpandPlaceholders(gStringVar4, gText_MenuSafariStats); AddTextPrinterParameterized(sSafariZoneStatsWindowId, FONT_2, gStringVar4, 4, 3, 0xFF, NULL); CopyWindowToVram(sSafariZoneStatsWindowId, COPYWIN_GFX); } @@ -394,7 +394,7 @@ void ShowStartMenu(void) StopPlayerAvatar(); } OpenStartMenuWithFollowupFunc(Task_StartMenuHandleInput); - ScriptContext2_Enable(); + LockPlayerFieldControls(); } static bool8 StartCB_HandleInput(void) @@ -575,7 +575,7 @@ static bool8 StartCB_Save2(void) case SAVECB_RETURN_OKAY: ClearDialogWindowAndFrameToTransparent(0, TRUE); ClearPlayerHeldMovementAndUnfreezeObjectEvents(); - ScriptContext2_Disable(); + UnlockPlayerFieldControls(); RestoreHelpContext(); return TRUE; case SAVECB_RETURN_CANCEL: @@ -587,7 +587,7 @@ static bool8 StartCB_Save2(void) case SAVECB_RETURN_ERROR: ClearDialogWindowAndFrameToTransparent(0, TRUE); ClearPlayerHeldMovementAndUnfreezeObjectEvents(); - ScriptContext2_Disable(); + UnlockPlayerFieldControls(); RestoreHelpContext(); return TRUE; } @@ -620,7 +620,7 @@ void Field_AskSaveTheGame(void) static void PrintSaveTextWithFollowupFunc(const u8 *str, bool8 (*saveDialogCB)(void)) { StringExpandPlaceholders(gStringVar4, str); - sub_80F7768(0, TRUE); + LoadMessageBoxAndFrameGfx(0, TRUE); AddTextPrinterForMessage(TRUE); sSaveDialogIsPrinting = TRUE; sSaveDialogCB = saveDialogCB; @@ -641,7 +641,7 @@ static void task50_save_game(u8 taskId) break; } DestroyTask(taskId); - EnableBothScriptContexts(); + ScriptContext_Enable(); RestoreHelpContext(); } @@ -870,7 +870,7 @@ bool32 DoSetUpSaveAfterLinkBattle(u8 *state) ResetBgsAndClearDma3BusyFlags(FALSE); InitBgsFromTemplates(0, sBGTemplates_AfterLinkSaveMessage, NELEMS(sBGTemplates_AfterLinkSaveMessage)); InitWindows(sWindowTemplates_AfterLinkSaveMessage); - TextWindow_SetStdFrame0_WithPal(0, 0x008, 0xF0); + LoadStdWindowGfx(0, 0x008, 0xF0); break; case 3: ShowBg(0); @@ -957,7 +957,7 @@ static void PrintSaveStats(void) u8 y; u8 x; sSaveStatsWindowId = AddWindow(&sSaveStatsWindowTemplate); - TextWindow_SetStdFrame0_WithPal(sSaveStatsWindowId, 0x21D, 0xD0); + LoadStdWindowGfx(sSaveStatsWindowId, 0x21D, 0xD0); DrawStdFrameWithCustomTileAndPalette(sSaveStatsWindowId, FALSE, 0x21D, 0x0D); SaveStatToString(SAVE_STAT_LOCATION, gStringVar4, 8); x = (u32)(112 - GetStringWidth(FONT_2, gStringVar4, -1)) / 2; @@ -995,7 +995,7 @@ static void CloseStartMenu(void) ClearStdWindowAndFrame(GetStartMenuWindowId(), TRUE); RemoveStartMenuWindow(); ClearPlayerHeldMovementAndUnfreezeObjectEvents(); - ScriptContext2_Disable(); + UnlockPlayerFieldControls(); } void AppendToList(u8 *list, u8 *cursor, u8 newEntry) diff --git a/src/string_util.c b/src/string_util.c index ffb51b354..4744e231c 100644 --- a/src/string_util.c +++ b/src/string_util.c @@ -54,10 +54,10 @@ u8 *StringCopy_Nickname(u8 *dest, const u8 *src) return &dest[i]; } -u8 *StringGetEnd10(u8 *str) +u8 *StringGet_Nickname(u8 *str) { u8 i; - u32 limit = 10; + u32 limit = POKEMON_NAME_LENGTH; for (i = 0; i < limit; i++) if (str[i] == EOS) @@ -67,10 +67,10 @@ u8 *StringGetEnd10(u8 *str) return &str[i]; } -u8 *StringCopy7(u8 *dest, const u8 *src) +u8 *StringCopy_PlayerName(u8 *dest, const u8 *src) { s32 i; - s32 limit = 7; + s32 limit = PLAYER_NAME_LENGTH; for (i = 0; i < limit; i++) { diff --git a/src/strings.c b/src/strings.c index abbcded06..414178229 100644 --- a/src/strings.c +++ b/src/strings.c @@ -15,36 +15,36 @@ const u8 gExpandedPlaceholder_Groudon[] = _("GROUDON"); const u8 gExpandedPlaceholder_Red[] = _("RED"); const u8 gExpandedPlaceholder_Green[] = _("GREEN"); const u8 gText_EggNickname[] = _("EGG"); -const u8 gStartMenuText_Pokemon[] = _("POKéMON"); +const u8 gText_MenuPokemon[] = _("POKéMON"); const u8 gText_NewGame[] = _("NEW GAME"); const u8 gText_Continue[] = _("CONTINUE"); const u8 gTextJP_Options[] = _("せっていを かえる"); const u8 gUnusedText_MysteryGift[] = _("MYSTERY GIFT"); const u8 gText_MysteryGift[] = _("MYSTERY GIFT"); -const u8 gText_WirelessAdapterIsNotConnected[] = _("The Wireless Adapter is not\nconnected."); -const u8 gText_MysteryGiftCantBeUsedWhileWirelessAdapterIsAttached[] = _("MYSTERY GIFT can't be used while\nthe Wireless Adapter is attached."); -const u8 gUnknown_8415B0E[] = _("がいぶデ-タにより レポ-トを こうしんします\nしばらく おまちください"); -const u8 gUnknown_8415B33[] = _("レポ-トが こうしんされました!"); -const u8 gUnknown_8415B44[] = _("レポ-トが こうしんされました!\pこれいじょう\nレポ-トが かききれないので\lバックアップカ-トリッジを\lこうかんしてください!\pくわしくは\nにんてんどう サ-ビスセンタ- まで\lおといあわせ ください"); -const u8 gUnknown_8415BAA[] = _("レポ-トの こうしんは\nしっぱいしました!\pバックアップカ-トリッジを\nこうかんしてください!\pくわしくは\nにんてんどう サ-ビスセンタ- まで\lおといあわせ ください"); -const u8 gText_SaveFileCorruptedPrevWillBeLoaded[] = _("The save file is corrupted.\pThe previous save file will be\nloaded."); +const u8 gText_WirelessNotConnected[] = _("The Wireless Adapter is not\nconnected."); +const u8 gText_MysteryGiftCantUse[] = _("MYSTERY GIFT can't be used while\nthe Wireless Adapter is attached."); +const u8 gText_UpdatingSaveExternalData[] = _("がいぶデ-タにより レポ-トを こうしんします\nしばらく おまちください"); +const u8 gText_SaveFileUpdated[] = _("レポ-トが こうしんされました!"); +const u8 gText_SaveFileUpdatedSwapBackup[] = _("レポ-トが こうしんされました!\pこれいじょう\nレポ-トが かききれないので\lバックアップカ-トリッジを\lこうかんしてください!\pくわしくは\nにんてんどう サ-ビスセンタ- まで\lおといあわせ ください"); +const u8 gText_FailedUpdateSwapBackup[] = _("レポ-トの こうしんは\nしっぱいしました!\pバックアップカ-トリッジを\nこうかんしてください!\pくわしくは\nにんてんどう サ-ビスセンタ- まで\lおといあわせ ください"); +const u8 gText_SaveFileCorrupted[] = _("The save file is corrupted.\pThe previous save file will be\nloaded."); const u8 gText_SaveFileHasBeenDeleted[] = _("The save file has been\ndeleted..."); const u8 gText_1MSubCircuitBoardNotInstalled[] = _("The 1M sub-circuit board is\nnot installed."); const u8 gTextJP_InternalBatteryHasRunDry[] = _("でんちぎれの ために\nとけいが うごかなくなりました\pとけいに かんけいする できごとは おきませんが\nゲ-ムを つづけて あそぶことは できます"); -const u8 gUnknown_8415CD9[] = _("しゅじんこう"); -const u8 gUnknown_8415CE0[] = _("ポケモンずかん"); +const u8 gText_PlayerUnused[] = _("しゅじんこう"); +const u8 gText_PokedexUnused[] = _("ポケモンずかん"); const u8 gText_MainMenuTime[] = _("TIME"); -const u8 gUnknown_8415CED[] = _("もっているバッジ"); -const u8 gUnknown_8415CF6[] = _("Aボタン"); -const u8 gUnknown_8415CFB[] = _("Bボタン"); -const u8 gUnknown_8415D00[] = _("Rボタン"); -const u8 gUnknown_8415D05[] = _("Lボタン"); -const u8 gUnknown_8415D0A[] = _("スタ-トボタン"); -const u8 gUnknown_8415D12[] = _("セレクトボタン"); -const u8 gUnknown_8415D1A[] = _("じゅうじボタン"); -const u8 gUnknown_8415D22[] = _("Lボタン Rボタン"); +const u8 gText_BadgesUnused[] = _("もっているバッジ"); +const u8 gText_AButton[] = _("Aボタン"); +const u8 gText_BButton[] = _("Bボタン"); +const u8 gText_RButton[] = _("Rボタン"); +const u8 gText_LButton[] = _("Lボタン"); +const u8 gText_Start[] = _("スタ-トボタン"); +const u8 gText_Select[] = _("セレクトボタン"); +const u8 gText_ControlPad[] = _("じゅうじボタン"); +const u8 gText_LButtonRButton[] = _("Lボタン Rボタン"); const u8 gText_Controls[] = _("CONTROLS"); -ALIGNED(4) const u8 gUnknown_8415D38[] = _("{DPAD_UPDOWN}えらぶ {A_BUTTON}けってい"); +ALIGNED(4) const u8 gText_PickOk[] = _("{DPAD_UPDOWN}えらぶ {A_BUTTON}けってい"); ALIGNED(4) const u8 gText_ABUTTONNext[] = _("{A_BUTTON}NEXT"); ALIGNED(4) const u8 gText_ABUTTONNext_BBUTTONBack[] = _("{A_BUTTON}NEXT {B_BUTTON}BACK"); ALIGNED(4) const u8 gText_UPDOWNPick_ABUTTONNext_BBUTTONBack[] = _("{DPAD_UPDOWN}PICK {A_BUTTON}NEXT {B_BUTTON}CANCEL"); @@ -101,8 +101,8 @@ const u8 gText_AreaUnknown[] = _("AREA UNKNOWN"); const u8 gText_PokedexNo[] = _("{NO}"); const u8 gText_Page[] = _("PAGE"); ALIGNED(4) const u8 gText_WelcomeToHOF[] = _("Welcome to the HALL OF FAME!"); -ALIGNED(4) const u8 gUnknown_8416028[] = _("みつけた ポケモン {STR_VAR_1}!\nつかまえた ポケモン {STR_VAR_2}!\pオダマキはかせの\nポケモンずかん ひょうか!\pオダマキ“どれどれ\p"); -ALIGNED(4) const u8 gUnknown_8416068[] = _("ここまでの レポ-トを かきしるしています!\nでんげんを きらないでください"); +ALIGNED(4) const u8 gText_HOFDexRating[] = _("みつけた ポケモン {STR_VAR_1}!\nつかまえた ポケモン {STR_VAR_2}!\pオダマキはかせの\nポケモンずかん ひょうか!\pオダマキ“どれどれ\p"); +ALIGNED(4) const u8 gText_HOFDexSaving[] = _("ここまでの レポ-トを かきしるしています!\nでんげんを きらないでください"); ALIGNED(4) const u8 gText_HOFCorrupted[] = _("The HALL OF FAME data is\ncorrupted."); const u8 gText_HOFNumber[] = _("HALL OF FAME No. {STR_VAR_1}"); const u8 gText_LeagueChamp[] = _("LEAGUE CHAMPION!\nCONGRATULATIONS!"); @@ -110,25 +110,25 @@ ALIGNED(4) const u8 gText_Number[] = _("No. "); ALIGNED(4) const u8 gText_Level[] = _("Lv. "); ALIGNED(4) const u8 gText_Name[] = _("NAME"); ALIGNED(4) const u8 gText_IDNumber[] = _("IDNo."); -const u8 gUnknown_841610A[] = _("{HIGHLIGHT DYNAMIC_COLOR6}{COLOR WHITE}オダマキはかせが ピンチだ!\nポケモンを だして たすけてあげよう!"); -const u8 gUnknown_8416133[] = _("{HIGHLIGHT DYNAMIC_COLOR6}{COLOR WHITE}このポケモンにしますか?"); -const u8 gUnknown_8416146[] = _("ポケモン"); +const u8 gText_BirchInTrouble[] = _("{HIGHLIGHT DYNAMIC_COLOR6}{COLOR WHITE}オダマキはかせが ピンチだ!\nポケモンを だして たすけてあげよう!"); +const u8 gText_ConfirmStarterChoice[] = _("{HIGHLIGHT DYNAMIC_COLOR6}{COLOR WHITE}このポケモンにしますか?"); +const u8 gText_Pokemon4[] = _("ポケモン"); const u8 gText_SaveError_PleaseExchangeBackupMemory[] = _("Save error.\pPlease exchange the\nbackup memory."); const u8 gSaveStatName_Player[] = _("PLAYER"); const u8 gSaveStatName_Badges[] = _("BADGES"); const u8 gSaveStatName_Pokedex[] = _("POKéDEX"); const u8 gSaveStatName_Time[] = _("TIME"); -const u8 gUnknown_8416195[] = _("どこへ とびますか?"); +const u8 gText_FlyToWhere[] = _("どこへ とびますか?"); const u8 gOtherText_Use[] = _("USE"); const u8 gOtherText_Toss[] = _("TOSS"); const u8 gOtherText_Register[] = _("REGISTER"); const u8 gOtherText_Give[] = _("GIVE"); -const u8 gUnknown_84161B7[] = _("けってい"); +const u8 gMenuText_Confirm[] = _("けってい"); const u8 gOtherText_Walk[] = _("WALK"); const u8 gFameCheckerText_Cancel[] = _("CANCEL"); const u8 gOtherText_Exit[] = _("EXIT"); const u8 gString_Dummy[] = _(""); -const u8 gUnknown_84161CE[] = _("キャンセル"); +const u8 gText_Cancel7[] = _("キャンセル"); const u8 gText_Item[] = _("ITEM"); const u8 gText_Mail[] = _("MAIL"); const u8 gText_Take[] = _("TAKE"); @@ -138,7 +138,7 @@ const u8 gText_PokeSum_Item_None[] = _("NONE"); const u8 gOtherText_Open[] = _("OPEN"); const u8 gOtherText_Deselect[] = _("DESELECT"); const u8 gText_PokeSum_DexNoUnknown[] = _("???"); -const u8 gUnknown_8416206[] = _("?????"); +const u8 gText_FiveMarks[] = _("?????"); const u8 gText_Slash[] = _("/"); const u8 gText_PokeSum_OneHyphen[] = _("-"); const u8 gText_PokeSum_TwoHyphens[] = _("--"); @@ -147,26 +147,26 @@ const u8 gText_SevenHyphens[] = _("-------"); const u8 gText_MaleSymbol[] = _("♂"); const u8 gText_FemaleSymbol[] = _("♀"); const u8 gText_Lv[] = _("{LV_2}"); -const u8 gOtherText_UnkF9_08_Clear_01[] = _("{NO}{CLEAR 0x01}"); -const u8 gUnknown_841622C[] = _("{PLUS}"); -const u8 gUnknown_841622F[] = _("{ESCAPE 0x03}"); -const u8 gUnknown_8416233[] = _("{ID}{NO}"); +const u8 gText_NumberClear01[] = _("{NO}{CLEAR 0x01}"); +const u8 gText_Plus[] = _("{PLUS}"); +const u8 gText_Escape3[] = _("{ESCAPE 0x03}"); // Unused, RIGHT_ARROW in pokeemerald +const u8 gText_IDNumber2[] = _("{ID}{NO}"); const u8 gText_PokeSum_PP[] = _("{PP}"); const u8 gText_SelectorArrow2[] = _("▶"); -const u8 gUnknown_841623D[] = _("YES\nNO"); +const u8 gText_YesNo[] = _("YES\nNO"); const u8 gText_GoBackToThePreviousMenu[] = _("Go back to the\nprevious menu."); const u8 gText_WhatWouldYouLikeToDo[] = _("What would you like to do?"); -const u8 gStartMenuText_Pokedex[] = _("POKéDEX"); -const u8 gStartMenuText_Bag[] = _("BAG"); -const u8 gUnknown_8416289[] = _("ポケナビ"); -const u8 gStartMenuText_Player[] = _("{PLAYER}"); -const u8 gStartMenuText_Save[] = _("SAVE"); -const u8 gStartMenuText_Option[] = _("OPTION"); -const u8 gStartMenuText_Exit[] = _("EXIT"); -const u8 gStartMenuText_Retire[] = _("RETIRE"); -const u8 gUnknown_84162A9[] = _("{STR_VAR_1}/{STR_VAR_2}\nBALLS {STR_VAR_3}"); +const u8 gText_MenuPokedex[] = _("POKéDEX"); +const u8 gText_MenuBag[] = _("BAG"); +const u8 gText_MenuPokenav[] = _("ポケナビ"); +const u8 gText_MenuPlayer[] = _("{PLAYER}"); +const u8 gText_MenuSave[] = _("SAVE"); +const u8 gText_MenuOption[] = _("OPTION"); +const u8 gText_MenuExit[] = _("EXIT"); +const u8 gText_MenuRetire[] = _("RETIRE"); +const u8 gText_MenuSafariStats[] = _("{STR_VAR_1}/{STR_VAR_2}\nBALLS {STR_VAR_3}"); const u8 gText_TimesStrVar1[] = _("×{STR_VAR_1}"); -const u8 gUnknown_84162BD[] = _(" BERRY"); +const u8 gText_Berry[] = _(" BERRY"); const u8 gText_Coins[] = _("{STR_VAR_1} COINS"); const u8 gText_Items2[] = _("ITEMS"); const u8 gText_PokeBalls2[] = _("POKé BALLS"); @@ -186,30 +186,30 @@ const u8 gText_TossOutHowManyStrVar1s[] = _("Toss out how many\n{STR_VAR_1}(s)?" const u8 gText_ThrewAwayStrVar2StrVar1s[] = _("Threw away {STR_VAR_2}\n{STR_VAR_1}(s)."); const u8 gText_ThrowAwayStrVar2OfThisItemQM[] = _("Throw away {STR_VAR_2} of\nthis item?"); const u8 gText_OakForbidsUseOfItemHere[] = _("OAK: {PLAYER}!\nThis isn't the time to use that!{PAUSE_UNTIL_PRESS}"); -const u8 gUnknown_8416451[] = _("You can't dismount your BIKE here.{PAUSE_UNTIL_PRESS}"); +const u8 gText_CantDismountBike[] = _("You can't dismount your BIKE here.{PAUSE_UNTIL_PRESS}"); const u8 gText_ItemfinderResponding[] = _("Huh?\nThe ITEMFINDER's responding!\pThere's an item buried around here!{PAUSE_UNTIL_PRESS}"); const u8 gText_ItemfinderShakingWildly[] = _("Oh!\nThe ITEMFINDER's shaking wildly!\pThere's an item buried underfoot!\p‥ ‥ ‥ ‥ ‥ ‥{PAUSE_UNTIL_PRESS}"); const u8 gText_NopeTheresNoResponse[] = _("‥ ‥ ‥ ‥Nope!\nThere's no response.{PAUSE_UNTIL_PRESS}"); -const u8 gUnknown_8416537[] = _("Your COINS:\n{STR_VAR_1}{PAUSE_UNTIL_PRESS}"); -const u8 gUnknown_8416548[] = _("わざマシンを きどうした!"); -const u8 gUnknown_8416556[] = _("ひでんマシンを きどうした!"); -const u8 gUnknown_8416565[] = _("なかには {STR_VAR_1}が\nきろくされていた!\p{STR_VAR_1}を\nポケモンに おぼえさせますか?"); -const u8 gUnknown_841658C[] = _("{PLAYER} used the\n{STR_VAR_2}.{PAUSE_UNTIL_PRESS}"); -const u8 gUnknown_841659E[] = _("But the effects of a REPEL\nlingered from earlier.{PAUSE_UNTIL_PRESS}"); -const u8 gUnknown_84165D2[] = _("{PLAYER} used the\n{STR_VAR_2}.\pWild POKéMON will be lured.{PAUSE_UNTIL_PRESS}"); -const u8 gUnknown_8416600[] = _("{PLAYER} used the\n{STR_VAR_2}.\pWild POKéMON will be repelled.{PAUSE_UNTIL_PRESS}"); -const u8 gUnknown_8416631[] = _("The BOX is full.{PAUSE_UNTIL_PRESS}"); -const u8 gUnknown_8416644[] = _("POWDER QTY: {STR_VAR_1}{PAUSE_UNTIL_PRESS}"); +const u8 gText_CoinCase[] = _("Your COINS:\n{STR_VAR_1}{PAUSE_UNTIL_PRESS}"); +const u8 gText_BootedUpTM[] = _("わざマシンを きどうした!"); +const u8 gText_BootedUpHM[] = _("ひでんマシンを きどうした!"); +const u8 gText_TMHMContainedVar1[] = _("なかには {STR_VAR_1}が\nきろくされていた!\p{STR_VAR_1}を\nポケモンに おぼえさせますか?"); +const u8 gText_PlayerUsedVar2[] = _("{PLAYER} used the\n{STR_VAR_2}.{PAUSE_UNTIL_PRESS}"); +const u8 gText_RepelEffectsLingered[] = _("But the effects of a REPEL\nlingered from earlier.{PAUSE_UNTIL_PRESS}"); +const u8 gText_UsedVar2WildLured[] = _("{PLAYER} used the\n{STR_VAR_2}.\pWild POKéMON will be lured.{PAUSE_UNTIL_PRESS}"); +const u8 gText_UsedVar2WildRepelled[] = _("{PLAYER} used the\n{STR_VAR_2}.\pWild POKéMON will be repelled.{PAUSE_UNTIL_PRESS}"); +const u8 gText_BoxFull[] = _("The BOX is full.{PAUSE_UNTIL_PRESS}"); +const u8 gText_PowderQty[] = _("POWDER QTY: {STR_VAR_1}{PAUSE_UNTIL_PRESS}"); const u8 gOtherText_Powder[] = _("POWDER"); -const u8 gUnknown_841665C[] = _("Played the POKé FLUTE.\pNow, that's a catchy tune!{PAUSE_UNTIL_PRESS}"); -const u8 gUnknown_8416690[] = _("Played the POKé FLUTE."); -const u8 gUnknown_84166A7[] = _("The POKé FLUTE awakened sleeping\nPOKéMON.{PAUSE_UNTIL_PRESS}"); +const u8 gText_PlayedPokeFluteCatchy[] = _("Played the POKé FLUTE.\pNow, that's a catchy tune!{PAUSE_UNTIL_PRESS}"); +const u8 gText_PlayedPokeFlute[] = _("Played the POKé FLUTE."); +const u8 gText_PokeFluteAwakenedMon[] = _("The POKé FLUTE awakened sleeping\nPOKéMON.{PAUSE_UNTIL_PRESS}"); const u8 gText_TMCase[] = _("TM CASE"); const u8 gText_Close[] = _("CLOSE"); const u8 gText_TMCaseWillBePutAway[] = _("The TM CASE will be\nput away."); const u8 gText_FontSize0[] = _("{FONT_0}"); const u8 gText_FontSize2[] = _("{FONT_2}"); -const u8 gUnknown_8416707[] = _(" "); +const u8 gText_EmptySpace[] = _(" "); const u8 gText_BerryPouch[] = _("BERRY POUCH"); const u8 gText_TheBerryPouchWillBePutAway[] = _("The BERRY POUCH will be\nput away."); const u8 gText_ShopBuy[] = _("BUY"); @@ -219,17 +219,17 @@ const u8 gText_InBagVar1[] = _("IN BAG:{FONT_0} {STR_VAR_1}"); const u8 gText_QuitShopping[] = _("Quit shopping."); const u8 gText_Var1CertainlyHowMany[] = _("{STR_VAR_1}? Certainly.\nHow many would you like?"); const u8 gText_Var1AndYouWantedVar2[] = _("{STR_VAR_1}, and you want {STR_VAR_2}.\nThat will be ¥{STR_VAR_3}. Okay?"); -const u8 gUnknown_84167BB[] = _("{STR_VAR_1} だね!\n{STR_VAR_2}¥ だけど かうかい?"); -const u8 gUnknown_84167D0[] = _("{STR_VAR_1} ですね!\n{STR_VAR_2}¥ だけど かいますか?"); +const u8 gText_Var1IsItThatllBeVar2[] = _("{STR_VAR_1} だね!\n{STR_VAR_2}¥ だけど かうかい?"); +const u8 gText_YouWantedVar1ThatllBeVar2[] = _("{STR_VAR_1} ですね!\n{STR_VAR_2}¥ だけど かいますか?"); const u8 gText_HereYouGoThankYou[] = _("Here you are!\nThank you!"); -const u8 gUnknown_8416800[] = _("どうも ありがとう!\nじたくの パソコンに おくって おきますね!"); -const u8 gUnknown_8416822[] = _("どうも ありがとう!\nじたくの パソコンに おくって おくね!"); +const u8 gText_ThankYouIllSendItHome[] = _("どうも ありがとう!\nじたくの パソコンに おくって おきますね!"); +const u8 gText_ThanksIllSendItHome[] = _("どうも ありがとう!\nじたくの パソコンに おくって おくね!"); const u8 gText_YouDontHaveMoney[] = _("You don't have enough money.{PAUSE_UNTIL_PRESS}"); const u8 gText_NoMoreRoomForThis[] = _("You have no more room for this\nitem.{PAUSE_UNTIL_PRESS}"); -const u8 gUnknown_8416888[] = _("{STR_VAR_1}を\nいれる ばしょが いっぱいです{PAUSE_UNTIL_PRESS}"); -const u8 gText_CanIHelpWithAnythingElse[] = _("Is there anything else I can do?"); -const u8 gUnknown_84168BF[] = _("その ほかに\nなにか ちからに なれることは?"); -const u8 gUnknown_84168D7[] = _("プレミアボ-ル 1コ\nおまけ しておきますね!{PAUSE_UNTIL_PRESS}"); +const u8 gText_SpaceForVar1Full[] = _("{STR_VAR_1}を\nいれる ばしょが いっぱいです{PAUSE_UNTIL_PRESS}"); +const u8 gText_AnythingElseICanHelp[] = _("Is there anything else I can do?"); +const u8 gText_CanIHelpWithAnythingElse[] = _("その ほかに\nなにか ちからに なれることは?"); +const u8 gText_ThrowInPremierBall[] = _("プレミアボ-ル 1コ\nおまけ しておきますね!{PAUSE_UNTIL_PRESS}"); const u8 gText_OhNoICantBuyThat[] = _("{STR_VAR_1}? Oh, no.\nI can't buy that.{PAUSE_UNTIL_PRESS}"); const u8 gText_HowManyWouldYouLikeToSell[] = _("{STR_VAR_1}?\nHow many would you like to sell?"); const u8 gText_ICanPayThisMuch_WouldThatBeOkay[] = _("I can pay ¥{STR_VAR_3}.\nWould that be okay?"); @@ -239,20 +239,20 @@ const u8 gText_Shift[] = _("SHIFT"); const u8 gText_SendOut[] = _("SEND OUT"); const u8 gText_Switch2[] = _("SWITCH"); const u8 gText_Summary5[] = _("SUMMARY"); -const u8 gUnknown_841699C[] = _("つかえるわざ"); +const u8 gText_Moves[] = _("つかえるわざ"); const u8 gText_Enter[] = _("ENTER"); const u8 gText_NoEntry[] = _("NO ENTRY"); const u8 gText_Take2[] = _("TAKE"); const u8 gText_Read2[] = _("READ"); const u8 gText_Trade4[] = _("TRADE"); -const u8 gText_HP3[] = _("HP"); -const u8 gText_SpAtk3[] = _("SP. ATK"); -const u8 gText_SpDef3[] = _("SP. DEF"); -const u8 gMenuText_Confirm[] = _("OK"); -const u8 gUnknown_84169D8[] = _(""); +const u8 gText_ItemEffect_HP[] = _("HP"); +const u8 gText_ItemEffect_SpAtk[] = _("SP. ATK"); +const u8 gText_ItemEffect_SpDef[] = _("SP. DEF"); +const u8 gText_PartyMenu_OK[] = _("OK"); +const u8 gText_Empty[] = _(""); const u8 gText_PauseUntilPress[] = _("{PAUSE_UNTIL_PRESS}"); const u8 gText_WontHaveEffect[] = _("It won't have any effect.{PAUSE_UNTIL_PRESS}"); -const u8 gUnknown_84169F8[] = _("This can't be used on\nthat POKéMON.{PAUSE_UNTIL_PRESS}"); +const u8 gText_CantBeUsedOnPkmn[] = _("This can't be used on\nthat POKéMON.{PAUSE_UNTIL_PRESS}"); const u8 gText_PkmnCantSwitchOut[] = _("{STR_VAR_1} can't be switched\nout!{PAUSE_UNTIL_PRESS}"); const u8 gText_PkmnAlreadyInBattle[] = _("{STR_VAR_1} is already\nin battle!{PAUSE_UNTIL_PRESS}"); const u8 gText_PkmnAlreadySelected[] = _("{STR_VAR_1} has already been\nselected.{PAUSE_UNTIL_PRESS}"); @@ -260,8 +260,8 @@ const u8 gText_PkmnHasNoEnergy[] = _("{STR_VAR_1} has no energy\nleft to battle! const u8 gText_CantSwitchWithAlly[] = _("You can't switch {STR_VAR_1}'s\nPOKéMON with one of yours!{PAUSE_UNTIL_PRESS}"); const u8 gText_EggCantBattle[] = _("An EGG can't battle!{PAUSE_UNTIL_PRESS}"); const u8 gText_CantUseUntilNewBadge[] = _("This can't be used until a new\nBADGE is obtained.{PAUSE_UNTIL_PRESS}"); -const u8 gUnknown_8416B16[] = _("No more than three POKéMON\nmay enter.{PAUSE_UNTIL_PRESS}"); -const u8 gUnknown_8416B3E[] = _("No more than two POKéMON\nmay enter.{PAUSE_UNTIL_PRESS}"); +const u8 gText_NoMoreThanThreeMayEnter[] = _("No more than three POKéMON\nmay enter.{PAUSE_UNTIL_PRESS}"); +const u8 gText_NoMoreThanTwoMayEnter[] = _("No more than two POKéMON\nmay enter.{PAUSE_UNTIL_PRESS}"); const u8 gText_SendMailToPC[] = _("Send the removed MAIL to\nyour PC?"); const u8 gText_MailSentToPC[] = _("The MAIL was sent to your PC.{PAUSE_UNTIL_PRESS}"); const u8 gText_PCMailboxFull[] = _("Your PC's MAILBOX is full.{PAUSE_UNTIL_PRESS}"); @@ -291,14 +291,14 @@ const u8 gText_PkmnWokeUp2[] = _("{STR_VAR_1} woke up.{PAUSE_UNTIL_PRESS}"); const u8 gText_PkmnBurnHealed[] = _("{STR_VAR_1}'s burn was healed.{PAUSE_UNTIL_PRESS}"); const u8 gText_PkmnThawedOut[] = _("{STR_VAR_1} was thawed out.{PAUSE_UNTIL_PRESS}"); const u8 gText_PPWasRestored[] = _("PP was restored.{PAUSE_UNTIL_PRESS}"); -const u8 gUnknown_8416FDA[] = _("{STR_VAR_1}は\nげんきを とりもどした!{PAUSE_UNTIL_PRESS}"); +const u8 gText_PkmnRegainhedHealth[] = _("{STR_VAR_1}は\nげんきを とりもどした!{PAUSE_UNTIL_PRESS}"); const u8 gText_PkmnBecameHealthy[] = _("{STR_VAR_1} became healthy.{PAUSE_UNTIL_PRESS}"); const u8 gText_MovesPPIncreased[] = _("{STR_VAR_1}'s PP increased.{PAUSE_UNTIL_PRESS}"); const u8 gText_PkmnElevatedToLvVar2[] = _("{STR_VAR_1} was elevated to\nLv. {STR_VAR_2}."); const u8 gText_PkmnBaseVar2StatIncreased[] = _("{STR_VAR_1}'s base {STR_VAR_2}\nstat was raised.{PAUSE_UNTIL_PRESS}"); const u8 gText_PkmnSnappedOutOfConfusion[] = _("{STR_VAR_1} snapped out of its\nconfusion.{PAUSE_UNTIL_PRESS}"); const u8 gText_PkmnGotOverInfatuation[] = _("{STR_VAR_1} got over its\ninfatuation.{PAUSE_UNTIL_PRESS}"); -const u8 gUnknown_8417094[] = _("That's your only\nPOKéMON for battle."); +const u8 gText_OnlyPkmnForBattle[] = _("That's your only\nPOKéMON for battle."); ALIGNED(4) const u8 gText_PkmnCantBeTradedNow[] = _("That POKéMON can't be traded\nnow."); ALIGNED(4) const u8 gText_EggCantBeTradedNow[] = _("An EGG can't be traded now."); ALIGNED(4) const u8 gText_OtherTrainersPkmnCantBeTraded[] = _("The other TRAINER's POKéMON\ncan't be traded now."); @@ -351,33 +351,33 @@ const u8 gText_MoveHeavyBoulders[] = _("Move heavy boulders."); const u8 gText_LightUpDarkness[] = _("Light up darkness."); const u8 gText_ShatterACrackedRock[] = _("Shatter a cracked rock."); const u8 gText_ClimbAWaterfall[] = _("Climb a waterfall."); -const u8 gUnknown_84175C1[] = _("すいちゅうに もぐる"); +const u8 gText_DiveUnderwater[] = _("すいちゅうに もぐる"); const u8 gText_EscapeFromHere[] = _("Escape from here."); const u8 gText_LureWildPokemon[] = _("Lure wild POKéMON."); const u8 gText_ShareHp[] = _("Share HP."); const u8 gText_ReturnToAHealingSpot[] = _("Return to a healing spot."); const u8 gText_EscapeFromHereAndReturnTo[] = _("Want to escape from here and return\nto {STR_VAR_1}?"); const u8 gText_ReturnToHealingSpot[] = _("Want to return to the healing spot\nused last in {STR_VAR_1}?"); -const u8 gText_Attack3[] = _("ATTACK"); -const u8 gText_Defense3[] = _("DEFENSE"); -const u8 gUnknown_8417683[] = _("とくこう"); -const u8 gUnknown_8417688[] = _("とくぼう"); -const u8 gText_Speed2[] = _("SPEED"); -const u8 gUnknown_8417693[] = _("HP"); +const u8 gText_ItemEffect_Attack[] = _("ATTACK"); +const u8 gText_ItemEffect_Defense[] = _("DEFENSE"); +const u8 gText_ItemEffect_SpAtk_Unused[] = _("とくこう"); // A different SpAtk is used instead +const u8 gText_ItemEffect_SpDef_Unused[] = _("とくぼう"); // A different SpDef is used instead +const u8 gText_ItemEffect_Speed[] = _("SPEED"); +const u8 gText_ItemEffect_HP_Unused[] = _("HP"); // A different HP is used instead const u8 gText_PkmnCantParticipate[] = _("That POKéMON can't participate.{PAUSE_UNTIL_PRESS}"); const u8 gText_CancelParticipation[] = _("Cancel participation?"); -const u8 gUnknown_84176CE[] = _(""); -const u8 gUnknown_84176CF[] = _("Cancel the battle?"); +const u8 gText_Empty12[] = _(""); +const u8 gText_CancelBattle[] = _("Cancel the battle?"); const u8 gText_TurnOff[] = _("TURN OFF"); -const u8 gUnknown_84176EB[] = _("もようがえ"); +const u8 gText_Decoration[] = _("もようがえ"); const u8 gText_ItemStorage[] = _("ITEM STORAGE"); const u8 gText_Mailbox[] = _("MAILBOX"); const u8 gText_DepositItem2[] = _("DEPOSIT ITEM"); const u8 gText_WithdrawItem2[] = _("WITHDRAW ITEM"); -const u8 gUnknown_8417721[] = _("どうぐを すてる"); +const u8 gText_TossItem[] = _("どうぐを すてる"); const u8 gText_StoreItemsInThePC[] = _("Store items in the PC."); const u8 gText_TakeOutItemsFromThePC[] = _("Take out items from the PC."); -const u8 gUnknown_841775D[] = _("パソコンに あずけている\nどうぐを すてます"); +const u8 gText_ThrowAwayItemsInPC[] = _("パソコンに あずけている\nどうぐを すてます"); const u8 gText_ThereAreNoItems[] = _("There are no items.{PAUSE_UNTIL_PRESS}"); const u8 gText_NoMoreRoomInBag[] = _("There is no more\nroom in the BAG."); const u8 gText_WithdrawHowMany[] = _("Withdraw how many\n{STR_VAR_1}(s)?"); @@ -395,7 +395,7 @@ const u8 gText_Withdraw[] = _("WITHDRAW"); const u8 gText_ReturnToPC[] = _("Return to the PC."); const u8 gText_LtSurge[] = _("LT. SURGE"); const u8 gText_Koga[] = _("KOGA"); -const u8 gUnknown_84178DF[] = _("さんか する"); +const u8 gText_Participate[] = _("さんか する"); const u8 gText_Info[] = _("INFO"); const u8 gText_Eggs[] = _("EGGS"); const u8 gText_HallOfFame[] = _("HALL OF FAME"); @@ -406,14 +406,14 @@ const u8 gText_Par[] = _("PAR"); const u8 gText_Slp[] = _("SLP"); const u8 gText_Brn[] = _("BRN"); const u8 gText_Frz[] = _("FRZ"); -const u8 gUnknown_8417920[] = _("TOXIC"); -const u8 gUnknown_8417926[] = _("OK"); +const u8 gText_Toxic[] = _("TOXIC"); +const u8 gText_OK[] = _("OK"); const u8 gOtherText_Quit[] = _("QUIT"); -const u8 gUnknown_841792E[] = _("みました"); -const u8 gUnknown_8417933[] = _("これから"); +const u8 gText_SawIt[] = _("みました"); +const u8 gText_NotYet[] = _("これから"); const u8 gText_Yes[] = _("YES"); const u8 gText_No[] = _("NO"); -const u8 gUnknown_841793F[] = _("せつめい"); +const u8 gText_Info4[] = _("せつめい"); const u8 gText_SingleBattle[] = _("SINGLE BATTLE"); const u8 gText_DoubleBattle[] = _("DOUBLE BATTLE"); const u8 gText_MultiBattle[] = _("MULTI BATTLE"); @@ -430,7 +430,7 @@ const u8 gText_RedShard[] = _("RED SHARD"); const u8 gText_YellowShard[] = _("YELLOW SHARD"); const u8 gText_BlueShard[] = _("BLUE SHARD"); const u8 gText_GreenShard[] = _("GREEN SHARD"); -const u8 gUnknown_8417A30[] = _("バトルタワ-"); +const u8 gText_BattleTower[] = _("バトルタワ-"); const u8 gText_Right[] = _("Right"); const u8 gText_Left[] = _("Left"); const u8 gText_Tm13_4000Coins[] = _("TM13{CLEAR_TO 0x48}{FONT_0}4,000 COINS"); @@ -485,7 +485,7 @@ const u8 gText_FreshWater[] = _("FRESH WATER"); const u8 gText_SodaPop[] = _("SODA POP"); const u8 gText_Lemonade[] = _("LEMONADE"); const u8 gText_Coins_2[] = _("COINS"); -const u8 gText_Bicycle_1000000[] = _("BICYCLE{CLEAR_TO 0x49}{FONT_0}¥1,000,000"); +const u8 gText_Bicycle_Price[] = _("BICYCLE{CLEAR_TO 0x49}{FONT_0}¥1,000,000"); const u8 gText_NoThanks[] = _("NO THANKS"); const u8 gText_Abra_180Coins[] = _("ABRA{CLEAR_TO 0x55}{FONT_0} 180 COINS"); const u8 gText_Clefairy_500Coins[] = _("CLEFAIRY{CLEAR_TO 0x55}{FONT_0} 500 COINS"); @@ -521,10 +521,10 @@ const u8 gText_SevenIsland[] = _("SEVEN ISLAND"); const u8 gText_Vermilion[] = _("VERMILION"); const u8 gText_Colosseum_2[] = _("COLOSSEUM"); const u8 gText_BerryCrush[] = _("BERRY CRUSH"); -const u8 gText_Dummy_8417E66[] = _(""); -const u8 gText_Dummy_8417E67[] = _(""); -const u8 gUnknown_8417E68[] = _("せつめいを きく"); -const u8 gText_Dummy_8417E71[] = _(""); +const u8 gText_EmptyLinkService1[] = _(""); +const u8 gText_EmptyLinkService2[] = _(""); +const u8 gText_ListenToExplanation[] = _("せつめいを きく"); +const u8 gText_RecordCorner[] = _(""); // Dummied const u8 gText_PokemonJump[] = _("POKéMON JUMP"); const u8 gText_DodrioBerryPicking[] = _("DODRIO BERRY-PICKING"); const u8 gText_2Tinymushrooms[] = _("2 TINYMUSHROOMS"); @@ -537,18 +537,18 @@ const u8 gText_Charcoal_1000Coins[] = _("CHARCOAL{CLEAR_TO 0x50}{FONT_0}1,000 CO const u8 gText_MysticWater_1000Coins[] = _("MYSTIC WATER{CLEAR_TO 0x50}{FONT_0}1,000 COINS"); const u8 gText_YellowFlute_1600Coins[] = _("YELLOW FLUTE{CLEAR_TO 0x50}{FONT_0}1,600 COINS"); const u8 gText_SmokeBall_800Coins[] = _("SMOKE BALL{CLEAR_TO 0x5A}{FONT_0}800 COINS"); -const u8 gText_Dummy_8417F67[] = _(""); -const u8 gText_Dummy_8417F68[] = _(""); +const u8 gText_Multichoice_Empty2[] = _(""); +const u8 gText_Multichoice_Empty1[] = _(""); const u8 gText_BecomeLeader[] = _("BECOME LEADER"); const u8 gText_JoinGroup[] = _("JOIN GROUP"); const u8 gOtherText_Single[] = _("SINGLE"); const u8 gOtherText_Double[] = _("DOUBLE"); const u8 gOtherText_Knockout[] = _("KNOCKOUT"); const u8 gOtherText_Mixed[] = _("MIXED"); -const u8 gUnknown_8417F9F[] = _("99かい いじょう"); -const u8 gUnknown_8417FA9[] = _("1ぷん いじょう"); -const u8 gUnknown_8417FB2[] = _("びょう"); -const u8 gUnknown_8417FB6[] = _("かい"); +const u8 gText_99TimesPlus[] = _("99かい いじょう"); +const u8 gText_1MinutePlus[] = _("1ぷん いじょう"); +const u8 gText_SpaceSeconds[] = _("びょう"); +const u8 gText_SpaceTimes[] = _("かい"); const u8 gText_DecimalPoint[] = _("."); const u8 gText_BigGuy[] = _("Big guy"); const u8 gText_BigGirl[] = _("Big girl"); @@ -600,7 +600,7 @@ const u8 gString_BattleRecords_7Dashes[] = _("-------"); const u8 gString_BattleRecords_4Dashes[] = _("----"); const u8 gFameCheckerText_FameCheckerWillBeClosed[] = _("The FAME CHECKER will be closed."); const u8 gFameCheckerText_ClearTextbox[] = _("\n "); -const u8 gUnknown_8418204[] = _("やめる"); +const u8 gText_ExitUnused[] = _("やめる"); const u8 gText_ExitFromBox[] = _("Exit from the BOX."); const u8 gText_WhatDoYouWantToDo[] = _("What do you want to do?"); const u8 gText_PleasePickATheme[] = _("Please pick a theme."); @@ -668,7 +668,7 @@ const u8 gPCText_PolkaDot[] = _("STARS"); const u8 gPCText_Pokecenter[] = _("POKéCENTER"); const u8 gPCText_Machine[] = _("TILES"); const u8 gPCText_Simple[] = _("SIMPLE"); -const u8 gUnknown_8418562[] = _("なにを しますか?"); +const u8 gText_PC_WhatWouldYouLikeToDo[] = _("なにを しますか?"); const u8 gText_WithdrawPokemon[] = _("WITHDRAW POKéMON"); const u8 gText_DepositPokemon[] = _("DEPOSIT POKéMON"); const u8 gText_MovePokemon[] = _("MOVE POKéMON"); @@ -682,91 +682,91 @@ const u8 gText_SeeYaDescription[] = _("See you later!"); const u8 gText_JustOnePkmn[] = _("Can't deposit the last POKéMON!"); const u8 gText_PartyFull[] = _("Can't take any more POKéMON."); const u8 gText_Box[] = _("BOX"); -const u8 gUnknown_84186D1[] = _("Combine four words or phrases"); -const u8 gUnknown_84186EF[] = _("and make your profile."); -const u8 gUnknown_8418706[] = _("Make a message of six phrases."); -const u8 gUnknown_8418725[] = _("Max two 12-letter phrases/line."); -const u8 gUnknown_8418745[] = _("Find words that describe your"); -const u8 gUnknown_8418763[] = _("feelings right now."); -const u8 gUnknown_8418777[] = _("4つの ことばで"); -const u8 gUnknown_8418780[] = _("Combine nine words or phrases"); -const u8 gUnknown_841879E[] = _("and make a message."); -const u8 gUnknown_84187B2[] = _("Change just one word or phrase"); -const u8 gUnknown_84187D1[] = _("and improve the BARD's song."); -const u8 gUnknown_84187EE[] = _("and fill out the questionnaire."); -const u8 gUnknown_841880E[] = _("Your profile"); -const u8 gUnknown_841881B[] = _("Your feeling at the battle's start"); -const u8 gUnknown_841883E[] = _("What you say if you win a battle"); -const u8 gUnknown_841885F[] = _("What you say if you lose a battle"); -const u8 gUnknown_8418881[] = _("The answer"); -const u8 gUnknown_841888C[] = _("The MAIL message"); -const u8 gUnknown_841889D[] = _("はがきに のせる あいさつは"); -const u8 gUnknown_84188AC[] = _("The new song"); -const u8 gUnknown_84188B9[] = _("Combine two words or phrases"); -const u8 gUnknown_84188D6[] = _("and make a trendy saying."); -const u8 gUnknown_84188F0[] = _("The trendy saying"); -const u8 gUnknown_8418902[] = _("is as shown. Okay?"); -const u8 gUnknown_8418915[] = _("2つの ことばを くみあわせて"); -const u8 gUnknown_8418925[] = _("いい ことばを おしえてあげよう!"); -const u8 gUnknown_8418937[] = _("All the text being edited will"); -const u8 gUnknown_8418956[] = _("be deleted. Is that okay?"); -const u8 gUnknown_8418970[] = _("なにか ことばを いれてください!"); -const u8 gUnknown_8418982[] = _("ことばを ぜんぶ けすことは できません!"); -const u8 gUnknown_8418998[] = _("かえられる ことばは 1つ までです!"); -const u8 gUnknown_84189AC[] = _("うたを もとに もどします!"); -const u8 gUnknown_84189BB[] = _("それは もう はやっています!"); -const u8 gUnknown_84189CB[] = _("2つの ことばを くみあわせてください!"); -const u8 gUnknown_84189E0[] = _("Quit editing?"); -const u8 gUnknown_84189EE[] = _("Stop giving the POKéMON MAIL?"); -const u8 gUnknown_8418A0C[] = _("へんしゅうした ことばは ほぞん"); -const u8 gUnknown_8418A1D[] = _("されませんが いいですか?"); -const u8 gUnknown_8418A2B[] = _("PROFILE"); -const u8 gUnknown_8418A33[] = _("At the battle's start:"); -const u8 gUnknown_8418A4A[] = _("Upon winning a battle:"); -const u8 gUnknown_8418A61[] = _("Upon losing a battle:"); -const u8 gUnknown_8418A77[] = _("The BARD's Song"); -const u8 gUnknown_8418A87[] = _("What's hip and happening?"); -const u8 gUnknown_8418AA1[] = _("Interview"); -const u8 gUnknown_8418AAB[] = _("いい ことば"); -const u8 gUnknown_8418AB2[] = _("QUESTIONNAIRE"); -const u8 gUnknown_8418AC0[] = _(" きれい だよね-"); -const u8 gUnknown_8418ACA[] = _(" かわいい よね-"); -const u8 gUnknown_8418AD4[] = _(" のんびり だよね-"); -const u8 gUnknown_8418ADF[] = _(" ぽっかぽか だよね-"); -const u8 gUnknown_8418AEB[] = _(" あこがれる よね-"); -const u8 gUnknown_8418AF6[] = _(" ドキドキ するよね-"); -const u8 gUnknown_8418B02[] = _(" おもしろい よね-"); -const u8 gUnknown_8418B0D[] = _(" ふしぎ だよね-"); -const u8 gUnknown_8418B17[] = _("って"); -const u8 gUnknown_8418B1A[] = _("\nそう おもわない?"); -const u8 gUnknown_8418B25[] = _("たびに でたいな-\nどこか いい ところ しらない?"); -const u8 gUnknown_8418B40[] = _("120しょくの クレヨン かったんだ-\nいいでしょう?"); -const u8 gUnknown_8418B5C[] = _("しゃぼんだまに のって とべるように\nならないかな-"); -const u8 gUnknown_8418B77[] = _("すなはまに かいた もじは\nすぐに きえちゃうのが かなしいよね-"); -const u8 gUnknown_8418B99[] = _("うみの そこって どうなってるのかな-\nいちどで いいから みて みたいな-"); -const u8 gUnknown_8418BC0[] = _("ゆうやけを みると\nウチに かえりたく ならない?"); -const u8 gUnknown_8418BDA[] = _("みどりの しばで ねころがると\nきもちいいよね-"); -const u8 gUnknown_8418BF3[] = _("ひみつきち って いいよね!\nなんか わくわく してこない?"); -const u8 gUnknown_8418C12[] = _("ポケモン リ-グ"); +const u8 gText_CombineFourWordsOrPhrases[] = _("Combine four words or phrases"); +const u8 gText_AndMakeYourProfile[] = _("and make your profile."); +const u8 gText_MakeMessageSixPhrases[] = _("Make a message of six phrases."); +const u8 gText_MaxTwoTwelveLetterPhrases[] = _("Max two 12-letter phrases/line."); +const u8 gText_FindWordsThatDescribeYour[] = _("Find words that describe your"); +const u8 gText_FeelingsRightNow[] = _("feelings right now."); +const u8 gText_WithFourPhrases[] = _("4つの ことばで"); +const u8 gText_CombineNineWordsOrPhrases[] = _("Combine nine words or phrases"); +const u8 gText_AndMakeAMessage[] = _("and make a message."); +const u8 gText_ChangeJustOneWordOrPhrase[] = _("Change just one word or phrase"); +const u8 gText_AndImproveTheBardsSong[] = _("and improve the BARD's song."); +const u8 gText_AndFillOutTheQuestionnaire[] = _("and fill out the questionnaire."); +const u8 gText_YourProfile[] = _("Your profile"); +const u8 gText_YourFeelingAtTheBattlesStart[] = _("Your feeling at the battle's start"); +const u8 gText_WhatYouSayIfYouWin[] = _("What you say if you win a battle"); +const u8 gText_WhatYouSayIfYouLose[] = _("What you say if you lose a battle"); +const u8 gText_TheAnswer[] = _("The answer"); +const u8 gText_TheMailMessage[] = _("The MAIL message"); +const u8 gText_TheMailSalutation[] = _("はがきに のせる あいさつは"); +const u8 gText_TheNewSong[] = _("The new song"); +const u8 gText_CombineTwoWordsOrPhrases[] = _("Combine two words or phrases"); +const u8 gText_AndMakeATrendySaying[] = _("and make a trendy saying."); +const u8 gText_TheTrendySaying[] = _("The trendy saying"); +const u8 gText_IsAsShownOkay[] = _("is as shown. Okay?"); +const u8 gText_CombineTwoWordsOrPhrases2[] = _("2つの ことばを くみあわせて"); +const u8 gText_ToTeachHerAGoodSaying[] = _("いい ことばを おしえてあげよう!"); +const u8 gText_AllTextBeingEditedWill[] = _("All the text being edited will"); +const u8 gText_BeDeletedThatOkay[] = _("be deleted. Is that okay?"); +const u8 gText_PleaseEnterPhraseOrWord[] = _("なにか ことばを いれてください!"); +const u8 gText_EntireTextCantBeDeleted[] = _("ことばを ぜんぶ けすことは できません!"); +const u8 gText_OnlyOnePhrase[] = _("かえられる ことばは 1つ までです!"); +const u8 gText_OriginalSongWillBeUsed[] = _("うたを もとに もどします!"); +const u8 gText_ThatsTrendyAlready[] = _("それは もう はやっています!"); +const u8 gText_CombineTwoWordsOrPhrases3[] = _("2つの ことばを くみあわせてください!"); +const u8 gText_QuitEditing[] = _("Quit editing?"); +const u8 gText_StopGivingPkmnMail[] = _("Stop giving the POKéMON MAIL?"); +const u8 gText_TheEditedWords[] = _("へんしゅうした ことばは ほぞん"); +const u8 gText_WillNotBeSaved[] = _("されませんが いいですか?"); +const u8 gText_Profile[] = _("PROFILE"); +const u8 gText_AtTheBattlesStart[] = _("At the battle's start:"); +const u8 gText_UponWinningABattle[] = _("Upon winning a battle:"); +const u8 gText_UponLosingABattle[] = _("Upon losing a battle:"); +const u8 gText_TheBardsSong[] = _("The BARD's Song"); +const u8 gText_WhatsHipAndHappening[] = _("What's hip and happening?"); +const u8 gText_Interview[] = _("Interview"); +const u8 gText_GoodSaying[] = _("いい ことば"); +const u8 gText_Questionnaire[] = _("QUESTIONNAIRE"); +const u8 GiddyText_SoPretty[] = _(" きれい だよね-"); +const u8 GiddyText_SoDarling[] = _(" かわいい よね-"); +const u8 GiddyText_SoRelaxed[] = _(" のんびり だよね-"); +const u8 GiddyText_SoSunny[] = _(" ぽっかぽか だよね-"); +const u8 GiddyText_SoDesirable[] = _(" あこがれる よね-"); +const u8 GiddyText_SoExciting[] = _(" ドキドキ するよね-"); +const u8 GiddyText_SoAmusing[] = _(" おもしろい よね-"); +const u8 GiddyText_SoMagical[] = _(" ふしぎ だよね-"); +const u8 GiddyText_Is[] = _("って"); +const u8 GiddyText_DontYouAgree[] = _("\nそう おもわない?"); +const u8 GiddyText_ISoWantToGoOnAVacation[] = _("たびに でたいな-\nどこか いい ところ しらない?"); +const u8 GiddyText_IBoughtCrayonsWith120Colors[] = _("120しょくの クレヨン かったんだ-\nいいでしょう?"); +const u8 GiddyText_WouldntItBeNiceIfWeCouldFloat[] = _("しゃぼんだまに のって とべるように\nならないかな-"); +const u8 GiddyText_WhenYouWriteOnASandyBeach[] = _("すなはまに かいた もじは\nすぐに きえちゃうのが かなしいよね-"); +const u8 GiddyText_WhatsTheBottomOfTheSeaLike[] = _("うみの そこって どうなってるのかな-\nいちどで いいから みて みたいな-"); +const u8 GiddyText_WhenYouSeeTheSettingSunDoesIt[] = _("ゆうやけを みると\nウチに かえりたく ならない?"); +const u8 GiddyText_LyingBackInTheGreenGrass[] = _("みどりの しばで ねころがると\nきもちいいよね-"); +const u8 GiddyText_SecretBasesAreSoWonderful[] = _("ひみつきち って いいよね!\nなんか わくわく してこない?"); +const u8 gText_PokemonLeague[] = _("ポケモン リ-グ"); const u8 gText_PokemonCenter[] = _("POKéMON CENTER"); -const u8 gUnknown_8418C2A[] = _("に ポロックを あげますか?"); -const u8 gUnknown_8418C39[] = _("かっこよさ"); -const u8 gUnknown_8418C3F[] = _("うつくしさ"); -const u8 gUnknown_8418C45[] = _("かわいさ"); -const u8 gUnknown_8418C4A[] = _("かしこさ"); -const u8 gUnknown_8418C4F[] = _("たくましさ"); -const u8 gUnknown_8418C55[] = _("に みがきが かかった!"); -const u8 gUnknown_8418C62[] = _("なにも かわらなかった!"); -const u8 gUnknown_8418C6F[] = _("もう これいじょう たべない みたい‥"); -const u8 gText_SaveFailedScreen_CheckingBackupMemory[] = _("Save failed.\nChecking the backup memory‥\nPlease wait.\n“Time required:\nabout 1 minute”"); -const u8 gText_SaveFailedScreen_BackupMemoryDamaged[] = _("The backup memory is damaged or\nthe game's battery has run dry.\nThe game can be played, but its\nprogress cannot be saved.\n“Please press the A Button.”"); -const u8 gUnknown_8418D70[] = _("{COLOR DARK_GRAY}“このまま ぼうけんをつづけることは できません\nタイトルに もどります”"); -const u8 gUnknown_8418D99[] = _("けんさが しゅうりょうしました!\nもういちど レポ-トを かきこみます\nしばらくおまちください"); -const u8 gUnknown_8418DC9[] = _("レポ-トの かきこみは しゅうりょうしました\n{COLOR DARK_GRAY}“このまま ぼうけんをつづけることは できません\nタイトルに もどります”"); -const u8 gText_SaveFailedScreen_SaveCompleted[] = _("Save completed.\n“Please press the A Button.”"); -const u8 gUnknown_8418E36[] = _("れんらくせん"); -const u8 gUnknown_8418E3D[] = _("ひみつきち"); -const u8 gUnknown_8418E43[] = _("アジト"); +const u8 gText_GetsAPokeBlockQuestion[] = _("に ポロックを あげますか?"); +const u8 gText_Coolness[] = _("かっこよさ"); +const u8 gText_Beauty3[] = _("うつくしさ"); +const u8 gText_Cuteness[] = _("かわいさ"); +const u8 gText_Smartness[] = _("かしこさ"); +const u8 gText_Toughness[] = _("たくましさ"); +const u8 gText_WasEnhanced[] = _("に みがきが かかった!"); +const u8 gText_NothingChanged[] = _("なにも かわらなかった!"); +const u8 gText_WontEatAnymore[] = _("もう これいじょう たべない みたい‥"); +const u8 gText_SaveFailedCheckingBackup[] = _("Save failed.\nChecking the backup memory‥\nPlease wait.\n“Time required:\nabout 1 minute”"); +const u8 gText_BackupMemoryDamaged[] = _("The backup memory is damaged or\nthe game's battery has run dry.\nThe game can be played, but its\nprogress cannot be saved.\n“Please press the A Button.”"); +const u8 gText_GamePlayCannotBeContinued[] = _("{COLOR DARK_GRAY}“このまま ぼうけんをつづけることは できません\nタイトルに もどります”"); +const u8 gText_CheckCompleted[] = _("けんさが しゅうりょうしました!\nもういちど レポ-トを かきこみます\nしばらくおまちください"); +const u8 gText_SaveCompleteGameCannotContinue[] = _("レポ-トの かきこみは しゅうりょうしました\n{COLOR DARK_GRAY}“このまま ぼうけんをつづけることは できません\nタイトルに もどります”"); +const u8 gText_SaveCompletePressA[] = _("Save completed.\n“Please press the A Button.”"); +const u8 gText_Ferry[] = _("れんらくせん"); +const u8 gText_SecretBase[] = _("ひみつきち"); +const u8 gText_Hideout[] = _("アジト"); const u8 gText_YourName[] = _("YOUR NAME?"); const u8 gText_BoxName[] = _("BOX NAME?"); const u8 gText_PkmnsNickname[] = _("'s nickname?"); @@ -849,9 +849,9 @@ const u8 gText_TrainerCardYen[] = _("¥"); const u8 gText_TrainerCardPokedex[] = _("POKéDEX"); const u8 gText_TrainerCardNull[] = _(""); const u8 gText_Colon2[] = _(":"); -const u8 gUnknown_8419CFA[] = _("てん"); +const u8 gText_Points[] = _("てん"); const u8 gText_TrainerCardTime[] = _("TIME"); -const u8 gUnknown_8419D02[] = _("ゲ-ムポイント"); +const u8 gText_BattlePoints[] = _("ゲ-ムポイント"); // Unused. Name presumed, translation is Game Points const u8 gText_Var1sTrainerCard[] = _("'s TRAINER CARD"); const u8 gText_HallOfFameDebut[] = _("HALL OF FAME DEBUT "); const u8 gText_LinkBattles[] = _("LINK BATTLES"); @@ -861,7 +861,7 @@ const u8 gText_PokemonTrades[] = _("POKéMON TRADES"); const u8 gText_UnionRoomTradesBattles[] = _("UNION TRADES & BATTLES"); const u8 gText_BerryCrushes[] = _("BERRY CRUSH"); const u8 gText_WaitingTrainerFinishReading[] = _("Waiting for the other TRAINER to\nfinish reading your TRAINER CARD."); -const u8 gText_MenuOption[] = _("OPTION"); +const u8 gText_Option[] = _("OPTION"); const u8 gText_TextSpeed[] = _("TEXT SPEED"); const u8 gText_BattleScene[] = _("BATTLE SCENE"); const u8 gText_BattleStyle[] = _("BATTLE STYLE"); @@ -884,15 +884,15 @@ const u8 gText_ButtonTypeLEqualsA[] = _("L=A"); const u8 gText_ButtonTypeLR[] = _("LR"); const u8 gText_FrameType[] = _("TYPE"); const u8 gText_PickSwitchCancel[] = _("{DPAD_UPDOWN}PICK {DPAD_LEFTRIGHT}SWITCH {A_BUTTON}{B_BUTTON}CANCEL"); -const u8 gUnknown_8419E72[] = _("RTCを リセットします\nAで けってい Bで キャンセル"); -const u8 gUnknown_8419E90[] = _("げんざいの ゲ-ムない じかん"); -const u8 gUnknown_8419EA0[] = _("ぜんかいの ゲ-ムない じかん"); -const u8 gUnknown_8419EB0[] = _("じかんを さいせってい してください"); -const u8 gUnknown_8419EC3[] = _("じかんを さいせってい しました!\nレポ-トを かいています おまちください"); -const u8 gUnknown_8419EEA[] = _("レポ-トを かきこみました!"); -const u8 gUnknown_8419EF9[] = _("レポ-トの かきこみに\nしっぱい しました‥"); -const u8 gUnknown_8419F10[] = _("レポ-トが ないので\nじかんの せっていは できません!"); -const u8 gUnknown_8419F2D[] = _("ゲ-ムない じかんの しゅうせい システムが\nつかえる ように なりました!"); +const u8 gText_ResetRTCConfirmCancel[] = _("RTCを リセットします\nAで けってい Bで キャンセル"); +const u8 gText_PresentTime[] = _("げんざいの ゲ-ムない じかん"); +const u8 gText_PreviousTime[] = _("ぜんかいの ゲ-ムない じかん"); +const u8 gText_PleaseResetTime[] = _("じかんを さいせってい してください"); +const u8 gText_ClockHasBeenReset[] = _("じかんを さいせってい しました!\nレポ-トを かいています おまちください"); +const u8 gText_SaveCompleted[] = _("レポ-トを かきこみました!"); +const u8 gText_SaveFailed[] = _("レポ-トの かきこみに\nしっぱい しました‥"); +const u8 gText_NoSaveFileCantSetTime[] = _("レポ-トが ないので\nじかんの せっていは できません!"); +const u8 gText_InGameClockUsable[] = _("ゲ-ムない じかんの しゅうせい システムが\nつかえる ように なりました!"); const u8 gText_SavingDontTurnOffThePower2[] = _("SAVING…\nDON'T TURN OFF THE POWER."); // Start menu option descriptions @@ -907,26 +907,26 @@ const u8 gStartMenuDesc_Retire[] = _("Retire from the SAFARI GAME and return to\ #include "data/text/quest_log.h" -const u8 gUnknown_841B285[] = _(" was used on\n"); -const u8 gUnknown_841B293[] = _("."); -const u8 gUnknown_841B295[] = _("'s level rose to\n"); -const u8 gUnknown_841B2A7[] = _("."); -const u8 gUnknown_841B2A9[] = _("{FONT_0}MAX.{FONT_2} HP"); -const u8 gUnknown_841B2B7[] = _("ATTACK"); -const u8 gUnknown_841B2BE[] = _("DEFENSE"); -const u8 gUnknown_841B2C6[] = _("SPEED"); -const u8 gUnknown_841B2CC[] = _("SP. ATK"); -const u8 gUnknown_841B2D4[] = _("SP. DEF"); -const u8 gUnknown_841B2DC[] = _("{FONT_0}{PLUS}{FONT_2}"); -const u8 gUnknown_841B2E5[] = _("{FONT_0}-{FONT_2}"); -const u8 gUnknown_841B2ED[] = _("1, "); -const u8 gUnknown_841B2F1[] = _("2, and ‥ ‥ ‥ "); -const u8 gUnknown_841B2FF[] = _("Poof!\p"); -const u8 gUnknown_841B306[] = _("{DYNAMIC 0x00} forgot\n{DYNAMIC 0x01}.\p"); -const u8 gUnknown_841B315[] = _("And‥\p"); -const u8 gUnknown_841B31B[] = _("Machine set!\p"); -const u8 gUnknown_841B329[] = _("Huh?"); -const u8 gUnknown_841B32E[] = _("{DYNAMIC 0x00} learned\n{DYNAMIC 0x01}!"); +const u8 gText_WasUsedOn[] = _(" was used on\n"); +const u8 gText_Period[] = _("."); +const u8 gText_LevelRoseTo[] = _("'s level rose to\n"); +const u8 gText_Period2[] = _("."); +const u8 gText_LevelUp_MaxHP[] = _("{FONT_0}MAX.{FONT_2} HP"); +const u8 gText_LevelUp_Attack[] = _("ATTACK"); +const u8 gText_LevelUp_Defense[] = _("DEFENSE"); +const u8 gText_LevelUp_Speed[] = _("SPEED"); +const u8 gText_LevelUp_SpAtk[] = _("SP. ATK"); +const u8 gText_LevelUp_SpDef[] = _("SP. DEF"); +const u8 gText_LevelUp_Plus[] = _("{FONT_0}{PLUS}{FONT_2}"); +const u8 gText_LevelUp_Minus[] = _("{FONT_0}-{FONT_2}"); +const u8 gText_Counting_1[] = _("1, "); +const u8 gText_Counting_2And[] = _("2, and ‥ ‥ ‥ "); +const u8 gText_Poof[] = _("Poof!\p"); +const u8 gText_MonForgotMove[] = _("{DYNAMIC 0x00} forgot\n{DYNAMIC 0x01}.\p"); +const u8 gText_And[] = _("And‥\p"); +const u8 gText_MachineSet[] = _("Machine set!\p"); +const u8 gText_Huh[] = _("Huh?"); +const u8 gText_MonLearnedTMHM[] = _("{DYNAMIC 0x00} learned\n{DYNAMIC 0x01}!"); const u8 gText_Upper[] = _("UPPER"); const u8 gText_Lower[] = _("lower"); const u8 gText_Others[] = _("OTHERS"); @@ -939,8 +939,8 @@ const u8 gText_RegisterTextHere[] = _("Register text here?"); const u8 gText_InputText[] = _("Input text."); const u8 gText_F700JoinedChat[] = _("{DYNAMIC 0x00} joined the chat!"); const u8 gText_F700LeftChat[] = _("{DYNAMIC 0x00} left the chat."); -const u8 gUnknown_841B3D0[] = _("{DYNAMIC 0x00}の{DYNAMIC 0x01}ひきめ:"); -const u8 gUnknown_841B3DA[] = _("{DYNAMIC 0x00}の{DYNAMIC 0x01}ひきめは いません"); +const u8 gText_PlayersXPokemon[] = _("{DYNAMIC 0x00}の{DYNAMIC 0x01}ひきめ:"); +const u8 gText_PlayersXPokmonDoesNotExist[] = _("{DYNAMIC 0x00}の{DYNAMIC 0x01}ひきめは いません"); const u8 gText_ExitingTheChat[] = _("Exiting the chat‥"); const u8 gText_LeaderHasLeftEndingChat[] = _("The LEADER, {DYNAMIC 0x00}, has\nleft, ending the chat."); const u8 gText_RegisteredTextChanged_OKtoSave[] = _("The registered text has been changed.\nIs it okay to save the game?"); @@ -960,13 +960,13 @@ const u8 gText_ThankYou[] = _("THANK YOU"); const u8 gText_ByeBye[] = _("BYE-BYE!"); const u8 gText_PlayerScurriedToCenter[] = _("{PLAYER} scurried to a POKéMON CENTER,\nprotecting the exhausted and fainted\nPOKéMON from further harm‥\p"); const u8 gText_PlayerScurriedBackHome[] = _("{PLAYER} scurried back home, protecting\nthe exhausted and fainted POKéMON from\nfurther harm‥\p"); -const u8 gUnknown_841B60E[] = _("PLAYER: {DYNAMIC 0x00}"); -const u8 gUnknown_841B619[] = _("This document is issued in\nrecognition of your magnificent\nachievement - the completion of\nthe {DYNAMIC 0x01} POKéDEX."); -const u8 gUnknown_841B684[] = _("GAME FREAK"); -const u8 gUnknown_841B68F[] = _("NATIONAL"); -const u8 gUnknown_841B698[] = _("KANTO"); -const u8 gUnknown_841B69E[] = _("Clear all save data areas?"); -const u8 gUnknown_841B6B9[] = _("Clearing data‥\nPlease wait."); +const u8 gText_Diploma_Player[] = _("PLAYER: {DYNAMIC 0x00}"); +const u8 gText_Diploma_ThisDocument[] = _("This document is issued in\nrecognition of your magnificent\nachievement - the completion of\nthe {DYNAMIC 0x01} POKéDEX."); +const u8 gText_Diploma_GameFreak[] = _("GAME FREAK"); +const u8 gText_Diploma_National[] = _("NATIONAL"); +const u8 gText_Diploma_Kanto[] = _("KANTO"); +const u8 gText_ClearAllSaveData[] = _("Clear all save data areas?"); +const u8 gText_ClearingData[] = _("Clearing data‥\nPlease wait."); const u8 gText_Player[] = _("PLAYER"); const u8 gText_Time[] = _("TIME"); const u8 gText_Colon[] = _(":"); @@ -980,8 +980,8 @@ const u8 gText_NickHatchPrompt[] = _("Would you like to nickname the newly\nhatc const u8 gString_OutOfCoins[] = _("You've run out of COINS.\nGame over!"); const u8 gString_QuitPlaying[] = _("Quit playing?"); const u8 gString_SlotMachineControls[] = _("{DPAD_LEFTRIGHT}COMBOS {DPAD_DOWN}WAGER {A_BUTTON}STOP {B_BUTTON}EXIT"); -const u8 gUnknown_841B798[] = _("おしえテレビ"); -const u8 gUnknown_841B79F[] = _("おしまい"); +const u8 gText_TeachyTV[] = _("おしえテレビ"); +const u8 gText_End[] = _("おしまい"); #include "data/text/teachy_tv.h" @@ -1034,7 +1034,7 @@ ALIGNED(4) const u8 gText_BerryCrush_TimeUp[] = _("Time's up.\pGood BERRY POWDER ALIGNED(4) const u8 gText_BerryCrush_CommunicationStandby[] = _("Communication standby…"); ALIGNED(4) const u8 gText_1_ClrBluShdwLtBlu_Dynamic0[] = _("1. {COLOR BLUE}{SHADOW LIGHT_BLUE}{DYNAMIC 0x00}"); const u8 gText_1_Dynamic0[] = _("1. {DYNAMIC 0x00}"); -ALIGNED(4) const u8 gText_SpaceTimes[] = _(" times"); +ALIGNED(4) const u8 gText_SpaceTimes2[] = _(" times"); ALIGNED(4) const u8 gText_XDotY[] = _("{STR_VAR_1}.{STR_VAR_2}"); ALIGNED(4) const u8 gText_StrVar1Berry[] = _("{STR_VAR_1} BERRY"); ALIGNED(4) const u8 gText_TimeColon[] = _("Time:"); @@ -1168,11 +1168,11 @@ const u8 gText_CommErrorEllipsis[] = _("Communication error…"); const u8 gText_MoveCloserToLinkPartner[] = _("Move closer to your link partner(s).\nAvoid obstacles between partners."); const u8 gText_ABtnRegistrationCounter[] = _("A Button: Registration Counter"); const u8 gText_ABtnTitleScreen[] = _("A Button: Title Screen"); -const u8 gUnknown_841DF82[] = _("{STR_VAR_1}P LINK"); -const u8 gUnknown_841DF8B[] = _("BRONZE"); -const u8 gUnknown_841DF92[] = _("COPPER"); -const u8 gUnknown_841DF99[] = _("SILVER"); -const u8 gUnknown_841DFA0[] = _("GOLD"); +const u8 gText_NumPlayerLink[] = _("{STR_VAR_1}P LINK"); +const u8 gText_BronzeCard[] = _("BRONZE"); +const u8 gText_CopperCard[] = _("COPPER"); +const u8 gText_SilverCard[] = _("SILVER"); +const u8 gText_GoldCard[] = _("GOLD"); const u8 gText_HelpSystemControls_A_Next[] = _("{A_BUTTON}NEXT"); const u8 gText_HelpSystemControls_PickOkEnd[] = _("{DPAD_UPDOWN}PICK {A_BUTTON}OK {B_BUTTON}END"); const u8 gText_HelpSystemControls_AorBtoCancel[] = _("{A_BUTTON}{B_BUTTON}CANCEL"); @@ -1210,44 +1210,44 @@ const u8 gTradeText_Cancel[] = _("CANCEL"); const u8 gTradeText_ChooseAPokemon[] = _("Choose a POKéMON."); const u8 gTradeText_Summary[] = _("SUMMARY"); const u8 gTradeText_Trade[] = _("TRADE"); -const u8 gTradeText_CancelTrade[] = _("Cancel trade?"); +const u8 gText_CancelTrade[] = _("Cancel trade?"); const u8 gTradeText_PressBButtonToExit[] = _("Press the B Button to exit."); -const u8 gUnknown_841E10A[] = _("SUMMARY"); -const u8 gUnknown_841E112[] = _("TRADE"); -const u8 gUnknown_841E118[] = _("{COLOR DARK_GRAY}{HIGHLIGHT WHITE}{SHADOW LIGHT_GRAY}Communication standby…\nPlease wait."); -const u8 gUnknown_841E145[] = _("{COLOR DARK_GRAY}{HIGHLIGHT WHITE}{SHADOW LIGHT_GRAY}The trade has been canceled."); -const u8 gUnknown_841E16B[] = _("{COLOR DARK_GRAY}{HIGHLIGHT WHITE}{SHADOW LIGHT_GRAY}That's your only POKéMON\nfor battle."); -const u8 gUnknown_841E199[] = _("{COLOR DARK_GRAY}{HIGHLIGHT WHITE}{SHADOW LIGHT_GRAY}Waiting for your friend\nto finish…"); -const u8 gUnknown_841E1C5[] = _("Your friend wants\nto trade POKéMON."); +const u8 gText_TradeAction_Summary[] = _("SUMMARY"); +const u8 gText_TradeAction_Trade[] = _("TRADE"); +const u8 gText_Trade_CommunicationStandby[] = _("{COLOR DARK_GRAY}{HIGHLIGHT WHITE}{SHADOW LIGHT_GRAY}Communication standby…\nPlease wait."); +const u8 gText_TradeHasBeenCanceled[] = _("{COLOR DARK_GRAY}{HIGHLIGHT WHITE}{SHADOW LIGHT_GRAY}The trade has been canceled."); +const u8 gText_Trade_OnlyPkmnForBattle[] = _("{COLOR DARK_GRAY}{HIGHLIGHT WHITE}{SHADOW LIGHT_GRAY}That's your only POKéMON\nfor battle."); +const u8 gText_WaitingForFriendToFinish[] = _("{COLOR DARK_GRAY}{HIGHLIGHT WHITE}{SHADOW LIGHT_GRAY}Waiting for your friend\nto finish…"); +const u8 gText_FriendWantsToTrade[] = _("Your friend wants\nto trade POKéMON."); const u8 gText_XWillBeSentToY[] = _("{STR_VAR_2} will be\nsent to {STR_VAR_1}."); const u8 gText_ByeByeVar1[] = _("Bye-bye, {STR_VAR_2}!"); const u8 gText_XSentOverY[] = _("{STR_VAR_1} sent over {STR_VAR_3}."); const u8 gText_TakeGoodCareOfX[] = _("Take good care of {STR_VAR_3}!"); const u8 gText_From[] = _("From "); -const u8 gUnknown_841E23A[] = _(""); -const u8 gUnknown_841E23B[] = _(""); -const u8 gUnknown_841E23C[] = _(""); -const u8 gUnknown_841E23D[] = _(""); -const u8 gUnknown_841E23E[] = _(""); -const u8 gUnknown_841E23F[] = _(""); -const u8 gUnknown_841E240[] = _(""); -const u8 gUnknown_841E241[] = _(""); -const u8 gUnknown_841E242[] = _(""); -const u8 gUnknown_841E243[] = _(""); -const u8 gUnknown_841E244[] = _(""); +const u8 gText_Empty1[] = _(""); +const u8 gText_Empty2[] = _(""); +const u8 gText_Empty3[] = _(""); +const u8 gText_Empty4[] = _(""); +const u8 gText_Empty5[] = _(""); +const u8 gText_Empty6[] = _(""); +const u8 gText_Empty7[] = _(""); +const u8 gText_Empty8[] = _(""); +const u8 gText_Empty9[] = _(""); +const u8 gText_Empty10[] = _(""); +const u8 gText_Empty11[] = _(""); const u8 gText_WirelessCommunicationStatus[] = _("Wireless Communication Status"); const u8 gText_PeopleTrading[] = _("People trading:"); const u8 gText_PeopleBattling[] = _("People battling:"); const u8 gText_PeopleInUnionRoom[] = _("People in the UNION ROOM:"); const u8 gText_PeopleCommunicating[] = _("People communicating:"); -const u8 gUnknown_841E2B4[] = _("{DYNAMIC 0x00} players"); -const u8 gUnknown_841E2BF[] = _("{DYNAMIC 0x01} player"); -const u8 gUnknown_841E2C9[] = _("{DYNAMIC 0x02} players"); -const u8 gUnknown_841E2D4[] = _("{DYNAMIC 0x03} players"); -const u8 gUnknown_841E2DF[] = _("{DPAD_ANY}えらぶ:{A_BUTTON}けってい"); -const u8 gUnknown_841E2EC[] = _("{B_BUTTON}CANCEL"); -const u8 gUnknown_841E2F5[] = _("{COLOR RED}{SHADOW LIGHT_RED} たいせんの くみあわせ\n{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}じぶんの ばしょをきめて ください"); -const u8 gUnknown_841E322[] = _("{ID}"); +const u8 gText_Dynamic0Players[] = _("{DYNAMIC 0x00} players"); +const u8 gText_Dynamic1Players[] = _("{DYNAMIC 0x01} player"); // Typo? This is "players" in Emerald +const u8 gText_Dynamic2Players[] = _("{DYNAMIC 0x02} players"); +const u8 gText_Dynamic3Players[] = _("{DYNAMIC 0x03} players"); +const u8 gText_DPadChooseAButtonConfirm[] = _("{DPAD_ANY}えらぶ:{A_BUTTON}けってい"); +const u8 gText_BButtonCancel[] = _("{B_BUTTON}CANCEL"); +const u8 gText_ChooseBattleLineup[] = _("{COLOR RED}{SHADOW LIGHT_RED} たいせんの くみあわせ\n{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}じぶんの ばしょをきめて ください"); +const u8 gText_UnusedId[] = _("{ID}"); const u8 gText_CommunicationStandby5[] = _("Communication standby…"); const u8 gDaycareText_GetAlongVeryWell[] = _("The two seem to get along\nvery well."); const u8 gDaycareText_GetAlong[] = _("The two seem to get along."); @@ -1262,7 +1262,7 @@ const u8 gText_1_2_and_Poof[] = _("{PAUSE 0x20}1, {PAUSE 0x0F}2, and {PAUSE 0x0F const u8 gText_MonForgotOldMoveAndMonLearnedNewMove[] = _("{STR_VAR_1} forgot {STR_VAR_3}.\pAnd‥\p{STR_VAR_1}\nlearned {STR_VAR_2}."); const u8 gText_GiveUpTryingToTeachNewMove[] = _("Give up trying to teach a new\nmove to {STR_VAR_1}?"); const u8 gText_WhichMoveShouldBeForgotten[] = _("Which move should be forgotten?\p"); -const u8 gUnknown_841E52D[] = _("----------"); +const u8 gText_TenDashes[] = _("----------"); const u8 gText_CommStandbyAwaitingOtherPlayer[] = _("Communication standby‥\nAwaiting another player to choose."); const u8 gText_BattleWasRefused[] = _("The battle was refused.{PAUSE 0x3C}"); const u8 gText_RefusedBattle[] = _("Refused the battle.{PAUSE 0x3C}"); @@ -1281,7 +1281,7 @@ const u8 gText_DontHaveCardNewOneInput[] = _("You don't have a WONDER CARD,\nso const u8 gText_DontHaveNewsNewOneInput[] = _("You don't have any WONDER NEWS,\nso new NEWS will be input."); const u8 gText_WhereShouldCardBeAccessed[] = _("Where should the WONDER CARD\nbe accessed?"); const u8 gText_WhereShouldNewsBeAccessed[] = _("Where should the WONDER NEWS\nbe accessed?"); -const u8 gUnknown_841E76B[] = _("Link standby...\n... ... B Button: Cancel"); +const u8 gText_LinkStandyBButtonCancel[] = _("Link standby...\n... ... B Button: Cancel"); const u8 gText_Communicating[] = _("Communicating…"); const u8 gText_CommunicationCompleted[] = _("Communication completed."); const u8 gText_CommunicationError[] = _("Communication error."); @@ -1332,4 +1332,4 @@ const u8 gText_Exit3[] = _("EXIT"); const u8 gText_Receive[] = _("RECEIVE"); const u8 gText_Send[] = _("SEND"); const u8 gText_Toss[] = _("TOSS"); -const u8 gUnknown_841EE2B[] = _("DEL. ALL{CLEAR_TO 0x57}CANCEL{CLEAR_TO 0xA4}OK"); +const u8 gText_DelAllCancelOk[] = _("DEL. ALL{CLEAR_TO 0x57}CANCEL{CLEAR_TO 0xA4}OK"); diff --git a/src/teachy_tv.c b/src/teachy_tv.c index b3985d676..93134bcd2 100644 --- a/src/teachy_tv.c +++ b/src/teachy_tv.c @@ -26,6 +26,7 @@ #include "fieldmap.h" #include "strings.h" #include "constants/field_effects.h" +#include "constants/event_objects.h" struct TeachyTvCtrlBlk { @@ -96,7 +97,7 @@ static void TeachyTvRestorePlayerPartyCallback(void); static void TeachyTvPreBattleAnimAndSetBattleCallback(u8 taskId); static void TeachyTvLoadMapTilesetToBuffer(struct Tileset *ts, u8 *dstBuffer, u16 size); static void TeachyTvPushBackNewMapPalIndexArrayEntry(const struct MapLayout *mStruct, u16 *buf1, u8 *palIndexArray, u16 mapEntry, u16 offset); -static void TeachyTvComputeMapTilesFromTilesetAndMetaTiles(u16 *metaTilesArray, u8 *blockBuf, u8 *tileset); +static void TeachyTvComputeMapTilesFromTilesetAndMetaTiles(const u16 *metaTilesArray, u8 *blockBuf, u8 *tileset); static void TeachyTvComputeSingleMapTileBlockFromTilesetAndMetaTiles(u8 *blockBuf, u8 *tileset, u8 metaTile); static u16 TeachyTvComputePalIndexArrayEntryByMetaTile(u8 *palIndexArrayBuf, u16 metaTile); static void TeachyTvLoadMapPalette(const struct MapLayout * mStruct, const u8 *palIndexArray); @@ -602,7 +603,7 @@ static void TeachyTvInitIo(void) static u8 TeachyTvSetupObjEventAndOam(void) { - u8 objId = AddPseudoObjectEvent(90, SpriteCallbackDummy, 0, 0, 8); + u8 objId = CreateObjectGraphicsSprite(OBJ_EVENT_GFX_TEACHY_TV_HOST, SpriteCallbackDummy, 0, 0, 8); gSprites[objId].oam.priority = 2; gSprites[objId].invisible = 1; return objId; @@ -1225,12 +1226,12 @@ static void TeachyTvLoadBg3Map(u16 *buffer) u16 numMapTilesRows = 0; const struct MapLayout *layout = &Route1_Layout; u16 * blockIndicesBuffer = AllocZeroed(0x800); - tilesetsBuffer = AllocZeroed(0x8000); + tilesetsBuffer = AllocZeroed(NUM_TILES_TOTAL * TILE_SIZE_4BPP); palIndicesBuffer = Alloc(16); memset(palIndicesBuffer, 0xFF, 16); - TeachyTvLoadMapTilesetToBuffer(layout->primaryTileset, tilesetsBuffer, 0x280); - TeachyTvLoadMapTilesetToBuffer(layout->secondaryTileset, tilesetsBuffer + 0x5000, 0x180); + TeachyTvLoadMapTilesetToBuffer(layout->primaryTileset, tilesetsBuffer, NUM_TILES_IN_PRIMARY); + TeachyTvLoadMapTilesetToBuffer(layout->secondaryTileset, tilesetsBuffer + NUM_TILES_IN_PRIMARY * TILE_SIZE_4BPP, NUM_TILES_TOTAL - NUM_TILES_IN_PRIMARY); for (i = 0; i < 9; i++) { @@ -1258,14 +1259,10 @@ static void TeachyTvLoadBg3Map(u16 *buffer) for (i = 0; i < numMapTilesRows; i++) { memset(mapTilesRowBuffer, 0, 0x80); - if (blockIndicesBuffer[i] < 0x280) - { - TeachyTvComputeMapTilesFromTilesetAndMetaTiles(layout->primaryTileset->metatiles + blockIndicesBuffer[i] * 16, mapTilesRowBuffer, tilesetsBuffer); - } + if (blockIndicesBuffer[i] < NUM_METATILES_IN_PRIMARY) + TeachyTvComputeMapTilesFromTilesetAndMetaTiles((const void *)layout->primaryTileset->metatiles + blockIndicesBuffer[i] * 16, mapTilesRowBuffer, tilesetsBuffer); else - { - TeachyTvComputeMapTilesFromTilesetAndMetaTiles(layout->secondaryTileset->metatiles + (blockIndicesBuffer[i] - 0x280) * 16, mapTilesRowBuffer, tilesetsBuffer); - } + TeachyTvComputeMapTilesFromTilesetAndMetaTiles((const void *)layout->secondaryTileset->metatiles + (blockIndicesBuffer[i] - NUM_METATILES_IN_PRIMARY) * 16, mapTilesRowBuffer, tilesetsBuffer); CpuFastCopy(mapTilesRowBuffer, bgTilesBuffer + i * 0x40, 0x80); } @@ -1292,14 +1289,18 @@ static void TeachyTvLoadMapTilesetToBuffer(struct Tileset *ts, u8 *dstBuffer, u1 static void TeachyTvPushBackNewMapPalIndexArrayEntry(const struct MapLayout *mStruct, u16 *buf1, u8 *palIndexArray, u16 mapEntry, u16 offset) { - u16 * metaTileEntryAddr = mapEntry < 0x280 ? &((u16 *)(mStruct->primaryTileset->metatiles))[8 * mapEntry] : &((u16 *)(mStruct->secondaryTileset->metatiles))[8 * (mapEntry - 0x280)]; + const u16 * metaTileEntryAddr; + if (mapEntry < NUM_METATILES_IN_PRIMARY) + metaTileEntryAddr = &mStruct->primaryTileset->metatiles[8 * mapEntry]; + else + metaTileEntryAddr = &mStruct->secondaryTileset->metatiles[8 * (mapEntry - NUM_METATILES_IN_PRIMARY)]; buf1[0] = (TeachyTvComputePalIndexArrayEntryByMetaTile(palIndexArray, metaTileEntryAddr[0]) << 12) + 4 * offset; buf1[1] = (TeachyTvComputePalIndexArrayEntryByMetaTile(palIndexArray, metaTileEntryAddr[1]) << 12) + 4 * offset + 1; buf1[32] = (TeachyTvComputePalIndexArrayEntryByMetaTile(palIndexArray, metaTileEntryAddr[2]) << 12) + 4 * offset + 2; buf1[33] = (TeachyTvComputePalIndexArrayEntryByMetaTile(palIndexArray, metaTileEntryAddr[3]) << 12) + 4 * offset + 3; } -static void TeachyTvComputeMapTilesFromTilesetAndMetaTiles(u16 *metaTilesArray, u8 *blockBuf, u8 *tileset) +static void TeachyTvComputeMapTilesFromTilesetAndMetaTiles(const u16 *metaTilesArray, u8 *blockBuf, u8 *tileset) { TeachyTvComputeSingleMapTileBlockFromTilesetAndMetaTiles(blockBuf, &tileset[0x20 * (*metaTilesArray & 0x3FF)], (*metaTilesArray >> 10) & 3); TeachyTvComputeSingleMapTileBlockFromTilesetAndMetaTiles(blockBuf, &tileset[0x20 * (metaTilesArray[4] & 0x3FF)], (metaTilesArray[4] >> 10) & 3); @@ -1384,16 +1385,16 @@ static void TeachyTvLoadMapPalette(const struct MapLayout * mStruct, const u8 * { u8 i; const struct Tileset * ts; - u16 * dest; + const u16 * dest; for (i = 0; i < 16; i++) { if (palIndexArray[i] == 0xFF) break; - if (palIndexArray[i] > 6) - dest = (u16 *)mStruct->secondaryTileset->palettes + 0x10 * palIndexArray[i]; + if (palIndexArray[i] >= NUM_PALS_IN_PRIMARY) + dest = mStruct->secondaryTileset->palettes[palIndexArray[i]]; else - dest = (u16 *)mStruct->primaryTileset->palettes + 0x10 * palIndexArray[i]; + dest = mStruct->primaryTileset->palettes[palIndexArray[i]]; LoadPalette(dest, 0x10 * (15 - i), 0x20); } } diff --git a/src/text.c b/src/text.c index 15487a889..78521e4e6 100644 --- a/src/text.c +++ b/src/text.c @@ -42,7 +42,7 @@ static const struct SpriteSheet sUnknown_81EA68C[] = static const struct SpritePalette sUnknown_81EA6A4[] = { - {gTMCaseMainWindowPalette, 0x8000}, + {gStandardMenuPalette, 0x8000}, {NULL} }; diff --git a/src/text_window.c b/src/text_window.c index 9c5c7f2b3..ea2d61b86 100644 --- a/src/text_window.c +++ b/src/text_window.c @@ -2,95 +2,106 @@ #include "gflib.h" #include "text_window.h" #include "text_window_graphics.h" -#include "quest_log.h" +#include "help_message.h" +#include "new_menu_helpers.h" -extern const u16 gUnknown_841F1C8[]; +static void LoadUserWindowGfxByFrame(u8 windowId, u8 frameType, u16 destOffset, u8 palIdx); -void LoadWindowGfx(u8 windowId, u8 frameType, u16 destOffset, u8 palIdx); - -void sub_814FD04(u8 bgId, u16 destOffset, u8 palIdx) +// Unused +// Equivalent to LoadHelpMessageWindowGfx, but takes a bg id directly +static void LoadHelpMessageWindowGfxOnBg(u8 bgId, u16 destOffset, u8 palIdx) { - LoadBgTiles(bgId, gUnknown_84566A8, 0x280, destOffset); - LoadPalette(stdpal_get(2), palIdx, 32); + LoadBgTiles(bgId, gHelpMessageWindow_Gfx, 0x280, destOffset); + LoadPalette(GetTextWindowPalette(2), palIdx, 32); } -void sub_814FD38(u8 bgId, u16 destOffset, u8 palIdx) +// Unused +// Equivalent to LoadMenuMessageWindowGfx, but takes a bg id directly +static void LoadMenuMessageWindowGfxOnBg(u8 bgId, u16 destOffset, u8 palIdx) { - LoadBgTiles(bgId, gUnknown_841F1C8, 0x280, destOffset); - LoadPalette(stdpal_get(0), palIdx, 32); + LoadBgTiles(bgId, gMenuMessageWindow_Gfx, 0x280, destOffset); + LoadPalette(GetTextWindowPalette(0), palIdx, 32); } -void sub_814FD6C(u8 bgId, u16 destOffset, u8 palIdx) +// Unused +// Equivalent to LoadSignpostWindowGfx, but takes a bg id directly +static void LoadSignpostWindowGfxOnBg(u8 bgId, u16 destOffset, u8 palIdx) { - LoadBgTiles(bgId, gUnknown_8470B0C, 0x260, destOffset); - LoadPalette(stdpal_get(1), palIdx, 32); + LoadBgTiles(bgId, gSignpostWindow_Gfx, 0x260, destOffset); + LoadPalette(GetTextWindowPalette(1), palIdx, 32); } -void DrawWindowBorderWithStdpal3(u8 bgId, u16 destOffset, u8 palIdx) +// Equivalent to LoadStdWindowGfx, but takes a bg id directly +void LoadStdWindowGfxOnBg(u8 bgId, u16 destOffset, u8 palIdx) { - LoadBgTiles(bgId, gStdFrame0, 0x120, destOffset); - LoadPalette(stdpal_get(3), palIdx, 32); + LoadBgTiles(bgId, gStdTextWindow_Gfx, 0x120, destOffset); + LoadPalette(GetTextWindowPalette(3), palIdx, 32); } -void sub_814FDD4(u8 bgId, u16 destOffset) +// Unused +// Equivalent to LoadQuestLogWindowTiles, but takes a bg id directly +static void LoadQuestLogWindowTilesOnBg(u8 bgId, u16 destOffset) { - LoadBgTiles(bgId, gStdFrame1, 0x280, destOffset); + LoadBgTiles(bgId, gQuestLogWindow_Gfx, 0x280, destOffset); } -void sub_814FDF4(u8 bgId, u8 frameType, u16 destOffset, u8 palIdx) +// Unused +// Equivalent to LoadUserWindowGfxByFrame, but takes a bg id directly +static void LoadUserWindowGfxByFrameOnBg(u8 bgId, u8 frameType, u16 destOffset, u8 palIdx) { LoadBgTiles(bgId, gUserFrames[frameType].tiles, 0x120, destOffset); LoadPalette(gUserFrames[frameType].palette, palIdx, 32); } -void LoadUserWindowBorderGfx(u8 windowId, u16 destOffset, u8 palIdx) +// Identical to LoadUserWindowGfx +void LoadUserWindowGfx2(u8 windowId, u16 destOffset, u8 palIdx) { - LoadWindowGfx(windowId, gSaveBlock2Ptr->optionsWindowFrameType, destOffset, palIdx); + LoadUserWindowGfxByFrame(windowId, gSaveBlock2Ptr->optionsWindowFrameType, destOffset, palIdx); } -void sub_814FE6C(u8 windowId, u16 destOffset, u8 palIdx) +void LoadHelpMessageWindowGfx(u8 windowId, u16 destOffset, u8 palIdx) { - LoadBgTiles(GetWindowAttribute(windowId, WINDOW_BG), gUnknown_84566A8, 0x280, destOffset); - LoadPalette(stdpal_get(2), palIdx, 32); + LoadBgTiles(GetWindowAttribute(windowId, WINDOW_BG), gHelpMessageWindow_Gfx, 0x280, destOffset); + LoadPalette(GetTextWindowPalette(2), palIdx, 32); } -void TextWindow_LoadResourcesStdFrame0(u8 windowId, u16 destOffset, u8 palIdx) +void LoadMenuMessageWindowGfx(u8 windowId, u16 destOffset, u8 palIdx) { - LoadBgTiles(GetWindowAttribute(windowId, WINDOW_BG), gUnknown_841F1C8, 0x280, destOffset); - LoadPalette(stdpal_get(0), palIdx, 32); + LoadBgTiles(GetWindowAttribute(windowId, WINDOW_BG), gMenuMessageWindow_Gfx, 0x280, destOffset); + LoadPalette(GetTextWindowPalette(0), palIdx, 32); } -void sub_814FEEC(u8 windowId, u16 destOffset, u8 palIdx) +void LoadSignpostWindowGfx(u8 windowId, u16 destOffset, u8 palIdx) { - LoadBgTiles(GetWindowAttribute(windowId, WINDOW_BG), gUnknown_8470B0C, 0x260, destOffset); - LoadPalette(stdpal_get(1), palIdx, 32); + LoadBgTiles(GetWindowAttribute(windowId, WINDOW_BG), gSignpostWindow_Gfx, 0x260, destOffset); + LoadPalette(GetTextWindowPalette(1), palIdx, 32); } -void TextWindow_SetStdFrame0_WithPal(u8 windowId, u16 destOffset, u8 palIdx) +void LoadStdWindowGfx(u8 windowId, u16 destOffset, u8 palIdx) { - LoadBgTiles(GetWindowAttribute(windowId, WINDOW_BG), gStdFrame0, 0x120, destOffset); - LoadPalette(stdpal_get(3), palIdx, 32); + LoadBgTiles(GetWindowAttribute(windowId, WINDOW_BG), gStdTextWindow_Gfx, 0x120, destOffset); + LoadPalette(GetTextWindowPalette(3), palIdx, 32); } -void sub_814FF6C(u8 windowId, u16 destOffset) +void LoadStdWindowTiles(u8 windowId, u16 destOffset) { - LoadBgTiles(GetWindowAttribute(windowId, WINDOW_BG), gStdFrame0, 0x120, destOffset); + LoadBgTiles(GetWindowAttribute(windowId, WINDOW_BG), gStdTextWindow_Gfx, 0x120, destOffset); } -void TextWindow_LoadTilesStdFrame1(u8 windowId, u16 destOffset) +void LoadQuestLogWindowTiles(u8 windowId, u16 destOffset) { - LoadBgTiles(GetWindowAttribute(windowId, WINDOW_BG), gStdFrame1, 0x280, destOffset); + LoadBgTiles(GetWindowAttribute(windowId, WINDOW_BG), gQuestLogWindow_Gfx, 0x280, destOffset); } -void LoadWindowGfx(u8 windowId, u8 frameType, u16 destOffset, u8 palIdx) +static void LoadUserWindowGfxByFrame(u8 windowId, u8 frameType, u16 destOffset, u8 palIdx) { LoadBgTiles(GetWindowAttribute(windowId, WINDOW_BG), gUserFrames[frameType].tiles, 0x120, destOffset); LoadPalette(gUserFrames[frameType].palette, palIdx, 32); } -void TextWindow_SetUserSelectedFrame(u8 windowId, u16 destOffset, u8 palIdx) +void LoadUserWindowGfx(u8 windowId, u16 destOffset, u8 palIdx) { - LoadWindowGfx(windowId, gSaveBlock2Ptr->optionsWindowFrameType, destOffset, palIdx); + LoadUserWindowGfxByFrame(windowId, gSaveBlock2Ptr->optionsWindowFrameType, destOffset, palIdx); } void DrawTextBorderOuter(u8 windowId, u16 tileNum, u8 palNum) @@ -140,7 +151,7 @@ void rbox_fill_rectangle(u8 windowId) FillBgTilemapBufferRect(bgLayer, 0, tilemapLeft - 1, tilemapTop - 1, width + 2, height + 2, 0x11); } -const u16 *stdpal_get(u8 id) +const u16 *GetTextWindowPalette(u8 id) { switch (id) { @@ -162,5 +173,5 @@ const u16 *stdpal_get(u8 id) break; } - return (const u16 *)(gUnknown_8471DEC) + id; + return (const u16 *)(gTextWindowPalettes) + id; } diff --git a/src/text_window_graphics.c b/src/text_window_graphics.c index 554c9e37a..8f2250362 100644 --- a/src/text_window_graphics.c +++ b/src/text_window_graphics.c @@ -1,36 +1,37 @@ #include "global.h" #include "text_window_graphics.h" -const u16 gUnknown_8470B0C[] = INCBIN_U16("graphics/text_window/unk_8470B0C.4bpp"); +const u16 gSignpostWindow_Gfx[] = INCBIN_U16("graphics/text_window/signpost.4bpp"); -static const u16 gUnknown_8470D6C[] = INCBIN_U16("graphics/text_window/unk_8470D6C.4bpp"); -static const u16 gUnknown_8470E8C[] = INCBIN_U16("graphics/text_window/unk_8470E8C.4bpp"); -static const u16 gUnk_Empty_Space_8470FAC[16] = {0}; -static const u16 gUnknown_8470FCC[] = INCBIN_U16("graphics/text_window/unk_8470FCC.4bpp"); -static const u16 gUnknown_84710EC[] = INCBIN_U16("graphics/text_window/unk_84710EC.4bpp"); -static const u16 gUnknown_847120C[] = INCBIN_U16("graphics/text_window/unk_847120C.4bpp"); -static const u16 gUnknown_847132C[] = INCBIN_U16("graphics/text_window/unk_847132C.4bpp"); -static const u16 gUnknown_847144C[] = INCBIN_U16("graphics/text_window/unk_847144C.4bpp"); -static const u16 gUnknown_847156C[] = INCBIN_U16("graphics/text_window/unk_847156C.4bpp"); -static const u16 gUnk_Empty_Space_847168C[16] = {0}; -static const u16 gUnknown_84716AC[] = INCBIN_U16("graphics/text_window/unk_84716AC.4bpp"); -static const u16 gUnknown_84717CC[] = INCBIN_U16("graphics/text_window/unk_84717CC.4bpp"); -static const u16 gUnk_Empty_Space_84718EC[16] = {0}; -static const u16 gUnknown_847190C[] = INCBIN_U16("graphics/text_window/unk_8470D6C.gbapal"); -static const u16 gUnknown_847192C[] = INCBIN_U16("graphics/text_window/unk_8470E8C.gbapal"); -static const u16 gUnknown_847194C[] = INCBIN_U16("graphics/text_window/unk_8470FCC.gbapal"); -static const u16 gUnknown_847196C[] = INCBIN_U16("graphics/text_window/unk_84710EC.gbapal"); -static const u16 gUnknown_847198C[] = INCBIN_U16("graphics/text_window/unk_847120C.gbapal"); -static const u16 gUnknown_84719AC[] = INCBIN_U16("graphics/text_window/unk_847132C.gbapal"); -static const u16 gUnknown_84719CC[] = INCBIN_U16("graphics/text_window/unk_847144C.gbapal"); -static const u16 gUnknown_84719EC[] = INCBIN_U16("graphics/text_window/unk_847156C.gbapal"); -static const u16 gUnknown_8471A0C[] = INCBIN_U16("graphics/text_window/unk_84716AC.gbapal"); -static const u16 gUnknown_8471A2C[] = INCBIN_U16("graphics/text_window/unk_84717CC.gbapal"); +static const u16 sUserFrame_Type1_Gfx[] = INCBIN_U16("graphics/text_window/type1.4bpp"); +static const u16 sUserFrame_Type2_Gfx[] = INCBIN_U16("graphics/text_window/type2.4bpp"); +static const u16 sUserFrame_Empty1[16] = {0}; +static const u16 sUserFrame_Type3_Gfx[] = INCBIN_U16("graphics/text_window/type3.4bpp"); +static const u16 sUserFrame_Type4_Gfx[] = INCBIN_U16("graphics/text_window/type4.4bpp"); +static const u16 sUserFrame_Type5_Gfx[] = INCBIN_U16("graphics/text_window/type5.4bpp"); +static const u16 sUserFrame_Type6_Gfx[] = INCBIN_U16("graphics/text_window/type6.4bpp"); +static const u16 sUserFrame_Type7_Gfx[] = INCBIN_U16("graphics/text_window/type7.4bpp"); +static const u16 sUserFrame_Type8_Gfx[] = INCBIN_U16("graphics/text_window/type8.4bpp"); +static const u16 sUserFrame_Empty2[16] = {0}; +static const u16 sUserFrame_Type9_Gfx[] = INCBIN_U16("graphics/text_window/type9.4bpp"); +static const u16 sUserFrame_Type10_Gfx[] = INCBIN_U16("graphics/text_window/type10.4bpp"); +static const u16 sUserFrame_Empty3[16] = {0}; -const u16 gStdFrame0[] = INCBIN_U16("graphics/text_window/unk_8471A4C.4bpp"); -const u16 gStdFrame1[] = INCBIN_U16("graphics/text_window/unk_8471B6C.4bpp"); +static const u16 sUserFrame_Type1_Pal[] = INCBIN_U16("graphics/text_window/type1.gbapal"); +static const u16 sUserFrame_Type2_Pal[] = INCBIN_U16("graphics/text_window/type2.gbapal"); +static const u16 sUserFrame_Type3_Pal[] = INCBIN_U16("graphics/text_window/type3.gbapal"); +static const u16 sUserFrame_Type4_Pal[] = INCBIN_U16("graphics/text_window/type4.gbapal"); +static const u16 sUserFrame_Type5_Pal[] = INCBIN_U16("graphics/text_window/type5.gbapal"); +static const u16 sUserFrame_Type6_Pal[] = INCBIN_U16("graphics/text_window/type6.gbapal"); +static const u16 sUserFrame_Type7_Pal[] = INCBIN_U16("graphics/text_window/type7.gbapal"); +static const u16 sUserFrame_Type8_Pal[] = INCBIN_U16("graphics/text_window/type8.gbapal"); +static const u16 sUserFrame_Type9_Pal[] = INCBIN_U16("graphics/text_window/type9.gbapal"); +static const u16 sUserFrame_Type10_Pal[] = INCBIN_U16("graphics/text_window/type10.gbapal"); -const u16 gUnknown_8471DEC[][16] = { +const u16 gStdTextWindow_Gfx[] = INCBIN_U16("graphics/text_window/std.4bpp"); +const u16 gQuestLogWindow_Gfx[] = INCBIN_U16("graphics/text_window/quest_log.4bpp"); + +const u16 gTextWindowPalettes[][16] = { INCBIN_U16("graphics/text_window/stdpal_0.gbapal"), INCBIN_U16("graphics/text_window/stdpal_1.gbapal"), INCBIN_U16("graphics/text_window/stdpal_2.gbapal"), @@ -39,21 +40,25 @@ const u16 gUnknown_8471DEC[][16] = { }; const struct TextWindowGraphics gUserFrames[] = { - {gUnknown_8470D6C, gUnknown_847190C}, - {gUnknown_8470E8C, gUnknown_847192C}, - {gUnknown_8470FCC, gUnknown_847194C}, - {gUnknown_84710EC, gUnknown_847196C}, - {gUnknown_847120C, gUnknown_847198C}, - {gUnknown_847132C, gUnknown_84719AC}, - {gUnknown_847144C, gUnknown_84719CC}, - {gUnknown_847156C, gUnknown_84719EC}, - {gUnknown_84716AC, gUnknown_8471A0C}, - {gUnknown_84717CC, gUnknown_8471A2C} -}; // NELEMS = 10 + {sUserFrame_Type1_Gfx, sUserFrame_Type1_Pal}, + {sUserFrame_Type2_Gfx, sUserFrame_Type2_Pal}, + {sUserFrame_Type3_Gfx, sUserFrame_Type3_Pal}, + {sUserFrame_Type4_Gfx, sUserFrame_Type4_Pal}, + {sUserFrame_Type5_Gfx, sUserFrame_Type5_Pal}, + {sUserFrame_Type6_Gfx, sUserFrame_Type6_Pal}, + {sUserFrame_Type7_Gfx, sUserFrame_Type7_Pal}, + {sUserFrame_Type8_Gfx, sUserFrame_Type8_Pal}, + {sUserFrame_Type9_Gfx, sUserFrame_Type9_Pal}, + {sUserFrame_Type10_Gfx, sUserFrame_Type10_Pal}, +}; -const struct TextWindowGraphics *GetWindowFrameTilesPal(u8 idx) +const struct TextWindowGraphics *GetUserWindowGraphics(u8 idx) { - if (idx >= 20) // if (idx >= NELEMS(gUserFrames)) +#ifdef BUGFIX + if (idx >= ARRAY_COUNT(gUserFrames)) +#else + if (idx >= 20) // Using the RSE number of elements +#endif return &gUserFrames[0]; else return &gUserFrames[idx]; diff --git a/src/tilemap_util.c b/src/tilemap_util.c new file mode 100644 index 000000000..fe2f34866 --- /dev/null +++ b/src/tilemap_util.c @@ -0,0 +1,238 @@ +#include "global.h" +#include "bg.h" +#include "tilemap_util.h" +#include "malloc.h" + +// Handles 3 particular tilemaps ("PKMN Data" text, party menu, close box +// button) used for Pokémon Storage System in a somewhat unusual way. +// For example, while the cursor is on the Close Box button it flashes between +// two states alternately. Both these states are their own part of the same +// tilemap that's always present. The utility shifts the tilemap up and down +// to show/hide the states, and limits the view with a rectangle that only +// reveals one at a time. + +struct TilemapUtil_RectData +{ + s16 x; + s16 y; + u16 width; + u16 height; + s16 destX; + s16 destY; +}; + +struct TilemapUtil +{ + struct TilemapUtil_RectData prev; // Only read in unused function + struct TilemapUtil_RectData cur; + const void *savedTilemap; // Only written in unused function + const void *tilemap; + u16 altWidth; // Never read + u16 altHeight; // Never read + u16 width; + u16 height; + u16 rowSize; // Never read + u8 tileSize; + u8 bg; + bool8 active; // Only read in unused function +}; + +static EWRAM_DATA struct TilemapUtil *sTilemapUtil = NULL; +static EWRAM_DATA u16 sNumTilemapUtilIds = 0; + +static void TilemapUtil_DrawPrev(u8 tilemapId); +static void TilemapUtil_Draw(u8 tilemapId); + +static const struct { + u16 width; + u16 height; +} sTilemapDimensions[2][4] = { + { + { 256, 256}, + { 512, 256}, + { 256, 512}, + { 512, 512} + }, { + { 128, 128}, + { 256, 256}, + { 512, 512}, + {1024, 1024} + } +}; + +void TilemapUtil_Init(u8 numTilemapIds) +{ + u16 i; + sTilemapUtil = Alloc(numTilemapIds * sizeof(struct TilemapUtil)); + sNumTilemapUtilIds = sTilemapUtil == NULL ? 0 : numTilemapIds; + for (i = 0; i < sNumTilemapUtilIds; i++) + { + sTilemapUtil[i].savedTilemap = NULL; + sTilemapUtil[i].active = FALSE; + } +} + +void TilemapUtil_Free(void) +{ + Free(sTilemapUtil); +} + +// Unused +void TilemapUtil_UpdateAll(void) +{ + int i; + + for (i = 0; i < sNumTilemapUtilIds; i++) + { + if (sTilemapUtil[i].active == TRUE) + TilemapUtil_Update(i); + } +} + +void TilemapUtil_SetTilemap(u8 tilemapId, u8 bg, const void *tilemap, u16 width, u16 height) +{ + u16 screenSize; + u16 bgType; + + if (tilemapId < sNumTilemapUtilIds) + { + sTilemapUtil[tilemapId].savedTilemap = NULL; + sTilemapUtil[tilemapId].tilemap = tilemap; + sTilemapUtil[tilemapId].bg = bg; + sTilemapUtil[tilemapId].width = width; + sTilemapUtil[tilemapId].height = height; + + screenSize = GetBgAttribute(bg, BG_ATTR_SCREENSIZE); + bgType = GetBgAttribute(bg, BG_ATTR_BGTYPE); + sTilemapUtil[tilemapId].altWidth = sTilemapDimensions[bgType][screenSize].width; + sTilemapUtil[tilemapId].altHeight = sTilemapDimensions[bgType][screenSize].height; + if (bgType != 0) + sTilemapUtil[tilemapId].tileSize = 1; + else + sTilemapUtil[tilemapId].tileSize = 2; + sTilemapUtil[tilemapId].rowSize = width * sTilemapUtil[tilemapId].tileSize; + sTilemapUtil[tilemapId].cur.width = width; + sTilemapUtil[tilemapId].cur.height = height; + sTilemapUtil[tilemapId].cur.x = 0; + sTilemapUtil[tilemapId].cur.y = 0; + sTilemapUtil[tilemapId].cur.destX = 0; + sTilemapUtil[tilemapId].cur.destY = 0; + sTilemapUtil[tilemapId].prev = sTilemapUtil[tilemapId].cur; + sTilemapUtil[tilemapId].active = TRUE; + } +} + +// Unused +void TilemapUtil_SetSavedMap(u8 tilemapId, const void *tilemap) +{ + if (tilemapId < sNumTilemapUtilIds) + { + sTilemapUtil[tilemapId].savedTilemap = tilemap; + sTilemapUtil[tilemapId].active = TRUE; + } +} + +void TilemapUtil_SetPos(u8 tilemapId, u16 destX, u16 destY) +{ + if (tilemapId < sNumTilemapUtilIds) + { + sTilemapUtil[tilemapId].cur.destX = destX; + sTilemapUtil[tilemapId].cur.destY = destY; + sTilemapUtil[tilemapId].active = TRUE; + } +} + +void TilemapUtil_SetRect(u8 tilemapId, u16 x, u16 y, u16 width, u16 height) +{ + if (tilemapId < sNumTilemapUtilIds) + { + sTilemapUtil[tilemapId].cur.x = x; + sTilemapUtil[tilemapId].cur.y = y; + sTilemapUtil[tilemapId].cur.width = width; + sTilemapUtil[tilemapId].cur.height = height; + sTilemapUtil[tilemapId].active = TRUE; + } +} + +void TilemapUtil_Move(u8 tilemapId, u8 mode, s8 param) +{ + if (tilemapId < sNumTilemapUtilIds) + { + switch (mode) + { + case 0: + sTilemapUtil[tilemapId].cur.destX += param; + sTilemapUtil[tilemapId].cur.width -= param; + break; + case 1: + sTilemapUtil[tilemapId].cur.x += param; + sTilemapUtil[tilemapId].cur.width += param; + break; + case 2: + sTilemapUtil[tilemapId].cur.destY += param; + sTilemapUtil[tilemapId].cur.height -= param; + break; + case 3: // this is the only mode ever used + sTilemapUtil[tilemapId].cur.y -= param; + sTilemapUtil[tilemapId].cur.height += param; + break; + case 4: + sTilemapUtil[tilemapId].cur.destX += param; + break; + case 5: + sTilemapUtil[tilemapId].cur.destY += param; + break; + } + sTilemapUtil[tilemapId].active = TRUE; + } +} + +void TilemapUtil_Update(u8 tilemapId) +{ + if (tilemapId < sNumTilemapUtilIds) + { + if (sTilemapUtil[tilemapId].savedTilemap != NULL) // Always false + TilemapUtil_DrawPrev(tilemapId); + TilemapUtil_Draw(tilemapId); + sTilemapUtil[tilemapId].prev = sTilemapUtil[tilemapId].cur; + } +} + +// Never called, see TilemapUtil_Update +static void TilemapUtil_DrawPrev(u8 tilemapId) +{ + int i; + int rowSize = sTilemapUtil[tilemapId].tileSize * sTilemapUtil[tilemapId].altWidth; + const void *tiles = sTilemapUtil[tilemapId].savedTilemap + + rowSize * sTilemapUtil[tilemapId].prev.destY + + sTilemapUtil[tilemapId].prev.destX * sTilemapUtil[tilemapId].tileSize; + for (i = 0; i < sTilemapUtil[tilemapId].prev.height; i++) + { + CopyToBgTilemapBufferRect(sTilemapUtil[tilemapId].bg, + tiles, + sTilemapUtil[tilemapId].prev.destX, + sTilemapUtil[tilemapId].prev.destY + i, + sTilemapUtil[tilemapId].prev.width, + 1); + tiles += rowSize; + } +} + +static void TilemapUtil_Draw(u8 tilemapId) +{ + int i; + int rowSize = sTilemapUtil[tilemapId].tileSize * sTilemapUtil[tilemapId].width; + const void *tiles = sTilemapUtil[tilemapId].tilemap + + rowSize * sTilemapUtil[tilemapId].cur.y + + sTilemapUtil[tilemapId].cur.x * sTilemapUtil[tilemapId].tileSize; + for (i = 0; i < sTilemapUtil[tilemapId].cur.height; i++) + { + CopyToBgTilemapBufferRect(sTilemapUtil[tilemapId].bg, + tiles, + sTilemapUtil[tilemapId].cur.destX, + sTilemapUtil[tilemapId].cur.destY + i, + sTilemapUtil[tilemapId].cur.width, + 1); + tiles += rowSize; + } +} diff --git a/src/tileset_anims.c b/src/tileset_anims.c index fcf6a6038..04854a2e4 100644 --- a/src/tileset_anims.c +++ b/src/tileset_anims.c @@ -80,7 +80,7 @@ static const u16 sTilesetAnims_CeladonCity_Fountain_Frame1[] = INCBIN_U16("data/ static const u16 sTilesetAnims_CeladonCity_Fountain_Frame2[] = INCBIN_U16("data/tilesets/secondary/celadon_city/anim/fountain/2.4bpp"); static const u16 sTilesetAnims_CeladonCity_Fountain_Frame3[] = INCBIN_U16("data/tilesets/secondary/celadon_city/anim/fountain/3.4bpp"); static const u16 sTilesetAnims_CeladonCity_Fountain_Frame4[] = INCBIN_U16("data/tilesets/secondary/celadon_city/anim/fountain/4.4bpp"); -static const u16 gUnknown_83ABD94[16] = {}; +static const u16 sTilesetAnims_CeladonCity_Fountain_Empty[16] = {}; static const u16 *const sTilesetAnims_CeladonCity_Fountain[] = { sTilesetAnims_CeladonCity_Fountain_Frame0, @@ -94,7 +94,7 @@ static const u16 sTilesetAnims_SilphCo_Fountain_Frame0[] = INCBIN_U16("data/tile static const u16 sTilesetAnims_SilphCo_Fountain_Frame1[] = INCBIN_U16("data/tilesets/secondary/silph_co/anim/fountain/1.4bpp"); static const u16 sTilesetAnims_SilphCo_Fountain_Frame2[] = INCBIN_U16("data/tilesets/secondary/silph_co/anim/fountain/2.4bpp"); static const u16 sTilesetAnims_SilphCo_Fountain_Frame3[] = INCBIN_U16("data/tilesets/secondary/silph_co/anim/fountain/3.4bpp"); -static const u16 gUnknown_83AC1C8[16] = {}; +static const u16 sTilesetAnims_SilphCo_Fountain_Empty[16] = {}; static const u16 *const sTilesetAnims_SilphCo_Fountain[] = { sTilesetAnims_SilphCo_Fountain_Frame0, @@ -207,27 +207,27 @@ static void _InitSecondaryTilesetAnimation(void) static void QueueAnimTiles_General_Flower(u16 timer) { - AppendTilesetAnimToBuffer(sTilesetAnims_General_Flower[timer % NELEMS(sTilesetAnims_General_Flower)], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(508)), 4 * TILE_SIZE_4BPP); + AppendTilesetAnimToBuffer(sTilesetAnims_General_Flower[timer % ARRAY_COUNT(sTilesetAnims_General_Flower)], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(508)), 4 * TILE_SIZE_4BPP); } static void QueueAnimTiles_General_Water_Current_LandWatersEdge(u16 timer) { - AppendTilesetAnimToBuffer(sTilesetAnims_General_Water_Current_LandWatersEdge[timer % NELEMS(sTilesetAnims_General_Water_Current_LandWatersEdge)], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(416)), 48 * TILE_SIZE_4BPP); + AppendTilesetAnimToBuffer(sTilesetAnims_General_Water_Current_LandWatersEdge[timer % ARRAY_COUNT(sTilesetAnims_General_Water_Current_LandWatersEdge)], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(416)), 48 * TILE_SIZE_4BPP); } static void QueueAnimTiles_General_SandWatersEdge(u16 timer) { - AppendTilesetAnimToBuffer(sTilesetAnims_General_SandWatersEdge[timer % NELEMS(sTilesetAnims_General_SandWatersEdge)], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(464)), 18 * TILE_SIZE_4BPP); + AppendTilesetAnimToBuffer(sTilesetAnims_General_SandWatersEdge[timer % ARRAY_COUNT(sTilesetAnims_General_SandWatersEdge)], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(464)), 18 * TILE_SIZE_4BPP); } static void TilesetAnim_General(u16 timer) { if (timer % 8 == 0) - QueueAnimTiles_General_SandWatersEdge(timer >> 3); + QueueAnimTiles_General_SandWatersEdge(timer / 8); if (timer % 16 == 1) - QueueAnimTiles_General_Water_Current_LandWatersEdge(timer >> 4); + QueueAnimTiles_General_Water_Current_LandWatersEdge(timer / 16); if (timer % 16 == 2) - QueueAnimTiles_General_Flower(timer >> 4); + QueueAnimTiles_General_Flower(timer / 16); } void InitTilesetAnim_General(void) @@ -239,7 +239,7 @@ void InitTilesetAnim_General(void) static void QueueAnimTiles_CeladonCity_Fountain(u16 timer) { - AppendTilesetAnimToBuffer(sTilesetAnims_CeladonCity_Fountain[timer % NELEMS(sTilesetAnims_CeladonCity_Fountain)], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(744)), 8 * TILE_SIZE_4BPP); + AppendTilesetAnimToBuffer(sTilesetAnims_CeladonCity_Fountain[timer % ARRAY_COUNT(sTilesetAnims_CeladonCity_Fountain)], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(744)), 8 * TILE_SIZE_4BPP); } static void TilesetAnim_CeladonCity(u16 timer) @@ -257,7 +257,7 @@ void InitTilesetAnim_CeladonCity(void) static void QueueAnimTiles_SilphCo_Fountain(u16 timer) { - AppendTilesetAnimToBuffer(sTilesetAnims_SilphCo_Fountain[timer % NELEMS(sTilesetAnims_SilphCo_Fountain)], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(976)), 8 * TILE_SIZE_4BPP); + AppendTilesetAnimToBuffer(sTilesetAnims_SilphCo_Fountain[timer % ARRAY_COUNT(sTilesetAnims_SilphCo_Fountain)], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(976)), 8 * TILE_SIZE_4BPP); } static void TilesetAnim_SilphCo(u16 timer) @@ -275,13 +275,13 @@ void InitTilesetAnim_SilphCo(void) static void QueueAnimTiles_MtEmber_Steam(u16 timer) { - AppendTilesetAnimToBuffer(sTilesetAnims_MtEmber_Steam[timer % NELEMS(sTilesetAnims_MtEmber_Steam)], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(896)), 8 * TILE_SIZE_4BPP); + AppendTilesetAnimToBuffer(sTilesetAnims_MtEmber_Steam[timer % ARRAY_COUNT(sTilesetAnims_MtEmber_Steam)], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(896)), 8 * TILE_SIZE_4BPP); } static void TilesetAnim_MtEmber(u16 timer) { if (timer % 16 == 0) - QueueAnimTiles_MtEmber_Steam(timer >> 4); + QueueAnimTiles_MtEmber_Steam(timer / 16); } void InitTilesetAnim_MtEmber(void) @@ -293,7 +293,7 @@ void InitTilesetAnim_MtEmber(void) static void QueueAnimTiles_VermilionGym_MotorizedDoor(u16 timer) { - u16 i = timer % NELEMS(sTilesetAnims_VermilionGym_MotorizedDoor); + u16 i = timer % ARRAY_COUNT(sTilesetAnims_VermilionGym_MotorizedDoor); AppendTilesetAnimToBuffer(sTilesetAnims_VermilionGym_MotorizedDoor[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(880)), 7 * TILE_SIZE_4BPP); } @@ -301,7 +301,7 @@ static void QueueAnimTiles_VermilionGym_MotorizedDoor(u16 timer) static void TilesetAnim_VermilionGym(u16 timer) { if (timer % 2 == 0) - QueueAnimTiles_VermilionGym_MotorizedDoor(timer >> 1); + QueueAnimTiles_VermilionGym_MotorizedDoor(timer / 2); } void InitTilesetAnim_VermilionGym(void) @@ -313,7 +313,7 @@ void InitTilesetAnim_VermilionGym(void) static void QueueAnimTiles_CeladonGym_Flowers(u16 timer) { - u16 i = timer % NELEMS(sTilesetAnims_CeladonGym_Flowers); + u16 i = timer % ARRAY_COUNT(sTilesetAnims_CeladonGym_Flowers); AppendTilesetAnimToBuffer(sTilesetAnims_CeladonGym_Flowers[i], (u16 *)(BG_VRAM + TILE_OFFSET_4BPP(739)), 4 * TILE_SIZE_4BPP); } @@ -321,7 +321,7 @@ static void QueueAnimTiles_CeladonGym_Flowers(u16 timer) static void TilesetAnim_CeladonGym(u16 timer) { if (timer % 16 == 0) - QueueAnimTiles_CeladonGym_Flowers(timer >> 4); + QueueAnimTiles_CeladonGym_Flowers(timer / 16); } void InitTilesetAnim_CeladonGym(void) diff --git a/src/tilesets.c b/src/tilesets.c new file mode 100644 index 000000000..2cc1da81d --- /dev/null +++ b/src/tilesets.c @@ -0,0 +1,7 @@ +#include "global.h" +#include "tilesets.h" +#include "tileset_anims.h" + +#include "data/tilesets/graphics.h" +#include "data/tilesets/metatiles.h" +#include "data/tilesets/headers.h" diff --git a/src/title_screen.c b/src/title_screen.c index c2aefa0bc..eb65b00f7 100644 --- a/src/title_screen.c +++ b/src/title_screen.c @@ -9,6 +9,7 @@ #include "intro.h" #include "load_save.h" #include "new_game.h" +#include "random.h" #include "save.h" #include "main_menu.h" #include "clear_save_data_screen.h" @@ -518,15 +519,15 @@ static void SetTitleScreenScene_FadeIn(s16 * data) if (data[2] > 36) { CreateTask(Task_TitleScreen_SlideWin0, 3); - sub_80717A8(0x2000, -4, 0x01, 0x10, RGB(30, 30, 31), 0, 0); + BlendPalettesGradually(0x2000, -4, 0x01, 0x10, RGB(30, 30, 31), 0, 0); data[2] = 0; data[1]++; } break; case 4: - if (!sub_807185C(0)) + if (!IsBlendPalettesGraduallyTaskActive(0)) { - sub_80717A8(0x2000, -4, 0x0F, 0x00, RGB(30, 30, 31), 0, 0); + BlendPalettesGradually(0x2000, -4, 0x0F, 0x00, RGB(30, 30, 31), 0, 0); data[1]++; } break; @@ -535,14 +536,14 @@ static void SetTitleScreenScene_FadeIn(s16 * data) if (data[2] > 20) { data[2] = 0; - sub_80717A8(0x2000, -4, 0x01, 0x10, RGB(30, 30, 31), 0, 0); + BlendPalettesGradually(0x2000, -4, 0x01, 0x10, RGB(30, 30, 31), 0, 0); data[1]++; } break; case 6: - if (!sub_807185C(0)) + if (!IsBlendPalettesGraduallyTaskActive(0)) { - sub_80717A8(0x2000, -4, 0x0F, 0x00, RGB(30, 30, 31), 0, 0); + BlendPalettesGradually(0x2000, -4, 0x0F, 0x00, RGB(30, 30, 31), 0, 0); data[1]++; } break; @@ -551,12 +552,12 @@ static void SetTitleScreenScene_FadeIn(s16 * data) if (data[2] > 20) { data[2] = 0; - sub_80717A8(0x2000, -3, 0x00, 0x10, RGB(30, 30, 31), 0, 0); + BlendPalettesGradually(0x2000, -3, 0x00, 0x10, RGB(30, 30, 31), 0, 0); data[1]++; } break; case 8: - if (!sub_807185C(0)) + if (!IsBlendPalettesGraduallyTaskActive(0)) { data[5] = 1; r4 = (0x10000 << CreateBlankSprite()) | 0x00001FFF; @@ -564,12 +565,12 @@ static void SetTitleScreenScene_FadeIn(s16 * data) BeginNormalPaletteFade(r4, 1, 0x10, 0x00, RGB(30, 30, 31)); ShowBg(0); CpuCopy16(gGraphics_TitleScreen_BoxArtMonPals, gPlttBufferUnfaded + 0xD0, 0x20); - sub_80717A8(0x2000, 1, 0x0F, 0x00, RGB(30, 30, 31), 0, 0); + BlendPalettesGradually(0x2000, 1, 0x0F, 0x00, RGB(30, 30, 31), 0, 0); data[1]++; } break; case 9: - if (!sub_807185C(0) && !gPaletteFade.active) + if (!IsBlendPalettesGraduallyTaskActive(0) && !gPaletteFade.active) { SetTitleScreenScene(data, TITLESCREENSCENE_RUN); } @@ -662,7 +663,7 @@ static void SetTitleScreenScene_Restart(s16 * data) case 4: HelpSystem_Disable(); DestroyTask(FindTaskIdByFunc(Task_TitleScreenMain)); - SetMainCallback2(CB2_CopyrightScreen); + SetMainCallback2(CB2_InitCopyrightScreenAfterTitleScreen); break; } } @@ -871,7 +872,7 @@ static void LoadMainTitleScreenPalsAndResetBgs(void) if (taskId != 0xFF) DestroyTask(taskId); - sub_8071898(); + DestroyBlendPalettesGraduallyTask(); ResetPaletteFadeControl(); LoadPalette(gGraphics_TitleScreen_GameTitleLogoPals, 0x00, 0x1A0); LoadPalette(gGraphics_TitleScreen_BoxArtMonPals, 0xD0, 0x20); @@ -896,7 +897,7 @@ static void CB2_FadeOutTransitionToBerryFix(void) if (!UpdatePaletteFade()) { m4aMPlayAllStop(); - SetMainCallback2(mb_berry_fix_serve); + SetMainCallback2(CB2_InitBerryFixProgram); } } @@ -1121,7 +1122,7 @@ static u16 TitleScreen_rand(u8 taskId, u8 field) u32 rngval; rngval = GetWordTaskArg(taskId, field); - rngval = rngval * 1103515245 + 24691; + rngval = ISO_RANDOMIZE1(rngval); SetWordTaskArg(taskId, field, rngval); return rngval >> 16; } diff --git a/src/tm_case.c b/src/tm_case.c index 43d590c40..18d1beafe 100644 --- a/src/tm_case.c +++ b/src/tm_case.c @@ -520,13 +520,13 @@ static void GetTMNumberAndMoveString(u8 * dest, u16 itemId) if (itemId >= ITEM_HM01) { StringAppend(gStringVar4, sText_ClearTo18); - StringAppend(gStringVar4, gOtherText_UnkF9_08_Clear_01); + StringAppend(gStringVar4, gText_NumberClear01); ConvertIntToDecimalStringN(gStringVar1, itemId - ITEM_HM01 + 1, STR_CONV_MODE_LEADING_ZEROS, 1); StringAppend(gStringVar4, gStringVar1); } else { - StringAppend(gStringVar4, gOtherText_UnkF9_08_Clear_01); + StringAppend(gStringVar4, gText_NumberClear01); ConvertIntToDecimalStringN(gStringVar1, itemId - ITEM_TM01 + 1, STR_CONV_MODE_LEADING_ZEROS, 2); StringAppend(gStringVar4, gStringVar1); } @@ -953,7 +953,7 @@ static void Task_SelectTMAction_Type3(u8 taskId) if (!itemid_is_unique(BagGetItemIdByPocketPosition(POCKET_TM_CASE, data[1]))) { - sTMCaseDynamicResources->savedCallback = Cb2_ReturnToPSS; + sTMCaseDynamicResources->savedCallback = CB2_ReturnToPokeStorage; Task_BeginFadeOutFromTMCase(taskId); } else @@ -1290,11 +1290,11 @@ static void InitWindowTemplatesAndPals(void) InitWindows(sWindowTemplates); DeactivateAllTextPrinters(); - TextWindow_SetUserSelectedFrame(0, 0x5B, 0xE0); - TextWindow_LoadResourcesStdFrame0(0, 0x64, 0xB0); - TextWindow_SetStdFrame0_WithPal(0, 0x78, 0xD0); - LoadPalette(gTMCaseMainWindowPalette, 0xF0, 0x20); - LoadPalette(gTMCaseMainWindowPalette, 0xA0, 0x20); + LoadUserWindowGfx(0, 0x5B, 0xE0); + LoadMenuMessageWindowGfx(0, 0x64, 0xB0); + LoadStdWindowGfx(0, 0x78, 0xD0); + LoadPalette(gStandardMenuPalette, 0xF0, 0x20); + LoadPalette(gStandardMenuPalette, 0xA0, 0x20); LoadPalette(sPal3Override, 0xF6, 0x04); LoadPalette(sPal3Override, 0xD6, 0x04); ListMenuLoadStdPalAt(0xc0, 0x01); diff --git a/src/trade.c b/src/trade.c index 92d14090d..9687bc988 100644 --- a/src/trade.c +++ b/src/trade.c @@ -434,25 +434,25 @@ static const u8 *const sTradeUITextPtrs[] = { gTradeText_ChooseAPokemon, gTradeText_Summary, gTradeText_Trade, - gTradeText_CancelTrade, + gText_CancelTrade, gTradeText_PressBButtonToExit }; static const struct MenuAction sMenuAction_SummaryTrade[] = { - {gUnknown_841E10A, { .void_u8 = TradeMenuAction_Summary }}, - {gUnknown_841E112, { .void_u8 = TradeMenuAction_Trade }} + {gText_TradeAction_Summary, { .void_u8 = TradeMenuAction_Summary }}, + {gText_TradeAction_Trade, { .void_u8 = TradeMenuAction_Trade }} }; static const u8 *const sTradeErrorOrStatusMessagePtrs[] = { - gUnknown_841E118, // Communication standby - gUnknown_841E145, // The trade has been canceled. - gUnknown_841E16B, // That's your only POKéMON for battle - gUnknown_8417094, // That's your only POKéMON for battle - gUnknown_841E199, // Waiting for your friend to finish - gUnknown_841E1C5, // Your friend wants to trade POKéMON - gText_PkmnCantBeTradedNow, // That POKéMON can't be traded now - gText_EggCantBeTradedNow, // An EGG can't be traded now - gText_OtherTrainersPkmnCantBeTraded // The other TRAINER's POKéMON can't be traded now + gText_Trade_CommunicationStandby, + gText_TradeHasBeenCanceled, + gText_Trade_OnlyPkmnForBattle, + gText_OnlyPkmnForBattle, // Same as above but without color formatting + gText_WaitingForFriendToFinish, + gText_FriendWantsToTrade, + gText_PkmnCantBeTradedNow, + gText_EggCantBeTradedNow, + gText_OtherTrainersPkmnCantBeTraded }; static const u8 sTextColor_PartyMonNickname[] = { TEXT_COLOR_TRANSPARENT, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GRAY }; @@ -682,8 +682,8 @@ static void InitTradeMenuResources(void) ResetPaletteFade(); gPaletteFade.bufferTransferDisabled = TRUE; SetVBlankCallback(VblankCB_Trade); - LoadPalette(gTMCaseMainWindowPalette, 0xF0, 0x14); - LoadPalette(gTMCaseMainWindowPalette, 0xD0, 0x14); + LoadPalette(gStandardMenuPalette, 0xF0, 0x14); + LoadPalette(gStandardMenuPalette, 0xD0, 0x14); ResetBgsAndClearDma3BusyFlags(FALSE); InitBgsFromTemplates(0, sBgTemplates, NELEMS(sBgTemplates)); SetBgTilemapBuffer(1, sTradeMenuResourcesPtr->tilemapBuffer); @@ -697,8 +697,8 @@ static void InitTradeMenuResources(void) FillWindowPixelBuffer(i, PIXEL_FILL(0)); } FillBgTilemapBufferRect(0, 0, 0, 0, 30, 20, 0xF); - TextWindow_SetStdFrame0_WithPal(0, 0x014, 0xC0); - TextWindow_SetUserSelectedFrame(2, 0x001, 0xE0); + LoadStdWindowGfx(0, 0x014, 0xC0); + LoadUserWindowGfx(2, 0x001, 0xE0); LoadMonIconPalettes(); sTradeMenuResourcesPtr->state = 0; sTradeMenuResourcesPtr->tradeMenuCBnum = 0; @@ -767,7 +767,7 @@ static void CB2_ReturnFromLinkTrade2(void) gMain.state++; } if (gWirelessCommType == 0) - CreateTask(Task_WaitForReceivedRemoteLinkPlayers5SecondTimeout, 1); + CreateTask(Task_WaitForLinkPlayerConnection, 1); } else { @@ -1346,9 +1346,7 @@ static bool8 shedinja_maker_maybe(void) break; case 3: if (id == 0) - { - Link_PrepareCmd0xCCCC_Rfu0xA100(1); - } + SendBlockRequest(BLOCK_REQ_SIZE_200); sTradeMenuResourcesPtr->state++; break; case 4: @@ -1365,9 +1363,7 @@ static bool8 shedinja_maker_maybe(void) break; case 7: if (id == 0) - { - Link_PrepareCmd0xCCCC_Rfu0xA100(1); - } + SendBlockRequest(BLOCK_REQ_SIZE_200); sTradeMenuResourcesPtr->state++; break; case 8: @@ -1384,9 +1380,7 @@ static bool8 shedinja_maker_maybe(void) break; case 11: if (id == 0) - { - Link_PrepareCmd0xCCCC_Rfu0xA100(1); - } + SendBlockRequest(BLOCK_REQ_SIZE_200); sTradeMenuResourcesPtr->state++; break; case 12: @@ -1403,9 +1397,7 @@ static bool8 shedinja_maker_maybe(void) break; case 15: if (id == 0) - { - Link_PrepareCmd0xCCCC_Rfu0xA100(3); - } + SendBlockRequest(BLOCK_REQ_SIZE_220); sTradeMenuResourcesPtr->state++; break; case 16: @@ -1422,9 +1414,7 @@ static bool8 shedinja_maker_maybe(void) break; case 19: if (id == 0) - { - Link_PrepareCmd0xCCCC_Rfu0xA100(4); - } + SendBlockRequest(BLOCK_REQ_SIZE_40); sTradeMenuResourcesPtr->state++; break; case 20: @@ -1692,7 +1682,7 @@ static void CommunicatePlayerSelectedMonForTrade(void) { sTradeMenuResourcesPtr->linkData[0] = 0xAABB; sTradeMenuResourcesPtr->linkData[1] = sTradeMenuResourcesPtr->tradeMenuCursorPosition; - SendBlock(bitmask_all_link_players_but_self(), sTradeMenuResourcesPtr->linkData, 20); + SendBlock(BitmaskAllOtherLinkPlayers(), sTradeMenuResourcesPtr->linkData, 20); } else { @@ -1751,7 +1741,7 @@ static void TradeMenuCB_0(void) { for (i = 0; i < 10; i++) sTradeMenuResourcesPtr->linkData[i] = i; - SendBlock(bitmask_all_link_players_but_self(), sTradeMenuResourcesPtr->linkData, 20); + SendBlock(BitmaskAllOtherLinkPlayers(), sTradeMenuResourcesPtr->linkData, 20); } } @@ -1864,7 +1854,7 @@ static void CommunicateWhetherMonCanBeTraded(void) sTradeMenuResourcesPtr->linkData[0] = 0xBBBB; if (IsLinkTaskFinished()) { - SendBlock(bitmask_all_link_players_but_self(), sTradeMenuResourcesPtr->linkData, 20); + SendBlock(BitmaskAllOtherLinkPlayers(), sTradeMenuResourcesPtr->linkData, 20); } break; case 2: @@ -1890,7 +1880,7 @@ static void TradeMenuCB_3(void) if (IsLinkTaskFinished()) { sTradeMenuResourcesPtr->linkData[0] = 0xBBCC; - SendBlock(bitmask_all_link_players_but_self(), sTradeMenuResourcesPtr->linkData, 20); + SendBlock(BitmaskAllOtherLinkPlayers(), sTradeMenuResourcesPtr->linkData, 20); } sTradeMenuResourcesPtr->tradeMenuCBnum = 100; PutWindowTilemap(17); @@ -2140,7 +2130,7 @@ static void HandleRedrawTradeMenuOnSide(u8 side) gSprites[sTradeMenuResourcesPtr->partyIcons[0][partyIdx + (whichParty * PARTY_SIZE)]].data[4] = (sTradeMonSpriteCoords[whichParty * PARTY_SIZE][1] * 8) - 12; StoreSpriteCallbackInData6(&gSprites[sTradeMenuResourcesPtr->partyIcons[0][partyIdx + (whichParty * PARTY_SIZE)]], SpriteCB_MonIcon); sTradeMenuResourcesPtr->menuRedrawState[side]++; - StartSpriteLinearTranslationFromCurrentPos(&gSprites[sTradeMenuResourcesPtr->partyIcons[0][partyIdx + (whichParty * PARTY_SIZE)]]); + TradeMenuBouncePartySprites(&gSprites[sTradeMenuResourcesPtr->partyIcons[0][partyIdx + (whichParty * PARTY_SIZE)]]); CopyToBgTilemapBufferRect_ChangePalette(1, sTradePartyBoxTilemap, side * 15, 0, 15, 17, 0); CopyBgTilemapBufferToVram(1); CopyBgTilemapBufferToVram(0); @@ -2410,7 +2400,7 @@ static void RunScheduledLinkTasks(void) switch (sTradeMenuResourcesPtr->cron[i].kind) { case 0: - SendBlock(bitmask_all_link_players_but_self(), sTradeMenuResourcesPtr->linkData, 20); + SendBlock(BitmaskAllOtherLinkPlayers(), sTradeMenuResourcesPtr->linkData, 20); break; case 1: PrintTradeErrorOrStatusMessage(TRADESTATMSG_COMMSTANDBY); diff --git a/src/trade_scene.c b/src/trade_scene.c index c3b36db16..a946299b9 100644 --- a/src/trade_scene.c +++ b/src/trade_scene.c @@ -1093,7 +1093,7 @@ static void HandleLinkDataSend(void) case 1: if (IsLinkTaskFinished()) { - SendBlock(bitmask_all_link_players_but_self(), sTradeData->linkData, 20); + SendBlock(BitmaskAllOtherLinkPlayers(), sTradeData->linkData, 20); sTradeData->scheduleLinkTransfer++; } case 2: @@ -1465,7 +1465,7 @@ static bool8 DoTradeAnim_Cable(void) if (!IsPokeSpriteNotFlipped(sTradeData->tradeSpecies[0])) { gSprites[sTradeData->pokePicSpriteIdxs[0]].affineAnims = sSpriteAffineAnimTable_PlayerPokePicAlt; - gSprites[sTradeData->pokePicSpriteIdxs[0]].oam.affineMode = 3; + gSprites[sTradeData->pokePicSpriteIdxs[0]].oam.affineMode = ST_OAM_AFFINE_DOUBLE; CalcCenterToCornerVec(&gSprites[sTradeData->pokePicSpriteIdxs[0]], 0, 3, 3); StartSpriteAffineAnim(&gSprites[sTradeData->pokePicSpriteIdxs[0]], 0); } @@ -1968,7 +1968,7 @@ static bool8 DoTradeAnim_Wireless(void) if (!IsPokeSpriteNotFlipped(sTradeData->tradeSpecies[0])) { gSprites[sTradeData->pokePicSpriteIdxs[0]].affineAnims = sSpriteAffineAnimTable_PlayerPokePicAlt; - gSprites[sTradeData->pokePicSpriteIdxs[0]].oam.affineMode = 3; + gSprites[sTradeData->pokePicSpriteIdxs[0]].oam.affineMode = ST_OAM_AFFINE_DOUBLE; CalcCenterToCornerVec(&gSprites[sTradeData->pokePicSpriteIdxs[0]], 0, 3, 3); StartSpriteAffineAnim(&gSprites[sTradeData->pokePicSpriteIdxs[0]], 0); } @@ -2526,7 +2526,7 @@ static void CB2_WaitAndAckTradeComplete(void) if (mpId == 0 && sTradeData->tradeStatus1 == 1 && sTradeData->tradeStatus2 == 1) { sTradeData->linkData[0] = 0xDCBA; - SendBlock(bitmask_all_link_players_but_self(), sTradeData->linkData, 20); + SendBlock(BitmaskAllOtherLinkPlayers(), sTradeData->linkData, 20); sTradeData->tradeStatus1 = 2; sTradeData->tradeStatus2 = 2; } @@ -2583,9 +2583,7 @@ static void CB2_HandleTradeEnded(void) IncrementGameStat(GAME_STAT_POKEMON_TRADES); } if (gWirelessCommType) - { - MEvent_RecordIdOfWonderCardSenderByEventType(2, gLinkPlayers[GetMultiplayerId() ^ 1].trainerId); - } + MysteryGift_TryIncrementStat(CARD_STAT_NUM_TRADES, gLinkPlayers[GetMultiplayerId() ^ 1].trainerId); SetContinueGameWarpStatusToDynamicWarp(); LinkFullSave_Init(); gMain.state++; @@ -2728,7 +2726,7 @@ static void LinkTrade_TearDownAssets(void) void DoInGameTradeScene(void) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); CreateTask(Task_WaitFadeAndStartInGameTradeAnim, 10); BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); HelpSystem_Disable(); diff --git a/src/trainer_card.c b/src/trainer_card.c index 4a9b99361..98a2f62e2 100644 --- a/src/trainer_card.c +++ b/src/trainer_card.c @@ -99,9 +99,9 @@ static void HandleGpuRegs(void); static void UpdateCardFlipRegs(u16 cardTop); static void ResetGpuRegs(void); static void TrainerCardNull(void); -static void sub_8089C5C(void); -static void sub_8089C80(void); -static void sub_8089CA4(void); +static void DmaClearOam(void); +static void DmaClearPltt(void); +static void ResetBgRegs(void); static void InitBgsAndWindows(void); static void SetTrainerCardCB2(void); static void SetUpTrainerCardTask(void); @@ -713,15 +713,15 @@ static void CB2_InitTrainerCard(void) gMain.state++; break; case 2: - sub_8089C5C(); + DmaClearOam(); gMain.state++; break; case 3: - sub_8089C80(); + DmaClearPltt(); gMain.state++; // fallthrough case 4: - sub_8089CA4(); + ResetBgRegs(); gMain.state++; break; case 5: @@ -984,30 +984,30 @@ static void TrainerCardNull(void) { } -static void sub_8089C5C(void) +static void DmaClearOam(void) { DmaClear32(3, (void *)OAM, OAM_SIZE); } -static void sub_8089C80(void) +static void DmaClearPltt(void) { DmaClear16(3, (void *)PLTT, PLTT_SIZE); } -static void sub_8089CA4(void) +static void ResetBgRegs(void) { - SetGpuReg(REG_OFFSET_BG0CNT, DISPCNT_MODE_0); - SetGpuReg(REG_OFFSET_BG1CNT, DISPCNT_MODE_0); - SetGpuReg(REG_OFFSET_BG2CNT, DISPCNT_MODE_0); - SetGpuReg(REG_OFFSET_BG3CNT, DISPCNT_MODE_0); - SetGpuReg(REG_OFFSET_BG0HOFS, DISPCNT_MODE_0); - SetGpuReg(REG_OFFSET_BG0VOFS, DISPCNT_MODE_0); - SetGpuReg(REG_OFFSET_BG1HOFS, DISPCNT_MODE_0); - SetGpuReg(REG_OFFSET_BG1VOFS, DISPCNT_MODE_0); - SetGpuReg(REG_OFFSET_BG2HOFS, DISPCNT_MODE_0); - SetGpuReg(REG_OFFSET_BG2VOFS, DISPCNT_MODE_0); - SetGpuReg(REG_OFFSET_BG3HOFS, DISPCNT_MODE_0); - SetGpuReg(REG_OFFSET_BG3VOFS, DISPCNT_MODE_0); + SetGpuReg(REG_OFFSET_BG0CNT, 0); + SetGpuReg(REG_OFFSET_BG1CNT, 0); + SetGpuReg(REG_OFFSET_BG2CNT, 0); + SetGpuReg(REG_OFFSET_BG3CNT, 0); + SetGpuReg(REG_OFFSET_BG0HOFS, 0); + SetGpuReg(REG_OFFSET_BG0VOFS, 0); + SetGpuReg(REG_OFFSET_BG1HOFS, 0); + SetGpuReg(REG_OFFSET_BG1VOFS, 0); + SetGpuReg(REG_OFFSET_BG2HOFS, 0); + SetGpuReg(REG_OFFSET_BG2VOFS, 0); + SetGpuReg(REG_OFFSET_BG3HOFS, 0); + SetGpuReg(REG_OFFSET_BG3VOFS, 0); } static void InitBgsAndWindows(void) diff --git a/src/trainer_see.c b/src/trainer_see.c index f008cdb86..12d47f247 100644 --- a/src/trainer_see.c +++ b/src/trainer_see.c @@ -550,7 +550,7 @@ void EndTrainerApproach(void) static void Task_DestroyTrainerApproachTask(u8 taskId) { DestroyTask(taskId); - EnableBothScriptContexts(); + ScriptContext_Enable(); } // Trainer See Excl Mark Field Effect diff --git a/src/trainer_tower.c b/src/trainer_tower.c index 9bc2090f1..71b383531 100644 --- a/src/trainer_tower.c +++ b/src/trainer_tower.c @@ -64,7 +64,7 @@ struct TrainerEncounterMusicPairs static EWRAM_DATA struct TrainerTowerState * sTrainerTowerState = NULL; static EWRAM_DATA struct TrainerTowerOpponent * sTrainerTowerOpponent = NULL; -static EWRAM_DATA u8 sUnused_203F460 = 0; +static EWRAM_DATA u8 sUnused = 0; static void SetUpTrainerTowerDataStruct(void); static void FreeTrainerTowerDataStruct(void); @@ -321,7 +321,7 @@ static const struct WindowTemplate sTimeBoardWindowTemplate[] = { }, DUMMY_WIN_TEMPLATE }; -static const u32 sUnused_847A228 = 0x70; +static const u32 sUnusedValue = 112; static const u8 sTextColors[3] = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_LIGHT_GRAY}; diff --git a/src/union_room.c b/src/union_room.c index 00baa9802..5369225de 100644 --- a/src/union_room.c +++ b/src/union_room.c @@ -133,29 +133,29 @@ static void ViewURoomPartnerTrainerCard(u8 *dest, struct UnkStruct_URoom * uRoom #define _8456CD8(a, b) ((a) | ((b) << 8)) static const u8 *const sUnionRoomActivityStringPtrs[] = { - gUnionRoomActivity_Blank, - gUnionRoomActivity_SingleBattle, - gUnionRoomActivity_DoubleBattle, - gUnionRoomActivity_MultiBattle, - gUnionRoomActivity_PokemonTrades, - gUnionRoomActivity_Chat, - gUnionRoomActivity_WonderCards, - gunionRoomActivity_WonderNews, - gUnionRoomActivity_Cards, - gUnionRoomActivity_PokemonJump, - gUnionRoomActivity_BerryCrush, - gUnionRoomActivity_BerryPicking, - gUnionRoomActivity_Search, - gUnionRoomActivity_SpinTradeJP, - gUnionRoomActivity_ItemTradeJP, - gUnionRoomActivity_Blank, - gUnionRoomActivity_Blank, - gUnionRoomActivity_Blank, - gUnionRoomActivity_Blank, - gUnionRoomActivity_Blank, - gUnionRoomActivity_Blank, - gUnionRoomActivity_WonderCards, - gunionRoomActivity_WonderNews + gText_UR_EmptyString, + gText_UR_SingleBattle, + gText_UR_DoubleBattle, + gText_UR_MultiBattle, + gText_UR_PokemonTrades, + gText_UR_Chat, + gText_UR_WonderCards, + gText_UR_WonderNews, + gText_UR_Cards, + gText_UR_PokemonJump, + gText_UR_BerryCrush, + gText_UR_BerryPicking, + gText_UR_Search, + gText_UR_SpinTrade, + gText_UR_ItemTrade, + gText_UR_EmptyString, + gText_UR_EmptyString, + gText_UR_EmptyString, + gText_UR_EmptyString, + gText_UR_EmptyString, + gText_UR_EmptyString, + gText_UR_WonderCards, + gText_UR_WonderNews }; static const struct WindowTemplate sWindowTemplate_BButtonCancel = { @@ -201,11 +201,11 @@ static const struct WindowTemplate sWindowTemplate_NumPlayerMode = { }; const struct ListMenuItem sListMenuItems_PossibleGroupMembers[] = { - {gUnionRoomActivity_Blank, 0}, - {gUnionRoomActivity_Blank, 1}, - {gUnionRoomActivity_Blank, 2}, - {gUnionRoomActivity_Blank, 3}, - {gUnionRoomActivity_Blank, 4} + {gText_UR_EmptyString, 0}, + {gText_UR_EmptyString, 1}, + {gText_UR_EmptyString, 2}, + {gText_UR_EmptyString, 3}, + {gText_UR_EmptyString, 4} }; static const struct ListMenuTemplate sListMenuTemplate_PossibleGroupMembers = { @@ -250,22 +250,22 @@ static const struct WindowTemplate sWindowTemplate_MysteryGiftPlayerNameAndId = }; static const struct ListMenuItem sListMenuItems_UnionRoomGroups[] = { - {gUnionRoomActivity_Blank, 0}, - {gUnionRoomActivity_Blank, 1}, - {gUnionRoomActivity_Blank, 2}, - {gUnionRoomActivity_Blank, 3}, - {gUnionRoomActivity_Blank, 4}, - {gUnionRoomActivity_Blank, 5}, - {gUnionRoomActivity_Blank, 6}, - {gUnionRoomActivity_Blank, 7}, - {gUnionRoomActivity_Blank, 8}, - {gUnionRoomActivity_Blank, 9}, - {gUnionRoomActivity_Blank, 10}, - {gUnionRoomActivity_Blank, 11}, - {gUnionRoomActivity_Blank, 12}, - {gUnionRoomActivity_Blank, 13}, - {gUnionRoomActivity_Blank, 14}, - {gUnionRoomActivity_Blank, 15} + {gText_UR_EmptyString, 0}, + {gText_UR_EmptyString, 1}, + {gText_UR_EmptyString, 2}, + {gText_UR_EmptyString, 3}, + {gText_UR_EmptyString, 4}, + {gText_UR_EmptyString, 5}, + {gText_UR_EmptyString, 6}, + {gText_UR_EmptyString, 7}, + {gText_UR_EmptyString, 8}, + {gText_UR_EmptyString, 9}, + {gText_UR_EmptyString, 10}, + {gText_UR_EmptyString, 11}, + {gText_UR_EmptyString, 12}, + {gText_UR_EmptyString, 13}, + {gText_UR_EmptyString, 14}, + {gText_UR_EmptyString, 15} }; static const struct ListMenuTemplate sListMenuTemplate_UnionRoomGroups = { @@ -300,10 +300,10 @@ static const struct WindowTemplate sWindowTemplate_InviteToActivity = { }; static const struct ListMenuItem sListMenuItems_InviteToActivity[] = { - {gUnknown_8459354, _8456CD8( ACTIVITY_CARD, 2)}, - {gUnknown_8459344, _8456CD8(ACTIVITY_BATTLE | IN_UNION_ROOM, 2)}, - {gUnknown_845934C, _8456CD8(ACTIVITY_CHAT | IN_UNION_ROOM, 2)}, - {gUnknown_8459360, _8456CD8(ACTIVITY_NONE | IN_UNION_ROOM, 0)} + {gText_UR_Greetings, _8456CD8( ACTIVITY_CARD, 2)}, + {gText_UR_Battle, _8456CD8(ACTIVITY_BATTLE | IN_UNION_ROOM, 2)}, + {gText_UR_Chat2, _8456CD8(ACTIVITY_CHAT | IN_UNION_ROOM, 2)}, + {gText_UR_Exit, _8456CD8(ACTIVITY_NONE | IN_UNION_ROOM, 0)} }; static const struct ListMenuTemplate sListMenuTemplate_InviteToActivity = { @@ -339,8 +339,8 @@ static const struct WindowTemplate sWindowTemplate_TradeBoardRegisterInfoExit = static const struct ListMenuItem gUnknown_8456E3C[] = { {gText_Register, 1}, - {gUnknown_8459370, 2}, - {gUnknown_8459360, 3} + {gText_UR_Info, 2}, + {gText_UR_Exit, 3} }; static const struct ListMenuTemplate sListMenuTemplate_TradeBoardRegisterInfoExit = { @@ -392,7 +392,7 @@ static const struct ListMenuItem sListMenuItems_TypeNames[] = { {gTypeNames[TYPE_DRAGON], TYPE_DRAGON}, {gTypeNames[TYPE_STEEL], TYPE_STEEL}, {gTypeNames[TYPE_DARK], TYPE_DARK}, - {gUnknown_8459360, NUMBER_OF_MON_TYPES} + {gText_UR_Exit, NUMBER_OF_MON_TYPES} }; static const struct ListMenuTemplate sListMenuTemplate_TypeNames = { @@ -437,16 +437,16 @@ static const struct WindowTemplate gUnknown_8456F24 = { }; static const struct ListMenuItem sTradeBoardListMenuItems[] = { - {gUnionRoomActivity_Blank, -3}, - {gUnionRoomActivity_Blank, 0}, - {gUnionRoomActivity_Blank, 1}, - {gUnionRoomActivity_Blank, 2}, - {gUnionRoomActivity_Blank, 3}, - {gUnionRoomActivity_Blank, 4}, - {gUnionRoomActivity_Blank, 5}, - {gUnionRoomActivity_Blank, 6}, - {gUnionRoomActivity_Blank, 7}, - {gUnknown_8459368, 8} + {gText_UR_EmptyString, -3}, + {gText_UR_EmptyString, 0}, + {gText_UR_EmptyString, 1}, + {gText_UR_EmptyString, 2}, + {gText_UR_EmptyString, 3}, + {gText_UR_EmptyString, 4}, + {gText_UR_EmptyString, 5}, + {gText_UR_EmptyString, 6}, + {gText_UR_EmptyString, 7}, + {gText_UR_Exit2, 8} }; static const struct ListMenuTemplate sTradeBoardListMenuTemplate = { @@ -481,22 +481,22 @@ static const struct WindowTemplate gUnknown_8456F94 = { }; static const struct ListMenuItem gUnknown_8456F9C[] = { - {gUnionRoomActivity_Blank, 0}, - {gUnionRoomActivity_Blank, 1}, - {gUnionRoomActivity_Blank, 2}, - {gUnionRoomActivity_Blank, 3}, - {gUnionRoomActivity_Blank, 4}, - {gUnionRoomActivity_Blank, 5}, - {gUnionRoomActivity_Blank, 6}, - {gUnionRoomActivity_Blank, 7}, - {gUnionRoomActivity_Blank, 8}, - {gUnionRoomActivity_Blank, 9}, - {gUnionRoomActivity_Blank, 10}, - {gUnionRoomActivity_Blank, 11}, - {gUnionRoomActivity_Blank, 12}, - {gUnionRoomActivity_Blank, 13}, - {gUnionRoomActivity_Blank, 14}, - {gUnionRoomActivity_Blank, 15} + {gText_UR_EmptyString, 0}, + {gText_UR_EmptyString, 1}, + {gText_UR_EmptyString, 2}, + {gText_UR_EmptyString, 3}, + {gText_UR_EmptyString, 4}, + {gText_UR_EmptyString, 5}, + {gText_UR_EmptyString, 6}, + {gText_UR_EmptyString, 7}, + {gText_UR_EmptyString, 8}, + {gText_UR_EmptyString, 9}, + {gText_UR_EmptyString, 10}, + {gText_UR_EmptyString, 11}, + {gText_UR_EmptyString, 12}, + {gText_UR_EmptyString, 13}, + {gText_UR_EmptyString, 14}, + {gText_UR_EmptyString, 15} }; static const struct ListMenuTemplate gUnknown_845701C = { @@ -645,7 +645,7 @@ static const u8 sUnref_84570D1[] = _("{DYNAMIC 00}·{DYNAMIC 01}"); // These are functions in Emerald but inlined in FireRed #define IntlConvPartnerUname7(dest, arg1) ({ \ - StringCopy7(dest, (arg1).gname_uname.uname); \ + StringCopy_PlayerName(dest, (arg1).gname_uname.uname); \ ConvertInternationalString(dest, (arg1).gname_uname.gname.unk_00.language); \ }) @@ -673,16 +673,16 @@ static void PrintNumPlayersWaitingForMsg(u8 windowId, u8 capacityCode, u8 count) switch (capacityCode << 8) { case 0x200: - UR_AddTextPrinterParameterized(windowId, 2, gUnknown_845742C[0][count - 1], 0, 2, UR_COLOR_DKE_WHT_LTE); + UR_AddTextPrinterParameterized(windowId, 2, gTexts_UR_PlayersNeededOrMode[0][count - 1], 0, 2, UR_COLOR_DKE_WHT_LTE); break; case 0x400: - UR_AddTextPrinterParameterized(windowId, 2, gUnknown_845742C[1][count - 1], 0, 2, UR_COLOR_DKE_WHT_LTE); + UR_AddTextPrinterParameterized(windowId, 2, gTexts_UR_PlayersNeededOrMode[1][count - 1], 0, 2, UR_COLOR_DKE_WHT_LTE); break; case 0x2500: - UR_AddTextPrinterParameterized(windowId, 2, gUnknown_845742C[2][count - 1], 0, 2, UR_COLOR_DKE_WHT_LTE); + UR_AddTextPrinterParameterized(windowId, 2, gTexts_UR_PlayersNeededOrMode[2][count - 1], 0, 2, UR_COLOR_DKE_WHT_LTE); break; case 0x3500: - UR_AddTextPrinterParameterized(windowId, 2, gUnknown_845742C[3][count - 1], 0, 2, UR_COLOR_DKE_WHT_LTE); + UR_AddTextPrinterParameterized(windowId, 2, gTexts_UR_PlayersNeededOrMode[3][count - 1], 0, 2, UR_COLOR_DKE_WHT_LTE); break; } @@ -695,7 +695,7 @@ static void PrintPlayerNameAndIdOnWindow(u8 windowId) u8 text2[12]; UR_AddTextPrinterParameterized(windowId, 2, gSaveBlock2Ptr->playerName, 0, 2, UR_COLOR_DKE_WHT_LTE); - StringCopy(text2, gUnknown_84571B4); + StringCopy(text2, gText_UR_ID); ConvertIntToDecimalStringN(text, ReadAsU16(gSaveBlock2Ptr->playerTrainerId), STR_CONV_MODE_LEADING_ZEROS, 5); StringAppend(text2, text); UR_AddTextPrinterParameterized(windowId, 0, text2, 0, 0x10, UR_COLOR_DKE_WHT_LTE); @@ -715,7 +715,7 @@ static void StringExpandPlaceholders_AwaitingCommFromAnother(u8 *dst, u8 caseId) case ACTIVITY_WCARD2: case ACTIVITY_WNEWS2: // UB: argument *dst isn't used, instead it always prints to gStringVar4 - StringExpandPlaceholders(gStringVar4, gUnknown_8457234); + StringExpandPlaceholders(gStringVar4, gText_UR_AwaitingCommunication); break; } } @@ -767,7 +767,7 @@ static void Task_TryBecomeLinkLeader(u8 taskId) data->nPlayerModeWindowId = AddWindow(&sWindowTemplate_NumPlayerMode); FillWindowPixelBuffer(data->bButtonCancelWindowId, PIXEL_FILL(2)); - UR_AddTextPrinterParameterized(data->bButtonCancelWindowId, 0, gUnknown_845747C, 8, 2, UR_COLOR_WHT_DKE_LTE); + UR_AddTextPrinterParameterized(data->bButtonCancelWindowId, 0, gText_UR_BButtonCancel, 8, 2, UR_COLOR_WHT_DKE_LTE); PutWindowTilemap(data->bButtonCancelWindowId); CopyWindowToVram(data->bButtonCancelWindowId, COPYWIN_GFX); @@ -789,9 +789,9 @@ static void Task_TryBecomeLinkLeader(u8 taskId) if ((sPlayerActivityGroupSize >> 4) != 0) { if (data->playerCount > (sPlayerActivityGroupSize >> 4) - 1 && (sPlayerActivityGroupSize & 0xF) != 0) - StringExpandPlaceholders(gStringVar4, gUnknown_8457264); + StringExpandPlaceholders(gStringVar4, gText_UR_AwaitingLinkPressStart); else - StringExpandPlaceholders(gStringVar4, gUnknown_8457234); + StringExpandPlaceholders(gStringVar4, gText_UR_AwaitingCommunication); } else { @@ -839,7 +839,7 @@ static void Task_TryBecomeLinkLeader(u8 taskId) break; case 10: id = ((sPlayerCurrActivity & 0xF) == 2) ? 1 : 0; - if (PrintOnTextbox(&data->textState, gUnknown_845767C[id])) + if (PrintOnTextbox(&data->textState, gTexts_UR_PlayerUnavailable[id])) { data->playerCount = UnionRoomLeaderField0CompactionAndCount(data->field_0); RedrawListMenu(data->listTaskId); @@ -849,7 +849,7 @@ static void Task_TryBecomeLinkLeader(u8 taskId) case 29: // Other player cancelled. id = ((sPlayerActivityGroupSize & 0xF) == 2) ? 0 : 1; - if (PrintOnTextbox(&data->textState, gUnknown_845767C[id])) + if (PrintOnTextbox(&data->textState, gTexts_UR_PlayerUnavailable[id])) { data->state = 21; } @@ -903,7 +903,7 @@ static void Task_TryBecomeLinkLeader(u8 taskId) else { IntlConvPartnerUname7(gStringVar1, data->field_0->arr[data->playerCount - 1]); - StringExpandPlaceholders(gStringVar4, gUnknown_8457554); + StringExpandPlaceholders(gStringVar4, gText_UR_AnOKWasSentToPlayer); data->state = 13; } @@ -943,8 +943,7 @@ static void Task_TryBecomeLinkLeader(u8 taskId) data->state = 17; break; case 15: - // Are these members OK? - if (PrintOnTextbox(&data->textState, gUnknown_8457514)) + if (PrintOnTextbox(&data->textState, gText_UR_AreTheseMembersOK)) data->state = 16; break; case 16: @@ -965,7 +964,7 @@ static void Task_TryBecomeLinkLeader(u8 taskId) } break; case 19: - if (PrintOnTextbox(&data->textState, gUnknown_8457530)) + if (PrintOnTextbox(&data->textState, gText_UR_CancelModeWithTheseMembers)) data->state = 20; break; case 20: @@ -1006,8 +1005,7 @@ static void Task_TryBecomeLinkLeader(u8 taskId) } break; case 30: - // Mode with members will be canceled. - if (PrintOnTextbox(&data->textState, gUnknown_8457610)) + if (PrintOnTextbox(&data->textState, gText_UR_ModeWithTheseMembersWillBeCanceled)) data->state = 23; break; case 21: @@ -1019,12 +1017,12 @@ static void Task_TryBecomeLinkLeader(u8 taskId) data->state++; break; case 24: - EnableBothScriptContexts(); + ScriptContext_Enable(); DestroyTask(taskId); gSpecialVar_Result = 5; break; case 22: - EnableBothScriptContexts(); + ScriptContext_Enable(); DestroyTask(taskId); gSpecialVar_Result = 8; break; @@ -1072,17 +1070,17 @@ static void Leader_GetAcceptNewMemberPrompt(u8 *dst, u8 activity) case ACTIVITY_BATTLE: case ACTIVITY_DBLBATTLE: case ACTIVITY_TRADE: - StringExpandPlaceholders(dst, gUnknown_84574A0); + StringExpandPlaceholders(dst, gText_UR_PlayerContactedYouForXAccept); break; case ACTIVITY_WCARD2: case ACTIVITY_WNEWS2: - StringExpandPlaceholders(dst, gUnknown_84574C4); + StringExpandPlaceholders(dst, gText_UR_PlayerContactedYouShareX); break; case ACTIVITY_MLTBATTLE: case ACTIVITY_PJUMP: case ACTIVITY_BCRUSH: case ACTIVITY_BPICK: - StringExpandPlaceholders(dst, gUnknown_84574EC); + StringExpandPlaceholders(dst, gText_UR_PlayerContactedYouAddToMembers); break; } } @@ -1093,11 +1091,11 @@ static void GetYouDeclinedTheOfferMessage(u8 *dst, u8 activity) { case ACTIVITY_BATTLE | IN_UNION_ROOM: case ACTIVITY_TRADE | IN_UNION_ROOM: - StringExpandPlaceholders(dst, gUnknown_8457E28); + StringExpandPlaceholders(dst, gText_UR_OfferDeclined1); break; case ACTIVITY_CHAT | IN_UNION_ROOM: case ACTIVITY_CARD | IN_UNION_ROOM: - StringExpandPlaceholders(dst, gUnknown_8457E44); + StringExpandPlaceholders(dst, gText_UR_OfferDeclined2); break; } } @@ -1111,13 +1109,13 @@ static void GetYouAskedToJoinGroupPleaseWaitMessage(u8 *dst, u8 activity) case ACTIVITY_TRADE: case ACTIVITY_WCARD2: case ACTIVITY_WNEWS2: - StringExpandPlaceholders(dst, gUnknown_8459238); + StringExpandPlaceholders(dst, gText_UR_AwaitingPlayersResponse); break; case ACTIVITY_MLTBATTLE: case ACTIVITY_PJUMP: case ACTIVITY_BCRUSH: case ACTIVITY_BPICK: - StringExpandPlaceholders(dst, gUnknown_8459250); + StringExpandPlaceholders(dst, gText_UR_PlayerHasBeenAskedToRegisterYouPleaseWait); break; } } @@ -1131,13 +1129,13 @@ static void GetGroupLeaderSentAnOKMessage(u8 *dst, u8 caseId) case ACTIVITY_TRADE: case ACTIVITY_WCARD2: case ACTIVITY_WNEWS2: - StringExpandPlaceholders(dst, gUnknown_84576AC); + StringExpandPlaceholders(dst, gText_UR_PlayerSentBackOK); break; case ACTIVITY_MLTBATTLE: case ACTIVITY_PJUMP: case ACTIVITY_BCRUSH: case ACTIVITY_BPICK: - StringExpandPlaceholders(dst, gUnknown_84576C4); + StringExpandPlaceholders(dst, gText_UR_PlayerOKdRegistration); break; } } @@ -1299,7 +1297,7 @@ static void Task_TryJoinLinkGroup(u8 taskId) data->state = 1; break; case 1: - if (PrintOnTextbox(&data->textState, gUnknown_84591B8[gSpecialVar_0x8004])) + if (PrintOnTextbox(&data->textState, gTexts_UR_ChooseTrainer[gSpecialVar_0x8004])) data->state = 2; break; case 2: @@ -1311,7 +1309,7 @@ static void Task_TryJoinLinkGroup(u8 taskId) data->playerNameAndIdWindowId = AddWindow(&sWindowTemplate_MysteryGiftPlayerNameAndId); FillWindowPixelBuffer(data->bButtonCancelWindowId, PIXEL_FILL(2)); - UR_AddTextPrinterParameterized(data->bButtonCancelWindowId, 0, gUnknown_8458FC8, 8, 2, UR_COLOR_WHT_DKE_LTE); + UR_AddTextPrinterParameterized(data->bButtonCancelWindowId, 0, gText_UR_ChooseJoinCancel, 8, 2, UR_COLOR_WHT_DKE_LTE); PutWindowTilemap(data->bButtonCancelWindowId); CopyWindowToVram(data->bButtonCancelWindowId, COPYWIN_GFX); @@ -1357,7 +1355,7 @@ static void Task_TryJoinLinkGroup(u8 taskId) else { // Postgame flags not both set - StringCopy(gStringVar4, gUnknown_8457608[var - 1]); + StringCopy(gStringVar4, gTexts_UR_CantTransmitToTrainer[var - 1]); data->state = 18; PlaySE(SE_POKENAV_ON); } @@ -1425,7 +1423,7 @@ static void Task_TryJoinLinkGroup(u8 taskId) { RfuSetStatus(RFU_STATUS_WAIT_ACK_JOIN_GROUP, 0); StringCopy(gStringVar1, sUnionRoomActivityStringPtrs[sPlayerCurrActivity]); - StringExpandPlaceholders(gStringVar4, gUnknown_8457700); + StringExpandPlaceholders(gStringVar4, gText_UR_AwaitingOtherMembers); } break; case 7: @@ -1449,7 +1447,7 @@ static void Task_TryJoinLinkGroup(u8 taskId) data->state = 7; break; case 7: - if (PrintOnTextbox(&data->textState, gUnknown_845771C)) + if (PrintOnTextbox(&data->textState, gText_UR_QuitBeingMember)) data->state = 8; break; case 8: @@ -1496,7 +1494,7 @@ static void Task_TryJoinLinkGroup(u8 taskId) break; case 13: DestroyWirelessStatusIndicatorSprite(); - if (PrintOnTextbox(&data->textState, gUnknown_8457754[RfuGetStatus()])) + if (PrintOnTextbox(&data->textState, gTexts_UR_PlayerDisconnected[RfuGetStatus()])) { gSpecialVar_Result = 6; data->state = 23; @@ -1509,7 +1507,7 @@ static void Task_TryJoinLinkGroup(u8 taskId) break; case 15: DestroyWirelessStatusIndicatorSprite(); - if (PrintOnTextbox(&data->textState, gUnknown_8457754[RfuGetStatus()])) + if (PrintOnTextbox(&data->textState, gTexts_UR_PlayerDisconnected[RfuGetStatus()])) { gSpecialVar_Result = 8; data->state = 23; @@ -1794,11 +1792,11 @@ static void Task_ExchangeCards(u8 taskId) { case 0: if (GetMultiplayerId() == 0) - Link_PrepareCmd0xCCCC_Rfu0xA100(2); + SendBlockRequest(BLOCK_REQ_SIZE_100); gTasks[taskId].data[0]++; break; case 1: - if (GetBlockReceivedStatus() == sub_800A8D4()) + if (GetBlockReceivedStatus() == GetLinkPlayerCountAsBitFlags()) { s32 i; u16 *recvBuff; @@ -1931,7 +1929,7 @@ static void Task_StartActivity(u8 taskId) case ACTIVITY_ACCEPT | IN_UNION_ROOM: CleanupOverworldWindowsAndTilemaps(); gMain.savedCallback = CB2_UnionRoomBattle; - InitChooseHalfPartyForBattle(2); + InitChooseMonsForBattle(CHOOSE_MONS_FOR_UNION_ROOM_BATTLE); break; case ACTIVITY_BATTLE: CleanupOverworldWindowsAndTilemaps(); @@ -2003,7 +2001,7 @@ static void Task_StartActivity(u8 taskId) DestroyTask(taskId); gSpecialVar_Result = 1; - ScriptContext2_Disable(); + UnlockPlayerFieldControls(); } static void Task_RunScriptAndFadeToActivity(u8 taskId) @@ -2015,11 +2013,11 @@ static void Task_RunScriptAndFadeToActivity(u8 taskId) { case 0: gSpecialVar_Result = 1; - EnableBothScriptContexts(); + ScriptContext_Enable(); data[0]++; break; case 1: - if (!ScriptContext1_IsScriptSetUp()) + if (!ScriptContext_IsEnabled()) { FadeScreen(FADE_TO_BLACK, 0); data[0]++; @@ -2128,8 +2126,7 @@ static void Task_MEvent_Leader(u8 taskId) } break; case 6: - // The link with your friend has been dropped... - if (MG_PrintTextOnWindow1AndWaitButton(&data->textState, gUnknown_84577F8)) + if (MG_PrintTextOnWindow1AndWaitButton(&data->textState, gText_UR_LinkWithFriendDropped)) { data->playerCount = UnionRoomLeaderField0CompactionAndCount(data->field_0); RedrawListMenu(data->listTaskId); @@ -2169,7 +2166,7 @@ static void Task_MEvent_Leader(u8 taskId) RedrawListMenu(data->listTaskId); data->playerCount++; IntlConvPartnerUname7(gStringVar1, data->field_0->arr[data->playerCount - 1]); - StringExpandPlaceholders(gStringVar4, gUnknown_8457554); + StringExpandPlaceholders(gStringVar4, gText_UR_AnOKWasSentToPlayer); data->state = 9; LinkRfu_StopManagerAndFinalizeSlots(); } @@ -2227,7 +2224,7 @@ static void Task_MEvent_Leader(u8 taskId) break; case 14: // Please start over from the beginning. - if (MG_PrintTextOnWindow1AndWaitButton(&data->textState, gUnknown_84571B8)) + if (MG_PrintTextOnWindow1AndWaitButton(&data->textState, gText_UR_PleaseStartOver)) { DestroyTask(taskId); gSpecialVar_Result = 5; @@ -2295,7 +2292,7 @@ static void Task_CardOrNewsWithFriend(u8 taskId) data->state = 1; break; case 1: - AddTextPrinterToWindow1(gUnknown_8458FE4); + AddTextPrinterToWindow1(gText_UR_ChooseTrainer); data->state = 2; break; case 2: @@ -2365,7 +2362,7 @@ static void Task_CardOrNewsWithFriend(u8 taskId) } break; case 4: - AddTextPrinterToWindow1(gUnknown_8459238); + AddTextPrinterToWindow1(gText_UR_AwaitingPlayersResponse); IntlConvPartnerUname(gStringVar1, data->field_0->arr[data->leaderId]); data->state = 5; break; @@ -2384,7 +2381,7 @@ static void Task_CardOrNewsWithFriend(u8 taskId) data->state = 8; break; case 5: - AddTextPrinterToWindow1(gUnknown_84576AC); + AddTextPrinterToWindow1(gText_UR_PlayerSentBackOK); RfuSetStatus(RFU_STATUS_OK, 0); break; } @@ -2402,7 +2399,7 @@ static void Task_CardOrNewsWithFriend(u8 taskId) data->state++; break; case 9: - if (MG_PrintTextOnWindow1AndWaitButton(&data->textState, gUnknown_8457838[RfuGetStatus()])) + if (MG_PrintTextOnWindow1AndWaitButton(&data->textState, gTexts_UR_LinkDropped[RfuGetStatus()])) { DestroyWirelessStatusIndicatorSprite(); DestroyTask(taskId); @@ -2412,7 +2409,7 @@ static void Task_CardOrNewsWithFriend(u8 taskId) break; case 7: DestroyWirelessStatusIndicatorSprite(); - AddTextPrinterToWindow1(gUnknown_84571B8); + AddTextPrinterToWindow1(gText_UR_PleaseStartOver); DestroyTask(taskId); LinkRfu_Shutdown(); gSpecialVar_Result = 5; @@ -2461,7 +2458,7 @@ static void Task_CardOrNewsOverWireless(u8 taskId) data->state = 1; break; case 1: - AddTextPrinterToWindow1(gUnknown_84591DC); + AddTextPrinterToWindow1(gText_UR_SearchingForWirelessSystemWait); data->state = 2; break; case 2: @@ -2530,7 +2527,7 @@ static void Task_CardOrNewsOverWireless(u8 taskId) } break; case 4: - AddTextPrinterToWindow1(gUnknown_845928C); + AddTextPrinterToWindow1(gText_UR_AwaitingResponseFromWirelessSystem); IntlConvPartnerUname(gStringVar1, data->field_0->arr[data->leaderId]); data->state = 5; break; @@ -2549,7 +2546,7 @@ static void Task_CardOrNewsOverWireless(u8 taskId) data->state = 8; break; case 5: - AddTextPrinterToWindow1(gUnknown_845777C); + AddTextPrinterToWindow1(gText_UR_WirelessLinkEstablished); RfuSetStatus(RFU_STATUS_OK, 0); break; } @@ -2570,7 +2567,7 @@ static void Task_CardOrNewsOverWireless(u8 taskId) data->state++; break; case 9: - if (MG_PrintTextOnWindow1AndWaitButton(&data->textState, gUnknown_84577BC)) + if (MG_PrintTextOnWindow1AndWaitButton(&data->textState, gText_UR_WirelessLinkDropped)) { DestroyWirelessStatusIndicatorSprite(); DestroyTask(taskId); @@ -2579,7 +2576,7 @@ static void Task_CardOrNewsOverWireless(u8 taskId) } break; case 7: - if (MG_PrintTextOnWindow1AndWaitButton(&data->textState, gUnknown_84571E0)) + if (MG_PrintTextOnWindow1AndWaitButton(&data->textState, gText_UR_WirelessSearchCanceled)) { DestroyWirelessStatusIndicatorSprite(); DestroyTask(taskId); @@ -2588,7 +2585,7 @@ static void Task_CardOrNewsOverWireless(u8 taskId) } break; case 11: - if (MG_PrintTextOnWindow1AndWaitButton(&data->textState, gUnknown_845933C[data->cardOrNews])) + if (MG_PrintTextOnWindow1AndWaitButton(&data->textState, gTexts_UR_NoWonderShared[data->cardOrNews])) { DestroyWirelessStatusIndicatorSprite(); DestroyTask(taskId); @@ -2717,11 +2714,11 @@ static void Task_RunUnionRoom(u8 taskId) { ResetUnionRoomTrade(&sUnionRoomTrade); RfuUpdatePlayerGnameStateAndSend(0, 0, 0); - UnionRoom_ScheduleFieldMessageAndExit(gUnknown_8458D54); + UnionRoom_ScheduleFieldMessageAndExit(gText_UR_RegistrationCanceled); } else if (!RegisterTradeMonAndGetIsEgg(GetCursorSelectionMonId(), &sUnionRoomTrade)) { - UnionRoom_ScheduleFieldMessageWithFollowupState(52, gURText_PleaseChooseTypeOfMon); + UnionRoom_ScheduleFieldMessageWithFollowupState(52, gText_UR_ChooseRequestedMonType); } else { @@ -2733,7 +2730,7 @@ static void Task_RunUnionRoom(u8 taskId) taskData[1] = sUnionRoomTrade.field_8; if (id >= PARTY_SIZE) { - UnionRoom_ScheduleFieldMessageAndExit(gUnknown_8458D9C); + UnionRoom_ScheduleFieldMessageAndExit(gText_UR_TradeCanceled); } else { @@ -2776,7 +2773,7 @@ static void Task_RunUnionRoom(u8 taskId) gSpecialVar_Result = 0; } } - else if (ScriptContext2_IsEnabled() != TRUE) + else if (ArePlayerFieldControlsLocked() != TRUE) { if (JOY_NEW(A_BUTTON)) { @@ -2852,9 +2849,9 @@ static void Task_RunUnionRoom(u8 taskId) case 1: case 2: if (IsUnionRoomListenTaskActive() == TRUE) - UnionRoom_ScheduleFieldMessageAndExit(gUnknown_8457F90); + UnionRoom_ScheduleFieldMessageAndExit(gText_UR_TrainerAppearsBusy); else - UnionRoom_ScheduleFieldMessageWithFollowupState(30, gUnknown_8457F90); + UnionRoom_ScheduleFieldMessageWithFollowupState(30, gText_UR_TrainerAppearsBusy); sPlayerCurrActivity = IN_UNION_ROOM; break; @@ -2871,7 +2868,7 @@ static void Task_RunUnionRoom(u8 taskId) if (!FuncIsActiveTask(Task_ExchangeCards)) { if (sPlayerCurrActivity == (ACTIVITY_TRADE | IN_UNION_ROOM)) - UnionRoom_ScheduleFieldMessageWithFollowupState(31, gUnknown_84578BC); + UnionRoom_ScheduleFieldMessageWithFollowupState(31, gText_UR_AwaitingPlayersResponseAboutTrade); else data->state = 5; } @@ -2887,7 +2884,7 @@ static void Task_RunUnionRoom(u8 taskId) case 5: id = ConvPartnerUnameAndGetWhetherMetAlready(&data->field_0->arr[taskData[1]]); playerGender = GetUnionRoomPlayerGender(taskData[1], data->field_0); - UnionRoom_ScheduleFieldMessageWithFollowupState(6, gURText_FriendPromptsForActivity[id][playerGender]); + UnionRoom_ScheduleFieldMessageWithFollowupState(6, gTexts_UR_HiDoSomething[id][playerGender]); break; case 6: var5 = ListMenuHandler_AllItemsAvailable(&data->textState, &data->topListMenuWindowId, &data->topListMenuListMenuId, &sWindowTemplate_InviteToActivity, &sListMenuTemplate_InviteToActivity); @@ -2905,7 +2902,7 @@ static void Task_RunUnionRoom(u8 taskId) { data->playerSendBuffer[0] = IN_UNION_ROOM; Rfu_SendPacket(data->playerSendBuffer); - StringCopy(gStringVar4, gUnknown_845842C[gLinkPlayers[0].gender]); + StringCopy(gStringVar4, gTexts_UR_IfYouWantToDoSomething[gLinkPlayers[0].gender]); data->state = 32; } else @@ -2914,7 +2911,7 @@ static void Task_RunUnionRoom(u8 taskId) sPlayerActivityGroupSize = (u32)(var5) >> 8; if (sPlayerCurrActivity == (ACTIVITY_BATTLE | IN_UNION_ROOM) && !HasAtLeastTwoMonsOfLevel30OrLower()) { - UnionRoom_ScheduleFieldMessageWithFollowupState(5, gUnknown_845847C); + UnionRoom_ScheduleFieldMessageWithFollowupState(5, gText_UR_NeedTwoMonsOfLevel30OrLower1); } else { @@ -2927,14 +2924,14 @@ static void Task_RunUnionRoom(u8 taskId) } break; case 28: - StringCopy(gStringVar4, gUnknown_8458434); + StringCopy(gStringVar4, gText_UR_TrainerBattleBusy); data->state = 36; break; case 27: PollPartnerYesNoResponse(data); playerGender = GetUnionRoomPlayerGender(taskData[1], data->field_0); id = GetResponseIdx_InviteToURoomActivity(data->playerSendBuffer[0] & 0x3F); - if (PrintOnTextbox(&data->textState, gResponseToURoomActivityInviteStringPtrs[playerGender][id])) + if (PrintOnTextbox(&data->textState, gTexts_UR_WaitOrShowCard[playerGender][id])) { taskData[3] = 0; data->state = 29; @@ -2954,7 +2951,7 @@ static void Task_RunUnionRoom(u8 taskId) case 29: if (!gReceivedRemoteLinkPlayers) { - StringCopy(gStringVar4, gUnknown_8458434); + StringCopy(gStringVar4, gText_UR_TrainerBattleBusy); data->state = 28; } else @@ -2984,7 +2981,7 @@ static void Task_RunUnionRoom(u8 taskId) case 7: id = ConvPartnerUnameAndGetWhetherMetAlready(&data->field_0->arr[taskData[1]]); playerGender = GetUnionRoomPlayerGender(taskData[1], data->field_0); - UnionRoom_ScheduleFieldMessageWithFollowupState(6, gURText_FriendPromptsForActivity[id][playerGender]); + UnionRoom_ScheduleFieldMessageWithFollowupState(6, gTexts_UR_HiDoSomething[id][playerGender]); break; case 40: if (PrintOnTextbox(&data->textState, gStringVar4)) @@ -3002,7 +2999,7 @@ static void Task_RunUnionRoom(u8 taskId) { StringCopy(gStringVar1, gLinkPlayers[GetMultiplayerId() ^ 1].name); id = PlayerHasMetTrainerBefore(gLinkPlayers[1].trainerId, gLinkPlayers[1].name); - StringExpandPlaceholders(gStringVar4, gUnknown_8457C20[id]); + StringExpandPlaceholders(gStringVar4, gTexts_UR_AwaitingResponse[id]); data->state = 33; } else @@ -3026,7 +3023,7 @@ static void Task_RunUnionRoom(u8 taskId) case 1: case -1: playerGender = GetUnionRoomPlayerGender(taskData[1], data->field_0); - UnionRoom_ScheduleFieldMessageAndExit(gUnknown_8458548[playerGender]); + UnionRoom_ScheduleFieldMessageAndExit(gTexts_UR_DeclineChat[playerGender]); break; } break; @@ -3049,9 +3046,9 @@ static void Task_RunUnionRoom(u8 taskId) playerGender = GetUnionRoomPlayerGender(taskData[1], data->field_0); UpdateGameDataWithActivitySpriteGendersFlag(ACTIVITY_PLYRTALK | IN_UNION_ROOM, 0, TRUE); if (IsUnionRoomListenTaskActive() == TRUE) - UnionRoom_ScheduleFieldMessageAndExit(gUnknown_84585E8[playerGender]); + UnionRoom_ScheduleFieldMessageAndExit(gTexts_UR_ChatDeclined[playerGender]); else - UnionRoom_ScheduleFieldMessageWithFollowupState(30, gUnknown_84585E8[playerGender]); + UnionRoom_ScheduleFieldMessageWithFollowupState(30, gTexts_UR_ChatDeclined[playerGender]); break; case 3: data->state = 22; @@ -3065,9 +3062,9 @@ static void Task_RunUnionRoom(u8 taskId) playerGender = GetUnionRoomPlayerGender(taskData[1], data->field_0); UpdateGameDataWithActivitySpriteGendersFlag(ACTIVITY_PLYRTALK | IN_UNION_ROOM, 0, TRUE); if (IsUnionRoomListenTaskActive() == TRUE) - UnionRoom_ScheduleFieldMessageAndExit(gUnknown_84585E8[playerGender]); + UnionRoom_ScheduleFieldMessageAndExit(gTexts_UR_ChatDeclined[playerGender]); else - UnionRoom_ScheduleFieldMessageWithFollowupState(30, gUnknown_84585E8[playerGender]); + UnionRoom_ScheduleFieldMessageWithFollowupState(30, gTexts_UR_ChatDeclined[playerGender]); } if (gReceivedRemoteLinkPlayers) data->state = 16; @@ -3098,7 +3095,7 @@ static void Task_RunUnionRoom(u8 taskId) data->state = 33; StringCopy(gStringVar1, gLinkPlayers[1].name); id = PlayerHasMetTrainerBefore(gLinkPlayers[1].trainerId, gLinkPlayers[1].name); - StringExpandPlaceholders(gStringVar4, gUnknown_8457BCC[id]); + StringExpandPlaceholders(gStringVar4, gTexts_UR_PlayerContactedYou[id]); } break; case 33: @@ -3111,7 +3108,7 @@ static void Task_RunUnionRoom(u8 taskId) if (UnionRoom_HandleContactFromOtherPlayer(data) && JOY_NEW(B_BUTTON)) { sub_80FBD6C(1); - StringCopy(gStringVar4, gUnknown_8457E60); + StringCopy(gStringVar4, gText_UR_ChatEnded); data->state = 36; } break; @@ -3138,7 +3135,7 @@ static void Task_RunUnionRoom(u8 taskId) data->playerSendBuffer[0] = ACTIVITY_DECLINE | IN_UNION_ROOM; Rfu_SendPacket(data->playerSendBuffer); data->state = 10; - StringCopy(gStringVar4, gUnknown_84584C0); + StringCopy(gStringVar4, gText_UR_NeedTwoMonsOfLevel30OrLower2); } else { @@ -3229,19 +3226,19 @@ static void Task_RunUnionRoom(u8 taskId) { if (GetHostRFUtgtGname()->species == SPECIES_EGG) { - StringCopy(gStringVar4, gUnknown_8458DE8); + StringCopy(gStringVar4, gText_UR_CancelRegistrationOfEgg); } else { StringCopy(gStringVar1, gSpeciesNames[GetHostRFUtgtGname()->species]); ConvertIntToDecimalStringN(gStringVar2, GetHostRFUtgtGname()->level, STR_CONV_MODE_LEFT_ALIGN, 3); - StringExpandPlaceholders(gStringVar4, gUnknown_8458DBC); + StringExpandPlaceholders(gStringVar4, gText_UR_CancelRegistrationOfMon); } UnionRoom_ScheduleFieldMessageWithFollowupState(44, gStringVar4); } break; case 43: - if (PrintOnTextbox(&data->textState, gUnknown_8458AB8)) + if (PrintOnTextbox(&data->textState, gText_UR_RegisterMonAtTradingBoard)) data->state = 47; break; case 47: @@ -3258,10 +3255,10 @@ static void Task_RunUnionRoom(u8 taskId) switch (var5) { case 1: // REGISTER - UnionRoom_ScheduleFieldMessageWithFollowupState(53, gUnknown_8458D1C); + UnionRoom_ScheduleFieldMessageWithFollowupState(53, gText_UR_WhichMonWillYouOffer); break; case 2: // INFO - UnionRoom_ScheduleFieldMessageWithFollowupState(47, gUnknown_8458B44); + UnionRoom_ScheduleFieldMessageWithFollowupState(47, gText_UR_TradingBoardInfo); break; } } @@ -3290,7 +3287,7 @@ static void Task_RunUnionRoom(u8 taskId) case 18: ResetUnionRoomTrade(&sUnionRoomTrade); RfuUpdatePlayerGnameStateAndSend(0, 0, 0); - UnionRoom_ScheduleFieldMessageAndExit(gUnknown_8458D54); + UnionRoom_ScheduleFieldMessageAndExit(gText_UR_RegistrationCanceled); break; default: sUnionRoomTrade.type = var5; @@ -3301,7 +3298,7 @@ static void Task_RunUnionRoom(u8 taskId) break; case 55: RfuUpdatePlayerGnameStateAndSend(sUnionRoomTrade.type, sUnionRoomTrade.playerSpecies, sUnionRoomTrade.playerLevel); - UnionRoom_ScheduleFieldMessageAndExit(gUnknown_8458D78); + UnionRoom_ScheduleFieldMessageAndExit(gText_UR_RegistraionCompleted); break; case 44: switch (UnionRoomHandleYesNo(&data->textState, FALSE)) @@ -3317,7 +3314,7 @@ static void Task_RunUnionRoom(u8 taskId) } break; case 56: - if (PrintOnTextbox(&data->textState, gUnknown_8458E10)) + if (PrintOnTextbox(&data->textState, gText_UR_RegistrationCanceled2)) { RfuUpdatePlayerGnameStateAndSend(0, 0, 0); ResetUnionRoomTrade(&sUnionRoomTrade); @@ -3326,7 +3323,7 @@ static void Task_RunUnionRoom(u8 taskId) } break; case 45: - if (PrintOnTextbox(&data->textState, gUnknown_8458A98)) + if (PrintOnTextbox(&data->textState, gText_UR_XCheckedTradingBoard)) data->state = 46; break; case 46: @@ -3350,18 +3347,18 @@ static void Task_RunUnionRoom(u8 taskId) { case UR_TRADE_MATCH: IntlConvPartnerUname(gStringVar1, data->field_0->arr[var5]); - UnionRoom_ScheduleFieldMessageWithFollowupState(49, gUnknown_8458E70); + UnionRoom_ScheduleFieldMessageWithFollowupState(49, gText_UR_AskTrainerToMakeTrade); taskData[1] = var5; break; case UR_TRADE_NOTYPE: IntlConvPartnerUname(gStringVar1, data->field_0->arr[var5]); StringCopy(gStringVar2, gTypeNames[data->field_0->arr[var5].gname_uname.gname.type]); - UnionRoom_ScheduleFieldMessageWithFollowupState(46, gUnknown_8458ED0); + UnionRoom_ScheduleFieldMessageWithFollowupState(46, gText_UR_DontHaveTypeTrainerWants); break; case UR_TRADE_NOEGG: IntlConvPartnerUname(gStringVar1, data->field_0->arr[var5]); StringCopy(gStringVar2, gTypeNames[data->field_0->arr[var5].gname_uname.gname.type]); - UnionRoom_ScheduleFieldMessageWithFollowupState(46, gUnknown_8458F04); + UnionRoom_ScheduleFieldMessageWithFollowupState(46, gText_UR_DontHaveEggTrainerWants); break; } break; @@ -3382,7 +3379,7 @@ static void Task_RunUnionRoom(u8 taskId) } break; case 50: - if (PrintOnTextbox(&data->textState, gUnknown_8458D1C)) + if (PrintOnTextbox(&data->textState, gText_UR_WhichMonWillYouOffer)) { sUnionRoomTrade.field_0 = 2; memcpy(&gPartnerTgtGnameSub, &data->field_0->arr[taskData[1]].gname_uname.gname.unk_00, sizeof(gPartnerTgtGnameSub)); @@ -3398,7 +3395,7 @@ static void Task_RunUnionRoom(u8 taskId) sPlayerCurrActivity = ACTIVITY_TRADE | IN_UNION_ROOM; sub_80FC114(data->field_0->arr[taskData[1]].gname_uname.uname, &data->field_0->arr[taskData[1]].gname_uname.gname, ACTIVITY_TRADE | IN_UNION_ROOM); IntlConvPartnerUname(gStringVar1, data->field_0->arr[taskData[1]]); - UR_PrintFieldMessage(gURText_PleaseWaitMsgs[2]); + UR_PrintFieldMessage(gTexts_UR_CommunicatingWait[2]); data->state = 25; break; case 26: @@ -3862,7 +3859,7 @@ static u8 CreateTradeBoardWindow(const struct WindowTemplate * template) u8 windowId = AddWindow(template); DrawStdWindowFrame(windowId, FALSE); FillWindowPixelBuffer(windowId, PIXEL_FILL(15)); - UR_AddTextPrinterParameterized(windowId, 0, gUnknown_8459378, 8, 1, UR_COLOR_DN5_DN6_LTB); + UR_AddTextPrinterParameterized(windowId, 0, gText_UR_NameWantedOfferLv, 8, 1, UR_COLOR_DN5_DN6_LTB); PutWindowTilemap(windowId); CopyWindowToVram(windowId, COPYWIN_GFX); return windowId; @@ -3977,7 +3974,7 @@ static void JoinGroup_BlankBg0AndEnableScriptContexts(void) { FillBgTilemapBufferRect(0, 0, 0, 0, 32, 32, 0); CopyBgTilemapBufferToVram(0); - EnableBothScriptContexts(); + ScriptContext_Enable(); } static void UR_AddTextPrinterParameterized(u8 windowId, u8 fontId, const u8 *str, u8 x, u8 y, u8 colorIdx) @@ -4180,7 +4177,7 @@ static void PrintUnionRoomGroupOnWindow(u8 windowId, u8 x, u8 y, struct UnkStruc u8 uname[30]; ConvertIntToDecimalStringN(gStringVar4, id + 1, STR_CONV_MODE_LEADING_ZEROS, 2); - StringAppend(gStringVar4, gUnknown_84571B0); + StringAppend(gStringVar4, gText_UR_Colon); UR_AddTextPrinterParameterized(windowId, 0, gStringVar4, x, y, UR_COLOR_DKE_WHT_LTE); x += 18; activity = group->gname_uname.gname.activity; @@ -4189,7 +4186,7 @@ static void PrintUnionRoomGroupOnWindow(u8 windowId, u8 x, u8 y, struct UnkStruc IntlConvPartnerUname(uname, *group); UR_AddTextPrinterParameterized(windowId, 2, uname, x, y, colorIdx); ConvertIntToDecimalStringN(id_str, group->gname_uname.gname.unk_00.playerTrainerId[0] | (group->gname_uname.gname.unk_00.playerTrainerId[1] << 8), STR_CONV_MODE_LEADING_ZEROS, 5); - StringCopy(gStringVar4, gUnknown_84571B4); + StringCopy(gStringVar4, gText_UR_ID); StringAppend(gStringVar4, id_str); x += 77; UR_AddTextPrinterParameterized(windowId, 0, gStringVar4, x, y, colorIdx); @@ -4206,7 +4203,7 @@ static void PrintGroupMemberCandidateOnWindowWithColor(u8 windowId, u8 x, u8 y, IntlConvPartnerUname(uname, *group); UR_AddTextPrinterParameterized(windowId, 2, uname, x, y, colorIdx); ConvertIntToDecimalStringN(id_str, group->gname_uname.gname.unk_00.playerTrainerId[0] | (group->gname_uname.gname.unk_00.playerTrainerId[1] << 8), STR_CONV_MODE_LEADING_ZEROS, 5); - StringCopy(gStringVar4, gUnknown_84571B4); + StringCopy(gStringVar4, gText_UR_ID); StringAppend(gStringVar4, id_str); x += 71; UR_AddTextPrinterParameterized(windowId, 0, gStringVar4, x, y, colorIdx); @@ -4268,12 +4265,12 @@ static s32 UnionRoomGetPlayerInteractionResponse(struct UnkStruct_Main0 * main0, metBefore = PlayerHasMetTrainerBefore(ReadAsU16(x20->gname_uname.gname.unk_00.playerTrainerId), gStringVar1); if (x20->gname_uname.gname.activity == (ACTIVITY_CHAT | IN_UNION_ROOM)) { - StringExpandPlaceholders(gStringVar4, gUnknown_8457F80[metBefore][playerGender]); + StringExpandPlaceholders(gStringVar4, gTexts_UR_JoinChat[metBefore][playerGender]); return 2; } else { - UR_PrintFieldMessage(gURText_PleaseWaitMsgs[metBefore]); + UR_PrintFieldMessage(gTexts_UR_CommunicatingWait[metBefore]); return 1; } } @@ -4287,24 +4284,19 @@ static s32 UnionRoomGetPlayerInteractionResponse(struct UnkStruct_Main0 * main0, switch (x20->gname_uname.gname.activity & 0x3F) { case ACTIVITY_BATTLE: - // Battling - StringExpandPlaceholders(gStringVar4, gUnknown_8458758[playerGender][Random() % 4]); + StringExpandPlaceholders(gStringVar4, gTexts_UR_BattleReaction[playerGender][Random() % 4]); break; case ACTIVITY_TRADE: - // Trading - StringExpandPlaceholders(gStringVar4, gUnknown_8458A78[playerGender][Random() % 2]); + StringExpandPlaceholders(gStringVar4, gTexts_UR_TradeReaction[playerGender][Random() % 2]); break; case ACTIVITY_CHAT: - // Chatting - StringExpandPlaceholders(gStringVar4, gUnknown_84588BC[playerGender][Random() % 4]); + StringExpandPlaceholders(gStringVar4, gTexts_UR_ChatReaction[playerGender][Random() % 4]); break; case ACTIVITY_CARD: - // Sharing cards - StringExpandPlaceholders(gStringVar4, gUnknown_84589AC[playerGender][Random() % 2]); + StringExpandPlaceholders(gStringVar4, gTexts_UR_TrainerCardReaction[playerGender][Random() % 2]); break; default: - // Unknown - StringExpandPlaceholders(gStringVar4, gUnknown_8457F90); + StringExpandPlaceholders(gStringVar4, gText_UR_TrainerAppearsBusy); break; } return 0; @@ -4325,7 +4317,7 @@ static void TradeBoardPrintItemInfo(u8 windowId, u8 y, struct RfuGameData * gnam UR_AddTextPrinterParameterized(windowId, 2, uname, 8, y, colorIdx); if (species == SPECIES_EGG) { - UR_AddTextPrinterParameterized(windowId, 2, gText_EggTrade, 0x44, y, colorIdx); + UR_AddTextPrinterParameterized(windowId, 2, gText_UR_EggTrade, 0x44, y, colorIdx); } else { @@ -4430,16 +4422,16 @@ static void GetURoomActivityRejectMsg(u8 *dst, s32 activity, u32 playerGender) switch (activity) { case ACTIVITY_BATTLE | IN_UNION_ROOM: - StringExpandPlaceholders(dst, gUnknown_8458314[playerGender]); + StringExpandPlaceholders(dst, gTexts_UR_BattleDeclined[playerGender]); break; case ACTIVITY_CHAT | IN_UNION_ROOM: - StringExpandPlaceholders(dst, gUnknown_84585E8[playerGender]); + StringExpandPlaceholders(dst, gTexts_UR_ChatDeclined[playerGender]); break; case ACTIVITY_TRADE | IN_UNION_ROOM: - StringExpandPlaceholders(dst, gUnknown_8458F9C); + StringExpandPlaceholders(dst, gText_UR_TradeOfferRejected); break; case ACTIVITY_CARD | IN_UNION_ROOM: - StringExpandPlaceholders(dst, gUnknown_84583B4[playerGender]); + StringExpandPlaceholders(dst, gTexts_UR_ShowTrainerCardDeclined[playerGender]); break; } } @@ -4452,13 +4444,13 @@ static void GetURoomActivityStartMsg(u8 *dst, u8 activity) switch (activity) { case ACTIVITY_BATTLE | IN_UNION_ROOM: - StringCopy(dst, gUnknown_8458230[mpId][gender][0]); + StringCopy(dst, gTexts_UR_StartActivity[mpId][gender][0]); break; case ACTIVITY_TRADE | IN_UNION_ROOM: - StringCopy(dst, gUnknown_8458230[mpId][gender][2]); + StringCopy(dst, gTexts_UR_StartActivity[mpId][gender][2]); break; case ACTIVITY_CHAT | IN_UNION_ROOM: - StringCopy(dst, gUnknown_8458230[mpId][gender][1]); + StringCopy(dst, gTexts_UR_StartActivity[mpId][gender][1]); break; } } @@ -4472,11 +4464,11 @@ static s32 GetChatLeaderActionRequestMessage(u8 *dst, u32 gender, u16 *activity_ switch (activity_p[0]) { case ACTIVITY_BATTLE | IN_UNION_ROOM: - StringExpandPlaceholders(dst, gUnknown_8457CA4); + StringExpandPlaceholders(dst, gText_UR_BattleChallenge); result = 1; break; case ACTIVITY_CHAT | IN_UNION_ROOM: - StringExpandPlaceholders(dst, gUnknown_8457CF8); + StringExpandPlaceholders(dst, gText_UR_ChatInvitation); result = 1; break; case ACTIVITY_TRADE | IN_UNION_ROOM: @@ -4494,7 +4486,7 @@ static s32 GetChatLeaderActionRequestMessage(u8 *dst, u32 gender, u16 *activity_ } if (species == SPECIES_EGG) { - StringCopy(dst, gUnknown_8457DB8); + StringCopy(dst, gText_UR_OfferToTradeEgg); } else { @@ -4502,17 +4494,17 @@ static s32 GetChatLeaderActionRequestMessage(u8 *dst, u32 gender, u16 *activity_ { DynamicPlaceholderTextUtil_SetPlaceholderPtr(i, arg3->activityRequestStrbufs[i]); } - DynamicPlaceholderTextUtil_ExpandPlaceholders(dst, gUnknown_8457D44); + DynamicPlaceholderTextUtil_ExpandPlaceholders(dst, gText_UR_OfferToTradeMon); } result = 1; break; case ACTIVITY_CARD | IN_UNION_ROOM: - StringExpandPlaceholders(dst, gUnknown_8457C48); + StringExpandPlaceholders(dst, gText_UR_ShowTrainerCard); result = 1; break; case IN_UNION_ROOM: // Chat dropped - StringExpandPlaceholders(dst, gUnknown_8457E0C); + StringExpandPlaceholders(dst, gText_UR_ChatDropped); result = 2; break; } @@ -4644,7 +4636,7 @@ static u32 GetPartyPositionOfRegisteredMon(struct UnionRoomTrade * trade, u8 mul static void HandleCancelTrade(bool32 unlockObjs) { UR_BlankBg0(); - ScriptContext2_Disable(); + UnlockPlayerFieldControls(); UnionRoom_UnlockPlayerAndChatPartner(); sPlayerCurrActivity = 0; if (unlockObjs) @@ -4656,7 +4648,7 @@ static void HandleCancelTrade(bool32 unlockObjs) static void UR_EnableScriptContext2AndFreezeObjectEvents(void) { - ScriptContext2_Enable(); + LockPlayerFieldControls(); FreezeObjects_WaitForPlayer(); } @@ -4699,7 +4691,7 @@ static void ViewURoomPartnerTrainerCard(u8 *unused, struct UnkStruct_URoom * uro DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, trainerCard->rse.playerName); - StringCopy(uroom->field_174, gUnknown_84594B0[trainerCard->rse.stars]); + StringCopy(uroom->field_174, gTexts_UR_CardColor[trainerCard->rse.stars]); DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, uroom->field_174); ConvertIntToDecimalStringN(uroom->trainerCardStrbufs[2], trainerCard->rse.caughtMonsCount, STR_CONV_MODE_LEFT_ALIGN, 3); @@ -4710,7 +4702,7 @@ static void ViewURoomPartnerTrainerCard(u8 *unused, struct UnkStruct_URoom * uro DynamicPlaceholderTextUtil_SetPlaceholderPtr(4, uroom->trainerCardStrbufs[3]); DynamicPlaceholderTextUtil_SetPlaceholderPtr(5, uroom->trainerCardStrbufs[4]); - DynamicPlaceholderTextUtil_ExpandPlaceholders(uroom->field_1A4, gUnknown_84594C4); + DynamicPlaceholderTextUtil_ExpandPlaceholders(uroom->field_1A4, gText_UR_TrainerCardInfoPage1); StringCopy(gStringVar4, uroom->field_1A4); n = trainerCard->rse.linkBattleWins; @@ -4738,17 +4730,17 @@ static void ViewURoomPartnerTrainerCard(u8 *unused, struct UnkStruct_URoom * uro DynamicPlaceholderTextUtil_SetPlaceholderPtr(i + 4, uroom->trainerCardStrbufs[i + 3]); } - DynamicPlaceholderTextUtil_ExpandPlaceholders(uroom->field_1A4, gUnknown_8459504); + DynamicPlaceholderTextUtil_ExpandPlaceholders(uroom->field_1A4, gText_UR_TrainerCardInfoPage2); StringAppend(gStringVar4, uroom->field_1A4); if (parent_child == MODE_PARENT) { - DynamicPlaceholderTextUtil_ExpandPlaceholders(uroom->field_1A4, gUnknown_8459588); + DynamicPlaceholderTextUtil_ExpandPlaceholders(uroom->field_1A4, gText_UR_FinishedCheckingPlayersTrainerCard); StringAppend(gStringVar4, uroom->field_1A4); } else if (parent_child == MODE_CHILD) { - DynamicPlaceholderTextUtil_ExpandPlaceholders(uroom->field_1A4, gUnknown_8459580[trainerCard->rse.gender]); + DynamicPlaceholderTextUtil_ExpandPlaceholders(uroom->field_1A4, gTexts_UR_GladToMeetYou[trainerCard->rse.gender]); StringAppend(gStringVar4, uroom->field_1A4); } } diff --git a/src/union_room_battle.c b/src/union_room_battle.c index 56676ab7b..9d2b8a756 100644 --- a/src/union_room_battle.c +++ b/src/union_room_battle.c @@ -38,7 +38,7 @@ static const struct WindowTemplate sWindowTemplates[] = { }, DUMMY_WIN_TEMPLATE }; -static const u8 gUnknown_84571A8[] = {1, 2, 3}; +static const u8 sTextColors[] = {1, 2, 3}; static void SetUpPartiesAndStartBattle(void) { @@ -58,7 +58,7 @@ static void SetUpPartiesAndStartBattle(void) } IncrementGameStat(GAME_STAT_NUM_UNION_ROOM_BATTLES); CalculatePlayerPartyCount(); - gTrainerBattleOpponent_A = TRAINER_OPPONENT_C00; + gTrainerBattleOpponent_A = TRAINER_UNION_ROOM; SetMainCallback2(CB2_InitBattle); } @@ -66,8 +66,8 @@ static void UnionRoomBattle_CreateTextPrinter(u8 windowId, const u8 * str, u8 x, { s32 letterSpacing = 1; s32 lineSpacing = 1; - FillWindowPixelBuffer(windowId, PIXEL_FILL(gUnknown_84571A8[0])); - AddTextPrinterParameterized4(windowId, FONT_3, x, y, letterSpacing, lineSpacing, gUnknown_84571A8, speed, str); + FillWindowPixelBuffer(windowId, PIXEL_FILL(sTextColors[0])); + AddTextPrinterParameterized4(windowId, FONT_3, x, y, letterSpacing, lineSpacing, sTextColors, speed, str); } static bool32 UnionRoomBattle_PrintTextOnWindow0(s16 * state, const u8 * str, s32 speed) @@ -121,7 +121,7 @@ void CB2_UnionRoomBattle(void) FillWindowPixelBuffer(0, PIXEL_FILL(0)); FillWindowPixelBuffer(0, PIXEL_FILL(1)); FillBgTilemapBufferRect(0, 0, 0, 0, 30, 20, 0xF); - TextWindow_SetStdFrame0_WithPal(0, 1, 0xD0); + LoadStdWindowGfx(0, 1, 0xD0); Menu_LoadStdPal(); SetVBlankCallback(VBlankCB_UnionRoomBattle); gMain.state++; diff --git a/src/union_room_chat_display.c b/src/union_room_chat_display.c index 0c9c56c41..bda658f30 100644 --- a/src/union_room_chat_display.c +++ b/src/union_room_chat_display.c @@ -123,7 +123,7 @@ static const u16 sUnionRoomChatPanelBgPal_C[] = INCBIN_U16("graphics/union_room_ static const u16 sBg1Pal8[] = INCBIN_U16("graphics/union_room_chat/unk_845AA44.gbapal"); static const u16 sWin0PalF[] = INCBIN_U16("graphics/union_room_chat/unk_845AA64.gbapal"); -static const struct BgTemplate gUnknown_845AA84[] = { +static const struct BgTemplate sBgTemplates[] = { { .bg = 0, .charBaseIndex = 0, @@ -159,7 +159,7 @@ static const struct BgTemplate gUnknown_845AA84[] = { } }; -static const struct WindowTemplate gUnknown_845AA94[] = { +static const struct WindowTemplate sWindowTemplates[] = { { .bg = 3, .tilemapLeft = 8, @@ -349,8 +349,8 @@ bool8 UnionRoomChat_TryAllocGraphicsWork(void) if (sWork && UnionRoomChat_TryAllocSpriteWork()) { ResetBgsAndClearDma3BusyFlags(0); - InitBgsFromTemplates(0, gUnknown_845AA84, NELEMS(gUnknown_845AA84)); - InitWindows(gUnknown_845AA94); + InitBgsFromTemplates(0, sBgTemplates, ARRAY_COUNT(sBgTemplates)); + InitWindows(sWindowTemplates); ResetTempTileDataBuffers(); InitScanlineEffect(); InitWork(sWork); @@ -1307,9 +1307,9 @@ static void LoadWin1(void) static void LoadWin3(void) { FillWindowPixelBuffer(3, PIXEL_FILL(1)); - TextWindow_SetUserSelectedFrame(3, 1, 0xD0); - TextWindow_SetStdFrame0_WithPal(3, 0xA, 0x20); - LoadPalette(gTMCaseMainWindowPalette, 0xE0, 0x20); + LoadUserWindowGfx(3, 1, 0xD0); + LoadStdWindowGfx(3, 0xA, 0x20); + LoadPalette(gStandardMenuPalette, 0xE0, 0x20); } static void InitScanlineEffect(void) diff --git a/src/union_room_message.c b/src/union_room_message.c index 3aeb40524..21d74736f 100644 --- a/src/union_room_message.c +++ b/src/union_room_message.c @@ -1,552 +1,574 @@ #include "global.h" +#include "link_rfu.h" #include "mevent_server.h" #include "constants/union_room.h" -ALIGNED(4) const u8 gUnionRoomActivity_Blank[] = _(""); -ALIGNED(4) const u8 gUnknown_84571B0[] = _(":"); -ALIGNED(4) const u8 gUnknown_84571B4[] = _("{ID}"); -ALIGNED(4) const u8 gUnknown_84571B8[] = _("Please start over from the beginning."); -ALIGNED(4) const u8 gUnknown_84571E0[] = _("The WIRELESS COMMUNICATION\nSYSTEM search has been canceled."); -ALIGNED(4) const u8 gUnref_845721C[] = _("ともだちからの れんらくを\nまっています"); -ALIGNED(4) const u8 gUnknown_8457234[] = _("{STR_VAR_1}! Awaiting\ncommunication from another player."); -ALIGNED(4) const u8 gUnknown_8457264[] = _("{STR_VAR_1}! Awaiting link!\nPress START when everyone's ready."); +ALIGNED(4) const u8 gText_UR_EmptyString[] = _(""); +ALIGNED(4) const u8 gText_UR_Colon[] = _(":"); +ALIGNED(4) const u8 gText_UR_ID[] = _("{ID}"); +ALIGNED(4) const u8 gText_UR_PleaseStartOver[] = _("Please start over from the beginning."); +ALIGNED(4) const u8 gText_UR_WirelessSearchCanceled[] = _("The WIRELESS COMMUNICATION\nSYSTEM search has been canceled."); +ALIGNED(4) static const u8 sText_AwaitingCommunucation2[] = _("ともだちからの れんらくを\nまっています"); +ALIGNED(4) const u8 gText_UR_AwaitingCommunication[] = _("{STR_VAR_1}! Awaiting\ncommunication from another player."); +ALIGNED(4) const u8 gText_UR_AwaitingLinkPressStart[] = _("{STR_VAR_1}! Awaiting link!\nPress START when everyone's ready."); -ALIGNED(4) const u8 gJPText_SingleBattle[] = _("シングルバトルを かいさいする"); -ALIGNED(4) const u8 gJPText_DoubleBattle[] = _("ダブルバトルを かいさいする"); -ALIGNED(4) const u8 gJPText_MultiBattle[] = _("マルチバトルを かいさいする"); -ALIGNED(4) const u8 gJPText_TradePokemon[] = _("ポケモンこうかんを かいさいする"); -ALIGNED(4) const u8 gJPText_Chat[] = _("チャットを かいさいする"); -ALIGNED(4) const u8 gJPText_DistWonderCard[] = _("ふしぎなカードをくばる"); -ALIGNED(4) const u8 gJPText_DistWonderNews[] = _("ふしぎなニュースをくばる"); -ALIGNED(4) const u8 unref_text_union_room_1[] = _("ふしぎなできごとを かいさいする"); -ALIGNED(4) const u8 gJPText_HoldPokemonJump[] = _("なわとびを かいさいする"); -ALIGNED(4) const u8 gJPText_HoldBerryCrush[] = _("きのみマッシャーを かいさいする"); -ALIGNED(4) const u8 gJPText_HoldBerryPicking[] = _("きのみどりを かいさいする"); -ALIGNED(4) const u8 gJPText_HoldSpinTrade[] = _("ぐるぐるこうかんを かいさいする"); -ALIGNED(4) const u8 gJPText_HoldSpinShop[] = _("ぐるぐるショップを かいさいする"); +ALIGNED(4) static const u8 sText_SingleBattle[] = _("シングルバトルを かいさいする"); +ALIGNED(4) static const u8 sText_DoubleBattle[] = _("ダブルバトルを かいさいする"); +ALIGNED(4) static const u8 sText_MultiBattle[] = _("マルチバトルを かいさいする"); +ALIGNED(4) static const u8 sText_TradePokemon[] = _("ポケモンこうかんを かいさいする"); +ALIGNED(4) static const u8 sText_Chat[] = _("チャットを かいさいする"); +ALIGNED(4) static const u8 sText_DistWonderCard[] = _("ふしぎなカードをくばる"); +ALIGNED(4) static const u8 sText_DistWonderNews[] = _("ふしぎなニュースをくばる"); +ALIGNED(4) static const u8 sText_DistMysteryEvent[] = _("ふしぎなできごとを かいさいする"); +ALIGNED(4) static const u8 sText_HoldPokemonJump[] = _("なわとびを かいさいする"); +ALIGNED(4) static const u8 sText_HoldBerryCrush[] = _("きのみマッシャーを かいさいする"); +ALIGNED(4) static const u8 sText_HoldBerryPicking[] = _("きのみどりを かいさいする"); +ALIGNED(4) static const u8 sText_HoldSpinTrade[] = _("ぐるぐるこうかんを かいさいする"); +ALIGNED(4) static const u8 sText_HoldSpinShop[] = _("ぐるぐるショップを かいさいする"); -const u8 *const unref_text_ptrs_union_room_0[] = { - gJPText_SingleBattle, - gJPText_DoubleBattle, - gJPText_MultiBattle, - gJPText_TradePokemon, - gJPText_Chat, - gJPText_DistWonderCard, - gJPText_DistWonderNews, - gJPText_DistWonderCard, - gJPText_HoldPokemonJump, - gJPText_HoldBerryCrush, - gJPText_HoldBerryPicking, - gJPText_HoldBerryPicking, - gJPText_HoldSpinTrade, - gJPText_HoldSpinShop +// Unused +static const u8 *const sLinkGroupActionTexts[] = { + sText_SingleBattle, + sText_DoubleBattle, + sText_MultiBattle, + sText_TradePokemon, + sText_Chat, + sText_DistWonderCard, + sText_DistWonderNews, + sText_DistWonderCard, + sText_HoldPokemonJump, + sText_HoldBerryCrush, + sText_HoldBerryPicking, + sText_HoldBerryPicking, + sText_HoldSpinTrade, + sText_HoldSpinShop }; -const u8 gText_1PlayerNeeded[] = _("1 player\nneeded."); -const u8 gText_2PlayersNeeded[] = _("2 players\nneeded."); -const u8 gText_3PlayersNeeded[] = _("3 players\nneeded."); -const u8 gText_4PlayersNeeded[] = _("あと4にん\nひつよう"); -const u8 gText_2PlayerMode[] = _("2-PLAYER\nMODE"); -const u8 gText_3PlayerMode[] = _("3-PLAYER\nMODE"); -const u8 gText_4PlayerMode[] = _("4-PLAYER\nMODE"); -const u8 gText_5PlayerMode[] = _("5-PLAYER\nMODE"); +static const u8 sText_1PlayerNeeded[] = _("1 player\nneeded."); +static const u8 sText_2PlayersNeeded[] = _("2 players\nneeded."); +static const u8 sText_3PlayersNeeded[] = _("3 players\nneeded."); +static const u8 sText_4PlayersNeeded[] = _("あと4にん\nひつよう"); +static const u8 sText_2PlayerMode[] = _("2-PLAYER\nMODE"); +static const u8 sText_3PlayerMode[] = _("3-PLAYER\nMODE"); +static const u8 sText_4PlayerMode[] = _("4-PLAYER\nMODE"); +static const u8 sText_5PlayerMode[] = _("5-PLAYER\nMODE"); -const u8 *const gUnknown_845742C[][5] = { - { - gText_1PlayerNeeded, - gText_2PlayerMode - }, { - gText_3PlayersNeeded, - gText_2PlayersNeeded, - gText_1PlayerNeeded, - gText_4PlayerMode - }, { - gText_1PlayerNeeded, - gText_2PlayerMode, - gText_3PlayerMode, - gText_4PlayerMode, - gText_5PlayerMode - }, { - gText_2PlayersNeeded, - gText_1PlayerNeeded, - gText_3PlayerMode, - gText_4PlayerMode, - gText_5PlayerMode +const u8 *const gTexts_UR_PlayersNeededOrMode[][5] = { + { // 2 players required + sText_1PlayerNeeded, + sText_2PlayerMode + }, + { // 4 players required + sText_3PlayersNeeded, + sText_2PlayersNeeded, + sText_1PlayerNeeded, + sText_4PlayerMode + }, + { // 2-5 players required + sText_1PlayerNeeded, + sText_2PlayerMode, + sText_3PlayerMode, + sText_4PlayerMode, + sText_5PlayerMode + }, + { // 3-5 players required + sText_2PlayersNeeded, + sText_1PlayerNeeded, + sText_3PlayerMode, + sText_4PlayerMode, + sText_5PlayerMode } }; -ALIGNED(4) const u8 gUnknown_845747C[] = _("{B_BUTTON}CANCEL"); -ALIGNED(4) const u8 unref_text_union_room_2[] = _("ため\nさんかしゃ ぼしゅうちゅう です!"); -ALIGNED(4) const u8 gUnknown_84574A0[] = _("{STR_VAR_2} contacted you for\n{STR_VAR_1}. Accept?"); -ALIGNED(4) const u8 gUnknown_84574C4[] = _("{STR_VAR_2} contacted you.\nWill you share {STR_VAR_1}?"); -ALIGNED(4) const u8 gUnknown_84574EC[] = _("{STR_VAR_2} contacted you.\nAdd to the members?"); -ALIGNED(4) const u8 gUnknown_8457514[] = _("{STR_VAR_1}!\nAre these members OK?"); -ALIGNED(4) const u8 gUnknown_8457530[] = _("Cancel {STR_VAR_1} MODE\nwith these members?"); -ALIGNED(4) const u8 gUnknown_8457554[] = _("An “OK” was sent\nto {STR_VAR_1}."); +ALIGNED(4) const u8 gText_UR_BButtonCancel[] = _("{B_BUTTON}CANCEL"); +ALIGNED(4) static const u8 sText_SearchingForParticipants[] = _("ため\nさんかしゃ ぼしゅうちゅう です!"); +ALIGNED(4) const u8 gText_UR_PlayerContactedYouForXAccept[] = _("{STR_VAR_2} contacted you for\n{STR_VAR_1}. Accept?"); +ALIGNED(4) const u8 gText_UR_PlayerContactedYouShareX[] = _("{STR_VAR_2} contacted you.\nWill you share {STR_VAR_1}?"); +ALIGNED(4) const u8 gText_UR_PlayerContactedYouAddToMembers[] = _("{STR_VAR_2} contacted you.\nAdd to the members?"); +ALIGNED(4) const u8 gText_UR_AreTheseMembersOK[] = _("{STR_VAR_1}!\nAre these members OK?"); +ALIGNED(4) const u8 gText_UR_CancelModeWithTheseMembers[] = _("Cancel {STR_VAR_1} MODE\nwith these members?"); +ALIGNED(4) const u8 gText_UR_AnOKWasSentToPlayer[] = _("An “OK” was sent\nto {STR_VAR_1}."); -ALIGNED(4) const u8 gUnknown_845756C[] = _("The other TRAINER doesn't appear\nto be available now…\p"); -ALIGNED(4) const u8 gUnknown_84575A4[] = _("You can't transmit with a TRAINER\nwho is too far away.\p"); -ALIGNED(4) const u8 gUnknown_84575DC[] = _("The other TRAINER(S) is/are not\nready yet.\p"); +ALIGNED(4) static const u8 sText_OtherTrainerUnavailableNow[] = _("The other TRAINER doesn't appear\nto be available now…\p"); +ALIGNED(4) static const u8 sText_CantTransmitTrainerTooFar[] = _("You can't transmit with a TRAINER\nwho is too far away.\p"); +ALIGNED(4) static const u8 sText_TrainersNotReadyYet[] = _("The other TRAINER(S) is/are not\nready yet.\p"); -const u8 *const gUnknown_8457608[] = { - gUnknown_84575A4, - gUnknown_84575DC +const u8 *const gTexts_UR_CantTransmitToTrainer[] = { + sText_CantTransmitTrainerTooFar, + sText_TrainersNotReadyYet }; -ALIGNED(4) const u8 gUnknown_8457610[] = _("The {STR_VAR_1} MODE with\nthese members will be canceled.{PAUSE 90}"); -ALIGNED(4) const u8 gUnknown_8457644[] = _("There is a member who can no\nlonger remain available.\p"); +ALIGNED(4) const u8 gText_UR_ModeWithTheseMembersWillBeCanceled[] = _("The {STR_VAR_1} MODE with\nthese members will be canceled.{PAUSE 90}"); +ALIGNED(4) static const u8 sText_MemberNoLongerAvailable[] = _("There is a member who can no\nlonger remain available.\p"); -const u8 *const gUnknown_845767C[] = { - gUnknown_845756C, - gUnknown_8457644 +const u8 *const gTexts_UR_PlayerUnavailable[] = { + sText_OtherTrainerUnavailableNow, + sText_MemberNoLongerAvailable }; -ALIGNED(4) const u8 gUnknown_8457684[] = _("The other TRAINER appears\nunavailable…\p"); -ALIGNED(4) const u8 gUnknown_84576AC[] = _("{STR_VAR_1} sent back an “OK”!"); -ALIGNED(4) const u8 gUnknown_84576C4[] = _("{STR_VAR_1} OK'd your registration as\na member."); -ALIGNED(4) const u8 gUnknown_84576EC[] = _("{STR_VAR_1} replied, “No…”\p"); -ALIGNED(4) const u8 gUnknown_8457700[] = _("{STR_VAR_1}!\nAwaiting other members!"); -ALIGNED(4) const u8 gUnknown_845771C[] = _("Quit being a member?"); -ALIGNED(4) const u8 gUnknown_8457734[] = _("You stopped being a member.\p"); +ALIGNED(4) static const u8 sText_TrainerAppearsUnavailable[] = _("The other TRAINER appears\nunavailable…\p"); +ALIGNED(4) const u8 gText_UR_PlayerSentBackOK[] = _("{STR_VAR_1} sent back an “OK”!"); +ALIGNED(4) const u8 gText_UR_PlayerOKdRegistration[] = _("{STR_VAR_1} OK'd your registration as\na member."); +ALIGNED(4) static const u8 sText_PlayerRepliedNo[] = _("{STR_VAR_1} replied, “No…”\p"); +ALIGNED(4) const u8 gText_UR_AwaitingOtherMembers[] = _("{STR_VAR_1}!\nAwaiting other members!"); +ALIGNED(4) const u8 gText_UR_QuitBeingMember[] = _("Quit being a member?"); +ALIGNED(4) static const u8 sText_StoppedBeingMember[] = _("You stopped being a member.\p"); -const u8 *const gUnknown_8457754[] = { - NULL, - gUnknown_8457644, - gUnknown_8457684, - NULL, - NULL, - NULL, - gUnknown_84576EC, - NULL, - NULL, - gUnknown_8457734 +const u8 *const gTexts_UR_PlayerDisconnected[] = { + [RFU_STATUS_OK] = NULL, + [RFU_STATUS_FATAL_ERROR] = sText_MemberNoLongerAvailable, + [RFU_STATUS_CONNECTION_ERROR] = sText_TrainerAppearsUnavailable, + [RFU_STATUS_CHILD_SEND_COMPLETE] = NULL, + [RFU_STATUS_NEW_CHILD_DETECTED] = NULL, + [RFU_STATUS_JOIN_GROUP_OK] = NULL, + [RFU_STATUS_JOIN_GROUP_NO] = sText_PlayerRepliedNo, + [RFU_STATUS_WAIT_ACK_JOIN_GROUP] = NULL, + [RFU_STATUS_LEAVE_GROUP_NOTICE] = NULL, + [RFU_STATUS_LEAVE_GROUP] = sText_StoppedBeingMember }; -ALIGNED(4) const u8 gUnknown_845777C[] = _("The WIRELESS COMMUNICATION\nSYSTEM link has been established."); -ALIGNED(4) const u8 gUnknown_84577BC[] = _("The WIRELESS COMMUNICATION\nSYSTEM link has been dropped…"); +ALIGNED(4) const u8 gText_UR_WirelessLinkEstablished[] = _("The WIRELESS COMMUNICATION\nSYSTEM link has been established."); +ALIGNED(4) const u8 gText_UR_WirelessLinkDropped[] = _("The WIRELESS COMMUNICATION\nSYSTEM link has been dropped…"); +ALIGNED(4) const u8 gText_UR_LinkWithFriendDropped[] = _("The link with your friend has been\ndropped…"); +ALIGNED(4) static const u8 sText_PlayerRepliedNo2[] = _("{STR_VAR_1} replied, “No…”"); -ALIGNED(4) const u8 gUnknown_84577F8[] = _("The link with your friend has been\ndropped…"); -ALIGNED(4) const u8 gUnknown_8457824[] = _("{STR_VAR_1} replied, “No…”"); - -const u8 *const gUnknown_8457838[] = { - NULL, - gUnknown_84577F8, - gUnknown_84577F8, - NULL, - NULL, - NULL, - gUnknown_8457824, - NULL, - NULL, - NULL +const u8 *const gTexts_UR_LinkDropped[] = { + [RFU_STATUS_OK] = NULL, + [RFU_STATUS_FATAL_ERROR] = gText_UR_LinkWithFriendDropped, + [RFU_STATUS_CONNECTION_ERROR] = gText_UR_LinkWithFriendDropped, + [RFU_STATUS_CHILD_SEND_COMPLETE] = NULL, + [RFU_STATUS_NEW_CHILD_DETECTED] = NULL, + [RFU_STATUS_JOIN_GROUP_OK] = NULL, + [RFU_STATUS_JOIN_GROUP_NO] = sText_PlayerRepliedNo2, + [RFU_STATUS_WAIT_ACK_JOIN_GROUP] = NULL, + [RFU_STATUS_LEAVE_GROUP_NOTICE] = NULL, + [RFU_STATUS_LEAVE_GROUP] = NULL }; -ALIGNED(4) const u8 gUnknown_8457860[] = _("Do you want the {STR_VAR_2}\nMODE?"); -ALIGNED(4) const u8 gUnknown_845787C[] = _("Do you want the {STR_VAR_2}\nMODE?"); +ALIGNED(4) static const u8 sText_DoYouWantXMode[] = _("Do you want the {STR_VAR_2}\nMODE?"); +ALIGNED(4) static const u8 sText_DoYouWantXMode2[] = _("Do you want the {STR_VAR_2}\nMODE?"); -const u8 *const gUnknown_8457898[] = { - gUnknown_8457860, - gUnknown_845787C +// Unused +static const u8 *const sDoYouWantModeTexts[] = { + sText_DoYouWantXMode, + sText_DoYouWantXMode2 }; -ALIGNED(4) const u8 gUnknown_84578A0[] = _("はなしかけています…\nしょうしょう おまちください"); -ALIGNED(4) const u8 gUnknown_84578BC[] = _("Awaiting {STR_VAR_1}'s response about\nthe trade…"); +ALIGNED(4) static const u8 sText_CommunicatingPleaseWait[] = _("はなしかけています…\nしょうしょう おまちください"); // Unused +ALIGNED(4) const u8 gText_UR_AwaitingPlayersResponseAboutTrade[] = _("Awaiting {STR_VAR_1}'s response about\nthe trade…"); -ALIGNED(4) const u8 gUnknown_84578E4[] = _("Communicating{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.\n{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}."); -ALIGNED(4) const u8 gUnknown_8457950[] = _("Communicating with {STR_VAR_1}{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.\n{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}."); -ALIGNED(4) const u8 gUnknown_84579BC[] = _("Please wait a while{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.\n{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}."); +ALIGNED(4) static const u8 sText_Communicating[] = _("Communicating{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.\n{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}."); +ALIGNED(4) static const u8 sText_CommunicatingWithPlayer[] = _("Communicating with {STR_VAR_1}{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.\n{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}."); +ALIGNED(4) static const u8 sText_PleaseWaitAWhile[] = _("Please wait a while{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.\n{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}."); -const u8 *const gURText_PleaseWaitMsgs[] = { - gUnknown_84578E4, - gUnknown_8457950, - gUnknown_84579BC +const u8 *const gTexts_UR_CommunicatingWait[] = { + sText_Communicating, + sText_CommunicatingWithPlayer, + sText_PleaseWaitAWhile }; -ALIGNED(4) const u8 gUnknown_8457A40[] = _("Hiya! Is there something that you\nwanted to do?"); -ALIGNED(4) const u8 gUnknown_8457A70[] = _("Hello!\nWould you like to do something?"); -ALIGNED(4) const u8 gUnknown_8457A98[] = _("{STR_VAR_1}: Hiya, we meet again!\nWhat are you up for this time?"); -ALIGNED(4) const u8 gUnknown_8457AD0[] = _("{STR_VAR_1}: Oh! {PLAYER}, hello!\nWould you like to do something?"); +ALIGNED(4) static const u8 sText_HiDoSomethingMale[] = _("Hiya! Is there something that you\nwanted to do?"); +ALIGNED(4) static const u8 sText_HiDoSomethingFemale[] = _("Hello!\nWould you like to do something?"); +ALIGNED(4) static const u8 sText_HiDoSomethingAgainMale[] = _("{STR_VAR_1}: Hiya, we meet again!\nWhat are you up for this time?"); +ALIGNED(4) static const u8 sText_HiDoSomethingAgainFemale[] = _("{STR_VAR_1}: Oh! {PLAYER}, hello!\nWould you like to do something?"); -const u8 *const gURText_FriendPromptsForActivity[][2] = { +const u8 *const gTexts_UR_HiDoSomething[][GENDER_COUNT] = { { - gUnknown_8457A40, - gUnknown_8457A70 + sText_HiDoSomethingMale, + sText_HiDoSomethingFemale }, { - gUnknown_8457A98, - gUnknown_8457AD0 + sText_HiDoSomethingAgainMale, + sText_HiDoSomethingAgainFemale } }; -ALIGNED(4) const u8 gUnknown_8457B14[] = _("Want to do something?"); -ALIGNED(4) const u8 gUnknown_8457B2C[] = _("Would you like to do something?"); -ALIGNED(4) const u8 gUnknown_8457B4C[] = _("{STR_VAR_1}: What would you like to\ndo now?"); -ALIGNED(4) const u8 gUnknown_8457B70[] = _("{STR_VAR_1}‘また なにかする?"); +ALIGNED(4) static const u8 sText_DoSomethingMale[] = _("Want to do something?"); +ALIGNED(4) static const u8 sText_DoSomethingFemale[] = _("Would you like to do something?"); +ALIGNED(4) static const u8 sText_DoSomethingAgainMale[] = _("{STR_VAR_1}: What would you like to\ndo now?"); +ALIGNED(4) static const u8 sText_DoSomethingAgainFemale[] = _("{STR_VAR_1}‘また なにかする?"); -const u8 *const gUnknown_8457B80[] = { - gUnknown_8457B14, - gUnknown_8457B2C, - gUnknown_8457B4C, - gUnknown_8457B4C -}; - -ALIGNED(4) const u8 gUnknown_8457B90[] = _("Somebody has contacted you.{PAUSE 60}"); -ALIGNED(4) const u8 gUnknown_8457BA0[] = _("{STR_VAR_1} has contacted you.{PAUSE 60}"); - -const u8 *const gUnknown_8457BCC[] = { - gUnknown_8457B90, - gUnknown_8457BA0 -}; - -ALIGNED(4) const u8 gUnknown_8457BD4[] = _("Awaiting a response from\nthe other TRAINER…"); -ALIGNED(4) const u8 gUnknown_8457C00[] = _("Awaiting a response from\n{STR_VAR_1}…"); - -const u8 *const gUnknown_8457C20[] = { - gUnknown_8457BD4, - gUnknown_8457C00 -}; - -ALIGNED(4) const u8 gUnknown_8457C28[] = _("あいての ていあんを まっています\nビーボタンで キャンセル"); -ALIGNED(4) const u8 gUnknown_8457C48[] = _("The other TRAINER showed\nyou their TRAINER CARD.\pWould you like to show your\nTRAINER CARD?"); -ALIGNED(4) const u8 gUnknown_8457CA4[] = _("The other TRAINER challenges you\nto battle.\pWill you accept the battle\nchallenge?"); -ALIGNED(4) const u8 gUnknown_8457CF8[] = _("The other TRAINER invites you\nto chat.\pWill you accept the chat\ninvitation?"); -ALIGNED(4) const u8 gUnknown_8457D44[] = _("There is an offer to trade your\nregistered Lv. {DYNAMIC 0} {DYNAMIC 1}\pin exchange for a\nLv. {DYNAMIC 2} {DYNAMIC 3}.\pWill you accept this trade\noffer?"); -ALIGNED(4) const u8 gUnknown_8457DB8[] = _("There is an offer to trade your\nregistered EGG.\lWill you accept this trade offer?"); -ALIGNED(4) const u8 gUnknown_8457E0C[] = _("The chat has been dropped.\p"); -ALIGNED(4) const u8 gUnknown_8457E28[] = _("You declined the offer.\p"); -ALIGNED(4) const u8 gUnknown_8457E44[] = _("You declined the offer.\p"); -ALIGNED(4) const u8 gUnknown_8457E60[] = _("The chat was ended.\p"); - -const u8 *const gUnknown_8457E78[] = { - gUnknown_8457C48, - gUnknown_8457CA4, - gUnknown_8457CF8, - gUnknown_8457D44 -}; - -ALIGNED(4) const u8 gUnknown_8457E88[] = _("Oh, hey! We're in a chat right now.\nWant to join us?"); -ALIGNED(4) const u8 gUnknown_8457EC0[] = _("{STR_VAR_1}: Hey, {PLAYER}!\nWe're having a chat right now.\lWant to join us?"); -ALIGNED(4) const u8 gUnknown_8457F00[] = _("Oh, hi! We're having a chat now.\nWould you like to join us?"); -ALIGNED(4) const u8 gUnknown_8457F3C[] = _("{STR_VAR_1}: Oh, hi, {PLAYER}!\nWe're having a chat now.\lWould you like to join us?"); - -const u8 *const gUnknown_8457F80[][2] = { +// Unused +static const u8 *const sDoSomethingTexts[][GENDER_COUNT] = { { - gUnknown_8457E88, - gUnknown_8457F00 + sText_DoSomethingMale, + sText_DoSomethingFemale }, { - gUnknown_8457EC0, - gUnknown_8457F3C + sText_DoSomethingAgainMale, + sText_DoSomethingAgainMale // was probably supposed to be sText_DoSomethingAgainFemale } }; -ALIGNED(4) const u8 gUnknown_8457F90[] = _("……\nThe TRAINER appears to be busy…\p"); +ALIGNED(4) static const u8 sText_SomebodyHasContactedYou[] = _("Somebody has contacted you.{PAUSE 60}"); +ALIGNED(4) static const u8 sText_PlayerHasContactedYou[] = _("{STR_VAR_1} has contacted you.{PAUSE 60}"); -ALIGNED(4) const u8 gUnknown_8457FB4[] = _("A battle, huh?\nAll right, just give me some time."); -ALIGNED(4) const u8 gUnknown_8457FE8[] = _("You want to chat, huh?\nSure, just wait a little."); -ALIGNED(4) const u8 gUnknown_845801C[] = _("Sure thing! As my “Greetings,”\nhere's my TRAINER CARD."); -ALIGNED(4) const u8 gUnknown_8458054[] = _("A battle? Of course, but I need\ntime to get ready."); -ALIGNED(4) const u8 gUnknown_8458088[] = _("Did you want to chat?\nOkay, but please wait a moment."); -ALIGNED(4) const u8 gUnknown_84580C0[] = _("As my introduction, I'll show you\nmy TRAINER CARD."); +const u8 *const gTexts_UR_PlayerContactedYou[] = { + sText_SomebodyHasContactedYou, + sText_PlayerHasContactedYou +}; -const u8 *const gResponseToURoomActivityInviteStringPtrs[][4] = { +ALIGNED(4) static const u8 sText_AwaitingResponseFromTrainer[] = _("Awaiting a response from\nthe other TRAINER…"); +ALIGNED(4) static const u8 sText_AwaitingResponseFromPlayer[] = _("Awaiting a response from\n{STR_VAR_1}…"); + +const u8 *const gTexts_UR_AwaitingResponse[] = { + sText_AwaitingResponseFromTrainer, + sText_AwaitingResponseFromPlayer +}; + +ALIGNED(4) static const u8 sText_AwaitingResponseCancelBButton[] = _("あいての ていあんを まっています\nビーボタンで キャンセル"); + +ALIGNED(4) const u8 gText_UR_ShowTrainerCard[] = _("The other TRAINER showed\nyou their TRAINER CARD.\pWould you like to show your\nTRAINER CARD?"); +ALIGNED(4) const u8 gText_UR_BattleChallenge[] = _("The other TRAINER challenges you\nto battle.\pWill you accept the battle\nchallenge?"); +ALIGNED(4) const u8 gText_UR_ChatInvitation[] = _("The other TRAINER invites you\nto chat.\pWill you accept the chat\ninvitation?"); +ALIGNED(4) const u8 gText_UR_OfferToTradeMon[] = _("There is an offer to trade your\nregistered Lv. {DYNAMIC 0} {DYNAMIC 1}\pin exchange for a\nLv. {DYNAMIC 2} {DYNAMIC 3}.\pWill you accept this trade\noffer?"); +ALIGNED(4) const u8 gText_UR_OfferToTradeEgg[] = _("There is an offer to trade your\nregistered EGG.\lWill you accept this trade offer?"); +ALIGNED(4) const u8 gText_UR_ChatDropped[] = _("The chat has been dropped.\p"); +ALIGNED(4) const u8 gText_UR_OfferDeclined1[] = _("You declined the offer.\p"); +ALIGNED(4) const u8 gText_UR_OfferDeclined2[] = _("You declined the offer.\p"); +ALIGNED(4) const u8 gText_UR_ChatEnded[] = _("The chat was ended.\p"); + +// Unused +static const u8 *const sInvitationTexts[] = { + gText_UR_ShowTrainerCard, + gText_UR_BattleChallenge, + gText_UR_ChatInvitation, + gText_UR_OfferToTradeMon +}; + +ALIGNED(4) static const u8 sText_JoinChatMale[] = _("Oh, hey! We're in a chat right now.\nWant to join us?"); +ALIGNED(4) static const u8 sText_PlayerJoinChatMale[] = _("{STR_VAR_1}: Hey, {PLAYER}!\nWe're having a chat right now.\lWant to join us?"); +ALIGNED(4) static const u8 sText_JoinChatFemale[] = _("Oh, hi! We're having a chat now.\nWould you like to join us?"); +ALIGNED(4) static const u8 sText_PlayerJoinChatFemale[] = _("{STR_VAR_1}: Oh, hi, {PLAYER}!\nWe're having a chat now.\lWould you like to join us?"); + +const u8 *const gTexts_UR_JoinChat[][GENDER_COUNT] = { { - gUnknown_8457FB4, - gUnknown_8457FE8, + sText_JoinChatMale, + sText_JoinChatFemale + }, { + sText_PlayerJoinChatMale, + sText_PlayerJoinChatFemale + } +}; + +ALIGNED(4) const u8 gText_UR_TrainerAppearsBusy[] = _("……\nThe TRAINER appears to be busy…\p"); +ALIGNED(4) static const u8 sText_WaitForBattleMale[] = _("A battle, huh?\nAll right, just give me some time."); +ALIGNED(4) static const u8 sText_WaitForChatMale[] = _("You want to chat, huh?\nSure, just wait a little."); +ALIGNED(4) static const u8 sText_ShowTrainerCardMale[] = _("Sure thing! As my “Greetings,”\nhere's my TRAINER CARD."); +ALIGNED(4) static const u8 sText_WaitForBattleFemale[] = _("A battle? Of course, but I need\ntime to get ready."); +ALIGNED(4) static const u8 sText_WaitForChatFemale[] = _("Did you want to chat?\nOkay, but please wait a moment."); +ALIGNED(4) static const u8 sText_ShowTrainerCardFemale[] = _("As my introduction, I'll show you\nmy TRAINER CARD."); + +const u8 *const gTexts_UR_WaitOrShowCard[GENDER_COUNT][4] = { + { + sText_WaitForBattleMale, + sText_WaitForChatMale, NULL, - gUnknown_845801C + sText_ShowTrainerCardMale }, { - gUnknown_8458054, - gUnknown_8458088, + sText_WaitForBattleFemale, + sText_WaitForChatFemale, NULL, - gUnknown_84580C0 + sText_ShowTrainerCardFemale } }; -ALIGNED(4) const u8 gUnref_8458104[] = _("チャットだね!\nわかった ちょっと まってて!"); -ALIGNED(4) const u8 gUnknown_845812C[] = _("Thanks for waiting!\nLet's get our battle started!{PAUSE 60}"); -ALIGNED(4) const u8 gUnknown_8458164[] = _("All right!\nLet's chat!{PAUSE 60}"); -ALIGNED(4) const u8 gUnknown_8458180[] = _("Sorry I made you wait!\nLet's get started!{PAUSE 60}"); -ALIGNED(4) const u8 gUnknown_84581B0[] = _("Sorry I made you wait!\nLet's chat.{PAUSE 60}"); -ALIGNED(4) const u8 gUnknown_84581D8[] = _("The trade will be started.{PAUSE 60}"); -ALIGNED(4) const u8 gUnknown_84581F8[] = _("The battle will be started.{PAUSE 60}"); -ALIGNED(4) const u8 gUnknown_8458218[] = _("Entering the chat…{PAUSE 60}"); +ALIGNED(4) static const u8 sText_WaitForChatMale2[] = _("チャットだね!\nわかった ちょっと まってて!"); +ALIGNED(4) static const u8 sText_DoneWaitingBattleMale[] = _("Thanks for waiting!\nLet's get our battle started!{PAUSE 60}"); +ALIGNED(4) static const u8 sText_DoneWaitingChatMale[] = _("All right!\nLet's chat!{PAUSE 60}"); +ALIGNED(4) static const u8 sText_DoneWaitingBattleFemale[] = _("Sorry I made you wait!\nLet's get started!{PAUSE 60}"); +ALIGNED(4) static const u8 sText_DoneWaitingChatFemale[] = _("Sorry I made you wait!\nLet's chat.{PAUSE 60}"); +ALIGNED(4) static const u8 sText_TradeWillBeStarted[] = _("The trade will be started.{PAUSE 60}"); +ALIGNED(4) static const u8 sText_BattleWillBeStarted[] = _("The battle will be started.{PAUSE 60}"); +ALIGNED(4) static const u8 sText_EnteringChat[] = _("Entering the chat…{PAUSE 60}"); -const u8 *const gUnknown_8458230[][2][3] = { +const u8 *const gTexts_UR_StartActivity[][GENDER_COUNT][3] = { { { - gUnknown_84581F8, - gUnknown_8458218, - gUnknown_84581D8 + sText_BattleWillBeStarted, + sText_EnteringChat, + sText_TradeWillBeStarted }, { - gUnknown_84581F8, - gUnknown_8458218, - gUnknown_84581D8 + sText_BattleWillBeStarted, + sText_EnteringChat, + sText_TradeWillBeStarted } }, { { - gUnknown_845812C, - gUnknown_8458164, - gUnknown_84581D8 + sText_DoneWaitingBattleMale, + sText_DoneWaitingChatMale, + sText_TradeWillBeStarted }, { - gUnknown_8458180, - gUnknown_84581B0, - gUnknown_84581D8 + sText_DoneWaitingBattleFemale, + sText_DoneWaitingChatFemale, + sText_TradeWillBeStarted } } }; -ALIGNED(4) const u8 gUnknown_8458260[] = _("Sorry! My POKéMON don't seem to\nbe feeling too well right now.\lLet me battle you another time.\p"); -ALIGNED(4) const u8 gUnknown_84582C0[] = _("I'm terribly sorry, but my POKéMON\naren't feeling well…\pLet's battle another time.\p"); +ALIGNED(4) static const u8 sText_BattleDeclinedMale[] = _("Sorry! My POKéMON don't seem to\nbe feeling too well right now.\lLet me battle you another time.\p"); +ALIGNED(4) static const u8 sText_BattleDeclinedFemale[] = _("I'm terribly sorry, but my POKéMON\naren't feeling well…\pLet's battle another time.\p"); -const u8 *const gUnknown_8458314[] = { - gUnknown_8458260, - gUnknown_84582C0 +const u8 *const gTexts_UR_BattleDeclined[GENDER_COUNT] = { + sText_BattleDeclinedMale, + sText_BattleDeclinedFemale }; -ALIGNED(4) const u8 gUnknown_845831C[] = _("Huh? My TRAINER CARD…\nWhere'd it go now?\lSorry! I'll show you another time!\p"); -ALIGNED(4) const u8 gUnknown_845836C[] = _("Oh? Now where did I put my\nTRAINER CARD?…\lSorry! I'll show you later!\p"); +ALIGNED(4) static const u8 sText_ShowTrainerCardDeclinedMale[] = _("Huh? My TRAINER CARD…\nWhere'd it go now?\lSorry! I'll show you another time!\p"); +ALIGNED(4) static const u8 sText_ShowTrainerCardDeclinedFemale[] = _("Oh? Now where did I put my\nTRAINER CARD?…\lSorry! I'll show you later!\p"); -const u8 *const gUnknown_84583B4[] = { - gUnknown_845831C, - gUnknown_845836C +const u8 *const gTexts_UR_ShowTrainerCardDeclined[GENDER_COUNT] = { + sText_ShowTrainerCardDeclinedMale, + sText_ShowTrainerCardDeclinedFemale }; -ALIGNED(4) const u8 gUnknown_84583BC[] = _("If you want to do something with\nme, just give me a shout!\p"); -ALIGNED(4) const u8 gUnknown_84583F8[] = _("If you want to do something with\nme, don't be shy.\p"); +ALIGNED(4) static const u8 sText_IfYouWantToDoSomethingMale[] = _("If you want to do something with\nme, just give me a shout!\p"); +ALIGNED(4) static const u8 sText_IfYouWantToDoSomethingFemale[] = _("If you want to do something with\nme, don't be shy.\p"); -const u8 *const gUnknown_845842C[] = { - gUnknown_84583BC, - gUnknown_84583F8 +const u8 *const gTexts_UR_IfYouWantToDoSomething[GENDER_COUNT] = { + sText_IfYouWantToDoSomethingMale, + sText_IfYouWantToDoSomethingFemale }; -ALIGNED(4) const u8 gUnknown_8458434[] = _("Whoops! Sorry, but I have to do\nsomething else.\lAnother time, okay?\p"); -ALIGNED(4) const u8 gUnknown_845847C[] = _("If you want to battle, you need\ntwo POKéMON that are below\lLv. 30.\p"); -ALIGNED(4) const u8 gUnknown_84584C0[] = _("For a battle, you need two\nPOKéMON that are below Lv. 30.\p"); -ALIGNED(4) const u8 gUnknown_84584FC[] = _("Oh, all right.\nCome see me anytime, okay?\p"); -ALIGNED(4) const u8 gUnknown_8458528[] = _("Oh…\nPlease come by anytime.\p"); +ALIGNED(4) const u8 gText_UR_TrainerBattleBusy[] = _("Whoops! Sorry, but I have to do\nsomething else.\lAnother time, okay?\p"); +ALIGNED(4) const u8 gText_UR_NeedTwoMonsOfLevel30OrLower1[] = _("If you want to battle, you need\ntwo POKéMON that are below\lLv. 30.\p"); +ALIGNED(4) const u8 gText_UR_NeedTwoMonsOfLevel30OrLower2[] = _("For a battle, you need two\nPOKéMON that are below Lv. 30.\p"); -const u8 *const gUnknown_8458548[] = { - gUnknown_84584FC, - gUnknown_8458528 +ALIGNED(4) static const u8 sText_DeclineChatMale[] = _("Oh, all right.\nCome see me anytime, okay?\p"); +ALIGNED(4) static const u8 stext_DeclineChatFemale[] = _("Oh…\nPlease come by anytime.\p"); + +// Response from partner when player declines chat +const u8 *const gTexts_UR_DeclineChat[GENDER_COUNT] = { + sText_DeclineChatMale, + stext_DeclineChatFemale }; -ALIGNED(4) const u8 gUnknown_8458550[] = _("Oh, sorry!\nI just can't right this instant.\lLet's chat another time.\p"); -ALIGNED(4) const u8 gUnknown_8458598[] = _("Oh, I'm sorry.\nI have too much to do right now.\lLet's chat some other time.\p"); +ALIGNED(4) static const u8 sText_ChatDeclinedMale[] = _("Oh, sorry!\nI just can't right this instant.\lLet's chat another time.\p"); +ALIGNED(4) static const u8 sText_ChatDeclinedFemale[] = _("Oh, I'm sorry.\nI have too much to do right now.\lLet's chat some other time.\p"); -const u8 *const gUnknown_84585E8[] = { - gUnknown_8458550, - gUnknown_8458598 +// Response from partner when they decline chat +const u8 *const gTexts_UR_ChatDeclined[GENDER_COUNT] = { + sText_ChatDeclinedMale, + sText_ChatDeclinedFemale }; -ALIGNED(4) const u8 gUnknown_84585F0[] = _("Whoa!\nI can tell you're pretty tough!\p"); -ALIGNED(4) const u8 gUnknown_8458618[] = _("You used that move?\nThat's good strategy!\p"); -ALIGNED(4) const u8 gUnknown_8458644[] = _("Way to go!\nThat was an eye-opener!\p"); -ALIGNED(4) const u8 gUnknown_8458668[] = _("Oh! How could you use that\nPOKéMON in that situation?\p"); -ALIGNED(4) const u8 gUnknown_84586A0[] = _("That POKéMON…\nIt's been raised really well!\p"); -ALIGNED(4) const u8 gUnknown_84586D0[] = _("That's it!\nThis is the right move now!\p"); -ALIGNED(4) const u8 gUnknown_84586F8[] = _("That's awesome!\nYou can battle that way?\p"); -ALIGNED(4) const u8 gUnknown_8458724[] = _("You have exquisite timing for\nswitching POKéMON!\p"); +ALIGNED(4) static const u8 sText_YoureToughMale[] = _("Whoa!\nI can tell you're pretty tough!\p"); +ALIGNED(4) static const u8 sText_UsedGoodMoveMale[] = _("You used that move?\nThat's good strategy!\p"); +ALIGNED(4) static const u8 sText_BattleSurpriseMale[] = _("Way to go!\nThat was an eye-opener!\p"); +ALIGNED(4) static const u8 sText_SwitchedMonsMale[] = _("Oh! How could you use that\nPOKéMON in that situation?\p"); +ALIGNED(4) static const u8 sText_YoureToughFemale[] = _("That POKéMON…\nIt's been raised really well!\p"); +ALIGNED(4) static const u8 sText_UsedGoodMoveFemale[] = _("That's it!\nThis is the right move now!\p"); +ALIGNED(4) static const u8 sText_BattleSurpriseFemale[] = _("That's awesome!\nYou can battle that way?\p"); +ALIGNED(4) static const u8 sText_SwitchedMonsFemale[] = _("You have exquisite timing for\nswitching POKéMON!\p"); -const u8 *const gUnknown_8458758[][4] = { +const u8 *const gTexts_UR_BattleReaction[GENDER_COUNT][4] = { { - gUnknown_84585F0, - gUnknown_8458618, - gUnknown_8458644, - gUnknown_8458668 + sText_YoureToughMale, + sText_UsedGoodMoveMale, + sText_BattleSurpriseMale, + sText_SwitchedMonsMale }, { - gUnknown_84586A0, - gUnknown_84586D0, - gUnknown_84586F8, - gUnknown_8458724 + sText_YoureToughFemale, + sText_UsedGoodMoveFemale, + sText_BattleSurpriseFemale, + sText_SwitchedMonsFemale } }; -ALIGNED(4) const u8 gUnknown_8458778[] = _("Oh, I see!\nThis is educational!\p"); -ALIGNED(4) const u8 gUnknown_845879C[] = _("Don't say anything funny anymore!\nI'm sore from laughing!\p"); -ALIGNED(4) const u8 gUnknown_84587D8[] = _("Oh?\nSomething like that happened.\p"); -ALIGNED(4) const u8 gUnknown_84587FC[] = _("Hmhm… What?\nSo is this what you're saying?\p"); -ALIGNED(4) const u8 gUnknown_8458828[] = _("Is that right?\nI didn't know that.\p"); -ALIGNED(4) const u8 gUnknown_845884C[] = _("Ahaha!\nWhat is that about?\p"); -ALIGNED(4) const u8 gUnknown_8458868[] = _("Yes, that's exactly it!\nThat's what I meant.\p"); -ALIGNED(4) const u8 gUnknown_8458898[] = _("In other words…\nYes! That's right!\p"); +ALIGNED(4) static const u8 sText_LearnedSomethingMale[] = _("Oh, I see!\nThis is educational!\p"); +ALIGNED(4) static const u8 sText_ThatsFunnyMale[] = _("Don't say anything funny anymore!\nI'm sore from laughing!\p"); +ALIGNED(4) static const u8 sText_RandomChatMale1[] = _("Oh?\nSomething like that happened.\p"); +ALIGNED(4) static const u8 sText_RandomChatMale2[] = _("Hmhm… What?\nSo is this what you're saying?\p"); +ALIGNED(4) static const u8 sText_LearnedSomethingFemale[] = _("Is that right?\nI didn't know that.\p"); +ALIGNED(4) static const u8 sText_ThatsFunnyFemale[] = _("Ahaha!\nWhat is that about?\p"); +ALIGNED(4) static const u8 sText_RandomChatFemale1[] = _("Yes, that's exactly it!\nThat's what I meant.\p"); +ALIGNED(4) static const u8 sText_RandomChatFemale2[] = _("In other words…\nYes! That's right!\p"); -const u8 *const gUnknown_84588BC[][4] = { +const u8 *const gTexts_UR_ChatReaction[GENDER_COUNT][4] = { { - gUnknown_8458778, - gUnknown_845879C, - gUnknown_84587D8, - gUnknown_84587FC + sText_LearnedSomethingMale, + sText_ThatsFunnyMale, + sText_RandomChatMale1, + sText_RandomChatMale2 }, { - gUnknown_8458828, - gUnknown_845884C, - gUnknown_8458868, - gUnknown_8458898 + sText_LearnedSomethingFemale, + sText_ThatsFunnyFemale, + sText_RandomChatFemale1, + sText_RandomChatFemale2 } }; -ALIGNED(4) const u8 gUnknown_84588DC[] = _("I'm just showing my TRAINER CARD\nas my way of greeting.\p"); -ALIGNED(4) const u8 gUnknown_8458918[] = _("I hope I get to know you better!\p"); -ALIGNED(4) const u8 gUnknown_845893C[] = _("We're showing each other our\nTRAINER CARDS to get acquainted.\p"); -ALIGNED(4) const u8 gUnknown_845897C[] = _("Glad to meet you.\nPlease don't be a stranger!\p"); +ALIGNED(4) static const u8 sText_ShowedTrainerCardMale1[] = _("I'm just showing my TRAINER CARD\nas my way of greeting.\p"); +ALIGNED(4) static const u8 sText_ShowedTrainerCardMale2[] = _("I hope I get to know you better!\p"); +ALIGNED(4) static const u8 sText_ShowedTrainerCardFemale1[] = _("We're showing each other our\nTRAINER CARDS to get acquainted.\p"); +ALIGNED(4) static const u8 sText_ShowedTrainerCardFemale2[] = _("Glad to meet you.\nPlease don't be a stranger!\p"); -const u8 *const gUnknown_84589AC[][2] = { +const u8 *const gTexts_UR_TrainerCardReaction[GENDER_COUNT][2] = { { - gUnknown_84588DC, - gUnknown_8458918 + sText_ShowedTrainerCardMale1, + sText_ShowedTrainerCardMale2 }, { - gUnknown_845893C, - gUnknown_845897C + sText_ShowedTrainerCardFemale1, + sText_ShowedTrainerCardFemale2 } }; -ALIGNED(4) const u8 gUnknown_84589BC[] = _("Yeahah!\nI really wanted this POKéMON!\p"); -ALIGNED(4) const u8 gUnknown_84589E4[] = _("Finally, a trade got me that\nPOKéMON I'd wanted a long time.\p"); -ALIGNED(4) const u8 gUnknown_8458A24[] = _("I'm trading POKéMON right now.\p"); -ALIGNED(4) const u8 gUnknown_8458A44[] = _("I finally got that POKéMON I\nwanted in a trade!\p"); +ALIGNED(4) static const u8 sText_MaleTraded1[] = _("Yeahah!\nI really wanted this POKéMON!\p"); +ALIGNED(4) static const u8 sText_MaleTraded2[] = _("Finally, a trade got me that\nPOKéMON I'd wanted a long time.\p"); +ALIGNED(4) static const u8 sText_FemaleTraded1[] = _("I'm trading POKéMON right now.\p"); +ALIGNED(4) static const u8 sText_FemaleTraded2[] = _("I finally got that POKéMON I\nwanted in a trade!\p"); -const u8 *const gUnknown_8458A78[][4] = { +const u8 *const gTexts_UR_TradeReaction[GENDER_COUNT][4] = { { - gUnknown_84589BC, - gUnknown_84589E4 + sText_MaleTraded1, + sText_MaleTraded2 }, { - gUnknown_8458A24, - gUnknown_8458A44 + sText_FemaleTraded1, + sText_FemaleTraded2 } }; -const u8 gUnknown_8458A98[] = _("{STR_VAR_1} checked the\nTRADING BOARD.\p"); -ALIGNED(4) const u8 gUnknown_8458AB8[] = _("Welcome to the TRADING BOARD.\pYou may register your POKéMON\nand offer it up for a trade.\pWould you like to register one of\nyour POKéMON?"); -ALIGNED(4) const u8 gUnknown_8458B44[] = _("This TRADING BOARD is used for\noffering a POKéMON for a trade.\pAll you need to do is register a\nPOKéMON for a trade.\pAnother TRAINER may offer a party\nPOKéMON in return for the trade.\pWe hope you will register POKéMON\nand trade them with many, many\lother TRAINERS.\pWould you like to register one of\nyour POKéMON?"); -ALIGNED(4) const u8 gUnref_ThankYouForComing_JP[] = _("こうかんけいじばん の とうろくが\nかんりょう しました\pごりよう ありがとう\nございました!\p"); -ALIGNED(4) const u8 gUnref_NoOneRegisteredMon[] = _("けいじばんに だれも ポケモンを\nとうろく していません\p\n"); +const u8 gText_UR_XCheckedTradingBoard[] = _("{STR_VAR_1} checked the\nTRADING BOARD.\p"); +ALIGNED(4) const u8 gText_UR_RegisterMonAtTradingBoard[] = _("Welcome to the TRADING BOARD.\pYou may register your POKéMON\nand offer it up for a trade.\pWould you like to register one of\nyour POKéMON?"); +ALIGNED(4) const u8 gText_UR_TradingBoardInfo[] = _("This TRADING BOARD is used for\n" + "offering a POKéMON for a trade.\p" + "All you need to do is register a\n" + "POKéMON for a trade.\p" + "Another TRAINER may offer a party\n" + "POKéMON in return for the trade.\p" + "We hope you will register POKéMON\n" + "and trade them with many, many\l" + "other TRAINERS.\p" + "Would you like to register one of\n" + "your POKéMON?"); +ALIGNED(4) static const u8 sText_ThankYouForRegistering[] = _("こうかんけいじばん の とうろくが\nかんりょう しました\pごりよう ありがとう\nございました!\p"); +ALIGNED(4) static const u8 sText_NobodyHasRegistered[] = _("けいじばんに だれも ポケモンを\nとうろく していません\p\n"); +ALIGNED(4) const u8 gText_UR_ChooseRequestedMonType[] = _("Please choose the type of POKéMON\nthat you would like in the trade.\n"); +ALIGNED(4) const u8 gText_UR_WhichMonWillYouOffer[] = _("Which of your party POKéMON will\nyou offer in trade?\p"); +ALIGNED(4) const u8 gText_UR_RegistrationCanceled[] = _("Registration has been canceled.\p"); +ALIGNED(4) const u8 gText_UR_RegistraionCompleted[] = _("Registration has been completed.\p"); +ALIGNED(4) const u8 gText_UR_TradeCanceled[] = _("The trade has been canceled.\p"); +ALIGNED(4) const u8 gText_UR_CancelRegistrationOfMon[] = _("Cancel the registration of your\nLv. {STR_VAR_2} {STR_VAR_1}?"); +ALIGNED(4) const u8 gText_UR_CancelRegistrationOfEgg[] = _("Cancel the registration of your\nEGG?"); +ALIGNED(4) const u8 gText_UR_RegistrationCanceled2[] = _("The registration has been canceled.\p"); +ALIGNED(4) static const u8 sText_TradeTrainersWillBeListed[] = _("こうかんを きぼうしているひとを\nひょうじします"); +ALIGNED(4) static const u8 sText_ChooseTrainerToTradeWith2[] = _("こうかん したい トレーナーを\nえらんで ください"); +ALIGNED(4) const u8 gText_UR_AskTrainerToMakeTrade[] = _("Would you like to ask {STR_VAR_1} to\nmake a trade?"); +ALIGNED(4) static const u8 sText_AwaitingResponseFromTrainer2[] = _("……\nあいての へんじを まっています"); +ALIGNED(4) static const u8 sText_NotRegisteredAMonForTrade[] = _("あなたが こうかんにだす\nポケモンが とうろくされていません\p"); +ALIGNED(4) const u8 gText_UR_DontHaveTypeTrainerWants[] = _("You don't have a {STR_VAR_2}-type\nPOKéMON that {STR_VAR_1} wants.\p"); +ALIGNED(4) const u8 gText_UR_DontHaveEggTrainerWants[] = _("You don't have an EGG that\n{STR_VAR_1} wants.\p"); -ALIGNED(4) const u8 gURText_PleaseChooseTypeOfMon[] = _("Please choose the type of POKéMON\nthat you would like in the trade.\n"); -ALIGNED(4) const u8 gUnknown_8458D1C[] = _("Which of your party POKéMON will\nyou offer in trade?\p"); -ALIGNED(4) const u8 gUnknown_8458D54[] = _("Registration has been canceled.\p"); -ALIGNED(4) const u8 gUnknown_8458D78[] = _("Registration has been completed.\p"); -ALIGNED(4) const u8 gUnknown_8458D9C[] = _("The trade has been canceled.\p"); -ALIGNED(4) const u8 gUnknown_8458DBC[] = _("Cancel the registration of your\nLv. {STR_VAR_2} {STR_VAR_1}?"); -ALIGNED(4) const u8 gUnknown_8458DE8[] = _("Cancel the registration of your\nEGG?"); -ALIGNED(4) const u8 gUnknown_8458E10[] = _("The registration has been canceled.\p"); -ALIGNED(4) const u8 gUnref_ShowPeopleWhoLikeYou_JP[] = _("こうかんを きぼうしているひとを\nひょうじします"); -ALIGNED(4) const u8 gUnref_PleaseChooseTrainerYouWant[] = _("こうかん したい トレーナーを\nえらんで ください"); -ALIGNED(4) const u8 gUnknown_8458E70[] = _("Would you like to ask {STR_VAR_1} to\nmake a trade?"); -ALIGNED(4) const u8 gUnref_ImWaitingForAnswer[] = _("……\nあいての へんじを まっています"); -ALIGNED(4) const u8 gUnref_MonSentOutIsNotRegistered[] = _("あなたが こうかんにだす\nポケモンが とうろくされていません\p"); -ALIGNED(4) const u8 gUnknown_8458ED0[] = _("You don't have a {STR_VAR_2}-type\nPOKéMON that {STR_VAR_1} wants.\p"); -ALIGNED(4) const u8 gUnknown_8458F04[] = _("You don't have an EGG that\n{STR_VAR_1} wants.\p"); -ALIGNED(4) const u8 gUnknown_8458F2C[] = _("{STR_VAR_1} can't make a trade for\nyour POKéMON right now.\p"); -ALIGNED(4) const u8 gUnknown_8458F60[] = _("You can't make a trade for\n{STR_VAR_1}'s POKéMON right now.\p"); +ALIGNED(4) static const u8 sText_PlayerCantTradeForYourMon[] = _("{STR_VAR_1} can't make a trade for\nyour POKéMON right now.\p"); +ALIGNED(4) static const u8 sText_CantTradeForPartnersMon[] = _("You can't make a trade for\n{STR_VAR_1}'s POKéMON right now.\p"); -const u8 *const gUnknown_8458F94[] = { - gUnknown_8458F2C, - gUnknown_8458F60 +// Unused +static const u8 *const sCantTradeMonTexts[] = { + sText_PlayerCantTradeForYourMon, + sText_CantTradeForPartnersMon }; -ALIGNED(4) const u8 gUnknown_8458F9C[] = _("Your trade offer was rejected.\p"); -ALIGNED(4) const u8 gText_EggTrade[] = _("EGG TRADE"); -ALIGNED(4) const u8 gUnknown_8458FC8[] = _("{DPAD_UPDOWN}CHOOSE {A_BUTTON}JOIN {B_BUTTON}CANCEL"); -ALIGNED(4) const u8 gUnknown_8458FE4[] = _("Please choose a TRAINER."); +ALIGNED(4) const u8 gText_UR_TradeOfferRejected[] = _("Your trade offer was rejected.\p"); +ALIGNED(4) const u8 gText_UR_EggTrade[] = _("EGG TRADE"); +ALIGNED(4) const u8 gText_UR_ChooseJoinCancel[] = _("{DPAD_UPDOWN}CHOOSE {A_BUTTON}JOIN {B_BUTTON}CANCEL"); +ALIGNED(4) const u8 gText_UR_ChooseTrainer[] = _("Please choose a TRAINER."); +ALIGNED(4) static const u8 sText_ChooseTrainerSingleBattle[] = _("Please choose a TRAINER for\na SINGLE BATTLE."); +ALIGNED(4) static const u8 sText_ChooseTrainerDoubleBattle[] = _("Please choose a TRAINER for\na DOUBLE BATTLE."); +ALIGNED(4) static const u8 sText_ChooseLeaderMultiBattle[] = _("Please choose the LEADER\nfor a MULTI BATTLE."); +ALIGNED(4) static const u8 sText_ChooseTrainerToTradeWith[] = _("Please choose the TRAINER to\ntrade with."); +ALIGNED(4) static const u8 sText_ChooseTrainerToShareWonderCards[] = _("Please choose the TRAINER who is\nsharing WONDER CARDS."); +ALIGNED(4) static const u8 sText_ChooseTrainerToShareWonderNews[] = _("Please choose the TRAINER who is\nsharing WONDER NEWS."); +ALIGNED(4) static const u8 sText_ChooseLeaderPokemonJump[] = _("Jump with mini POKéMON!\nPlease choose the LEADER."); +ALIGNED(4) static const u8 sText_ChooseLeaderBerryCrush[] = _("BERRY CRUSH!\nPlease choose the LEADER."); +ALIGNED(4) static const u8 sText_ChooseLeaderBerryPicking[] = _("DODRIO BERRY-PICKING!\nPlease choose the LEADER."); -ALIGNED(4) const u8 gUnknown_8459000[] = _("Please choose a TRAINER for\na SINGLE BATTLE."); -ALIGNED(4) const u8 gUnknown_8459030[] = _("Please choose a TRAINER for\na DOUBLE BATTLE."); -ALIGNED(4) const u8 gUnknown_8459060[] = _("Please choose the LEADER\nfor a MULTI BATTLE."); -ALIGNED(4) const u8 gUnknown_8459090[] = _("Please choose the TRAINER to\ntrade with."); -ALIGNED(4) const u8 gUnknown_84590BC[] = _("Please choose the TRAINER who is\nsharing WONDER CARDS."); -ALIGNED(4) const u8 gUnknown_84590F4[] = _("Please choose the TRAINER who is\nsharing WONDER NEWS."); -ALIGNED(4) const u8 gUnknown_845912C[] = _("Jump with mini POKéMON!\nPlease choose the LEADER."); -ALIGNED(4) const u8 gUnknown_8459160[] = _("BERRY CRUSH!\nPlease choose the LEADER."); -ALIGNED(4) const u8 gUnknown_8459188[] = _("DODRIO BERRY-PICKING!\nPlease choose the LEADER."); - -const u8 *const gUnknown_84591B8[] = { - [LINK_GROUP_SINGLE_BATTLE] = gUnknown_8459000, - [LINK_GROUP_DOUBLE_BATTLE] = gUnknown_8459030, - [LINK_GROUP_MULTI_BATTLE] = gUnknown_8459060, - [LINK_GROUP_TRADE] = gUnknown_8459090, - [LINK_GROUP_POKEMON_JUMP] = gUnknown_845912C, - [LINK_GROUP_BERRY_CRUSH] = gUnknown_8459160, - [LINK_GROUP_BERRY_PICKING] = gUnknown_8459188, - [LINK_GROUP_WONDER_CARD] = gUnknown_84590BC, - [LINK_GROUP_WONDER_NEWS] = gUnknown_84590F4 +const u8 *const gTexts_UR_ChooseTrainer[] = { + [LINK_GROUP_SINGLE_BATTLE] = sText_ChooseTrainerSingleBattle, + [LINK_GROUP_DOUBLE_BATTLE] = sText_ChooseTrainerDoubleBattle, + [LINK_GROUP_MULTI_BATTLE] = sText_ChooseLeaderMultiBattle, + [LINK_GROUP_TRADE] = sText_ChooseTrainerToTradeWith, + [LINK_GROUP_POKEMON_JUMP] = sText_ChooseLeaderPokemonJump, + [LINK_GROUP_BERRY_CRUSH] = sText_ChooseLeaderBerryCrush, + [LINK_GROUP_BERRY_PICKING] = sText_ChooseLeaderBerryPicking, + [LINK_GROUP_WONDER_CARD] = sText_ChooseTrainerToShareWonderCards, + [LINK_GROUP_WONDER_NEWS] = sText_ChooseTrainerToShareWonderNews }; -ALIGNED(4) const u8 gUnknown_84591DC[] = _("Searching for a WIRELESS\nCOMMUNICATION SYSTEM. Wait..."); -ALIGNED(4) const u8 gUnref_NeedAtLeast2InDblBtl[] = _("ダブルバトルでは 2ひき いじょうの\nポケモンが ひつようです\p"); -ALIGNED(4) const u8 gUnknown_8459238[] = _("Awaiting {STR_VAR_1}'s response…"); -ALIGNED(4) const u8 gUnknown_8459250[] = _("{STR_VAR_1} has been asked to register\nyou as a member. Please wait."); -ALIGNED(4) const u8 gUnknown_845928C[] = _("Awaiting a response from the\nWIRELESS COMMUNICATION SYSTEM."); -ALIGNED(4) const u8 gUnref_PlsWaitLittleWHile[] = _("ほかの さんかしゃが そろうまで\nしょうしょう おまちください"); +ALIGNED(4) const u8 gText_UR_SearchingForWirelessSystemWait[] = _("Searching for a WIRELESS\nCOMMUNICATION SYSTEM. Wait..."); +ALIGNED(4) static const u8 sText_MustHaveTwoMonsForDoubleBattle[] = _("ダブルバトルでは 2ひき いじょうの\nポケモンが ひつようです\p"); +ALIGNED(4) const u8 gText_UR_AwaitingPlayersResponse[] = _("Awaiting {STR_VAR_1}'s response…"); +ALIGNED(4) const u8 gText_UR_PlayerHasBeenAskedToRegisterYouPleaseWait[] = _("{STR_VAR_1} has been asked to register\nyou as a member. Please wait."); +ALIGNED(4) const u8 gText_UR_AwaitingResponseFromWirelessSystem[] = _("Awaiting a response from the\nWIRELESS COMMUNICATION SYSTEM."); +ALIGNED(4) static const u8 sText_PleaseWaitForOtherTrainersToGather[] = _("ほかの さんかしゃが そろうまで\nしょうしょう おまちください"); -ALIGNED(4) const u8 gUnknown_84592E8[] = _("No CARDS appear to be shared \nright now."); -ALIGNED(4) const u8 gUnknown_8459314[] = _("No NEWS appears to be shared\nright now."); +ALIGNED(4) static const u8 sText_NoCardsSharedRightNow[] = _("No CARDS appear to be shared \nright now."); +ALIGNED(4) static const u8 sText_NoNewsSharedRightNow[] = _("No NEWS appears to be shared\nright now."); -const u8 *const gUnknown_845933C[] = { - gUnknown_84592E8, - gUnknown_8459314 +const u8 *const gTexts_UR_NoWonderShared[] = { + sText_NoCardsSharedRightNow, + sText_NoNewsSharedRightNow }; -ALIGNED(4) const u8 gUnknown_8459344[] = _("BATTLE"); -ALIGNED(4) const u8 gUnknown_845934C[] = _("CHAT"); -ALIGNED(4) const u8 gUnknown_8459354[] = _("GREETINGS"); -ALIGNED(4) const u8 gUnknown_8459360[] = _("EXIT"); +ALIGNED(4) const u8 gText_UR_Battle[] = _("BATTLE"); +ALIGNED(4) const u8 gText_UR_Chat2[] = _("CHAT"); +ALIGNED(4) const u8 gText_UR_Greetings[] = _("GREETINGS"); +ALIGNED(4) const u8 gText_UR_Exit[] = _("EXIT"); -ALIGNED(4) const u8 gUnknown_8459368[] = _("EXIT"); -ALIGNED(4) const u8 gUnknown_8459370[] = _("INFO"); -ALIGNED(4) const u8 gUnknown_8459378[] = _("NAME{CLEAR_TO 0x3C}WANTED{CLEAR_TO 0x6E}OFFER{CLEAR_TO 0xC6}LV."); +ALIGNED(4) const u8 gText_UR_Exit2[] = _("EXIT"); +ALIGNED(4) const u8 gText_UR_Info[] = _("INFO"); +ALIGNED(4) const u8 gText_UR_NameWantedOfferLv[] = _("NAME{CLEAR_TO 0x3C}WANTED{CLEAR_TO 0x6E}OFFER{CLEAR_TO 0xC6}LV."); -ALIGNED(4) const u8 gUnionRoomActivity_SingleBattle[] = _("SINGLE BATTLE"); -ALIGNED(4) const u8 gUnionRoomActivity_DoubleBattle[] = _("DOUBLE BATTLE"); -ALIGNED(4) const u8 gUnionRoomActivity_MultiBattle[] = _("MULTI BATTLE"); -ALIGNED(4) const u8 gUnionRoomActivity_PokemonTrades[] = _("POKéMON TRADES"); -ALIGNED(4) const u8 gUnionRoomActivity_Chat[] = _("CHAT"); -ALIGNED(4) const u8 gUnionRoomActivity_Cards[] = _("CARDS"); -ALIGNED(4) const u8 gUnionRoomActivity_WonderCards[] = _("WONDER CARDS"); -ALIGNED(4) const u8 gunionRoomActivity_WonderNews[] = _("WONDER NEWS"); -ALIGNED(4) const u8 gUnionRoomActivity_PokemonJump[] = _("POKéMON JUMP"); -ALIGNED(4) const u8 gUnionRoomActivity_BerryCrush[] = _("BERRY CRUSH"); -ALIGNED(4) const u8 gUnionRoomActivity_BerryPicking[] = _("BERRY-PICKING"); -ALIGNED(4) const u8 gUnionRoomActivity_Search[] = _("SEARCH"); -ALIGNED(4) const u8 gUnionRoomActivity_SpinTradeJP[] = _("ぐるぐるこうかん"); -ALIGNED(4) const u8 gUnionRoomActivity_ItemTradeJP[] = _("アイテムトレード"); +ALIGNED(4) const u8 gText_UR_SingleBattle[] = _("SINGLE BATTLE"); +ALIGNED(4) const u8 gText_UR_DoubleBattle[] = _("DOUBLE BATTLE"); +ALIGNED(4) const u8 gText_UR_MultiBattle[] = _("MULTI BATTLE"); +ALIGNED(4) const u8 gText_UR_PokemonTrades[] = _("POKéMON TRADES"); +ALIGNED(4) const u8 gText_UR_Chat[] = _("CHAT"); +ALIGNED(4) const u8 gText_UR_Cards[] = _("CARDS"); +ALIGNED(4) const u8 gText_UR_WonderCards[] = _("WONDER CARDS"); +ALIGNED(4) const u8 gText_UR_WonderNews[] = _("WONDER NEWS"); +ALIGNED(4) const u8 gText_UR_PokemonJump[] = _("POKéMON JUMP"); +ALIGNED(4) const u8 gText_UR_BerryCrush[] = _("BERRY CRUSH"); +ALIGNED(4) const u8 gText_UR_BerryPicking[] = _("BERRY-PICKING"); +ALIGNED(4) const u8 gText_UR_Search[] = _("SEARCH"); +ALIGNED(4) const u8 gText_UR_SpinTrade[] = _("ぐるぐるこうかん"); +ALIGNED(4) const u8 gText_UR_ItemTrade[] = _("アイテムトレード"); -ALIGNED(4) const u8 gUnknown_845944C[] = _("It's a NORMAL CARD."); -ALIGNED(4) const u8 gUnknown_8459460[] = _("It's a BRONZE CARD!"); -ALIGNED(4) const u8 gUnknown_8459474[] = _("It's a COPPER CARD!"); -ALIGNED(4) const u8 gUnknown_8459488[] = _("It's a SILVER CARD!"); -ALIGNED(4) const u8 gUnknown_845949C[] = _("It's a GOLD CARD!"); +ALIGNED(4) static const u8 sText_ItsNormalCard[] = _("It's a NORMAL CARD."); +ALIGNED(4) static const u8 sText_ItsBronzeCard[] = _("It's a BRONZE CARD!"); +ALIGNED(4) static const u8 sText_ItsCopperCard[] = _("It's a COPPER CARD!"); +ALIGNED(4) static const u8 sText_ItsSilverCard[] = _("It's a SILVER CARD!"); +ALIGNED(4) static const u8 sText_ItsGoldCard[] = _("It's a GOLD CARD!"); -const u8 *const gUnknown_84594B0[] = { - gUnknown_845944C, - gUnknown_8459460, - gUnknown_8459474, - gUnknown_8459488, - gUnknown_845949C +const u8 *const gTexts_UR_CardColor[] = { + sText_ItsNormalCard, + sText_ItsBronzeCard, + sText_ItsCopperCard, + sText_ItsSilverCard, + sText_ItsGoldCard }; -ALIGNED(4) const u8 gUnknown_84594C4[] = _("This is {SPECIAL_F7 0x00} {SPECIAL_F7 0x01}'s\nTRAINER CARD…\l{SPECIAL_F7 0x02}\pPOKéDEX: {SPECIAL_F7 0x03}\nTIME: {SPECIAL_F7 0x04}:{SPECIAL_F7 0x05}\p"); -ALIGNED(4) const u8 gUnknown_8459504[] = _("BATTLES: {SPECIAL_F7 0x00} WINS {SPECIAL_F7 0x02} LOSSES\nTRADES: {SPECIAL_F7 0x03} TIMES\p“{SPECIAL_F7 0x04} {SPECIAL_F7 0x05}\n{SPECIAL_F7 0x06} {SPECIAL_F7 0x07}”\p"); +ALIGNED(4) const u8 gText_UR_TrainerCardInfoPage1[] = _("This is {SPECIAL_F7 0x00} {SPECIAL_F7 0x01}'s\nTRAINER CARD…\l{SPECIAL_F7 0x02}\pPOKéDEX: {SPECIAL_F7 0x03}\nTIME: {SPECIAL_F7 0x04}:{SPECIAL_F7 0x05}\p"); +ALIGNED(4) const u8 gText_UR_TrainerCardInfoPage2[] = _("BATTLES: {SPECIAL_F7 0x00} WINS {SPECIAL_F7 0x02} LOSSES\nTRADES: {SPECIAL_F7 0x03} TIMES\p“{SPECIAL_F7 0x04} {SPECIAL_F7 0x05}\n{SPECIAL_F7 0x06} {SPECIAL_F7 0x07}”\p"); +ALIGNED(4) static const u8 sText_GladToMeetYouMale[] = _("{SPECIAL_F7 0x01}: Glad to have met you!{PAUSE 60}"); +ALIGNED(4) static const u8 sText_GladToMeetYouFemale[] = _("{SPECIAL_F7 0x01}: Glad to meet you!{PAUSE 60}"); -ALIGNED(4) const u8 gUnknown_8459544[] = _("{SPECIAL_F7 0x01}: Glad to have met you!{PAUSE 60}"); -ALIGNED(4) const u8 gUnknown_8459564[] = _("{SPECIAL_F7 0x01}: Glad to meet you!{PAUSE 60}"); - -const u8 *const gUnknown_8459580[] = { - gUnknown_8459544, - gUnknown_8459564 +const u8 *const gTexts_UR_GladToMeetYou[GENDER_COUNT] = { + sText_GladToMeetYouMale, + sText_GladToMeetYouFemale }; -ALIGNED(4) const u8 gUnknown_8459588[] = _("Finished checking {SPECIAL_F7 0x01}'s\nTRAINER CARD.{PAUSE 60}"); -ALIGNED(4) const u8 gUnknown_84595B0[] = _("Canceled reading the Card."); +ALIGNED(4) const u8 gText_UR_FinishedCheckingPlayersTrainerCard[] = _("Finished checking {SPECIAL_F7 0x01}'s\nTRAINER CARD.{PAUSE 60}"); +ALIGNED(4) static const u8 sText_CanceledReadingCard[] = _("Canceled reading the Card."); -const struct mevent_client_cmd gUnknown_84595CC[] = { +static const struct mevent_client_cmd sClientScript_DynamicError[] = { CLI_RECEIVE(0x15), CLI_RECVBUF, CLI_SENDALL, CLI_RETURN(0x0e) }; -const struct mevent_server_cmd gMEventSrvScript_OtherTrainerCanceled[] = { - SRV_SEND(0x20, gUnknown_84595CC), +const struct mevent_server_cmd gServerScript_ClientCanceledCard[] = { + SRV_SEND(0x20, sClientScript_DynamicError), SRV_WAITSND, - SRV_SENDSTR(0x1b, gUnknown_84595B0), + SRV_SENDSTR(0x1b, sText_CanceledReadingCard), SRV_WAITSND, SRV_RECV(0x14), SRV_RETURN(0x09) diff --git a/src/vs_seeker.c b/src/vs_seeker.c index 4962a7cf8..b1d928fff 100644 --- a/src/vs_seeker.c +++ b/src/vs_seeker.c @@ -624,7 +624,7 @@ static void Task_ResetObjectsRematchWantedState(u8 taskId) { DestroyTask(taskId); StopPlayerAvatar(); - EnableBothScriptContexts(); + ScriptContext_Enable(); } } @@ -638,11 +638,11 @@ void VsSeekerResetObjectMovementAfterChargeComplete(void) for (i = 0; i < gMapHeader.events->objectEventCount; i++) { - if ((templates[i].trainerType == TRAINER_TYPE_NORMAL - || templates[i].trainerType == TRAINER_TYPE_BURIED) - && (templates[i].movementType == MOVEMENT_TYPE_RAISE_HAND_AND_STOP - || templates[i].movementType == MOVEMENT_TYPE_RAISE_HAND_AND_JUMP - || templates[i].movementType == MOVEMENT_TYPE_RAISE_HAND_AND_SWIM)) + if ((templates[i].objUnion.normal.trainerType == TRAINER_TYPE_NORMAL + || templates[i].objUnion.normal.trainerType == TRAINER_TYPE_BURIED) + && (templates[i].objUnion.normal.movementType == MOVEMENT_TYPE_RAISE_HAND_AND_STOP + || templates[i].objUnion.normal.movementType == MOVEMENT_TYPE_RAISE_HAND_AND_JUMP + || templates[i].objUnion.normal.movementType == MOVEMENT_TYPE_RAISE_HAND_AND_SWIM)) { movementType = GetRandomFaceDirectionMovementType(); TryGetObjectEventIdByLocalIdAndMap(templates[i].localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, &objEventId); @@ -651,7 +651,7 @@ void VsSeekerResetObjectMovementAfterChargeComplete(void) { SetTrainerMovementType(objectEvent, movementType); } - templates[i].movementType = movementType; + templates[i].objUnion.normal.movementType = movementType; } } } @@ -807,7 +807,7 @@ static void GatherNearbyTrainerInfo(void) for (objectEventIdx = 0; objectEventIdx < gMapHeader.events->objectEventCount; objectEventIdx++) { - if (templates[objectEventIdx].trainerType == TRAINER_TYPE_NORMAL || templates[objectEventIdx].trainerType == TRAINER_TYPE_BURIED) + if (templates[objectEventIdx].objUnion.normal.trainerType == TRAINER_TYPE_NORMAL || templates[objectEventIdx].objUnion.normal.trainerType == TRAINER_TYPE_BURIED) { sVsSeeker->trainerInfo[vsSeekerObjectIdx].script = templates[objectEventIdx].script; sVsSeeker->trainerInfo[vsSeekerObjectIdx].trainerIdx = GetTrainerFlagFromScript(templates[objectEventIdx].script); @@ -837,7 +837,7 @@ static void Task_VsSeeker_3(u8 taskId) StartAllRespondantIdleMovements(); ClearDialogWindowAndFrame(0, TRUE); ClearPlayerHeldMovementAndUnfreezeObjectEvents(); - ScriptContext2_Disable(); + UnlockPlayerFieldControls(); DestroyTask(taskId); } Free(sVsSeeker); @@ -941,7 +941,9 @@ void ClearRematchStateByTrainerId(void) for (i = 0; i < gMapHeader.events->objectEventCount; i++) { - if ((objectEventTemplates[i].trainerType == TRAINER_TYPE_NORMAL || objectEventTemplates[i].trainerType == TRAINER_TYPE_BURIED) && vsSeekerDataIdx == LookupVsSeekerOpponentInArray(sVsSeekerData, GetTrainerFlagFromScript(objectEventTemplates[i].script))) + if ((objectEventTemplates[i].objUnion.normal.trainerType == TRAINER_TYPE_NORMAL + || objectEventTemplates[i].objUnion.normal.trainerType == TRAINER_TYPE_BURIED) + && vsSeekerDataIdx == LookupVsSeekerOpponentInArray(sVsSeekerData, GetTrainerFlagFromScript(objectEventTemplates[i].script))) { struct ObjectEvent *objectEvent; diff --git a/src/wild_encounter.c b/src/wild_encounter.c index b513ad47e..288a6b235 100644 --- a/src/wild_encounter.c +++ b/src/wild_encounter.c @@ -3,6 +3,7 @@ #include "wild_encounter.h" #include "event_data.h" #include "fieldmap.h" +#include "random.h" #include "roamer.h" #include "field_player_avatar.h" #include "battle_setup.h" @@ -109,13 +110,6 @@ static u8 ChooseWildMonIndex_WaterRock(void) return 4; } -enum -{ - OLD_ROD, - GOOD_ROD, - SUPER_ROD -}; - static u8 ChooseWildMonIndex_Fishing(u8 rod) { u8 wildMonIndex = 0; @@ -593,7 +587,7 @@ bool8 UpdateRepelCounter(void) VarSet(VAR_REPEL_STEP_COUNT, steps); if (steps == 0) { - ScriptContext1_SetupScript(EventScript_RepelWoreOff); + ScriptContext_SetupScript(EventScript_RepelWoreOff); return TRUE; } } @@ -668,8 +662,7 @@ void SeedWildEncounterRng(u16 seed) static u16 WildEncounterRandom(void) { - sWildEncounterData.rngState *= 1103515245; - sWildEncounterData.rngState += 12345; + sWildEncounterData.rngState = ISO_RANDOMIZE2(sWildEncounterData.rngState); return sWildEncounterData.rngState >> 16; } diff --git a/src/wireless_communication_status_screen.c b/src/wireless_communication_status_screen.c index ec70c5dfe..c9ebe676d 100644 --- a/src/wireless_communication_status_screen.c +++ b/src/wireless_communication_status_screen.c @@ -101,11 +101,12 @@ static const struct WindowTemplate sWindowTemplates[] = { }, DUMMY_WIN_TEMPLATE }; -static const u8 *const gUnknown_846FA9C[] = { - gUnknown_841E2B4, - gUnknown_841E2BF, - gUnknown_841E2C9, - gUnknown_841E2D4 +// Unused +static const u8 *const sPlayersTextPtrs[] = { + gText_Dynamic0Players, + gText_Dynamic1Players, + gText_Dynamic2Players, + gText_Dynamic3Players }; static const u8 *const sHeaderTextPtrs[] = { diff --git a/sym_bss.txt b/sym_bss.txt index 63a52555c..9f50fd0a7 100644 --- a/sym_bss.txt +++ b/sym_bss.txt @@ -16,7 +16,7 @@ .include "src/tileset_anims.o" .include "src/sound.o" .include "src/field_effect.o" - .include "src/pokemon_storage_system_8.o" + .include "src/pokemon_storage_system_misc.o" .include "src/easy_chat.o" .include "src/link_rfu_2.o" .include "src/link_rfu_3.o" diff --git a/sym_ewram.txt b/sym_ewram.txt index 719497748..0dc0544c1 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -38,11 +38,10 @@ .include "src/scanline_effect.o" .include "src/option_menu.o" .include "src/trainer_card.o" - .include "src/pokemon_storage_system_2.o" - .include "src/pokemon_storage_system_3.o" - .include "src/pokemon_storage_system_5.o" - .include "src/pokemon_storage_system_7.o" - .include "src/pokemon_storage_system_8.o" + .include "src/pokemon_storage_system_menu.o" + .include "src/pokemon_storage_system_tasks.o" + .include "src/pokemon_storage_system_data.o" + .include "src/pokemon_storage_system_misc.o" .include "src/script_movement.o" .include "src/fldeff_cut.o" .include "src/item_menu_icons.o" @@ -55,7 +54,7 @@ .include "src/safari_zone.o" .include "src/item_use.o" .include "src/battle_anim_effects_1.o" - .include "src/dragon.o" + .include "src/battle_anim_dragon.o" .include "src/battle_anim_utility_funcs.o" .include "src/battle_intro.o" .include "src/easy_chat.o" @@ -84,7 +83,7 @@ .include "src/save_failed_screen.o" .include "src/clear_save_data_screen.o" .include "src/new_menu_helpers.o" - .include "src/box_party_pokemon_dropdown.o" + .include "src/tilemap_util.o" .include "src/map_preview_screen.o" .include "src/link_rfu_2.o" .include "src/link_rfu_3.o" @@ -126,8 +125,8 @@ .include "src/mevent_server_helpers.o" .include "src/mevent_client.o" .include "src/mevent_server.o" - .include "src/mevent_show_card.o" - .include "src/mevent_show_news.o" + .include "src/mystery_gift_show_card.o" + .include "src/mystery_gift_show_news.o" .include "src/seagallop.o" .include "src/pokemon_jump.o" .include "src/berry_crush.o" diff --git a/tools/jsonproc/jsonproc.cpp b/tools/jsonproc/jsonproc.cpp index f70c9131d..16bb4ac37 100644 --- a/tools/jsonproc/jsonproc.cpp +++ b/tools/jsonproc/jsonproc.cpp @@ -33,6 +33,7 @@ int main(int argc, char *argv[]) string outputFilepath = argv[3]; Environment env; + env.set_trim_blocks(true); // Add custom command callbacks. env.add_callback("doNotModifyHeader", 0, [jsonfilepath, templateFilepath](Arguments& args) { @@ -103,6 +104,19 @@ int main(int argc, char *argv[]) return args.at(0)->empty(); }); + env.add_callback("isEmptyString", 1, [](Arguments& args) { + return args.at(0)->get().empty(); + }); + + env.add_callback("cleanString", 1, [](Arguments& args) { + string badChars = ".'{} \n\t-_\u00e9"; + string str = args.at(0)->get(); + str.erase(remove_if(str.begin(), str.end(), [&badChars](const char &c) { + return badChars.find(c) != std::string::npos; + }), str.end()); + return str; + }); + try { env.write_with_json_file(templateFilepath, jsonfilepath, outputFilepath); diff --git a/tools/mapjson/mapjson.cpp b/tools/mapjson/mapjson.cpp index 0b07f1208..0060920a8 100644 --- a/tools/mapjson/mapjson.cpp +++ b/tools/mapjson/mapjson.cpp @@ -200,7 +200,7 @@ string generate_map_events_text(Json map_data) { << warp_event["x"].int_value() << ", " << warp_event["y"].int_value() << ", " << warp_event["elevation"].int_value() << ", " - << warp_event["dest_warp_id"].int_value() << ", " + << warp_event["dest_warp_id"].string_value() << ", " << warp_event["dest_map"].string_value() << "\n"; } text << "\n"; @@ -288,19 +288,28 @@ string generate_firered_map_events_text(Json map_data) { text << objects_label << "::\n"; for (unsigned int i = 0; i < map_data["object_events"].array_items().size(); i++) { auto obj_event = map_data["object_events"].array_items()[i]; - text << "\tobject_event " << i + 1 << ", " - << obj_event["graphics_id"].string_value() << ", " - << (obj_event["in_connection"].bool_value() ? 255 : 0) << ", " - << obj_event["x"].int_value() << ", " - << obj_event["y"].int_value() << ", " - << obj_event["elevation"].int_value() << ", " - << obj_event["movement_type"].string_value() << ", " - << obj_event["movement_range_x"].int_value() << ", " - << obj_event["movement_range_y"].int_value() << ", " - << obj_event["trainer_type"].string_value() << ", " - << obj_event["trainer_sight_or_berry_tree_id"].string_value() << ", " - << obj_event["script"].string_value() << ", " - << obj_event["flag"].string_value() << "\n"; + string type = obj_event["type"].string_value(); + if (type == "object") { + text << "\tobject_event " << i + 1 << ", " + << obj_event["graphics_id"].string_value() << ", " + << obj_event["x"].int_value() << ", " + << obj_event["y"].int_value() << ", " + << obj_event["elevation"].int_value() << ", " + << obj_event["movement_type"].string_value() << ", " + << obj_event["movement_range_x"].int_value() << ", " + << obj_event["movement_range_y"].int_value() << ", " + << obj_event["trainer_type"].string_value() << ", " + << obj_event["trainer_sight_or_berry_tree_id"].string_value() << ", " + << obj_event["script"].string_value() << ", " + << obj_event["flag"].string_value() << "\n"; + } else if (type == "clone") { + text << "\tclone_event " << i + 1 << ", " + << obj_event["graphics_id"].string_value() << ", " + << obj_event["x"].int_value() << ", " + << obj_event["y"].int_value() << ", " + << obj_event["target_local_id"].int_value() << ", " + << obj_event["target_map"].string_value() << "\n"; + } } text << "\n"; } else { @@ -315,7 +324,7 @@ string generate_firered_map_events_text(Json map_data) { << warp_event["x"].int_value() << ", " << warp_event["y"].int_value() << ", " << warp_event["elevation"].int_value() << ", " - << warp_event["dest_warp_id"].int_value() << ", " + << warp_event["dest_warp_id"].string_value() << ", " << warp_event["dest_map"].string_value() << "\n"; } text << "\n"; @@ -331,9 +340,9 @@ string generate_firered_map_events_text(Json map_data) { text << "\tcoord_event " << coord_event["x"].int_value() << ", " << coord_event["y"].int_value() << ", " - << coord_event["elevation"].int_value() << ", 0, " + << coord_event["elevation"].int_value() << ", " << coord_event["var"].string_value() << ", " - << coord_event["var_value"].string_value() << ", 0, " + << coord_event["var_value"].string_value() << ", " << coord_event["script"].string_value() << "\n"; } else if (coord_event["type"] == "weather") { @@ -354,11 +363,11 @@ string generate_firered_map_events_text(Json map_data) { text << bgs_label << "::\n"; for (auto &bg_event : map_data["bg_events"].array_items()) { if (bg_event["type"] == "sign") { - text << "\tbg_event " + text << "\tbg_sign_event " << bg_event["x"].int_value() << ", " << bg_event["y"].int_value() << ", " << bg_event["elevation"].int_value() << ", " - << bg_event["player_facing_dir"].string_value() << ", 0," + << bg_event["player_facing_dir"].string_value() << ", " << bg_event["script"].string_value() << "\n"; } else if (bg_event["type"] == "hidden_item") {