Merge branch 'master' of github.com:pret/pokeemerald into battle_engine_sync

This commit is contained in:
ultima-soul 2021-11-27 21:38:26 -08:00
commit 0312c5be8b
477 changed files with 10069 additions and 9551 deletions

View File

@ -63,14 +63,14 @@ while (my $line = <$file>)
# though. Uniq is pretty fast!
my $base_cmd = "nm $elffname | awk '{print \$3}' | grep '^[^_].\\{4\\}' | uniq";
# This looks for Unknown_, Unknown_, or sub_, followed by just numbers. Note that
# This looks for Unknown_, Unknown_, or sub_, followed by an address. Note that
# it matches even if stuff precedes the unknown, like sUnknown/gUnknown.
my $undoc_cmd = "grep '[Uu]nknown_[0-9a-fA-F]*\\|sub_[0-9a-fA-F]*'";
my $undoc_cmd = "grep '[Uu]nknown_[0-9a-fA-F]\\{5,7\\}\\|sub_[0-9a-fA-F]\\{5,7\\}'";
# This looks for every symbol with an address at the end of it. Some things are
# given a name based on their type / location, but still have an unknown purpose.
# For example, FooMap_EventScript_FFFFFFF.
my $partial_doc_cmd = "grep '_[0-28][0-9a-fA-F]\\{5,6\\}'";
my $partial_doc_cmd = "grep '_[0-28][0-9a-fA-F]\\{5,7\\}'";
my $count_cmd = "wc -l";
@ -104,16 +104,19 @@ my $partial_documented_as_string;
# Performing addition on a string converts it to a number. Any string that fails
# to convert to a number becomes 0. So if our converted number is 0, but our string
# is nonzero, then the conversion was an error.
$undocumented_as_string =~ s/^\s+|\s+$//g;
my $undocumented = $undocumented_as_string + 0;
(($undocumented != 0) and ($undocumented_as_string ne "0"))
(($undocumented != 0) or (($undocumented == 0) and ($undocumented_as_string eq "0")))
or die "ERROR: Cannot convert string to num: '$undocumented_as_string'";
$partial_documented_as_string =~ s/^\s+|\s+$//g;
my $partial_documented = $partial_documented_as_string + 0;
(($partial_documented != 0) and ($partial_documented_as_string ne "0"))
(($partial_documented != 0) or (($partial_documented == 0) and ($partial_documented_as_string eq "0")))
or die "ERROR: Cannot convert string to num: '$partial_documented_as_string'";
$total_syms_as_string =~ s/^\s+|\s+$//g;
my $total_syms = $total_syms_as_string + 0;
(($total_syms != 0) and ($total_syms_as_string ne "0"))
(($total_syms != 0) or (($total_syms == 0) and ($total_syms_as_string eq "0")))
or die "ERROR: Cannot convert string to num: '$total_syms_as_string'";
($total_syms != 0)

View File

@ -334,10 +334,10 @@
.byte 0x30
.endm
@ Plays the specified (fanfare_number) fanfare.
.macro playfanfare fanfare_number:req
@ Plays the fanfare specified by the song number. If the specified song is not a fanfare it will instead play the first song in sFanfares.
.macro playfanfare songNumber:req
.byte 0x31
.2byte \fanfare_number
.2byte \songNumber
.endm
@ Blocks script execution until all currently-playing fanfares finish.
@ -1208,10 +1208,10 @@
.endm
@ Plays the specified (species) Pokemon's cry. You can use waitcry to block script execution until the sound finishes.
.macro playmoncry species:req, effect:req
.macro playmoncry species:req, mode:req
.byte 0xa1
.2byte \species
.2byte \effect
.2byte \mode
.endm
@ Changes the metatile at (x, y) on the current map.

View File

