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

This commit is contained in:
ultima-soul 2021-11-27 21:39:46 -08:00
commit 01a90ca6c2
501 changed files with 12726 additions and 12212 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
@ -157,7 +157,7 @@
.byte 0xff, 0, 0xff, 0
.endm
.macro cry2_uncomp sample @ not compressed
.macro cry_reverse_uncomp sample @ not compressed
.byte 0x10, 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 "asm/macros.inc"
.include "asm/macros/battle_anim_script.inc"
@ -4960,7 +4961,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
@ -4985,7 +4986,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
@ -8499,14 +8500,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

@ -44,6 +44,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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 712 B

After

Width:  |  Height:  |  Size: 710 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 710 B

After

Width:  |  Height:  |  Size: 710 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 656 B

After

Width:  |  Height:  |  Size: 657 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 610 B

After

Width:  |  Height:  |  Size: 610 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 635 B

After

Width:  |  Height:  |  Size: 635 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 631 B

After

Width:  |  Height:  |  Size: 630 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 732 B

After

Width:  |  Height:  |  Size: 732 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 724 B

After

Width:  |  Height:  |  Size: 724 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 685 B

After

Width:  |  Height:  |  Size: 683 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 810 B

After

Width:  |  Height:  |  Size: 860 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 627 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 535 B

After

Width:  |  Height:  |  Size: 532 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 561 B

After

Width:  |  Height:  |  Size: 555 B

View File

@ -1,19 +1,19 @@
JASC-PAL
0100
16
153 211 165
32 32 49
65 65 82
164 123 8
197 172 16
246 230 82
131 90 41
246 238 148
98 74 16
152 208 160
16 16 16
148 139 123
238 230 205
230 123 148
139 32 32
189 41 41
0 56 96
144 120 64
192 176 88
248 232 112
120 72 32
248 232 168
96 80 40
144 136 120
232 224 200
224 136 136
136 72 72
200 96 96
0 0 0
0 0 0

View File

@ -1,19 +1,19 @@
JASC-PAL
0100
16
153 211 165
32 32 49
82 65 65
189 123 0
222 156 57
255 213 0
139 74 0
255 238 106
90 32 0
152 208 160
16 16 16
148 139 123
238 230 205
255 49 65
139 32 32
189 41 41
88 64 64
184 120 0
216 152 56
248 216 24
112 72 40
248 232 104
88 40 16
144 136 120
232 224 200
248 48 64
136 32 32
184 40 40
0 0 0
0 0 0

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 932 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 939 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 845 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

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