@ -1,131 +1,166 @@
.macro create_movement_action name
enum _\name
.macro create_movement_action name:req, value:req
.macro \name
.byte _\name
.byte \value
.endm
.endm
enum_start
create_movement_action face_down
create_movement_action face_up
create_movement_action face_left
create_movement_action face_right
create_movement_action walk_slow_down
create_movement_action walk_slow_up
create_movement_action walk_slow_left
create_movement_action walk_slow_right
create_movement_action walk_down
create_movement_action walk_up
create_movement_action walk_left
create_movement_action walk_right
create_movement_action jump_2_down
create_movement_action jump_2_up
create_movement_action jump_2_left
create_movement_action jump_2_right
create_movement_action delay_1
create_movement_action delay_2
create_movement_action delay_4
create_movement_action delay_8
create_movement_action delay_16
create_movement_action walk_fast_down
create_movement_action walk_fast_up
create_movement_action walk_fast_left
create_movement_action walk_fast_right
create_movement_action walk_in_place_slow_down
create_movement_action walk_in_place_slow_up
create_movement_action walk_in_place_slow_left
create_movement_action walk_in_place_slow_right
create_movement_action walk_in_place_down
create_movement_action walk_in_place_up
create_movement_action walk_in_place_left
create_movement_action walk_in_place_right
create_movement_action walk_in_place_fast_down
create_movement_action walk_in_place_fast_up
create_movement_action walk_in_place_fast_left
create_movement_action walk_in_place_fast_right
create_movement_action walk_in_place_faster_down
create_movement_action walk_in_place_faster_up
create_movement_action walk_in_place_faster_left
create_movement_action walk_in_place_faster_right
create_movement_action ride_water_current_down
create_movement_action ride_water_current_up
create_movement_action ride_water_current_left
create_movement_action ride_water_current_right
create_movement_action walk_faster_down
create_movement_action walk_faster_up
create_movement_action walk_faster_left
create_movement_action walk_faster_right
create_movement_action slide_down
create_movement_action slide_up
create_movement_action slide_left
create_movement_action slide_right
create_movement_action player_run_down
create_movement_action player_run_up
create_movement_action player_run_left
create_movement_action player_run_right
create_movement_action start_anim_in_direction
create_movement_action jump_special_down
create_movement_action jump_special_up
create_movement_action jump_special_left
create_movement_action jump_special_right
create_movement_action face_player
create_movement_action face_away_player
create_movement_action lock_facing_direction
create_movement_action unlock_facing_direction
create_movement_action jump_down
create_movement_action jump_up
create_movement_action jump_left
create_movement_action jump_right
create_movement_action jump_in_place_down
create_movement_action jump_in_place_up
create_movement_action jump_in_place_left
create_movement_action jump_in_place_right
create_movement_action jump_in_place_down_up
create_movement_action jump_in_place_up_down
create_movement_action jump_in_place_left_right
create_movement_action jump_in_place_right_left
create_movement_action face_original_direction
create_movement_action nurse_joy_bow
create_movement_action enable_jump_landing_ground_effect
create_movement_action disable_jump_landing_ground_effect
create_movement_action disable_anim
create_movement_action restore_anim
create_movement_action set_invisible
create_movement_action set_visible
create_movement_action emote_exclamation_mark
create_movement_action emote_question_mark
create_movement_action emote_heart
create_movement_action reveal_trainer
create_movement_action rock_smash_break
create_movement_action cut_tree
create_movement_action set_fixed_priority
create_movement_action clear_fixed_priority
create_movement_action init_affine_anim
create_movement_action clear_affine_anim
create_movement_action hide_reflection
create_movement_action show_reflection
create_movement_action walk_down_start_affine
create_movement_action walk_down_affine
create_movement_action face_down, MOVEMENT_ACTION_FACE_DOWN
create_movement_action face_up, MOVEMENT_ACTION_FACE_UP
create_movement_action face_left, MOVEMENT_ACTION_FACE_LEFT
create_movement_action face_right, MOVEMENT_ACTION_FACE_RIGHT
create_movement_action walk_slow_down, MOVEMENT_ACTION_WALK_SLOW_DOWN
create_movement_action walk_slow_up, MOVEMENT_ACTION_WALK_SLOW_UP
create_movement_action walk_slow_left, MOVEMENT_ACTION_WALK_SLOW_LEFT
create_movement_action walk_slow_right, MOVEMENT_ACTION_WALK_SLOW_RIGHT
create_movement_action walk_down, MOVEMENT_ACTION_WALK_NORMAL_DOWN
create_movement_action walk_up, MOVEMENT_ACTION_WALK_NORMAL_UP
create_movement_action walk_left, MOVEMENT_ACTION_WALK_NORMAL_LEFT
create_movement_action walk_right, MOVEMENT_ACTION_WALK_NORMAL_RIGHT
create_movement_action jump_2_down, MOVEMENT_ACTION_JUMP_2_DOWN
create_movement_action jump_2_up, MOVEMENT_ACTION_JUMP_2_UP
create_movement_action jump_2_left, MOVEMENT_ACTION_JUMP_2_LEFT
create_movement_action jump_2_right, MOVEMENT_ACTION_JUMP_2_RIGHT
create_movement_action delay_1, MOVEMENT_ACTION_DELAY_1
create_movement_action delay_2, MOVEMENT_ACTION_DELAY_2
create_movement_action delay_4, MOVEMENT_ACTION_DELAY_4
create_movement_action delay_8, MOVEMENT_ACTION_DELAY_8
create_movement_action delay_16, MOVEMENT_ACTION_DELAY_16
create_movement_action walk_fast_down, MOVEMENT_ACTION_WALK_FAST_DOWN
create_movement_action walk_fast_up, MOVEMENT_ACTION_WALK_FAST_UP
create_movement_action walk_fast_left, MOVEMENT_ACTION_WALK_FAST_LEFT
create_movement_action walk_fast_right, MOVEMENT_ACTION_WALK_FAST_RIGHT
create_movement_action walk_in_place_slow_down, MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_DOWN
create_movement_action walk_in_place_slow_up, MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_UP
create_movement_action walk_in_place_slow_left, MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_LEFT
create_movement_action walk_in_place_slow_right, MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_RIGHT
create_movement_action walk_in_place_down, MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_DOWN
create_movement_action walk_in_place_up, MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_UP
create_movement_action walk_in_place_left, MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_LEFT
create_movement_action walk_in_place_right, MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_RIGHT
create_movement_action walk_in_place_fast_down, MOVEMENT_ACTION_WALK_IN_PLACE_FAST_DOWN
create_movement_action walk_in_place_fast_up, MOVEMENT_ACTION_WALK_IN_PLACE_FAST_UP
create_movement_action walk_in_place_fast_left, MOVEMENT_ACTION_WALK_IN_PLACE_FAST_LEFT
create_movement_action walk_in_place_fast_right, MOVEMENT_ACTION_WALK_IN_PLACE_FAST_RIGHT
create_movement_action walk_in_place_faster_down, MOVEMENT_ACTION_WALK_IN_PLACE_FASTER_DOWN
create_movement_action walk_in_place_faster_up, MOVEMENT_ACTION_WALK_IN_PLACE_FASTER_UP
create_movement_action walk_in_place_faster_left, MOVEMENT_ACTION_WALK_IN_PLACE_FASTER_LEFT
create_movement_action walk_in_place_faster_right, MOVEMENT_ACTION_WALK_IN_PLACE_FASTER_RIGHT
create_movement_action ride_water_current_down, MOVEMENT_ACTION_RIDE_WATER_CURRENT_DOWN
create_movement_action ride_water_current_up, MOVEMENT_ACTION_RIDE_WATER_CURRENT_UP
create_movement_action ride_water_current_left, MOVEMENT_ACTION_RIDE_WATER_CURRENT_LEFT
create_movement_action ride_water_current_right, MOVEMENT_ACTION_RIDE_WATER_CURRENT_RIGHT
create_movement_action walk_faster_down, MOVEMENT_ACTION_WALK_FASTER_DOWN
create_movement_action walk_faster_up, MOVEMENT_ACTION_WALK_FASTER_UP
create_movement_action walk_faster_left, MOVEMENT_ACTION_WALK_FASTER_LEFT
create_movement_action walk_faster_right, MOVEMENT_ACTION_WALK_FASTER_RIGHT
create_movement_action slide_down, MOVEMENT_ACTION_SLIDE_DOWN
create_movement_action slide_up, MOVEMENT_ACTION_SLIDE_UP
create_movement_action slide_left, MOVEMENT_ACTION_SLIDE_LEFT
create_movement_action slide_right, MOVEMENT_ACTION_SLIDE_RIGHT
create_movement_action player_run_down, MOVEMENT_ACTION_PLAYER_RUN_DOWN
create_movement_action player_run_up, MOVEMENT_ACTION_PLAYER_RUN_UP
create_movement_action player_run_left, MOVEMENT_ACTION_PLAYER_RUN_LEFT
create_movement_action player_run_right, MOVEMENT_ACTION_PLAYER_RUN_RIGHT
create_movement_action start_anim_in_direction, MOVEMENT_ACTION_START_ANIM_IN_DIRECTION
create_movement_action jump_special_down, MOVEMENT_ACTION_JUMP_SPECIAL_DOWN
create_movement_action jump_special_up, MOVEMENT_ACTION_JUMP_SPECIAL_UP
create_movement_action jump_special_left, MOVEMENT_ACTION_JUMP_SPECIAL_LEFT
create_movement_action jump_special_right, MOVEMENT_ACTION_JUMP_SPECIAL_RIGHT
create_movement_action face_player, MOVEMENT_ACTION_FACE_PLAYER
create_movement_action face_away_player, MOVEMENT_ACTION_FACE_AWAY_PLAYER
create_movement_action lock_facing_direction, MOVEMENT_ACTION_LOCK_FACING_DIRECTION
create_movement_action unlock_facing_direction, MOVEMENT_ACTION_UNLOCK_FACING_DIRECTION
create_movement_action jump_down, MOVEMENT_ACTION_JUMP_DOWN
create_movement_action jump_up, MOVEMENT_ACTION_JUMP_UP
create_movement_action jump_left, MOVEMENT_ACTION_JUMP_LEFT
create_movement_action jump_right, MOVEMENT_ACTION_JUMP_RIGHT
create_movement_action jump_in_place_down, MOVEMENT_ACTION_JUMP_IN_PLACE_DOWN
create_movement_action jump_in_place_up, MOVEMENT_ACTION_JUMP_IN_PLACE_UP
create_movement_action jump_in_place_left, MOVEMENT_ACTION_JUMP_IN_PLACE_LEFT
create_movement_action jump_in_place_right, MOVEMENT_ACTION_JUMP_IN_PLACE_RIGHT
create_movement_action jump_in_place_down_up, MOVEMENT_ACTION_JUMP_IN_PLACE_DOWN_UP
create_movement_action jump_in_place_up_down, MOVEMENT_ACTION_JUMP_IN_PLACE_UP_DOWN
create_movement_action jump_in_place_left_right, MOVEMENT_ACTION_JUMP_IN_PLACE_LEFT_RIGHT
create_movement_action jump_in_place_right_left, MOVEMENT_ACTION_JUMP_IN_PLACE_RIGHT_LEFT
create_movement_action face_original_direction, MOVEMENT_ACTION_FACE_ORIGINAL_DIRECTION
create_movement_action nurse_joy_bow, MOVEMENT_ACTION_NURSE_JOY_BOW_DOWN
create_movement_action enable_jump_landing_ground_effect, MOVEMENT_ACTION_ENABLE_JUMP_LANDING_GROUND_EFFECT
create_movement_action disable_jump_landing_ground_effect, MOVEMENT_ACTION_DISABLE_JUMP_LANDING_GROUND_EFFECT
create_movement_action disable_anim, MOVEMENT_ACTION_DISABLE_ANIMATION
create_movement_action restore_anim, MOVEMENT_ACTION_RESTORE_ANIMATION
create_movement_action set_invisible, MOVEMENT_ACTION_SET_INVISIBLE
create_movement_action set_visible, MOVEMENT_ACTION_SET_VISIBLE
create_movement_action emote_exclamation_mark, MOVEMENT_ACTION_EMOTE_EXCLAMATION_MARK
create_movement_action emote_question_mark, MOVEMENT_ACTION_EMOTE_QUESTION_MARK
create_movement_action emote_heart, MOVEMENT_ACTION_EMOTE_HEART
create_movement_action reveal_trainer, MOVEMENT_ACTION_REVEAL_TRAINER
create_movement_action rock_smash_break, MOVEMENT_ACTION_ROCK_SMASH_BREAK
create_movement_action cut_tree, MOVEMENT_ACTION_CUT_TREE
create_movement_action set_fixed_priority, MOVEMENT_ACTION_SET_FIXED_PRIORITY
create_movement_action clear_fixed_priority, MOVEMENT_ACTION_CLEAR_FIXED_PRIORITY
create_movement_action init_affine_anim, MOVEMENT_ACTION_INIT_AFFINE_ANIM
create_movement_action clear_affine_anim, MOVEMENT_ACTION_CLEAR_AFFINE_ANIM
create_movement_action hide_reflection, MOVEMENT_ACTION_HIDE_REFLECTION
create_movement_action show_reflection, MOVEMENT_ACTION_SHOW_REFLECTION
create_movement_action walk_down_start_affine, MOVEMENT_ACTION_WALK_DOWN_START_AFFINE
create_movement_action walk_down_affine, MOVEMENT_ACTION_WALK_DOWN_AFFINE
create_movement_action acro_wheelie_face_down, MOVEMENT_ACTION_ACRO_WHEELIE_FACE_DOWN
create_movement_action acro_wheelie_face_up, MOVEMENT_ACTION_ACRO_WHEELIE_FACE_UP
create_movement_action acro_wheelie_face_left, MOVEMENT_ACTION_ACRO_WHEELIE_FACE_LEFT
create_movement_action acro_wheelie_face_right, MOVEMENT_ACTION_ACRO_WHEELIE_FACE_RIGHT
create_movement_action acro_pop_wheelie_down, MOVEMENT_ACTION_ACRO_POP_WHEELIE_DOWN
create_movement_action acro_pop_wheelie_up, MOVEMENT_ACTION_ACRO_POP_WHEELIE_UP
create_movement_action acro_pop_wheelie_left, MOVEMENT_ACTION_ACRO_POP_WHEELIE_LEFT
create_movement_action acro_pop_wheelie_right, MOVEMENT_ACTION_ACRO_POP_WHEELIE_RIGHT
create_movement_action acro_end_wheelie_face_down, MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_DOWN
create_movement_action acro_end_wheelie_face_up, MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_UP
create_movement_action acro_end_wheelie_face_left, MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_LEFT
create_movement_action acro_end_wheelie_face_right, MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_RIGHT
create_movement_action acro_wheelie_hop_face_down, MOVEMENT_ACTION_ACRO_WHEELIE_HOP_FACE_DOWN
create_movement_action acro_wheelie_hop_face_up, MOVEMENT_ACTION_ACRO_WHEELIE_HOP_FACE_UP
create_movement_action acro_wheelie_hop_face_left, MOVEMENT_ACTION_ACRO_WHEELIE_HOP_FACE_LEFT
create_movement_action acro_wheelie_hop_face_right, MOVEMENT_ACTION_ACRO_WHEELIE_HOP_FACE_RIGHT
create_movement_action acro_wheelie_hop_down, MOVEMENT_ACTION_ACRO_WHEELIE_HOP_DOWN
create_movement_action acro_wheelie_hop_up, MOVEMENT_ACTION_ACRO_WHEELIE_HOP_UP
create_movement_action acro_wheelie_hop_left, MOVEMENT_ACTION_ACRO_WHEELIE_HOP_LEFT
create_movement_action acro_wheelie_hop_right, MOVEMENT_ACTION_ACRO_WHEELIE_HOP_RIGHT
create_movement_action acro_wheelie_jump_down, MOVEMENT_ACTION_ACRO_WHEELIE_JUMP_DOWN
create_movement_action acro_wheelie_jump_up, MOVEMENT_ACTION_ACRO_WHEELIE_JUMP_UP
create_movement_action acro_wheelie_jump_left, MOVEMENT_ACTION_ACRO_WHEELIE_JUMP_LEFT
create_movement_action acro_wheelie_jump_right, MOVEMENT_ACTION_ACRO_WHEELIE_JUMP_RIGHT
create_movement_action acro_wheelie_in_place_down, MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_DOWN
create_movement_action acro_wheelie_in_place_up, MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_UP
create_movement_action acro_wheelie_in_place_left, MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_LEFT
create_movement_action acro_wheelie_in_place_right, MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_RIGHT
create_movement_action acro_pop_wheelie_move_down, MOVEMENT_ACTION_ACRO_POP_WHEELIE_MOVE_DOWN
create_movement_action acro_pop_wheelie_move_up, MOVEMENT_ACTION_ACRO_POP_WHEELIE_MOVE_UP
create_movement_action acro_pop_wheelie_move_left, MOVEMENT_ACTION_ACRO_POP_WHEELIE_MOVE_LEFT
create_movement_action acro_pop_wheelie_move_right, MOVEMENT_ACTION_ACRO_POP_WHEELIE_MOVE_RIGHT
create_movement_action acro_wheelie_move_down, MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_DOWN
create_movement_action acro_wheelie_move_up, MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_UP
create_movement_action acro_wheelie_move_left, MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_LEFT
create_movement_action acro_wheelie_move_right, MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_RIGHT
create_movement_action acro_end_wheelie_move_down, MOVEMENT_ACTION_ACRO_END_WHEELIE_MOVE_DOWN
create_movement_action acro_end_wheelie_move_up, MOVEMENT_ACTION_ACRO_END_WHEELIE_MOVE_UP
create_movement_action acro_end_wheelie_move_left, MOVEMENT_ACTION_ACRO_END_WHEELIE_MOVE_LEFT
create_movement_action acro_end_wheelie_move_right, MOVEMENT_ACTION_ACRO_END_WHEELIE_MOVE_RIGHT
create_movement_action walk_diag_northwest, MOVEMENT_ACTION_WALK_NORMAL_DIAGONAL_UP_LEFT
create_movement_action walk_diag_northeast, MOVEMENT_ACTION_WALK_NORMAL_DIAGONAL_UP_RIGHT
create_movement_action walk_diag_southwest, MOVEMENT_ACTION_WALK_NORMAL_DIAGONAL_DOWN_LEFT
create_movement_action walk_diag_southeast, MOVEMENT_ACTION_WALK_NORMAL_DIAGONAL_DOWN_RIGHT
create_movement_action walk_slow_diag_northwest, MOVEMENT_ACTION_WALK_SLOW_DIAGONAL_UP_LEFT
create_movement_action walk_slow_diag_northeast, MOVEMENT_ACTION_WALK_SLOW_DIAGONAL_UP_RIGHT
create_movement_action walk_slow_diag_southwest, MOVEMENT_ACTION_WALK_SLOW_DIAGONAL_DOWN_LEFT
create_movement_action walk_slow_diag_southeast, MOVEMENT_ACTION_WALK_SLOW_DIAGONAL_DOWN_RIGHT
create_movement_action store_lock_anim, MOVEMENT_ACTION_STORE_AND_LOCK_ANIM
create_movement_action free_unlock_anim, MOVEMENT_ACTION_FREE_AND_UNLOCK_ANIM
create_movement_action walk_left_affine, MOVEMENT_ACTION_WALK_LEFT_AFFINE
create_movement_action walk_right_affine, MOVEMENT_ACTION_WALK_RIGHT_AFFINE
create_movement_action levitate, MOVEMENT_ACTION_LEVITATE
create_movement_action stop_levitate, MOVEMENT_ACTION_STOP_LEVITATE
create_movement_action destroy_extra_task, MOVEMENT_ACTION_STOP_LEVITATE_AT_TOP
create_movement_action figure_8, MOVEMENT_ACTION_FIGURE_8
create_movement_action fly_up, MOVEMENT_ACTION_FLY_UP
create_movement_action fly_down, MOVEMENT_ACTION_FLY_DOWN
enum_start 0x8C
create_movement_action walk_diag_northwest
create_movement_action walk_diag_northeast
create_movement_action walk_diag_southwest
create_movement_action walk_diag_southeast
create_movement_action walk_slow_diag_northwest
create_movement_action walk_slow_diag_northeast
create_movement_action walk_slow_diag_southwest
create_movement_action walk_slow_diag_southeast
create_movement_action store_lock_anim
create_movement_action free_unlock_anim
create_movement_action walk_left_affine
create_movement_action walk_right_affine
create_movement_action levitate
create_movement_action stop_levitate
create_movement_action destroy_extra_task
create_movement_action figure_8
create_movement_action fly_up
create_movement_action fly_down
enum_start 0xfe
create_movement_action step_end
create_movement_action step_end, MOVEMENT_ACTION_STEP_END

View File

@ -145,7 +145,7 @@
.byte 0xff, 0, 0xff, 0
.endm
.macro cry2 sample:req
.macro cry_reverse sample:req
.byte 0x30, 60, 0, 0
.4byte \sample
.byte 0xff, 0, 0xff, 0

View File

@ -3,11 +3,11 @@ gLastSaveCounter
gLastKnownGoodSector
gDamagedSaveSectors
gSaveCounter
gFastSaveSection
gUnknown_03006208
gReadWriteSector
gIncrementalSectorId
gSaveUnusedVar
gSaveFileStatus
gGameContinueCallback
gRamSaveSectionLocations
gRamSaveSectorLocations
gSaveUnusedVar2
gSaveAttemptStatus

View File

@ -2,6 +2,7 @@
#include "constants/battle_anim.h"
#include "constants/rgb.h"
#include "constants/songs.h"
#include "constants/sound.h"
#include "constants/moves.h"
#include "constants/pokemon.h"
#include "constants/items.h"
@ -18776,7 +18777,7 @@ Move_ROAR:
monbg ANIM_ATTACKER
splitbgprio ANIM_ATTACKER
setalpha 8, 8
createvisualtask SoundTask_PlayDoubleCry, 2, ANIM_ATTACKER, 2
createvisualtask SoundTask_PlayDoubleCry, 2, ANIM_ATTACKER, DOUBLE_CRY_ROAR
createvisualtask AnimTask_ScaleMonAndRestore, 5, -5, -5, 10, ANIM_ATTACKER, 1
call RoarEffect
delay 20
@ -18801,7 +18802,7 @@ RoarEffect:
Move_GROWL:
loadspritegfx ANIM_TAG_NOISE_LINE
createvisualtask SoundTask_PlayDoubleCry, 2, ANIM_ATTACKER, 255
createvisualtask SoundTask_PlayDoubleCry, 2, ANIM_ATTACKER, DOUBLE_CRY_GROWL
call RoarEffect
delay 10
createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 1, 0, 9, 1
@ -22303,14 +22304,15 @@ Move_BLAZE_KICK:
Move_HYPER_VOICE:
loadspritegfx ANIM_TAG_THIN_RING
createvisualtask SoundTask_PlayCryWithEcho, 5, 0
createvisualtask SoundTask_PlayCryWithEcho, 5, FALSE
call HyperVoiceEffect
waitforvisualfinish
delay 8
createvisualtask SoundTask_PlayCryWithEcho, 5, 1
createvisualtask SoundTask_PlayCryWithEcho, 5, TRUE
call HyperVoiceEffect
waitforvisualfinish
end
HyperVoiceEffect:
createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, 31, 3, 8, 0, RGB_YELLOW
createvisualtask AnimTask_ScaleMonAndRestore, 5, -5, -5, 5, ANIM_ATTACKER, 0

View File

@ -45,6 +45,7 @@
#include "constants/script_menu.h"
#include "constants/secret_bases.h"
#include "constants/songs.h"
#include "constants/sound.h"
#include "constants/species.h"
#include "constants/trade.h"
#include "constants/trainer_hill.h"

View File

@ -59,7 +59,7 @@ AncientTomb_EventScript_Registeel::
lock
faceplayer
waitse
playmoncry SPECIES_REGISTEEL, 2
playmoncry SPECIES_REGISTEEL, CRY_MODE_ENCOUNTER
delay 40
waitmoncry
setwildbattle SPECIES_REGISTEEL, 40, ITEM_NONE

View File

@ -32,7 +32,7 @@ AquaHideout_B1F_EventScript_Electrode1::
faceplayer
setwildbattle SPECIES_ELECTRODE, 30, ITEM_NONE
waitse
playmoncry SPECIES_ELECTRODE, 2
playmoncry SPECIES_ELECTRODE, CRY_MODE_ENCOUNTER
delay 40
waitmoncry
setflag FLAG_SYS_CTRL_OBJ_DELETE
@ -59,7 +59,7 @@ AquaHideout_B1F_EventScript_Electrode2::
faceplayer
setwildbattle SPECIES_ELECTRODE, 30, ITEM_NONE
waitse
playmoncry SPECIES_ELECTRODE, 2
playmoncry SPECIES_ELECTRODE, CRY_MODE_ENCOUNTER
delay 40
waitmoncry
setflag FLAG_SYS_CTRL_OBJ_DELETE

View File

@ -303,7 +303,7 @@ BattleFrontier_BattlePikeRoomNormal_EventScript_KirliaAttack::
msgbox BattleFrontier_BattlePikeRoomNormal_Text_KirliaStop, MSGBOX_DEFAULT
closemessage
waitse
playmoncry SPECIES_KIRLIA, 0
playmoncry SPECIES_KIRLIA, CRY_MODE_NORMAL
waitmoncry
pike_getstatus
compare VAR_RESULT, PIKE_STATUS_TOXIC
@ -321,11 +321,11 @@ BattleFrontier_BattlePikeRoomNormal_EventScript_KirliaAttack::
applymovement LOCALID_OBJ_1, BattleFrontier_BattlePikeRoomNormal_Movement_MonFaceNPC
waitmovement 0
waitse
playmoncry SPECIES_KIRLIA, 0
playmoncry SPECIES_KIRLIA, CRY_MODE_NORMAL
waitmoncry
msgbox BattleFrontier_BattlePikeRoomNormal_Text_ThatsEnough, MSGBOX_DEFAULT
waitse
playmoncry SPECIES_KIRLIA, 0
playmoncry SPECIES_KIRLIA, CRY_MODE_NORMAL
waitmoncry
closemessage
applymovement LOCALID_OBJ_1, BattleFrontier_BattlePikeRoomNormal_Movement_MonMoveAside
@ -338,7 +338,7 @@ BattleFrontier_BattlePikeRoomNormal_EventScript_DusclopsAttack::
msgbox BattleFrontier_BattlePikeRoomNormal_Text_DusclopsStop, MSGBOX_DEFAULT
closemessage
waitse
playmoncry SPECIES_DUSCLOPS, 0
playmoncry SPECIES_DUSCLOPS, CRY_MODE_NORMAL
waitmoncry
pike_getstatus
compare VAR_RESULT, PIKE_STATUS_FREEZE
@ -352,11 +352,11 @@ BattleFrontier_BattlePikeRoomNormal_EventScript_DusclopsAttack::
applymovement LOCALID_OBJ_1, BattleFrontier_BattlePikeRoomNormal_Movement_MonFaceNPC
waitmovement 0
waitse
playmoncry SPECIES_DUSCLOPS, 0
playmoncry SPECIES_DUSCLOPS, CRY_MODE_NORMAL
waitmoncry
msgbox BattleFrontier_BattlePikeRoomNormal_Text_ThatsEnough, MSGBOX_DEFAULT
waitse
playmoncry SPECIES_DUSCLOPS, 0
playmoncry SPECIES_DUSCLOPS, CRY_MODE_NORMAL
waitmoncry
closemessage
applymovement LOCALID_OBJ_1, BattleFrontier_BattlePikeRoomNormal_Movement_MonMoveAside

View File

@ -72,7 +72,7 @@ BattleFrontier_OutsideEast_EventScript_Zigzagoon::
lock
faceplayer
waitse
playmoncry SPECIES_ZIGZAGOON, 0
playmoncry SPECIES_ZIGZAGOON, CRY_MODE_NORMAL
msgbox BattleFrontier_OutsideEast_Text_ZigzagoonLooksVacant, MSGBOX_DEFAULT
waitmoncry
release
@ -126,7 +126,7 @@ BattleFrontier_OutsideEast_EventScript_WaterSudowoodo::
msgbox gText_Sudowoodo_Attacked, MSGBOX_DEFAULT
closemessage
waitse
playmoncry SPECIES_SUDOWOODO, 2
playmoncry SPECIES_SUDOWOODO, CRY_MODE_ENCOUNTER
delay 40
waitmoncry
setvar VAR_LAST_TALKED, LOCALID_SUDOWOODO

View File

@ -33,7 +33,7 @@ BattleFrontier_PokemonCenter_1F_EventScript_Skitty::
lock
faceplayer
waitse
playmoncry SPECIES_SKITTY, 0
playmoncry SPECIES_SKITTY, CRY_MODE_NORMAL
msgbox BattleFrontier_PokemonCenter_1F_Text_Skitty, MSGBOX_DEFAULT
waitmoncry
release

View File

@ -79,7 +79,7 @@ BirthIsland_Exterior_EventScript_Deoxys::
applymovement LOCALID_DEOXYS, BirthIsland_Exterior_Movement_DeoxysApproach
waitmovement 0
waitse
playmoncry SPECIES_DEOXYS, 2
playmoncry SPECIES_DEOXYS, CRY_MODE_ENCOUNTER
delay 40
waitmoncry
setvar VAR_LAST_TALKED, LOCALID_DEOXYS

View File

@ -59,7 +59,7 @@ DesertRuins_EventScript_Regirock::
lock
faceplayer
waitse
playmoncry SPECIES_REGIROCK, 2
playmoncry SPECIES_REGIROCK, CRY_MODE_ENCOUNTER
delay 40
waitmoncry
setwildbattle SPECIES_REGIROCK, 40, ITEM_NONE

View File

@ -13,7 +13,7 @@ DewfordTown_House1_EventScript_Zigzagoon::
lock
faceplayer
waitse
playmoncry SPECIES_ZIGZAGOON, 0
playmoncry SPECIES_ZIGZAGOON, CRY_MODE_NORMAL
msgbox DewfordTown_House1_Text_Zigzagoon, MSGBOX_DEFAULT
waitmoncry
release

View File

@ -33,7 +33,7 @@ FallarborTown_EventScript_Azurill::
lock
faceplayer
waitse
playmoncry SPECIES_AZURILL, 0
playmoncry SPECIES_AZURILL, CRY_MODE_NORMAL
msgbox FallarborTown_Text_Azurill, MSGBOX_DEFAULT
waitmoncry
release

View File

@ -41,7 +41,7 @@ FallarborTown_Mart_EventScript_Skitty::
lock
faceplayer
waitse
playmoncry SPECIES_SKITTY, 0
playmoncry SPECIES_SKITTY, CRY_MODE_NORMAL
msgbox FallarborTown_Mart_Text_Skitty, MSGBOX_DEFAULT
waitmoncry
release

View File

@ -126,7 +126,7 @@ FarawayIsland_Interior_EventScript_Mew::
special SetMewAboveGrass
message FarawayIsland_Interior_Text_Mew
waitse
playmoncry SPECIES_MEW, 2
playmoncry SPECIES_MEW, CRY_MODE_ENCOUNTER
compare VAR_FACING, DIR_NORTH
call_if_eq FarawayIsland_Interior_EventScript_FoundMewNorth
compare VAR_FACING, DIR_SOUTH

View File

@ -75,7 +75,7 @@ FortreeCity_EventScript_UseDevonScope::
applymovement VAR_LAST_TALKED, Movement_KecleonAppears
waitmovement 0
waitse
playmoncry SPECIES_KECLEON, 2
playmoncry SPECIES_KECLEON, CRY_MODE_ENCOUNTER
delay 40
waitmoncry
applymovement VAR_LAST_TALKED, FortreeCity_Movement_KecleonFlee

View File

@ -57,7 +57,7 @@ FortreeCity_House1_EventScript_Zigzagoon::
lock
faceplayer
waitse
playmoncry SPECIES_ZIGZAGOON, 0
playmoncry SPECIES_ZIGZAGOON, CRY_MODE_NORMAL
msgbox FortreeCity_House1_Text_Zigzagoon, MSGBOX_DEFAULT
waitmoncry
release

View File

@ -59,7 +59,7 @@ FortreeCity_House4_EventScript_Wingull::
lock
faceplayer
waitse
playmoncry SPECIES_WINGULL, 0
playmoncry SPECIES_WINGULL, CRY_MODE_NORMAL
msgbox FortreeCity_House4_Text_Wingull, MSGBOX_DEFAULT
waitmoncry
release

View File

@ -13,7 +13,7 @@ FortreeCity_House5_EventScript_Zigzagoon::
lock
faceplayer
waitse
playmoncry SPECIES_ZIGZAGOON, 0
playmoncry SPECIES_ZIGZAGOON, CRY_MODE_NORMAL
msgbox FortreeCity_House5_Text_Zigzagoon, MSGBOX_DEFAULT
waitmoncry
release

View File

@ -92,7 +92,7 @@ IslandCave_EventScript_Regice::
lock
faceplayer
waitse
playmoncry SPECIES_REGICE, 2
playmoncry SPECIES_REGICE, CRY_MODE_ENCOUNTER
delay 40
waitmoncry
setwildbattle SPECIES_REGICE, 40, ITEM_NONE

View File

@ -9,7 +9,7 @@ LavaridgeTown_House_EventScript_Zigzagoon::
lock
faceplayer
waitse
playmoncry SPECIES_ZIGZAGOON, 0
playmoncry SPECIES_ZIGZAGOON, CRY_MODE_NORMAL
msgbox LavaridgeTown_House_Text_Zigzagoon, MSGBOX_DEFAULT
waitmoncry
release

View File

@ -141,7 +141,7 @@ LilycoveCity_DepartmentStore_1F_EventScript_Azumarill::
lock
faceplayer
waitse
playmoncry SPECIES_AZUMARILL, 0
playmoncry SPECIES_AZUMARILL, CRY_MODE_NORMAL
msgbox LilycoveCity_DepartmentStore_1F_Text_Azumarill, MSGBOX_DEFAULT
waitmoncry
release

View File

@ -9,7 +9,7 @@ LilycoveCity_House1_EventScript_Kecleon::
lock
faceplayer
waitse
playmoncry SPECIES_KECLEON, 0
playmoncry SPECIES_KECLEON, CRY_MODE_NORMAL
msgbox LilycoveCity_House1_Text_Kecleon, MSGBOX_DEFAULT
waitmoncry
release

View File

@ -32,7 +32,7 @@ MarineCave_End_EventScript_Kyogre::
applymovement LOCALID_KYOGRE, MarineCave_End_Movement_KyogreApproach
waitmovement 0
waitse
playmoncry SPECIES_KYOGRE, 2
playmoncry SPECIES_KYOGRE, CRY_MODE_ENCOUNTER
delay 40
waitmoncry
setvar VAR_LAST_TALKED, LOCALID_KYOGRE

View File

@ -15,7 +15,7 @@ MossdeepCity_House2_EventScript_Wingull::
lock
faceplayer
waitse
playmoncry SPECIES_WINGULL, 0
playmoncry SPECIES_WINGULL, CRY_MODE_NORMAL
msgbox MossdeepCity_House2_Text_Wingull, MSGBOX_DEFAULT
waitmoncry
closemessage

View File

@ -34,7 +34,7 @@ MossdeepCity_House4_EventScript_Skitty::
lock
faceplayer
waitse
playmoncry SPECIES_SKITTY, 0
playmoncry SPECIES_SKITTY, CRY_MODE_NORMAL
msgbox MossdeepCity_House4_Text_Skitty, MSGBOX_DEFAULT
waitmoncry
release

View File

@ -51,7 +51,7 @@ NavelRock_Bottom_EventScript_Lugia::
delay 30
delay 50
waitse
playmoncry SPECIES_LUGIA, 2
playmoncry SPECIES_LUGIA, CRY_MODE_ENCOUNTER
waitmoncry
delay 20
setvar VAR_0x8004, SPECIES_LUGIA

View File

@ -47,7 +47,7 @@ NavelRock_Top_EventScript_HoOh::
setweather WEATHER_NONE
doweather
waitse
playmoncry SPECIES_HO_OH, 2
playmoncry SPECIES_HO_OH, CRY_MODE_ENCOUNTER
delay 30
waitmoncry
delay 60

View File

@ -183,7 +183,7 @@ NewMauville_Inside_EventScript_Voltorb1::
faceplayer
setwildbattle SPECIES_VOLTORB, 25, ITEM_NONE
waitse
playmoncry SPECIES_VOLTORB, 2
playmoncry SPECIES_VOLTORB, CRY_MODE_ENCOUNTER
delay 40
waitmoncry
setflag FLAG_SYS_CTRL_OBJ_DELETE
@ -210,7 +210,7 @@ NewMauville_Inside_EventScript_Voltorb2::
faceplayer
setwildbattle SPECIES_VOLTORB, 25, ITEM_NONE
waitse
playmoncry SPECIES_VOLTORB, 2
playmoncry SPECIES_VOLTORB, CRY_MODE_ENCOUNTER
delay 40
waitmoncry
setflag FLAG_SYS_CTRL_OBJ_DELETE
@ -237,7 +237,7 @@ NewMauville_Inside_EventScript_Voltorb3::
faceplayer
setwildbattle SPECIES_VOLTORB, 25, ITEM_NONE
waitse
playmoncry SPECIES_VOLTORB, 2
playmoncry SPECIES_VOLTORB, CRY_MODE_ENCOUNTER
delay 40
waitmoncry
setflag FLAG_SYS_CTRL_OBJ_DELETE

View File

@ -77,7 +77,7 @@ PacifidlogTown_House2_EventScript_HappyAzurill::
lock
faceplayer
waitse
playmoncry SPECIES_AZURILL, 0
playmoncry SPECIES_AZURILL, CRY_MODE_NORMAL
msgbox PacifidlogTown_House2_Text_Rurii, MSGBOX_DEFAULT
waitmoncry
msgbox PacifidlogTown_House2_Text_VeryFriendlyWithTrainer, MSGBOX_DEFAULT
@ -88,7 +88,7 @@ PacifidlogTown_House2_EventScript_UnhappyAzurill::
lock
faceplayer
waitse
playmoncry SPECIES_AZURILL, 2
playmoncry SPECIES_AZURILL, CRY_MODE_ENCOUNTER
msgbox PacifidlogTown_House2_Text_Rururi, MSGBOX_DEFAULT
waitmoncry
msgbox PacifidlogTown_House2_Text_DoesntLikeTrainerVeryMuch, MSGBOX_DEFAULT

View File

@ -95,7 +95,7 @@ Route104_MrBrineysHouse_EventScript_Peeko::
lock
faceplayer
waitse
playmoncry SPECIES_WINGULL, 0
playmoncry SPECIES_WINGULL, CRY_MODE_NORMAL
msgbox Route104_MrBrineysHouse_Text_Peeko, MSGBOX_DEFAULT
waitmoncry
release

View File

@ -362,7 +362,7 @@ Route109_EventScript_Zigzagoon::
lock
faceplayer
waitse
playmoncry SPECIES_ZIGZAGOON, 0
playmoncry SPECIES_ZIGZAGOON, CRY_MODE_NORMAL
msgbox Route109_Text_ZigzagoonCry, MSGBOX_DEFAULT
waitmoncry
release

View File

@ -68,7 +68,7 @@ Route114_EventScript_Poochyena::
lock
faceplayer
waitse
playmoncry SPECIES_POOCHYENA, 2
playmoncry SPECIES_POOCHYENA, CRY_MODE_ENCOUNTER
msgbox Route114_Text_Poochyena, MSGBOX_DEFAULT
waitmoncry
release

View File

@ -9,7 +9,7 @@ Route119_House_EventScript_Wingull::
lock
faceplayer
waitse
playmoncry SPECIES_WINGULL, 0
playmoncry SPECIES_WINGULL, CRY_MODE_NORMAL
msgbox Route119_House_Text_Wingull, MSGBOX_DEFAULT
waitmoncry
release

View File

@ -210,7 +210,7 @@ Route120_EventScript_StevenBattleKecleon::
applymovement LOCALID_BRIDGE_KECLEON, Movement_KecleonAppears
waitmovement 0
waitse
playmoncry SPECIES_KECLEON, 2
playmoncry SPECIES_KECLEON, CRY_MODE_ENCOUNTER
delay 40
waitmoncry
setwildbattle SPECIES_KECLEON, 30, ITEM_NONE

View File

@ -9,7 +9,7 @@ RustboroCity_Flat2_1F_EventScript_Skitty::
lock
faceplayer
waitse
playmoncry SPECIES_SKITTY, 0
playmoncry SPECIES_SKITTY, CRY_MODE_NORMAL
msgbox RustboroCity_Flat2_1F_Text_Skitty, MSGBOX_DEFAULT
waitmoncry
release

View File

@ -14,7 +14,7 @@ RustboroCity_House3_EventScript_Pekachu::
lock
faceplayer
waitse
playmoncry SPECIES_PIKACHU, 0
playmoncry SPECIES_PIKACHU, CRY_MODE_NORMAL
msgbox RustboroCity_House3_Text_Pekachu, MSGBOX_DEFAULT
waitmoncry
release

View File

@ -307,7 +307,7 @@ RusturfTunnel_EventScript_Peeko::
lock
faceplayer
waitse
playmoncry SPECIES_WINGULL, 0
playmoncry SPECIES_WINGULL, CRY_MODE_NORMAL
msgbox RusturfTunnel_Text_Peeko, MSGBOX_DEFAULT
waitmoncry
release
@ -339,7 +339,7 @@ RusturfTunnel_EventScript_Grunt::
message RusturfTunnel_Text_ThankYouLetsGoHomePeeko
waitmessage
waitse
playmoncry SPECIES_WINGULL, 0
playmoncry SPECIES_WINGULL, CRY_MODE_NORMAL
waitbuttonpress
waitmoncry
closemessage

View File

@ -92,7 +92,7 @@ SSTidalCorridor_EventScript_Peeko::
lock
faceplayer
waitse
playmoncry SPECIES_WINGULL, 0
playmoncry SPECIES_WINGULL, CRY_MODE_NORMAL
msgbox SSTidalCorridor_Text_Peeko, MSGBOX_DEFAULT
waitmoncry
release

View File

@ -48,7 +48,7 @@ SkyPillar_Top_EventScript_RayquazaFaceDown::
SkyPillar_Top_EventScript_Rayquaza::
lockall
waitse
playmoncry SPECIES_RAYQUAZA, 2
playmoncry SPECIES_RAYQUAZA, CRY_MODE_ENCOUNTER
delay 40
waitmoncry
setwildbattle SPECIES_RAYQUAZA, 70, ITEM_NONE
@ -105,7 +105,7 @@ SkyPillar_Top_EventScript_AwakenRayquaza::
applymovement LOCALID_RAYQUAZA_SLEEPING, SkyPillar_Top_Movement_RayquazaStir
waitmovement 0
waitse
playmoncry SPECIES_RAYQUAZA, 2
playmoncry SPECIES_RAYQUAZA, CRY_MODE_ENCOUNTER
setvar VAR_0x8004, 1 @ vertical pan
setvar VAR_0x8005, 1 @ horizontal pan
setvar VAR_0x8006, 8 @ num shakes
@ -113,7 +113,7 @@ SkyPillar_Top_EventScript_AwakenRayquaza::
special ShakeCamera
waitstate
waitse
playmoncry SPECIES_RAYQUAZA, 2
playmoncry SPECIES_RAYQUAZA, CRY_MODE_ENCOUNTER
setvar VAR_0x8004, 1 @ vertical pan
setvar VAR_0x8005, 2 @ horizontal pan
setvar VAR_0x8006, 8 @ num shakes

View File

@ -240,7 +240,7 @@ SlateportCity_PokemonFanClub_EventScript_Skitty::
lock
faceplayer
waitse
playmoncry SPECIES_SKITTY, 0
playmoncry SPECIES_SKITTY, CRY_MODE_NORMAL
msgbox SlateportCity_PokemonFanClub_Text_Skitty, MSGBOX_DEFAULT
waitmoncry
release
@ -250,7 +250,7 @@ SlateportCity_PokemonFanClub_EventScript_Zigzagoon::
lock
faceplayer
waitse
playmoncry SPECIES_ZIGZAGOON, 0
playmoncry SPECIES_ZIGZAGOON, CRY_MODE_NORMAL
msgbox SlateportCity_PokemonFanClub_Text_Zigzagoon, MSGBOX_DEFAULT
waitmoncry
release
@ -260,7 +260,7 @@ SlateportCity_PokemonFanClub_EventScript_Azumarill::
lock
faceplayer
waitse
playmoncry SPECIES_AZUMARILL, 0
playmoncry SPECIES_AZUMARILL, CRY_MODE_NORMAL
msgbox SlateportCity_PokemonFanClub_Text_Azumarill, MSGBOX_DEFAULT
waitmoncry
release

View File

@ -243,7 +243,7 @@ SootopolisCity_EventScript_LegendariesSceneFromPokeCenter::
waitmovement 0
delay 60
waitse
playmoncry SPECIES_KYOGRE, 2
playmoncry SPECIES_KYOGRE, CRY_MODE_ENCOUNTER
applymovement LOCALID_KYOGRE, SootopolisCity_Movement_KyogreAttack
applymovement LOCALID_GROUDON, SootopolisCity_Movement_GroudonDefend
waitmovement 0
@ -257,7 +257,7 @@ SootopolisCity_EventScript_LegendariesSceneFromPokeCenter::
applymovement LOCALID_GROUDON, SootopolisCity_Movement_GroudonMoveBack
waitmovement 0
waitse
playmoncry SPECIES_GROUDON, 2
playmoncry SPECIES_GROUDON, CRY_MODE_ENCOUNTER
applymovement LOCALID_KYOGRE, SootopolisCity_Movement_KyogreDefend
applymovement LOCALID_GROUDON, SootopolisCity_Movement_GroudonAttack
waitmovement 0
@ -271,7 +271,7 @@ SootopolisCity_EventScript_LegendariesSceneFromPokeCenter::
applymovement LOCALID_GROUDON, SootopolisCity_Movement_GroudonMoveBack
waitmovement 0
waitse
playmoncry SPECIES_KYOGRE, 2
playmoncry SPECIES_KYOGRE, CRY_MODE_ENCOUNTER
applymovement LOCALID_KYOGRE, SootopolisCity_Movement_KyogreAttack
applymovement LOCALID_GROUDON, SootopolisCity_Movement_GroudonDefend
waitmovement 0
@ -343,7 +343,7 @@ SootopolisCity_EventScript_LegendariesSceneFromDive::
waitmovement 0
delay 60
waitse
playmoncry SPECIES_KYOGRE, 2
playmoncry SPECIES_KYOGRE, CRY_MODE_ENCOUNTER
applymovement LOCALID_KYOGRE, SootopolisCity_Movement_KyogreAttack
applymovement LOCALID_GROUDON, SootopolisCity_Movement_GroudonDefend
waitmovement 0
@ -357,7 +357,7 @@ SootopolisCity_EventScript_LegendariesSceneFromDive::
applymovement LOCALID_GROUDON, SootopolisCity_Movement_GroudonMoveBack
waitmovement 0
waitse
playmoncry SPECIES_GROUDON, 2
playmoncry SPECIES_GROUDON, CRY_MODE_ENCOUNTER
applymovement LOCALID_KYOGRE, SootopolisCity_Movement_KyogreDefend
applymovement LOCALID_GROUDON, SootopolisCity_Movement_GroudonAttack
waitmovement 0
@ -371,7 +371,7 @@ SootopolisCity_EventScript_LegendariesSceneFromDive::
applymovement LOCALID_GROUDON, SootopolisCity_Movement_GroudonMoveBack
waitmovement 0
waitse
playmoncry SPECIES_KYOGRE, 2
playmoncry SPECIES_KYOGRE, CRY_MODE_ENCOUNTER
applymovement LOCALID_KYOGRE, SootopolisCity_Movement_KyogreAttack
applymovement LOCALID_GROUDON, SootopolisCity_Movement_GroudonDefend
waitmovement 0
@ -536,7 +536,7 @@ SootopolisCity_EventScript_RayquazaSceneFromPokeCenter::
applymovement OBJ_EVENT_ID_CAMERA, SootopolisCity_Movement_PanUp
waitmovement 0
waitse
playmoncry SPECIES_RAYQUAZA, 2
playmoncry SPECIES_RAYQUAZA, CRY_MODE_ENCOUNTER
setvar VAR_0x8004, 1 @ vertical pan
setvar VAR_0x8005, 1 @ horizontal pan
setvar VAR_0x8006, 8 @ num shakes
@ -544,7 +544,7 @@ SootopolisCity_EventScript_RayquazaSceneFromPokeCenter::
special ShakeCamera
waitstate
waitse
playmoncry SPECIES_RAYQUAZA, 2
playmoncry SPECIES_RAYQUAZA, CRY_MODE_ENCOUNTER
setvar VAR_0x8004, 1 @ vertical pan
setvar VAR_0x8005, 2 @ horizontal pan
setvar VAR_0x8006, 8 @ num shakes
@ -589,7 +589,7 @@ SootopolisCity_EventScript_RayquazaSceneFromDive::
applymovement OBJ_EVENT_ID_PLAYER, SootopolisCity_Movement_PlayerApproachLegendaries
waitmovement 0
waitse
playmoncry SPECIES_RAYQUAZA, 2
playmoncry SPECIES_RAYQUAZA, CRY_MODE_ENCOUNTER
setvar VAR_0x8004, 1 @ vertical pan
setvar VAR_0x8005, 1 @ horizontal pan
setvar VAR_0x8006, 8 @ num shakes
@ -597,7 +597,7 @@ SootopolisCity_EventScript_RayquazaSceneFromDive::
special ShakeCamera
waitstate
waitse
playmoncry SPECIES_RAYQUAZA, 2
playmoncry SPECIES_RAYQUAZA, CRY_MODE_ENCOUNTER
setvar VAR_0x8004, 1 @ vertical pan
setvar VAR_0x8005, 2 @ horizontal pan
setvar VAR_0x8006, 8 @ num shakes

View File

@ -23,7 +23,7 @@ SootopolisCity_House1_EventScript_Kecleon::
lock
faceplayer
waitse
playmoncry SPECIES_KECLEON, 0
playmoncry SPECIES_KECLEON, CRY_MODE_NORMAL
msgbox SootopolisCity_House1_Text_Kecleon, MSGBOX_DEFAULT
waitmoncry
release

View File

@ -13,7 +13,7 @@ SootopolisCity_House4_EventScript_Azumarill::
lock
faceplayer
waitse
playmoncry SPECIES_AZUMARILL, 0
playmoncry SPECIES_AZUMARILL, CRY_MODE_NORMAL
msgbox SootopolisCity_House4_Text_Azumarill, MSGBOX_DEFAULT
waitmoncry
release

View File

@ -68,7 +68,7 @@ SouthernIsland_Interior_EventScript_Lati::
waitmovement 0
delay 50
waitse
playmoncry VAR_TEMP_4, 0
playmoncry VAR_TEMP_4, CRY_MODE_NORMAL
delay 30
waitmoncry
addobject LOCALID_LATI

View File

@ -32,7 +32,7 @@ TerraCave_End_EventScript_Groudon::
applymovement LOCALID_GROUDON, TerraCave_End_Movement_GroudonApproach
waitmovement 0
waitse
playmoncry SPECIES_GROUDON, 2
playmoncry SPECIES_GROUDON, CRY_MODE_ENCOUNTER
delay 40
waitmoncry
setvar VAR_LAST_TALKED, LOCALID_GROUDON

View File

@ -56,7 +56,7 @@ VerdanturfTown_FriendshipRatersHouse_EventScript_Pikachu::
lock
faceplayer
waitse
playmoncry SPECIES_PIKACHU, 0
playmoncry SPECIES_PIKACHU, CRY_MODE_NORMAL
msgbox VerdanturfTown_FriendshipRatersHouse_Text_Pikachu, MSGBOX_DEFAULT
waitmoncry
release

View File

@ -2,7 +2,7 @@
CaveOfOrigin_EventScript_LegendaryCry::
lockall
waitse
playmoncry SPECIES_KYOGRE, 2 @ SPECIES_GROUDON in Ruby
playmoncry SPECIES_KYOGRE, CRY_MODE_ENCOUNTER @ SPECIES_GROUDON in Ruby
waitmoncry
setvar VAR_TEMP_5, 1
releaseall

View File

@ -114,7 +114,7 @@ Route117_PokemonDayCare_EventScript_GiveMonToRaise::
goto_if_eq Route117_PokemonDayCare_EventScript_OnlyOneAliveMon
specialvar VAR_0x8005, GetSelectedMonNicknameAndSpecies
waitse
playmoncry VAR_0x8005, 0
playmoncry VAR_0x8005, CRY_MODE_NORMAL
msgbox Route117_PokemonDayCare_Text_WellRaiseYourMon, MSGBOX_DEFAULT
waitmoncry
special StoreSelectedPokemonInDaycare
@ -220,7 +220,7 @@ Route117_PokemonDayCare_EventScript_RetrieveMon::
playse SE_SHOP
msgbox Route117_PokemonDayCare_Text_HeresYourMon, MSGBOX_DEFAULT
waitse
playmoncry VAR_RESULT, 0
playmoncry VAR_RESULT, CRY_MODE_NORMAL
msgbox Route117_PokemonDayCare_Text_TookBackMon, MSGBOX_DEFAULT
waitmoncry
specialvar VAR_RESULT, GetDaycareState

View File

@ -70,7 +70,7 @@ EventScript_BattleKecleon::
applymovement VAR_LAST_TALKED, Movement_KecleonAppears
waitmovement 0
waitse
playmoncry SPECIES_KECLEON, 2
playmoncry SPECIES_KECLEON, CRY_MODE_ENCOUNTER
delay 40
waitmoncry
setwildbattle SPECIES_KECLEON, 30, ITEM_NONE

View File

@ -454,7 +454,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_FeedPokeblock::
waitmovement 0
delay 60
waitse
playmoncry VAR_0x8005, 0
playmoncry VAR_0x8005, CRY_MODE_NORMAL
delay 120
waitmoncry
compare VAR_0x8004, 1
@ -552,7 +552,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_Zigzagoon::
lock
faceplayer
waitse
playmoncry VAR_0x8005, 0
playmoncry VAR_0x8005, CRY_MODE_NORMAL
msgbox LilycoveCity_PokemonCenter_1F_Text_Zigzagoon, MSGBOX_DEFAULT
waitmoncry
release
@ -562,7 +562,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_Skitty::
lock
faceplayer
waitse
playmoncry VAR_0x8005, 0
playmoncry VAR_0x8005, CRY_MODE_NORMAL
msgbox LilycoveCity_PokemonCenter_1F_Text_Skitty, MSGBOX_DEFAULT
waitmoncry
release
@ -572,7 +572,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_Poochyena::
lock
faceplayer
waitse
playmoncry VAR_0x8005, 0
playmoncry VAR_0x8005, CRY_MODE_NORMAL
msgbox LilycoveCity_PokemonCenter_1F_Text_Poochyena, MSGBOX_DEFAULT
waitmoncry
release
@ -582,7 +582,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_Kecleon::
lock
faceplayer
waitse
playmoncry VAR_0x8005, 0
playmoncry VAR_0x8005, CRY_MODE_NORMAL
msgbox LilycoveCity_PokemonCenter_1F_Text_Kecleon, MSGBOX_DEFAULT
waitmoncry
release
@ -592,7 +592,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_Pikachu::
lock
faceplayer
waitse
playmoncry VAR_0x8005, 0
playmoncry VAR_0x8005, CRY_MODE_NORMAL
msgbox LilycoveCity_PokemonCenter_1F_Text_Pikachu, MSGBOX_DEFAULT
waitmoncry
release

View File

@ -385,7 +385,7 @@ PlayersHouse_1F_EventScript_Vigoroth1::
lock
faceplayer
waitse
playmoncry SPECIES_VIGOROTH, 0
playmoncry SPECIES_VIGOROTH, CRY_MODE_NORMAL
msgbox PlayersHouse_1F_Text_Vigoroth1, MSGBOX_DEFAULT
waitmoncry
release
@ -395,7 +395,7 @@ PlayersHouse_1F_EventScript_Vigoroth2::
lock
faceplayer
waitse
playmoncry SPECIES_VIGOROTH, 0
playmoncry SPECIES_VIGOROTH, CRY_MODE_NORMAL
msgbox PlayersHouse_1F_Text_Vigoroth2, MSGBOX_DEFAULT
waitmoncry
release

Binary file not shown.

Before

Width:  |  Height:  |  Size: 234 B

After

Width:  |  Height:  |  Size: 234 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 229 B

After

Width:  |  Height:  |  Size: 229 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 224 B

After

Width:  |  Height:  |  Size: 224 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 216 B

After

Width:  |  Height:  |  Size: 216 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 232 B

After

Width:  |  Height:  |  Size: 232 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 234 B

After

Width:  |  Height:  |  Size: 234 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 229 B

After

Width:  |  Height:  |  Size: 229 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 224 B

After

Width:  |  Height:  |  Size: 224 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 216 B

After

Width:  |  Height:  |  Size: 216 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 232 B

After

Width:  |  Height:  |  Size: 232 B

View File

@ -13,8 +13,8 @@
#include "dynamic_placeholder_text_util.h"
#include "fonts.h"
static u16 RenderText(struct TextPrinter *textPrinter);
static u32 RenderFont(struct TextPrinter *textPrinter);
static u16 RenderText(struct TextPrinter *);
static u32 RenderFont(struct TextPrinter *);
static u16 FontFunc_Small(struct TextPrinter *);
static u16 FontFunc_Normal(struct TextPrinter *);
static u16 FontFunc_Short(struct TextPrinter *);
@ -23,32 +23,32 @@ static u16 FontFunc_ShortCopy2(struct TextPrinter *);
static u16 FontFunc_ShortCopy3(struct TextPrinter *);
static u16 FontFunc_Narrow(struct TextPrinter *);
static u16 FontFunc_SmallNarrow(struct TextPrinter *);
static void DecompressGlyph_Small(u16 glyphId, bool32 isJapanese);
static void DecompressGlyph_Normal(u16 glyphId, bool32 isJapanese);
static void DecompressGlyph_Short(u16 glyphId, bool32 isJapanese);
static void DecompressGlyph_Narrow(u16 glyphId, bool32 isJapanese);
static void DecompressGlyph_SmallNarrow(u16 glyphId, bool32 isJapanese);
static void DecompressGlyph_Bold(u16 glyphId);
static u32 GetGlyphWidth_Small(u16 glyphId, bool32 isJapanese);
static u32 GetGlyphWidth_Normal(u16 glyphId, bool32 isJapanese);
static u32 GetGlyphWidth_Short(u16 glyphId, bool32 isJapanese);
static u32 GetGlyphWidth_Narrow(u16 glyphId, bool32 isJapanese);
static u32 GetGlyphWidth_SmallNarrow(u16 glyphId, bool32 isJapanese);
static void DecompressGlyph_Small(u16, bool32);
static void DecompressGlyph_Normal(u16, bool32);
static void DecompressGlyph_Short(u16, bool32);
static void DecompressGlyph_Narrow(u16, bool32);
static void DecompressGlyph_SmallNarrow(u16, bool32);
static void DecompressGlyph_Bold(u16);
static u32 GetGlyphWidth_Small(u16, bool32);
static u32 GetGlyphWidth_Normal(u16, bool32);
static u32 GetGlyphWidth_Short(u16, bool32);
static u32 GetGlyphWidth_Narrow(u16, bool32);
static u32 GetGlyphWidth_SmallNarrow(u16, bool32);
EWRAM_DATA struct TextPrinter gTempTextPrinter = {0};
EWRAM_DATA struct TextPrinter gTextPrinters[NUM_TEXT_PRINTERS] = {0};
static EWRAM_DATA struct TextPrinter sTempTextPrinter = {0};
static EWRAM_DATA struct TextPrinter sTextPrinters[NUM_TEXT_PRINTERS] = {0};
static u16 gFontHalfRowLookupTable[0x51];
static u16 gLastTextBgColor;
static u16 gLastTextFgColor;
static u16 gLastTextShadowColor;
static u16 sFontHalfRowLookupTable[0x51];
static u16 sLastTextBgColor;
static u16 sLastTextFgColor;
static u16 sLastTextShadowColor;
const struct FontInfo *gFonts;
bool8 gDisableTextPrinters;
struct TextGlyph gCurGlyph;
TextFlags gTextFlags;
const u8 gFontHalfRowOffsets[] =
static const u8 sFontHalfRowOffsets[] =
{
0x00, 0x01, 0x02, 0x00, 0x03, 0x04, 0x05, 0x03, 0x06, 0x07, 0x08, 0x06, 0x00, 0x01, 0x02, 0x00,
0x09, 0x0A, 0x0B, 0x09, 0x0C, 0x0D, 0x0E, 0x0C, 0x0F, 0x10, 0x11, 0x0F, 0x09, 0x0A, 0x0B, 0x09,
@ -68,12 +68,16 @@ const u8 gFontHalfRowOffsets[] =
0x00, 0x01, 0x02, 0x00, 0x03, 0x04, 0x05, 0x03, 0x06, 0x07, 0x08, 0x06, 0x00, 0x01, 0x02, 0x00
};
const u8 gDownArrowTiles[] = INCBIN_U8("graphics/fonts/down_arrow.4bpp");
const u8 gDarkDownArrowTiles[] = INCBIN_U8("graphics/fonts/down_arrow_RS.4bpp");
const u8 gUnusedFRLGBlankedDownArrow[] = INCBIN_U8("graphics/fonts/unused_frlg_blanked_down_arrow.4bpp");
const u8 gUnusedFRLGDownArrow[] = INCBIN_U8("graphics/fonts/unused_frlg_down_arrow.4bpp");
const u8 gDownArrowYCoords[] = { 0, 1, 2, 1 };
const u8 gWindowVerticalScrollSpeeds[] = { 1, 2, 4, 0x0 };
static const u8 sDownArrowTiles[] = INCBIN_U8("graphics/fonts/down_arrow.4bpp");
static const u8 sDarkDownArrowTiles[] = INCBIN_U8("graphics/fonts/down_arrow_alt.4bpp");
static const u8 sUnusedFRLGBlankedDownArrow[] = INCBIN_U8("graphics/fonts/unused_frlg_blanked_down_arrow.4bpp");
static const u8 sUnusedFRLGDownArrow[] = INCBIN_U8("graphics/fonts/unused_frlg_down_arrow.4bpp");
static const u8 sDownArrowYCoords[] = { 0, 1, 2, 1 };
static const u8 sWindowVerticalScrollSpeeds[] = {
[OPTIONS_TEXT_SPEED_SLOW] = 1,
[OPTIONS_TEXT_SPEED_MID] = 2,
[OPTIONS_TEXT_SPEED_FAST] = 4,
};
static const struct GlyphWidthFunc sGlyphWidthFuncs[] =
{
@ -88,24 +92,29 @@ static const struct GlyphWidthFunc sGlyphWidthFuncs[] =
{ FONT_SMALL_NARROW, GetGlyphWidth_SmallNarrow }
};
const struct KeypadIcon gKeypadIcons[] =
struct
{
[CHAR_A_BUTTON] = { 0x0, 0x8, 0xC },
[CHAR_B_BUTTON] = { 0x1, 0x8, 0xC },
[CHAR_L_BUTTON] = { 0x2, 0x10, 0xC },
[CHAR_R_BUTTON] = { 0x4, 0x10, 0xC },
[CHAR_START_BUTTON] = { 0x6, 0x18, 0xC },
[CHAR_SELECT_BUTTON] = { 0x9, 0x18, 0xC },
[CHAR_DPAD_UP] = { 0xC, 0x8, 0xC },
[CHAR_DPAD_DOWN] = { 0xD, 0x8, 0xC },
[CHAR_DPAD_LEFT] = { 0xE, 0x8, 0xC },
[CHAR_DPAD_RIGHT] = { 0xF, 0x8, 0xC },
[CHAR_DPAD_UPDOWN] = { 0x20, 0x8, 0xC },
[CHAR_DPAD_LEFTRIGHT] = { 0x21, 0x8, 0xC },
[CHAR_DPAD_NONE] = { 0x22, 0x8, 0xC }
u16 tileOffset;
u8 width;
u8 height;
} static const sKeypadIcons[] =
{
[CHAR_A_BUTTON] = { 0x00, 8, 12 },
[CHAR_B_BUTTON] = { 0x01, 8, 12 },
[CHAR_L_BUTTON] = { 0x02, 16, 12 },
[CHAR_R_BUTTON] = { 0x04, 16, 12 },
[CHAR_START_BUTTON] = { 0x06, 24, 12 },
[CHAR_SELECT_BUTTON] = { 0x09, 24, 12 },
[CHAR_DPAD_UP] = { 0x0C, 8, 12 },
[CHAR_DPAD_DOWN] = { 0x0D, 8, 12 },
[CHAR_DPAD_LEFT] = { 0x0E, 8, 12 },
[CHAR_DPAD_RIGHT] = { 0x0F, 8, 12 },
[CHAR_DPAD_UPDOWN] = { 0x20, 8, 12 },
[CHAR_DPAD_LEFTRIGHT] = { 0x21, 8, 12 },
[CHAR_DPAD_NONE] = { 0x22, 8, 12 }
};
const u8 gKeypadIconTiles[] = INCBIN_U8("graphics/fonts/keypad_icons.4bpp");
static const u8 sKeypadIconTiles[] = INCBIN_U8("graphics/fonts/keypad_icons.4bpp");
static const struct FontInfo sFontInfos[] =
{
@ -225,7 +234,7 @@ static const u8 sMenuCursorDimensions[][2] =
[FONT_BOLD] = {}
};
const u16 gFontBoldJapaneseGlyphs[] = INCBIN_U16("graphics/fonts/bold.hwjpnfont");
static const u16 sFontBoldJapaneseGlyphs[] = INCBIN_U16("graphics/fonts/bold.hwjpnfont");
static void SetFontsPointer(const struct FontInfo *fonts)
{
@ -236,7 +245,7 @@ void DeactivateAllTextPrinters(void)
{
int printer;
for (printer = 0; printer < NUM_TEXT_PRINTERS; ++printer)
gTextPrinters[printer].active = FALSE;
sTextPrinters[printer].active = FALSE;
}
u16 AddTextPrinterParameterized(u8 windowId, u8 fontId, const u8 *str, u8 x, u8 y, u8 speed, void (*callback)(struct TextPrinterTemplate *, u16))
@ -267,41 +276,41 @@ bool16 AddTextPrinter(struct TextPrinterTemplate *printerTemplate, u8 speed, voi
if (!gFonts)
return FALSE;
gTempTextPrinter.active = TRUE;
gTempTextPrinter.state = RENDER_STATE_HANDLE_CHAR;
gTempTextPrinter.textSpeed = speed;
gTempTextPrinter.delayCounter = 0;
gTempTextPrinter.scrollDistance = 0;
sTempTextPrinter.active = TRUE;
sTempTextPrinter.state = RENDER_STATE_HANDLE_CHAR;
sTempTextPrinter.textSpeed = speed;
sTempTextPrinter.delayCounter = 0;
sTempTextPrinter.scrollDistance = 0;
for (i = 0; i < (int)ARRAY_COUNT(gTempTextPrinter.subStructFields); i++)
gTempTextPrinter.subStructFields[i] = 0;
for (i = 0; i < (int)ARRAY_COUNT(sTempTextPrinter.subStructFields); i++)
sTempTextPrinter.subStructFields[i] = 0;
gTempTextPrinter.printerTemplate = *printerTemplate;
gTempTextPrinter.callback = callback;
gTempTextPrinter.minLetterSpacing = 0;
gTempTextPrinter.japanese = 0;
sTempTextPrinter.printerTemplate = *printerTemplate;
sTempTextPrinter.callback = callback;
sTempTextPrinter.minLetterSpacing = 0;
sTempTextPrinter.japanese = 0;
GenerateFontHalfRowLookupTable(printerTemplate->fgColor, printerTemplate->bgColor, printerTemplate->shadowColor);
if (speed != TEXT_SKIP_DRAW && speed != 0)
{
--gTempTextPrinter.textSpeed;
gTextPrinters[printerTemplate->windowId] = gTempTextPrinter;
--sTempTextPrinter.textSpeed;
sTextPrinters[printerTemplate->windowId] = sTempTextPrinter;
}
else
{
gTempTextPrinter.textSpeed = 0;
sTempTextPrinter.textSpeed = 0;
// Render all text (up to limit) at once
for (j = 0; j < 0x400; ++j)
{
if (RenderFont(&gTempTextPrinter) == RENDER_FINISH)
if (RenderFont(&sTempTextPrinter) == RENDER_FINISH)
break;
}
// All the text is rendered to the window but don't draw it yet.
if (speed != TEXT_SKIP_DRAW)
CopyWindowToVram(gTempTextPrinter.printerTemplate.windowId, COPYWIN_GFX);
gTextPrinters[printerTemplate->windowId].active = FALSE;
CopyWindowToVram(sTempTextPrinter.printerTemplate.windowId, COPYWIN_GFX);
sTextPrinters[printerTemplate->windowId].active = FALSE;
}
gDisableTextPrinters = FALSE;
return TRUE;
@ -315,19 +324,19 @@ void RunTextPrinters(void)
{
for (i = 0; i < NUM_TEXT_PRINTERS; ++i)
{
if (gTextPrinters[i].active)
if (sTextPrinters[i].active)
{
u16 temp = RenderFont(&gTextPrinters[i]);
u16 temp = RenderFont(&sTextPrinters[i]);
switch (temp)
{
case RENDER_PRINT:
CopyWindowToVram(gTextPrinters[i].printerTemplate.windowId, COPYWIN_GFX);
CopyWindowToVram(sTextPrinters[i].printerTemplate.windowId, COPYWIN_GFX);
case RENDER_UPDATE:
if (gTextPrinters[i].callback != 0)
gTextPrinters[i].callback(&gTextPrinters[i].printerTemplate, temp);
if (sTextPrinters[i].callback != 0)
sTextPrinters[i].callback(&sTextPrinters[i].printerTemplate, temp);
break;
case RENDER_FINISH:
gTextPrinters[i].active = FALSE;
sTextPrinters[i].active = FALSE;
break;
}
}
@ -337,7 +346,7 @@ void RunTextPrinters(void)
bool16 IsTextPrinterActive(u8 id)
{
return gTextPrinters[id].active;
return sTextPrinters[id].active;
}
static u32 RenderFont(struct TextPrinter *textPrinter)
@ -356,11 +365,11 @@ void GenerateFontHalfRowLookupTable(u8 fgColor, u8 bgColor, u8 shadowColor)
u32 fg12, bg12, shadow12;
u32 temp;
u16 *current = gFontHalfRowLookupTable;
u16 *current = sFontHalfRowLookupTable;
gLastTextBgColor = bgColor;
gLastTextFgColor = fgColor;
gLastTextShadowColor = shadowColor;
sLastTextBgColor = bgColor;
sLastTextFgColor = fgColor;
sLastTextShadowColor = shadowColor;
bg12 = bgColor << 12;
fg12 = fgColor << 12;
@ -504,9 +513,9 @@ void GenerateFontHalfRowLookupTable(u8 fgColor, u8 bgColor, u8 shadowColor)
void SaveTextColors(u8 *fgColor, u8 *bgColor, u8 *shadowColor)
{
*bgColor = gLastTextBgColor;
*fgColor = gLastTextFgColor;
*shadowColor = gLastTextShadowColor;
*bgColor = sLastTextBgColor;
*fgColor = sLastTextFgColor;
*shadowColor = sLastTextShadowColor;
}
void RestoreTextColors(u8 *fgColor, u8 *bgColor, u8 *shadowColor)
@ -521,40 +530,41 @@ void DecompressGlyphTile(const void *src_, void *dest_)
u32 *dest = dest_;
temp = *(src++);
*(dest)++ = ((gFontHalfRowLookupTable[gFontHalfRowOffsets[temp & 0xFF]]) << 16) | (gFontHalfRowLookupTable[gFontHalfRowOffsets[temp >> 8]]);
*(dest)++ = ((sFontHalfRowLookupTable[sFontHalfRowOffsets[temp & 0xFF]]) << 16) | (sFontHalfRowLookupTable[sFontHalfRowOffsets[temp >> 8]]);
temp = *(src++);
*(dest++) = ((gFontHalfRowLookupTable[gFontHalfRowOffsets[temp & 0xFF]]) << 16) | (gFontHalfRowLookupTable[gFontHalfRowOffsets[temp >> 8]]);
*(dest++) = ((sFontHalfRowLookupTable[sFontHalfRowOffsets[temp & 0xFF]]) << 16) | (sFontHalfRowLookupTable[sFontHalfRowOffsets[temp >> 8]]);
temp = *(src++);
*(dest++) = ((gFontHalfRowLookupTable[gFontHalfRowOffsets[temp & 0xFF]]) << 16) | (gFontHalfRowLookupTable[gFontHalfRowOffsets[temp >> 8]]);
*(dest++) = ((sFontHalfRowLookupTable[sFontHalfRowOffsets[temp & 0xFF]]) << 16) | (sFontHalfRowLookupTable[sFontHalfRowOffsets[temp >> 8]]);
temp = *(src++);
*(dest++) = ((gFontHalfRowLookupTable[gFontHalfRowOffsets[temp & 0xFF]]) << 16) | (gFontHalfRowLookupTable[gFontHalfRowOffsets[temp >> 8]]);
*(dest++) = ((sFontHalfRowLookupTable[sFontHalfRowOffsets[temp & 0xFF]]) << 16) | (sFontHalfRowLookupTable[sFontHalfRowOffsets[temp >> 8]]);
temp = *(src++);
*(dest++) = ((gFontHalfRowLookupTable[gFontHalfRowOffsets[temp & 0xFF]]) << 16) | (gFontHalfRowLookupTable[gFontHalfRowOffsets[temp >> 8]]);
*(dest++) = ((sFontHalfRowLookupTable[sFontHalfRowOffsets[temp & 0xFF]]) << 16) | (sFontHalfRowLookupTable[sFontHalfRowOffsets[temp >> 8]]);
temp = *(src++);
*(dest++) = ((gFontHalfRowLookupTable[gFontHalfRowOffsets[temp & 0xFF]]) << 16) | (gFontHalfRowLookupTable[gFontHalfRowOffsets[temp >> 8]]);
*(dest++) = ((sFontHalfRowLookupTable[sFontHalfRowOffsets[temp & 0xFF]]) << 16) | (sFontHalfRowLookupTable[sFontHalfRowOffsets[temp >> 8]]);
temp = *(src++);
*(dest++) = ((gFontHalfRowLookupTable[gFontHalfRowOffsets[temp & 0xFF]]) << 16) | (gFontHalfRowLookupTable[gFontHalfRowOffsets[temp >> 8]]);
*(dest++) = ((sFontHalfRowLookupTable[sFontHalfRowOffsets[temp & 0xFF]]) << 16) | (sFontHalfRowLookupTable[sFontHalfRowOffsets[temp >> 8]]);
temp = *(src++);
*(dest++) = ((gFontHalfRowLookupTable[gFontHalfRowOffsets[temp & 0xFF]]) << 16) | (gFontHalfRowLookupTable[gFontHalfRowOffsets[temp >> 8]]);
*(dest++) = ((sFontHalfRowLookupTable[sFontHalfRowOffsets[temp & 0xFF]]) << 16) | (sFontHalfRowLookupTable[sFontHalfRowOffsets[temp >> 8]]);
}
u8 GetLastTextColor(u8 colorType)
// Unused
static u8 GetLastTextColor(u8 colorType)
{
switch (colorType)
{
case 0:
return gLastTextFgColor;
return sLastTextFgColor;
case 2:
return gLastTextBgColor;
return sLastTextBgColor;
case 1:
return gLastTextShadowColor;
return sLastTextShadowColor;
default:
return 0;
}
@ -644,7 +654,7 @@ void ClearTextSpan(struct TextPrinter *textPrinter, u32 width)
struct TextGlyph *glyph;
u8* glyphHeight;
if (gLastTextBgColor != 0)
if (sLastTextBgColor != TEXT_COLOR_TRANSPARENT)
{
window = &gWindows[textPrinter->printerTemplate.windowId];
pixels_data.pixels = window->tileData;
@ -660,7 +670,7 @@ void ClearTextSpan(struct TextPrinter *textPrinter, u32 width)
textPrinter->printerTemplate.currentY,
width,
*glyphHeight,
gLastTextBgColor);
sLastTextBgColor);
}
}
@ -798,20 +808,20 @@ void TextPrinterDrawDownArrow(struct TextPrinter *textPrinter)
switch (gTextFlags.useAlternateDownArrow)
{
case FALSE:
default:
arrowTiles = gDownArrowTiles;
break;
case TRUE:
arrowTiles = gDarkDownArrowTiles;
break;
case FALSE:
default:
arrowTiles = sDownArrowTiles;
break;
case TRUE:
arrowTiles = sDarkDownArrowTiles;
break;
}
BlitBitmapRectToWindow(
textPrinter->printerTemplate.windowId,
arrowTiles,
0,
gDownArrowYCoords[subStruct->downArrowYPosIdx],
sDownArrowYCoords[subStruct->downArrowYPosIdx],
8,
16,
textPrinter->printerTemplate.currentX,
@ -905,26 +915,16 @@ void DrawDownArrow(u8 windowId, u16 x, u16 y, u8 bgColor, bool8 drawArrow, u8 *c
{
switch (gTextFlags.useAlternateDownArrow)
{
case 0:
default:
arrowTiles = gDownArrowTiles;
break;
case 1:
arrowTiles = gDarkDownArrowTiles;
break;
case FALSE:
default:
arrowTiles = sDownArrowTiles;
break;
case TRUE:
arrowTiles = sDarkDownArrowTiles;
break;
}
BlitBitmapRectToWindow(
windowId,
arrowTiles,
0,
gDownArrowYCoords[*yCoordIndex & 3],
0x8,
0x10,
x,
y - 2,
0x8,
0x10);
BlitBitmapRectToWindow(windowId, arrowTiles, 0, sDownArrowYCoords[*yCoordIndex & 3], 8, 16, x, y - 2, 8, 16);
CopyWindowToVram(windowId, COPYWIN_GFX);
*counter = 8;
++*yCoordIndex;
@ -942,7 +942,7 @@ static u16 RenderText(struct TextPrinter *textPrinter)
switch (textPrinter->state)
{
case RENDER_STATE_HANDLE_CHAR:
if ((JOY_HELD(A_BUTTON | B_BUTTON)) && subStruct->hasPrintBeenSpedUp)
if (JOY_HELD(A_BUTTON | B_BUTTON) && subStruct->hasPrintBeenSpedUp)
textPrinter->delayCounter = 0;
if (textPrinter->delayCounter && textPrinter->textSpeed)
@ -1191,7 +1191,7 @@ static u16 RenderText(struct TextPrinter *textPrinter)
if (textPrinter->scrollDistance)
{
int scrollSpeed = GetPlayerTextSpeed();
int speed = gWindowVerticalScrollSpeeds[scrollSpeed];
int speed = sWindowVerticalScrollSpeeds[scrollSpeed];
if (textPrinter->scrollDistance < speed)
{
ScrollWindow(textPrinter->printerTemplate.windowId, 0, textPrinter->scrollDistance, PIXEL_FILL(textPrinter->printerTemplate.bgColor));
@ -1612,31 +1612,31 @@ u8 DrawKeypadIcon(u8 windowId, u8 keypadIconId, u16 x, u16 y)
{
BlitBitmapRectToWindow(
windowId,
gKeypadIconTiles + (gKeypadIcons[keypadIconId].tileOffset * 0x20),
sKeypadIconTiles + (sKeypadIcons[keypadIconId].tileOffset * 0x20),
0,
0,
0x80,
0x80,
x,
y,
gKeypadIcons[keypadIconId].width,
gKeypadIcons[keypadIconId].height);
return gKeypadIcons[keypadIconId].width;
sKeypadIcons[keypadIconId].width,
sKeypadIcons[keypadIconId].height);
return sKeypadIcons[keypadIconId].width;
}
u8 GetKeypadIconTileOffset(u8 keypadIconId)
{
return gKeypadIcons[keypadIconId].tileOffset;
return sKeypadIcons[keypadIconId].tileOffset;
}
u8 GetKeypadIconWidth(u8 keypadIconId)
{
return gKeypadIcons[keypadIconId].width;
return sKeypadIcons[keypadIconId].width;
}
u8 GetKeypadIconHeight(u8 keypadIconId)
{
return gKeypadIcons[keypadIconId].height;
return sKeypadIcons[keypadIconId].height;
}
void SetDefaultFontsPointer(void)
@ -1898,7 +1898,7 @@ static void DecompressGlyph_Bold(u16 glyphId)
{
const u16* glyphs;
glyphs = gFontBoldJapaneseGlyphs + (0x100 * (glyphId >> 4)) + (0x8 * (glyphId & 0xF));
glyphs = sFontBoldJapaneseGlyphs + (0x100 * (glyphId >> 4)) + (0x8 * (glyphId & 0xF));
DecompressGlyphTile(glyphs, gCurGlyph.gfxBufferTop);
DecompressGlyphTile(glyphs + 0x80, gCurGlyph.gfxBufferBottom);
gCurGlyph.width = 8;

View File

@ -117,13 +117,6 @@ struct GlyphWidthFunc
u32 (*func)(u16 glyphId, bool32 isJapanese);
};
struct KeypadIcon
{
u16 tileOffset;
u8 width;
u8 height;
};
typedef struct {
bool8 canABSpeedUpPrint:1;
bool8 useAlternateDownArrow:1;
@ -153,7 +146,6 @@ void GenerateFontHalfRowLookupTable(u8 fgColor, u8 bgColor, u8 shadowColor);
void SaveTextColors(u8 *fgColor, u8 *bgColor, u8 *shadowColor);
void RestoreTextColors(u8 *fgColor, u8 *bgColor, u8 *shadowColor);
void DecompressGlyphTile(const void *src_, void *dest_);
u8 GetLastTextColor(u8 colorType);
void CopyGlyphToWindow(struct TextPrinter *x);
void ClearTextSpan(struct TextPrinter *textPrinter, u32 width);
u8 GetMenuCursorDimensionByFont(u8, u8);

View File

Before

Width:  |  Height:  |  Size: 156 B

After

Width:  |  Height:  |  Size: 156 B

View File

Before

Width:  |  Height:  |  Size: 134 B

After

Width:  |  Height:  |  Size: 134 B

View File

Before

Width:  |  Height:  |  Size: 257 B

After

Width:  |  Height:  |  Size: 257 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 194 B

View File

Before

Width:  |  Height:  |  Size: 197 B

After

Width:  |  Height:  |  Size: 197 B

View File

Before

Width:  |  Height:  |  Size: 641 B

After

Width:  |  Height:  |  Size: 641 B

View File

Before

Width:  |  Height:  |  Size: 153 B

After

Width:  |  Height:  |  Size: 153 B

View File

Before

Width:  |  Height:  |  Size: 164 B

After

Width:  |  Height:  |  Size: 164 B

View File

Before

Width:  |  Height:  |  Size: 251 B

After

Width:  |  Height:  |  Size: 251 B

View File

Before

Width:  |  Height:  |  Size: 209 B

After

Width:  |  Height:  |  Size: 209 B

View File

Before

Width:  |  Height:  |  Size: 630 B

After

Width:  |  Height:  |  Size: 630 B

View File

@ -1,35 +0,0 @@
JASC-PAL
0100
32
0 197 0
246 197 123
255 255 255
106 115 123
0 0 0
189 106 65
49 65 74
255 222 156
180 131 82
189 139 106
197 197 197
255 255 255
0 0 0
0 0 0
0 0 0
255 74 16
0 197 0
246 197 123
255 255 255
106 115 123
0 0 0
189 106 65
49 65 74
255 222 156
180 131 82
189 139 106
197 197 197
197 197 197
0 0 0
0 0 0
0 0 0
189 106 65

View File

Before

Width:  |  Height:  |  Size: 239 B

After

Width:  |  Height:  |  Size: 239 B

View File

Before

Width:  |  Height:  |  Size: 194 B

After

Width:  |  Height:  |  Size: 194 B

View File

Before

Width:  |  Height:  |  Size: 168 B

After

Width:  |  Height:  |  Size: 168 B

View File

Before

Width:  |  Height:  |  Size: 291 B

After

Width:  |  Height:  |  Size: 291 B

View File

Before

Width:  |  Height:  |  Size: 160 B

After

Width:  |  Height:  |  Size: 160 B

View File

Before

Width:  |  Height:  |  Size: 245 B

After

Width:  |  Height:  |  Size: 245 B

View File

@ -697,7 +697,7 @@ $(PKNAVGFXDIR)/header.4bpp: %.4bpp: %.png
$(PKNAVGFXDIR)/device_outline.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 53
$(PKNAVGFXDIR)/ui_matchcall.4bpp: %.4bpp: %.png
$(PKNAVGFXDIR)/match_call/ui.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 13
$(INTERFACEGFXDIR)/region_map.8bpp: %.8bpp: %.png

View File

@ -77,7 +77,7 @@ void HandleIntroSlide(u8 terrainId);
int GetAnimBgAttribute(u8 bgId, u8 attributeId);
// battle_anim_mons.c
void TranslateSpriteInEllipseOverDuration(struct Sprite *sprite);
void TranslateSpriteInEllipse(struct Sprite *sprite);
void AnimTranslateLinearAndFlicker(struct Sprite *sprite);
void AnimTranslateLinearAndFlicker_Flipped(struct Sprite *sprite);
void AnimWeatherBallUp(struct Sprite *sprite);
@ -107,7 +107,7 @@ u8 GetBattlerYCoordWithElevation(u8 battlerId);
void WaitAnimForDuration(struct Sprite *sprite);
void AnimTravelDiagonally(struct Sprite *sprite);
void InitAnimLinearTranslation(struct Sprite *sprite);
void AnimTranslateLinear_WaitEnd(struct Sprite *sprite);
void AnimTranslateLinear_WithFollowup(struct Sprite *sprite);
u8 GetBattlerSpriteBGPriority(u8 battlerId);
void *LoadPointerFromVars(s16 bottom, s16 top);
void StorePointerInVars(s16 *bottom, s16 *top, const void *ptr);
@ -117,7 +117,7 @@ void GetBattleAnimBgData(struct BattleAnimBgData*, u32 arg1);
u8 GetBattlerSpriteSubpriority(u8 battlerId);
bool8 TranslateAnimHorizontalArc(struct Sprite *sprite);
void sub_80A6630(struct Sprite *sprite);
void TranslateMonSpriteLinearFixedPoint(struct Sprite *sprite);
void TranslateSpriteLinearByIdFixedPoint(struct Sprite *sprite);
void ResetSpriteRotScale(u8 spriteId);
void SetSpriteRotScale(u8 spriteId, s16 xScale, s16 yScale, u16 rotation);
void InitSpriteDataForLinearTranslation(struct Sprite *sprite);
@ -127,12 +127,12 @@ u32 GetBattleBgPalettesMask(u8 battleBackground, u8 attacker, u8 target, u8 atta
u32 GetBattleMonSpritePalettesMask(u8 playerLeft, u8 playerRight, u8 opponentLeft, u8 opponentRight);
u8 AnimDummyReturnArg(u8 battler);
s16 CloneBattlerSpriteWithBlend(u8);
void obj_delete_but_dont_free_vram(struct Sprite*);
void DestroySpriteWithActiveSheet(struct Sprite*);
u8 CreateInvisibleSpriteCopy(int, u8, int);
void AnimLoadCompressedBgTilemapHandleContest(struct BattleAnimBgData*, const void*, bool32);
void AnimLoadCompressedBgGfx(u32, const u32*, u32);
void UpdateAnimBg3ScreenSize(bool8);
void TranslateSpriteInGrowingCircleOverDuration(struct Sprite *);
void TranslateSpriteInGrowingCircle(struct Sprite *);
void sub_80A653C(struct Sprite *);
void SetBattlerSpriteYOffsetFromYScale(u8 spriteId);
void PrepareEruptAnimTaskData(struct Task *task, u8 a2, s16 a3, s16 a4, s16 a5, s16 a6, u16 a7);
@ -142,16 +142,16 @@ void AnimLoadCompressedBgTilemap(u32 bgId, const void *src);
void InitAnimFastLinearTranslationWithSpeed(struct Sprite *sprite);
bool8 AnimFastTranslateLinear(struct Sprite *sprite);
void InitAndRunAnimFastLinearTranslation(struct Sprite *sprite);
void TranslateMonSpriteLinear(struct Sprite *sprite);
void TranslateSpriteLinearById(struct Sprite *sprite);
void TranslateSpriteLinear(struct Sprite *sprite);
void AnimSpriteOnMonPos(struct Sprite *sprite);
void InitAnimLinearTranslationWithSpeedAndPos(struct Sprite *sprite);
void TranslateSpriteInCircleOverDuration(struct Sprite *sprite);
void TranslateSpriteInCircle(struct Sprite *sprite);
void SetGrayscaleOrOriginalPalette(u16 palNum, bool8 restoreOriginal);
void PrepareAffineAnimInTaskData(struct Task *task, u8 spriteId, const union AffineAnimCmd *affineAnimCmds);
bool8 RunAffineAnimFromTaskData(struct Task *task);
void AnimThrowProjectile(struct Sprite *sprite);
void sub_80A6BFC(struct BattleAnimBgData *unk, u8 unused);
void GetBgDataForTransform(struct BattleAnimBgData *dest, u8 battlerId);
u8 CreateAdditionalMonSpriteForMoveAnim(u16 species, bool8 isBackpic, u8 a3, s16 x, s16 y, u8 subpriority, u32 personality, u32 trainerId, u32 battlerId, bool32 ignoreDeoxysForm);
void ResetSpriteRotScale_PreserveAffine(struct Sprite *sprite);
void TradeMenuBouncePartySprites(struct Sprite *sprite);
@ -161,7 +161,7 @@ void SetBattlerSpriteYOffsetFromOtherYScale(u8 spriteId, u8 otherSpriteId);
u8 GetBattlerSide(u8 battler);
u8 GetBattlerPosition(u8 battler);
u8 GetBattlerAtPosition(u8 position);
void sub_80A64EC(struct Sprite *sprite);
void ConvertPosDataToTranslateLinearData(struct Sprite *sprite);
void InitAnimFastLinearTranslationWithSpeedAndPos(struct Sprite *sprite);
enum

View File

@ -50,7 +50,7 @@ void DoBounceEffect(u8 battlerId, u8 b, s8 c, s8 d);
void EndBounceEffect(u8 battlerId, bool8 b);
void SpriteCB_PlayerMonFromBall(struct Sprite *sprite);
void SpriteCB_TrainerThrowObject(struct Sprite *sprite);
void sub_8039E9C(struct Sprite *sprite);
void AnimSetCenterToCornerVecX(struct Sprite *sprite);
void BeginBattleIntroDummy(void);
void BeginBattleIntro(void);
void SwitchInClearSetData(void);

View File

@ -447,6 +447,9 @@
// Flag for BattlePutTextOnWindow. Never set
#define B_WIN_COPYTOVRAM (1 << 7)
// Indicator for the party summary bar to display an empty slot.
#define HP_EMPTY_SLOT 0xFFFF
#define MOVE_TARGET_SELECTED 0
#define MOVE_TARGET_DEPENDS (1 << 0)
#define MOVE_TARGET_USER_OR_SELECTED (1 << 1)

Some files were not shown because too many files have changed in this diff Show More