diff --git a/asm/macros/movement.inc b/asm/macros/movement.inc index 7cbd1ffc4..775efb245 100644 --- a/asm/macros/movement.inc +++ b/asm/macros/movement.inc @@ -1,136 +1,177 @@ - .macro create_movement name - enum _\name + .macro create_movement_action name:req, value:req .macro \name - .byte _\name + .byte \value .endm .endm - enum_start 0 - create_movement face_down - create_movement face_up - create_movement face_left - create_movement face_right - create_movement face_down_fast - create_movement face_up_fast - create_movement face_left_fast - create_movement face_right_fast - create_movement walk_slower_down - create_movement walk_slower_up - create_movement walk_slower_left - create_movement walk_slower_right - create_movement walk_slow_down - create_movement walk_slow_up - create_movement walk_slow_left - create_movement walk_slow_right - create_movement walk_down - create_movement walk_up - create_movement walk_left - create_movement walk_right - create_movement jump_2_down - create_movement jump_2_up - create_movement jump_2_left - create_movement jump_2_right - create_movement delay_1 - create_movement delay_2 - create_movement delay_4 - create_movement delay_8 - create_movement delay_16 - create_movement walk_fast_down - create_movement walk_fast_up - create_movement walk_fast_left - create_movement walk_fast_right - create_movement walk_in_place_slow_down - create_movement walk_in_place_slow_up - create_movement walk_in_place_slow_left - create_movement walk_in_place_slow_right - create_movement walk_in_place_down - create_movement walk_in_place_up - create_movement walk_in_place_left - create_movement walk_in_place_right - create_movement walk_in_place_fast_down - create_movement walk_in_place_fast_up - create_movement walk_in_place_fast_left - create_movement walk_in_place_fast_right - create_movement walk_in_place_fastest_down - create_movement walk_in_place_fastest_up - create_movement walk_in_place_fastest_left - create_movement walk_in_place_fastest_right - create_movement ride_water_current_down - create_movement ride_water_current_up - create_movement ride_water_current_lefft - create_movement ride_water_current_right - create_movement walk_fastest_down - create_movement walk_fastest_up - create_movement walk_fastest_left - create_movement walk_fastest_right - create_movement slide_down - create_movement slide_up - create_movement slide_left - create_movement slide_right - create_movement player_run_down - create_movement player_run_up - create_movement player_run_left - create_movement player_run_right - create_movement player_run_down_slow - create_movement player_run_up_slow - create_movement player_run_left_slow - create_movement player_run_right_slow - create_movement step_45 - create_movement jump_down_run - create_movement jump_up_run - create_movement jump_left_run - create_movement jump_right_run - create_movement face_player - create_movement face_away_player - create_movement lock_facing_direction - create_movement unlock_facing_direction - create_movement jump_down - create_movement jump_up - create_movement jump_left - create_movement jump_right - create_movement jump_in_place_down - create_movement jump_in_place_up - create_movement jump_in_place_left - create_movement jump_in_place_right - create_movement jump_in_place_down_up - create_movement jump_in_place_up_down - create_movement jump_in_place_left_right - create_movement jump_in_place_right_left - create_movement face_original_direction - create_movement nurse_joy_bow - create_movement enable_jump_landing_ground_effect - create_movement disable_jump_landing_ground_effect - create_movement disable_anim - create_movement restore_anim - create_movement set_invisible - create_movement set_visible - create_movement emote_exclamation_mark - create_movement emote_question_mark - create_movement emote_x - create_movement emote_double_exclamation_mark - create_movement emote_smile - create_movement reveal_trainer - create_movement rock_smash_break - create_movement cut_tree - - enum_start 0x94 - create_movement spin_down - create_movement spin_up - create_movement spin_left - create_movement spin_right - - enum_start 0x9b - create_movement walk_slowest_down - create_movement walk_slowest_up - create_movement walk_slowest_left - create_movement walk_slowest_right - create_movement shake_head_or_walk_in_place - - enum_start 0xa6 - create_movement jump_special_with_effect_down - create_movement jump_special_with_effect_up - create_movement jump_special_with_effect_left - create_movement jump_special_with_effect_right - - enum_start 0xfe - create_movement step_end + 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 face_down_fast, MOVEMENT_ACTION_FACE_DOWN_FAST + create_movement_action face_up_fast, MOVEMENT_ACTION_FACE_UP_FAST + create_movement_action face_left_fast, MOVEMENT_ACTION_FACE_LEFT_FAST + create_movement_action face_right_fast, MOVEMENT_ACTION_FACE_RIGHT_FAST + create_movement_action walk_slower_down, MOVEMENT_ACTION_WALK_SLOWER_DOWN + create_movement_action walk_slower_up, MOVEMENT_ACTION_WALK_SLOWER_UP + create_movement_action walk_slower_left, MOVEMENT_ACTION_WALK_SLOWER_LEFT + create_movement_action walk_slower_right, MOVEMENT_ACTION_WALK_SLOWER_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_lefft, 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 player_run_down_slow, MOVEMENT_ACTION_PLAYER_RUN_DOWN_SLOW + create_movement_action player_run_up_slow, MOVEMENT_ACTION_PLAYER_RUN_UP_SLOW + create_movement_action player_run_left_slow, MOVEMENT_ACTION_PLAYER_RUN_LEFT_SLOW + create_movement_action player_run_right_slow, MOVEMENT_ACTION_PLAYER_RUN_RIGHT_SLOW + 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_x, MOVEMENT_ACTION_EMOTE_X + create_movement_action emote_double_exclamation_mark, MOVEMENT_ACTION_EMOTE_DOUBLE_EXCL_MARK + create_movement_action emote_smile, MOVEMENT_ACTION_EMOTE_SMILE + 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 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 spin_down, MOVEMENT_ACTION_SPIN_DOWN + create_movement_action spin_up, MOVEMENT_ACTION_SPIN_UP + create_movement_action spin_left, MOVEMENT_ACTION_SPIN_LEFT + create_movement_action spin_right, MOVEMENT_ACTION_SPIN_RIGHT + create_movement_action raise_hand_and_stop, MOVEMENT_ACTION_RAISE_HAND_AND_STOP + create_movement_action raise_hand_and_jump, MOVEMENT_ACTION_RAISE_HAND_AND_JUMP + create_movement_action raise_hand_and_swim, MOVEMENT_ACTION_RAISE_HAND_AND_SWIM + create_movement_action walk_slowest_down, MOVEMENT_ACTION_WALK_SLOWEST_DOWN + create_movement_action walk_slowest_up, MOVEMENT_ACTION_WALK_SLOWEST_UP + create_movement_action walk_slowest_left, MOVEMENT_ACTION_WALK_SLOWEST_LEFT + create_movement_action walk_slowest_right, MOVEMENT_ACTION_WALK_SLOWEST_RIGHT + create_movement_action shake_head_or_walk_in_place, MOVEMENT_ACTION_SHAKE_HEAD_OR_WALK_IN_PLACE + create_movement_action glide_down, MOVEMENT_ACTION_GLIDE_DOWN + create_movement_action glide_up, MOVEMENT_ACTION_GLIDE_UP + create_movement_action glide_left, MOVEMENT_ACTION_GLIDE_LEFT + create_movement_action glide_right, MOVEMENT_ACTION_GLIDE_RIGHT + create_movement_action fly_up, MOVEMENT_ACTION_FLY_UP + create_movement_action fly_down, MOVEMENT_ACTION_FLY_DOWN + create_movement_action jump_special_with_effect_down, MOVEMENT_ACTION_JUMP_SPECIAL_WITH_EFFECT_DOWN + create_movement_action jump_special_with_effect_up, MOVEMENT_ACTION_JUMP_SPECIAL_WITH_EFFECT_UP + create_movement_action jump_special_with_effect_left, MOVEMENT_ACTION_JUMP_SPECIAL_WITH_EFFECT_LEFT + create_movement_action jump_special_with_effect_right, MOVEMENT_ACTION_JUMP_SPECIAL_WITH_EFFECT_RIGHT + create_movement_action step_end, MOVEMENT_ACTION_STEP_END diff --git a/data/event_scripts.s b/data/event_scripts.s index 5b2f933ff..e76eb50f5 100644 --- a/data/event_scripts.s +++ b/data/event_scripts.s @@ -1175,16 +1175,16 @@ EventScript_ReleaseEnd:: @ Unused EventScript_DelayedLookAround:: lockall - applymovement VAR_0x8004, Movement_WalkInPlaceFastestLeft + applymovement VAR_0x8004, Movement_WalkInPlaceFasterLeft waitmovement 0 delay 20 - applymovement VAR_0x8004, Movement_WalkInPlaceFastestUp + applymovement VAR_0x8004, Movement_WalkInPlaceFasterUp waitmovement 0 delay 20 - applymovement VAR_0x8004, Movement_WalkInPlaceFastestRight + applymovement VAR_0x8004, Movement_WalkInPlaceFasterRight waitmovement 0 delay 20 - applymovement VAR_0x8004, Movement_WalkInPlaceFastestDown + applymovement VAR_0x8004, Movement_WalkInPlaceFasterDown waitmovement 0 delay 20 releaseall diff --git a/data/maps/CeruleanCity/scripts.inc b/data/maps/CeruleanCity/scripts.inc index f8b145240..be2405292 100644 --- a/data/maps/CeruleanCity/scripts.inc +++ b/data/maps/CeruleanCity/scripts.inc @@ -99,17 +99,17 @@ CeruleanCity_EventScript_RivalStartExitRight:: CeruleanCity_Movement_PlayerWatchRivalExit:: delay_16 delay_8 - walk_in_place_fastest_right + walk_in_place_faster_right delay_16 - walk_in_place_fastest_down + walk_in_place_faster_down step_end CeruleanCity_Movement_PlayerWatchRivalExitRight:: delay_16 delay_8 - walk_in_place_fastest_left + walk_in_place_faster_left delay_16 - walk_in_place_fastest_down + walk_in_place_faster_down step_end CeruleanCity_Movement_RivalEnter:: @@ -204,9 +204,9 @@ CeruleanCity_EventScript_NoRoomForTM28:: CeruleanCity_EventScript_GruntTriggerTop:: lockall setvar VAR_TEMP_1, 0 - applymovement LOCALID_GRUNT, Movement_WalkInPlaceFastestUp + applymovement LOCALID_GRUNT, Movement_WalkInPlaceFasterUp waitmovement 0 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestDown + applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterDown waitmovement 0 goto CeruleanCity_EventScript_GruntTrigger end @@ -214,9 +214,9 @@ CeruleanCity_EventScript_GruntTriggerTop:: CeruleanCity_EventScript_GruntTriggerBottom:: lockall setvar VAR_TEMP_1, 1 - applymovement LOCALID_GRUNT, Movement_WalkInPlaceFastestDown + applymovement LOCALID_GRUNT, Movement_WalkInPlaceFasterDown waitmovement 0 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestUp + applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterUp waitmovement 0 goto CeruleanCity_EventScript_GruntTrigger end diff --git a/data/maps/CinnabarIsland/scripts.inc b/data/maps/CinnabarIsland/scripts.inc index 1adc8c339..7746af9a7 100644 --- a/data/maps/CinnabarIsland/scripts.inc +++ b/data/maps/CinnabarIsland/scripts.inc @@ -107,12 +107,12 @@ CinnabarIsland_EventScript_BillScene:: end CinnabarIsland_EventScript_BillFacePlayer1:: - applymovement LOCALID_BILL, Movement_WalkInPlaceFastestUp + applymovement LOCALID_BILL, Movement_WalkInPlaceFasterUp waitmovement 0 return CinnabarIsland_EventScript_BillFacePlayer2:: - applymovement LOCALID_BILL, Movement_WalkInPlaceFastestLeft + applymovement LOCALID_BILL, Movement_WalkInPlaceFasterLeft waitmovement 0 return @@ -124,7 +124,7 @@ CinnabarIsland_EventScript_BillApproachPlayer1:: CinnabarIsland_EventScript_BillApproachPlayer2:: applymovement LOCALID_BILL, CinnabarIsland_Movement_BillApproachPlayer2 waitmovement 0 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestRight + applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight waitmovement 0 return @@ -175,13 +175,13 @@ CinnabarIsland_EventScript_BillReturnToPokeCenter:: CinnabarIsland_Movement_PlayerWatchBillExit:: walk_left - walk_in_place_fastest_right + walk_in_place_faster_right step_end CinnabarIsland_Movement_BillApproachDoor:: delay_16 walk_left - walk_in_place_fastest_up + walk_in_place_faster_up step_end CinnabarIsland_Movement_BillReEnterPokeCenter:: @@ -272,7 +272,7 @@ CinnabarIsland_Movement_BillFaceBoat:: delay_16 delay_16 delay_8 - walk_in_place_fastest_right + walk_in_place_faster_right step_end CinnabarIsland_Movement_ApproachShore:: @@ -295,7 +295,7 @@ CinnabarIsland_Movement_PlayerBoardBoat:: walk_right walk_down walk_down - walk_in_place_fastest_right + walk_in_place_faster_right delay_4 walk_right delay_4 @@ -313,7 +313,7 @@ CinnabarIsland_Movement_PlayerBoardBoatFromShore:: @ Triggered when VAR_TEMP_1 is 0 CinnabarIsland_EventScript_GymDoorLocked:: lockall - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestUp + applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterUp waitmovement 0 delay 20 msgbox CinnabarIsland_Text_DoorIsLocked diff --git a/data/maps/CinnabarIsland_Gym/scripts.inc b/data/maps/CinnabarIsland_Gym/scripts.inc index e9df5511b..58da8ac3f 100644 --- a/data/maps/CinnabarIsland_Gym/scripts.inc +++ b/data/maps/CinnabarIsland_Gym/scripts.inc @@ -271,13 +271,13 @@ CinnabarIsland_Gym_EventScript_BattleQuinn:: end CinnabarIsland_Gym_EventScript_QuinnApproachLeft:: - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestRight + applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight applymovement LOCALID_QUINN, CinnabarIsland_Gym_Movement_QuinnApproachLeft waitmovement 0 return CinnabarIsland_Gym_EventScript_QuinnApproachRight:: - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestRight + applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight applymovement LOCALID_QUINN, CinnabarIsland_Gym_Movement_QuinnApproachRight waitmovement 0 return @@ -363,13 +363,13 @@ CinnabarIsland_Gym_Movement_AveryApproachLeft:: CinnabarIsland_Gym_Movement_AveryApproachRight:: walk_up walk_up - walk_in_place_fastest_left + walk_in_place_faster_left step_end CinnabarIsland_Gym_Movement_PlayerFaceAvery:: delay_16 delay_16 - walk_in_place_fastest_right + walk_in_place_faster_right step_end CinnabarIsland_Gym_EventScript_Quiz3Left:: @@ -424,13 +424,13 @@ CinnabarIsland_Gym_EventScript_BattleRamon:: end CinnabarIsland_Gym_EventScript_RamonApproachLeft:: - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestRight + applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight applymovement LOCALID_RAMON, CinnabarIsland_Gym_Movement_RamonApproachLeft waitmovement 0 return CinnabarIsland_Gym_EventScript_RamonApproachRight:: - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestRight + applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight applymovement LOCALID_RAMON, CinnabarIsland_Gym_Movement_RamonApproachRight waitmovement 0 return @@ -496,13 +496,13 @@ CinnabarIsland_Gym_EventScript_BattleDerek:: end CinnabarIsland_Gym_EventScript_DerekApproachLeft:: - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestRight + applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight applymovement LOCALID_DEREK, CinnabarIsland_Gym_Movement_DerekApproachLeft waitmovement 0 return CinnabarIsland_Gym_EventScript_DerekApproachRight:: - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestRight + applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight applymovement LOCALID_DEREK, CinnabarIsland_Gym_Movement_DerekApproachRight waitmovement 0 return @@ -568,13 +568,13 @@ CinnabarIsland_Gym_EventScript_BattleDusty:: end CinnabarIsland_Gym_EventScript_DustyApproachLeft:: - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestRight + applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight applymovement LOCALID_DUSTY, CinnabarIsland_Gym_Movement_DustyApproachLeft waitmovement 0 return CinnabarIsland_Gym_EventScript_DustyApproachRight:: - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestRight + applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight applymovement LOCALID_DUSTY, CinnabarIsland_Gym_Movement_DustyApproachRight waitmovement 0 return @@ -640,13 +640,13 @@ CinnabarIsland_Gym_EventScript_BattleZac:: end CinnabarIsland_Gym_EventScript_ZacApproachLeft:: - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestRight + applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight applymovement LOCALID_ZAC, CinnabarIsland_Gym_Movement_ZacApproachLeft waitmovement 0 return CinnabarIsland_Gym_EventScript_ZacApproachRight:: - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestRight + applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight applymovement LOCALID_ZAC, CinnabarIsland_Gym_Movement_ZacApproachRight waitmovement 0 return diff --git a/data/maps/FiveIsland_LostCave_Room10/scripts.inc b/data/maps/FiveIsland_LostCave_Room10/scripts.inc index 21909c63e..646136ff4 100644 --- a/data/maps/FiveIsland_LostCave_Room10/scripts.inc +++ b/data/maps/FiveIsland_LostCave_Room10/scripts.inc @@ -54,9 +54,9 @@ FiveIsland_LostCave_Room10_Movement_SelphyWander:: delay_16 walk_right delay_16 - walk_in_place_fastest_up + walk_in_place_faster_up delay_16 - walk_in_place_fastest_down + walk_in_place_faster_down step_end FiveIsland_LostCave_Room10_Movement_SelphyApproach:: diff --git a/data/maps/FiveIsland_MemorialPillar/scripts.inc b/data/maps/FiveIsland_MemorialPillar/scripts.inc index 40e3fe73a..336b45902 100644 --- a/data/maps/FiveIsland_MemorialPillar/scripts.inc +++ b/data/maps/FiveIsland_MemorialPillar/scripts.inc @@ -13,7 +13,7 @@ FiveIsland_MemorialPillar_EventScript_MemorialMan:: waitmovement 0 delay 45 msgbox FiveIsland_MemorialPillar_Text_YourMonsLookHealthy - applymovement LOCALID_MEMORIAL_MAN, Movement_WalkInPlaceFastestUp + applymovement LOCALID_MEMORIAL_MAN, Movement_WalkInPlaceFasterUp waitmovement 0 msgbox FiveIsland_MemorialPillar_Text_ThisIsWhereIBuriedMyOnix release @@ -54,10 +54,10 @@ FiveIsland_MemorialPillar_EventScript_PlaceLemonade:: removeitem ITEM_LEMONADE msgbox FiveIsland_MemorialPillar_Text_PlacedCanOfLemonade closemessage - applymovement LOCALID_MEMORIAL_MAN, Movement_WalkInPlaceFastestRight + applymovement LOCALID_MEMORIAL_MAN, Movement_WalkInPlaceFasterRight waitmovement 0 delay 45 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestLeft + applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterLeft waitmovement 0 textcolor NPC_TEXT_COLOR_MALE msgbox FiveIsland_MemorialPillar_Text_ThankYouPleaseTakeThis @@ -69,7 +69,7 @@ FiveIsland_MemorialPillar_EventScript_PlaceLemonade:: FiveIsland_MemorialPillar_EventScript_ReceivedTM42:: msgbox FiveIsland_MemorialPillar_Text_BeGoodToYourMonsToo - applymovement LOCALID_MEMORIAL_MAN, Movement_WalkInPlaceFastestUp + applymovement LOCALID_MEMORIAL_MAN, Movement_WalkInPlaceFasterUp waitmovement 0 setflag FLAG_GOT_TM42_AT_MEMORIAL_PILLAR return diff --git a/data/maps/FiveIsland_ResortGorgeous/scripts.inc b/data/maps/FiveIsland_ResortGorgeous/scripts.inc index 2d18332cd..a9ad66461 100644 --- a/data/maps/FiveIsland_ResortGorgeous/scripts.inc +++ b/data/maps/FiveIsland_ResortGorgeous/scripts.inc @@ -22,7 +22,7 @@ FiveIsland_ResortGorgeous_EventScript_SelphyReturnHomeScene:: textcolor NPC_TEXT_COLOR_FEMALE msgbox FiveIsland_ResortGorgeous_Text_SelphyThanksYouMayGoNow closemessage - applymovement LOCALID_SELPHY, Movement_WalkInPlaceFastestUp + applymovement LOCALID_SELPHY, Movement_WalkInPlaceFasterUp waitmovement 0 opendoor 39, 8 waitdooranim diff --git a/data/maps/FiveIsland_ResortGorgeous_House/scripts.inc b/data/maps/FiveIsland_ResortGorgeous_House/scripts.inc index 2b98afca2..36ada6601 100644 --- a/data/maps/FiveIsland_ResortGorgeous_House/scripts.inc +++ b/data/maps/FiveIsland_ResortGorgeous_House/scripts.inc @@ -44,7 +44,7 @@ FiveIsland_ResortGorgeous_House_EventScript_ShowRequestedMon:: waitmovement 0 textcolor NPC_TEXT_COLOR_MALE msgbox FiveIsland_ResortGorgeous_House_Text_ButlerYesMyLady - applymovement LOCALID_SELPHY, Movement_WalkInPlaceFastestUp + applymovement LOCALID_SELPHY, Movement_WalkInPlaceFasterUp waitmovement 0 textcolor NPC_TEXT_COLOR_FEMALE msgbox FiveIsland_ResortGorgeous_House_Text_SelphyGiveTokenOfAppreciation @@ -65,25 +65,25 @@ FiveIsland_ResortGorgeous_House_EventScript_ShowRequestedMon:: end FiveIsland_ResortGorgeous_House_EventScript_ButlerApproachPlayerNorth:: - applymovement LOCALID_SELPHY, Movement_WalkInPlaceFastestDown + applymovement LOCALID_SELPHY, Movement_WalkInPlaceFasterDown applymovement LOCALID_BUTLER, FiveIsland_ResortGorgeous_House_Movement_ButlerApproachPlayerNorth waitmovement 0 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestLeft + applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterLeft waitmovement 0 return FiveIsland_ResortGorgeous_House_EventScript_ButlerApproachPlayerSouth:: applymovement LOCALID_BUTLER, FiveIsland_ResortGorgeous_House_Movement_ButlerApproachPlayerSouth waitmovement 0 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestUp + applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterUp waitmovement 0 return FiveIsland_ResortGorgeous_House_EventScript_ButlerApproachPlayerEast:: - applymovement LOCALID_SELPHY, Movement_WalkInPlaceFastestLeft + applymovement LOCALID_SELPHY, Movement_WalkInPlaceFasterLeft applymovement LOCALID_BUTLER, FiveIsland_ResortGorgeous_House_Movement_ButlerApproachPlayerEast waitmovement 0 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestUp + applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterUp waitmovement 0 return @@ -114,13 +114,13 @@ FiveIsland_ResortGorgeous_House_Movement_ButlerApproachPlayerNorth:: walk_down walk_down walk_down - walk_in_place_fastest_right + walk_in_place_faster_right step_end FiveIsland_ResortGorgeous_House_Movement_ButlerApproachPlayerSouth:: walk_left walk_left - walk_in_place_fastest_down + walk_in_place_faster_down step_end FiveIsland_ResortGorgeous_House_Movement_ButlerApproachPlayerEast:: diff --git a/data/maps/FiveIsland_RocketWarehouse/scripts.inc b/data/maps/FiveIsland_RocketWarehouse/scripts.inc index f4933655d..a5b30422f 100644 --- a/data/maps/FiveIsland_RocketWarehouse/scripts.inc +++ b/data/maps/FiveIsland_RocketWarehouse/scripts.inc @@ -43,7 +43,7 @@ FiveIsland_RocketWarehouse_EventScript_Computer:: FiveIsland_RocketWarehouse_EventScript_Admin2Trigger:: lockall - applymovement LOCALID_ADMIN2, Movement_WalkInPlaceFastestLeft + applymovement LOCALID_ADMIN2, Movement_WalkInPlaceFasterLeft waitmovement 0 setvar VAR_MAP_SCENE_ROCKET_WAREHOUSE, 1 releaseall @@ -100,7 +100,7 @@ FiveIsland_RocketWarehouse_EventScript_DefeatedAdmin2:: end FiveIsland_RocketWarehouse_EventScript_PlayerFaceAdmin2:: - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestRight + applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight waitmovement 0 return @@ -138,7 +138,7 @@ FiveIsland_RocketWarehouse_EventScript_DefeatedAdmin1:: FiveIsland_RocketWarehouse_EventScript_PlayerFaceAdmin1:: goto_if_eq PLAYER_X_POS, 27, EventScript_Return - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestRight + applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight waitmovement 0 return @@ -153,27 +153,27 @@ FiveIsland_RocketWarehouse_EventScript_AdminWalkToSwitch:: return FiveIsland_RocketWarehouse_EventScript_AdminFaceSwitch:: - applymovement LOCALID_ADMIN1, Movement_WalkInPlaceFastestUp + applymovement LOCALID_ADMIN1, Movement_WalkInPlaceFasterUp waitmovement 0 return FiveIsland_RocketWarehouse_EventScript_AdminFacePlayerLeft:: - applymovement LOCALID_ADMIN1, Movement_WalkInPlaceFastestLeft + applymovement LOCALID_ADMIN1, Movement_WalkInPlaceFasterLeft waitmovement 0 return FiveIsland_RocketWarehouse_EventScript_AdminFacePlayerDown:: - applymovement LOCALID_ADMIN1, Movement_WalkInPlaceFastestDown + applymovement LOCALID_ADMIN1, Movement_WalkInPlaceFasterDown waitmovement 0 return FiveIsland_RocketWarehouse_Movement_AdminWalkToSwitchFar:: walk_right walk_right - walk_in_place_fastest_up + walk_in_place_faster_up step_end FiveIsland_RocketWarehouse_Movement_AdminWalkToSwitch:: walk_right - walk_in_place_fastest_up + walk_in_place_faster_up step_end diff --git a/data/maps/FourIsland/scripts.inc b/data/maps/FourIsland/scripts.inc index 3e60c34b4..be6dcd7cf 100644 --- a/data/maps/FourIsland/scripts.inc +++ b/data/maps/FourIsland/scripts.inc @@ -29,7 +29,7 @@ FourIsland_OnFrame:: FourIsland_EventScript_RivalScene:: lockall textcolor NPC_TEXT_COLOR_MALE - applymovement LOCALID_RIVAL, Movement_WalkInPlaceFastestDown + applymovement LOCALID_RIVAL, Movement_WalkInPlaceFasterDown waitmovement 0 playbgm MUS_ENCOUNTER_RIVAL, 0 applymovement LOCALID_RIVAL, Movement_ExclamationMark @@ -67,7 +67,7 @@ FourIsland_Movement_RivalExit:: FourIsland_Movement_PlayerWatchRivalExit:: walk_left - walk_in_place_fastest_right + walk_in_place_faster_right step_end FourIsland_EventScript_DaycareMan:: diff --git a/data/maps/FourIsland_IcefallCave_Back/scripts.inc b/data/maps/FourIsland_IcefallCave_Back/scripts.inc index 2603e25e1..987a08764 100644 --- a/data/maps/FourIsland_IcefallCave_Back/scripts.inc +++ b/data/maps/FourIsland_IcefallCave_Back/scripts.inc @@ -27,17 +27,17 @@ FourIsland_IcefallCave_Back_EventScript_LoreleiRocketsScene:: playse SE_PIN applymovement LOCALID_LORELEI, Movement_ExclamationMark waitmovement 0 - applymovement LOCALID_LORELEI, Movement_WalkInPlaceFastestDown + applymovement LOCALID_LORELEI, Movement_WalkInPlaceFasterDown waitmovement 0 applymovement LOCALID_LORELEI, Movement_Delay48 waitmovement 0 textcolor NPC_TEXT_COLOR_FEMALE msgbox FourIsland_IcefallCave_Back_Text_LoreleiPlayerHelpMeKickPoachersOut closemessage - applymovement LOCALID_LORELEI, Movement_WalkInPlaceFastestRight + applymovement LOCALID_LORELEI, Movement_WalkInPlaceFasterRight waitmovement 0 delay 18 - applymovement LOCALID_LORELEI, Movement_WalkInPlaceFastestDown + applymovement LOCALID_LORELEI, Movement_WalkInPlaceFasterDown waitmovement 0 delay 35 applymovement LOCALID_ROCKET3, FourIsland_IcefallCave_Back_Movement_Rocket3FaceLorelei @@ -81,7 +81,7 @@ FourIsland_IcefallCave_Back_EventScript_LoreleiRocketsScene:: delay 50 applymovement LOCALID_LORELEI, FourIsland_IcefallCave_Back_Movement_LoreleiWalkToPlayer waitmovement 0 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestLeft + applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterLeft waitmovement 0 textcolor NPC_TEXT_COLOR_FEMALE msgbox FourIsland_IcefallCave_Back_Text_ThankYouThisIsAwful @@ -100,10 +100,10 @@ FourIsland_IcefallCave_Back_Movement_PlayerToRockets:: FourIsland_IcefallCave_Back_Movement_PlayerWatchRocketsExit:: delay_16 - walk_in_place_fastest_left + walk_in_place_faster_left delay_16 delay_16 - walk_in_place_fastest_down + walk_in_place_faster_down step_end FourIsland_IcefallCave_Back_Movement_WalkInPlaceDown:: @@ -162,7 +162,7 @@ FourIsland_IcefallCave_Back_Movement_Rocket3Exit:: FourIsland_IcefallCave_Back_Movement_Rocket3FaceLorelei:: delay_16 delay_8 - walk_in_place_fastest_right + walk_in_place_faster_right step_end FourIsland_IcefallCave_Back_Movement_UnusedWalkLeft:: @@ -181,10 +181,10 @@ FourIsland_IcefallCave_Back_Movement_WalkInPlaceUp:: FourIsland_IcefallCave_Back_Movement_LoreleiWatchRocketsExit:: delay_8 - walk_in_place_fastest_right + walk_in_place_faster_right delay_16 delay_16 - walk_in_place_fastest_down + walk_in_place_faster_down step_end FourIsland_IcefallCave_Back_Movement_LoreleiWalkToPlayer:: diff --git a/data/maps/FuchsiaCity_SafariZone_Entrance/scripts.inc b/data/maps/FuchsiaCity_SafariZone_Entrance/scripts.inc index da846862a..474f29023 100644 --- a/data/maps/FuchsiaCity_SafariZone_Entrance/scripts.inc +++ b/data/maps/FuchsiaCity_SafariZone_Entrance/scripts.inc @@ -100,7 +100,7 @@ FuchsiaCity_SafariZone_Entrance_EventScript_EntryTriggerLeft:: FuchsiaCity_SafariZone_Entrance_EventScript_AskEnterSafariZone:: textcolor NPC_TEXT_COLOR_MALE msgbox FuchsiaCity_SafariZone_Entrance_Text_WelcomeToSafariZone - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestRight + applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight waitmovement 0 showmoneybox 0, 0 msgbox FuchsiaCity_SafariZone_Entrance_Text_PlaySafariGameFor500, MSGBOX_YESNO diff --git a/data/maps/IndigoPlateau_Exterior/scripts.inc b/data/maps/IndigoPlateau_Exterior/scripts.inc index a3226e121..6c46913d7 100644 --- a/data/maps/IndigoPlateau_Exterior/scripts.inc +++ b/data/maps/IndigoPlateau_Exterior/scripts.inc @@ -103,12 +103,12 @@ IndigoPlateau_Exterior_Movement_PlayerExitBuilding:: IndigoPlateau_Exterior_Movement_PlayerWatchRivalLeave:: delay_16 delay_4 - walk_in_place_fastest_down + walk_in_place_faster_down step_end IndigoPlateau_Exterior_Movement_PlayerWatchOakLeave:: delay_8 - walk_in_place_fastest_right + walk_in_place_faster_right delay_16 delay_16 delay_16 @@ -120,7 +120,7 @@ IndigoPlateau_Exterior_Movement_PlayerWatchOakLeave:: delay_16 delay_16 delay_16 - walk_in_place_fastest_down + walk_in_place_faster_down step_end IndigoPlateau_Exterior_Movement_PlayerBeginLeave:: @@ -133,7 +133,7 @@ IndigoPlateau_Exterior_Movement_PlayerBeginLeave:: step_end IndigoPlateau_Exterior_Movement_PlayerTurnAround:: - walk_in_place_fastest_down + walk_in_place_faster_down step_end IndigoPlateau_Exterior_Movement_PushPlayerOutOfWay:: @@ -144,7 +144,7 @@ IndigoPlateau_Exterior_Movement_PushPlayerOutOfWay:: step_end IndigoPlateau_Exterior_Movement_PlayerFaceLeague:: - walk_in_place_fastest_up + walk_in_place_faster_up step_end IndigoPlateau_Exterior_Movement_RivalLeave:: @@ -162,7 +162,7 @@ IndigoPlateau_Exterior_Movement_RivalExitBuilding:: step_end IndigoPlateau_Exterior_Movement_OakLeave:: - walk_in_place_fastest_left + walk_in_place_faster_left delay_16 delay_16 delay_16 @@ -173,7 +173,7 @@ IndigoPlateau_Exterior_Movement_OakLeave:: delay_16 delay_16 delay_16 - walk_in_place_fastest_down + walk_in_place_faster_down delay_16 walk_down walk_down diff --git a/data/maps/MtEmber_Exterior/scripts.inc b/data/maps/MtEmber_Exterior/scripts.inc index bca9934ee..d5519c96a 100644 --- a/data/maps/MtEmber_Exterior/scripts.inc +++ b/data/maps/MtEmber_Exterior/scripts.inc @@ -95,14 +95,14 @@ MtEmber_Exterior_EventScript_RocketPasswordScene:: waitmovement 0 waitbuttonpress msgbox MtEmber_Exterior_Text_FirstPasswordGoldeen - applymovement LOCALID_GRUNT1, Movement_WalkInPlaceFastestDown + applymovement LOCALID_GRUNT1, Movement_WalkInPlaceFasterDown waitmovement 0 playse SE_PIN applymovement LOCALID_GRUNT1, Movement_ExclamationMark waitmovement 0 applymovement LOCALID_GRUNT1, Movement_Delay48 waitmovement 0 - applymovement LOCALID_GRUNT2, Movement_WalkInPlaceFastestDown + applymovement LOCALID_GRUNT2, Movement_WalkInPlaceFasterDown waitmovement 0 call MtEmber_Exterior_EventScript_RocketsFaceDown msgbox MtEmber_Exterior_Text_SnoopsBeenListeningIn diff --git a/data/maps/MtMoon_B2F/scripts.inc b/data/maps/MtMoon_B2F/scripts.inc index 201a9636f..32213a5b4 100644 --- a/data/maps/MtMoon_B2F/scripts.inc +++ b/data/maps/MtMoon_B2F/scripts.inc @@ -17,7 +17,7 @@ MtMoon_B2F_EventScript_ShowFossils:: MtMoon_B2F_EventScript_MiguelTrigger:: lockall - applymovement LOCALID_MIGUEL, Movement_WalkInPlaceFastestRight + applymovement LOCALID_MIGUEL, Movement_WalkInPlaceFasterRight waitmovement 0 call MtMoon_B2F_EventScript_BattleMiguel releaseall diff --git a/data/maps/OneIsland_PokemonCenter_1F/scripts.inc b/data/maps/OneIsland_PokemonCenter_1F/scripts.inc index eb3c47d44..05c082315 100644 --- a/data/maps/OneIsland_PokemonCenter_1F/scripts.inc +++ b/data/maps/OneIsland_PokemonCenter_1F/scripts.inc @@ -63,46 +63,46 @@ OneIsland_PokemonCenter_1F_EventScript_MeetCelioScene:: applymovement LOCALID_BILL, OneIsland_PokemonCenter_1F_Movement_BillWalkToCelio waitmovement 0 msgbox OneIsland_PokemonCenter_1F_Text_BillHeyThereCelio - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestRight + applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight waitmovement 0 playse SE_PIN applymovement LOCALID_CELIO, Movement_ExclamationMark waitmovement 0 - applymovement LOCALID_CELIO, Movement_WalkInPlaceFastestLeft + applymovement LOCALID_CELIO, Movement_WalkInPlaceFasterLeft waitmovement 0 applymovement LOCALID_CELIO, Movement_Delay48 waitmovement 0 msgbox OneIsland_PokemonCenter_1F_Text_CelioCantBelieveYouCameOut msgbox OneIsland_PokemonCenter_1F_Text_BillHowsYourResearchComing - applymovement LOCALID_BILL, Movement_WalkInPlaceFastestDown - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestUp + applymovement LOCALID_BILL, Movement_WalkInPlaceFasterDown + applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterUp waitmovement 0 msgbox OneIsland_PokemonCenter_1F_Text_ThisIsMyBuddyCelio - applymovement LOCALID_BILL, Movement_WalkInPlaceFastestRight + applymovement LOCALID_BILL, Movement_WalkInPlaceFasterRight waitmovement 0 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestRight + applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight waitmovement 0 call_if_set FLAG_SYS_GAME_CLEAR, OneIsland_PokemonCenter_1F_EventScript_IntroducePlayerChamp call_if_unset FLAG_SYS_GAME_CLEAR, OneIsland_PokemonCenter_1F_EventScript_IntroducePlayerNotChamp - applymovement LOCALID_CELIO, Movement_WalkInPlaceFastestDown + applymovement LOCALID_CELIO, Movement_WalkInPlaceFasterDown waitmovement 0 msgbox OneIsland_PokemonCenter_1F_Text_CelioThatsReallyImpressive msgbox OneIsland_PokemonCenter_1F_Text_BillBringMeUpToSpeed - applymovement LOCALID_CELIO, Movement_WalkInPlaceFastestLeft + applymovement LOCALID_CELIO, Movement_WalkInPlaceFasterLeft waitmovement 0 msgbox OneIsland_PokemonCenter_1F_Text_CelioPCsCantLinkWithYours closemessage - applymovement LOCALID_BILL, Movement_WalkInPlaceFastestUp + applymovement LOCALID_BILL, Movement_WalkInPlaceFasterUp waitmovement 0 msgbox OneIsland_PokemonCenter_1F_Text_BillLetMeHelpYou - applymovement LOCALID_BILL, Movement_WalkInPlaceFastestDown + applymovement LOCALID_BILL, Movement_WalkInPlaceFasterDown waitmovement 0 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestUp + applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterUp waitmovement 0 msgbox OneIsland_PokemonCenter_1F_Text_CanYouDeliverThisMeteoritePlayer msgreceiveditem OneIsland_PokemonCenter_1F_Text_AcceptedMeteoriteFromBill, ITEM_METEORITE, 1, MUS_OBTAIN_KEY_ITEM additem ITEM_METEORITE - applymovement LOCALID_CELIO, Movement_WalkInPlaceFastestDown + applymovement LOCALID_CELIO, Movement_WalkInPlaceFasterDown waitmovement 0 msgbox OneIsland_PokemonCenter_1F_Text_CelioPleaseTakeThis giveitem_msg OneIsland_PokemonCenter_1F_Text_ObtainedTriPass, ITEM_TRI_PASS, 1, MUS_OBTAIN_KEY_ITEM @@ -112,9 +112,9 @@ OneIsland_PokemonCenter_1F_EventScript_MeetCelioScene:: setflag FLAG_SYS_SEVII_MAP_123 msgbox OneIsland_PokemonCenter_1F_Text_BillCatchYouLater closemessage - applymovement LOCALID_BILL, Movement_WalkInPlaceFastestUp + applymovement LOCALID_BILL, Movement_WalkInPlaceFasterUp waitmovement 0 - applymovement LOCALID_CELIO, Movement_WalkInPlaceFastestUp + applymovement LOCALID_CELIO, Movement_WalkInPlaceFasterUp waitmovement 0 setflag FLAG_SYS_PC_STORAGE_DISABLED setvar VAR_MAP_SCENE_ONE_ISLAND_POKEMON_CENTER_1F, 1 @@ -152,7 +152,7 @@ OneIsland_PokemonCenter_1F_Movement_PlayerWalkToCelio:: walk_right walk_right walk_right - walk_in_place_fastest_up + walk_in_place_faster_up step_end OneIsland_PokemonCenter_1F_Movement_BillWalkToCelio:: @@ -163,7 +163,7 @@ OneIsland_PokemonCenter_1F_Movement_BillWalkToCelio:: walk_right walk_right walk_up - walk_in_place_fastest_right + walk_in_place_faster_right step_end @ Unused @@ -174,7 +174,7 @@ Movement_170E8F:: @ Unused Movement_170E91:: walk_left - walk_in_place_fastest_right + walk_in_place_faster_right step_end OneIsland_PokemonCenter_1F_EventScript_Nurse:: @@ -344,7 +344,7 @@ OneIsland_PokemonCenter_1F_EventScript_CelioWaitingForRuby:: OneIsland_PokemonCenter_1F_EventScript_CelioRequestRuby:: msgbox OneIsland_PokemonCenter_1F_Text_CelioCaughtMoreMonMaybeICanBeUseful - applymovement LOCALID_CELIO, Movement_WalkInPlaceFastestUp + applymovement LOCALID_CELIO, Movement_WalkInPlaceFasterUp waitmovement 0 msgbox OneIsland_PokemonCenter_1F_Text_YoullBeTradingFromTrainersFarAway applymovement LOCALID_CELIO, Movement_FacePlayer @@ -367,7 +367,7 @@ OneIsland_PokemonCenter_1F_Movement_CelioCheckMachine:: step_end OneIsland_PokemonCenter_1F_Movement_CelioPutGemInMachine:: - walk_in_place_fastest_up + walk_in_place_faster_up walk_in_place_up delay_16 walk_in_place_up @@ -450,30 +450,30 @@ OneIsland_PokemonCenter_1F_EventScript_LeaveOneIslandScene:: call_if_eq VAR_TEMP_1, 4, OneIsland_PokemonCenter_1F_EventScript_PlayerWalkToBillBottom delay 10 msgbox OneIsland_PokemonCenter_1F_Text_BillWeGotItDone - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestDown + applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterDown waitmovement 0 msgbox OneIsland_PokemonCenter_1F_Text_CelioJobWentQuick - applymovement LOCALID_BILL, Movement_WalkInPlaceFastestDown + applymovement LOCALID_BILL, Movement_WalkInPlaceFasterDown waitmovement 0 - applymovement LOCALID_CELIO, Movement_WalkInPlaceFastestUp + applymovement LOCALID_CELIO, Movement_WalkInPlaceFasterUp waitmovement 0 msgbox OneIsland_PokemonCenter_1F_Text_BillYouveLearnedALot msgbox OneIsland_PokemonCenter_1F_Text_CelioOhReallyEhehe closemessage - applymovement LOCALID_BILL, Movement_WalkInPlaceFastestLeft + applymovement LOCALID_BILL, Movement_WalkInPlaceFasterLeft waitmovement 0 delay 10 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestRight + applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight waitmovement 0 delay 15 msgbox OneIsland_PokemonCenter_1F_Text_BillWeShouldHeadBackToKanto closemessage - applymovement LOCALID_BILL, Movement_WalkInPlaceFastestDown + applymovement LOCALID_BILL, Movement_WalkInPlaceFasterDown waitmovement 0 delay 15 - applymovement LOCALID_CELIO, Movement_WalkInPlaceFastestLeft + applymovement LOCALID_CELIO, Movement_WalkInPlaceFasterLeft waitmovement 0 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestDown + applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterDown waitmovement 0 msgbox OneIsland_PokemonCenter_1F_Text_CelioPromiseIllShowYouAroundSometime closemessage @@ -514,7 +514,7 @@ OneIsland_PokemonCenter_1F_EventScript_PlayerWalkToBillBottom:: OneIsland_PokemonCenter_1F_Movement_PlayerWalkToBillTop:: walk_right walk_down - walk_in_place_fastest_right + walk_in_place_faster_right step_end OneIsland_PokemonCenter_1F_Movement_PlayerWalkToBillMidTop:: @@ -524,14 +524,14 @@ OneIsland_PokemonCenter_1F_Movement_PlayerWalkToBillMidTop:: OneIsland_PokemonCenter_1F_Movement_PlayerWalkToBillMidBottom:: walk_right walk_up - walk_in_place_fastest_right + walk_in_place_faster_right step_end OneIsland_PokemonCenter_1F_Movement_PlayerWalkToBillBottom:: walk_right walk_up walk_up - walk_in_place_fastest_right + walk_in_place_faster_right step_end @ Unused @@ -539,7 +539,7 @@ Movement_17131F:: delay_16 delay_16 delay_4 - walk_in_place_fastest_left + walk_in_place_faster_left step_end @ Unused diff --git a/data/maps/PalletTown/scripts.inc b/data/maps/PalletTown/scripts.inc index eff134734..00202f054 100644 --- a/data/maps/PalletTown/scripts.inc +++ b/data/maps/PalletTown/scripts.inc @@ -113,7 +113,7 @@ PalletTown_Movement_OakWalkToPlayersDoor:: walk_left walk_left walk_left - walk_in_place_fastest_up + walk_in_place_faster_up step_end PalletTown_Movement_OakExit:: @@ -148,7 +148,7 @@ PalletTown_Movement_OakWalkToLabFromHouse:: walk_right walk_right walk_right - walk_in_place_fastest_up + walk_in_place_faster_up step_end PalletTown_Movement_PlayerWalkToLabFromHouse:: @@ -190,7 +190,7 @@ PalletTown_EventScript_OakTrigger:: waitmessage delay 85 closemessage - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestDown + applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterDown waitmovement 0 playse SE_PIN applymovement OBJ_EVENT_ID_PLAYER, Movement_ExclamationMark @@ -290,7 +290,7 @@ PalletTown_Movement_OakWalkToLabLeft:: walk_down walk_to_lab walk_right - walk_in_place_fastest_up + walk_in_place_faster_up step_end PalletTown_Movement_OakWalkToLabRight:: @@ -298,7 +298,7 @@ PalletTown_Movement_OakWalkToLabRight:: walk_left walk_to_lab walk_right - walk_in_place_fastest_up + walk_in_place_faster_up step_end PalletTown_Movement_OakEnterLab:: @@ -381,12 +381,12 @@ PalletTown_EventScript_SignLadyJustShowedSign:: PalletTown_Movement_SignLadyMoveOutOfWayRight:: walk_right - walk_in_place_fastest_left + walk_in_place_faster_left step_end PalletTown_Movement_SignLadyMoveOutOfWayLeft:: walk_left - walk_in_place_fastest_right + walk_in_place_faster_right step_end PalletTown_EventScript_FatMan:: @@ -421,8 +421,8 @@ PalletTown_EventScript_TrainerTips:: PalletTown_EventScript_SignLadyTrigger:: lockall - applymovement LOCALID_SIGN_LADY, Movement_WalkInPlaceFastestRight - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestLeft + applymovement LOCALID_SIGN_LADY, Movement_WalkInPlaceFasterRight + applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterLeft waitmovement 0 call PalletTown_EventScript_SignLadyShowSign releaseall diff --git a/data/maps/PalletTown_ProfessorOaksLab/scripts.inc b/data/maps/PalletTown_ProfessorOaksLab/scripts.inc index 69dd2c790..8b646176d 100644 --- a/data/maps/PalletTown_ProfessorOaksLab/scripts.inc +++ b/data/maps/PalletTown_ProfessorOaksLab/scripts.inc @@ -140,7 +140,7 @@ PalletTown_ProfessorOaksLab_EventScript_NationalDexSceneRivalEnterEastWest:: setobjectxyperm LOCALID_RIVAL, 6, 10 addobject LOCALID_RIVAL playbgm MUS_ENCOUNTER_RIVAL, 0 - applymovement LOCALID_PROF_OAK, Movement_WalkInPlaceFastestDown + applymovement LOCALID_PROF_OAK, Movement_WalkInPlaceFasterDown applymovement OBJ_EVENT_ID_PLAYER, PalletTown_ProfessorOaksLab_Movement_WatchRivalEnterEastWest applymovement LOCALID_RIVAL, PalletTown_ProfessorOaksLab_Movement_RivalEnter waitmovement 0 @@ -150,18 +150,18 @@ PalletTown_ProfessorOaksLab_EventScript_NationalDexSceneRivalEnterSouth:: setobjectxyperm LOCALID_RIVAL, 6, 10 addobject LOCALID_RIVAL playbgm MUS_ENCOUNTER_RIVAL, 0 - applymovement LOCALID_PROF_OAK, Movement_WalkInPlaceFastestDown + applymovement LOCALID_PROF_OAK, Movement_WalkInPlaceFasterDown applymovement LOCALID_RIVAL, PalletTown_ProfessorOaksLab_Movement_RivalEnter waitmovement 0 return PalletTown_ProfessorOaksLab_EventScript_PlayerFaceOakNorth:: - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestUp + applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterUp waitmovement 0 return PalletTown_ProfessorOaksLab_EventScript_PlayerFaceOakWest:: - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestLeft + applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterLeft waitmovement 0 return @@ -191,7 +191,7 @@ PalletTown_ProfessorOaksLab_EventScript_OakBringDexesToDeskWest:: PalletTown_ProfessorOaksLab_Movement_OakBringDexesToDesk:: walk_up walk_left - walk_in_place_fastest_up + walk_in_place_faster_up delay_16 delay_4 step_end @@ -215,7 +215,7 @@ PalletTown_ProfessorOaksLab_ChooseStarterScene:: clearflag FLAG_HIDE_OAK_IN_HIS_LAB applymovement OBJ_EVENT_ID_PLAYER, PalletTown_ProfessorOaksLab_Movement_PlayerEnter waitmovement 0 - applymovement LOCALID_RIVAL, Movement_WalkInPlaceFastestUp + applymovement LOCALID_RIVAL, Movement_WalkInPlaceFasterUp waitmovement 0 clearflag FLAG_DONT_TRANSITION_MUSIC savebgm MUS_DUMMY @@ -296,9 +296,9 @@ PalletTown_ProfessorOaksLab_EventScript_RivalBattleTriggerRight:: PalletTown_ProfessorOaksLab_EventScript_RivalBattle:: textcolor NPC_TEXT_COLOR_MALE playbgm MUS_ENCOUNTER_RIVAL, 0 - applymovement LOCALID_RIVAL, Movement_WalkInPlaceFastestDown + applymovement LOCALID_RIVAL, Movement_WalkInPlaceFasterDown waitmovement 0 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestUp + applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterUp waitmovement 0 msgbox PalletTown_ProfessorOaksLab_Text_RivalLetsCheckOutMons closemessage @@ -540,17 +540,17 @@ PalletTown_ProfessorOaksLab_Movement_RivalExitAfterBattleMid:: PalletTown_ProfessorOaksLab_Movement_PlayerWatchRivalExitAfterBattle:: delay_16 delay_8 - walk_in_place_fastest_right + walk_in_place_faster_right delay_16 - walk_in_place_fastest_down + walk_in_place_faster_down step_end PalletTown_ProfessorOaksLab_Movement_PlayerWatchRivalExitAfterBattleRight:: delay_16 delay_8 - walk_in_place_fastest_left + walk_in_place_faster_left delay_16 - walk_in_place_fastest_down + walk_in_place_faster_down step_end PalletTown_ProfessorOaksLab_EventScript_Rival:: @@ -644,7 +644,7 @@ PalletTown_ProfessorOaksLab_EventScript_ReceiveDexScene:: delay 40 msgbox PalletTown_ProfessorOaksLab_Text_OakTakeTheseWithYou closemessage - applymovement LOCALID_PROF_OAK, Movement_WalkInPlaceFastestUp + applymovement LOCALID_PROF_OAK, Movement_WalkInPlaceFasterUp waitmovement 0 removeobject LOCALID_POKEDEX_1 delay 10 @@ -715,7 +715,7 @@ PalletTown_ProfessorOaksLab_EventScript_OakBringDexesOverWest:: PalletTown_ProfessorOaksLab_Movement_PlayerFaceOakForDexEast:: delay_16 delay_8 - walk_in_place_fastest_right + walk_in_place_faster_right step_end PalletTown_ProfessorOaksLab_Movement_OakBringDexesOver:: @@ -754,20 +754,20 @@ PalletTown_ProfessorOaksLab_EventScript_DexSceneOakWalkToDeskWest:: PalletTown_ProfessorOaksLab_Movement_WatchOakWalkToDeskEast:: delay_16 delay_8 - walk_in_place_fastest_up + walk_in_place_faster_up step_end PalletTown_ProfessorOaksLab_Movement_WatchOakWalkToDesk:: delay_16 delay_8 - walk_in_place_fastest_left + walk_in_place_faster_left step_end PalletTown_ProfessorOaksLab_Movement_OakWalkToDesk:: walk_up walk_left delay_16 - walk_in_place_fastest_down + walk_in_place_faster_down step_end PalletTown_ProfessorOaksLab_Movement_OakWalkToDeskSouth:: @@ -775,7 +775,7 @@ PalletTown_ProfessorOaksLab_Movement_OakWalkToDeskSouth:: walk_left walk_up delay_16 - walk_in_place_fastest_right + walk_in_place_faster_right step_end PalletTown_ProfessorOaksLab_EventScript_RatePokedexOrTryGiveBalls:: @@ -872,27 +872,27 @@ PalletTown_ProfessorOaksLab_Movement_OakExcitedWest:: @ Unused Movement_1699AC:: walk_left - walk_in_place_fastest_down + walk_in_place_faster_down delay_8 - walk_in_place_fastest_right + walk_in_place_faster_right delay_8 - walk_in_place_fastest_up + walk_in_place_faster_up delay_8 - walk_in_place_fastest_left + walk_in_place_faster_left delay_8 - walk_in_place_fastest_down + walk_in_place_faster_down delay_8 walk_right walk_right - walk_in_place_fastest_up + walk_in_place_faster_up delay_8 - walk_in_place_fastest_left + walk_in_place_faster_left delay_8 - walk_in_place_fastest_down + walk_in_place_faster_down delay_8 - walk_in_place_fastest_right + walk_in_place_faster_right delay_8 - walk_in_place_fastest_up + walk_in_place_faster_up delay_8 walk_left step_end @@ -966,7 +966,7 @@ PalletTown_ProfessorOaksLab_EventScript_DexSceneRivalEnterNorth:: PalletTown_ProfessorOaksLab_EventScript_DexSceneRivalEnterEastWest:: setobjectxyperm LOCALID_RIVAL, 6, 10 addobject LOCALID_RIVAL - applymovement LOCALID_PROF_OAK, Movement_WalkInPlaceFastestDown + applymovement LOCALID_PROF_OAK, Movement_WalkInPlaceFasterDown applymovement OBJ_EVENT_ID_PLAYER, PalletTown_ProfessorOaksLab_Movement_WatchRivalEnterEastWest applymovement LOCALID_RIVAL, PalletTown_ProfessorOaksLab_Movement_RivalEnter waitmovement 0 @@ -975,7 +975,7 @@ PalletTown_ProfessorOaksLab_EventScript_DexSceneRivalEnterEastWest:: PalletTown_ProfessorOaksLab_EventScript_DexSceneRivalEnterSouth:: setobjectxyperm LOCALID_RIVAL, 6, 10 addobject LOCALID_RIVAL - applymovement LOCALID_PROF_OAK, Movement_WalkInPlaceFastestDown + applymovement LOCALID_PROF_OAK, Movement_WalkInPlaceFasterDown applymovement LOCALID_RIVAL, PalletTown_ProfessorOaksLab_Movement_RivalEnter waitmovement 0 return @@ -984,7 +984,7 @@ PalletTown_ProfessorOaksLab_EventScript_DexSceneOakFacePlayerAndRivalSouth:: applymovement LOCALID_PROF_OAK, Movement_FacePlayer waitmovement 0 delay 15 - applymovement LOCALID_PROF_OAK, Movement_WalkInPlaceFastestDown + applymovement LOCALID_PROF_OAK, Movement_WalkInPlaceFasterDown waitmovement 0 return @@ -992,8 +992,8 @@ PalletTown_ProfessorOaksLab_EventScript_DexSceneOakFacePlayerAndRivalWest:: applymovement LOCALID_PROF_OAK, Movement_FacePlayer waitmovement 0 delay 15 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestLeft - applymovement LOCALID_PROF_OAK, Movement_WalkInPlaceFastestDown + applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterLeft + applymovement LOCALID_PROF_OAK, Movement_WalkInPlaceFasterDown waitmovement 0 return @@ -1001,26 +1001,26 @@ PalletTown_ProfessorOaksLab_EventScript_DexSceneOakFacePlayerAndRivalEast:: applymovement LOCALID_PROF_OAK, Movement_FacePlayer waitmovement 0 delay 15 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestRight - applymovement LOCALID_PROF_OAK, Movement_WalkInPlaceFastestDown + applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight + applymovement LOCALID_PROF_OAK, Movement_WalkInPlaceFasterDown waitmovement 0 return PalletTown_ProfessorOaksLab_EventScript_DexSceneRivalFacePlayerNorth:: applymovement LOCALID_RIVAL, Movement_FacePlayer - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestLeft + applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterLeft waitmovement 0 return PalletTown_ProfessorOaksLab_EventScript_DexSceneRivalFacePlayerSouth:: - applymovement LOCALID_RIVAL, Movement_WalkInPlaceFastestUp - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestDown + applymovement LOCALID_RIVAL, Movement_WalkInPlaceFasterUp + applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterDown waitmovement 0 return PalletTown_ProfessorOaksLab_EventScript_DexSceneRivalFacePlayerEastWest:: applymovement LOCALID_RIVAL, Movement_FacePlayer - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestDown + applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterDown waitmovement 0 return @@ -1036,24 +1036,24 @@ PalletTown_ProfessorOaksLab_EventScript_RivalExit:: return PalletTown_ProfessorOaksLab_EventScript_DexSceneOakFacePlayerAndRivalNorth:: - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestUp + applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterUp waitmovement 0 return PalletTown_ProfessorOaksLab_Movement_WatchRivalEnterEastWest:: delay_4 - walk_in_place_fastest_down + walk_in_place_faster_down step_end PalletTown_ProfessorOaksLab_Movement_WatchRivalEnterNorth:: - walk_in_place_fastest_down + walk_in_place_faster_down delay_16 delay_16 delay_16 delay_16 delay_16 delay_8 - walk_in_place_fastest_left + walk_in_place_faster_left step_end PalletTown_ProfessorOaksLab_Movement_RivalEnter:: @@ -1206,7 +1206,7 @@ PalletTown_ProfessorOaksLab_Movement_RivalWalksToSquirtle:: walk_right walk_right walk_right - walk_in_place_fastest_up + walk_in_place_faster_up step_end PalletTown_ProfessorOaksLab_Movement_RivalWalksToBulbasaur:: @@ -1214,7 +1214,7 @@ PalletTown_ProfessorOaksLab_Movement_RivalWalksToBulbasaur:: walk_right walk_right walk_right - walk_in_place_fastest_up + walk_in_place_faster_up step_end PalletTown_ProfessorOaksLab_EventScript_SquirtleBall:: diff --git a/data/maps/PalletTown_RivalsHouse/scripts.inc b/data/maps/PalletTown_RivalsHouse/scripts.inc index 17eeef81e..7dbca25da 100644 --- a/data/maps/PalletTown_RivalsHouse/scripts.inc +++ b/data/maps/PalletTown_RivalsHouse/scripts.inc @@ -136,7 +136,7 @@ PalletTown_RivalsHouse_EventScript_GiveTownMap:: closemessage checkitemspace ITEM_TOWN_MAP goto_if_eq VAR_RESULT, FALSE, PalletTown_RivalsHouse_EventScript_NoRoomForTownMap - applymovement LOCALID_DAISY, Movement_WalkInPlaceFastestRight + applymovement LOCALID_DAISY, Movement_WalkInPlaceFasterRight waitmovement 0 removeobject LOCALID_TOWN_MAP setvar VAR_MAP_SCENE_PALLET_TOWN_RIVALS_HOUSE, 2 diff --git a/data/maps/PewterCity/scripts.inc b/data/maps/PewterCity/scripts.inc index b79424090..e559e3322 100644 --- a/data/maps/PewterCity/scripts.inc +++ b/data/maps/PewterCity/scripts.inc @@ -169,7 +169,7 @@ PewterCity_Movement_PlayerWaitForGuideEast:: delay_16 delay_16 delay_4 - walk_in_place_fastest_down + walk_in_place_faster_down step_end PewterCity_Movement_PlayerWalkToGymEast:: @@ -206,14 +206,14 @@ PewterCity_Movement_PlayerWalkToGymNorth:: PewterCity_Movement_GuideMoveToLeadEast:: walk_down walk_left - walk_in_place_fastest_up + walk_in_place_faster_up walk_in_place_up step_end PewterCity_Movement_GuideWalkToGymEast:: walk_to_gym walk_right - walk_in_place_fastest_left + walk_in_place_faster_left step_end PewterCity_Movement_GuideMoveToLeadWest:: @@ -227,7 +227,7 @@ PewterCity_Movement_GuideWalkToGymWest:: walk_left walk_to_gym_alt walk_right - walk_in_place_fastest_left + walk_in_place_faster_left step_end PewterCity_Movement_GuideMoveToLeadNorth:: @@ -241,7 +241,7 @@ PewterCity_Movement_GuideWalkToGymNorth:: walk_left walk_to_gym_alt walk_right - walk_in_place_fastest_left + walk_in_place_faster_left step_end PewterCity_Movement_GymGuideExit:: @@ -368,7 +368,7 @@ PewterCity_Movement_PlayerWalkToGymRight:: PewterCity_Movement_GuideMoveToLeadTop:: walk_left walk_down - walk_in_place_fastest_right + walk_in_place_faster_right walk_in_place_right step_end @@ -395,14 +395,14 @@ PewterCity_Movement_GuideApproachPlayerRight:: PewterCity_Movement_GuideWalkToGymTop:: walk_to_gym walk_right - walk_in_place_fastest_left + walk_in_place_faster_left step_end PewterCity_Movement_GuideWalkToGymMid:: walk_left walk_to_gym walk_right - walk_in_place_fastest_left + walk_in_place_faster_left step_end PewterCity_Movement_GuideWalkToGymBottom:: @@ -410,7 +410,7 @@ PewterCity_Movement_GuideWalkToGymBottom:: walk_left walk_to_gym walk_right - walk_in_place_fastest_left + walk_in_place_faster_left step_end PewterCity_Movement_GuideWalkToGymRight:: @@ -425,7 +425,7 @@ PewterCity_Movement_GuideWalkToGymRight:: walk_up walk_to_gym_alt walk_right - walk_in_place_fastest_left + walk_in_place_faster_left step_end PewterCity_EventScript_Lass:: @@ -541,13 +541,13 @@ PewterCity_Movement_PlayerWalkToMuseumNorth:: walk_up walk_to_museum delay_8 - walk_in_place_fastest_up + walk_in_place_faster_up step_end PewterCity_Movement_GuideWalkToMuseumNorth:: walk_to_museum walk_left - walk_in_place_fastest_up + walk_in_place_faster_up step_end PewterCity_Movement_PlayerWalkToMuseumSouth:: @@ -556,7 +556,7 @@ PewterCity_Movement_PlayerWalkToMuseumSouth:: walk_left walk_to_museum_south delay_8 - walk_in_place_fastest_up + walk_in_place_faster_up step_end PewterCity_Movement_GuideWalkToMuseumSouth:: @@ -564,33 +564,33 @@ PewterCity_Movement_GuideWalkToMuseumSouth:: walk_up walk_to_museum_south walk_left - walk_in_place_fastest_up + walk_in_place_faster_up step_end PewterCity_Movement_PlayerWalkToMuseumWest:: walk_left walk_to_museum delay_8 - walk_in_place_fastest_up + walk_in_place_faster_up step_end PewterCity_Movement_GuideWalkToMuseumWest:: walk_to_museum walk_left - walk_in_place_fastest_up + walk_in_place_faster_up step_end PewterCity_Movement_PlayerWalkToMuseumEast:: walk_right walk_to_museum delay_8 - walk_in_place_fastest_up + walk_in_place_faster_up step_end PewterCity_Movement_GuideWalkToMuseumEast:: walk_to_museum walk_left - walk_in_place_fastest_up + walk_in_place_faster_up step_end PewterCity_Movement_MuseumGuideExit:: @@ -728,7 +728,7 @@ PewterCity_EventScript_AideGiveRunningShoes:: return PewterCity_EventScript_AideNoticePlayer:: - applymovement LOCALID_AIDE, Movement_WalkInPlaceFastestDown + applymovement LOCALID_AIDE, Movement_WalkInPlaceFasterDown waitmovement 0 return @@ -740,7 +740,7 @@ PewterCity_EventScript_AideApproachPlayer0:: PewterCity_EventScript_AideApproachPlayer1:: closemessage - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestUp + applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterUp waitmovement 0 return @@ -748,7 +748,7 @@ PewterCity_EventScript_AideApproachPlayer2:: closemessage applymovement LOCALID_AIDE, PewterCity_Movement_AideApproachPlayerMid waitmovement 0 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestUp + applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterUp waitmovement 0 return @@ -756,7 +756,7 @@ PewterCity_EventScript_AideApproachPlayer3:: closemessage applymovement LOCALID_AIDE, PewterCity_Movement_AideApproachPlayerBottom waitmovement 0 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestUp + applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterUp waitmovement 0 return diff --git a/data/maps/PewterCity_Gym/text.inc b/data/maps/PewterCity_Gym/text.inc index 0b12ccd6c..a92ebe095 100644 --- a/data/maps/PewterCity_Gym/text.inc +++ b/data/maps/PewterCity_Gym/text.inc @@ -16,7 +16,7 @@ PewterCity_Gym_Text_BrockIntro:: @ NOTE: This defeat text actually causes a buffer overflow. It's too long for the gDisplayedStringBattle @ buffer that it's put into, and it stomps all over the gBattleTextBuffs after, as well as the otherwise -@ unused array after that, gUnknown_2022AE8. Perhaps that's the reason why said array exists. +@ unused array after that, sFlickerArray. Perhaps that's the reason why said array exists. PewterCity_Gym_Text_BrockDefeat:: .string "I took you for granted, and so\n" .string "I lost.\p" diff --git a/data/maps/PewterCity_Museum_1F/scripts.inc b/data/maps/PewterCity_Museum_1F/scripts.inc index 6410a53b4..e41feef0d 100644 --- a/data/maps/PewterCity_Museum_1F/scripts.inc +++ b/data/maps/PewterCity_Museum_1F/scripts.inc @@ -37,7 +37,7 @@ PewterCity_Museum_1F_EventScript_ExplainAmber:: PewterCity_Museum_1F_EventScript_EntranceTriggerLeft:: lockall setvar VAR_TEMP_1, 0 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestRight + applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight waitmovement 0 goto PewterCity_Museum_1F_EventScript_EntranceTrigger end @@ -45,7 +45,7 @@ PewterCity_Museum_1F_EventScript_EntranceTriggerLeft:: PewterCity_Museum_1F_EventScript_EntranceTriggerMid:: lockall setvar VAR_TEMP_1, 1 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestRight + applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight waitmovement 0 goto PewterCity_Museum_1F_EventScript_EntranceTrigger end @@ -53,7 +53,7 @@ PewterCity_Museum_1F_EventScript_EntranceTriggerMid:: PewterCity_Museum_1F_EventScript_EntranceTriggerRight:: lockall setvar VAR_TEMP_1, 2 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestRight + applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight waitmovement 0 goto PewterCity_Museum_1F_EventScript_EntranceTrigger end diff --git a/data/maps/PokemonLeague_BrunosRoom/scripts.inc b/data/maps/PokemonLeague_BrunosRoom/scripts.inc index 00bed0983..a54266d4e 100644 --- a/data/maps/PokemonLeague_BrunosRoom/scripts.inc +++ b/data/maps/PokemonLeague_BrunosRoom/scripts.inc @@ -100,16 +100,16 @@ PokemonLeague_BrunosRoom_EventScript_DefeatedBruno:: end PokemonLeague_BrunosRoom_EventScript_BrunoLookAwayLeft:: - applymovement LOCALID_BRUNO, Movement_WalkInPlaceFastestLeft + applymovement LOCALID_BRUNO, Movement_WalkInPlaceFasterLeft waitmovement 0 return PokemonLeague_BrunosRoom_EventScript_BrunoLookAwayRight:: - applymovement LOCALID_BRUNO, Movement_WalkInPlaceFastestRight + applymovement LOCALID_BRUNO, Movement_WalkInPlaceFasterRight waitmovement 0 return PokemonLeague_BrunosRoom_EventScript_BrunoLookAwayDown:: - applymovement LOCALID_BRUNO, Movement_WalkInPlaceFastestDown + applymovement LOCALID_BRUNO, Movement_WalkInPlaceFasterDown waitmovement 0 return diff --git a/data/maps/PokemonLeague_ChampionsRoom/scripts.inc b/data/maps/PokemonLeague_ChampionsRoom/scripts.inc index 7282a2547..c45d61e8b 100644 --- a/data/maps/PokemonLeague_ChampionsRoom/scripts.inc +++ b/data/maps/PokemonLeague_ChampionsRoom/scripts.inc @@ -78,12 +78,12 @@ PokemonLeague_ChampionsRoom_EventScript_EnterRoom:: specialvar VAR_RESULT, GetStarterSpecies bufferspeciesname STR_VAR_1, VAR_RESULT msgbox PokemonLeague_ChampionsRoom_Text_OakCongratulations - applymovement LOCALID_PROF_OAK, Movement_WalkInPlaceFastestRight - applymovement LOCALID_RIVAL, Movement_WalkInPlaceFastestLeft + applymovement LOCALID_PROF_OAK, Movement_WalkInPlaceFasterRight + applymovement LOCALID_RIVAL, Movement_WalkInPlaceFasterLeft waitmovement 0 msgbox PokemonLeague_ChampionsRoom_Text_OakImDisappointedRival closemessage - applymovement LOCALID_PROF_OAK, Movement_WalkInPlaceFastestDown + applymovement LOCALID_PROF_OAK, Movement_WalkInPlaceFasterDown waitmovement 0 delay 20 msgbox PokemonLeague_ChampionsRoom_Text_OakPlayerComeWithMe @@ -177,7 +177,7 @@ PokemonLeague_ChampionsRoom_Movement_PlayerExit:: PokemonLeague_ChampionsRoom_Movement_PlayerWatchOakEnter:: delay_8 - walk_in_place_fastest_down + walk_in_place_faster_down delay_16 delay_16 delay_16 @@ -185,7 +185,7 @@ PokemonLeague_ChampionsRoom_Movement_PlayerWatchOakEnter:: delay_16 delay_16 delay_16 - walk_in_place_fastest_left + walk_in_place_faster_left step_end PokemonLeague_ChampionsRoom_Movement_OakEnter:: @@ -199,7 +199,7 @@ PokemonLeague_ChampionsRoom_Movement_OakEnter:: walk_left walk_up walk_up - walk_in_place_fastest_down + walk_in_place_faster_down delay_16 step_end @@ -225,5 +225,5 @@ PokemonLeague_ChampionsRoom_Movement_RivalWatchOakEnter:: delay_16 delay_16 delay_16 - walk_in_place_fastest_left + walk_in_place_faster_left step_end diff --git a/data/maps/PokemonLeague_HallOfFame/scripts.inc b/data/maps/PokemonLeague_HallOfFame/scripts.inc index 3181cd7ba..426f594b9 100644 --- a/data/maps/PokemonLeague_HallOfFame/scripts.inc +++ b/data/maps/PokemonLeague_HallOfFame/scripts.inc @@ -22,14 +22,14 @@ PokemonLeague_HallOfFame_EventScript_EnterRoom:: textcolor NPC_TEXT_COLOR_MALE applymovement OBJ_EVENT_ID_PLAYER, PokemonLeague_HallOfFame_Movement_EnterRoom waitmovement 0 - applymovement LOCALID_PROF_OAK, Movement_WalkInPlaceFastestLeft - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestRight + applymovement LOCALID_PROF_OAK, Movement_WalkInPlaceFasterLeft + applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight waitmovement 0 delay 18 msgbox PokemonLeague_HallOfFame_Text_OakCongratulations closemessage - applymovement LOCALID_PROF_OAK, Movement_WalkInPlaceFastestUp - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestUp + applymovement LOCALID_PROF_OAK, Movement_WalkInPlaceFasterUp + applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterUp waitmovement 0 delay 20 dofieldeffect FLDEFF_HALL_OF_FAME_RECORD diff --git a/data/maps/PokemonLeague_LancesRoom/scripts.inc b/data/maps/PokemonLeague_LancesRoom/scripts.inc index 985f89f98..908c7a5d1 100644 --- a/data/maps/PokemonLeague_LancesRoom/scripts.inc +++ b/data/maps/PokemonLeague_LancesRoom/scripts.inc @@ -158,10 +158,10 @@ PokemonLeague_LancesRoom_EventScript_LanceMoveOutOfWayRight:: PokemonLeague_LancesRoom_Movement_LanceMoveOutOfWayLeft:: walk_left - walk_in_place_fastest_right + walk_in_place_faster_right step_end PokemonLeague_LancesRoom_Movement_LanceMoveOutOfWayRight:: walk_right - walk_in_place_fastest_left + walk_in_place_faster_left step_end diff --git a/data/maps/PokemonTower_2F/scripts.inc b/data/maps/PokemonTower_2F/scripts.inc index 142f48c9c..3d7a6b715 100644 --- a/data/maps/PokemonTower_2F/scripts.inc +++ b/data/maps/PokemonTower_2F/scripts.inc @@ -47,14 +47,14 @@ PokemonTower_2F_EventScript_Rival:: end PokemonTower_2F_EventScript_RivalFacePlayerRight:: - applymovement LOCALID_RIVAL, Movement_WalkInPlaceFastestRight - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestLeft + applymovement LOCALID_RIVAL, Movement_WalkInPlaceFasterRight + applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterLeft waitmovement 0 return PokemonTower_2F_EventScript_RivalFacePlayerDown:: - applymovement LOCALID_RIVAL, Movement_WalkInPlaceFastestDown - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestUp + applymovement LOCALID_RIVAL, Movement_WalkInPlaceFasterDown + applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterUp waitmovement 0 return @@ -88,7 +88,7 @@ PokemonTower_2F_Movement_RivalExitRight:: walk_down walk_down walk_down - walk_in_place_fastest_right + walk_in_place_faster_right step_end PokemonTower_2F_Movement_RivalExitDown:: @@ -99,5 +99,5 @@ PokemonTower_2F_Movement_RivalExitDown:: walk_down walk_down walk_down - walk_in_place_fastest_right + walk_in_place_faster_right step_end diff --git a/data/maps/PokemonTower_7F/scripts.inc b/data/maps/PokemonTower_7F/scripts.inc index af4a8e3ce..f3a4d9b8e 100644 --- a/data/maps/PokemonTower_7F/scripts.inc +++ b/data/maps/PokemonTower_7F/scripts.inc @@ -100,7 +100,7 @@ PokemonTower_7F_Movement_Grunt1ExitLeft:: walk_right walk_down walk_down - walk_in_place_fastest_left + walk_in_place_faster_left step_end PokemonTower_7F_EventScript_Grunt2:: diff --git a/data/maps/Route16_NorthEntrance_1F/scripts.inc b/data/maps/Route16_NorthEntrance_1F/scripts.inc index 4d4080b16..b7e9fcfcc 100644 --- a/data/maps/Route16_NorthEntrance_1F/scripts.inc +++ b/data/maps/Route16_NorthEntrance_1F/scripts.inc @@ -49,7 +49,7 @@ Route16_NorthEntrance_1F_EventScript_NeedBikeTrigger:: textcolor NPC_TEXT_COLOR_MALE msgbox Route16_NorthEntrance_1F_Text_ExcuseMeWaitUp closemessage - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestUp + applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterUp waitmovement 0 delay 20 call_if_eq VAR_0x8008, 1, Route16_NorthEntrance_1F_EventScript_PlayerWalkToCounterMidTop diff --git a/data/maps/Route18_EastEntrance_1F/scripts.inc b/data/maps/Route18_EastEntrance_1F/scripts.inc index 740a778a5..0c05c8beb 100644 --- a/data/maps/Route18_EastEntrance_1F/scripts.inc +++ b/data/maps/Route18_EastEntrance_1F/scripts.inc @@ -49,7 +49,7 @@ Route18_EastEntrance_1F_EventScript_NeedBikeTrigger:: textcolor NPC_TEXT_COLOR_MALE msgbox Route18_EastEntrance_1F_Text_ExcuseMe closemessage - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestUp + applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterUp waitmovement 0 delay 20 call_if_eq VAR_0x8008, 1, Route18_EastEntrance_1F_EventScript_PlayerWalkToCounterMidTop diff --git a/data/maps/Route22/scripts.inc b/data/maps/Route22/scripts.inc index 6db0a69fd..6f45b8518 100644 --- a/data/maps/Route22/scripts.inc +++ b/data/maps/Route22/scripts.inc @@ -139,7 +139,7 @@ Route22_Movement_RivalApproachBottom:: walk_right walk_right walk_right - walk_in_place_fastest_down + walk_in_place_faster_down step_end Route22_Movement_PlayerFaceRival:: @@ -151,7 +151,7 @@ Route22_Movement_PlayerFaceRival:: delay_16 delay_16 delay_8 - walk_in_place_fastest_up + walk_in_place_faster_up step_end Route22_EventScript_LateRivalTriggerTop:: diff --git a/data/maps/Route24/scripts.inc b/data/maps/Route24/scripts.inc index 06f260fe9..bf8c685da 100644 --- a/data/maps/Route24/scripts.inc +++ b/data/maps/Route24/scripts.inc @@ -40,7 +40,7 @@ Route24_EventScript_RocketTrigger:: textcolor NPC_TEXT_COLOR_MALE call_if_eq VAR_TEMP_1, 0, Route24_EventScript_RocketApproachPlayer call_if_eq VAR_TEMP_1, 1, Route24_EventScript_RocketMotionToPlayer - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestRight + applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight waitmovement 0 msgbox Route24_Text_JustEarnedFabulousPrize checkitemspace ITEM_NUGGET @@ -67,7 +67,7 @@ Route24_EventScript_RocketApproachPlayer:: return Route24_EventScript_RocketMotionToPlayer:: - applymovement LOCALID_ROCKET, Movement_WalkInPlaceFastestLeft + applymovement LOCALID_ROCKET, Movement_WalkInPlaceFasterLeft waitmovement 0 return @@ -91,7 +91,7 @@ Route24_Movement_RocketApproachPlayer:: Route24_Movement_RocketWalkBackToPos:: walk_right - walk_in_place_fastest_left + walk_in_place_faster_left step_end Route24_Movement_WalkDown:: diff --git a/data/maps/Route25_SeaCottage/scripts.inc b/data/maps/Route25_SeaCottage/scripts.inc index 2ba918a4a..b8f39b063 100644 --- a/data/maps/Route25_SeaCottage/scripts.inc +++ b/data/maps/Route25_SeaCottage/scripts.inc @@ -137,7 +137,7 @@ Route25_SeaCottage_Movement_BillWalkToTeleporterSouth:: walk_up walk_up walk_left - walk_in_place_fastest_up + walk_in_place_faster_up step_end Route25_SeaCottage_Movement_BillEnterTeleporter:: diff --git a/data/maps/Route5_SouthEntrance/scripts.inc b/data/maps/Route5_SouthEntrance/scripts.inc index 60d5a5748..fe8e06607 100644 --- a/data/maps/Route5_SouthEntrance/scripts.inc +++ b/data/maps/Route5_SouthEntrance/scripts.inc @@ -25,7 +25,7 @@ Route5_SouthEntrance_EventScript_GuardTriggerRight:: Route5_SouthEntrance_EventScript_GuardTrigger:: textcolor NPC_TEXT_COLOR_MALE - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestLeft + applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterLeft waitmovement 0 goto_if_set FLAG_GOT_TEA, Route5_SouthEntrance_EventScript_GiveTea msgbox Route5_SouthEntrance_Text_ThirstyOnGuardDuty diff --git a/data/maps/Route6_NorthEntrance/scripts.inc b/data/maps/Route6_NorthEntrance/scripts.inc index 00961fb86..9f27430d6 100644 --- a/data/maps/Route6_NorthEntrance/scripts.inc +++ b/data/maps/Route6_NorthEntrance/scripts.inc @@ -25,7 +25,7 @@ Route6_NorthEntrance_EventScript_GuardTriggerRight:: Route6_NorthEntrance_EventScript_GuardTrigger:: textcolor NPC_TEXT_COLOR_MALE - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestRight + applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight waitmovement 0 goto_if_set FLAG_GOT_TEA, Route6_NorthEntrance_EventScript_GiveTea msgbox Route6_NorthEntrance_Text_ThirstyOnGuardDuty diff --git a/data/maps/Route7_EastEntrance/scripts.inc b/data/maps/Route7_EastEntrance/scripts.inc index a5dadcddd..30c776d0b 100644 --- a/data/maps/Route7_EastEntrance/scripts.inc +++ b/data/maps/Route7_EastEntrance/scripts.inc @@ -25,7 +25,7 @@ Route7_EastEntrance_EventScript_GuardTriggerBottom:: Route7_EastEntrance_EventScript_GuardTrigger:: textcolor NPC_TEXT_COLOR_MALE - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestUp + applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterUp waitmovement 0 goto_if_set FLAG_GOT_TEA, Route7_EastEntrance_EventScript_GiveTea msgbox Route7_EastEntrance_Text_ThirstyOnGuardDuty diff --git a/data/maps/Route8_WestEntrance/scripts.inc b/data/maps/Route8_WestEntrance/scripts.inc index 6f4b752dd..1ef74df1b 100644 --- a/data/maps/Route8_WestEntrance/scripts.inc +++ b/data/maps/Route8_WestEntrance/scripts.inc @@ -25,7 +25,7 @@ Route8_WestEntrance_EventScript_GuardTriggerBottom:: Route8_WestEntrance_EventScript_GuardTrigger:: textcolor NPC_TEXT_COLOR_MALE - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestUp + applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterUp waitmovement 0 goto_if_set FLAG_GOT_TEA, Route8_WestEntrance_EventScript_GiveTea msgbox Route8_WestEntrance_Text_ThirstyOnGuardDuty diff --git a/data/maps/SSAnne_2F_Corridor/scripts.inc b/data/maps/SSAnne_2F_Corridor/scripts.inc index fb2e10931..e3d30efe1 100644 --- a/data/maps/SSAnne_2F_Corridor/scripts.inc +++ b/data/maps/SSAnne_2F_Corridor/scripts.inc @@ -28,7 +28,7 @@ SSAnne_2F_Corridor_EventScript_RivalTrigger:: playbgm MUS_ENCOUNTER_RIVAL, 0 addobject LOCALID_RIVAL delay 10 - applymovement LOCALID_RIVAL, Movement_WalkInPlaceFastestDown + applymovement LOCALID_RIVAL, Movement_WalkInPlaceFasterDown waitmovement 0 delay 20 call_if_eq VAR_TEMP_1, 0, SSAnne_2F_Corridor_EventScript_RivalApproachLeft @@ -101,7 +101,7 @@ SSAnne_2F_Corridor_Movement_PlayerFaceRivalRight:: delay_16 delay_16 delay_16 - walk_in_place_fastest_left + walk_in_place_faster_left step_end SSAnne_2F_Corridor_Movement_PlayerFaceRivalMid:: @@ -109,7 +109,7 @@ SSAnne_2F_Corridor_Movement_PlayerFaceRivalMid:: delay_16 delay_16 delay_16 - walk_in_place_fastest_left + walk_in_place_faster_left step_end SSAnne_2F_Corridor_Movement_RivalApproachLeft:: @@ -123,7 +123,7 @@ SSAnne_2F_Corridor_Movement_RivalApproachMid:: walk_down walk_down walk_down - walk_in_place_fastest_right + walk_in_place_faster_right step_end SSAnne_2F_Corridor_Movement_RivalApproachRight:: diff --git a/data/maps/SSAnne_Exterior/scripts.inc b/data/maps/SSAnne_Exterior/scripts.inc index 28c220936..e6043855d 100644 --- a/data/maps/SSAnne_Exterior/scripts.inc +++ b/data/maps/SSAnne_Exterior/scripts.inc @@ -38,7 +38,7 @@ SSAnne_Exterior_WalkDown:: return SSAnne_Exterior_WalkInPlaceDown:: - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestDown + applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterDown waitmovement 0 return diff --git a/data/maps/SaffronCity_Dojo/scripts.inc b/data/maps/SaffronCity_Dojo/scripts.inc index cc58ae3a6..680dc871e 100644 --- a/data/maps/SaffronCity_Dojo/scripts.inc +++ b/data/maps/SaffronCity_Dojo/scripts.inc @@ -6,7 +6,7 @@ SaffronCity_Dojo_MapScripts:: SaffronCity_Dojo_EventScript_TriggerMasterBattleLeft:: lockall setvar VAR_MAP_SCENE_SAFFRON_CITY_DOJO, 1 - applymovement LOCALID_KARATE_MASTER, Movement_WalkInPlaceFastestLeft + applymovement LOCALID_KARATE_MASTER, Movement_WalkInPlaceFasterLeft waitmovement 0 releaseall end @@ -14,7 +14,7 @@ SaffronCity_Dojo_EventScript_TriggerMasterBattleLeft:: SaffronCity_Dojo_EventScript_TriggerMasterBattleRight:: lockall setvar VAR_MAP_SCENE_SAFFRON_CITY_DOJO, 1 - applymovement LOCALID_KARATE_MASTER, Movement_WalkInPlaceFastestRight + applymovement LOCALID_KARATE_MASTER, Movement_WalkInPlaceFasterRight waitmovement 0 releaseall end @@ -25,7 +25,7 @@ SaffronCity_Dojo_EventScript_HitmonleeBall:: goto_if_set FLAG_GOT_HITMON_FROM_DOJO, SaffronCity_Dojo_EventScript_AlreadyGotHitmon showmonpic SPECIES_HITMONLEE, 10, 3 setvar VAR_TEMP_1, SPECIES_HITMONLEE - applymovement LOCALID_KARATE_MASTER, Movement_WalkInPlaceFastestUp + applymovement LOCALID_KARATE_MASTER, Movement_WalkInPlaceFasterUp waitmovement 0 textcolor NPC_TEXT_COLOR_MALE msgbox SaffronCity_Dojo_Text_YouWantHitmonlee, MSGBOX_YESNO @@ -46,7 +46,7 @@ SaffronCity_Dojo_EventScript_HitmonchanBall:: goto_if_set FLAG_GOT_HITMON_FROM_DOJO, SaffronCity_Dojo_EventScript_AlreadyGotHitmon showmonpic SPECIES_HITMONCHAN, 10, 3 setvar VAR_TEMP_1, SPECIES_HITMONCHAN - applymovement LOCALID_KARATE_MASTER, Movement_WalkInPlaceFastestUp + applymovement LOCALID_KARATE_MASTER, Movement_WalkInPlaceFasterUp waitmovement 0 textcolor NPC_TEXT_COLOR_MALE msgbox SaffronCity_Dojo_Text_YouWantHitmonchan, MSGBOX_YESNO diff --git a/data/maps/SaffronCity_PokemonTrainerFanClub/scripts.inc b/data/maps/SaffronCity_PokemonTrainerFanClub/scripts.inc index 767ac508f..d4979c25c 100644 --- a/data/maps/SaffronCity_PokemonTrainerFanClub/scripts.inc +++ b/data/maps/SaffronCity_PokemonTrainerFanClub/scripts.inc @@ -19,7 +19,7 @@ SaffronCity_PokemonTrainerFanClub_OnFrame:: SaffronCity_PokemonTrainerFanClub_EventScript_MeetFirstFans:: lockall textcolor NPC_TEXT_COLOR_FEMALE - applymovement LOCALID_BATTLE_GIRL, Movement_WalkInPlaceFastestDown + applymovement LOCALID_BATTLE_GIRL, Movement_WalkInPlaceFasterDown waitmovement 0 playse SE_PIN applymovement LOCALID_BATTLE_GIRL, Movement_ExclamationMark @@ -30,7 +30,7 @@ SaffronCity_PokemonTrainerFanClub_EventScript_MeetFirstFans:: closemessage applymovement LOCALID_BATTLE_GIRL, SaffronCity_PokemonTrainerFanClub_Movement_FanApproachPlayer waitmovement 0 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestRight + applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight waitmovement 0 msgbox SaffronCity_PokemonTrainerFanClub_Text_YourePlayerWereYourFansNow setvar VAR_MAP_SCENE_SAFFRON_CITY_POKEMON_TRAINER_FAN_CLUB, 2 @@ -50,7 +50,7 @@ SaffronCity_PokemonTrainerFanClub_Movement_FanApproachPlayer:: @ Unused, leftover from RS LilycoveCity_PokemonTrainerFanClub_Movement_FanApproachPlayer:: delay_8 - walk_in_place_fastest_down + walk_in_place_faster_down walk_down walk_down walk_down @@ -71,7 +71,7 @@ LilycoveCity_PokemonTrainerFanClub_Movement_LittleGirlWatchPlayer:: @ Unused, leftover from RS LilycoveCity_PokemonTrainerFanClub_Movement_LittleGirlMoveCloserToPlayer:: walk_down - walk_in_place_fastest_right + walk_in_place_faster_right step_end @ Unused, leftover from RS @@ -80,7 +80,7 @@ LilycoveCity_PokemonTrainerFanClub_Movement_LittleGirlHideFromPlayer:: walk_fast_up walk_fast_up walk_fast_right - walk_in_place_fastest_down + walk_in_place_faster_down step_end SaffronCity_PokemonTrainerFanClub_OnTransition:: diff --git a/data/maps/SevenIsland_House_Room1/scripts.inc b/data/maps/SevenIsland_House_Room1/scripts.inc index 5982f4a83..d9da2eca2 100644 --- a/data/maps/SevenIsland_House_Room1/scripts.inc +++ b/data/maps/SevenIsland_House_Room1/scripts.inc @@ -39,7 +39,7 @@ SevenIsland_House_Room1_EventScript_OldWomanCommentOnBattle:: applymovement LOCALID_OLD_WOMAN, SevenIsland_House_Room1_Movement_OldWomanWalkBehindPlayer waitmovement 0 copyobjectxytoperm LOCALID_OLD_WOMAN - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestUp + applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterUp waitmovement 0 call_if_eq VAR_MAP_SCENE_SEVEN_ISLAND_HOUSE_ROOM1, 1, SevenIsland_House_Room1_EventScript_BattleWonComment call_if_eq VAR_MAP_SCENE_SEVEN_ISLAND_HOUSE_ROOM1, 2, SevenIsland_House_Room1_EventScript_BattleLostComment @@ -67,7 +67,7 @@ SevenIsland_House_Room1_Movement_PlayerReEnterRoom:: SevenIsland_House_Room1_Movement_OldWomanWalkBehindPlayer:: walk_right - walk_in_place_fastest_down + walk_in_place_faster_down step_end SevenIsland_House_Room1_EventScript_OldWoman:: @@ -160,12 +160,12 @@ SevenIsland_House_Room1_Movement_PlayerEnterBattleRoomWest:: SevenIsland_House_Room1_Movement_OldWomanMoveAsideLeft:: walk_left - walk_in_place_fastest_right + walk_in_place_faster_right step_end SevenIsland_House_Room1_Movement_OldWomanMoveAsideRight:: walk_right - walk_in_place_fastest_left + walk_in_place_faster_left step_end SevenIsland_House_Room1_EventScript_Box:: diff --git a/data/maps/SevenIsland_SevaultCanyon_House/scripts.inc b/data/maps/SevenIsland_SevaultCanyon_House/scripts.inc index ce831f140..f8b966a94 100644 --- a/data/maps/SevenIsland_SevaultCanyon_House/scripts.inc +++ b/data/maps/SevenIsland_SevaultCanyon_House/scripts.inc @@ -34,7 +34,7 @@ SevenIsland_SevaultCanyon_House_EventScript_BaldingMan:: end SevenIsland_SevaultCanyon_House_EventScript_PlayerFaceDown:: - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestDown + applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterDown waitmovement 0 return @@ -60,13 +60,13 @@ SevenIsland_SevaultCanyon_House_Movement_ChanseyDance:: delay_16 walk_in_place_down delay_16 - walk_in_place_fastest_right + walk_in_place_faster_right delay_4 - walk_in_place_fastest_up + walk_in_place_faster_up delay_4 - walk_in_place_fastest_left + walk_in_place_faster_left delay_4 - walk_in_place_fastest_down + walk_in_place_faster_down delay_4 step_end diff --git a/data/maps/SilphCo_11F/scripts.inc b/data/maps/SilphCo_11F/scripts.inc index 81ba1095c..08411f199 100644 --- a/data/maps/SilphCo_11F/scripts.inc +++ b/data/maps/SilphCo_11F/scripts.inc @@ -61,7 +61,7 @@ SilphCo_11F_EventScript_GiovanniTriggerRight:: SilphCo_11F_EventScript_BattleGiovanni:: textcolor NPC_TEXT_COLOR_MALE - applymovement LOCALID_GIOVANNI, Movement_WalkInPlaceFastestDown + applymovement LOCALID_GIOVANNI, Movement_WalkInPlaceFasterDown waitmovement 0 delay 25 msgbox SilphCo_11F_Text_GiovanniIntro @@ -99,7 +99,7 @@ SilphCo_11F_Movement_GiovanniApproachLeft:: walk_down walk_down walk_down - walk_in_place_fastest_left + walk_in_place_faster_left step_end SilphCo_11F_Movement_GiovanniApproachRight:: @@ -114,7 +114,7 @@ SilphCo_11F_Movement_PlayerFaceGiovanni:: delay_16 delay_8 delay_4 - walk_in_place_fastest_right + walk_in_place_faster_right step_end @ Unused diff --git a/data/maps/SilphCo_7F/scripts.inc b/data/maps/SilphCo_7F/scripts.inc index 3e3f35e93..afa40c8fb 100644 --- a/data/maps/SilphCo_7F/scripts.inc +++ b/data/maps/SilphCo_7F/scripts.inc @@ -37,7 +37,7 @@ SilphCo_7F_EventScript_RivalScene:: playbgm MUS_ENCOUNTER_RIVAL, 0 applymovement LOCALID_RIVAL, Movement_ExclamationMark waitmovement 0 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestDown + applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterDown applymovement LOCALID_RIVAL, Movement_Delay48 waitmovement 0 msgbox SilphCo_7F_Text_RivalWhatKeptYou diff --git a/data/maps/SixIsland_DottedHole_SapphireRoom/scripts.inc b/data/maps/SixIsland_DottedHole_SapphireRoom/scripts.inc index 419ba04d4..59c3a7e17 100644 --- a/data/maps/SixIsland_DottedHole_SapphireRoom/scripts.inc +++ b/data/maps/SixIsland_DottedHole_SapphireRoom/scripts.inc @@ -60,22 +60,22 @@ SixIsland_DottedHole_SapphireRoom_EventScript_Sapphire:: @ Lots of redundant scripts below SixIsland_DottedHole_SapphireRoom_EventScript_PlayerFaceThiefLeft2:: - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestLeft + applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterLeft waitmovement 0 return SixIsland_DottedHole_SapphireRoom_EventScript_PlayerFaceThiefDown2:: - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestDown + applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterDown waitmovement 0 return SixIsland_DottedHole_SapphireRoom_EventScript_PlayerFaceThiefLeft:: - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestLeft + applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterLeft waitmovement 0 return SixIsland_DottedHole_SapphireRoom_EventScript_PlayerFaceThiefDown:: - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestDown + applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterDown waitmovement 0 return @@ -102,28 +102,28 @@ SixIsland_DottedHole_SapphireRoom_EventScript_ThiefLookAtSapphireWest:: SixIsland_DottedHole_SapphireRoom_EventScript_ThiefGetSapphireNorth:: applymovement LOCALID_THIEF, SixIsland_DottedHole_SapphireRoom_Movement_ThiefGetSapphireFromLeft waitmovement 0 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestUp + applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterUp waitmovement 0 return SixIsland_DottedHole_SapphireRoom_EventScript_ThiefGetSapphireSouth:: applymovement LOCALID_THIEF, SixIsland_DottedHole_SapphireRoom_Movement_ThiefGetSapphireFromLeft waitmovement 0 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestDown + applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterDown waitmovement 0 return SixIsland_DottedHole_SapphireRoom_EventScript_ThiefGetSapphireEast:: applymovement LOCALID_THIEF, SixIsland_DottedHole_SapphireRoom_Movement_ThiefGetSapphireFromBelow waitmovement 0 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestRight + applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight waitmovement 0 return SixIsland_DottedHole_SapphireRoom_EventScript_ThiefGetSapphireWest:: applymovement LOCALID_THIEF, SixIsland_DottedHole_SapphireRoom_Movement_ThiefGetSapphireFromBelow waitmovement 0 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestLeft + applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterLeft waitmovement 0 return @@ -154,13 +154,13 @@ SixIsland_DottedHole_SapphireRoom_EventScript_ThiefExitWest:: SixIsland_DottedHole_SapphireRoom_Movement_ThiefLookAtSapphireFromLeft:: walk_up walk_up - walk_in_place_fastest_right + walk_in_place_faster_right step_end SixIsland_DottedHole_SapphireRoom_Movement_ThiefLookAtSapphireFromBelow:: walk_right walk_right - walk_in_place_fastest_up + walk_in_place_faster_up step_end SixIsland_DottedHole_SapphireRoom_Movement_ThiefGetSapphireFromLeft:: @@ -216,7 +216,7 @@ SixIsland_DottedHole_SapphireRoom_Movement_ThiefFallIn:: SixIsland_DottedHole_SapphireRoom_Movement_PlayerWatchThiefExit:: delay_16 - walk_in_place_fastest_right + walk_in_place_faster_right step_end SixIsland_DottedHole_SapphireRoom_EventScript_BrailleMessage:: diff --git a/data/maps/SixIsland_PokemonCenter_1F/scripts.inc b/data/maps/SixIsland_PokemonCenter_1F/scripts.inc index 853fd36f7..3e23e6839 100644 --- a/data/maps/SixIsland_PokemonCenter_1F/scripts.inc +++ b/data/maps/SixIsland_PokemonCenter_1F/scripts.inc @@ -22,7 +22,7 @@ SixIsland_PokemonCenter_1F_OnFrame:: SixIsland_PokemonCenter_1F_EventScript_RivalScene:: lockall textcolor NPC_TEXT_COLOR_MALE - applymovement LOCALID_RIVAL, Movement_WalkInPlaceFastestDown + applymovement LOCALID_RIVAL, Movement_WalkInPlaceFasterDown waitmovement 0 playbgm MUS_ENCOUNTER_RIVAL, 0 applymovement LOCALID_RIVAL, Movement_ExclamationMark @@ -61,7 +61,7 @@ SixIsland_PokemonCenter_1F_Movement_RivalExit:: SixIsland_PokemonCenter_1F_Movement_PlayerWatchRivalExit:: walk_left - walk_in_place_fastest_right + walk_in_place_faster_right step_end SixIsland_PokemonCenter_1F_EventScript_Nurse:: diff --git a/data/maps/ThreeIsland/scripts.inc b/data/maps/ThreeIsland/scripts.inc index 0d7c53e07..c88307195 100644 --- a/data/maps/ThreeIsland/scripts.inc +++ b/data/maps/ThreeIsland/scripts.inc @@ -95,23 +95,23 @@ ThreeIsland_EventScript_BikerArgumentScene:: return ThreeIsland_EventScript_PlayerFaceUp:: - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestUp + applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterUp waitmovement 0 return @ Unused ThreeIsland_EventScript_PlayerFaceDown:: - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestDown + applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterDown waitmovement 0 return ThreeIsland_EventScript_PlayerFaceLeft:: - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestLeft + applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterLeft waitmovement 0 return ThreeIsland_EventScript_PlayerFaceRight:: - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestRight + applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight waitmovement 0 return @@ -204,7 +204,7 @@ ThreeIsland_EventScript_BattleBikersTriggerRight:: ThreeIsland_EventScript_BattleBikersScene:: textcolor NPC_TEXT_COLOR_MALE - applymovement LOCALID_BIKER1, Movement_WalkInPlaceFastestDown + applymovement LOCALID_BIKER1, Movement_WalkInPlaceFasterDown waitmovement 0 playse SE_PIN applymovement LOCALID_BIKER1, Movement_ExclamationMark @@ -239,10 +239,10 @@ ThreeIsland_EventScript_BattleBikersScene:: msgbox ThreeIsland_Text_Biker3Intro setvar VAR_LAST_TALKED, LOCALID_BIKER3 trainerbattle_no_intro TRAINER_BIKER_GOON_3, ThreeIsland_Text_Biker3Defeat - applymovement LOCALID_BIKER3, Movement_WalkInPlaceFastestLeft + applymovement LOCALID_BIKER3, Movement_WalkInPlaceFasterLeft waitmovement 0 - applymovement LOCALID_BIKER4, Movement_WalkInPlaceFastestDown - applymovement LOCALID_BIKER5, Movement_WalkInPlaceFastestDown + applymovement LOCALID_BIKER4, Movement_WalkInPlaceFasterDown + applymovement LOCALID_BIKER5, Movement_WalkInPlaceFasterDown waitmovement 0 msgbox ThreeIsland_Text_Biker3PostBattle closemessage @@ -272,33 +272,33 @@ ThreeIsland_EventScript_BattleBikersScene:: end ThreeIsland_EventScript_PaxtonApproachLeft:: - applymovement LOCALID_BIKER3, Movement_WalkInPlaceFastestDown + applymovement LOCALID_BIKER3, Movement_WalkInPlaceFasterDown applymovement LOCALID_PAXTON, ThreeIsland_Movement_PaxtonApproachLeft waitmovement 0 return ThreeIsland_EventScript_PaxtonApproachMidLeft:: - applymovement LOCALID_BIKER3, Movement_WalkInPlaceFastestDown + applymovement LOCALID_BIKER3, Movement_WalkInPlaceFasterDown applymovement LOCALID_PAXTON, ThreeIsland_Movement_PaxtonApproachMidLeft waitmovement 0 return ThreeIsland_EventScript_PaxtonApproachMid:: - applymovement LOCALID_BIKER3, Movement_WalkInPlaceFastestDown + applymovement LOCALID_BIKER3, Movement_WalkInPlaceFasterDown applymovement LOCALID_PAXTON, ThreeIsland_Movement_PaxtonApproachMid applymovement OBJ_EVENT_ID_PLAYER, ThreeIsland_Movement_PlayerFacePaxton waitmovement 0 return ThreeIsland_EventScript_PaxtonApproachMidRight:: - applymovement LOCALID_BIKER3, Movement_WalkInPlaceFastestDown + applymovement LOCALID_BIKER3, Movement_WalkInPlaceFasterDown applymovement OBJ_EVENT_ID_PLAYER, ThreeIsland_Movement_PlayerFacePaxton applymovement LOCALID_PAXTON, ThreeIsland_Movement_PaxtonApproachMidRight waitmovement 0 return ThreeIsland_EventScript_PaxtonApproachRight:: - applymovement LOCALID_BIKER3, Movement_WalkInPlaceFastestDown + applymovement LOCALID_BIKER3, Movement_WalkInPlaceFasterDown applymovement OBJ_EVENT_ID_PLAYER, ThreeIsland_Movement_PlayerFacePaxton applymovement LOCALID_PAXTON, ThreeIsland_Movement_PaxtonApproachRight waitmovement 0 @@ -325,7 +325,7 @@ ThreeIsland_Movement_BikerApproach:: ThreeIsland_Movement_Biker1ReturnToPack:: walk_up - walk_in_place_fastest_left + walk_in_place_faster_left step_end ThreeIsland_Movement_BikerSpeak:: @@ -335,7 +335,7 @@ ThreeIsland_Movement_BikerSpeak:: ThreeIsland_Movement_PaxtonApproachLeft:: walk_down walk_left - walk_in_place_fastest_down + walk_in_place_faster_down step_end ThreeIsland_Movement_PaxtonApproachMidLeft:: @@ -345,20 +345,20 @@ ThreeIsland_Movement_PaxtonApproachMidLeft:: ThreeIsland_Movement_PaxtonApproachMid:: walk_down walk_down - walk_in_place_fastest_right + walk_in_place_faster_right step_end ThreeIsland_Movement_PlayerFacePaxton:: delay_16 delay_16 - walk_in_place_fastest_left + walk_in_place_faster_left step_end ThreeIsland_Movement_PaxtonApproachMidRight:: walk_down walk_down walk_right - walk_in_place_fastest_right + walk_in_place_faster_right step_end ThreeIsland_Movement_PaxtonApproachRight:: @@ -366,7 +366,7 @@ ThreeIsland_Movement_PaxtonApproachRight:: walk_down walk_right walk_right - walk_in_place_fastest_right + walk_in_place_faster_right step_end ThreeIsland_EventScript_Woman:: diff --git a/data/maps/ThreeIsland_BerryForest/scripts.inc b/data/maps/ThreeIsland_BerryForest/scripts.inc index 9b7fc032c..c5e8841de 100644 --- a/data/maps/ThreeIsland_BerryForest/scripts.inc +++ b/data/maps/ThreeIsland_BerryForest/scripts.inc @@ -48,11 +48,11 @@ ThreeIsland_BerryForest_EventScript_NoRoomForBerry:: return ThreeIsland_BerryForest_Movement_LostelleLookAround:: - walk_in_place_fastest_left + walk_in_place_faster_left delay_16 - walk_in_place_fastest_right + walk_in_place_faster_right delay_8 - walk_in_place_fastest_left + walk_in_place_faster_left step_end ThreeIsland_BerryForest_EventScript_WelcomeSign:: diff --git a/data/maps/TrainerTower_Elevator/scripts.inc b/data/maps/TrainerTower_Elevator/scripts.inc index 659394b14..07dd791f3 100644 --- a/data/maps/TrainerTower_Elevator/scripts.inc +++ b/data/maps/TrainerTower_Elevator/scripts.inc @@ -70,7 +70,7 @@ TrainerTower_Elevator_EventScript_MoveElevator:: return TrainerTower_Elevator_Movement_ExitElevator:: - walk_in_place_fastest_down + walk_in_place_faster_down delay_16 walk_down walk_right diff --git a/data/maps/TwoIsland_JoyfulGameCorner/scripts.inc b/data/maps/TwoIsland_JoyfulGameCorner/scripts.inc index d70199be5..ab2e4a8bf 100644 --- a/data/maps/TwoIsland_JoyfulGameCorner/scripts.inc +++ b/data/maps/TwoIsland_JoyfulGameCorner/scripts.inc @@ -43,7 +43,7 @@ TwoIsland_JoyfulGameCorner_EventScript_FoundLostelleScene:: special BufferBigGuyOrBigGirlString msgbox TwoIsland_JoyfulGameCorner_Text_LostelleItsOkayDaddy closemessage - applymovement LOCALID_LOSTELLE, Movement_WalkInPlaceFastestDown + applymovement LOCALID_LOSTELLE, Movement_WalkInPlaceFasterDown waitmovement 0 setvar VAR_MAP_SCENE_TWO_ISLAND_JOYFUL_GAME_CORNER, 3 releaseall @@ -56,7 +56,7 @@ TwoIsland_JoyfulGameCorner_EventScript_HelpFindLostelleScene:: waitmovement 0 msgbox TwoIsland_JoyfulGameCorner_Text_WhereHasLostelleGottenTo closemessage - applymovement LOCALID_DADDY, Movement_WalkInPlaceFastestDown + applymovement LOCALID_DADDY, Movement_WalkInPlaceFasterDown waitmovement 0 playse SE_PIN applymovement LOCALID_DADDY, Movement_ExclamationMark @@ -65,7 +65,7 @@ TwoIsland_JoyfulGameCorner_EventScript_HelpFindLostelleScene:: waitmovement 0 applymovement LOCALID_DADDY, Movement_171527 waitmovement 0 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestRight + applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight waitmovement 0 msgbox TwoIsland_JoyfulGameCorner_Text_PleaseHelpFindLostelle closemessage @@ -78,12 +78,12 @@ TwoIsland_JoyfulGameCorner_EventScript_HelpFindLostelleScene:: applymovement LOCALID_BIKER, TwoIsland_JoyfulGameCorner_Movement_BikerLookAround waitmovement 0 msgbox TwoIsland_JoyfulGameCorner_Text_IsThisOnlyThreeIsland - applymovement LOCALID_BIKER, Movement_WalkInPlaceFastestRight + applymovement LOCALID_BIKER, Movement_WalkInPlaceFasterRight waitmovement 0 msgbox TwoIsland_JoyfulGameCorner_Text_ThisIsTwoIslandMoveIt msgbox TwoIsland_JoyfulGameCorner_Text_TheseIslandsAreConfusing closemessage - applymovement LOCALID_BIKER, Movement_WalkInPlaceFastestDown + applymovement LOCALID_BIKER, Movement_WalkInPlaceFasterDown waitmovement 0 playse SE_EXIT removeobject LOCALID_BIKER @@ -101,7 +101,7 @@ Movement_171520:: walk_right walk_right delay_8 - walk_in_place_fastest_up + walk_in_place_faster_up delay_16 step_end @@ -109,20 +109,20 @@ Movement_171527:: walk_down walk_down walk_down - walk_in_place_fastest_left + walk_in_place_faster_left step_end Movement_17152C:: walk_left - walk_in_place_fastest_right + walk_in_place_faster_right step_end TwoIsland_JoyfulGameCorner_Movement_BikerLookAround:: - walk_in_place_fastest_left + walk_in_place_faster_left delay_8 - walk_in_place_fastest_right + walk_in_place_faster_right delay_8 - walk_in_place_fastest_up + walk_in_place_faster_up step_end TwoIsland_JoyfulGameCorner_EventScript_InfoMan:: diff --git a/data/maps/VermilionCity/scripts.inc b/data/maps/VermilionCity/scripts.inc index c8f7f9d75..9b7028145 100644 --- a/data/maps/VermilionCity/scripts.inc +++ b/data/maps/VermilionCity/scripts.inc @@ -191,8 +191,8 @@ VermilionCity_EventScript_ExitedTicketCheck:: VermilionCity_EventScript_CheckTicket:: textcolor NPC_TEXT_COLOR_MALE - applymovement LOCALID_FERRY_SAILOR, Movement_WalkInPlaceFastestLeft - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestRight + applymovement LOCALID_FERRY_SAILOR, Movement_WalkInPlaceFasterLeft + applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight waitmovement 0 goto_if_eq VAR_MAP_SCENE_VERMILION_CITY, 3, VermilionCity_EventScript_CheckSeagallopPresentTrigger msgbox VermilionCity_Text_DoYouHaveATicket diff --git a/data/maps/ViridianCity/scripts.inc b/data/maps/ViridianCity/scripts.inc index 824aae6fa..85edc6686 100644 --- a/data/maps/ViridianCity/scripts.inc +++ b/data/maps/ViridianCity/scripts.inc @@ -43,7 +43,7 @@ ViridianCity_EventScript_TryUnlockGym:: ViridianCity_EventScript_GymDoorLocked:: lockall textcolor NPC_TEXT_COLOR_NEUTRAL - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestUp + applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterUp waitmovement 0 delay 20 msgbox ViridianCity_Text_GymDoorsAreLocked @@ -206,9 +206,9 @@ ViridianCity_Movement_WalkDown:: ViridianCity_EventScript_TutorialTriggerLeft:: lockall textcolor NPC_TEXT_COLOR_MALE - applymovement LOCALID_TUTORIAL_MAN, Movement_WalkInPlaceFastestLeft + applymovement LOCALID_TUTORIAL_MAN, Movement_WalkInPlaceFasterLeft waitmovement 0 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestRight + applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterRight waitmovement 0 call ViridianCity_EventScript_DoTutorialBattle release @@ -217,9 +217,9 @@ ViridianCity_EventScript_TutorialTriggerLeft:: ViridianCity_EventScript_TutorialTriggerRight:: lockall textcolor NPC_TEXT_COLOR_MALE - applymovement LOCALID_TUTORIAL_MAN, Movement_WalkInPlaceFastestRight + applymovement LOCALID_TUTORIAL_MAN, Movement_WalkInPlaceFasterRight waitmovement 0 - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestLeft + applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterLeft waitmovement 0 call ViridianCity_EventScript_DoTutorialBattle release diff --git a/data/maps/ViridianCity_Mart/scripts.inc b/data/maps/ViridianCity_Mart/scripts.inc index 9d30f53ee..6ff805858 100644 --- a/data/maps/ViridianCity_Mart/scripts.inc +++ b/data/maps/ViridianCity_Mart/scripts.inc @@ -21,7 +21,7 @@ ViridianCity_Mart_OnFrame:: ViridianCity_Mart_EventScript_ParcelScene:: lockall textcolor NPC_TEXT_COLOR_MALE - applymovement LOCALID_CLERK, Movement_WalkInPlaceFastestDown + applymovement LOCALID_CLERK, Movement_WalkInPlaceFasterDown waitmovement 0 msgbox ViridianCity_Mart_Text_YouCameFromPallet closemessage @@ -40,7 +40,7 @@ ViridianCity_Mart_Movement_ApproachCounter:: walk_up walk_up walk_up - walk_in_place_fastest_left + walk_in_place_faster_left step_end ViridianCity_Mart_Movement_FacePlayer:: @@ -48,7 +48,7 @@ ViridianCity_Mart_Movement_FacePlayer:: delay_16 delay_16 delay_16 - walk_in_place_fastest_right + walk_in_place_faster_right step_end ViridianCity_Mart_EventScript_Clerk:: diff --git a/data/maps/ViridianCity_School/scripts.inc b/data/maps/ViridianCity_School/scripts.inc index 7f72fb83c..658dfdf0c 100644 --- a/data/maps/ViridianCity_School/scripts.inc +++ b/data/maps/ViridianCity_School/scripts.inc @@ -9,7 +9,7 @@ ViridianCity_School_EventScript_Lass:: faceplayer msgbox ViridianCity_School_Text_TryingToMemorizeNotes closemessage - applymovement LOCALID_LASS, Movement_WalkInPlaceFastestUp + applymovement LOCALID_LASS, Movement_WalkInPlaceFasterUp waitmovement 0 release end @@ -36,7 +36,7 @@ ViridianCity_School_EventScript_Notebook:: msgbox ViridianCity_School_Text_TurnThePage, MSGBOX_YESNO goto_if_eq VAR_RESULT, NO, ViridianCity_School_EventScript_StopReadingNotebook msgbox ViridianCity_School_Text_NotebookFourthPage - applymovement LOCALID_LASS, Movement_WalkInPlaceFastestUp + applymovement LOCALID_LASS, Movement_WalkInPlaceFasterUp waitmovement 0 textcolor NPC_TEXT_COLOR_FEMALE msgbox ViridianCity_School_Text_HeyDontLookAtMyNotes diff --git a/data/scripts/cable_club.inc b/data/scripts/cable_club.inc index a577534bf..b225958a3 100644 --- a/data/scripts/cable_club.inc +++ b/data/scripts/cable_club.inc @@ -181,7 +181,7 @@ CableClub_EventScript_PlayerExitLinkRoom:: CableClub_EventScript_Tutorial:: lockall textcolor NPC_TEXT_COLOR_FEMALE - applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestUp + applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFasterUp waitmovement 0 msgbox CableClub_Text_FirstTimeRightThisWay closemessage diff --git a/data/scripts/movement.inc b/data/scripts/movement.inc index 61960d26a..52e5a2c96 100644 --- a/data/scripts/movement.inc +++ b/data/scripts/movement.inc @@ -25,20 +25,20 @@ Movement_FaceOriginalDirection:: face_original_direction step_end -Movement_WalkInPlaceFastestLeft:: - walk_in_place_fastest_left +Movement_WalkInPlaceFasterLeft:: + walk_in_place_faster_left step_end -Movement_WalkInPlaceFastestUp:: - walk_in_place_fastest_up +Movement_WalkInPlaceFasterUp:: + walk_in_place_faster_up step_end -Movement_WalkInPlaceFastestRight:: - walk_in_place_fastest_right +Movement_WalkInPlaceFasterRight:: + walk_in_place_faster_right step_end -Movement_WalkInPlaceFastestDown:: - walk_in_place_fastest_down +Movement_WalkInPlaceFasterDown:: + walk_in_place_faster_down step_end Movement_FaceRight:: diff --git a/data/scripts/pkmn_center_nurse.inc b/data/scripts/pkmn_center_nurse.inc index 53875fc5f..bec40c40c 100644 --- a/data/scripts/pkmn_center_nurse.inc +++ b/data/scripts/pkmn_center_nurse.inc @@ -19,11 +19,11 @@ EventScript_PkmnCenterNurse_HealPkmn:: end EventScript_PkmnCenterNurse_TakeAndHealPkmn:: - applymovement VAR_LAST_TALKED, Movement_WalkInPlaceFastestLeft + applymovement VAR_LAST_TALKED, Movement_WalkInPlaceFasterLeft waitmovement 0 dofieldeffect FLDEFF_POKECENTER_HEAL waitfieldeffect FLDEFF_POKECENTER_HEAL - applymovement VAR_LAST_TALKED, Movement_WalkInPlaceFastestDown + applymovement VAR_LAST_TALKED, Movement_WalkInPlaceFasterDown waitmovement 0 special HealPlayerParty return diff --git a/data/scripts/route23.inc b/data/scripts/route23.inc index dc47d5cc8..7a7b838a0 100644 --- a/data/scripts/route23.inc +++ b/data/scripts/route23.inc @@ -114,7 +114,7 @@ Route23_EventScript_RecognizeBadge:: Route23_EventScript_BadgeGuardTrigger:: textcolor NPC_TEXT_COLOR_MALE - applymovement VAR_0x8009, Movement_WalkInPlaceFastestLeft + applymovement VAR_0x8009, Movement_WalkInPlaceFasterLeft waitmovement 0 switch VAR_TEMP_1 case 1, Route23_EventScript_CheckBoulderBadgeTrigger @@ -173,7 +173,7 @@ Route23_EventScript_MissingBoulderBadgeTrigger:: msgbox Text_CantLetYouPass closemessage applymovement OBJ_EVENT_ID_PLAYER, Route23_Movement_WalkDown - applymovement VAR_0x8009, Movement_WalkInPlaceFastestDown + applymovement VAR_0x8009, Movement_WalkInPlaceFasterDown waitmovement 0 releaseall end @@ -186,7 +186,7 @@ Route23_EventScript_MissingBadgeTrigger:: closemessage waitse applymovement OBJ_EVENT_ID_PLAYER, Route23_Movement_WalkDown - applymovement VAR_0x8009, Movement_WalkInPlaceFastestDown + applymovement VAR_0x8009, Movement_WalkInPlaceFasterDown waitmovement 0 releaseall end diff --git a/data/scripts/white_out.inc b/data/scripts/white_out.inc index 6541d7a21..cbf593c82 100644 --- a/data/scripts/white_out.inc +++ b/data/scripts/white_out.inc @@ -24,7 +24,7 @@ EventScript_AfterWhiteOutHealMsg:: EventScript_AfterWhiteOutMomHeal:: lockall textcolor NPC_TEXT_COLOR_FEMALE - applymovement LOCALID_MOM, Movement_WalkInPlaceFastestDown + applymovement LOCALID_MOM, Movement_WalkInPlaceFasterDown waitmovement 0 msgbox Text_HadQuiteAnExperienceTakeRest call EventScript_OutOfCenterPartyHeal diff --git a/graphics/object_events/pics/misc/town_map.png b/graphics/object_events/pics/misc/town_map.png index 1092e5695..1afb1921e 100644 Binary files a/graphics/object_events/pics/misc/town_map.png and b/graphics/object_events/pics/misc/town_map.png differ diff --git a/include/battle.h b/include/battle.h index b581190d6..ec98208a9 100644 --- a/include/battle.h +++ b/include/battle.h @@ -188,7 +188,7 @@ struct ProtectStruct u32 confusionSelfDmg:1; u32 targetNotAffected:1; u32 chargingTurn:1; - u32 fleeFlag:2; // for RunAway and Smoke Ball + u32 fleeType:2; // for RunAway and Smoke Ball u32 usedImprisonedMove:1; u32 loveImmobility:1; u32 usedDisabledMove:1; @@ -361,7 +361,7 @@ struct BattleResults extern struct BattleResults gBattleResults; -struct LinkPartnerHeader +struct LinkBattlerHeader { u8 versionSignatureLo; u8 versionSignatureHi; @@ -452,7 +452,7 @@ struct BattleStruct u8 field_182; // align 4 union { - struct LinkPartnerHeader linkPartnerHeader; + struct LinkBattlerHeader linkBattlerHeader; struct MultiBattlePokemonTx multiBattleMons[3]; } multiBuffer; u8 padding_1E4[0x1C]; @@ -681,8 +681,8 @@ extern u8 gActionSelectionCursor[MAX_BATTLERS_COUNT]; extern void (*gPreBattleCallback1)(void); extern bool8 gDoingBattleAnim; extern struct PokedudeBattlerState *gPokedudeBattlerStates[MAX_BATTLERS_COUNT]; -extern u8 *gBattleAnimMons_BgTilesBuffer; -extern u8 *gBattleAnimMons_BgTilemapBuffer; +extern u8 *gBattleAnimBgTileBuffer; +extern u8 *gBattleAnimBgTilemapBuffer; extern void (*gBattleMainFunc)(void); extern u8 gMoveSelectionCursor[MAX_BATTLERS_COUNT]; extern u32 gUnknown_2022B54; diff --git a/include/battle_controllers.h b/include/battle_controllers.h index 12e786fc9..b473f5022 100644 --- a/include/battle_controllers.h +++ b/include/battle_controllers.h @@ -101,6 +101,8 @@ enum { #define INSTANT_HP_BAR_DROP 0x7FFF +#define PARTY_SUMM_SKIP_DRAW_DELAY (1 << 7) + // Special return values in gBattleBufferB from Battle Controller functions. #define RET_VALUE_LEVELED_UP 11 diff --git a/include/battle_main.h b/include/battle_main.h index 8d5e1d19d..009e0e562 100644 --- a/include/battle_main.h +++ b/include/battle_main.h @@ -73,10 +73,10 @@ u32 GetBattleBgTemplateData(u8 arrayId, u8 caseId); void SpriteCB_EnemyMon(struct Sprite *sprite); void SpriteCallbackDummy_2(struct Sprite *sprite); void SpriteCB_FaintOpponentMon(struct Sprite *sprite); -void SpriteCb_ShowAsMoveTarget(struct Sprite *sprite); -void SpriteCb_HideAsMoveTarget(struct Sprite *sprite); +void SpriteCB_ShowAsMoveTarget(struct Sprite *sprite); +void SpriteCB_HideAsMoveTarget(struct Sprite *sprite); void SpriteCB_AllyMon(struct Sprite *sprite); -void SpriteCB_SetToDummy3(struct Sprite *sprite); +void SetIdleSpriteCallback(struct Sprite *sprite); void SpriteCB_FaintSlideAnim(struct Sprite *sprite); void DoBounceEffect(u8 battler, u8 which, s8 delta, s8 amplitude); void EndBounceEffect(u8 battler, u8 which); diff --git a/include/battle_util.h b/include/battle_util.h index cd0b1ab12..fe19aace0 100644 --- a/include/battle_util.h +++ b/include/battle_util.h @@ -9,6 +9,7 @@ #define MOVE_LIMITATION_TORMENTED (1 << 3) #define MOVE_LIMITATION_TAUNT (1 << 4) #define MOVE_LIMITATION_IMPRISON (1 << 5) +#define MOVE_LIMITATIONS_ALL 0xFF #define ABILITYEFFECT_ON_SWITCHIN 0 #define ABILITYEFFECT_ENDTURN 1 @@ -38,9 +39,12 @@ #define ABILITY_ON_FIELD(abilityId)(AbilityBattleEffects(ABILITYEFFECT_CHECK_ON_FIELD, 0, abilityId, 0, 0)) #define ABILITY_ON_FIELD2(abilityId)(AbilityBattleEffects(ABILITYEFFECT_FIELD_SPORT, 0, abilityId, 0, 0)) -#define ITEMEFFECT_ON_SWITCH_IN 0x0 -#define ITEMEFFECT_MOVE_END 0x3 -#define ITEMEFFECT_KINGSROCK_SHELLBELL 0x4 +// For the first argument of ItemBattleEffects, to deteremine which block of item effects to try +#define ITEMEFFECT_ON_SWITCH_IN 0 +#define ITEMEFFECT_NORMAL 1 +#define ITEMEFFECT_DUMMY 2 // Unused, empty +#define ITEMEFFECT_MOVE_END 3 +#define ITEMEFFECT_KINGSROCK_SHELLBELL 4 #define WEATHER_HAS_EFFECT ((!AbilityBattleEffects(ABILITYEFFECT_CHECK_ON_FIELD, 0, ABILITY_CLOUD_NINE, 0, 0) && !AbilityBattleEffects(ABILITYEFFECT_CHECK_ON_FIELD, 0, ABILITY_AIR_LOCK, 0, 0))) #define WEATHER_HAS_EFFECT2 ((!AbilityBattleEffects(ABILITYEFFECT_FIELD_SPORT, 0, ABILITY_CLOUD_NINE, 0, 0) && !AbilityBattleEffects(ABILITYEFFECT_FIELD_SPORT, 0, ABILITY_AIR_LOCK, 0, 0))) @@ -58,7 +62,6 @@ u8 GetBattlerForBattleScript(u8 caseId); void PressurePPLose(u8 target, u8 attacker, u16 move); void PressurePPLoseOnUsingImprison(u8 attacker); void PressurePPLoseOnUsingPerishSong(u8 attacker); -void MarkAllBattlersForControllerExec(void); void MarkBattlerForControllerExec(u8 battlerId); void MarkBattlerReceivedLinkData(u8 battlerId); void CancelMultiTurnMoves(u8 battler); diff --git a/include/constants/battle.h b/include/constants/battle.h index 0b4c372a2..f628e7fed 100644 --- a/include/constants/battle.h +++ b/include/constants/battle.h @@ -316,6 +316,9 @@ #define NUM_CASTFORM_FORMS 4 #define CASTFORM_SUBSTITUTE (1 << 7) +#define FLEE_ITEM 1 +#define FLEE_ABILITY 2 + // Return value for IsRunningFromBattleImpossible. #define BATTLE_RUN_SUCCESS 0 #define BATTLE_RUN_FORBIDDEN 1 @@ -351,4 +354,7 @@ #define B_TEXT_FLAG_NPC_CONTEXT_FONT (1 << 6) #define B_TEXT_FLAG_WINDOW_CLEAR (1 << 7) +// Indicator for the party summary bar to display an empty slot. +#define HP_EMPTY_SLOT 0xFFFF + #endif // GUARD_CONSTANTS_BATTLE_H diff --git a/include/constants/event_object_movement.h b/include/constants/event_object_movement.h index 88056783e..9ab0c7801 100644 --- a/include/constants/event_object_movement.h +++ b/include/constants/event_object_movement.h @@ -79,9 +79,9 @@ #define MOVEMENT_TYPE_JOG_IN_PLACE_LEFT 0x4A #define MOVEMENT_TYPE_JOG_IN_PLACE_RIGHT 0x4B #define MOVEMENT_TYPE_INVISIBLE 0x4C -#define MOVEMENT_TYPE_VS_SEEKER_4D 0x4D -#define MOVEMENT_TYPE_VS_SEEKER_4E 0x4E -#define MOVEMENT_TYPE_VS_SEEKER_4F 0x4F +#define MOVEMENT_TYPE_RAISE_HAND_AND_STOP 0x4D +#define MOVEMENT_TYPE_RAISE_HAND_AND_JUMP 0x4E +#define MOVEMENT_TYPE_RAISE_HAND_AND_SWIM 0x4F #define MOVEMENT_TYPE_WANDER_AROUND_SLOWER 0x50 #define MOVEMENT_TYPES_COUNT 0x51 @@ -130,18 +130,18 @@ #define MOVEMENT_ACTION_WALK_IN_PLACE_FAST_UP 0x2A #define MOVEMENT_ACTION_WALK_IN_PLACE_FAST_LEFT 0x2B #define MOVEMENT_ACTION_WALK_IN_PLACE_FAST_RIGHT 0x2C -#define MOVEMENT_ACTION_WALK_IN_PLACE_FASTEST_DOWN 0x2D -#define MOVEMENT_ACTION_WALK_IN_PLACE_FASTEST_UP 0x2E -#define MOVEMENT_ACTION_WALK_IN_PLACE_FASTEST_LEFT 0x2F -#define MOVEMENT_ACTION_WALK_IN_PLACE_FASTEST_RIGHT 0x30 +#define MOVEMENT_ACTION_WALK_IN_PLACE_FASTER_DOWN 0x2D +#define MOVEMENT_ACTION_WALK_IN_PLACE_FASTER_UP 0x2E +#define MOVEMENT_ACTION_WALK_IN_PLACE_FASTER_LEFT 0x2F +#define MOVEMENT_ACTION_WALK_IN_PLACE_FASTER_RIGHT 0x30 #define MOVEMENT_ACTION_RIDE_WATER_CURRENT_DOWN 0x31 #define MOVEMENT_ACTION_RIDE_WATER_CURRENT_UP 0x32 #define MOVEMENT_ACTION_RIDE_WATER_CURRENT_LEFT 0x33 #define MOVEMENT_ACTION_RIDE_WATER_CURRENT_RIGHT 0x34 -#define MOVEMENT_ACTION_WALK_FASTEST_DOWN 0x35 -#define MOVEMENT_ACTION_WALK_FASTEST_UP 0x36 -#define MOVEMENT_ACTION_WALK_FASTEST_LEFT 0x37 -#define MOVEMENT_ACTION_WALK_FASTEST_RIGHT 0x38 +#define MOVEMENT_ACTION_WALK_FASTER_DOWN 0x35 +#define MOVEMENT_ACTION_WALK_FASTER_UP 0x36 +#define MOVEMENT_ACTION_WALK_FASTER_LEFT 0x37 +#define MOVEMENT_ACTION_WALK_FASTER_RIGHT 0x38 #define MOVEMENT_ACTION_SLIDE_DOWN 0x39 #define MOVEMENT_ACTION_SLIDE_UP 0x3A #define MOVEMENT_ACTION_SLIDE_LEFT 0x3B @@ -240,18 +240,18 @@ #define MOVEMENT_ACTION_SPIN_UP 0x95 #define MOVEMENT_ACTION_SPIN_LEFT 0x96 #define MOVEMENT_ACTION_SPIN_RIGHT 0x97 -#define MOVEMENT_ACTION_0x98 0x98 -#define MOVEMENT_ACTION_0x99 0x99 -#define MOVEMENT_ACTION_0x9A 0x9A +#define MOVEMENT_ACTION_RAISE_HAND_AND_STOP 0x98 +#define MOVEMENT_ACTION_RAISE_HAND_AND_JUMP 0x99 +#define MOVEMENT_ACTION_RAISE_HAND_AND_SWIM 0x9A #define MOVEMENT_ACTION_WALK_SLOWEST_DOWN 0x9B #define MOVEMENT_ACTION_WALK_SLOWEST_UP 0x9C #define MOVEMENT_ACTION_WALK_SLOWEST_LEFT 0x9D #define MOVEMENT_ACTION_WALK_SLOWEST_RIGHT 0x9E #define MOVEMENT_ACTION_SHAKE_HEAD_OR_WALK_IN_PLACE 0x9F -#define MOVEMENT_ACTION_0xA0 0xA0 -#define MOVEMENT_ACTION_0xA1 0xA1 -#define MOVEMENT_ACTION_0xA2 0xA2 -#define MOVEMENT_ACTION_0xA3 0xA3 +#define MOVEMENT_ACTION_GLIDE_DOWN 0xA0 +#define MOVEMENT_ACTION_GLIDE_UP 0xA1 +#define MOVEMENT_ACTION_GLIDE_LEFT 0xA2 +#define MOVEMENT_ACTION_GLIDE_RIGHT 0xA3 #define MOVEMENT_ACTION_FLY_UP 0xA4 #define MOVEMENT_ACTION_FLY_DOWN 0xA5 #define MOVEMENT_ACTION_JUMP_SPECIAL_WITH_EFFECT_DOWN 0xA6 diff --git a/include/constants/pokemon.h b/include/constants/pokemon.h index dbea7dff5..8e59604d7 100644 --- a/include/constants/pokemon.h +++ b/include/constants/pokemon.h @@ -224,7 +224,6 @@ #define EV_ITEM_RAISE_LIMIT 100 #define PARTY_SIZE 6 -#define UNOWN_FORM_COUNT 28 #define BOX_NAME_LENGTH 8 #define EVO_MODE_NORMAL 0 diff --git a/include/data.h b/include/data.h index 2fa86fc0d..cf98e1572 100644 --- a/include/data.h +++ b/include/data.h @@ -20,10 +20,6 @@ struct MonCoords extern const u8 gSpeciesNames[][POKEMON_NAME_LENGTH + 1]; extern const u8 gMoveNames[][13]; -extern const u16 gUnknown_8251CB8[]; -extern const u16 gUnknown_8251FEE[]; -extern const u16 gUnknown_8252324[]; -extern const u16 gUnknown_82539D4[]; extern const u8 gTrainerClassNames[][13]; @@ -36,6 +32,7 @@ extern const struct CompressedSpritePalette gMonShinyPaletteTable[]; extern const union AnimCmd *const *const gTrainerFrontAnimsPtrTable[]; extern const struct MonCoords gTrainerFrontPicCoords[]; extern const struct CompressedSpriteSheet gTrainerFrontPicTable[]; +extern const struct CompressedSpriteSheet gTrainerBackPicTable[]; extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[]; extern const union AnimCmd *const *const gTrainerBackAnimsPtrTable[]; extern const struct MonCoords gTrainerBackPicCoords[]; @@ -49,15 +46,13 @@ extern const u8 gEnemyMonElevation[NUM_SPECIES]; extern const u8 *const gBattleAnims_General[]; extern const u8 *const gBattleAnims_Special[]; -extern const struct OamData gUnknown_824F010; -extern const struct OamData gUnknown_824F018; -extern const union AnimCmd *const gSpriteAnimTable_82349BC[]; -extern const union AffineAnimCmd *const gSpriteAffineAnimTable_BattlerPlayer[]; -extern const union AffineAnimCmd *const gSpriteAffineAnimTable_BattlerOpponent[]; -extern const struct SpriteFrameImage gSpriteImages_BattlerPlayerLeft[]; -extern const struct SpriteFrameImage gSpriteImages_BattlerOpponentLeft[]; -extern const struct SpriteFrameImage gSpriteImages_BattlerPlayerRight[]; -extern const struct SpriteFrameImage gSpriteImages_BattlerOpponentRight[]; +extern const union AnimCmd *const gAnims_MonPic[]; +extern const union AffineAnimCmd *const gAffineAnims_BattleSpritePlayerSide[]; +extern const union AffineAnimCmd *const gAffineAnims_BattleSpriteOpponentSide[]; +extern const struct SpriteFrameImage gBattlerPicTable_PlayerLeft[]; +extern const struct SpriteFrameImage gBattlerPicTable_OpponentLeft[]; +extern const struct SpriteFrameImage gBattlerPicTable_PlayerRight[]; +extern const struct SpriteFrameImage gBattlerPicTable_OpponentRight[]; extern const struct SpriteFrameImage gTrainerBackPicTable_Red[]; extern const struct SpriteFrameImage gTrainerBackPicTable_Leaf[]; extern const struct SpriteFrameImage gTrainerBackPicTable_Pokedude[]; diff --git a/include/pokemon.h b/include/pokemon.h index 0c5657f24..29ed66072 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -314,6 +314,15 @@ struct Evolution #define EVOS_PER_MON 5 +#define NUM_UNOWN_FORMS 28 + +#define GET_UNOWN_LETTER(personality) (( \ + (((personality) & 0x03000000) >> 18) \ + | (((personality) & 0x00030000) >> 12) \ + | (((personality) & 0x00000300) >> 6) \ + | (((personality) & 0x00000003) >> 0) \ +) % NUM_UNOWN_FORMS) + extern u8 gPlayerPartyCount; extern struct Pokemon gPlayerParty[PARTY_SIZE]; extern u8 gEnemyPartyCount; diff --git a/include/pokemon_summary_screen.h b/include/pokemon_summary_screen.h index aee4c27be..e4be91f1f 100644 --- a/include/pokemon_summary_screen.h +++ b/include/pokemon_summary_screen.h @@ -3,8 +3,8 @@ #include "main.h" -extern const u8 * const gMoveDescriptionPointers[]; -extern const u8 * const gNatureNamePointers[]; +extern const u8 *const gMoveDescriptionPointers[]; +extern const u8 *const gNatureNamePointers[]; void ShowSelectMovePokemonSummaryScreen(struct Pokemon *, u8, u8, MainCallback, u16); u8 GetMoveSlotToReplace(void); diff --git a/spritesheet_rules.mk b/spritesheet_rules.mk index 7b08dd1e0..24c3b1b20 100644 --- a/spritesheet_rules.mk +++ b/spritesheet_rules.mk @@ -13,6 +13,9 @@ $(OBJEVENTGFXDIR)/misc/surf_blob.4bpp: %.4bpp: %.png $(OBJEVENTGFXDIR)/misc/ss_anne.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 8 -mheight 4 +$(OBJEVENTGFXDIR)/misc/town_map.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 2 -mheight 2 + $(OBJEVENTGFXDIR)/people/agatha.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 2 -mheight 4 diff --git a/src/battle_anim_mons.c b/src/battle_anim_mons.c index c0a7848b7..0060a881b 100644 --- a/src/battle_anim_mons.c +++ b/src/battle_anim_mons.c @@ -9,13 +9,6 @@ #include "util.h" #include "constants/battle_anim.h" -#define GET_UNOWN_LETTER(personality) (( \ - (((personality & 0x03000000) >> 24) << 6) \ - | (((personality & 0x00030000) >> 16) << 4) \ - | (((personality & 0x00000300) >> 8) << 2) \ - | (((personality & 0x00000003) >> 0) << 0) \ -) % 28) - #define IS_DOUBLE_BATTLE() (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) static u8 GetBattlerSpriteFinal_Y(u8 battlerId, u16 species, bool8 a3); @@ -874,8 +867,8 @@ bool8 IsDoubleBattle(void) void GetBattleAnimBg1Data(struct BattleAnimBgData *animBgData) { - animBgData->bgTiles = gBattleAnimMons_BgTilesBuffer; - animBgData->bgTilemap = (u16 *)gBattleAnimMons_BgTilemapBuffer; + animBgData->bgTiles = gBattleAnimBgTileBuffer; + animBgData->bgTilemap = (u16 *)gBattleAnimBgTilemapBuffer; animBgData->paletteId = BG_ANIM_PAL_1; animBgData->bgId = 1; animBgData->tilesOffset = 0x200; @@ -890,8 +883,8 @@ void GetBattleAnimBgData(struct BattleAnimBgData *animBgData, u32 bgId) } else { - animBgData->bgTiles = gBattleAnimMons_BgTilesBuffer; - animBgData->bgTilemap = (u16 *)gBattleAnimMons_BgTilemapBuffer; + animBgData->bgTiles = gBattleAnimBgTileBuffer; + animBgData->bgTilemap = (u16 *)gBattleAnimBgTilemapBuffer; animBgData->paletteId = BG_ANIM_PAL_2; animBgData->bgId = 2; animBgData->tilesOffset = 0x300; @@ -901,8 +894,8 @@ void GetBattleAnimBgData(struct BattleAnimBgData *animBgData, u32 bgId) void GetBattleAnimBgDataByPriorityRank(struct BattleAnimBgData *animBgData, u8 unused) { - animBgData->bgTiles = gBattleAnimMons_BgTilesBuffer; - animBgData->bgTilemap = (u16 *)gBattleAnimMons_BgTilemapBuffer; + animBgData->bgTiles = gBattleAnimBgTileBuffer; + animBgData->bgTilemap = (u16 *)gBattleAnimBgTilemapBuffer; if (GetBattlerSpriteBGPriorityRank(gBattleAnimAttacker) == 1) { animBgData->paletteId = BG_ANIM_PAL_1; @@ -932,9 +925,9 @@ void InitBattleAnimBg(u32 bgId) void AnimLoadCompressedBgGfx(u32 bgId, const u32 *src, u32 tilesOffset) { - CpuFill32(0, gBattleAnimMons_BgTilesBuffer, 0x2000); - LZDecompressWram(src, gBattleAnimMons_BgTilesBuffer); - LoadBgTiles(bgId, gBattleAnimMons_BgTilesBuffer, 0x2000, tilesOffset); + CpuFill32(0, gBattleAnimBgTileBuffer, 0x2000); + LZDecompressWram(src, gBattleAnimBgTileBuffer); + LoadBgTiles(bgId, gBattleAnimBgTileBuffer, 0x2000, tilesOffset); } void InitAnimBgTilemapBuffer(u32 bgId, const void *src) diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c index 16c812fb0..2ebffdc77 100644 --- a/src/battle_controller_player.c +++ b/src/battle_controller_player.c @@ -337,7 +337,7 @@ static void HandleInputChooseTarget(void) if (JOY_NEW(A_BUTTON)) { PlaySE(SE_SELECT); - gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = SpriteCb_HideAsMoveTarget; + gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = SpriteCB_HideAsMoveTarget; BtlController_EmitTwoReturnValues(1, 10, gMoveSelectionCursor[gActiveBattler] | (gMultiUsePlayerCursor << 8)); EndBounceEffect(gMultiUsePlayerCursor, BOUNCE_HEALTHBOX); PlayerBufferExecCompleted(); @@ -345,7 +345,7 @@ static void HandleInputChooseTarget(void) else if (JOY_NEW(B_BUTTON)) { PlaySE(SE_SELECT); - gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = SpriteCb_HideAsMoveTarget; + gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = SpriteCB_HideAsMoveTarget; gBattlerControllerFuncs[gActiveBattler] = HandleInputChooseMove; DoBounceEffect(gActiveBattler, BOUNCE_HEALTHBOX, 7, 1); DoBounceEffect(gActiveBattler, BOUNCE_MON, 7, 1); @@ -354,7 +354,7 @@ static void HandleInputChooseTarget(void) else if (JOY_NEW(DPAD_LEFT | DPAD_UP)) { PlaySE(SE_SELECT); - gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = SpriteCb_HideAsMoveTarget; + gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = SpriteCB_HideAsMoveTarget; do { @@ -389,12 +389,12 @@ static void HandleInputChooseTarget(void) i = 0; } while (i == 0); - gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = SpriteCb_ShowAsMoveTarget; + gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = SpriteCB_ShowAsMoveTarget; } else if (JOY_NEW(DPAD_RIGHT | DPAD_DOWN)) { PlaySE(SE_SELECT); - gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = SpriteCb_HideAsMoveTarget; + gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = SpriteCB_HideAsMoveTarget; do { @@ -429,7 +429,7 @@ static void HandleInputChooseTarget(void) i = 0; } while (i == 0); - gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = SpriteCb_ShowAsMoveTarget; + gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = SpriteCB_ShowAsMoveTarget; } } @@ -496,7 +496,7 @@ void HandleInputChooseMove(void) gMultiUsePlayerCursor = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT); else gMultiUsePlayerCursor = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); - gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = SpriteCb_ShowAsMoveTarget; + gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = SpriteCB_ShowAsMoveTarget; } } else if (JOY_NEW(B_BUTTON)) diff --git a/src/battle_controllers.c b/src/battle_controllers.c index f259903e7..205c49362 100644 --- a/src/battle_controllers.c +++ b/src/battle_controllers.c @@ -1100,13 +1100,13 @@ void BtlController_EmitIntroTrainerBallThrow(u8 bufferId) PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, 4); } -void BtlController_EmitDrawPartyStatusSummary(u8 bufferId, struct HpAndStatus* hpAndStatus, u8 param) +void BtlController_EmitDrawPartyStatusSummary(u8 bufferId, struct HpAndStatus* hpAndStatus, u8 flags) { s32 i; sBattleBuffersTransferData[0] = CONTROLLER_DRAWPARTYSTATUSSUMMARY; - sBattleBuffersTransferData[1] = param & 0x7F; - sBattleBuffersTransferData[2] = (param & 0x80) >> 7; + sBattleBuffersTransferData[1] = flags & ~PARTY_SUMM_SKIP_DRAW_DELAY; // If true, skip player side + sBattleBuffersTransferData[2] = (flags & PARTY_SUMM_SKIP_DRAW_DELAY) >> 7; // If true, skip delay after drawing. True during intro sBattleBuffersTransferData[3] = CONTROLLER_DRAWPARTYSTATUSSUMMARY; for (i = 0; i < (s32)(sizeof(struct HpAndStatus) * PARTY_SIZE); ++i) sBattleBuffersTransferData[4 + i] = *(i + (u8 *)(hpAndStatus)); diff --git a/src/battle_gfx_sfx_util.c b/src/battle_gfx_sfx_util.c index 88334ba9c..327253c04 100644 --- a/src/battle_gfx_sfx_util.c +++ b/src/battle_gfx_sfx_util.c @@ -140,7 +140,7 @@ void SpriteCB_WaitForBattlerBallReleaseAnim(struct Sprite *sprite) gSprites[spriteId].animPaused = 0; else if (gSprites[spriteId].animEnded) { - gSprites[spriteId].callback = SpriteCB_SetToDummy3; + gSprites[spriteId].callback = SetIdleSpriteCallback; StartSpriteAffineAnim(&gSprites[spriteId], 0); sprite->callback = SpriteCallbackDummy; } diff --git a/src/battle_interface.c b/src/battle_interface.c index d0713bda1..57130c9ee 100644 --- a/src/battle_interface.c +++ b/src/battle_interface.c @@ -1137,8 +1137,9 @@ u8 CreatePartyStatusSummarySprites(u8 battlerId, struct HpAndStatus *partyInfo, { if (gBattleTypeFlags & BATTLE_TYPE_MULTI) { - if (partyInfo[i].hp == 0xFFFF) // empty slot or an egg + if (partyInfo[i].hp == HP_EMPTY_SLOT) { + // empty slot or an egg gSprites[ballIconSpritesIds[i]].oam.tileNum += 1; gSprites[ballIconSpritesIds[i]].data[7] = 1; } @@ -1153,17 +1154,20 @@ u8 CreatePartyStatusSummarySprites(u8 battlerId, struct HpAndStatus *partyInfo, } else { - if (i >= nValidMons) // empty slot or an egg + if (i >= nValidMons) { + // empty slot or an egg gSprites[ballIconSpritesIds[i]].oam.tileNum += 1; gSprites[ballIconSpritesIds[i]].data[7] = 1; } - else if (partyInfo[i].hp == 0) // fainted mon + else if (partyInfo[i].hp == 0) { + // fainted mon gSprites[ballIconSpritesIds[i]].oam.tileNum += 3; } - else if (partyInfo[i].status != 0) // mon with major status + else if (partyInfo[i].status != 0) { + // mon with major status gSprites[ballIconSpritesIds[i]].oam.tileNum += 2; } } @@ -1175,17 +1179,20 @@ u8 CreatePartyStatusSummarySprites(u8 battlerId, struct HpAndStatus *partyInfo, { if (gBattleTypeFlags & BATTLE_TYPE_MULTI) { - if (partyInfo[i].hp == 0xFFFF) // empty slot or an egg + if (partyInfo[i].hp == HP_EMPTY_SLOT) { + // empty slot or an egg gSprites[ballIconSpritesIds[5 - i]].oam.tileNum += 1; gSprites[ballIconSpritesIds[5 - i]].data[7] = 1; } - else if (partyInfo[i].hp == 0) // fainted mon + else if (partyInfo[i].hp == 0) { + // fainted mon gSprites[ballIconSpritesIds[5 - i]].oam.tileNum += 3; } - else if (partyInfo[i].status != 0) // mon with major status + else if (partyInfo[i].status != 0) { + // mon with major status gSprites[ballIconSpritesIds[5 - i]].oam.tileNum += 2; } } diff --git a/src/battle_main.c b/src/battle_main.c index 710463543..681230482 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -79,9 +79,9 @@ static void SpriteCB_MoveWildMonToRight(struct Sprite *sprite); static void SpriteCB_WildMonShowHealthbox(struct Sprite *sprite); static void SpriteCB_Unused_8011E28_Step(struct Sprite *sprite); static void SpriteCB_AnimFaintOpponent(struct Sprite *sprite); -static void SpriteCb_BlinkVisible(struct Sprite *sprite); +static void SpriteCB_BlinkVisible(struct Sprite *sprite); static void oac_poke_ally_(struct Sprite *sprite); -static void SpriteCallbackDummy3(struct Sprite *sprite); +static void SpriteCB_Idle(struct Sprite *sprite); static void SpriteCB_BounceEffect(struct Sprite *sprite); static void SpriteCB_PlayerThrowUpdate(struct Sprite *sprite); static void BattleStartClearSetData(void); @@ -125,13 +125,18 @@ EWRAM_DATA u8 gDisplayedStringBattle[300] = {0}; EWRAM_DATA u8 gBattleTextBuff1[TEXT_BUFF_ARRAY_COUNT] = {0}; EWRAM_DATA u8 gBattleTextBuff2[TEXT_BUFF_ARRAY_COUNT] = {0}; EWRAM_DATA u8 gBattleTextBuff3[TEXT_BUFF_ARRAY_COUNT] = {0}; -static EWRAM_DATA u32 gUnknown_2022AE8[25] = {0}; // Note: This shouldn't be removed without adjusting the size of gDisplayedStringBattle. +// The below array is never intentionally used. However, Brock's +// defeat text (PewterCity_Gym_Text_BrockDefeat) is too long +// for gDisplayedStringBattle and overflows into this array. If it +// is removed (and none of the buffers above are increased in size) +// it will instead overflow into useful data. +static EWRAM_DATA u32 sFlickerArray[25] = {0}; EWRAM_DATA u32 gBattleTypeFlags = 0; EWRAM_DATA u8 gBattleTerrain = 0; EWRAM_DATA u32 gUnknown_2022B54 = 0; EWRAM_DATA struct MultiBattlePokemonTx gMultiPartnerParty[3] = {0}; -EWRAM_DATA u8 *gBattleAnimMons_BgTilesBuffer = NULL; -EWRAM_DATA u8 *gBattleAnimMons_BgTilemapBuffer = NULL; +EWRAM_DATA u8 *gBattleAnimBgTileBuffer = NULL; +EWRAM_DATA u8 *gBattleAnimBgTilemapBuffer = NULL; static EWRAM_DATA u16 *sUnknownDebugSpriteDataBuffer = NULL; EWRAM_DATA u8 gBattleBufferA[MAX_BATTLERS_COUNT][0x200] = {0}; EWRAM_DATA u8 gBattleBufferB[MAX_BATTLERS_COUNT][0x200] = {0}; @@ -178,7 +183,7 @@ EWRAM_DATA u8 gLastHitBy[MAX_BATTLERS_COUNT] = {0}; EWRAM_DATA u16 gChosenMoveByBattler[MAX_BATTLERS_COUNT] = {0}; EWRAM_DATA u8 gMoveResultFlags = 0; EWRAM_DATA u32 gHitMarker = 0; -static EWRAM_DATA u8 gUnknown_2023DD4[MAX_BATTLERS_COUNT] = {0}; +static EWRAM_DATA u8 sUnusedBattlersArray[MAX_BATTLERS_COUNT] = {0}; EWRAM_DATA u8 gTakenDmgByBattler[MAX_BATTLERS_COUNT] = {0}; EWRAM_DATA u8 gUnknown_2023DDC = 0; EWRAM_DATA u16 gSideStatuses[2] = {0}; @@ -425,188 +430,188 @@ const u8 gTypeEffectiveness[336] = TYPE_ENDTABLE, TYPE_ENDTABLE, TYPE_MUL_NO_EFFECT }; -const u8 gTypeNames[][TYPE_NAME_LENGTH + 1] = +const u8 gTypeNames[NUMBER_OF_MON_TYPES][TYPE_NAME_LENGTH + 1] = { - _("NORMAL"), - _("FIGHT"), - _("FLYING"), - _("POISON"), - _("GROUND"), - _("ROCK"), - _("BUG"), - _("GHOST"), - _("STEEL"), - _("???"), - _("FIRE"), - _("WATER"), - _("GRASS"), - _("ELECTR"), - _("PSYCHC"), - _("ICE"), - _("DRAGON"), - _("DARK"), + [TYPE_NORMAL] = _("NORMAL"), + [TYPE_FIGHTING] = _("FIGHT"), + [TYPE_FLYING] = _("FLYING"), + [TYPE_POISON] = _("POISON"), + [TYPE_GROUND] = _("GROUND"), + [TYPE_ROCK] = _("ROCK"), + [TYPE_BUG] = _("BUG"), + [TYPE_GHOST] = _("GHOST"), + [TYPE_STEEL] = _("STEEL"), + [TYPE_MYSTERY] = _("???"), + [TYPE_FIRE] = _("FIRE"), + [TYPE_WATER] = _("WATER"), + [TYPE_GRASS] = _("GRASS"), + [TYPE_ELECTRIC] = _("ELECTR"), + [TYPE_PSYCHIC] = _("PSYCHC"), + [TYPE_ICE] = _("ICE"), + [TYPE_DRAGON] = _("DRAGON"), + [TYPE_DARK] = _("DARK"), }; // This is a factor in how much money you get for beating a trainer. const struct TrainerMoney gTrainerMoneyTable[] = { - { TRAINER_CLASS_LEADER, 25 }, - { TRAINER_CLASS_ELITE_FOUR, 25 }, - { TRAINER_CLASS_PKMN_PROF, 25 }, - { TRAINER_CLASS_RIVAL_EARLY, 4 }, - { TRAINER_CLASS_RIVAL_LATE, 9 }, - { TRAINER_CLASS_CHAMPION, 25 }, - { TRAINER_CLASS_YOUNGSTER, 4 }, - { TRAINER_CLASS_BUG_CATCHER, 3 }, - { TRAINER_CLASS_HIKER, 9 }, - { TRAINER_CLASS_BIRD_KEEPER, 6 }, - { TRAINER_CLASS_PICNICKER, 5 }, - { TRAINER_CLASS_SUPER_NERD, 6 }, - { TRAINER_CLASS_FISHERMAN, 9 }, - { TRAINER_CLASS_TEAM_ROCKET, 8 }, - { TRAINER_CLASS_LASS, 4 }, - { TRAINER_CLASS_BEAUTY, 18 }, - { TRAINER_CLASS_BLACK_BELT, 6 }, - { TRAINER_CLASS_CUE_BALL, 6 }, - { TRAINER_CLASS_CHANNELER, 8 }, - { TRAINER_CLASS_ROCKER, 6 }, - { TRAINER_CLASS_GENTLEMAN, 18 }, - { TRAINER_CLASS_BURGLAR, 22 }, - { TRAINER_CLASS_SWIMMER_M, 1 }, - { TRAINER_CLASS_ENGINEER, 12 }, - { TRAINER_CLASS_JUGGLER, 10 }, - { TRAINER_CLASS_SAILOR, 8 }, - { TRAINER_CLASS_COOLTRAINER, 9 }, - { TRAINER_CLASS_POKEMANIAC, 12 }, - { TRAINER_CLASS_TAMER, 10 }, - { TRAINER_CLASS_CAMPER, 5 }, - { TRAINER_CLASS_PSYCHIC, 5 }, - { TRAINER_CLASS_BIKER, 5 }, - { TRAINER_CLASS_GAMER, 18 }, - { TRAINER_CLASS_SCIENTIST, 12 }, - { TRAINER_CLASS_CRUSH_GIRL, 6 }, - { TRAINER_CLASS_TUBER, 1 }, - { TRAINER_CLASS_PKMN_BREEDER, 7 }, - { TRAINER_CLASS_PKMN_RANGER, 9 }, - { TRAINER_CLASS_AROMA_LADY, 7 }, - { TRAINER_CLASS_RUIN_MANIAC, 12 }, - { TRAINER_CLASS_LADY, 50 }, - { TRAINER_CLASS_PAINTER, 4 }, - { TRAINER_CLASS_TWINS, 3 }, - { TRAINER_CLASS_YOUNG_COUPLE, 7 }, - { TRAINER_CLASS_SIS_AND_BRO, 1 }, - { TRAINER_CLASS_COOL_COUPLE, 6 }, - { TRAINER_CLASS_CRUSH_KIN, 6 }, - { TRAINER_CLASS_SWIMMER_F, 1 }, - { TRAINER_CLASS_PLAYER, 1 }, - { TRAINER_CLASS_RS_LEADER, 25 }, - { TRAINER_CLASS_RS_ELITE_FOUR, 25 }, - { TRAINER_CLASS_RS_LASS, 4 }, - { TRAINER_CLASS_RS_YOUNGSTER, 4 }, - { TRAINER_CLASS_PKMN_TRAINER, 15 }, - { TRAINER_CLASS_RS_HIKER, 10 }, - { TRAINER_CLASS_RS_BEAUTY, 20 }, - { TRAINER_CLASS_RS_FISHERMAN, 10 }, - { TRAINER_CLASS_RS_LADY, 50 }, - { TRAINER_CLASS_TRIATHLETE, 10 }, - { TRAINER_CLASS_TEAM_AQUA, 5 }, - { TRAINER_CLASS_RS_TWINS, 3 }, - { TRAINER_CLASS_RS_SWIMMER_F, 2 }, - { TRAINER_CLASS_RS_BUG_CATCHER, 4 }, - { TRAINER_CLASS_SCHOOL_KID, 5 }, - { TRAINER_CLASS_RICH_BOY, 50 }, - { TRAINER_CLASS_SR_AND_JR, 4 }, - { TRAINER_CLASS_RS_BLACK_BELT, 8 }, - { TRAINER_CLASS_RS_TUBER_F, 1 }, - { TRAINER_CLASS_HEX_MANIAC, 6 }, - { TRAINER_CLASS_RS_PKMN_BREEDER, 10 }, - { TRAINER_CLASS_TEAM_MAGMA, 5 }, - { TRAINER_CLASS_INTERVIEWER, 12 }, - { TRAINER_CLASS_RS_TUBER_M, 1 }, - { TRAINER_CLASS_RS_YOUNG_COUPLE, 8 }, - { TRAINER_CLASS_GUITARIST, 8 }, - { TRAINER_CLASS_RS_GENTLEMAN, 20 }, - { TRAINER_CLASS_RS_CHAMPION, 50 }, - { TRAINER_CLASS_MAGMA_LEADER, 20 }, - { TRAINER_CLASS_BATTLE_GIRL, 6 }, - { TRAINER_CLASS_RS_SWIMMER_M, 2 }, - { TRAINER_CLASS_POKEFAN, 20 }, - { TRAINER_CLASS_EXPERT, 10 }, - { TRAINER_CLASS_DRAGON_TAMER, 12 }, - { TRAINER_CLASS_RS_BIRD_KEEPER, 8 }, - { TRAINER_CLASS_NINJA_BOY, 3 }, - { TRAINER_CLASS_PARASOL_LADY, 10 }, - { TRAINER_CLASS_BUG_MANIAC, 15 }, - { TRAINER_CLASS_RS_SAILOR, 8 }, - { TRAINER_CLASS_COLLECTOR, 15 }, - { TRAINER_CLASS_RS_PKMN_RANGER, 12 }, - { TRAINER_CLASS_MAGMA_ADMIN, 10 }, - { TRAINER_CLASS_RS_AROMA_LADY, 10 }, - { TRAINER_CLASS_RS_RUIN_MANIAC, 15 }, - { TRAINER_CLASS_RS_COOLTRAINER, 12 }, - { TRAINER_CLASS_RS_POKEMANIAC, 15 }, - { TRAINER_CLASS_KINDLER, 8 }, - { TRAINER_CLASS_RS_CAMPER, 4 }, - { TRAINER_CLASS_RS_PICNICKER, 4 }, - { TRAINER_CLASS_RS_PSYCHIC, 6 }, - { TRAINER_CLASS_RS_SIS_AND_BRO, 3 }, - { TRAINER_CLASS_OLD_COUPLE, 10 }, - { TRAINER_CLASS_AQUA_ADMIN, 10 }, - { TRAINER_CLASS_AQUA_LEADER, 20 }, - { TRAINER_CLASS_BOSS, 25 }, - { 0xFF, 5 }, + {TRAINER_CLASS_LEADER, 25}, + {TRAINER_CLASS_ELITE_FOUR, 25}, + {TRAINER_CLASS_PKMN_PROF, 25}, + {TRAINER_CLASS_RIVAL_EARLY, 4}, + {TRAINER_CLASS_RIVAL_LATE, 9}, + {TRAINER_CLASS_CHAMPION, 25}, + {TRAINER_CLASS_YOUNGSTER, 4}, + {TRAINER_CLASS_BUG_CATCHER, 3}, + {TRAINER_CLASS_HIKER, 9}, + {TRAINER_CLASS_BIRD_KEEPER, 6}, + {TRAINER_CLASS_PICNICKER, 5}, + {TRAINER_CLASS_SUPER_NERD, 6}, + {TRAINER_CLASS_FISHERMAN, 9}, + {TRAINER_CLASS_TEAM_ROCKET, 8}, + {TRAINER_CLASS_LASS, 4}, + {TRAINER_CLASS_BEAUTY, 18}, + {TRAINER_CLASS_BLACK_BELT, 6}, + {TRAINER_CLASS_CUE_BALL, 6}, + {TRAINER_CLASS_CHANNELER, 8}, + {TRAINER_CLASS_ROCKER, 6}, + {TRAINER_CLASS_GENTLEMAN, 18}, + {TRAINER_CLASS_BURGLAR, 22}, + {TRAINER_CLASS_SWIMMER_M, 1}, + {TRAINER_CLASS_ENGINEER, 12}, + {TRAINER_CLASS_JUGGLER, 10}, + {TRAINER_CLASS_SAILOR, 8}, + {TRAINER_CLASS_COOLTRAINER, 9}, + {TRAINER_CLASS_POKEMANIAC, 12}, + {TRAINER_CLASS_TAMER, 10}, + {TRAINER_CLASS_CAMPER, 5}, + {TRAINER_CLASS_PSYCHIC, 5}, + {TRAINER_CLASS_BIKER, 5}, + {TRAINER_CLASS_GAMER, 18}, + {TRAINER_CLASS_SCIENTIST, 12}, + {TRAINER_CLASS_CRUSH_GIRL, 6}, + {TRAINER_CLASS_TUBER, 1}, + {TRAINER_CLASS_PKMN_BREEDER, 7}, + {TRAINER_CLASS_PKMN_RANGER, 9}, + {TRAINER_CLASS_AROMA_LADY, 7}, + {TRAINER_CLASS_RUIN_MANIAC, 12}, + {TRAINER_CLASS_LADY, 50}, + {TRAINER_CLASS_PAINTER, 4}, + {TRAINER_CLASS_TWINS, 3}, + {TRAINER_CLASS_YOUNG_COUPLE, 7}, + {TRAINER_CLASS_SIS_AND_BRO, 1}, + {TRAINER_CLASS_COOL_COUPLE, 6}, + {TRAINER_CLASS_CRUSH_KIN, 6}, + {TRAINER_CLASS_SWIMMER_F, 1}, + {TRAINER_CLASS_PLAYER, 1}, + {TRAINER_CLASS_RS_LEADER, 25}, + {TRAINER_CLASS_RS_ELITE_FOUR, 25}, + {TRAINER_CLASS_RS_LASS, 4}, + {TRAINER_CLASS_RS_YOUNGSTER, 4}, + {TRAINER_CLASS_PKMN_TRAINER, 15}, + {TRAINER_CLASS_RS_HIKER, 10}, + {TRAINER_CLASS_RS_BEAUTY, 20}, + {TRAINER_CLASS_RS_FISHERMAN, 10}, + {TRAINER_CLASS_RS_LADY, 50}, + {TRAINER_CLASS_TRIATHLETE, 10}, + {TRAINER_CLASS_TEAM_AQUA, 5}, + {TRAINER_CLASS_RS_TWINS, 3}, + {TRAINER_CLASS_RS_SWIMMER_F, 2}, + {TRAINER_CLASS_RS_BUG_CATCHER, 4}, + {TRAINER_CLASS_SCHOOL_KID, 5}, + {TRAINER_CLASS_RICH_BOY, 50}, + {TRAINER_CLASS_SR_AND_JR, 4}, + {TRAINER_CLASS_RS_BLACK_BELT, 8}, + {TRAINER_CLASS_RS_TUBER_F, 1}, + {TRAINER_CLASS_HEX_MANIAC, 6}, + {TRAINER_CLASS_RS_PKMN_BREEDER, 10}, + {TRAINER_CLASS_TEAM_MAGMA, 5}, + {TRAINER_CLASS_INTERVIEWER, 12}, + {TRAINER_CLASS_RS_TUBER_M, 1}, + {TRAINER_CLASS_RS_YOUNG_COUPLE, 8}, + {TRAINER_CLASS_GUITARIST, 8}, + {TRAINER_CLASS_RS_GENTLEMAN, 20}, + {TRAINER_CLASS_RS_CHAMPION, 50}, + {TRAINER_CLASS_MAGMA_LEADER, 20}, + {TRAINER_CLASS_BATTLE_GIRL, 6}, + {TRAINER_CLASS_RS_SWIMMER_M, 2}, + {TRAINER_CLASS_POKEFAN, 20}, + {TRAINER_CLASS_EXPERT, 10}, + {TRAINER_CLASS_DRAGON_TAMER, 12}, + {TRAINER_CLASS_RS_BIRD_KEEPER, 8}, + {TRAINER_CLASS_NINJA_BOY, 3}, + {TRAINER_CLASS_PARASOL_LADY, 10}, + {TRAINER_CLASS_BUG_MANIAC, 15}, + {TRAINER_CLASS_RS_SAILOR, 8}, + {TRAINER_CLASS_COLLECTOR, 15}, + {TRAINER_CLASS_RS_PKMN_RANGER, 12}, + {TRAINER_CLASS_MAGMA_ADMIN, 10}, + {TRAINER_CLASS_RS_AROMA_LADY, 10}, + {TRAINER_CLASS_RS_RUIN_MANIAC, 15}, + {TRAINER_CLASS_RS_COOLTRAINER, 12}, + {TRAINER_CLASS_RS_POKEMANIAC, 15}, + {TRAINER_CLASS_KINDLER, 8}, + {TRAINER_CLASS_RS_CAMPER, 4}, + {TRAINER_CLASS_RS_PICNICKER, 4}, + {TRAINER_CLASS_RS_PSYCHIC, 6}, + {TRAINER_CLASS_RS_SIS_AND_BRO, 3}, + {TRAINER_CLASS_OLD_COUPLE, 10}, + {TRAINER_CLASS_AQUA_ADMIN, 10}, + {TRAINER_CLASS_AQUA_LEADER, 20}, + {TRAINER_CLASS_BOSS, 25}, + { 0xFF, 5}, }; #include "data/text/abilities.h" static void (*const sTurnActionsFuncsTable[])(void) = { - [B_ACTION_USE_MOVE] = HandleAction_UseMove, - [B_ACTION_USE_ITEM] = HandleAction_UseItem, - [B_ACTION_SWITCH] = HandleAction_Switch, - [B_ACTION_RUN] = HandleAction_Run, + [B_ACTION_USE_MOVE] = HandleAction_UseMove, + [B_ACTION_USE_ITEM] = HandleAction_UseItem, + [B_ACTION_SWITCH] = HandleAction_Switch, + [B_ACTION_RUN] = HandleAction_Run, [B_ACTION_SAFARI_WATCH_CAREFULLY] = HandleAction_WatchesCarefully, - [B_ACTION_SAFARI_BALL] = HandleAction_SafariZoneBallThrow, - [B_ACTION_SAFARI_BAIT] = HandleAction_ThrowBait, - [B_ACTION_SAFARI_GO_NEAR] = HandleAction_ThrowRock, - [B_ACTION_SAFARI_RUN] = HandleAction_SafariZoneRun, - [B_ACTION_OLDMAN_THROW] = HandleAction_OldManBallThrow, - [B_ACTION_EXEC_SCRIPT] = HandleAction_RunBattleScript, - [B_ACTION_TRY_FINISH] = HandleAction_TryFinish, - [B_ACTION_FINISHED] = HandleAction_ActionFinished, - [B_ACTION_NOTHING_FAINTED] = HandleAction_NothingIsFainted, + [B_ACTION_SAFARI_BALL] = HandleAction_SafariZoneBallThrow, + [B_ACTION_SAFARI_BAIT] = HandleAction_ThrowBait, + [B_ACTION_SAFARI_GO_NEAR] = HandleAction_ThrowRock, + [B_ACTION_SAFARI_RUN] = HandleAction_SafariZoneRun, + [B_ACTION_OLDMAN_THROW] = HandleAction_OldManBallThrow, + [B_ACTION_EXEC_SCRIPT] = HandleAction_RunBattleScript, + [B_ACTION_TRY_FINISH] = HandleAction_TryFinish, + [B_ACTION_FINISHED] = HandleAction_ActionFinished, + [B_ACTION_NOTHING_FAINTED] = HandleAction_NothingIsFainted, }; static void (*const sEndTurnFuncsTable[])(void) = { - [0] = HandleEndTurn_ContinueBattle, //B_OUTCOME_NONE? - [B_OUTCOME_WON] = HandleEndTurn_BattleWon, - [B_OUTCOME_LOST] = HandleEndTurn_BattleLost, - [B_OUTCOME_DREW] = HandleEndTurn_BattleLost, - [B_OUTCOME_RAN] = HandleEndTurn_RanFromBattle, + [0] = HandleEndTurn_ContinueBattle, + [B_OUTCOME_WON] = HandleEndTurn_BattleWon, + [B_OUTCOME_LOST] = HandleEndTurn_BattleLost, + [B_OUTCOME_DREW] = HandleEndTurn_BattleLost, + [B_OUTCOME_RAN] = HandleEndTurn_RanFromBattle, [B_OUTCOME_PLAYER_TELEPORTED] = HandleEndTurn_FinishBattle, - [B_OUTCOME_MON_FLED] = HandleEndTurn_MonFled, - [B_OUTCOME_CAUGHT] = HandleEndTurn_FinishBattle, - [B_OUTCOME_NO_SAFARI_BALLS] = HandleEndTurn_FinishBattle, + [B_OUTCOME_MON_FLED] = HandleEndTurn_MonFled, + [B_OUTCOME_CAUGHT] = HandleEndTurn_FinishBattle, + [B_OUTCOME_NO_SAFARI_BALLS] = HandleEndTurn_FinishBattle, }; -const u8 gStatusConditionString_PoisonJpn[8] = _("どく$$$$$"); -const u8 gStatusConditionString_SleepJpn[8] = _("ねむり$$$$"); -const u8 gStatusConditionString_ParalysisJpn[8] = _("まひ$$$$$"); -const u8 gStatusConditionString_BurnJpn[8] = _("やけど$$$$"); -const u8 gStatusConditionString_IceJpn[8] = _("こおり$$$$"); -const u8 gStatusConditionString_ConfusionJpn[8] = _("こんらん$$$"); -const u8 gStatusConditionString_LoveJpn[8] = _("メロメロ$$$"); +const u8 gStatusConditionString_PoisonJpn[] = _("どく$$$$$"); +const u8 gStatusConditionString_SleepJpn[] = _("ねむり$$$$"); +const u8 gStatusConditionString_ParalysisJpn[] = _("まひ$$$$$"); +const u8 gStatusConditionString_BurnJpn[] = _("やけど$$$$"); +const u8 gStatusConditionString_IceJpn[] = _("こおり$$$$"); +const u8 gStatusConditionString_ConfusionJpn[] = _("こんらん$$$"); +const u8 gStatusConditionString_LoveJpn[] = _("メロメロ$$$"); -const u8 *const gStatusConditionStringsTable[7][2] = +const u8 *const gStatusConditionStringsTable[][2] = { - { gStatusConditionString_PoisonJpn, gText_Poison }, - { gStatusConditionString_SleepJpn, gText_Sleep }, - { gStatusConditionString_ParalysisJpn, gText_Paralysis }, - { gStatusConditionString_BurnJpn, gText_Burn }, - { gStatusConditionString_IceJpn, gText_Ice }, - { gStatusConditionString_ConfusionJpn, gText_Confusion }, - { gStatusConditionString_LoveJpn, gText_Love } + {gStatusConditionString_PoisonJpn, gText_Poison}, + {gStatusConditionString_SleepJpn, gText_Sleep}, + {gStatusConditionString_ParalysisJpn, gText_Paralysis}, + {gStatusConditionString_BurnJpn, gText_Burn}, + {gStatusConditionString_IceJpn, gText_Ice}, + {gStatusConditionString_ConfusionJpn, gText_Confusion}, + {gStatusConditionString_LoveJpn, gText_Love} }; void CB2_InitBattle(void) @@ -651,15 +656,19 @@ static void CB2_InitBattleInternal(void) SetHBlankCallback(NULL); SetVBlankCallback(NULL); - CpuFill32(0, (void *)VRAM, VRAM_SIZE); + + CpuFill32(0, (void *)(VRAM), VRAM_SIZE); + SetGpuReg(REG_OFFSET_MOSAIC, 0); - SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(0, 0xF0)); - SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(0x50, 0x51)); + SetGpuReg(REG_OFFSET_WIN0H, DISPLAY_WIDTH); + SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(DISPLAY_HEIGHT / 2, DISPLAY_HEIGHT / 2 + 1)); SetGpuReg(REG_OFFSET_WININ, 0); SetGpuReg(REG_OFFSET_WINOUT, 0); - gBattle_WIN0H = WIN_RANGE(0, 0xF0); - gBattle_WIN0V = WIN_RANGE(0x50, 0x51); + + gBattle_WIN0H = DISPLAY_WIDTH; + gBattle_WIN0V = WIN_RANGE(DISPLAY_HEIGHT / 2, DISPLAY_HEIGHT / 2 + 1); ScanlineEffect_Clear(); + for (i = 0; i < 80; ++i) { gScanlineEffectRegBuffers[0][i] = 0xF0; @@ -671,6 +680,7 @@ static void CB2_InitBattleInternal(void) gScanlineEffectRegBuffers[1][i] = 0xFF10; } ScanlineEffect_SetParams(sIntroScanlineParams16Bit); + ResetPaletteFade(); gBattle_BG0_X = 0; gBattle_BG0_Y = 0; @@ -680,7 +690,9 @@ static void CB2_InitBattleInternal(void) gBattle_BG2_Y = 0; gBattle_BG3_X = 0; gBattle_BG3_Y = 0; + gBattleTerrain = BattleSetup_GetTerrainId(); + InitBattleBgsVideo(); LoadBattleTextboxAndBackground(); ResetSpriteData(); @@ -690,6 +702,7 @@ static void CB2_InitBattleInternal(void) gReservedSpritePaletteCount = 4; SetVBlankCallback(VBlankCB_Battle); SetUpBattleVars(); + if (gBattleTypeFlags & BATTLE_TYPE_MULTI) SetMainCallback2(CB2_HandleStartMultiBattle); else @@ -699,9 +712,11 @@ static void CB2_InitBattleInternal(void) CreateNPCTrainerParty(&gEnemyParty[0], gTrainerBattleOpponent_A); SetWildMonHeldItem(); } + gMain.inBattle = TRUE; - for (i = 0; i < PARTY_SIZE; ++i) + for (i = 0; i < PARTY_SIZE; i++) AdjustFriendship(&gPlayerParty[i], FRIENDSHIP_EVENT_LEAGUE_BATTLE); + gBattleCommunication[MULTIUSE_STATE] = 0; } @@ -734,28 +749,29 @@ static void CB2_InitBattleInternal(void) (flags) |= 3 << (i) * 2; \ } +// For Vs Screen at link battle start static void BufferPartyVsScreenHealth_AtStart(void) { u16 flags = 0; s32 i; BUFFER_PARTY_VS_SCREEN_STATUS(gPlayerParty, flags, i); - gBattleStruct->multiBuffer.linkPartnerHeader.vsScreenHealthFlagsLo = flags; - *(&gBattleStruct->multiBuffer.linkPartnerHeader.vsScreenHealthFlagsHi) = flags >> 8; + gBattleStruct->multiBuffer.linkBattlerHeader.vsScreenHealthFlagsLo = flags; + *(&gBattleStruct->multiBuffer.linkBattlerHeader.vsScreenHealthFlagsHi) = flags >> 8; } static void SetPlayerBerryDataInBattleStruct(void) { s32 i; struct BattleStruct *battleStruct = gBattleStruct; - struct BattleEnigmaBerry *battleBerry = &battleStruct->multiBuffer.linkPartnerHeader.battleEnigmaBerry; + struct BattleEnigmaBerry *battleBerry = &battleStruct->multiBuffer.linkBattlerHeader.battleEnigmaBerry; if (IsEnigmaBerryValid() == TRUE) { - for (i = 0; i < BERRY_NAME_LENGTH; ++i) + for (i = 0; i < BERRY_NAME_LENGTH; i++) battleBerry->name[i] = gSaveBlock1Ptr->enigmaBerry.berry.name[i]; battleBerry->name[i] = EOS; - for (i = 0; i < BERRY_ITEM_EFFECT_COUNT; ++i) + for (i = 0; i < BERRY_ITEM_EFFECT_COUNT; i++) battleBerry->itemEffect[i] = gSaveBlock1Ptr->enigmaBerry.itemEffect[i]; battleBerry->holdEffect = gSaveBlock1Ptr->enigmaBerry.holdEffect; battleBerry->holdEffectParam = gSaveBlock1Ptr->enigmaBerry.holdEffectParam; @@ -764,10 +780,10 @@ static void SetPlayerBerryDataInBattleStruct(void) { const struct Berry *berryData = GetBerryInfo(ItemIdToBerryType(ITEM_ENIGMA_BERRY)); - for (i = 0; i < BERRY_NAME_LENGTH; ++i) + for (i = 0; i < BERRY_NAME_LENGTH; i++) battleBerry->name[i] = berryData->name[i]; battleBerry->name[i] = EOS; - for (i = 0; i < BERRY_ITEM_EFFECT_COUNT; ++i) + for (i = 0; i < BERRY_ITEM_EFFECT_COUNT; i++) battleBerry->itemEffect[i] = 0; battleBerry->holdEffect = HOLD_EFFECT_NONE; battleBerry->holdEffectParam = 0; @@ -782,18 +798,20 @@ static void SetAllPlayersBerryData(void) { if (IsEnigmaBerryValid() == TRUE) { - for (i = 0; i < BERRY_NAME_LENGTH; ++i) + for (i = 0; i < BERRY_NAME_LENGTH; i++) { gEnigmaBerries[0].name[i] = gSaveBlock1Ptr->enigmaBerry.berry.name[i]; gEnigmaBerries[2].name[i] = gSaveBlock1Ptr->enigmaBerry.berry.name[i]; } gEnigmaBerries[0].name[i] = EOS; gEnigmaBerries[2].name[i] = EOS; - for (i = 0; i < BERRY_ITEM_EFFECT_COUNT; ++i) + + for (i = 0; i < BERRY_ITEM_EFFECT_COUNT; i++) { gEnigmaBerries[0].itemEffect[i] = gSaveBlock1Ptr->enigmaBerry.itemEffect[i]; gEnigmaBerries[2].itemEffect[i] = gSaveBlock1Ptr->enigmaBerry.itemEffect[i]; } + gEnigmaBerries[0].holdEffect = gSaveBlock1Ptr->enigmaBerry.holdEffect; gEnigmaBerries[2].holdEffect = gSaveBlock1Ptr->enigmaBerry.holdEffect; gEnigmaBerries[0].holdEffectParam = gSaveBlock1Ptr->enigmaBerry.holdEffectParam; @@ -803,18 +821,20 @@ static void SetAllPlayersBerryData(void) { const struct Berry *berryData = GetBerryInfo(ItemIdToBerryType(ITEM_ENIGMA_BERRY)); - for (i = 0; i < BERRY_NAME_LENGTH; ++i) + for (i = 0; i < BERRY_NAME_LENGTH; i++) { gEnigmaBerries[0].name[i] = berryData->name[i]; gEnigmaBerries[2].name[i] = berryData->name[i]; } gEnigmaBerries[0].name[i] = EOS; gEnigmaBerries[2].name[i] = EOS; - for (i = 0; i < BERRY_ITEM_EFFECT_COUNT; ++i) + + for (i = 0; i < BERRY_ITEM_EFFECT_COUNT; i++) { gEnigmaBerries[0].itemEffect[i] = 0; gEnigmaBerries[2].itemEffect[i] = 0; } + gEnigmaBerries[0].holdEffect = HOLD_EFFECT_NONE; gEnigmaBerries[2].holdEffect = HOLD_EFFECT_NONE; gEnigmaBerries[0].holdEffectParam = 0; @@ -829,14 +849,14 @@ static void SetAllPlayersBerryData(void) if (gBattleTypeFlags & BATTLE_TYPE_MULTI) { - for (i = 0; i < 4; ++i) + for (i = 0; i < 4; i++) { src = (struct BattleEnigmaBerry *)(gBlockRecvBuffer[i] + 2); battlerId = gLinkPlayers[i].id; - for (j = 0; j < BERRY_NAME_LENGTH; ++j) + for (j = 0; j < BERRY_NAME_LENGTH; j++) gEnigmaBerries[battlerId].name[j] = src->name[j]; gEnigmaBerries[battlerId].name[j] = EOS; - for (j = 0; j < BERRY_ITEM_EFFECT_COUNT; ++j) + for (j = 0; j < BERRY_ITEM_EFFECT_COUNT; j++) gEnigmaBerries[battlerId].itemEffect[j] = src->itemEffect[j]; gEnigmaBerries[battlerId].holdEffect = src->holdEffect; gEnigmaBerries[battlerId].holdEffectParam = src->holdEffectParam; @@ -844,17 +864,17 @@ static void SetAllPlayersBerryData(void) } else { - for (i = 0; i < 2; ++i) + for (i = 0; i < 2; i++) { src = (struct BattleEnigmaBerry *)(gBlockRecvBuffer[i] + 2); - for (j = 0; j < BERRY_NAME_LENGTH; ++j) + for (j = 0; j < BERRY_NAME_LENGTH; j++) { gEnigmaBerries[i].name[j] = src->name[j]; gEnigmaBerries[i + 2].name[j] = src->name[j]; } gEnigmaBerries[i].name[j] = EOS; gEnigmaBerries[i + 2].name[j] = EOS; - for (j = 0; j < BERRY_ITEM_EFFECT_COUNT; ++j) + for (j = 0; j < BERRY_ITEM_EFFECT_COUNT; j++) { gEnigmaBerries[i].itemEffect[j] = src->itemEffect[j]; gEnigmaBerries[i + 2].itemEffect[j] = src->itemEffect[j]; @@ -879,14 +899,14 @@ static void LinkBattleComputeBattleTypeFlags(u8 numPlayers, u8 multiPlayerId) gBattleTypeFlags |= BATTLE_TYPE_IS_MASTER | BATTLE_TYPE_TRAINER; else gBattleTypeFlags |= BATTLE_TYPE_TRAINER; - ++found; + found++; } if (found == 0) { // If multiple different versions are being used, player 1 is master. s32 i; - for (i = 0; i < numPlayers; ++i) + for (i = 0; i < numPlayers; i++) if (gBlockRecvBuffer[0][0] != gBlockRecvBuffer[i][0]) break; if (i == numPlayers) @@ -895,12 +915,12 @@ static void LinkBattleComputeBattleTypeFlags(u8 numPlayers, u8 multiPlayerId) gBattleTypeFlags |= BATTLE_TYPE_IS_MASTER | BATTLE_TYPE_TRAINER; else gBattleTypeFlags |= BATTLE_TYPE_TRAINER; - ++found; + found++; } if (found == 0) { // Lowest index player with the highest game version is master. - for (i = 0; i < numPlayers; ++i) + for (i = 0; i < numPlayers; i++) { if (gBlockRecvBuffer[i][0] == 0x201 && i != multiPlayerId) if (i < multiPlayerId) @@ -950,11 +970,11 @@ static void CB2_HandleStartBattle(void) if (IsLinkTaskFinished()) { // 0x201 - *(&gBattleStruct->multiBuffer.linkPartnerHeader.versionSignatureLo) = 1; - *(&gBattleStruct->multiBuffer.linkPartnerHeader.versionSignatureHi) = 2; + *(&gBattleStruct->multiBuffer.linkBattlerHeader.versionSignatureLo) = 1; + *(&gBattleStruct->multiBuffer.linkBattlerHeader.versionSignatureHi) = 2; BufferPartyVsScreenHealth_AtStart(); SetPlayerBerryDataInBattleStruct(); - SendBlock(bitmask_all_link_players_but_self(), &gBattleStruct->multiBuffer.linkPartnerHeader, sizeof(gBattleStruct->multiBuffer.linkPartnerHeader)); + SendBlock(bitmask_all_link_players_but_self(), &gBattleStruct->multiBuffer.linkBattlerHeader, sizeof(gBattleStruct->multiBuffer.linkBattlerHeader)); gBattleCommunication[MULTIUSE_STATE] = 2; } if (gWirelessCommType != 0) @@ -980,17 +1000,17 @@ static void CB2_HandleStartBattle(void) gTasks[taskId].data[1] = 270; gTasks[taskId].data[2] = 90; gTasks[taskId].data[5] = 0; - gTasks[taskId].data[3] = gBattleStruct->multiBuffer.linkPartnerHeader.vsScreenHealthFlagsLo | (gBattleStruct->multiBuffer.linkPartnerHeader.vsScreenHealthFlagsHi << 8); + gTasks[taskId].data[3] = gBattleStruct->multiBuffer.linkBattlerHeader.vsScreenHealthFlagsLo | (gBattleStruct->multiBuffer.linkBattlerHeader.vsScreenHealthFlagsHi << 8); gTasks[taskId].data[4] = gBlockRecvBuffer[enemyMultiplayerId][1]; SetDeoxysStats(); - ++gBattleCommunication[MULTIUSE_STATE]; + gBattleCommunication[MULTIUSE_STATE]++; } break; case 3: if (IsLinkTaskFinished()) { SendBlock(bitmask_all_link_players_but_self(), gPlayerParty, sizeof(struct Pokemon) * 2); - ++gBattleCommunication[MULTIUSE_STATE]; + gBattleCommunication[MULTIUSE_STATE]++; } break; case 4: @@ -998,14 +1018,14 @@ static void CB2_HandleStartBattle(void) { ResetBlockReceivedFlags(); memcpy(gEnemyParty, gBlockRecvBuffer[enemyMultiplayerId], sizeof(struct Pokemon) * 2); - ++gBattleCommunication[MULTIUSE_STATE]; + gBattleCommunication[MULTIUSE_STATE]++; } break; case 7: if (IsLinkTaskFinished()) { SendBlock(bitmask_all_link_players_but_self(), gPlayerParty + 2, sizeof(struct Pokemon) * 2); - ++gBattleCommunication[MULTIUSE_STATE]; + gBattleCommunication[MULTIUSE_STATE]++; } break; case 8: @@ -1013,14 +1033,14 @@ static void CB2_HandleStartBattle(void) { ResetBlockReceivedFlags(); memcpy(gEnemyParty + 2, gBlockRecvBuffer[enemyMultiplayerId], sizeof(struct Pokemon) * 2); - ++gBattleCommunication[MULTIUSE_STATE]; + gBattleCommunication[MULTIUSE_STATE]++; } break; case 11: if (IsLinkTaskFinished()) { SendBlock(bitmask_all_link_players_but_self(), gPlayerParty + 4, sizeof(struct Pokemon) * 2); - ++gBattleCommunication[MULTIUSE_STATE]; + gBattleCommunication[MULTIUSE_STATE]++; } break; case 12: @@ -1034,12 +1054,12 @@ static void CB2_HandleStartBattle(void) TryCorrectShedinjaLanguage(&gEnemyParty[3]); TryCorrectShedinjaLanguage(&gEnemyParty[4]); TryCorrectShedinjaLanguage(&gEnemyParty[5]); - ++gBattleCommunication[MULTIUSE_STATE]; + gBattleCommunication[MULTIUSE_STATE]++; } break; case 15: InitBtlControllers(); - ++gBattleCommunication[MULTIUSE_STATE]; + gBattleCommunication[MULTIUSE_STATE]++; gBattleCommunication[SPRITES_INIT_STATE1] = 0; gBattleCommunication[SPRITES_INIT_STATE2] = 0; break; @@ -1058,13 +1078,13 @@ static void CB2_HandleStartBattle(void) case 5: case 9: case 13: - ++gBattleCommunication[MULTIUSE_STATE]; + gBattleCommunication[MULTIUSE_STATE]++; gBattleCommunication[1] = 1; case 6: case 10: case 14: if (--gBattleCommunication[1] == 0) - ++gBattleCommunication[MULTIUSE_STATE]; + gBattleCommunication[MULTIUSE_STATE]++; break; } } @@ -1074,7 +1094,7 @@ static void PrepareOwnMultiPartnerBuffer(void) s32 i, j; u8 *nick, *cur; - for (i = 0; i < 3; ++i) + for (i = 0; i < 3; i++) { gMultiPartnerParty[i].species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES); gMultiPartnerParty[i].heldItem = GetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM); @@ -1089,7 +1109,7 @@ static void PrepareOwnMultiPartnerBuffer(void) StripExtCtrlCodes(nick); if (GetMonData(&gPlayerParty[i], MON_DATA_LANGUAGE) != LANGUAGE_JAPANESE) { - for (cur = nick, j = 0; cur[j] != EOS; ++j) + for (cur = nick, j = 0; cur[j] != EOS; j++) ; while (j < 6) cur[j++] = 0; @@ -1122,14 +1142,14 @@ static void CB2_PreInitMultiBattle(void) { PrepareOwnMultiPartnerBuffer(); SendBlock(bitmask_all_link_players_but_self(), gBattleStruct->multiBuffer.multiBattleMons, sizeof(gBattleStruct->multiBuffer.multiBattleMons)); - ++gBattleCommunication[MULTIUSE_STATE]; + gBattleCommunication[MULTIUSE_STATE]++; } break; case 1: if ((GetBlockReceivedStatus() & r4) == r4) { ResetBlockReceivedFlags(); - for (i = 0; i < 4; ++i) + for (i = 0; i < 4; i++) { if (i == playerMultiplierId) continue; @@ -1137,7 +1157,7 @@ static void CB2_PreInitMultiBattle(void) || (gLinkPlayers[i].id & 1 && gLinkPlayers[playerMultiplierId].id & 1)) memcpy(gMultiPartnerParty, gBlockRecvBuffer[i], sizeof(gMultiPartnerParty)); } - ++gBattleCommunication[MULTIUSE_STATE]; + gBattleCommunication[MULTIUSE_STATE]++; *savedCallback = gMain.savedCallback; *savedBattleTypeFlags = gBattleTypeFlags; gMain.savedCallback = CB2_PreInitMultiBattle; @@ -1147,7 +1167,7 @@ static void CB2_PreInitMultiBattle(void) case 2: if (!gPaletteFade.active) { - ++gBattleCommunication[MULTIUSE_STATE]; + gBattleCommunication[MULTIUSE_STATE]++; if (gWirelessCommType) SetLinkStandbyCallback(); else @@ -1206,12 +1226,12 @@ static void CB2_HandleStartMultiBattle(void) if (IsLinkTaskFinished()) { // 0x201 - *(&gBattleStruct->multiBuffer.linkPartnerHeader.versionSignatureLo) = 1; - *(&gBattleStruct->multiBuffer.linkPartnerHeader.versionSignatureHi) = 2; + *(&gBattleStruct->multiBuffer.linkBattlerHeader.versionSignatureLo) = 1; + *(&gBattleStruct->multiBuffer.linkBattlerHeader.versionSignatureHi) = 2; BufferPartyVsScreenHealth_AtStart(); SetPlayerBerryDataInBattleStruct(); - SendBlock(bitmask_all_link_players_but_self(), &gBattleStruct->multiBuffer.linkPartnerHeader, sizeof(gBattleStruct->multiBuffer.linkPartnerHeader)); - ++gBattleCommunication[MULTIUSE_STATE]; + SendBlock(bitmask_all_link_players_but_self(), &gBattleStruct->multiBuffer.linkBattlerHeader, sizeof(gBattleStruct->multiBuffer.linkBattlerHeader)); + gBattleCommunication[MULTIUSE_STATE]++; } if (gWirelessCommType) CreateWirelessStatusIndicatorSprite(0, 0); @@ -1251,7 +1271,7 @@ static void CB2_HandleStartMultiBattle(void) } ZeroPlayerPartyMons(); ZeroEnemyPartyMons(); - ++gBattleCommunication[MULTIUSE_STATE]; + gBattleCommunication[MULTIUSE_STATE]++; } else { @@ -1262,7 +1282,7 @@ static void CB2_HandleStartMultiBattle(void) if (IsLinkTaskFinished()) { SendBlock(bitmask_all_link_players_but_self(), gDecompressionBuffer, sizeof(struct Pokemon) * 2); - ++gBattleCommunication[MULTIUSE_STATE]; + gBattleCommunication[MULTIUSE_STATE]++; } break; case 4: @@ -1318,14 +1338,14 @@ static void CB2_HandleStartMultiBattle(void) } } } - ++gBattleCommunication[MULTIUSE_STATE]; + gBattleCommunication[MULTIUSE_STATE]++; } break; case 7: if (IsLinkTaskFinished()) { SendBlock(bitmask_all_link_players_but_self(), gDecompressionBuffer + sizeof(struct Pokemon) * 2, sizeof(struct Pokemon)); - ++gBattleCommunication[MULTIUSE_STATE]; + gBattleCommunication[MULTIUSE_STATE]++; } break; case 8: @@ -1393,12 +1413,12 @@ static void CB2_HandleStartMultiBattle(void) TryCorrectShedinjaLanguage(&gEnemyParty[3]); TryCorrectShedinjaLanguage(&gEnemyParty[4]); TryCorrectShedinjaLanguage(&gEnemyParty[5]); - ++gBattleCommunication[MULTIUSE_STATE]; + gBattleCommunication[MULTIUSE_STATE]++; } break; case 11: InitBtlControllers(); - ++gBattleCommunication[MULTIUSE_STATE]; + gBattleCommunication[MULTIUSE_STATE]++; gBattleCommunication[SPRITES_INIT_STATE1] = 0; gBattleCommunication[SPRITES_INIT_STATE2] = 0; break; @@ -1432,11 +1452,12 @@ void BattleMainCB2(void) RunTextPrinters(); UpdatePaletteFade(); RunTasks(); + if (JOY_HELD(B_BUTTON) && gBattleTypeFlags & BATTLE_TYPE_POKEDUDE) { gSpecialVar_Result = gBattleOutcome = B_OUTCOME_DREW; ResetPaletteFadeControl(); - BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_BLACK); + BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 16, RGB_BLACK); SetMainCallback2(CB2_QuitPokedudeBattle); } } @@ -1525,31 +1546,35 @@ static u8 CreateNPCTrainerParty(struct Pokemon *party, u16 trainerNum) if (trainerNum == TRAINER_SECRET_BASE) return 0; + if (gBattleTypeFlags & BATTLE_TYPE_TRAINER && !(gBattleTypeFlags & (BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_TRAINER_TOWER))) { ZeroEnemyPartyMons(); - for (i = 0; i < gTrainers[trainerNum].partySize; ++i) + for (i = 0; i < gTrainers[trainerNum].partySize; i++) { if (gTrainers[trainerNum].doubleBattle == TRUE) personalityValue = 0x80; - else if (gTrainers[trainerNum].encounterMusic_gender & 0x80) - personalityValue = 0x78; + else if (gTrainers[trainerNum].encounterMusic_gender & F_TRAINER_FEMALE) + personalityValue = 0x78; // Use personality more likely to result in a female Pokémon else - personalityValue = 0x88; - for (j = 0; gTrainers[trainerNum].trainerName[j] != EOS; ++j) + personalityValue = 0x88; // Use personality more likely to result in a male Pokémon + + for (j = 0; gTrainers[trainerNum].trainerName[j] != EOS; j++) nameHash += gTrainers[trainerNum].trainerName[j]; + switch (gTrainers[trainerNum].partyFlags) { case 0: { const struct TrainerMonNoItemDefaultMoves *partyData = gTrainers[trainerNum].party.NoItemDefaultMoves; - for (j = 0; gSpeciesNames[partyData[i].species][j] != EOS; ++j) + for (j = 0; gSpeciesNames[partyData[i].species][j] != EOS; j++) nameHash += gSpeciesNames[partyData[i].species][j]; + personalityValue += nameHash << 8; - fixedIV = partyData[i].iv * 31 / 255; + fixedIV = partyData[i].iv * MAX_PER_STAT_IVS / 255; CreateMon(&party[i], partyData[i].species, partyData[i].lvl, fixedIV, TRUE, personalityValue, OT_ID_RANDOM_NO_SHINY, 0); break; } @@ -1557,12 +1582,14 @@ static u8 CreateNPCTrainerParty(struct Pokemon *party, u16 trainerNum) { const struct TrainerMonNoItemCustomMoves *partyData = gTrainers[trainerNum].party.NoItemCustomMoves; - for (j = 0; gSpeciesNames[partyData[i].species][j] != EOS; ++j) + for (j = 0; gSpeciesNames[partyData[i].species][j] != EOS; j++) nameHash += gSpeciesNames[partyData[i].species][j]; + personalityValue += nameHash << 8; - fixedIV = partyData[i].iv * 31 / 255; + fixedIV = partyData[i].iv * MAX_PER_STAT_IVS / 255; CreateMon(&party[i], partyData[i].species, partyData[i].lvl, fixedIV, TRUE, personalityValue, OT_ID_RANDOM_NO_SHINY, 0); - for (j = 0; j < MAX_MON_MOVES; ++j) + + for (j = 0; j < MAX_MON_MOVES; j++) { SetMonData(&party[i], MON_DATA_MOVE1 + j, &partyData[i].moves[j]); SetMonData(&party[i], MON_DATA_PP1 + j, &gBattleMoves[partyData[i].moves[j]].pp); @@ -1573,10 +1600,11 @@ static u8 CreateNPCTrainerParty(struct Pokemon *party, u16 trainerNum) { const struct TrainerMonItemDefaultMoves *partyData = gTrainers[trainerNum].party.ItemDefaultMoves; - for (j = 0; gSpeciesNames[partyData[i].species][j] != EOS; ++j) + for (j = 0; gSpeciesNames[partyData[i].species][j] != EOS; j++) nameHash += gSpeciesNames[partyData[i].species][j]; + personalityValue += nameHash << 8; - fixedIV = partyData[i].iv * 31 / 255; + fixedIV = partyData[i].iv * MAX_PER_STAT_IVS / 255; CreateMon(&party[i], partyData[i].species, partyData[i].lvl, fixedIV, TRUE, personalityValue, OT_ID_RANDOM_NO_SHINY, 0); SetMonData(&party[i], MON_DATA_HELD_ITEM, &partyData[i].heldItem); @@ -1586,13 +1614,15 @@ static u8 CreateNPCTrainerParty(struct Pokemon *party, u16 trainerNum) { const struct TrainerMonItemCustomMoves *partyData = gTrainers[trainerNum].party.ItemCustomMoves; - for (j = 0; gSpeciesNames[partyData[i].species][j] != EOS; ++j) + for (j = 0; gSpeciesNames[partyData[i].species][j] != EOS; j++) nameHash += gSpeciesNames[partyData[i].species][j]; + personalityValue += nameHash << 8; - fixedIV = partyData[i].iv * 31 / 255; + fixedIV = partyData[i].iv * MAX_PER_STAT_IVS / 255; CreateMon(&party[i], partyData[i].species, partyData[i].lvl, fixedIV, TRUE, personalityValue, OT_ID_RANDOM_NO_SHINY, 0); SetMonData(&party[i], MON_DATA_HELD_ITEM, &partyData[i].heldItem); - for (j = 0; j < MAX_MON_MOVES; ++j) + + for (j = 0; j < MAX_MON_MOVES; j++) { SetMonData(&party[i], MON_DATA_MOVE1 + j, &partyData[i].moves[j]); SetMonData(&party[i], MON_DATA_PP1 + j, &gBattleMoves[partyData[i].moves[j]].pp); @@ -1601,15 +1631,17 @@ static u8 CreateNPCTrainerParty(struct Pokemon *party, u16 trainerNum) } } } + gBattleTypeFlags |= gTrainers[trainerNum].doubleBattle; } + return gTrainers[trainerNum].partySize; } -// not used -UNUSED static void unused_80116CC(void) +// Unused +static void HBlankCB_Battle(void) { - if (REG_VCOUNT < 0xA0 && REG_VCOUNT >= 0x6F) + if (REG_VCOUNT < DISPLAY_HEIGHT && REG_VCOUNT >= 111) REG_BG0CNT = BGCNT_PRIORITY(0) | BGCNT_CHARBASE(0) | BGCNT_SCREENBASE(24) | BGCNT_16COLOR | BGCNT_TXT256x512; } @@ -1617,6 +1649,7 @@ void VBlankCB_Battle(void) { // Change gRngSeed every vblank. Random(); + SetGpuReg(REG_OFFSET_BG0HOFS, gBattle_BG0_X); SetGpuReg(REG_OFFSET_BG0VOFS, gBattle_BG0_Y); SetGpuReg(REG_OFFSET_BG1HOFS, gBattle_BG1_X); @@ -1637,6 +1670,7 @@ void VBlankCB_Battle(void) void SpriteCB_VsLetterDummy(struct Sprite *sprite) { + } static void SpriteCB_VsLetter(struct Sprite *sprite) @@ -1645,7 +1679,9 @@ static void SpriteCB_VsLetter(struct Sprite *sprite) sprite->x = sprite->data[1] + ((sprite->data[2] & 0xFF00) >> 8); else sprite->x = sprite->data[1] - ((sprite->data[2] & 0xFF00) >> 8); + sprite->data[2] += 0x180; + if (sprite->affineAnimEnded) { FreeSpriteTilesByTag(ANIM_SPRITES_START); @@ -1667,7 +1703,7 @@ static void BufferPartyVsScreenHealth_AtEnd(u8 taskId) struct Pokemon *party1 = NULL; struct Pokemon *party2 = NULL; u8 multiplayerId = gBattleStruct->multiplayerId; - u32 r7; + u32 flags; s32 i; if (gBattleTypeFlags & BATTLE_TYPE_MULTI) @@ -1691,12 +1727,14 @@ static void BufferPartyVsScreenHealth_AtEnd(u8 taskId) party1 = gPlayerParty; party2 = gEnemyParty; } - r7 = 0; - BUFFER_PARTY_VS_SCREEN_STATUS(party1, r7, i); - gTasks[taskId].data[3] = r7; - r7 = 0; - BUFFER_PARTY_VS_SCREEN_STATUS(party2, r7, i); - gTasks[taskId].data[4] = r7; + + flags = 0; + BUFFER_PARTY_VS_SCREEN_STATUS(party1, flags, i); + gTasks[taskId].data[3] = flags; + + flags = 0; + BUFFER_PARTY_VS_SCREEN_STATUS(party2, flags, i); + gTasks[taskId].data[4] = flags; } void CB2_InitEndLinkBattle(void) @@ -1715,13 +1753,13 @@ void CB2_InitEndLinkBattle(void) gBattle_WIN0H = WIN_RANGE(0, 0xF0); gBattle_WIN0V = WIN_RANGE(0x50, 0x51); ScanlineEffect_Clear(); - for (i = 0; i < 80; ++i) + for (i = 0; i < 80; i++) { gScanlineEffectRegBuffers[0][i] = 0xF0; gScanlineEffectRegBuffers[1][i] = 0xF0; } - for (; i < 160; ++i) + for (; i < 160; i++) { gScanlineEffectRegBuffers[0][i] = 0xFF10; gScanlineEffectRegBuffers[1][i] = 0xFF10; @@ -1774,13 +1812,13 @@ static void EndLinkBattleInSteps(void) ShowBg(1); ShowBg(2); gBattleCommunication[1] = 0xFF; - ++gBattleCommunication[MULTIUSE_STATE]; + gBattleCommunication[MULTIUSE_STATE]++; break; case 1: if (--gBattleCommunication[1] == 0) { BeginNormalPaletteFade(PALETTES_ALL, 0, 0, 0x10, RGB_BLACK); - ++gBattleCommunication[MULTIUSE_STATE]; + gBattleCommunication[MULTIUSE_STATE]++; } break; case 2: @@ -1901,7 +1939,7 @@ static void SpriteCB_Unused_8011E28_Step(struct Sprite *sprite) { sprite->invisible = FALSE; sprite->callback = SpriteCallbackDummy_2; - gUnknown_2022AE8[0] = 0; + sFlickerArray[0] = 0; } } } @@ -1916,17 +1954,20 @@ void SpriteCB_FaintOpponentMon(struct Sprite *sprite) species = gBattleSpritesDataPtr->battlerData[battler].transformSpecies; else species = sprite->sSpeciesId; + GetMonData(&gEnemyParty[gBattlerPartyIndexes[battler]], MON_DATA_PERSONALITY); // Unused return value. + if (species == SPECIES_UNOWN) { u32 personalityValue = GetMonData(&gEnemyParty[gBattlerPartyIndexes[battler]], MON_DATA_PERSONALITY); - u16 unownForm = ((((personalityValue & 0x3000000) >> 18) | ((personalityValue & 0x30000) >> 12) | ((personalityValue & 0x300) >> 6) | (personalityValue & 3)) % 0x1C); + u16 unownForm = GET_UNOWN_LETTER(personalityValue); u16 unownSpecies; if (unownForm == 0) unownSpecies = SPECIES_UNOWN; // Use the A Unown form. else unownSpecies = NUM_SPECIES + unownForm; // Use one of the other Unown letters. + yOffset = gMonFrontPicCoords[unownSpecies].y_offset; } else if (species == SPECIES_CASTFORM) @@ -1941,6 +1982,7 @@ void SpriteCB_FaintOpponentMon(struct Sprite *sprite) { yOffset = gMonFrontPicCoords[species].y_offset; } + sprite->data[3] = 8 - yOffset / 8; sprite->data[4] = 1; sprite->callback = SpriteCB_AnimFaintOpponent; @@ -1963,31 +2005,31 @@ static void SpriteCB_AnimFaintOpponent(struct Sprite *sprite) { u8 *dst = (u8 *)gMonSpritesGfxPtr->sprites[GetBattlerPosition(sprite->sBattler)] + (gBattleMonForms[sprite->sBattler] << 11) + (sprite->data[3] << 8); - for (i = 0; i < 0x100; ++i) + for (i = 0; i < 0x100; i++) *(dst++) = 0; StartSpriteAnim(sprite, gBattleMonForms[sprite->sBattler]); } } } -void SpriteCb_ShowAsMoveTarget(struct Sprite *sprite) +// Used when selecting a move, which can hit multiple targets, in double battles. +void SpriteCB_ShowAsMoveTarget(struct Sprite *sprite) { sprite->data[3] = 8; sprite->data[4] = sprite->invisible; - sprite->callback = SpriteCb_BlinkVisible; + sprite->callback = SpriteCB_BlinkVisible; } -static void SpriteCb_BlinkVisible(struct Sprite *sprite) +static void SpriteCB_BlinkVisible(struct Sprite *sprite) { - --sprite->data[3]; - if (sprite->data[3] == 0) + if (--sprite->data[3] == 0) { sprite->invisible ^= 1; sprite->data[3] = 8; } } -void SpriteCb_HideAsMoveTarget(struct Sprite *sprite) +void SpriteCB_HideAsMoveTarget(struct Sprite *sprite) { sprite->invisible = sprite->data[4]; sprite->data[4] = FALSE; @@ -2006,30 +2048,36 @@ static void oac_poke_ally_(struct Sprite *sprite) sprite->x2 -= 2; if (sprite->x2 == 0) { - sprite->callback = SpriteCallbackDummy3; + sprite->callback = SpriteCB_Idle; sprite->data[1] = 0; } } } -void SpriteCB_SetToDummy3(struct Sprite *sprite) +void SetIdleSpriteCallback(struct Sprite *sprite) { - sprite->callback = SpriteCallbackDummy3; + sprite->callback = SpriteCB_Idle; } -static void SpriteCallbackDummy3(struct Sprite *sprite) +static void SpriteCB_Idle(struct Sprite *sprite) { } +#define sSpeedX data[1] +#define sSpeedY data[2] + void SpriteCB_FaintSlideAnim(struct Sprite *sprite) { if (!(gIntroSlideFlags & 1)) { - sprite->x2 += sprite->data[1]; - sprite->y2 += sprite->data[2]; + sprite->x2 += sprite->sSpeedX; + sprite->y2 += sprite->sSpeedY; } } +#define sSpeedX data[1] +#define sSpeedY data[2] + #define sSinIndex data[0] #define sDelta data[1] #define sAmplitude data[2] @@ -2053,6 +2101,7 @@ void DoBounceEffect(u8 battler, u8 which, s8 delta, s8 amplitude) return; break; } + invisibleSpriteId = CreateInvisibleSpriteWithCallback(SpriteCB_BounceEffect); if (which == BOUNCE_HEALTHBOX) { @@ -2098,6 +2147,7 @@ void EndBounceEffect(u8 battler, u8 which) DestroySprite(&gSprites[gBattleSpritesDataPtr->healthBoxesData[battler].battlerBounceSpriteId]); gBattleSpritesDataPtr->healthBoxesData[battler].battlerIsBouncing = 0; } + gSprites[bouncerSpriteId].x2 = 0; gSprites[bouncerSpriteId].y2 = 0; } @@ -2131,7 +2181,7 @@ static void SpriteCB_PlayerThrowUpdate(struct Sprite *sprite) { UpdatePlayerPosInThrowAnim(sprite); if (sprite->animEnded) - sprite->callback = SpriteCallbackDummy3; + sprite->callback = SpriteCB_Idle; } void BattleDummy(void) @@ -2148,7 +2198,8 @@ void BeginBattleIntro(void) static void BattleMainCB1(void) { gBattleMainFunc(); - for (gActiveBattler = 0; gActiveBattler < gBattlersCount; ++gActiveBattler) + + for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) gBattlerControllerFuncs[gActiveBattler](); } @@ -2160,14 +2211,17 @@ static void BattleStartClearSetData(void) TurnValuesCleanUp(FALSE); SpecialStatusesClear(); - for (i = 0; i < MAX_BATTLERS_COUNT; ++i) + + for (i = 0; i < MAX_BATTLERS_COUNT; i++) { gStatuses3[i] = 0; + dataPtr = (u8 *)&gDisableStructs[i]; - for (j = 0; j < sizeof(struct DisableStruct); ++j) + for (j = 0; j < sizeof(struct DisableStruct); j++) dataPtr[j] = 0; + gDisableStructs[i].isFirstTurn = 2; - gUnknown_2023DD4[i] = 0; + sUnusedBattlersArray[i] = 0; gLastMoves[i] = MOVE_NONE; gLastLandedMoves[i] = MOVE_NONE; gLastHitByType[i] = 0; @@ -2177,31 +2231,41 @@ static void BattleStartClearSetData(void) gLastPrintedMoves[i] = MOVE_NONE; gBattleResources->flags->flags[i] = 0; } - for (i = 0; i < 2; ++i) + + for (i = 0; i < 2; i++) { gSideStatuses[i] = 0; + dataPtr = (u8 *)&gSideTimers[i]; - for (j = 0; j < sizeof(struct SideTimer); ++j) + for (j = 0; j < sizeof(struct SideTimer); j++) dataPtr[j] = 0; } + gBattlerAttacker = 0; gBattlerTarget = 0; gBattleWeather = 0; + dataPtr = (u8 *)&gWishFutureKnock; - for (i = 0; i < sizeof(struct WishFutureKnock); ++i) + for (i = 0; i < sizeof(struct WishFutureKnock); i++) dataPtr[i] = 0; + gHitMarker = 0; + if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_POKEDUDE)) && gSaveBlock2Ptr->optionsBattleSceneOff) gHitMarker |= HITMARKER_NO_ANIMATIONS; + gBattleScripting.battleStyle = gSaveBlock2Ptr->optionsBattleStyle; + gMultiHitCounter = 0; gBattleOutcome = 0; gBattleControllerExecFlags = 0; gPaydayMoney = 0; gBattleResources->battleScriptsStack->size = 0; gBattleResources->battleCallbackStack->size = 0; - for (i = 0; i < BATTLE_COMMUNICATION_ENTRIES_COUNT; ++i) + + for (i = 0; i < BATTLE_COMMUNICATION_ENTRIES_COUNT; i++) gBattleCommunication[i] = 0; + gPauseCounterBattle = 0; gBattleMoveDamage = 0; gIntroSlideFlags = 0; @@ -2218,7 +2282,8 @@ static void BattleStartClearSetData(void) gBattleStruct->safariEscapeFactor = 2; gBattleStruct->wildVictorySong = 0; gBattleStruct->moneyMultiplier = 1; - for (i = 0; i < 8; ++i) + + for (i = 0; i < 8; i++) { *((u8 *)gBattleStruct->lastTakenMove + i) = MOVE_NONE; *((u8 *)gBattleStruct->usedHeldItems + i) = ITEM_NONE; @@ -2232,7 +2297,7 @@ static void BattleStartClearSetData(void) *(gBattleStruct->AI_monToSwitchIntoId + 0) = PARTY_SIZE; *(gBattleStruct->AI_monToSwitchIntoId + 1) = PARTY_SIZE; *(&gBattleStruct->givenExpMons) = 0; - for (i = 0; i < 11; ++i) + for (i = 0; i < 11; i++) gBattleResults.catchAttempts[i] = 0; gBattleResults.battleTurnCounter = 0; gBattleResults.playerFaintCounter = 0; @@ -2264,9 +2329,9 @@ void SwitchInClearSetData(void) if (gBattleMoves[gCurrentMove].effect != EFFECT_BATON_PASS) { - for (i = 0; i < NUM_BATTLE_STATS; ++i) - gBattleMons[gActiveBattler].statStages[i] = 6; - for (i = 0; i < gBattlersCount; ++i) + for (i = 0; i < NUM_BATTLE_STATS; i++) + gBattleMons[gActiveBattler].statStages[i] = DEFAULT_STAT_STAGE; + for (i = 0; i < gBattlersCount; i++) { if ((gBattleMons[i].status2 & STATUS2_ESCAPE_PREVENTION) && gDisableStructs[i].battlerPreventingEscape == gActiveBattler) gBattleMons[i].status2 &= ~STATUS2_ESCAPE_PREVENTION; @@ -2281,14 +2346,14 @@ void SwitchInClearSetData(void) { gBattleMons[gActiveBattler].status2 &= (STATUS2_CONFUSION | STATUS2_FOCUS_ENERGY | STATUS2_SUBSTITUTE | STATUS2_ESCAPE_PREVENTION | STATUS2_CURSED); gStatuses3[gActiveBattler] &= (STATUS3_LEECHSEED_BATTLER | STATUS3_LEECHSEED | STATUS3_ALWAYS_HITS | STATUS3_PERISH_SONG | STATUS3_ROOTED | STATUS3_MUDSPORT | STATUS3_WATERSPORT); - for (i = 0; i < gBattlersCount; ++i) + for (i = 0; i < gBattlersCount; i++) { if (GetBattlerSide(gActiveBattler) != GetBattlerSide(i) && (gStatuses3[i] & STATUS3_ALWAYS_HITS) != 0 && (gDisableStructs[i].battlerWithSureHit == gActiveBattler)) { - gStatuses3[i] &= ~(STATUS3_ALWAYS_HITS); - gStatuses3[i] |= 0x10; + gStatuses3[i] &= ~STATUS3_ALWAYS_HITS; + gStatuses3[i] |= STATUS3_ALWAYS_HITS_TURN(2); } } } @@ -2297,18 +2362,22 @@ void SwitchInClearSetData(void) gBattleMons[gActiveBattler].status2 = 0; gStatuses3[gActiveBattler] = 0; } - for (i = 0; i < gBattlersCount; ++i) + + for (i = 0; i < gBattlersCount; i++) { if (gBattleMons[i].status2 & STATUS2_INFATUATED_WITH(gActiveBattler)) - gBattleMons[i].status2 &= ~(STATUS2_INFATUATED_WITH(gActiveBattler)); + gBattleMons[i].status2 &= ~STATUS2_INFATUATED_WITH(gActiveBattler); if ((gBattleMons[i].status2 & STATUS2_WRAPPED) && *(gBattleStruct->wrappedBy + i) == gActiveBattler) - gBattleMons[i].status2 &= ~(STATUS2_WRAPPED); + gBattleMons[i].status2 &= ~STATUS2_WRAPPED; } + gActionSelectionCursor[gActiveBattler] = 0; gMoveSelectionCursor[gActiveBattler] = 0; + ptr = (u8 *)&gDisableStructs[gActiveBattler]; - for (i = 0; i < sizeof(struct DisableStruct); ++i) + for (i = 0; i < sizeof(struct DisableStruct); i++) ptr[i] = 0; + if (gBattleMoves[gCurrentMove].effect == EFFECT_BATON_PASS) { gDisableStructs[gActiveBattler].substituteHP = disableStructCopy.substituteHP; @@ -2317,6 +2386,7 @@ void SwitchInClearSetData(void) gDisableStructs[gActiveBattler].perishSongTimerStartValue = disableStructCopy.perishSongTimerStartValue; gDisableStructs[gActiveBattler].battlerPreventingEscape = disableStructCopy.battlerPreventingEscape; } + gMoveResultFlags = 0; gDisableStructs[gActiveBattler].isFirstTurn = 2; gLastMoves[gActiveBattler] = MOVE_NONE; @@ -2325,6 +2395,7 @@ void SwitchInClearSetData(void) gLastResultingMoves[gActiveBattler] = MOVE_NONE; gLastPrintedMoves[gActiveBattler] = MOVE_NONE; gLastHitBy[gActiveBattler] = 0xFF; + *(gBattleStruct->lastTakenMove + gActiveBattler * 2 + 0) = MOVE_NONE; *(gBattleStruct->lastTakenMove + gActiveBattler * 2 + 1) = MOVE_NONE; *(0 * 2 + gActiveBattler * 8 + (u8 *)(gBattleStruct->lastTakenMoveFrom) + 0) = 0; @@ -2335,7 +2406,8 @@ void SwitchInClearSetData(void) *(2 * 2 + gActiveBattler * 8 + (u8 *)(gBattleStruct->lastTakenMoveFrom) + 1) = 0; *(3 * 2 + gActiveBattler * 8 + (u8 *)(gBattleStruct->lastTakenMoveFrom) + 0) = 0; *(3 * 2 + gActiveBattler * 8 + (u8 *)(gBattleStruct->lastTakenMoveFrom) + 1) = 0; - for (i = 0; i < gBattlersCount; ++i) + + for (i = 0; i < gBattlersCount; i++) { if (i != gActiveBattler) { @@ -2345,8 +2417,10 @@ void SwitchInClearSetData(void) *(i * 8 + gActiveBattler * 2 + (u8 *)(gBattleStruct->lastTakenMoveFrom) + 0) = 0; *(i * 8 + gActiveBattler * 2 + (u8 *)(gBattleStruct->lastTakenMoveFrom) + 1) = 0; } + *((u8 *)(&gBattleStruct->choicedMove[gActiveBattler]) + 0) = MOVE_NONE; *((u8 *)(&gBattleStruct->choicedMove[gActiveBattler]) + 1) = MOVE_NONE; + gBattleResources->flags->flags[gActiveBattler] = 0; gCurrentMove = MOVE_NONE; } @@ -2356,24 +2430,29 @@ void FaintClearSetData(void) s32 i; u8 *ptr; - for (i = 0; i < NUM_BATTLE_STATS; ++i) - gBattleMons[gActiveBattler].statStages[i] = 6; + for (i = 0; i < NUM_BATTLE_STATS; i++) + gBattleMons[gActiveBattler].statStages[i] = DEFAULT_STAT_STAGE; + gBattleMons[gActiveBattler].status2 = 0; gStatuses3[gActiveBattler] = 0; - for (i = 0; i < gBattlersCount; ++i) + + for (i = 0; i < gBattlersCount; i++) { if ((gBattleMons[i].status2 & STATUS2_ESCAPE_PREVENTION) && gDisableStructs[i].battlerPreventingEscape == gActiveBattler) gBattleMons[i].status2 &= ~STATUS2_ESCAPE_PREVENTION; if (gBattleMons[i].status2 & STATUS2_INFATUATED_WITH(gActiveBattler)) - gBattleMons[i].status2 &= ~(STATUS2_INFATUATED_WITH(gActiveBattler)); + gBattleMons[i].status2 &= ~STATUS2_INFATUATED_WITH(gActiveBattler); if ((gBattleMons[i].status2 & STATUS2_WRAPPED) && *(gBattleStruct->wrappedBy + i) == gActiveBattler) - gBattleMons[i].status2 &= ~(STATUS2_WRAPPED); + gBattleMons[i].status2 &= ~STATUS2_WRAPPED; } + gActionSelectionCursor[gActiveBattler] = 0; gMoveSelectionCursor[gActiveBattler] = 0; + ptr = (u8 *)&gDisableStructs[gActiveBattler]; - for (i = 0; i < sizeof(struct DisableStruct); ++i) + for (i = 0; i < sizeof(struct DisableStruct); i++) ptr[i] = 0; + gProtectStructs[gActiveBattler].protected = FALSE; gProtectStructs[gActiveBattler].endured = FALSE; gProtectStructs[gActiveBattler].noValidMoves = FALSE; @@ -2385,7 +2464,7 @@ void FaintClearSetData(void) gProtectStructs[gActiveBattler].confusionSelfDmg = FALSE; gProtectStructs[gActiveBattler].targetNotAffected = FALSE; gProtectStructs[gActiveBattler].chargingTurn = FALSE; - gProtectStructs[gActiveBattler].fleeFlag = 0; + gProtectStructs[gActiveBattler].fleeType = 0; gProtectStructs[gActiveBattler].usedImprisonedMove = FALSE; gProtectStructs[gActiveBattler].loveImmobility = FALSE; gProtectStructs[gActiveBattler].usedDisabledMove = FALSE; @@ -2393,15 +2472,19 @@ void FaintClearSetData(void) gProtectStructs[gActiveBattler].flag2Unknown = FALSE; gProtectStructs[gActiveBattler].flinchImmobility = FALSE; gProtectStructs[gActiveBattler].notFirstStrike = FALSE; + gDisableStructs[gActiveBattler].isFirstTurn = 2; + gLastMoves[gActiveBattler] = MOVE_NONE; gLastLandedMoves[gActiveBattler] = MOVE_NONE; - gLastHitByType[gActiveBattler] = MOVE_NONE; + gLastHitByType[gActiveBattler] = 0; gLastResultingMoves[gActiveBattler] = MOVE_NONE; gLastPrintedMoves[gActiveBattler] = MOVE_NONE; gLastHitBy[gActiveBattler] = 0xFF; + *((u8 *)(&gBattleStruct->choicedMove[gActiveBattler]) + 0) = MOVE_NONE; *((u8 *)(&gBattleStruct->choicedMove[gActiveBattler]) + 1) = MOVE_NONE; + *(gBattleStruct->lastTakenMove + gActiveBattler * 2 + 0) = MOVE_NONE; *(gBattleStruct->lastTakenMove + gActiveBattler * 2 + 1) = MOVE_NONE; *(0 * 2 + gActiveBattler * 8 + (u8 *)(gBattleStruct->lastTakenMoveFrom) + 0) = 0; @@ -2412,7 +2495,8 @@ void FaintClearSetData(void) *(2 * 2 + gActiveBattler * 8 + (u8 *)(gBattleStruct->lastTakenMoveFrom) + 1) = 0; *(3 * 2 + gActiveBattler * 8 + (u8 *)(gBattleStruct->lastTakenMoveFrom) + 0) = 0; *(3 * 2 + gActiveBattler * 8 + (u8 *)(gBattleStruct->lastTakenMoveFrom) + 1) = 0; - for (i = 0; i < gBattlersCount; ++i) + + for (i = 0; i < gBattlersCount; i++) { if (i != gActiveBattler) { @@ -2435,12 +2519,12 @@ static void BattleIntroGetMonsData(void) gActiveBattler = gBattleCommunication[1]; BtlController_EmitGetMonData(BUFFER_A, REQUEST_ALL_BATTLE, 0); MarkBattlerForControllerExec(gActiveBattler); - ++gBattleCommunication[MULTIUSE_STATE]; + gBattleCommunication[MULTIUSE_STATE]++; break; case 1: if (gBattleControllerExecFlags == 0) { - ++gBattleCommunication[1]; + gBattleCommunication[1]++; if (gBattleCommunication[1] == gBattlersCount) gBattleMainFunc = BattleIntroPrepareBackgroundSlide; else @@ -2455,7 +2539,7 @@ static void BattleIntroPrepareBackgroundSlide(void) if (gBattleControllerExecFlags == 0) { gActiveBattler = GetBattlerAtPosition(0); - BtlController_EmitIntroSlide(0, gBattleTerrain); + BtlController_EmitIntroSlide(BUFFER_A, gBattleTerrain); MarkBattlerForControllerExec(gActiveBattler); gBattleMainFunc = BattleIntroDrawTrainersOrMonsSprites; gBattleCommunication[MULTIUSE_STATE] = 0; @@ -2468,85 +2552,90 @@ static void BattleIntroDrawTrainersOrMonsSprites(void) u8 *ptr; s32 i; - if (gBattleControllerExecFlags == 0) - { - for (gActiveBattler = 0; gActiveBattler < gBattlersCount; ++gActiveBattler) - { - if ((gBattleTypeFlags & BATTLE_TYPE_SAFARI) - && GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER) - { - ptr = (u8 *)&gBattleMons[gActiveBattler]; - for (i = 0; i < sizeof(struct BattlePokemon); ++i) - ptr[i] = 0; - } - else - { - u16 *hpOnSwitchout; + if (gBattleControllerExecFlags) + return; - ptr = (u8 *)&gBattleMons[gActiveBattler]; - for (i = 0; i < sizeof(struct BattlePokemon); ++i) - ptr[i] = gBattleBufferB[gActiveBattler][4 + i]; - gBattleMons[gActiveBattler].type1 = gBaseStats[gBattleMons[gActiveBattler].species].type1; - gBattleMons[gActiveBattler].type2 = gBaseStats[gBattleMons[gActiveBattler].species].type2; - gBattleMons[gActiveBattler].ability = GetAbilityBySpecies(gBattleMons[gActiveBattler].species, gBattleMons[gActiveBattler].abilityNum); - hpOnSwitchout = &gBattleStruct->hpOnSwitchout[GetBattlerSide(gActiveBattler)]; - *hpOnSwitchout = gBattleMons[gActiveBattler].hp; - for (i = 0; i < NUM_BATTLE_STATS; ++i) - gBattleMons[gActiveBattler].statStages[i] = 6; - gBattleMons[gActiveBattler].status2 = 0; - } - if (GetBattlerPosition(gActiveBattler) == B_POSITION_PLAYER_LEFT) + for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) + { + if ((gBattleTypeFlags & BATTLE_TYPE_SAFARI) + && GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER) + { + ptr = (u8 *)&gBattleMons[gActiveBattler]; + for (i = 0; i < sizeof(struct BattlePokemon); i++) + ptr[i] = 0; + } + else + { + u16 *hpOnSwitchout; + + ptr = (u8 *)&gBattleMons[gActiveBattler]; + for (i = 0; i < sizeof(struct BattlePokemon); i++) + ptr[i] = gBattleBufferB[gActiveBattler][4 + i]; + + gBattleMons[gActiveBattler].type1 = gBaseStats[gBattleMons[gActiveBattler].species].type1; + gBattleMons[gActiveBattler].type2 = gBaseStats[gBattleMons[gActiveBattler].species].type2; + gBattleMons[gActiveBattler].ability = GetAbilityBySpecies(gBattleMons[gActiveBattler].species, gBattleMons[gActiveBattler].abilityNum); + hpOnSwitchout = &gBattleStruct->hpOnSwitchout[GetBattlerSide(gActiveBattler)]; + *hpOnSwitchout = gBattleMons[gActiveBattler].hp; + for (i = 0; i < NUM_BATTLE_STATS; i++) + gBattleMons[gActiveBattler].statStages[i] = DEFAULT_STAT_STAGE; + gBattleMons[gActiveBattler].status2 = 0; + } + + if (GetBattlerPosition(gActiveBattler) == B_POSITION_PLAYER_LEFT) + { + BtlController_EmitDrawTrainerPic(BUFFER_A); + MarkBattlerForControllerExec(gActiveBattler); + } + + if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) + { + if (GetBattlerPosition(gActiveBattler) == B_POSITION_OPPONENT_LEFT) { - BtlController_EmitDrawTrainerPic(0); + BtlController_EmitDrawTrainerPic(BUFFER_A); MarkBattlerForControllerExec(gActiveBattler); } - if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) + if (GetBattlerSide(gActiveBattler) == B_SIDE_OPPONENT + && !(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER + | BATTLE_TYPE_POKEDUDE + | BATTLE_TYPE_LINK + | BATTLE_TYPE_GHOST + | BATTLE_TYPE_OLD_MAN_TUTORIAL + | BATTLE_TYPE_LEGENDARY))) { - if (GetBattlerPosition(gActiveBattler) == B_POSITION_OPPONENT_LEFT) - { - BtlController_EmitDrawTrainerPic(0); - MarkBattlerForControllerExec(gActiveBattler); - } - if (GetBattlerSide(gActiveBattler) == B_SIDE_OPPONENT - && !(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER - | BATTLE_TYPE_POKEDUDE - | BATTLE_TYPE_LINK - | BATTLE_TYPE_GHOST - | BATTLE_TYPE_OLD_MAN_TUTORIAL - | BATTLE_TYPE_LEGENDARY))) - HandleSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBattler].species), FLAG_SET_SEEN, gBattleMons[gActiveBattler].personality); + HandleSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBattler].species), FLAG_SET_SEEN, gBattleMons[gActiveBattler].personality); } - else + } + else + { + if (GetBattlerSide(gActiveBattler) == B_SIDE_OPPONENT) { - if (GetBattlerSide(gActiveBattler) == B_SIDE_OPPONENT) + if (gBattleTypeFlags & (BATTLE_TYPE_GHOST | BATTLE_TYPE_GHOST_UNVEILED)) { - if (gBattleTypeFlags & (BATTLE_TYPE_GHOST | BATTLE_TYPE_GHOST_UNVEILED)) - { - if (!IS_BATTLE_TYPE_GHOST_WITHOUT_SCOPE(gBattleTypeFlags)) - HandleSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBattler].species), FLAG_SET_SEEN, gBattleMons[gActiveBattler].personality); - } - else if (!(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER - | BATTLE_TYPE_POKEDUDE - | BATTLE_TYPE_LINK - | BATTLE_TYPE_GHOST - | BATTLE_TYPE_OLD_MAN_TUTORIAL - | BATTLE_TYPE_LEGENDARY))) - { + if (!IS_BATTLE_TYPE_GHOST_WITHOUT_SCOPE(gBattleTypeFlags)) HandleSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBattler].species), FLAG_SET_SEEN, gBattleMons[gActiveBattler].personality); - } - BtlController_EmitLoadMonSprite(0); - MarkBattlerForControllerExec(gActiveBattler); } - } - if (gBattleTypeFlags & BATTLE_TYPE_MULTI - && (GetBattlerPosition(gActiveBattler) == B_POSITION_PLAYER_RIGHT || GetBattlerPosition(gActiveBattler) == B_POSITION_OPPONENT_RIGHT)) - { - BtlController_EmitDrawTrainerPic(0); + else if (!(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER + | BATTLE_TYPE_POKEDUDE + | BATTLE_TYPE_LINK + | BATTLE_TYPE_GHOST + | BATTLE_TYPE_OLD_MAN_TUTORIAL + | BATTLE_TYPE_LEGENDARY))) + { + HandleSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBattler].species), FLAG_SET_SEEN, gBattleMons[gActiveBattler].personality); + } + BtlController_EmitLoadMonSprite(0); MarkBattlerForControllerExec(gActiveBattler); } } - gBattleMainFunc = BattleIntroDrawPartySummaryScreens; + if (gBattleTypeFlags & BATTLE_TYPE_MULTI + && (GetBattlerPosition(gActiveBattler) == B_POSITION_PLAYER_RIGHT || GetBattlerPosition(gActiveBattler) == B_POSITION_OPPONENT_RIGHT)) + { + BtlController_EmitDrawTrainerPic(BUFFER_A); + MarkBattlerForControllerExec(gActiveBattler); + } } + gBattleMainFunc = BattleIntroDrawPartySummaryScreens; } static void BattleIntroDrawPartySummaryScreens(void) @@ -2554,68 +2643,71 @@ static void BattleIntroDrawPartySummaryScreens(void) s32 i; struct HpAndStatus hpStatus[PARTY_SIZE]; - if (gBattleControllerExecFlags == 0) - { - if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) - { - for (i = 0; i < PARTY_SIZE; ++i) - { - if (GetMonData(&gEnemyParty[i], MON_DATA_SPECIES2) == SPECIES_NONE - || GetMonData(&gEnemyParty[i], MON_DATA_SPECIES2) == SPECIES_EGG) - { - hpStatus[i].hp = 0xFFFF; - hpStatus[i].status = 0; - } - else - { - hpStatus[i].hp = GetMonData(&gEnemyParty[i], MON_DATA_HP); - hpStatus[i].status = GetMonData(&gEnemyParty[i], MON_DATA_STATUS); - } - } - gActiveBattler = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); - BtlController_EmitDrawPartyStatusSummary(0, hpStatus, 0x80); - MarkBattlerForControllerExec(gActiveBattler); - for (i = 0; i < PARTY_SIZE; ++i) - { - if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2) == SPECIES_NONE - || GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2) == SPECIES_EGG) - { - hpStatus[i].hp = 0xFFFF; - hpStatus[i].status = 0; - } - else - { - hpStatus[i].hp = GetMonData(&gPlayerParty[i], MON_DATA_HP); - hpStatus[i].status = GetMonData(&gPlayerParty[i], MON_DATA_STATUS); - } - } - gActiveBattler = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); - BtlController_EmitDrawPartyStatusSummary(0, hpStatus, 0x80); - MarkBattlerForControllerExec(gActiveBattler); + if (gBattleControllerExecFlags) + return; - gBattleMainFunc = BattleIntroPrintTrainerWantsToBattle; - } - else + if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) + { + for (i = 0; i < PARTY_SIZE; i++) { - // The struct gets set here, but nothing is ever done with it since - // wild battles don't show the party summary. - // Still, there's no point in having dead code. - for (i = 0; i < PARTY_SIZE; ++i) + if (GetMonData(&gEnemyParty[i], MON_DATA_SPECIES2) == SPECIES_NONE + || GetMonData(&gEnemyParty[i], MON_DATA_SPECIES2) == SPECIES_EGG) { - if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2) == SPECIES_NONE - || GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2) == SPECIES_EGG) - { - hpStatus[i].hp = 0xFFFF; - hpStatus[i].status = 0; - } - else - { - hpStatus[i].hp = GetMonData(&gPlayerParty[i], MON_DATA_HP); - hpStatus[i].status = GetMonData(&gPlayerParty[i], MON_DATA_STATUS); - } + hpStatus[i].hp = HP_EMPTY_SLOT; + hpStatus[i].status = 0; + } + else + { + hpStatus[i].hp = GetMonData(&gEnemyParty[i], MON_DATA_HP); + hpStatus[i].status = GetMonData(&gEnemyParty[i], MON_DATA_STATUS); } - gBattleMainFunc = BattleIntroPrintWildMonAttacked; } + gActiveBattler = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); + BtlController_EmitDrawPartyStatusSummary(BUFFER_A, hpStatus, PARTY_SUMM_SKIP_DRAW_DELAY); + MarkBattlerForControllerExec(gActiveBattler); + + for (i = 0; i < PARTY_SIZE; i++) + { + if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2) == SPECIES_NONE + || GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2) == SPECIES_EGG) + { + hpStatus[i].hp = HP_EMPTY_SLOT; + hpStatus[i].status = 0; + } + else + { + hpStatus[i].hp = GetMonData(&gPlayerParty[i], MON_DATA_HP); + hpStatus[i].status = GetMonData(&gPlayerParty[i], MON_DATA_STATUS); + } + } + gActiveBattler = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); + BtlController_EmitDrawPartyStatusSummary(BUFFER_A, hpStatus, PARTY_SUMM_SKIP_DRAW_DELAY); + MarkBattlerForControllerExec(gActiveBattler); + + gBattleMainFunc = BattleIntroPrintTrainerWantsToBattle; + } + else + { + // The struct gets set here, but nothing is ever done with it since + // wild battles don't show the party summary. + // Still, there's no point in having dead code. + + for (i = 0; i < PARTY_SIZE; i++) + { + if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2) == SPECIES_NONE + || GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2) == SPECIES_EGG) + { + hpStatus[i].hp = HP_EMPTY_SLOT; + hpStatus[i].status = 0; + } + else + { + hpStatus[i].hp = GetMonData(&gPlayerParty[i], MON_DATA_HP); + hpStatus[i].status = GetMonData(&gPlayerParty[i], MON_DATA_STATUS); + } + } + + gBattleMainFunc = BattleIntroPrintWildMonAttacked; } } @@ -2656,7 +2748,7 @@ static void BattleIntroOpponentSendsOutMonAnimation(void) { if (gBattleControllerExecFlags == 0) { - for (gActiveBattler = 0; gActiveBattler < gBattlersCount; ++gActiveBattler) + for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) { if (GetBattlerPosition(gActiveBattler) == B_POSITION_OPPONENT_LEFT) { @@ -2677,7 +2769,7 @@ static void BattleIntroRecordMonsToDex(void) { if (gBattleControllerExecFlags == 0) { - for (gActiveBattler = 0; gActiveBattler < gBattlersCount; ++gActiveBattler) + for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) if (GetBattlerSide(gActiveBattler) == B_SIDE_OPPONENT && !(gBattleTypeFlags & (BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_POKEDUDE @@ -2697,7 +2789,7 @@ static void Unused_AutoProgressToIntro(void) gBattleMainFunc = BattleIntroPrintPlayerSendsOut; } -void BattleIntroPrintPlayerSendsOut(void) +static void BattleIntroPrintPlayerSendsOut(void) { if (gBattleControllerExecFlags == 0) { @@ -2711,34 +2803,35 @@ static void BattleIntroPlayerSendsOutMonAnimation(void) { u32 position; - if (gBattleControllerExecFlags == 0) + if (gBattleControllerExecFlags) + return; + + for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) { - for (gActiveBattler = 0; gActiveBattler < gBattlersCount; ++gActiveBattler) + if (GetBattlerPosition(gActiveBattler) == B_POSITION_PLAYER_LEFT) { - if (GetBattlerPosition(gActiveBattler) == B_POSITION_PLAYER_LEFT) - { - BtlController_EmitIntroTrainerBallThrow(0); - MarkBattlerForControllerExec(gActiveBattler); - } - if (gBattleTypeFlags & BATTLE_TYPE_MULTI && GetBattlerPosition(gActiveBattler) == B_POSITION_PLAYER_RIGHT) - { - BtlController_EmitIntroTrainerBallThrow(0); - MarkBattlerForControllerExec(gActiveBattler); - } + BtlController_EmitIntroTrainerBallThrow(0); + MarkBattlerForControllerExec(gActiveBattler); + } + if (gBattleTypeFlags & BATTLE_TYPE_MULTI && GetBattlerPosition(gActiveBattler) == B_POSITION_PLAYER_RIGHT) + { + BtlController_EmitIntroTrainerBallThrow(0); + MarkBattlerForControllerExec(gActiveBattler); } - gBattleStruct->switchInAbilitiesCounter = 0; - gBattleStruct->switchInItemsCounter = 0; - gBattleStruct->overworldWeatherDone = FALSE; - gBattleMainFunc = TryDoEventsBeforeFirstTurn; } + gBattleStruct->switchInAbilitiesCounter = 0; + gBattleStruct->switchInItemsCounter = 0; + gBattleStruct->overworldWeatherDone = FALSE; + + gBattleMainFunc = TryDoEventsBeforeFirstTurn; } -// not used -static void Unused_AutoProgressToSwitchInAnims(void) +// Unused +static void BattleIntroSwitchInPlayerMons(void) { if (gBattleControllerExecFlags == 0) { - for (gActiveBattler = 0; gActiveBattler < gBattlersCount; ++gActiveBattler) + for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) { if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER) { @@ -2746,9 +2839,11 @@ static void Unused_AutoProgressToSwitchInAnims(void) MarkBattlerForControllerExec(gActiveBattler); } } + gBattleStruct->switchInAbilitiesCounter = 0; gBattleStruct->switchInItemsCounter = 0; gBattleStruct->overworldWeatherDone = FALSE; + gBattleMainFunc = TryDoEventsBeforeFirstTurn; } } @@ -2758,73 +2853,72 @@ static void TryDoEventsBeforeFirstTurn(void) s32 i, j; u8 effect = 0; - if (gBattleControllerExecFlags == 0) - { + if (gBattleControllerExecFlags) + return; - if (gBattleStruct->switchInAbilitiesCounter == 0) - { - for (i = 0; i < gBattlersCount; ++i) - gBattlerByTurnOrder[i] = i; - for (i = 0; i < gBattlersCount - 1; ++i) - for (j = i + 1; j < gBattlersCount; ++j) - if (GetWhoStrikesFirst(gBattlerByTurnOrder[i], gBattlerByTurnOrder[j], TRUE) != 0) - SwapTurnOrder(i, j); - } - if (!gBattleStruct->overworldWeatherDone - && AbilityBattleEffects(0, 0, 0, ABILITYEFFECT_SWITCH_IN_WEATHER, 0) != 0) - { - gBattleStruct->overworldWeatherDone = TRUE; - return; - } - // Check all switch in abilities happening from the fastest mon to slowest. - while (gBattleStruct->switchInAbilitiesCounter < gBattlersCount) - { - if (AbilityBattleEffects(ABILITYEFFECT_ON_SWITCHIN, gBattlerByTurnOrder[gBattleStruct->switchInAbilitiesCounter], 0, 0, 0) != 0) - ++effect; - ++gBattleStruct->switchInAbilitiesCounter; - if (effect) - return; - } - if (AbilityBattleEffects(ABILITYEFFECT_INTIMIDATE1, 0, 0, 0, 0) != 0) - return; - if (AbilityBattleEffects(ABILITYEFFECT_TRACE, 0, 0, 0, 0) != 0) - return; - // Check all switch in items having effect from the fastest mon to slowest. - while (gBattleStruct->switchInItemsCounter < gBattlersCount) - { - if (ItemBattleEffects(ITEMEFFECT_ON_SWITCH_IN, gBattlerByTurnOrder[gBattleStruct->switchInItemsCounter], FALSE)) - ++effect; - ++gBattleStruct->switchInItemsCounter; - if (effect) - return; - } - for (i = 0; i < gBattlersCount; ++i) // pointless, ruby leftover - ; - for (i = 0; i < MAX_BATTLERS_COUNT; ++i) - { - *(gBattleStruct->monToSwitchIntoId + i) = PARTY_SIZE; - gChosenActionByBattler[i] = B_ACTION_NONE; - gChosenMoveByBattler[i] = MOVE_NONE; - } - TurnValuesCleanUp(FALSE); - SpecialStatusesClear(); - *(&gBattleStruct->absentBattlerFlags) = gAbsentBattlerFlags; - gBattleMainFunc = HandleTurnActionSelectionState; - ResetSentPokesToOpponentValue(); - for (i = 0; i < BATTLE_COMMUNICATION_ENTRIES_COUNT; ++i) - gBattleCommunication[i] = 0; - for (i = 0; i < gBattlersCount; ++i) - gBattleMons[i].status2 &= ~(STATUS2_FLINCHED); - *(&gBattleStruct->turnEffectsTracker) = 0; - *(&gBattleStruct->turnEffectsBattlerId) = 0; - *(&gBattleStruct->wishPerishSongState) = 0; - *(&gBattleStruct->wishPerishSongBattlerId) = 0; - gBattleScripting.moveendState = 0; - gBattleStruct->faintedActionsState = 0; - gBattleStruct->turnCountersTracker = 0; - gMoveResultFlags = 0; - gRandomTurnNumber = Random(); + if (gBattleStruct->switchInAbilitiesCounter == 0) + { + for (i = 0; i < gBattlersCount; i++) + gBattlerByTurnOrder[i] = i; + for (i = 0; i < gBattlersCount - 1; i++) + for (j = i + 1; j < gBattlersCount; j++) + if (GetWhoStrikesFirst(gBattlerByTurnOrder[i], gBattlerByTurnOrder[j], TRUE) != 0) + SwapTurnOrder(i, j); } + if (!gBattleStruct->overworldWeatherDone + && AbilityBattleEffects(0, 0, 0, ABILITYEFFECT_SWITCH_IN_WEATHER, 0) != 0) + { + gBattleStruct->overworldWeatherDone = TRUE; + return; + } + // Check all switch in abilities happening from the fastest mon to slowest. + while (gBattleStruct->switchInAbilitiesCounter < gBattlersCount) + { + if (AbilityBattleEffects(ABILITYEFFECT_ON_SWITCHIN, gBattlerByTurnOrder[gBattleStruct->switchInAbilitiesCounter], 0, 0, 0) != 0) + effect++; + ++gBattleStruct->switchInAbilitiesCounter; + if (effect != 0) + return; + } + if (AbilityBattleEffects(ABILITYEFFECT_INTIMIDATE1, 0, 0, 0, 0) != 0) + return; + if (AbilityBattleEffects(ABILITYEFFECT_TRACE, 0, 0, 0, 0) != 0) + return; + // Check all switch in items having effect from the fastest mon to slowest. + while (gBattleStruct->switchInItemsCounter < gBattlersCount) + { + if (ItemBattleEffects(ITEMEFFECT_ON_SWITCH_IN, gBattlerByTurnOrder[gBattleStruct->switchInItemsCounter], FALSE)) + effect++; + ++gBattleStruct->switchInItemsCounter; + if (effect != 0) + return; + } + for (i = 0; i < gBattlersCount; i++) // pointless, ruby leftover + ; + for (i = 0; i < MAX_BATTLERS_COUNT; i++) + { + *(gBattleStruct->monToSwitchIntoId + i) = PARTY_SIZE; + gChosenActionByBattler[i] = B_ACTION_NONE; + gChosenMoveByBattler[i] = MOVE_NONE; + } + TurnValuesCleanUp(FALSE); + SpecialStatusesClear(); + *(&gBattleStruct->absentBattlerFlags) = gAbsentBattlerFlags; + gBattleMainFunc = HandleTurnActionSelectionState; + ResetSentPokesToOpponentValue(); + for (i = 0; i < BATTLE_COMMUNICATION_ENTRIES_COUNT; i++) + gBattleCommunication[i] = 0; + for (i = 0; i < gBattlersCount; i++) + gBattleMons[i].status2 &= ~(STATUS2_FLINCHED); + *(&gBattleStruct->turnEffectsTracker) = 0; + *(&gBattleStruct->turnEffectsBattlerId) = 0; + *(&gBattleStruct->wishPerishSongState) = 0; + *(&gBattleStruct->wishPerishSongBattlerId) = 0; + gBattleScripting.moveendState = 0; + gBattleStruct->faintedActionsState = 0; + gBattleStruct->turnCountersTracker = 0; + gMoveResultFlags = 0; + gRandomTurnNumber = Random(); } static void HandleEndTurn_ContinueBattle(void) @@ -2834,9 +2928,9 @@ static void HandleEndTurn_ContinueBattle(void) if (gBattleControllerExecFlags == 0) { gBattleMainFunc = BattleTurnPassed; - for (i = 0; i < BATTLE_COMMUNICATION_ENTRIES_COUNT; ++i) + for (i = 0; i < BATTLE_COMMUNICATION_ENTRIES_COUNT; i++) gBattleCommunication[i] = 0; - for (i = 0; i < gBattlersCount; ++i) + for (i = 0; i < gBattlersCount; i++) { gBattleMons[i].status2 &= ~(STATUS2_FLINCHED); if ((gBattleMons[i].status1 & STATUS1_SLEEP) && (gBattleMons[i].status2 & STATUS2_MULTIPLETURNS)) @@ -2878,7 +2972,7 @@ void BattleTurnPassed(void) gBattleScripting.moveendState = 0; gBattleMoveDamage = 0; gMoveResultFlags = 0; - for (i = 0; i < 5; ++i) + for (i = 0; i < 5; i++) gBattleCommunication[i] = 0; if (gBattleOutcome != 0) { @@ -2888,12 +2982,12 @@ void BattleTurnPassed(void) } if (gBattleResults.battleTurnCounter < 0xFF) ++gBattleResults.battleTurnCounter; - for (i = 0; i < gBattlersCount; ++i) + for (i = 0; i < gBattlersCount; i++) { gChosenActionByBattler[i] = B_ACTION_NONE; gChosenMoveByBattler[i] = MOVE_NONE; } - for (i = 0; i < MAX_BATTLERS_COUNT; ++i) + for (i = 0; i < MAX_BATTLERS_COUNT; i++) *(gBattleStruct->monToSwitchIntoId + i) = PARTY_SIZE; *(&gBattleStruct->absentBattlerFlags) = gAbsentBattlerFlags; gBattleMainFunc = HandleTurnActionSelectionState; @@ -2916,7 +3010,7 @@ u8 IsRunningFromBattleImpossible(void) || gBattleMons[gActiveBattler].ability == ABILITY_RUN_AWAY) return BATTLE_RUN_SUCCESS; side = GetBattlerSide(gActiveBattler); - for (i = 0; i < gBattlersCount; ++i) + for (i = 0; i < gBattlersCount; i++) { if (side != GetBattlerSide(i) && gBattleMons[i].ability == ABILITY_SHADOW_TAG) @@ -2964,14 +3058,14 @@ void UpdatePartyOwnerOnSwitch_NonMulti(u8 battler) s32 i; u8 r4, r1; - for (i = 0; i < 3; ++i) + for (i = 0; i < 3; i++) gBattlePartyCurrentOrder[i] = *(battler * 3 + i + (u8 *)(gBattleStruct->battlerPartyOrders)); r4 = GetPartyIdFromBattlePartyId(gBattlerPartyIndexes[battler]); r1 = GetPartyIdFromBattlePartyId(*(gBattleStruct->monToSwitchIntoId + battler)); SwitchPartyMonSlots(r4, r1); if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { - for (i = 0; i < 3; ++i) + for (i = 0; i < 3; i++) { *(battler * 3 + i + (u8 *)(gBattleStruct->battlerPartyOrders)) = gBattlePartyCurrentOrder[i]; *(BATTLE_PARTNER(battler) * 3 + i + (u8 *)(gBattleStruct->battlerPartyOrders)) = gBattlePartyCurrentOrder[i]; @@ -2979,7 +3073,7 @@ void UpdatePartyOwnerOnSwitch_NonMulti(u8 battler) } else { - for (i = 0; i < 3; ++i) + for (i = 0; i < 3; i++) *(battler * 3 + i + (u8 *)(gBattleStruct->battlerPartyOrders)) = gBattlePartyCurrentOrder[i]; } } @@ -3000,7 +3094,7 @@ static void HandleTurnActionSelectionState(void) s32 i; gBattleCommunication[ACTIONS_CONFIRMED_COUNT] = 0; - for (gActiveBattler = 0; gActiveBattler < gBattlersCount; ++gActiveBattler) + for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) { u8 position = GetBattlerPosition(gActiveBattler); @@ -3033,7 +3127,7 @@ static void HandleTurnActionSelectionState(void) { BtlController_EmitChooseAction(0, gChosenActionByBattler[0], gBattleBufferB[0][1] | (gBattleBufferB[0][2] << 8)); MarkBattlerForControllerExec(gActiveBattler); - ++gBattleCommunication[gActiveBattler]; + gBattleCommunication[gActiveBattler]++; } } } @@ -3067,7 +3161,7 @@ static void HandleTurnActionSelectionState(void) moveInfo.species = gBattleMons[gActiveBattler].species; moveInfo.monType1 = gBattleMons[gActiveBattler].type1; moveInfo.monType2 = gBattleMons[gActiveBattler].type2; - for (i = 0; i < MAX_MON_MOVES; ++i) + for (i = 0; i < MAX_MON_MOVES; i++) { moveInfo.moves[i] = gBattleMons[gActiveBattler].moves[i]; moveInfo.currentPp[i] = gBattleMons[gActiveBattler].pp[i]; @@ -3155,7 +3249,7 @@ static void HandleTurnActionSelectionState(void) } else { - ++gBattleCommunication[gActiveBattler]; + gBattleCommunication[gActiveBattler]++; } } break; @@ -3188,7 +3282,7 @@ static void HandleTurnActionSelectionState(void) *(gBattleStruct->chosenMovePositions + gActiveBattler) = gBattleBufferB[gActiveBattler][2]; gChosenMoveByBattler[gActiveBattler] = gBattleMons[gActiveBattler].moves[*(gBattleStruct->chosenMovePositions + gActiveBattler)]; *(gBattleStruct->moveTarget + gActiveBattler) = gBattleBufferB[gActiveBattler][3]; - ++gBattleCommunication[gActiveBattler]; + gBattleCommunication[gActiveBattler]++; } break; } @@ -3201,7 +3295,7 @@ static void HandleTurnActionSelectionState(void) else { gLastUsedItem = (gBattleBufferB[gActiveBattler][1] | (gBattleBufferB[gActiveBattler][2] << 8)); - ++gBattleCommunication[gActiveBattler]; + gBattleCommunication[gActiveBattler]++; } break; case B_ACTION_SWITCH: @@ -3221,29 +3315,29 @@ static void HandleTurnActionSelectionState(void) *((gActiveBattler ^ BIT_FLANK) * 3 + (u8 *)(gBattleStruct->battlerPartyOrders) + 0) |= (gBattleBufferB[gActiveBattler][2] & 0xF0) >> 4; *((gActiveBattler ^ BIT_FLANK) * 3 + (u8 *)(gBattleStruct->battlerPartyOrders) + 2) = gBattleBufferB[gActiveBattler][3]; } - ++gBattleCommunication[gActiveBattler]; + gBattleCommunication[gActiveBattler]++; } break; case B_ACTION_RUN: gHitMarker |= HITMARKER_RUN; - ++gBattleCommunication[gActiveBattler]; + gBattleCommunication[gActiveBattler]++; break; case B_ACTION_SAFARI_WATCH_CAREFULLY: - ++gBattleCommunication[gActiveBattler]; + gBattleCommunication[gActiveBattler]++; break; case B_ACTION_SAFARI_BALL: - ++gBattleCommunication[gActiveBattler]; + gBattleCommunication[gActiveBattler]++; break; case B_ACTION_SAFARI_BAIT: case B_ACTION_SAFARI_GO_NEAR: - ++gBattleCommunication[gActiveBattler]; + gBattleCommunication[gActiveBattler]++; break; case B_ACTION_SAFARI_RUN: gHitMarker |= HITMARKER_RUN; - ++gBattleCommunication[gActiveBattler]; + gBattleCommunication[gActiveBattler]++; break; case B_ACTION_OLDMAN_THROW: - ++gBattleCommunication[gActiveBattler]; + gBattleCommunication[gActiveBattler]++; break; } } @@ -3258,7 +3352,7 @@ static void HandleTurnActionSelectionState(void) else BtlController_EmitLinkStandbyMsg(BUFFER_A, LINK_STANDBY_STOP_BOUNCE_ONLY); MarkBattlerForControllerExec(gActiveBattler); - ++gBattleCommunication[gActiveBattler]; + gBattleCommunication[gActiveBattler]++; } break; case STATE_WAIT_ACTION_CONFIRMED: @@ -3310,12 +3404,12 @@ u8 GetWhoStrikesFirst(u8 battler1, u8 battler2, bool8 ignoreChosenMoves) if (WEATHER_HAS_EFFECT) { if ((gBattleMons[battler1].ability == ABILITY_SWIFT_SWIM && gBattleWeather & B_WEATHER_RAIN) - || (gBattleMons[battler1].ability == ABILITY_CHLOROPHYLL && gBattleWeather & B_WEATHER_SUN)) + || (gBattleMons[battler1].ability == ABILITY_CHLOROPHYLL && gBattleWeather & B_WEATHER_SUN)) speedMultiplierBattler1 = 2; else speedMultiplierBattler1 = 1; if ((gBattleMons[battler2].ability == ABILITY_SWIFT_SWIM && gBattleWeather & B_WEATHER_RAIN) - || (gBattleMons[battler2].ability == ABILITY_CHLOROPHYLL && gBattleWeather & B_WEATHER_SUN)) + || (gBattleMons[battler2].ability == ABILITY_CHLOROPHYLL && gBattleWeather & B_WEATHER_SUN)) speedMultiplierBattler2 = 2; else speedMultiplierBattler2 = 1; @@ -3325,9 +3419,11 @@ u8 GetWhoStrikesFirst(u8 battler1, u8 battler2, bool8 ignoreChosenMoves) speedMultiplierBattler1 = 1; speedMultiplierBattler2 = 1; } + speedBattler1 = (gBattleMons[battler1].speed * speedMultiplierBattler1) - * (gStatStageRatios[gBattleMons[battler1].statStages[STAT_SPEED]][0]) - / (gStatStageRatios[gBattleMons[battler1].statStages[STAT_SPEED]][1]); + * (gStatStageRatios[gBattleMons[battler1].statStages[STAT_SPEED]][0]) + / (gStatStageRatios[gBattleMons[battler1].statStages[STAT_SPEED]][1]); + if (gBattleMons[battler1].item == ITEM_ENIGMA_BERRY) { holdEffect = gEnigmaBerries[battler1].holdEffect; @@ -3435,18 +3531,18 @@ static void SetActionsAndBattlersTurnOrder(void) if (gBattleTypeFlags & BATTLE_TYPE_SAFARI) { - for (gActiveBattler = 0; gActiveBattler < gBattlersCount; ++gActiveBattler) + for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) { gActionsByTurnOrder[turnOrderId] = gChosenActionByBattler[gActiveBattler]; gBattlerByTurnOrder[turnOrderId] = gActiveBattler; - ++turnOrderId; + turnOrderId++; } } else { if (gBattleTypeFlags & BATTLE_TYPE_LINK) { - for (gActiveBattler = 0; gActiveBattler < gBattlersCount; ++gActiveBattler) + for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) { if (gChosenActionByBattler[gActiveBattler] == B_ACTION_RUN) { @@ -3465,13 +3561,13 @@ static void SetActionsAndBattlersTurnOrder(void) gActionsByTurnOrder[0] = gChosenActionByBattler[gActiveBattler]; gBattlerByTurnOrder[0] = gActiveBattler; turnOrderId = 1; - for (i = 0; i < gBattlersCount; ++i) + for (i = 0; i < gBattlersCount; i++) { if (i != gActiveBattler) { gActionsByTurnOrder[turnOrderId] = gChosenActionByBattler[i]; gBattlerByTurnOrder[turnOrderId] = i; - ++turnOrderId; + turnOrderId++; } } gBattleMainFunc = CheckFocusPunch_ClearVarsBeforeTurnStarts; @@ -3480,27 +3576,27 @@ static void SetActionsAndBattlersTurnOrder(void) } else { - for (gActiveBattler = 0; gActiveBattler < gBattlersCount; ++gActiveBattler) + for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) { if (gChosenActionByBattler[gActiveBattler] == B_ACTION_USE_ITEM || gChosenActionByBattler[gActiveBattler] == B_ACTION_SWITCH) { gActionsByTurnOrder[turnOrderId] = gChosenActionByBattler[gActiveBattler]; gBattlerByTurnOrder[turnOrderId] = gActiveBattler; - ++turnOrderId; + turnOrderId++; } } - for (gActiveBattler = 0; gActiveBattler < gBattlersCount; ++gActiveBattler) + for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) { if (gChosenActionByBattler[gActiveBattler] != B_ACTION_USE_ITEM && gChosenActionByBattler[gActiveBattler] != B_ACTION_SWITCH) { gActionsByTurnOrder[turnOrderId] = gChosenActionByBattler[gActiveBattler]; gBattlerByTurnOrder[turnOrderId] = gActiveBattler; - ++turnOrderId; + turnOrderId++; } } - for (i = 0; i < gBattlersCount - 1; ++i) + for (i = 0; i < gBattlersCount - 1; i++) { - for (j = i + 1; j < gBattlersCount; ++j) + for (j = i + 1; j < gBattlersCount; j++) { u8 battler1 = gBattlerByTurnOrder[i]; u8 battler2 = gBattlerByTurnOrder[j]; @@ -3524,7 +3620,7 @@ static void TurnValuesCleanUp(bool8 var0) s32 i; u8 *dataPtr; - for (gActiveBattler = 0; gActiveBattler < gBattlersCount; ++gActiveBattler) + for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) { if (var0) { @@ -3534,7 +3630,7 @@ static void TurnValuesCleanUp(bool8 var0) else { dataPtr = (u8 *)(&gProtectStructs[gActiveBattler]); - for (i = 0; i < sizeof(struct ProtectStruct); ++i) + for (i = 0; i < sizeof(struct ProtectStruct); i++) dataPtr[i] = 0; if (gDisableStructs[gActiveBattler].isFirstTurn) --gDisableStructs[gActiveBattler].isFirstTurn; @@ -3555,12 +3651,12 @@ static void TurnValuesCleanUp(bool8 var0) static void SpecialStatusesClear(void) { - for (gActiveBattler = 0; gActiveBattler < gBattlersCount; ++gActiveBattler) + for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) { s32 i; u8 *dataPtr = (u8 *)(&gSpecialStatuses[gActiveBattler]); - for (i = 0; i < sizeof(struct SpecialStatus); ++i) + for (i = 0; i < sizeof(struct SpecialStatus); i++) dataPtr[i] = 0; } } @@ -3697,7 +3793,7 @@ static void HandleEndTurn_BattleLost(void) static void HandleEndTurn_RanFromBattle(void) { gCurrentActionFuncId = 0; - switch (gProtectStructs[gBattlerAttacker].fleeFlag) + switch (gProtectStructs[gBattlerAttacker].fleeType) { default: gBattlescriptCurrInstr = BattleScript_GotAwaySafely; @@ -3726,7 +3822,7 @@ static void HandleEndTurn_FinishBattle(void) { if (!(gBattleTypeFlags & (BATTLE_TYPE_TRAINER_TOWER | BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_OLD_MAN_TUTORIAL | BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_SAFARI | BATTLE_TYPE_FIRST_BATTLE | BATTLE_TYPE_LINK))) { - for (gActiveBattler = 0; gActiveBattler < gBattlersCount; ++gActiveBattler) + for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) { if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER) { @@ -3782,7 +3878,7 @@ static void TryEvolvePokemon(void) while (gLeveledUpInBattle != 0) { - for (i = 0; i < PARTY_SIZE; ++i) + for (i = 0; i < PARTY_SIZE; i++) { if (gLeveledUpInBattle & gBitTable[i]) { @@ -3791,6 +3887,7 @@ static void TryEvolvePokemon(void) levelUpBits &= ~(gBitTable[i]); gLeveledUpInBattle = levelUpBits; + species = GetEvolutionTargetSpecies(&gPlayerParty[i], EVO_MODE_NORMAL, levelUpBits); if (species != SPECIES_NONE) { @@ -3842,7 +3939,7 @@ void RunBattleScriptCommands_PopCallbacksStack(void) if (gCurrentActionFuncId == B_ACTION_TRY_FINISH || gCurrentActionFuncId == B_ACTION_FINISHED) { if (gBattleResources->battleCallbackStack->size != 0) - --gBattleResources->battleCallbackStack->size; + gBattleResources->battleCallbackStack->size--; gBattleMainFunc = gBattleResources->battleCallbackStack->function[gBattleResources->battleCallbackStack->size]; } else @@ -3882,7 +3979,7 @@ static void HandleAction_UseMove(void) gProtectStructs[gBattlerAttacker].noValidMoves = 0; gCurrentMove = gChosenMove = MOVE_STRUGGLE; gHitMarker |= HITMARKER_NO_PPDEDUCT; - *(gBattleStruct->moveTarget + gBattlerAttacker) = GetMoveTarget(MOVE_STRUGGLE, 0); + *(gBattleStruct->moveTarget + gBattlerAttacker) = GetMoveTarget(MOVE_STRUGGLE, NO_TARGET_OVERRIDE); } else if (gBattleMons[gBattlerAttacker].status2 & STATUS2_MULTIPLETURNS || gBattleMons[gBattlerAttacker].status2 & STATUS2_RECHARGE) { @@ -3894,7 +3991,7 @@ static void HandleAction_UseMove(void) { gCurrentMove = gChosenMove = gDisableStructs[gBattlerAttacker].encoredMove; gCurrMovePos = gChosenMovePos = gDisableStructs[gBattlerAttacker].encoredMovePos; - *(gBattleStruct->moveTarget + gBattlerAttacker) = GetMoveTarget(gCurrentMove, 0); + *(gBattleStruct->moveTarget + gBattlerAttacker) = GetMoveTarget(gCurrentMove, NO_TARGET_OVERRIDE); } // check if the encored move wasn't overwritten else if (gDisableStructs[gBattlerAttacker].encoredMove != MOVE_NONE @@ -3905,12 +4002,12 @@ static void HandleAction_UseMove(void) gDisableStructs[gBattlerAttacker].encoredMove = MOVE_NONE; gDisableStructs[gBattlerAttacker].encoredMovePos = 0; gDisableStructs[gBattlerAttacker].encoreTimer = 0; - *(gBattleStruct->moveTarget + gBattlerAttacker) = GetMoveTarget(gCurrentMove, 0); + *(gBattleStruct->moveTarget + gBattlerAttacker) = GetMoveTarget(gCurrentMove, NO_TARGET_OVERRIDE); } else if (gBattleMons[gBattlerAttacker].moves[gCurrMovePos] != gChosenMoveByBattler[gBattlerAttacker]) { gCurrentMove = gChosenMove = gBattleMons[gBattlerAttacker].moves[gCurrMovePos]; - *(gBattleStruct->moveTarget + gBattlerAttacker) = GetMoveTarget(gCurrentMove, 0); + *(gBattleStruct->moveTarget + gBattlerAttacker) = GetMoveTarget(gCurrentMove, NO_TARGET_OVERRIDE); } else { @@ -3937,7 +4034,7 @@ static void HandleAction_UseMove(void) && gBattleMoves[gCurrentMove].type == TYPE_ELECTRIC) { side = GetBattlerSide(gBattlerAttacker); - for (gActiveBattler = 0; gActiveBattler < gBattlersCount; ++gActiveBattler) + for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) if (side != GetBattlerSide(gActiveBattler) && *(gBattleStruct->moveTarget + gBattlerAttacker) != gActiveBattler && gBattleMons[gActiveBattler].ability == ABILITY_LIGHTNING_ROD @@ -4138,19 +4235,19 @@ bool8 TryRunFromBattle(u8 battler) if (holdEffect == HOLD_EFFECT_CAN_ALWAYS_RUN) { gLastUsedItem = gBattleMons[battler].item; - gProtectStructs[battler].fleeFlag = 1; - ++effect; + gProtectStructs[battler].fleeType = FLEE_ITEM; + effect++; } else if (gBattleMons[battler].ability == ABILITY_RUN_AWAY) { gLastUsedAbility = ABILITY_RUN_AWAY; - gProtectStructs[battler].fleeFlag = 2; - ++effect; + gProtectStructs[battler].fleeType = FLEE_ABILITY; + effect++; } else if (IS_BATTLE_TYPE_GHOST_WITHOUT_SCOPE(gBattleTypeFlags)) { if (GetBattlerSide(battler) == B_SIDE_PLAYER) - ++effect; + effect++; } else { @@ -4160,17 +4257,17 @@ bool8 TryRunFromBattle(u8 battler) { speedVar = (gBattleMons[battler].speed * 128) / (gBattleMons[BATTLE_OPPOSITE(battler)].speed) + (gBattleStruct->runTries * 30); if (speedVar > (Random() & 0xFF)) - ++effect; + effect++; } else // same speed or faster { - ++effect; + effect++; } } ++gBattleStruct->runTries; } - if (effect) + if (effect != 0) { gCurrentTurnActionNumber = gBattlersCount; gBattleOutcome = B_OUTCOME_RAN; @@ -4185,7 +4282,7 @@ static void HandleAction_Run(void) if (gBattleTypeFlags & BATTLE_TYPE_LINK) { gCurrentTurnActionNumber = gBattlersCount; - for (gActiveBattler = 0; gActiveBattler < gBattlersCount; ++gActiveBattler) + for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) { if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER) { diff --git a/src/battle_util.c b/src/battle_util.c index 383a8fc0e..bad9457a2 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -27,16 +27,17 @@ #include "constants/battle_move_effects.h" #include "constants/battle_script_commands.h" +#define SOUND_MOVES_END 0xFFFF + static const u16 sSoundMovesTable[] = { MOVE_GROWL, MOVE_ROAR, MOVE_SING, MOVE_SUPERSONIC, MOVE_SCREECH, MOVE_SNORE, - MOVE_UPROAR, MOVE_METAL_SOUND, MOVE_GRASS_WHISTLE, MOVE_HYPER_VOICE, 0xFFFF + MOVE_UPROAR, MOVE_METAL_SOUND, MOVE_GRASS_WHISTLE, MOVE_HYPER_VOICE, SOUND_MOVES_END }; u8 GetBattlerForBattleScript(u8 caseId) { - u32 ret = 0; - + u8 ret = 0; switch (caseId) { case BS_TARGET: @@ -57,7 +58,7 @@ u8 GetBattlerForBattleScript(u8 caseId) case BS_FAINTED: ret = gBattlerFainted; break; - case 5: + case BS_FAINTED_LINK_MULTIPLE_1: ret = gBattlerFainted; break; case BS_PLAYER1: @@ -66,10 +67,10 @@ u8 GetBattlerForBattleScript(u8 caseId) case BS_OPPONENT1: ret = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); break; - case 4: - case 6: - case 8: - case 9: + case BS_ATTACKER_WITH_PARTNER: + case BS_FAINTED_LINK_MULTIPLE_2: + case BS_ATTACKER_SIDE: + case BS_NOT_ATTACKER_SIDE: break; } return ret; @@ -77,99 +78,115 @@ u8 GetBattlerForBattleScript(u8 caseId) void PressurePPLose(u8 target, u8 attacker, u16 move) { - s32 i; + int moveIndex; - if (gBattleMons[target].ability == ABILITY_PRESSURE) + if (gBattleMons[target].ability != ABILITY_PRESSURE) + return; + + for (moveIndex = 0; moveIndex < MAX_MON_MOVES; moveIndex++) { - for (i = 0; i < MAX_MON_MOVES && gBattleMons[attacker].moves[i] != move; ++i); - if (i != MAX_MON_MOVES) - { - if (gBattleMons[attacker].pp[i]) - --gBattleMons[attacker].pp[i]; - if (!(gBattleMons[attacker].status2 & STATUS2_TRANSFORMED) - && !(gDisableStructs[attacker].mimickedMoves & gBitTable[i])) - { - gActiveBattler = attacker; - BtlController_EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + i, 0, 1, &gBattleMons[gActiveBattler].pp[i]); - MarkBattlerForControllerExec(gActiveBattler); - } - } + if (gBattleMons[attacker].moves[moveIndex] == move) + break; + } + + if (moveIndex == MAX_MON_MOVES) + return; + + if (gBattleMons[attacker].pp[moveIndex] != 0) + gBattleMons[attacker].pp[moveIndex]--; + + if (MOVE_IS_PERMANENT(attacker, moveIndex)) + { + gActiveBattler = attacker; + BtlController_EmitSetMonData(BUFFER_A, REQUEST_PPMOVE1_BATTLE + moveIndex, 0, 1, &gBattleMons[gActiveBattler].pp[moveIndex]); + MarkBattlerForControllerExec(gActiveBattler); } } void PressurePPLoseOnUsingImprison(u8 attacker) { - s32 i, j; - s32 imprisonPos = 4; + int i, j; + int imprisonPos = MAX_MON_MOVES; u8 atkSide = GetBattlerSide(attacker); - for (i = 0; i < gBattlersCount; ++i) + for (i = 0; i < gBattlersCount; i++) { if (atkSide != GetBattlerSide(i) && gBattleMons[i].ability == ABILITY_PRESSURE) { - for (j = 0; j < MAX_MON_MOVES && gBattleMons[attacker].moves[j] != MOVE_IMPRISON; ++j); + for (j = 0; j < MAX_MON_MOVES; j++) + { + if (gBattleMons[attacker].moves[j] == MOVE_IMPRISON) + break; + } if (j != MAX_MON_MOVES) { imprisonPos = j; - if (gBattleMons[attacker].pp[j]) - --gBattleMons[attacker].pp[j]; + if (gBattleMons[attacker].pp[j] != 0) + gBattleMons[attacker].pp[j]--; } } } - if (imprisonPos != 4 - && !(gBattleMons[attacker].status2 & STATUS2_TRANSFORMED) - && !(gDisableStructs[attacker].mimickedMoves & gBitTable[imprisonPos])) + + if (imprisonPos != MAX_MON_MOVES && MOVE_IS_PERMANENT(attacker, imprisonPos)) { gActiveBattler = attacker; - BtlController_EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + imprisonPos, 0, 1, &gBattleMons[gActiveBattler].pp[imprisonPos]); + BtlController_EmitSetMonData(BUFFER_A, REQUEST_PPMOVE1_BATTLE + imprisonPos, 0, 1, &gBattleMons[gActiveBattler].pp[imprisonPos]); MarkBattlerForControllerExec(gActiveBattler); } } void PressurePPLoseOnUsingPerishSong(u8 attacker) { - s32 i, j; - s32 perishSongPos = 4; + int i, j; + int perishSongPos = MAX_MON_MOVES; - for (i = 0; i < gBattlersCount; ++i) + for (i = 0; i < gBattlersCount; i++) { if (gBattleMons[i].ability == ABILITY_PRESSURE && i != attacker) { - for (j = 0; j < MAX_MON_MOVES && gBattleMons[attacker].moves[j] != MOVE_PERISH_SONG; ++j); + for (j = 0; j < MAX_MON_MOVES; j++) + { + if (gBattleMons[attacker].moves[j] == MOVE_PERISH_SONG) + break; + } if (j != MAX_MON_MOVES) { perishSongPos = j; - if (gBattleMons[attacker].pp[j]) - --gBattleMons[attacker].pp[j]; + if (gBattleMons[attacker].pp[j] != 0) + gBattleMons[attacker].pp[j]--; } } } - if (perishSongPos != MAX_MON_MOVES - && !(gBattleMons[attacker].status2 & STATUS2_TRANSFORMED) - && !(gDisableStructs[attacker].mimickedMoves & gBitTable[perishSongPos])) + + if (perishSongPos != MAX_MON_MOVES && MOVE_IS_PERMANENT(attacker, perishSongPos)) { gActiveBattler = attacker; - BtlController_EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + perishSongPos, 0, 1, &gBattleMons[gActiveBattler].pp[perishSongPos]); + BtlController_EmitSetMonData(BUFFER_A, REQUEST_PPMOVE1_BATTLE + perishSongPos, 0, 1, &gBattleMons[gActiveBattler].pp[perishSongPos]); MarkBattlerForControllerExec(gActiveBattler); } } -void MarkAllBattlersForControllerExec(void) +// Unused +static void MarkAllBattlersForControllerExec(void) { - s32 i; + int i; if (gBattleTypeFlags & BATTLE_TYPE_LINK) - for (i = 0; i < gBattlersCount; ++i) - gBattleControllerExecFlags |= gBitTable[i] << 0x1C; + { + for (i = 0; i < gBattlersCount; i++) + gBattleControllerExecFlags |= gBitTable[i] << (32 - MAX_BATTLERS_COUNT); + } else - for (i = 0; i < gBattlersCount; ++i) + { + for (i = 0; i < gBattlersCount; i++) gBattleControllerExecFlags |= gBitTable[i]; + } } void MarkBattlerForControllerExec(u8 battlerId) { if (gBattleTypeFlags & BATTLE_TYPE_LINK) - gBattleControllerExecFlags |= gBitTable[battlerId] << 0x1C; + gBattleControllerExecFlags |= gBitTable[battlerId] << (32 - MAX_BATTLERS_COUNT); else gBattleControllerExecFlags |= gBitTable[battlerId]; } @@ -178,19 +195,21 @@ void MarkBattlerReceivedLinkData(u8 battlerId) { s32 i; - for (i = 0; i < GetLinkPlayerCount(); ++i) + for (i = 0; i < GetLinkPlayerCount(); i++) gBattleControllerExecFlags |= gBitTable[battlerId] << (i << 2); - gBattleControllerExecFlags &= ~(0x10000000 << battlerId); + gBattleControllerExecFlags &= ~((1 << 28) << battlerId); } void CancelMultiTurnMoves(u8 battler) { - gBattleMons[battler].status2 &= ~(STATUS2_MULTIPLETURNS); - gBattleMons[battler].status2 &= ~(STATUS2_LOCK_CONFUSE); - gBattleMons[battler].status2 &= ~(STATUS2_UPROAR); - gBattleMons[battler].status2 &= ~(STATUS2_BIDE); - gStatuses3[battler] &= ~(STATUS3_SEMI_INVULNERABLE); + gBattleMons[battler].status2 &= ~STATUS2_MULTIPLETURNS; + gBattleMons[battler].status2 &= ~STATUS2_LOCK_CONFUSE; + gBattleMons[battler].status2 &= ~STATUS2_UPROAR; + gBattleMons[battler].status2 &= ~STATUS2_BIDE; + + gStatuses3[battler] &= ~STATUS3_SEMI_INVULNERABLE; + gDisableStructs[battler].rolloutTimer = 0; gDisableStructs[battler].furyCutterCounter = 0; } @@ -198,14 +217,14 @@ void CancelMultiTurnMoves(u8 battler) bool8 WasUnableToUseMove(u8 battler) { if (gProtectStructs[battler].prlzImmobility - || gProtectStructs[battler].targetNotAffected - || gProtectStructs[battler].usedImprisonedMove - || gProtectStructs[battler].loveImmobility - || gProtectStructs[battler].usedDisabledMove - || gProtectStructs[battler].usedTauntedMove - || gProtectStructs[battler].flag2Unknown - || gProtectStructs[battler].flinchImmobility - || gProtectStructs[battler].confusionSelfDmg) + || gProtectStructs[battler].targetNotAffected + || gProtectStructs[battler].usedImprisonedMove + || gProtectStructs[battler].loveImmobility + || gProtectStructs[battler].usedDisabledMove + || gProtectStructs[battler].usedTauntedMove + || gProtectStructs[battler].flag2Unknown + || gProtectStructs[battler].flinchImmobility + || gProtectStructs[battler].confusionSelfDmg) return TRUE; else return FALSE; @@ -214,7 +233,7 @@ bool8 WasUnableToUseMove(u8 battler) void PrepareStringBattle(u16 stringId, u8 battler) { gActiveBattler = battler; - BtlController_EmitPrintString(0, stringId); + BtlController_EmitPrintString(BUFFER_A, stringId); MarkBattlerForControllerExec(gActiveBattler); } @@ -225,8 +244,10 @@ void ResetSentPokesToOpponentValue(void) gSentPokesToOpponent[0] = 0; gSentPokesToOpponent[1] = 0; + for (i = 0; i < gBattlersCount; i += 2) bits |= gBitTable[gBattlerPartyIndexes[i]]; + for (i = 1; i < gBattlersCount; i += 2) gSentPokesToOpponent[(i & BIT_FLANK) >> 1] = bits; } @@ -242,8 +263,10 @@ void OpponentSwitchInResetSentPokesToOpponentValue(u8 battler) gSentPokesToOpponent[flank] = 0; for (i = 0; i < gBattlersCount; i += 2) + { if (!(gAbsentBattlerFlags & gBitTable[i])) bits |= gBitTable[gBattlerPartyIndexes[i]]; + } gSentPokesToOpponent[flank] = bits; } } @@ -257,8 +280,7 @@ void UpdateSentPokesToOpponentValue(u8 battler) else { s32 i; - - for (i = 1; i < gBattlersCount; ++i) + for (i = 1; i < gBattlersCount; i++) gSentPokesToOpponent[(i & BIT_FLANK) >> 1] |= gBitTable[gBattlerPartyIndexes[battler]]; } } @@ -292,40 +314,47 @@ u8 TrySetCantSelectMoveBattleScript(void) gSelectionBattleScripts[gActiveBattler] = BattleScript_SelectingDisabledMove; limitations = 1; } + if (move == gLastMoves[gActiveBattler] && move != MOVE_STRUGGLE && (gBattleMons[gActiveBattler].status2 & STATUS2_TORMENT)) { CancelMultiTurnMoves(gActiveBattler); gSelectionBattleScripts[gActiveBattler] = BattleScript_SelectingTormentedMove; - ++limitations; + limitations++; } - if (gDisableStructs[gActiveBattler].tauntTimer && !gBattleMoves[move].power) + + if (gDisableStructs[gActiveBattler].tauntTimer != 0 && gBattleMoves[move].power == 0) { gCurrentMove = move; gSelectionBattleScripts[gActiveBattler] = BattleScript_SelectingNotAllowedMoveTaunt; - ++limitations; + limitations++; } + if (GetImprisonedMovesCount(gActiveBattler, move)) { gCurrentMove = move; gSelectionBattleScripts[gActiveBattler] = BattleScript_SelectingImprisonedMove; - ++limitations; + limitations++; } + if (gBattleMons[gActiveBattler].item == ITEM_ENIGMA_BERRY) holdEffect = gEnigmaBerries[gActiveBattler].holdEffect; else holdEffect = ItemId_GetHoldEffect(gBattleMons[gActiveBattler].item); + gPotentialItemEffectBattler = gActiveBattler; - if (holdEffect == HOLD_EFFECT_CHOICE_BAND && *choicedMove && *choicedMove != 0xFFFF && *choicedMove != move) + + if (holdEffect == HOLD_EFFECT_CHOICE_BAND && *choicedMove != MOVE_NONE && *choicedMove != MOVE_UNAVAILABLE && *choicedMove != move) { gCurrentMove = *choicedMove; gLastUsedItem = gBattleMons[gActiveBattler].item; gSelectionBattleScripts[gActiveBattler] = BattleScript_SelectingNotAllowedMoveChoiceItem; - ++limitations; + limitations++; } - if (!gBattleMons[gActiveBattler].pp[gBattleBufferB[gActiveBattler][2]]) + + if (gBattleMons[gActiveBattler].pp[gBattleBufferB[gActiveBattler][2]] == 0) { gSelectionBattleScripts[gActiveBattler] = BattleScript_SelectingMoveWithNoPP; - ++limitations; + limitations++; } return limitations; } @@ -340,37 +369,47 @@ u8 CheckMoveLimitations(u8 battlerId, u8 unusableMoves, u8 check) holdEffect = gEnigmaBerries[battlerId].holdEffect; else holdEffect = ItemId_GetHoldEffect(gBattleMons[battlerId].item); + gPotentialItemEffectBattler = battlerId; - for (i = 0; i < MAX_MON_MOVES; ++i) + for (i = 0; i < MAX_MON_MOVES; i++) { - if (gBattleMons[battlerId].moves[i] == 0 && check & MOVE_LIMITATION_ZEROMOVE) + // No move + if (gBattleMons[battlerId].moves[i] == MOVE_NONE && check & MOVE_LIMITATION_ZEROMOVE) unusableMoves |= gBitTable[i]; + // No PP if (gBattleMons[battlerId].pp[i] == 0 && check & MOVE_LIMITATION_PP) unusableMoves |= gBitTable[i]; + // Disable if (gBattleMons[battlerId].moves[i] == gDisableStructs[battlerId].disabledMove && check & MOVE_LIMITATION_DISABLED) unusableMoves |= gBitTable[i]; + // Torment if (gBattleMons[battlerId].moves[i] == gLastMoves[battlerId] && check & MOVE_LIMITATION_TORMENTED && gBattleMons[battlerId].status2 & STATUS2_TORMENT) unusableMoves |= gBitTable[i]; + // Taunt if (gDisableStructs[battlerId].tauntTimer && check & MOVE_LIMITATION_TAUNT && gBattleMoves[gBattleMons[battlerId].moves[i]].power == 0) unusableMoves |= gBitTable[i]; + // Imprison if (GetImprisonedMovesCount(battlerId, gBattleMons[battlerId].moves[i]) && check & MOVE_LIMITATION_IMPRISON) unusableMoves |= gBitTable[i]; + // Encore if (gDisableStructs[battlerId].encoreTimer && gDisableStructs[battlerId].encoredMove != gBattleMons[battlerId].moves[i]) unusableMoves |= gBitTable[i]; - if (holdEffect == HOLD_EFFECT_CHOICE_BAND && *choicedMove != 0 && *choicedMove != 0xFFFF && *choicedMove != gBattleMons[battlerId].moves[i]) + // Choice Band + if (holdEffect == HOLD_EFFECT_CHOICE_BAND && *choicedMove != MOVE_NONE && *choicedMove != MOVE_UNAVAILABLE && *choicedMove != gBattleMons[battlerId].moves[i]) unusableMoves |= gBitTable[i]; } return unusableMoves; } +#define ALL_MOVES_MASK ((1 << MAX_MON_MOVES) - 1) bool8 AreAllMovesUnusable(void) { - u8 unusable = CheckMoveLimitations(gActiveBattler, 0, 0xFF); + u8 unusable = CheckMoveLimitations(gActiveBattler, 0, MOVE_LIMITATIONS_ALL); - if (unusable == 0xF) // All moves are unusable. + if (unusable == ALL_MOVES_MASK) // All moves are unusable. { - gProtectStructs[gActiveBattler].noValidMoves = 1; + gProtectStructs[gActiveBattler].noValidMoves = TRUE; gSelectionBattleScripts[gActiveBattler] = BattleScript_NoMovesLeft; if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) gBattleBufferB[gActiveBattler][3] = GetBattlerAtPosition((BATTLE_OPPOSITE(GetBattlerPosition(gActiveBattler))) | (Random() & 2)); @@ -379,10 +418,12 @@ bool8 AreAllMovesUnusable(void) } else { - gProtectStructs[gActiveBattler].noValidMoves = 0; + gProtectStructs[gActiveBattler].noValidMoves = FALSE; } - return (unusable == 0xF); + + return (unusable == ALL_MOVES_MASK); } +#undef ALL_MOVES_MASK u8 GetImprisonedMovesCount(u8 battlerId, u16 move) { @@ -390,17 +431,21 @@ u8 GetImprisonedMovesCount(u8 battlerId, u16 move) u8 imprisonedMoves = 0; u8 battlerSide = GetBattlerSide(battlerId); - for (i = 0; i < gBattlersCount; ++i) + for (i = 0; i < gBattlersCount; i++) { if (battlerSide != GetBattlerSide(i) && gStatuses3[i] & STATUS3_IMPRISONED_OTHERS) { s32 j; - - for (j = 0; j < MAX_MON_MOVES && move != gBattleMons[i].moves[j]; ++j); + for (j = 0; j < MAX_MON_MOVES; j++) + { + if (move == gBattleMons[i].moves[j]) + break; + } if (j < MAX_MON_MOVES) - ++imprisonedMoves; + imprisonedMoves++; } } + return imprisonedMoves; } @@ -424,8 +469,13 @@ u8 DoFieldEndTurnEffects(void) u8 effect = 0; s32 i; - for (gBattlerAttacker = 0; gBattlerAttacker < gBattlersCount && gAbsentBattlerFlags & gBitTable[gBattlerAttacker]; ++gBattlerAttacker); - for (gBattlerTarget = 0; gBattlerTarget < gBattlersCount && gAbsentBattlerFlags & gBitTable[gBattlerTarget]; ++gBattlerTarget); + for (gBattlerAttacker = 0; gBattlerAttacker < gBattlersCount && gAbsentBattlerFlags & gBitTable[gBattlerAttacker]; gBattlerAttacker++) + { + } + for (gBattlerTarget = 0; gBattlerTarget < gBattlersCount && gAbsentBattlerFlags & gBitTable[gBattlerTarget]; gBattlerTarget++) + { + } + do { u8 side; @@ -433,15 +483,18 @@ u8 DoFieldEndTurnEffects(void) switch (gBattleStruct->turnCountersTracker) { case ENDTURN_ORDER: - for (i = 0; i < gBattlersCount; ++i) + for (i = 0; i < gBattlersCount; i++) + { gBattlerByTurnOrder[i] = i; - for (i = 0; i < gBattlersCount - 1; ++i) + } + for (i = 0; i < gBattlersCount - 1; i++) { s32 j; - - for (j = i + 1; j < gBattlersCount; ++j) - if (GetWhoStrikesFirst(gBattlerByTurnOrder[i], gBattlerByTurnOrder[j], 0)) + for (j = i + 1; j < gBattlersCount; j++) + { + if (GetWhoStrikesFirst(gBattlerByTurnOrder[i], gBattlerByTurnOrder[j], FALSE)) SwapTurnOrder(i, j); + } } { u8 *var = &gBattleStruct->turnCountersTracker; @@ -462,16 +515,16 @@ u8 DoFieldEndTurnEffects(void) gSideStatuses[side] &= ~SIDE_STATUS_REFLECT; BattleScriptExecute(BattleScript_SideStatusWoreOff); PREPARE_MOVE_BUFFER(gBattleTextBuff1, MOVE_REFLECT); - ++effect; + effect++; } } - ++gBattleStruct->turnSideTracker; - if (effect) + gBattleStruct->turnSideTracker++; + if (effect != 0) break; } - if (!effect) + if (effect == 0) { - ++gBattleStruct->turnCountersTracker; + gBattleStruct->turnCountersTracker++; gBattleStruct->turnSideTracker = 0; } break; @@ -488,16 +541,16 @@ u8 DoFieldEndTurnEffects(void) BattleScriptExecute(BattleScript_SideStatusWoreOff); gBattleCommunication[MULTISTRING_CHOOSER] = side; PREPARE_MOVE_BUFFER(gBattleTextBuff1, MOVE_LIGHT_SCREEN); - ++effect; + effect++; } } - ++gBattleStruct->turnSideTracker; - if (effect) + gBattleStruct->turnSideTracker++; + if (effect != 0) break; } - if (!effect) + if (effect == 0) { - ++gBattleStruct->turnCountersTracker; + gBattleStruct->turnCountersTracker++; gBattleStruct->turnSideTracker = 0; } break; @@ -512,15 +565,15 @@ u8 DoFieldEndTurnEffects(void) BattleScriptExecute(BattleScript_SideStatusWoreOff); gBattleCommunication[MULTISTRING_CHOOSER] = side; PREPARE_MOVE_BUFFER(gBattleTextBuff1, MOVE_MIST); - ++effect; + effect++; } - ++gBattleStruct->turnSideTracker; - if (effect) + gBattleStruct->turnSideTracker++; + if (effect != 0) break; } - if (!effect) + if (effect == 0) { - ++gBattleStruct->turnCountersTracker; + gBattleStruct->turnCountersTracker++; gBattleStruct->turnSideTracker = 0; } break; @@ -535,16 +588,16 @@ u8 DoFieldEndTurnEffects(void) { gSideStatuses[side] &= ~SIDE_STATUS_SAFEGUARD; BattleScriptExecute(BattleScript_SafeguardEnds); - ++effect; + effect++; } } - ++gBattleStruct->turnSideTracker; - if (effect) + gBattleStruct->turnSideTracker++; + if (effect != 0) break; } - if (!effect) + if (effect == 0) { - ++gBattleStruct->turnCountersTracker; + gBattleStruct->turnCountersTracker++; gBattleStruct->turnSideTracker = 0; } break; @@ -558,14 +611,16 @@ u8 DoFieldEndTurnEffects(void) { gBattlerTarget = gActiveBattler; BattleScriptExecute(BattleScript_WishComesTrue); - ++effect; + effect++; } - ++gBattleStruct->turnSideTracker; - if (effect) + gBattleStruct->turnSideTracker++; + if (effect != 0) break; } - if (!effect) - ++gBattleStruct->turnCountersTracker; + if (effect == 0) + { + gBattleStruct->turnCountersTracker++; + } break; case ENDTURN_RAIN: if (gBattleWeather & B_WEATHER_RAIN) @@ -576,25 +631,26 @@ u8 DoFieldEndTurnEffects(void) { gBattleWeather &= ~B_WEATHER_RAIN_TEMPORARY; gBattleWeather &= ~B_WEATHER_RAIN_DOWNPOUR; - gBattleCommunication[MULTISTRING_CHOOSER] = 2; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_RAIN_STOPPED; } else if (gBattleWeather & B_WEATHER_RAIN_DOWNPOUR) - gBattleCommunication[MULTISTRING_CHOOSER] = 1; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_DOWNPOUR_CONTINUES; else - gBattleCommunication[MULTISTRING_CHOOSER] = 0; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_RAIN_CONTINUES; } else if (gBattleWeather & B_WEATHER_RAIN_DOWNPOUR) { - gBattleCommunication[MULTISTRING_CHOOSER] = 1; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_DOWNPOUR_CONTINUES; } else { - gBattleCommunication[MULTISTRING_CHOOSER] = 0; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_RAIN_CONTINUES; } + BattleScriptExecute(BattleScript_RainContinuesOrEnds); - ++effect; + effect++; } - ++gBattleStruct->turnCountersTracker; + gBattleStruct->turnCountersTracker++; break; case ENDTURN_SANDSTORM: if (gBattleWeather & B_WEATHER_SANDSTORM) @@ -608,12 +664,13 @@ u8 DoFieldEndTurnEffects(void) { gBattlescriptCurrInstr = BattleScript_DamagingWeatherContinues; } + gBattleScripting.animArg1 = B_ANIM_SANDSTORM_CONTINUES; - gBattleCommunication[MULTISTRING_CHOOSER] = 0; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SANDSTORM; BattleScriptExecute(gBattlescriptCurrInstr); - ++effect; + effect++; } - ++gBattleStruct->turnCountersTracker; + gBattleStruct->turnCountersTracker++; break; case ENDTURN_SUN: if (gBattleWeather & B_WEATHER_SUN) @@ -627,10 +684,11 @@ u8 DoFieldEndTurnEffects(void) { gBattlescriptCurrInstr = BattleScript_SunlightContinues; } + BattleScriptExecute(gBattlescriptCurrInstr); - ++effect; + effect++; } - ++gBattleStruct->turnCountersTracker; + gBattleStruct->turnCountersTracker++; break; case ENDTURN_HAIL: if (gBattleWeather & B_WEATHER_HAIL) @@ -644,18 +702,19 @@ u8 DoFieldEndTurnEffects(void) { gBattlescriptCurrInstr = BattleScript_DamagingWeatherContinues; } + gBattleScripting.animArg1 = B_ANIM_HAIL_CONTINUES; - gBattleCommunication[MULTISTRING_CHOOSER] = 1; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_HAIL; BattleScriptExecute(gBattlescriptCurrInstr); - ++effect; + effect++; } - ++gBattleStruct->turnCountersTracker; + gBattleStruct->turnCountersTracker++; break; case ENDTURN_FIELD_COUNT: - ++effect; + effect++; break; } - } while (!effect); + } while (effect == 0); return (gBattleMainFunc != BattleTurnPassed); } @@ -693,7 +752,7 @@ u8 DoBattlerEndTurnEffects(void) gActiveBattler = gBattlerAttacker = gBattlerByTurnOrder[gBattleStruct->turnEffectsBattlerId]; if (gAbsentBattlerFlags & gBitTable[gActiveBattler]) { - ++gBattleStruct->turnEffectsBattlerId; + gBattleStruct->turnEffectsBattlerId++; } else { @@ -709,24 +768,24 @@ u8 DoBattlerEndTurnEffects(void) gBattleMoveDamage = 1; gBattleMoveDamage *= -1; BattleScriptExecute(BattleScript_IngrainTurnHeal); - ++effect; + effect++; } - ++gBattleStruct->turnEffectsTracker; + gBattleStruct->turnEffectsTracker++; break; case ENDTURN_ABILITIES: // end turn abilities if (AbilityBattleEffects(ABILITYEFFECT_ENDTURN, gActiveBattler, 0, 0, 0)) - ++effect; - ++gBattleStruct->turnEffectsTracker; + effect++; + gBattleStruct->turnEffectsTracker++; break; case ENDTURN_ITEMS1: // item effects - if (ItemBattleEffects(1, gActiveBattler, FALSE)) - ++effect; - ++gBattleStruct->turnEffectsTracker; + if (ItemBattleEffects(ITEMEFFECT_NORMAL, gActiveBattler, FALSE)) + effect++; + gBattleStruct->turnEffectsTracker++; break; case ENDTURN_ITEMS2: // item effects again - if (ItemBattleEffects(1, gActiveBattler, TRUE)) - ++effect; - ++gBattleStruct->turnEffectsTracker; + if (ItemBattleEffects(ITEMEFFECT_NORMAL, gActiveBattler, TRUE)) + effect++; + gBattleStruct->turnEffectsTracker++; break; case ENDTURN_LEECH_SEED: // leech seed if ((gStatuses3[gActiveBattler] & STATUS3_LEECHSEED) @@ -740,9 +799,9 @@ u8 DoBattlerEndTurnEffects(void) gBattleScripting.animArg1 = gBattlerTarget; gBattleScripting.animArg2 = gBattlerAttacker; BattleScriptExecute(BattleScript_LeechSeedTurnDrain); - ++effect; + effect++; } - ++gBattleStruct->turnEffectsTracker; + gBattleStruct->turnEffectsTracker++; break; case ENDTURN_POISON: // poison if ((gBattleMons[gActiveBattler].status1 & STATUS1_POISON) && gBattleMons[gActiveBattler].hp != 0) @@ -751,9 +810,9 @@ u8 DoBattlerEndTurnEffects(void) if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; BattleScriptExecute(BattleScript_PoisonTurnDmg); - ++effect; + effect++; } - ++gBattleStruct->turnEffectsTracker; + gBattleStruct->turnEffectsTracker++; break; case ENDTURN_BAD_POISON: // toxic poison if ((gBattleMons[gActiveBattler].status1 & STATUS1_TOXIC_POISON) && gBattleMons[gActiveBattler].hp != 0) @@ -761,13 +820,13 @@ u8 DoBattlerEndTurnEffects(void) gBattleMoveDamage = gBattleMons[gActiveBattler].maxHP / 16; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; - if ((gBattleMons[gActiveBattler].status1 & 0xF00) != 0xF00) // not 16 turns - gBattleMons[gActiveBattler].status1 += 0x100; - gBattleMoveDamage *= (gBattleMons[gActiveBattler].status1 & 0xF00) >> 8; + if ((gBattleMons[gActiveBattler].status1 & STATUS1_TOXIC_COUNTER) != STATUS1_TOXIC_TURN(15)) // not 16 turns + gBattleMons[gActiveBattler].status1 += STATUS1_TOXIC_TURN(1); + gBattleMoveDamage *= (gBattleMons[gActiveBattler].status1 & STATUS1_TOXIC_COUNTER) >> 8; BattleScriptExecute(BattleScript_PoisonTurnDmg); - ++effect; + effect++; } - ++gBattleStruct->turnEffectsTracker; + gBattleStruct->turnEffectsTracker++; break; case ENDTURN_BURN: // burn if ((gBattleMons[gActiveBattler].status1 & STATUS1_BURN) && gBattleMons[gActiveBattler].hp != 0) @@ -776,9 +835,9 @@ u8 DoBattlerEndTurnEffects(void) if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; BattleScriptExecute(BattleScript_BurnTurnDmg); - ++effect; + effect++; } - ++gBattleStruct->turnEffectsTracker; + gBattleStruct->turnEffectsTracker++; break; case ENDTURN_NIGHTMARES: // spooky nightmares if ((gBattleMons[gActiveBattler].status2 & STATUS2_NIGHTMARE) && gBattleMons[gActiveBattler].hp != 0) @@ -791,14 +850,14 @@ u8 DoBattlerEndTurnEffects(void) if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; BattleScriptExecute(BattleScript_NightmareTurnDmg); - ++effect; + effect++; } else { gBattleMons[gActiveBattler].status2 &= ~STATUS2_NIGHTMARE; } } - ++gBattleStruct->turnEffectsTracker; + gBattleStruct->turnEffectsTracker++; break; case ENDTURN_CURSE: // curse if ((gBattleMons[gActiveBattler].status2 & STATUS2_CURSED) && gBattleMons[gActiveBattler].hp != 0) @@ -807,14 +866,14 @@ u8 DoBattlerEndTurnEffects(void) if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; BattleScriptExecute(BattleScript_CurseTurnDmg); - ++effect; + effect++; } - ++gBattleStruct->turnEffectsTracker; + gBattleStruct->turnEffectsTracker++; break; case ENDTURN_WRAP: // wrap if ((gBattleMons[gActiveBattler].status2 & STATUS2_WRAPPED) && gBattleMons[gActiveBattler].hp != 0) { - gBattleMons[gActiveBattler].status2 -= 0x2000; + gBattleMons[gActiveBattler].status2 -= STATUS2_WRAPPED_TURN(1); if (gBattleMons[gActiveBattler].status2 & STATUS2_WRAPPED) // damaged by wrap { gBattleScripting.animArg1 = *(gBattleStruct->wrappedMove + gActiveBattler * 2 + 0); @@ -839,24 +898,24 @@ u8 DoBattlerEndTurnEffects(void) gBattlescriptCurrInstr = BattleScript_WrapEnds; } BattleScriptExecute(gBattlescriptCurrInstr); - ++effect; + effect++; } - ++gBattleStruct->turnEffectsTracker; + gBattleStruct->turnEffectsTracker++; break; case ENDTURN_UPROAR: // uproar if (gBattleMons[gActiveBattler].status2 & STATUS2_UPROAR) { - for (gBattlerAttacker = 0; gBattlerAttacker < gBattlersCount; ++gBattlerAttacker) + for (gBattlerAttacker = 0; gBattlerAttacker < gBattlersCount; gBattlerAttacker++) { if ((gBattleMons[gBattlerAttacker].status1 & STATUS1_SLEEP) && gBattleMons[gBattlerAttacker].ability != ABILITY_SOUNDPROOF) { - gBattleMons[gBattlerAttacker].status1 &= ~(STATUS1_SLEEP); - gBattleMons[gBattlerAttacker].status2 &= ~(STATUS2_NIGHTMARE); + gBattleMons[gBattlerAttacker].status1 &= ~STATUS1_SLEEP; + gBattleMons[gBattlerAttacker].status2 &= ~STATUS2_NIGHTMARE; gBattleCommunication[MULTISTRING_CHOOSER] = 1; BattleScriptExecute(BattleScript_MonWokeUpInUproar); gActiveBattler = gBattlerAttacker; - BtlController_EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1); + BtlController_EmitSetMonData(BUFFER_A, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1); MarkBattlerForControllerExec(gActiveBattler); break; } @@ -869,20 +928,20 @@ u8 DoBattlerEndTurnEffects(void) else { gBattlerAttacker = gActiveBattler; - gBattleMons[gActiveBattler].status2 -= 0x10; // uproar timer goes down + gBattleMons[gActiveBattler].status2 -= STATUS2_UPROAR_TURN(1); if (WasUnableToUseMove(gActiveBattler)) { CancelMultiTurnMoves(gActiveBattler); - gBattleCommunication[MULTISTRING_CHOOSER] = 1; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_UPROAR_ENDS; } else if (gBattleMons[gActiveBattler].status2 & STATUS2_UPROAR) { - gBattleCommunication[MULTISTRING_CHOOSER] = 0; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_UPROAR_CONTINUES; gBattleMons[gActiveBattler].status2 |= STATUS2_MULTIPLETURNS; } else { - gBattleCommunication[MULTISTRING_CHOOSER] = 1; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_UPROAR_ENDS; CancelMultiTurnMoves(gActiveBattler); } BattleScriptExecute(BattleScript_PrintUproarOverTurns); @@ -890,36 +949,35 @@ u8 DoBattlerEndTurnEffects(void) } } if (effect != 2) - ++gBattleStruct->turnEffectsTracker; + gBattleStruct->turnEffectsTracker++; break; case ENDTURN_THRASH: // thrash if (gBattleMons[gActiveBattler].status2 & STATUS2_LOCK_CONFUSE) { - gBattleMons[gActiveBattler].status2 -= 0x400; + gBattleMons[gActiveBattler].status2 -= STATUS2_LOCK_CONFUSE_TURN(1); if (WasUnableToUseMove(gActiveBattler)) CancelMultiTurnMoves(gActiveBattler); else if (!(gBattleMons[gActiveBattler].status2 & STATUS2_LOCK_CONFUSE) - && (gBattleMons[gActiveBattler].status2 & STATUS2_MULTIPLETURNS)) + && (gBattleMons[gActiveBattler].status2 & STATUS2_MULTIPLETURNS)) { - gBattleMons[gActiveBattler].status2 &= ~(STATUS2_MULTIPLETURNS); + gBattleMons[gActiveBattler].status2 &= ~STATUS2_MULTIPLETURNS; if (!(gBattleMons[gActiveBattler].status2 & STATUS2_CONFUSION)) { gBattleCommunication[MOVE_EFFECT_BYTE] = MOVE_EFFECT_CONFUSION | MOVE_EFFECT_AFFECTS_USER; - SetMoveEffect(1, 0); + SetMoveEffect(TRUE, 0); if (gBattleMons[gActiveBattler].status2 & STATUS2_CONFUSION) BattleScriptExecute(BattleScript_ThrashConfuses); - ++effect; + effect++; } } } - ++gBattleStruct->turnEffectsTracker; + gBattleStruct->turnEffectsTracker++; break; case ENDTURN_DISABLE: // disable if (gDisableStructs[gActiveBattler].disableTimer != 0) { s32 i; - - for (i = 0; i < MAX_MON_MOVES; ++i) + for (i = 0; i < MAX_MON_MOVES; i++) { if (gDisableStructs[gActiveBattler].disabledMove == gBattleMons[gActiveBattler].moves[i]) break; @@ -933,10 +991,10 @@ u8 DoBattlerEndTurnEffects(void) { gDisableStructs[gActiveBattler].disabledMove = MOVE_NONE; BattleScriptExecute(BattleScript_DisabledNoMore); - ++effect; + effect++; } } - ++gBattleStruct->turnEffectsTracker; + gBattleStruct->turnEffectsTracker++; break; case ENDTURN_ENCORE: // encore if (gDisableStructs[gActiveBattler].encoreTimer != 0) @@ -947,56 +1005,56 @@ u8 DoBattlerEndTurnEffects(void) gDisableStructs[gActiveBattler].encoreTimer = 0; } else if (--gDisableStructs[gActiveBattler].encoreTimer == 0 - || gBattleMons[gActiveBattler].pp[gDisableStructs[gActiveBattler].encoredMovePos] == 0) + || gBattleMons[gActiveBattler].pp[gDisableStructs[gActiveBattler].encoredMovePos] == 0) { gDisableStructs[gActiveBattler].encoredMove = MOVE_NONE; gDisableStructs[gActiveBattler].encoreTimer = 0; BattleScriptExecute(BattleScript_EncoredNoMore); - ++effect; + effect++; } } - ++gBattleStruct->turnEffectsTracker; + gBattleStruct->turnEffectsTracker++; break; case ENDTURN_LOCK_ON: // lock-on decrement if (gStatuses3[gActiveBattler] & STATUS3_ALWAYS_HITS) - gStatuses3[gActiveBattler] -= 0x8; - ++gBattleStruct->turnEffectsTracker; + gStatuses3[gActiveBattler] -= STATUS3_ALWAYS_HITS_TURN(1); + gBattleStruct->turnEffectsTracker++; break; case ENDTURN_CHARGE: // charge if (gDisableStructs[gActiveBattler].chargeTimer && --gDisableStructs[gActiveBattler].chargeTimer == 0) gStatuses3[gActiveBattler] &= ~STATUS3_CHARGED_UP; - ++gBattleStruct->turnEffectsTracker; + gBattleStruct->turnEffectsTracker++; break; case ENDTURN_TAUNT: // taunt if (gDisableStructs[gActiveBattler].tauntTimer) - --gDisableStructs[gActiveBattler].tauntTimer; - ++gBattleStruct->turnEffectsTracker; + gDisableStructs[gActiveBattler].tauntTimer--; + gBattleStruct->turnEffectsTracker++; break; case ENDTURN_YAWN: // yawn if (gStatuses3[gActiveBattler] & STATUS3_YAWN) { - gStatuses3[gActiveBattler] -= 0x800; + gStatuses3[gActiveBattler] -= STATUS3_YAWN_TURN(1); if (!(gStatuses3[gActiveBattler] & STATUS3_YAWN) && !(gBattleMons[gActiveBattler].status1 & STATUS1_ANY) && gBattleMons[gActiveBattler].ability != ABILITY_VITAL_SPIRIT && gBattleMons[gActiveBattler].ability != ABILITY_INSOMNIA && !UproarWakeUpCheck(gActiveBattler)) { CancelMultiTurnMoves(gActiveBattler); - gBattleMons[gActiveBattler].status1 |= (Random() & 3) + 2; - BtlController_EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1); + gBattleMons[gActiveBattler].status1 |= STATUS1_SLEEP_TURN((Random() & 3) + 2); // 2-5 turns of sleep + BtlController_EmitSetMonData(BUFFER_A, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1); MarkBattlerForControllerExec(gActiveBattler); gEffectBattler = gActiveBattler; BattleScriptExecute(BattleScript_YawnMakesAsleep); - ++effect; + effect++; } } - ++gBattleStruct->turnEffectsTracker; + gBattleStruct->turnEffectsTracker++; break; case ENDTURN_BATTLER_COUNT: // done gBattleStruct->turnEffectsTracker = 0; - ++gBattleStruct->turnEffectsBattlerId; + gBattleStruct->turnEffectsBattlerId++; break; } - if (effect) + if (effect != 0) return effect; } } @@ -1007,6 +1065,7 @@ u8 DoBattlerEndTurnEffects(void) bool8 HandleWishPerishSongOnTurnEnd(void) { gHitMarker |= (HITMARKER_GRUDGE | HITMARKER_SKIP_DMG_TRACK); + switch (gBattleStruct->wishPerishSongState) { case 0: @@ -1015,19 +1074,22 @@ bool8 HandleWishPerishSongOnTurnEnd(void) gActiveBattler = gBattleStruct->wishPerishSongBattlerId; if (gAbsentBattlerFlags & gBitTable[gActiveBattler]) { - ++gBattleStruct->wishPerishSongBattlerId; + gBattleStruct->wishPerishSongBattlerId++; continue; } - ++gBattleStruct->wishPerishSongBattlerId; + + gBattleStruct->wishPerishSongBattlerId++; if (gWishFutureKnock.futureSightCounter[gActiveBattler] != 0 && --gWishFutureKnock.futureSightCounter[gActiveBattler] == 0 && gBattleMons[gActiveBattler].hp != 0) { if (gWishFutureKnock.futureSightMove[gActiveBattler] == MOVE_FUTURE_SIGHT) - gBattleCommunication[MULTISTRING_CHOOSER] = 0; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_FUTURE_SIGHT; else - gBattleCommunication[MULTISTRING_CHOOSER] = 1; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_DOOM_DESIRE; + PREPARE_MOVE_BUFFER(gBattleTextBuff1, gWishFutureKnock.futureSightMove[gActiveBattler]); + gBattlerTarget = gActiveBattler; gBattlerAttacker = gWishFutureKnock.futureSightAttacker[gActiveBattler]; gBattleMoveDamage = gWishFutureKnock.futureSightDmg[gActiveBattler]; @@ -1038,7 +1100,6 @@ bool8 HandleWishPerishSongOnTurnEnd(void) } { u8 *state = &gBattleStruct->wishPerishSongState; - *state = 1; gBattleStruct->wishPerishSongBattlerId = 0; } @@ -1049,10 +1110,10 @@ bool8 HandleWishPerishSongOnTurnEnd(void) gActiveBattler = gBattlerAttacker = gBattlerByTurnOrder[gBattleStruct->wishPerishSongBattlerId]; if (gAbsentBattlerFlags & gBitTable[gActiveBattler]) { - ++gBattleStruct->wishPerishSongBattlerId; + gBattleStruct->wishPerishSongBattlerId++; continue; } - ++gBattleStruct->wishPerishSongBattlerId; + gBattleStruct->wishPerishSongBattlerId++; if (gStatuses3[gActiveBattler] & STATUS3_PERISH_SONG) { PREPARE_BYTE_NUMBER_BUFFER(gBattleTextBuff1, 1, gDisableStructs[gActiveBattler].perishSongTimer); @@ -1064,7 +1125,7 @@ bool8 HandleWishPerishSongOnTurnEnd(void) } else { - --gDisableStructs[gActiveBattler].perishSongTimer; + gDisableStructs[gActiveBattler].perishSongTimer--; gBattlescriptCurrInstr = BattleScript_PerishSongCountGoesDown; } BattleScriptExecute(gBattlescriptCurrInstr); @@ -1073,7 +1134,9 @@ bool8 HandleWishPerishSongOnTurnEnd(void) } break; } + gHitMarker &= ~(HITMARKER_GRUDGE | HITMARKER_SKIP_DMG_TRACK); + return FALSE; } @@ -1090,8 +1153,8 @@ bool8 HandleFaintedMonActions(void) { case 0: gBattleStruct->faintedActionsBattlerId = 0; - ++gBattleStruct->faintedActionsState; - for (i = 0; i < gBattlersCount; ++i) + gBattleStruct->faintedActionsState++; + for (i = 0; i < gBattlersCount; i++) { if (gAbsentBattlerFlags & gBitTable[i] && !HasNoMonsToSwitch(i, PARTY_SIZE, PARTY_SIZE)) gAbsentBattlerFlags &= ~(gBitTable[i]); @@ -1121,7 +1184,7 @@ bool8 HandleFaintedMonActions(void) break; case 3: gBattleStruct->faintedActionsBattlerId = 0; - ++gBattleStruct->faintedActionsState; + gBattleStruct->faintedActionsState++; // fall through case 4: do @@ -1144,9 +1207,12 @@ bool8 HandleFaintedMonActions(void) gBattleStruct->faintedActionsState = 4; break; case 6: - if (AbilityBattleEffects(ABILITYEFFECT_INTIMIDATE1, 0, 0, 0, 0) || AbilityBattleEffects(ABILITYEFFECT_TRACE, 0, 0, 0, 0) || ItemBattleEffects(1, 0, TRUE) || AbilityBattleEffects(ABILITYEFFECT_FORECAST, 0, 0, 0, 0)) + if (AbilityBattleEffects(ABILITYEFFECT_INTIMIDATE1, 0, 0, 0, 0) + || AbilityBattleEffects(ABILITYEFFECT_TRACE, 0, 0, 0, 0) + || ItemBattleEffects(ITEMEFFECT_NORMAL, 0, TRUE) + || AbilityBattleEffects(ABILITYEFFECT_FORECAST, 0, 0, 0, 0)) return TRUE; - ++gBattleStruct->faintedActionsState; + gBattleStruct->faintedActionsState++; break; case FAINTED_ACTIONS_MAX_CASE: break; @@ -1158,10 +1224,11 @@ bool8 HandleFaintedMonActions(void) void TryClearRageStatuses(void) { s32 i; - - for (i = 0; i < gBattlersCount; ++i) + for (i = 0; i < gBattlersCount; i++) + { if ((gBattleMons[i].status2 & STATUS2_RAGE) && gChosenMoveByBattler[i] != MOVE_RAGE) - gBattleMons[i].status2 &= ~(STATUS2_RAGE); + gBattleMons[i].status2 &= ~STATUS2_RAGE; + } } enum @@ -1188,38 +1255,36 @@ u8 AtkCanceller_UnableToUseMove(void) { u8 effect = 0; s32 *bideDmg = &gBattleScripting.bideDmg; - do { switch (gBattleStruct->atkCancellerTracker) { case CANCELLER_FLAGS: // flags clear - gBattleMons[gBattlerAttacker].status2 &= ~(STATUS2_DESTINY_BOND); - gStatuses3[gBattlerAttacker] &= ~(STATUS3_GRUDGE); - ++gBattleStruct->atkCancellerTracker; + gBattleMons[gBattlerAttacker].status2 &= ~STATUS2_DESTINY_BOND; + gStatuses3[gBattlerAttacker] &= ~STATUS3_GRUDGE; + gBattleStruct->atkCancellerTracker++; break; case CANCELLER_ASLEEP: // check being asleep if (gBattleMons[gBattlerAttacker].status1 & STATUS1_SLEEP) { if (UproarWakeUpCheck(gBattlerAttacker)) { - gBattleMons[gBattlerAttacker].status1 &= ~(STATUS1_SLEEP); - gBattleMons[gBattlerAttacker].status2 &= ~(STATUS2_NIGHTMARE); + gBattleMons[gBattlerAttacker].status1 &= ~STATUS1_SLEEP; + gBattleMons[gBattlerAttacker].status2 &= ~STATUS2_NIGHTMARE; BattleScriptPushCursor(); - gBattleCommunication[MULTISTRING_CHOOSER] = 1; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_WOKE_UP_UPROAR; gBattlescriptCurrInstr = BattleScript_MoveUsedWokeUp; effect = 2; } else { u8 toSub; - if (gBattleMons[gBattlerAttacker].ability == ABILITY_EARLY_BIRD) toSub = 2; else toSub = 1; if ((gBattleMons[gBattlerAttacker].status1 & STATUS1_SLEEP) < toSub) - gBattleMons[gBattlerAttacker].status1 &= ~(STATUS1_SLEEP); + gBattleMons[gBattlerAttacker].status1 &= ~STATUS1_SLEEP; else gBattleMons[gBattlerAttacker].status1 -= toSub; if (gBattleMons[gBattlerAttacker].status1 & STATUS1_SLEEP) @@ -1233,15 +1298,15 @@ u8 AtkCanceller_UnableToUseMove(void) } else { - gBattleMons[gBattlerAttacker].status2 &= ~(STATUS2_NIGHTMARE); + gBattleMons[gBattlerAttacker].status2 &= ~STATUS2_NIGHTMARE; BattleScriptPushCursor(); - gBattleCommunication[MULTISTRING_CHOOSER] = 0; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_WOKE_UP; gBattlescriptCurrInstr = BattleScript_MoveUsedWokeUp; effect = 2; } } } - ++gBattleStruct->atkCancellerTracker; + gBattleStruct->atkCancellerTracker++; break; case CANCELLER_FROZEN: // check being frozen if (gBattleMons[gBattlerAttacker].status1 & STATUS1_FREEZE) @@ -1255,56 +1320,56 @@ u8 AtkCanceller_UnableToUseMove(void) } else { - ++gBattleStruct->atkCancellerTracker; + gBattleStruct->atkCancellerTracker++; break; } } else // unfreeze { - gBattleMons[gBattlerAttacker].status1 &= ~(STATUS1_FREEZE); + gBattleMons[gBattlerAttacker].status1 &= ~STATUS1_FREEZE; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_MoveUsedUnfroze; - gBattleCommunication[MULTISTRING_CHOOSER] = 0; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_DEFROSTED; } effect = 2; } - ++gBattleStruct->atkCancellerTracker; + gBattleStruct->atkCancellerTracker++; break; case CANCELLER_TRUANT: // truant if (gBattleMons[gBattlerAttacker].ability == ABILITY_TRUANT && gDisableStructs[gBattlerAttacker].truantCounter) { CancelMultiTurnMoves(gBattlerAttacker); gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; - gBattleCommunication[MULTISTRING_CHOOSER] = 0; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_LOAFING; gBattlescriptCurrInstr = BattleScript_MoveUsedLoafingAround; gMoveResultFlags |= MOVE_RESULT_MISSED; effect = 1; } - ++gBattleStruct->atkCancellerTracker; + gBattleStruct->atkCancellerTracker++; break; case CANCELLER_RECHARGE: // recharge if (gBattleMons[gBattlerAttacker].status2 & STATUS2_RECHARGE) { - gBattleMons[gBattlerAttacker].status2 &= ~(STATUS2_RECHARGE); + gBattleMons[gBattlerAttacker].status2 &= ~STATUS2_RECHARGE; gDisableStructs[gBattlerAttacker].rechargeTimer = 0; CancelMultiTurnMoves(gBattlerAttacker); gBattlescriptCurrInstr = BattleScript_MoveUsedMustRecharge; gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; effect = 1; } - ++gBattleStruct->atkCancellerTracker; + gBattleStruct->atkCancellerTracker++; break; case CANCELLER_FLINCH: // flinch if (gBattleMons[gBattlerAttacker].status2 & STATUS2_FLINCHED) { - gBattleMons[gBattlerAttacker].status2 &= ~(STATUS2_FLINCHED); + gBattleMons[gBattlerAttacker].status2 &= ~STATUS2_FLINCHED; gProtectStructs[gBattlerAttacker].flinchImmobility = 1; CancelMultiTurnMoves(gBattlerAttacker); gBattlescriptCurrInstr = BattleScript_MoveUsedFlinched; gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; effect = 1; } - ++gBattleStruct->atkCancellerTracker; + gBattleStruct->atkCancellerTracker++; break; case CANCELLER_DISABLED: // disabled move if (gDisableStructs[gBattlerAttacker].disabledMove == gCurrentMove && gDisableStructs[gBattlerAttacker].disabledMove != MOVE_NONE) @@ -1316,7 +1381,7 @@ u8 AtkCanceller_UnableToUseMove(void) gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; effect = 1; } - ++gBattleStruct->atkCancellerTracker; + gBattleStruct->atkCancellerTracker++; break; case CANCELLER_TAUNTED: // taunt if (gDisableStructs[gBattlerAttacker].tauntTimer && gBattleMoves[gCurrentMove].power == 0) @@ -1327,7 +1392,7 @@ u8 AtkCanceller_UnableToUseMove(void) gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; effect = 1; } - ++gBattleStruct->atkCancellerTracker; + gBattleStruct->atkCancellerTracker++; break; case CANCELLER_IMPRISONED: // imprisoned if (GetImprisonedMovesCount(gBattlerAttacker, gCurrentMove)) @@ -1338,22 +1403,24 @@ u8 AtkCanceller_UnableToUseMove(void) gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; effect = 1; } - ++gBattleStruct->atkCancellerTracker; + gBattleStruct->atkCancellerTracker++; break; case CANCELLER_CONFUSED: // confusion if (gBattleMons[gBattlerAttacker].status2 & STATUS2_CONFUSION) { - --gBattleMons[gBattlerAttacker].status2; + gBattleMons[gBattlerAttacker].status2 -= STATUS2_CONFUSION_TURN(1); if (gBattleMons[gBattlerAttacker].status2 & STATUS2_CONFUSION) { if (Random() & 1) { - gBattleCommunication[MULTISTRING_CHOOSER] = 0; + // The MULTISTRING_CHOOSER is used here as a bool to signal + // to BattleScript_MoveUsedIsConfused whether or not damage was taken + gBattleCommunication[MULTISTRING_CHOOSER] = FALSE; BattleScriptPushCursor(); } else // confusion dmg { - gBattleCommunication[MULTISTRING_CHOOSER] = 1; + gBattleCommunication[MULTISTRING_CHOOSER] = TRUE; gBattlerTarget = gBattlerAttacker; gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[gBattlerAttacker], &gBattleMons[gBattlerAttacker], MOVE_POUND, 0, 40, 0, gBattlerAttacker, gBattlerAttacker); gProtectStructs[gBattlerAttacker].confusionSelfDmg = 1; @@ -1368,17 +1435,19 @@ u8 AtkCanceller_UnableToUseMove(void) } effect = 1; } - ++gBattleStruct->atkCancellerTracker; + gBattleStruct->atkCancellerTracker++; break; case CANCELLER_PARALYSED: // paralysis if ((gBattleMons[gBattlerAttacker].status1 & STATUS1_PARALYSIS) && (Random() % 4) == 0) { gProtectStructs[gBattlerAttacker].prlzImmobility = 1; + // This is removed in FRLG and Emerald for some reason + //CancelMultiTurnMoves(gBattlerAttacker); gBattlescriptCurrInstr = BattleScript_MoveUsedIsParalyzed; gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; effect = 1; } - ++gBattleStruct->atkCancellerTracker; + gBattleStruct->atkCancellerTracker++; break; case CANCELLER_GHOST: // GHOST in pokemon tower if (IS_BATTLE_TYPE_GHOST_WITHOUT_SCOPE(gBattleTypeFlags)) @@ -1390,7 +1459,7 @@ u8 AtkCanceller_UnableToUseMove(void) gBattleCommunication[MULTISTRING_CHOOSER] = 0; effect = 1; } - ++gBattleStruct->atkCancellerTracker; + gBattleStruct->atkCancellerTracker++; break; case CANCELLER_IN_LOVE: // infatuation if (gBattleMons[gBattlerAttacker].status2 & STATUS2_INFATUATION) @@ -1410,25 +1479,27 @@ u8 AtkCanceller_UnableToUseMove(void) gBattlescriptCurrInstr = BattleScript_MoveUsedIsInLove; effect = 1; } - ++gBattleStruct->atkCancellerTracker; + gBattleStruct->atkCancellerTracker++; break; case CANCELLER_BIDE: // bide if (gBattleMons[gBattlerAttacker].status2 & STATUS2_BIDE) { - gBattleMons[gBattlerAttacker].status2 -= 0x100; + gBattleMons[gBattlerAttacker].status2 -= STATUS2_BIDE_TURN(1); if (gBattleMons[gBattlerAttacker].status2 & STATUS2_BIDE) { gBattlescriptCurrInstr = BattleScript_BideStoringEnergy; } else { + // This is removed in FRLG and Emerald for some reason + //gBattleMons[gBattlerAttacker].status2 &= ~STATUS2_MULTIPLETURNS; if (gTakenDmg[gBattlerAttacker]) { gCurrentMove = MOVE_BIDE; *bideDmg = gTakenDmg[gBattlerAttacker] * 2; gBattlerTarget = gTakenDmgByBattler[gBattlerAttacker]; if (gAbsentBattlerFlags & gBitTable[gBattlerTarget]) - gBattlerTarget = GetMoveTarget(MOVE_BIDE, 1); + gBattlerTarget = GetMoveTarget(MOVE_BIDE, MOVE_TARGET_SELECTED + 1); gBattlescriptCurrInstr = BattleScript_BideAttack; } else @@ -1438,31 +1509,32 @@ u8 AtkCanceller_UnableToUseMove(void) } effect = 1; } - ++gBattleStruct->atkCancellerTracker; + gBattleStruct->atkCancellerTracker++; break; case CANCELLER_THAW: // move thawing if (gBattleMons[gBattlerAttacker].status1 & STATUS1_FREEZE) { if (gBattleMoves[gCurrentMove].effect == EFFECT_THAW_HIT) { - gBattleMons[gBattlerAttacker].status1 &= ~(STATUS1_FREEZE); + gBattleMons[gBattlerAttacker].status1 &= ~STATUS1_FREEZE; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_MoveUsedUnfroze; - gBattleCommunication[MULTISTRING_CHOOSER] = 1; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_DEFROSTED_BY_MOVE; } effect = 2; } - ++gBattleStruct->atkCancellerTracker; + gBattleStruct->atkCancellerTracker++; break; case CANCELLER_END: break; } - } while (gBattleStruct->atkCancellerTracker != CANCELLER_END && !effect); + } while (gBattleStruct->atkCancellerTracker != CANCELLER_END && effect == 0); + if (effect == 2) { gActiveBattler = gBattlerAttacker; - BtlController_EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1); + BtlController_EmitSetMonData(BUFFER_A, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1); MarkBattlerForControllerExec(gActiveBattler); } return effect; @@ -1475,59 +1547,56 @@ bool8 HasNoMonsToSwitch(u8 battler, u8 partyIdBattlerOn1, u8 partyIdBattlerOn2) s32 i; if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) - { return FALSE; + + if (gBattleTypeFlags & BATTLE_TYPE_MULTI) + { + flankId = GetBattlerMultiplayerId(battler); + if (GetBattlerSide(battler) == B_SIDE_PLAYER) + party = gPlayerParty; + else + party = gEnemyParty; + + playerId = GetLinkTrainerFlankId(flankId); + for (i = playerId * MULTI_PARTY_SIZE; i < playerId * MULTI_PARTY_SIZE + MULTI_PARTY_SIZE; i++) + { + if (GetMonData(&party[i], MON_DATA_HP) != 0 + && GetMonData(&party[i], MON_DATA_SPECIES2) != SPECIES_NONE + && GetMonData(&party[i], MON_DATA_SPECIES2) != SPECIES_EGG) + break; + } + return (i == playerId * MULTI_PARTY_SIZE + MULTI_PARTY_SIZE); } else { - if (gBattleTypeFlags & BATTLE_TYPE_MULTI) + if (GetBattlerSide(battler) == B_SIDE_OPPONENT) { - playerId = GetBattlerMultiplayerId(battler); - if (GetBattlerSide(battler) == B_SIDE_PLAYER) - party = gPlayerParty; - else - party = gEnemyParty; - flankId = GetLinkTrainerFlankId(playerId); - for (i = flankId * 3; i < flankId * 3 + 3; ++i) - { - if (GetMonData(&party[i], MON_DATA_HP) != 0 - && GetMonData(&party[i], MON_DATA_SPECIES2) != SPECIES_NONE - && GetMonData(&party[i], MON_DATA_SPECIES2) != SPECIES_EGG) - break; - } - return (i == flankId * 3 + 3); + flankId = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); + playerId = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT); + party = gEnemyParty; } else { - if (GetBattlerSide(battler) == B_SIDE_OPPONENT) - { - playerId = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); - flankId = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT); - party = gEnemyParty; - } - else - { - playerId = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); - flankId = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT); - party = gPlayerParty; - } - if (partyIdBattlerOn1 == PARTY_SIZE) - partyIdBattlerOn1 = gBattlerPartyIndexes[playerId]; - if (partyIdBattlerOn2 == PARTY_SIZE) - partyIdBattlerOn2 = gBattlerPartyIndexes[flankId]; - for (i = 0; i < PARTY_SIZE; ++i) - { - if (GetMonData(&party[i], MON_DATA_HP) != 0 - && GetMonData(&party[i], MON_DATA_SPECIES2) != SPECIES_NONE - && GetMonData(&party[i], MON_DATA_SPECIES2) != SPECIES_EGG - && i != partyIdBattlerOn1 - && i != partyIdBattlerOn2 - && i != *(gBattleStruct->monToSwitchIntoId + playerId) - && i != flankId[gBattleStruct->monToSwitchIntoId]) - break; - } - return (i == PARTY_SIZE); + flankId = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); + playerId = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT); + party = gPlayerParty; } + + if (partyIdBattlerOn1 == PARTY_SIZE) + partyIdBattlerOn1 = gBattlerPartyIndexes[flankId]; + if (partyIdBattlerOn2 == PARTY_SIZE) + partyIdBattlerOn2 = gBattlerPartyIndexes[playerId]; + + for (i = 0; i < PARTY_SIZE; i++) + { + if (GetMonData(&party[i], MON_DATA_HP) != 0 + && GetMonData(&party[i], MON_DATA_SPECIES2) != SPECIES_NONE + && GetMonData(&party[i], MON_DATA_SPECIES2) != SPECIES_EGG + && i != partyIdBattlerOn1 && i != partyIdBattlerOn2 + && i != *(gBattleStruct->monToSwitchIntoId + flankId) && i != playerId[gBattleStruct->monToSwitchIntoId]) + break; + } + return (i == PARTY_SIZE); } } @@ -1587,24 +1656,31 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA if (gBattlerAttacker >= gBattlersCount) gBattlerAttacker = battler; + if (GetBattlerSide(gBattlerAttacker) == B_SIDE_PLAYER) pokeAtk = &gPlayerParty[gBattlerPartyIndexes[gBattlerAttacker]]; else pokeAtk = &gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker]]; + if (gBattlerTarget >= gBattlersCount) gBattlerTarget = battler; + if (GetBattlerSide(gBattlerTarget) == B_SIDE_PLAYER) pokeDef = &gPlayerParty[gBattlerPartyIndexes[gBattlerTarget]]; else pokeDef = &gEnemyParty[gBattlerPartyIndexes[gBattlerTarget]]; + speciesAtk = GetMonData(pokeAtk, MON_DATA_SPECIES); pidAtk = GetMonData(pokeAtk, MON_DATA_PERSONALITY); + speciesDef = GetMonData(pokeDef, MON_DATA_SPECIES); pidDef = GetMonData(pokeDef, MON_DATA_PERSONALITY); + if (!(gBattleTypeFlags & BATTLE_TYPE_SAFARI)) // Why isn't that check done at the beginning? { u8 moveType; s32 i; + u16 move; u8 side; u8 target1; @@ -1612,12 +1688,18 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA gLastUsedAbility = special; else gLastUsedAbility = gBattleMons[battler].ability; - if (!moveArg) - moveArg = gCurrentMove; - GET_MOVE_TYPE(moveArg, moveType); + + if (moveArg) + move = moveArg; + else + move = gCurrentMove; + + GET_MOVE_TYPE(move, moveType); + if (IS_BATTLE_TYPE_GHOST_WITHOUT_SCOPE(gBattleTypeFlags) && (gLastUsedAbility == ABILITY_INTIMIDATE || gLastUsedAbility == ABILITY_TRACE)) return effect; + switch (caseID) { case ABILITYEFFECT_ON_SWITCHIN: // 0 @@ -1636,29 +1718,29 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA gBattleWeather = (B_WEATHER_RAIN_TEMPORARY | B_WEATHER_RAIN_PERMANENT); gBattleScripting.animArg1 = B_ANIM_RAIN_CONTINUES; gBattleScripting.battler = battler; - ++effect; + effect++; } break; case WEATHER_SANDSTORM: if (!(gBattleWeather & B_WEATHER_SANDSTORM)) { - gBattleWeather = (B_WEATHER_SANDSTORM_PERMANENT | B_WEATHER_SANDSTORM_TEMPORARY); + gBattleWeather = B_WEATHER_SANDSTORM; gBattleScripting.animArg1 = B_ANIM_SANDSTORM_CONTINUES; gBattleScripting.battler = battler; - ++effect; + effect++; } break; case WEATHER_DROUGHT: if (!(gBattleWeather & B_WEATHER_SUN)) { - gBattleWeather = (B_WEATHER_SUN_PERMANENT | B_WEATHER_SUN_TEMPORARY); + gBattleWeather = B_WEATHER_SUN; gBattleScripting.animArg1 = B_ANIM_SUN_CONTINUES; gBattleScripting.battler = battler; - ++effect; + effect++; } break; } - if (effect) + if (effect != 0) { gBattleCommunication[MULTISTRING_CHOOSER] = GetCurrentWeather(); BattleScriptPushCursorAndCallback(BattleScript_OverworldWeatherStarts); @@ -1670,25 +1752,25 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA gBattleWeather = (B_WEATHER_RAIN_PERMANENT | B_WEATHER_RAIN_TEMPORARY); BattleScriptPushCursorAndCallback(BattleScript_DrizzleActivates); gBattleScripting.battler = battler; - ++effect; + effect++; } break; case ABILITY_SAND_STREAM: if (!(gBattleWeather & B_WEATHER_SANDSTORM_PERMANENT)) { - gBattleWeather = (B_WEATHER_SANDSTORM_PERMANENT | B_WEATHER_SANDSTORM_TEMPORARY); + gBattleWeather = B_WEATHER_SANDSTORM; BattleScriptPushCursorAndCallback(BattleScript_SandstreamActivates); gBattleScripting.battler = battler; - ++effect; + effect++; } break; case ABILITY_DROUGHT: if (!(gBattleWeather & B_WEATHER_SUN_PERMANENT)) { - gBattleWeather = (B_WEATHER_SUN_PERMANENT | B_WEATHER_SUN_TEMPORARY); + gBattleWeather = B_WEATHER_SUN; BattleScriptPushCursorAndCallback(BattleScript_DroughtActivates); gBattleScripting.battler = battler; - ++effect; + effect++; } break; case ABILITY_INTIMIDATE: @@ -1717,7 +1799,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA case ABILITY_CLOUD_NINE: case ABILITY_AIR_LOCK: { - for (target1 = 0; target1 < gBattlersCount; ++target1) + for (target1 = 0; target1 < gBattlersCount; target1++) { effect = CastformDataTypeChange(target1); if (effect != 0) @@ -1748,7 +1830,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; gBattleMoveDamage *= -1; - ++effect; + effect++; } break; case ABILITY_SHED_SKIN: @@ -1765,23 +1847,23 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA if (gBattleMons[battler].status1 & STATUS1_FREEZE) StringCopy(gBattleTextBuff1, gStatusConditionString_IceJpn); gBattleMons[battler].status1 = 0; - gBattleMons[battler].status2 &= ~(STATUS2_NIGHTMARE); // fix nightmare glitch + gBattleMons[battler].status2 &= ~STATUS2_NIGHTMARE; // fix nightmare glitch gBattleScripting.battler = gActiveBattler = battler; BattleScriptPushCursorAndCallback(BattleScript_ShedSkinActivates); - BtlController_EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[battler].status1); + BtlController_EmitSetMonData(BUFFER_A, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[battler].status1); MarkBattlerForControllerExec(gActiveBattler); - ++effect; + effect++; } break; case ABILITY_SPEED_BOOST: - if (gBattleMons[battler].statStages[STAT_SPEED] < 0xC && gDisableStructs[battler].isFirstTurn != 2) + if (gBattleMons[battler].statStages[STAT_SPEED] < MAX_STAT_STAGE && gDisableStructs[battler].isFirstTurn != 2) { - ++gBattleMons[battler].statStages[STAT_SPEED]; - gBattleScripting.animArg1 = 0x11; + gBattleMons[battler].statStages[STAT_SPEED]++; + gBattleScripting.animArg1 = 14 + STAT_SPEED; gBattleScripting.animArg2 = 0; BattleScriptPushCursorAndCallback(BattleScript_SpeedBoostActivates); gBattleScripting.battler = battler; - ++effect; + effect++; } break; case ABILITY_TRUANT: @@ -1793,10 +1875,12 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA case ABILITYEFFECT_MOVES_BLOCK: // 2 if (gLastUsedAbility == ABILITY_SOUNDPROOF) { - for (i = 0; sSoundMovesTable[i] != 0xFFFF; ++i) - if (sSoundMovesTable[i] == moveArg) + for (i = 0; sSoundMovesTable[i] != SOUND_MOVES_END; i++) + { + if (sSoundMovesTable[i] == move) break; - if (sSoundMovesTable[i] != 0xFFFF) + } + if (sSoundMovesTable[i] != SOUND_MOVES_END) { if (gBattleMons[gBattlerAttacker].status2 & STATUS2_MULTIPLETURNS) gHitMarker |= HITMARKER_NO_PPDEDUCT; @@ -1806,27 +1890,29 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA } break; case ABILITYEFFECT_ABSORBING: // 3 - if (moveArg) + if (move) { switch (gLastUsedAbility) { case ABILITY_VOLT_ABSORB: - if (moveType == TYPE_ELECTRIC && gBattleMoves[moveArg].power != 0) + if (moveType == TYPE_ELECTRIC && gBattleMoves[move].power != 0) { if (gProtectStructs[gBattlerAttacker].notFirstStrike) gBattlescriptCurrInstr = BattleScript_MoveHPDrain; else gBattlescriptCurrInstr = BattleScript_MoveHPDrain_PPLoss; + effect = 1; } break; case ABILITY_WATER_ABSORB: - if (moveType == TYPE_WATER && gBattleMoves[moveArg].power != 0) + if (moveType == TYPE_WATER && gBattleMoves[move].power != 0) { if (gProtectStructs[gBattlerAttacker].notFirstStrike) gBattlescriptCurrInstr = BattleScript_MoveHPDrain; else gBattlescriptCurrInstr = BattleScript_MoveHPDrain_PPLoss; + effect = 1; } break; @@ -1835,21 +1921,23 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA { if (!(gBattleResources->flags->flags[battler] & RESOURCE_FLAG_FLASH_FIRE)) { - gBattleCommunication[MULTISTRING_CHOOSER] = 0; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_FLASH_FIRE_BOOST; if (gProtectStructs[gBattlerAttacker].notFirstStrike) gBattlescriptCurrInstr = BattleScript_FlashFireBoost; else gBattlescriptCurrInstr = BattleScript_FlashFireBoost_PPLoss; + gBattleResources->flags->flags[battler] |= RESOURCE_FLAG_FLASH_FIRE; effect = 2; } else { - gBattleCommunication[MULTISTRING_CHOOSER] = 1; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_FLASH_FIRE_NO_BOOST; if (gProtectStructs[gBattlerAttacker].notFirstStrike) gBattlescriptCurrInstr = BattleScript_FlashFireBoost; else gBattlescriptCurrInstr = BattleScript_FlashFireBoost_PPLoss; + effect = 2; } } @@ -1879,8 +1967,8 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA { case ABILITY_COLOR_CHANGE: if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) - && moveArg != MOVE_STRUGGLE - && gBattleMoves[moveArg].power != 0 + && move != MOVE_STRUGGLE + && gBattleMoves[move].power != 0 && TARGET_TURN_DAMAGED && !IS_BATTLER_OF_TYPE(battler, moveType) && gBattleMons[battler].hp != 0) @@ -1889,7 +1977,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA PREPARE_TYPE_BUFFER(gBattleTextBuff1, moveType); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_ColorChangeActivates; - ++effect; + effect++; } break; case ABILITY_ROUGH_SKIN: @@ -1897,14 +1985,14 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA && gBattleMons[gBattlerAttacker].hp != 0 && !gProtectStructs[gBattlerAttacker].confusionSelfDmg && TARGET_TURN_DAMAGED - && (gBattleMoves[moveArg].flags & FLAG_MAKES_CONTACT)) + && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT)) { gBattleMoveDamage = gBattleMons[gBattlerAttacker].maxHP / 16; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_RoughSkinActivates; - ++effect; + effect++; } break; case ABILITY_EFFECT_SPORE: @@ -1912,20 +2000,22 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA && gBattleMons[gBattlerAttacker].hp != 0 && !gProtectStructs[gBattlerAttacker].confusionSelfDmg && TARGET_TURN_DAMAGED - && (gBattleMoves[moveArg].flags & FLAG_MAKES_CONTACT) + && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) && (Random() % 10) == 0) { do + { gBattleCommunication[MOVE_EFFECT_BYTE] = Random() & 3; - while (gBattleCommunication[MOVE_EFFECT_BYTE] == 0); + } while (gBattleCommunication[MOVE_EFFECT_BYTE] == 0); if (gBattleCommunication[MOVE_EFFECT_BYTE] == MOVE_EFFECT_BURN) gBattleCommunication[MOVE_EFFECT_BYTE] += 2; // 5 MOVE_EFFECT_PARALYSIS + gBattleCommunication[MOVE_EFFECT_BYTE] += MOVE_EFFECT_AFFECTS_USER; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_ApplySecondaryEffect; gHitMarker |= HITMARKER_IGNORE_SAFEGUARD; - ++effect; + effect++; } break; case ABILITY_POISON_POINT: @@ -1933,14 +2023,14 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA && gBattleMons[gBattlerAttacker].hp != 0 && !gProtectStructs[gBattlerAttacker].confusionSelfDmg && TARGET_TURN_DAMAGED - && (gBattleMoves[moveArg].flags & FLAG_MAKES_CONTACT) + && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) && (Random() % 3) == 0) { gBattleCommunication[MOVE_EFFECT_BYTE] = MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_POISON; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_ApplySecondaryEffect; gHitMarker |= HITMARKER_IGNORE_SAFEGUARD; - ++effect; + effect++; } break; case ABILITY_STATIC: @@ -1948,21 +2038,21 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA && gBattleMons[gBattlerAttacker].hp != 0 && !gProtectStructs[gBattlerAttacker].confusionSelfDmg && TARGET_TURN_DAMAGED - && (gBattleMoves[moveArg].flags & FLAG_MAKES_CONTACT) + && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) && (Random() % 3) == 0) { gBattleCommunication[MOVE_EFFECT_BYTE] = MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_PARALYSIS; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_ApplySecondaryEffect; gHitMarker |= HITMARKER_IGNORE_SAFEGUARD; - ++effect; + effect++; } break; case ABILITY_FLAME_BODY: if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && gBattleMons[gBattlerAttacker].hp != 0 && !gProtectStructs[gBattlerAttacker].confusionSelfDmg - && (gBattleMoves[moveArg].flags & FLAG_MAKES_CONTACT) + && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) && TARGET_TURN_DAMAGED && (Random() % 3) == 0) { @@ -1970,14 +2060,14 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_ApplySecondaryEffect; gHitMarker |= HITMARKER_IGNORE_SAFEGUARD; - ++effect; + effect++; } break; case ABILITY_CUTE_CHARM: if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && gBattleMons[gBattlerAttacker].hp != 0 && !gProtectStructs[gBattlerAttacker].confusionSelfDmg - && (gBattleMoves[moveArg].flags & FLAG_MAKES_CONTACT) + && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) && TARGET_TURN_DAMAGED && gBattleMons[gBattlerTarget].hp != 0 && (Random() % 3) == 0 @@ -1990,13 +2080,13 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA gBattleMons[gBattlerAttacker].status2 |= STATUS2_INFATUATED_WITH(gBattlerTarget); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_CuteCharmActivates; - ++effect; + effect++; } break; } break; case ABILITYEFFECT_IMMUNITY: // 5 - for (battler = 0; battler < gBattlersCount; ++battler) + for (battler = 0; battler < gBattlersCount; battler++) { switch (gBattleMons[battler].ability) { @@ -2025,7 +2115,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA case ABILITY_VITAL_SPIRIT: if (gBattleMons[battler].status1 & STATUS1_SLEEP) { - gBattleMons[battler].status2 &= ~(STATUS2_NIGHTMARE); + gBattleMons[battler].status2 &= ~STATUS2_NIGHTMARE; StringCopy(gBattleTextBuff1, gStatusConditionString_SleepJpn); effect = 1; } @@ -2052,7 +2142,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA } break; } - if (effect) + if (effect != 0) { switch (effect) { @@ -2060,10 +2150,10 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA gBattleMons[battler].status1 = 0; break; case 2: // get rid of confusion - gBattleMons[battler].status2 &= ~(STATUS2_CONFUSION); + gBattleMons[battler].status2 &= ~STATUS2_CONFUSION; break; case 3: // get rid of infatuation - gBattleMons[battler].status2 &= ~(STATUS2_INFATUATION); + gBattleMons[battler].status2 &= ~STATUS2_INFATUATION; break; } @@ -2071,19 +2161,19 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA gBattlescriptCurrInstr = BattleScript_AbilityCuredStatus; gBattleScripting.battler = battler; gActiveBattler = battler; - BtlController_EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1); + BtlController_EmitSetMonData(BUFFER_A, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1); MarkBattlerForControllerExec(gActiveBattler); return effect; } } break; case ABILITYEFFECT_FORECAST: // 6 - for (battler = 0; battler < gBattlersCount; ++battler) + for (battler = 0; battler < gBattlersCount; battler++) { if (gBattleMons[battler].ability == ABILITY_FORECAST) { effect = CastformDataTypeChange(battler); - if (effect) + if (effect != 0) { BattleScriptPushCursorAndCallback(BattleScript_CastformChange); gBattleScripting.battler = battler; @@ -2096,80 +2186,81 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA case ABILITYEFFECT_SYNCHRONIZE: // 7 if (gLastUsedAbility == ABILITY_SYNCHRONIZE && (gHitMarker & HITMARKER_SYNCHRONISE_EFFECT)) { - gHitMarker &= ~(HITMARKER_SYNCHRONISE_EFFECT); + gHitMarker &= ~HITMARKER_SYNCHRONISE_EFFECT; gBattleStruct->synchronizeMoveEffect &= ~(MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN); if (gBattleStruct->synchronizeMoveEffect == MOVE_EFFECT_TOXIC) gBattleStruct->synchronizeMoveEffect = MOVE_EFFECT_POISON; + gBattleCommunication[MOVE_EFFECT_BYTE] = gBattleStruct->synchronizeMoveEffect + MOVE_EFFECT_AFFECTS_USER; gBattleScripting.battler = gBattlerTarget; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_SynchronizeActivates; gHitMarker |= HITMARKER_IGNORE_SAFEGUARD; - ++effect; + effect++; } break; case ABILITYEFFECT_ATK_SYNCHRONIZE: // 8 if (gLastUsedAbility == ABILITY_SYNCHRONIZE && (gHitMarker & HITMARKER_SYNCHRONISE_EFFECT)) { - gHitMarker &= ~(HITMARKER_SYNCHRONISE_EFFECT); + gHitMarker &= ~HITMARKER_SYNCHRONISE_EFFECT; gBattleStruct->synchronizeMoveEffect &= ~(MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN); if (gBattleStruct->synchronizeMoveEffect == MOVE_EFFECT_TOXIC) gBattleStruct->synchronizeMoveEffect = MOVE_EFFECT_POISON; + gBattleCommunication[MOVE_EFFECT_BYTE] = gBattleStruct->synchronizeMoveEffect; gBattleScripting.battler = gBattlerAttacker; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_SynchronizeActivates; gHitMarker |= HITMARKER_IGNORE_SAFEGUARD; - ++effect; + effect++; } break; case ABILITYEFFECT_INTIMIDATE1: // 9 - for (i = 0; i < gBattlersCount; ++i) + for (i = 0; i < gBattlersCount; i++) { if (gBattleMons[i].ability == ABILITY_INTIMIDATE && gStatuses3[i] & STATUS3_INTIMIDATE_POKES) { gLastUsedAbility = ABILITY_INTIMIDATE; - gStatuses3[i] &= ~(STATUS3_INTIMIDATE_POKES); + gStatuses3[i] &= ~STATUS3_INTIMIDATE_POKES; BattleScriptPushCursorAndCallback(BattleScript_IntimidateActivatesEnd3); gBattleStruct->intimidateBattler = i; - ++effect; + effect++; break; } } break; case ABILITYEFFECT_TRACE: // 11 - for (i = 0; i < gBattlersCount; ++i) + for (i = 0; i < gBattlersCount; i++) { if (gBattleMons[i].ability == ABILITY_TRACE && (gStatuses3[i] & STATUS3_TRACE)) { u8 target2; - side = (GetBattlerPosition(i) ^ BIT_SIDE) & BIT_SIDE; // side of the opposing pokemon target1 = GetBattlerAtPosition(side); target2 = GetBattlerAtPosition(side + BIT_FLANK); if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { - if (gBattleMons[target1].ability != 0 && gBattleMons[target1].hp != 0 - && gBattleMons[target2].ability != 0 && gBattleMons[target2].hp != 0) + if (gBattleMons[target1].ability != ABILITY_NONE && gBattleMons[target1].hp != 0 + && gBattleMons[target2].ability != ABILITY_NONE && gBattleMons[target2].hp != 0) { gActiveBattler = GetBattlerAtPosition(((Random() & 1) * 2) | side); gBattleMons[i].ability = gBattleMons[gActiveBattler].ability; gLastUsedAbility = gBattleMons[gActiveBattler].ability; - ++effect; + effect++; } - else if (gBattleMons[target1].ability != 0 && gBattleMons[target1].hp != 0) + else if (gBattleMons[target1].ability != ABILITY_NONE && gBattleMons[target1].hp != 0) { gActiveBattler = target1; gBattleMons[i].ability = gBattleMons[gActiveBattler].ability; gLastUsedAbility = gBattleMons[gActiveBattler].ability; - ++effect; + effect++; } - else if (gBattleMons[target2].ability != 0 && gBattleMons[target2].hp != 0) + else if (gBattleMons[target2].ability != ABILITY_NONE && gBattleMons[target2].hp != 0) { gActiveBattler = target2; gBattleMons[i].ability = gBattleMons[gActiveBattler].ability; gLastUsedAbility = gBattleMons[gActiveBattler].ability; - ++effect; + effect++; } } else @@ -2179,14 +2270,15 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA { gBattleMons[i].ability = gBattleMons[target1].ability; gLastUsedAbility = gBattleMons[target1].ability; - ++effect; + effect++; } } - if (effect) + if (effect != 0) { BattleScriptPushCursorAndCallback(BattleScript_TraceActivates); - gStatuses3[i] &= ~(STATUS3_TRACE); + gStatuses3[i] &= ~STATUS3_TRACE; gBattleScripting.battler = i; + PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff1, gActiveBattler, gBattlerPartyIndexes[gActiveBattler]) PREPARE_ABILITY_BUFFER(gBattleTextBuff2, gLastUsedAbility) break; @@ -2195,23 +2287,23 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA } break; case ABILITYEFFECT_INTIMIDATE2: // 10 - for (i = 0; i < gBattlersCount; ++i) + for (i = 0; i < gBattlersCount; i++) { if (gBattleMons[i].ability == ABILITY_INTIMIDATE && (gStatuses3[i] & STATUS3_INTIMIDATE_POKES)) { gLastUsedAbility = ABILITY_INTIMIDATE; - gStatuses3[i] &= ~(STATUS3_INTIMIDATE_POKES); + gStatuses3[i] &= ~STATUS3_INTIMIDATE_POKES; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_IntimidateActivates; gBattleStruct->intimidateBattler = i; - ++effect; + effect++; break; } } break; case ABILITYEFFECT_CHECK_OTHER_SIDE: // 12 side = GetBattlerSide(battler); - for (i = 0; i < gBattlersCount; ++i) + for (i = 0; i < gBattlersCount; i++) { if (GetBattlerSide(i) != side && gBattleMons[i].ability == ability) { @@ -2222,7 +2314,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA break; case ABILITYEFFECT_CHECK_BATTLER_SIDE: // 13 side = GetBattlerSide(battler); - for (i = 0; i < gBattlersCount; ++i) + for (i = 0; i < gBattlersCount; i++) { if (GetBattlerSide(i) == side && gBattleMons[i].ability == ability) { @@ -2235,17 +2327,21 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA switch (gLastUsedAbility) { case ABILITYEFFECT_MUD_SPORT: - for (i = 0; i < gBattlersCount; ++i) + for (i = 0; i < gBattlersCount; i++) + { if (gStatuses3[i] & STATUS3_MUDSPORT) effect = i + 1; + } break; case ABILITYEFFECT_WATER_SPORT: - for (i = 0; i < gBattlersCount; ++i) + for (i = 0; i < gBattlersCount; i++) + { if (gStatuses3[i] & STATUS3_WATERSPORT) effect = i + 1; + } break; default: - for (i = 0; i < gBattlersCount; ++i) + for (i = 0; i < gBattlersCount; i++) { if (gBattleMons[i].ability == ability) { @@ -2257,7 +2353,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA } break; case ABILITYEFFECT_CHECK_ON_FIELD: // 19 - for (i = 0; i < gBattlersCount; ++i) + for (i = 0; i < gBattlersCount; i++) { if (gBattleMons[i].ability == ability && gBattleMons[i].hp != 0) { @@ -2268,7 +2364,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA break; case ABILITYEFFECT_CHECK_FIELD_EXCEPT_BATTLER: // 15 side = GetBattlerSide(battler); - for (i = 0; i < gBattlersCount; ++i) + for (i = 0; i < gBattlersCount; i++) { if (GetBattlerSide(i) != side && gBattleMons[i].ability == ability) { @@ -2277,9 +2373,9 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA break; } } - if (!effect) + if (effect == 0) { - for (i = 0; i < gBattlersCount; ++i) + for (i = 0; i < gBattlersCount; i++) { if (gBattleMons[i].ability == ability && GetBattlerSide(i) == side && i != battler) { @@ -2291,40 +2387,42 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA break; case ABILITYEFFECT_COUNT_OTHER_SIDE: // 16 side = GetBattlerSide(battler); - for (i = 0; i < gBattlersCount; ++i) + for (i = 0; i < gBattlersCount; i++) { if (GetBattlerSide(i) != side && gBattleMons[i].ability == ability) { gLastUsedAbility = ability; - ++effect; + effect++; } } break; case ABILITYEFFECT_COUNT_BATTLER_SIDE: // 17 side = GetBattlerSide(battler); - for (i = 0; i < gBattlersCount; ++i) + for (i = 0; i < gBattlersCount; i++) { if (GetBattlerSide(i) == side && gBattleMons[i].ability == ability) { gLastUsedAbility = ability; - ++effect; + effect++; } } break; case ABILITYEFFECT_COUNT_ON_FIELD: // 18 - for (i = 0; i < gBattlersCount; ++i) + for (i = 0; i < gBattlersCount; i++) { if (gBattleMons[i].ability == ability && i != battler) { gLastUsedAbility = ability; - ++effect; + effect++; } } break; } + if (effect && caseID < ABILITYEFFECT_CHECK_OTHER_SIDE && gLastUsedAbility != 0xFF) RecordAbilityBattle(battler, gLastUsedAbility); } + return effect; } @@ -2354,6 +2452,36 @@ enum ITEM_STATS_CHANGE, }; +#define TRY_EAT_CONFUSE_BERRY(flavor) \ + if (gBattleMons[battlerId].hp <= gBattleMons[battlerId].maxHP / 2 && !moveTurn) \ + { \ + PREPARE_FLAVOR_BUFFER(gBattleTextBuff1, flavor); \ + gBattleMoveDamage = gBattleMons[battlerId].maxHP / battlerHoldEffectParam; \ + if (gBattleMoveDamage == 0) \ + gBattleMoveDamage = 1; \ + if (gBattleMons[battlerId].hp + gBattleMoveDamage > gBattleMons[battlerId].maxHP) \ + gBattleMoveDamage = gBattleMons[battlerId].maxHP - gBattleMons[battlerId].hp; \ + gBattleMoveDamage *= -1; \ + if (GetFlavorRelationByPersonality(gBattleMons[battlerId].personality, flavor) < 0) \ + BattleScriptExecute(BattleScript_BerryConfuseHealEnd2); \ + else \ + BattleScriptExecute(BattleScript_ItemHealHP_RemoveItem); \ + effect = ITEM_HP_CHANGE; \ + } + +#define TRY_EAT_STAT_UP_BERRY(stat) \ + if (gBattleMons[battlerId].hp <= gBattleMons[battlerId].maxHP / battlerHoldEffectParam \ + && !moveTurn && gBattleMons[battlerId].statStages[stat] < MAX_STAT_STAGE) \ + { \ + PREPARE_STAT_BUFFER(gBattleTextBuff1, stat); \ + gEffectBattler = battlerId; \ + SET_STATCHANGER(stat, 1, FALSE); \ + gBattleScripting.animArg1 = 14 + (stat); \ + gBattleScripting.animArg2 = 0; \ + BattleScriptExecute(BattleScript_BerryStatRaiseEnd2); \ + effect = ITEM_STATS_CHANGE; \ + } + u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) { int i = 0; @@ -2399,6 +2527,7 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) defHoldEffect = ItemId_GetHoldEffect(defItem); defHoldEffectParam = ItemId_GetHoldEffectParam(defItem); } + switch (caseID) { case ITEMEFFECT_ON_SWITCH_IN: @@ -2408,15 +2537,15 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) gBattleStruct->moneyMultiplier = 2; break; case HOLD_EFFECT_RESTORE_STATS: - for (i = 0; i < NUM_BATTLE_STATS; ++i) + for (i = 0; i < NUM_BATTLE_STATS; i++) { - if (gBattleMons[battlerId].statStages[i] < 6) + if (gBattleMons[battlerId].statStages[i] < DEFAULT_STAT_STAGE) { - gBattleMons[battlerId].statStages[i] = 6; + gBattleMons[battlerId].statStages[i] = DEFAULT_STAT_STAGE; effect = ITEM_STATS_CHANGE; } } - if (effect) + if (effect != 0) { gBattleScripting.battler = battlerId; gPotentialItemEffectBattler = battlerId; @@ -2426,7 +2555,7 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) break; } break; - case 1: + case ITEMEFFECT_NORMAL: if (gBattleMons[battlerId].hp) { switch (battlerHoldEffect) @@ -2439,7 +2568,7 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) gBattleMoveDamage = gBattleMons[battlerId].maxHP - gBattleMons[battlerId].hp; gBattleMoveDamage *= -1; BattleScriptExecute(BattleScript_ItemHealHP_RemoveItem); - effect = 4; + effect = ITEM_HP_CHANGE; } break; case HOLD_EFFECT_RESTORE_PP: @@ -2453,7 +2582,7 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) mon = &gPlayerParty[gBattlerPartyIndexes[battlerId]]; else mon = &gEnemyParty[gBattlerPartyIndexes[battlerId]]; - for (i = 0; i < MAX_MON_MOVES; ++i) + for (i = 0; i < MAX_MON_MOVES; i++) { move = GetMonData(mon, MON_DATA_MOVE1 + i); changedPP = GetMonData(mon, MON_DATA_PP1 + i); @@ -2468,24 +2597,26 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) changedPP = maxPP; else changedPP = changedPP + battlerHoldEffectParam; + PREPARE_MOVE_BUFFER(gBattleTextBuff1, move); + BattleScriptExecute(BattleScript_BerryPPHealEnd2); - BtlController_EmitSetMonData(0, i + REQUEST_PPMOVE1_BATTLE, 0, 1, &changedPP); + BtlController_EmitSetMonData(BUFFER_A, i + REQUEST_PPMOVE1_BATTLE, 0, 1, &changedPP); MarkBattlerForControllerExec(gActiveBattler); effect = ITEM_PP_CHANGE; } } break; case HOLD_EFFECT_RESTORE_STATS: - for (i = 0; i < NUM_BATTLE_STATS; ++i) + for (i = 0; i < NUM_BATTLE_STATS; i++) { - if (gBattleMons[battlerId].statStages[i] < 6) + if (gBattleMons[battlerId].statStages[i] < DEFAULT_STAT_STAGE) { - gBattleMons[battlerId].statStages[i] = 6; + gBattleMons[battlerId].statStages[i] = DEFAULT_STAT_STAGE; effect = ITEM_STATS_CHANGE; } } - if (effect) + if (effect != 0) { gBattleScripting.battler = battlerId; gPotentialItemEffectBattler = battlerId; @@ -2508,153 +2639,49 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) } break; case HOLD_EFFECT_CONFUSE_SPICY: - if (gBattleMons[battlerId].hp <= gBattleMons[battlerId].maxHP / 2 && !moveTurn) - { - PREPARE_FLAVOR_BUFFER(gBattleTextBuff1, FLAVOR_SPICY); - gBattleMoveDamage = gBattleMons[battlerId].maxHP / battlerHoldEffectParam; - if (gBattleMoveDamage == 0) - gBattleMoveDamage = 1; - if (gBattleMons[battlerId].hp + gBattleMoveDamage > gBattleMons[battlerId].maxHP) - gBattleMoveDamage = gBattleMons[battlerId].maxHP - gBattleMons[battlerId].hp; - gBattleMoveDamage *= -1; - if (GetFlavorRelationByPersonality(gBattleMons[battlerId].personality, FLAVOR_SPICY) < 0) - BattleScriptExecute(BattleScript_BerryConfuseHealEnd2); - else - BattleScriptExecute(BattleScript_ItemHealHP_RemoveItem); - effect = ITEM_HP_CHANGE; - } + TRY_EAT_CONFUSE_BERRY(FLAVOR_SPICY); break; case HOLD_EFFECT_CONFUSE_DRY: - if (gBattleMons[battlerId].hp <= gBattleMons[battlerId].maxHP / 2 && !moveTurn) - { - PREPARE_FLAVOR_BUFFER(gBattleTextBuff1, FLAVOR_DRY); - gBattleMoveDamage = gBattleMons[battlerId].maxHP / battlerHoldEffectParam; - if (gBattleMoveDamage == 0) - gBattleMoveDamage = 1; - if (gBattleMons[battlerId].hp + gBattleMoveDamage > gBattleMons[battlerId].maxHP) - gBattleMoveDamage = gBattleMons[battlerId].maxHP - gBattleMons[battlerId].hp; - gBattleMoveDamage *= -1; - if (GetFlavorRelationByPersonality(gBattleMons[battlerId].personality, FLAVOR_DRY) < 0) - BattleScriptExecute(BattleScript_BerryConfuseHealEnd2); - else - BattleScriptExecute(BattleScript_ItemHealHP_RemoveItem); - effect = ITEM_HP_CHANGE; - } + TRY_EAT_CONFUSE_BERRY(FLAVOR_DRY); break; case HOLD_EFFECT_CONFUSE_SWEET: - if (gBattleMons[battlerId].hp <= gBattleMons[battlerId].maxHP / 2 && !moveTurn) - { - PREPARE_FLAVOR_BUFFER(gBattleTextBuff1, FLAVOR_SWEET); - gBattleMoveDamage = gBattleMons[battlerId].maxHP / battlerHoldEffectParam; - if (gBattleMoveDamage == 0) - gBattleMoveDamage = 1; - if (gBattleMons[battlerId].hp + gBattleMoveDamage > gBattleMons[battlerId].maxHP) - gBattleMoveDamage = gBattleMons[battlerId].maxHP - gBattleMons[battlerId].hp; - gBattleMoveDamage *= -1; - if (GetFlavorRelationByPersonality(gBattleMons[battlerId].personality, FLAVOR_SWEET) < 0) - BattleScriptExecute(BattleScript_BerryConfuseHealEnd2); - else - BattleScriptExecute(BattleScript_ItemHealHP_RemoveItem); - effect = ITEM_HP_CHANGE; - } + TRY_EAT_CONFUSE_BERRY(FLAVOR_SWEET); break; case HOLD_EFFECT_CONFUSE_BITTER: - if (gBattleMons[battlerId].hp <= gBattleMons[battlerId].maxHP / 2 && !moveTurn) - { - PREPARE_FLAVOR_BUFFER(gBattleTextBuff1, FLAVOR_BITTER); - gBattleMoveDamage = gBattleMons[battlerId].maxHP / battlerHoldEffectParam; - if (gBattleMoveDamage == 0) - gBattleMoveDamage = 1; - if (gBattleMons[battlerId].hp + gBattleMoveDamage > gBattleMons[battlerId].maxHP) - gBattleMoveDamage = gBattleMons[battlerId].maxHP - gBattleMons[battlerId].hp; - gBattleMoveDamage *= -1; - if (GetFlavorRelationByPersonality(gBattleMons[battlerId].personality, FLAVOR_BITTER) < 0) - BattleScriptExecute(BattleScript_BerryConfuseHealEnd2); - else - BattleScriptExecute(BattleScript_ItemHealHP_RemoveItem); - effect = ITEM_HP_CHANGE; - } + TRY_EAT_CONFUSE_BERRY(FLAVOR_BITTER); break; case HOLD_EFFECT_CONFUSE_SOUR: - if (gBattleMons[battlerId].hp <= gBattleMons[battlerId].maxHP / 2 && !moveTurn) - { - PREPARE_FLAVOR_BUFFER(gBattleTextBuff1, FLAVOR_SOUR); - gBattleMoveDamage = gBattleMons[battlerId].maxHP / battlerHoldEffectParam; - if (gBattleMoveDamage == 0) - gBattleMoveDamage = 1; - if (gBattleMons[battlerId].hp + gBattleMoveDamage > gBattleMons[battlerId].maxHP) - gBattleMoveDamage = gBattleMons[battlerId].maxHP - gBattleMons[battlerId].hp; - gBattleMoveDamage *= -1; - if (GetFlavorRelationByPersonality(gBattleMons[battlerId].personality, FLAVOR_SOUR) < 0) - BattleScriptExecute(BattleScript_BerryConfuseHealEnd2); - else - BattleScriptExecute(BattleScript_ItemHealHP_RemoveItem); - effect = ITEM_HP_CHANGE; - } + TRY_EAT_CONFUSE_BERRY(FLAVOR_SOUR); break; case HOLD_EFFECT_ATTACK_UP: - if (gBattleMons[battlerId].hp <= gBattleMons[battlerId].maxHP / battlerHoldEffectParam && !moveTurn && gBattleMons[battlerId].statStages[STAT_ATK] < 0xC) + if (gBattleMons[battlerId].hp <= gBattleMons[battlerId].maxHP / battlerHoldEffectParam + && !moveTurn && gBattleMons[battlerId].statStages[STAT_ATK] < MAX_STAT_STAGE) { PREPARE_STAT_BUFFER(gBattleTextBuff1, STAT_ATK); - PREPARE_STRING_BUFFER(gBattleTextBuff2, STRINGID_STATROSE); + PREPARE_STRING_BUFFER(gBattleTextBuff2, STRINGID_STATROSE); // Only the Attack stat-up berry has this gEffectBattler = battlerId; SET_STATCHANGER(STAT_ATK, 1, FALSE); - gBattleScripting.animArg1 = 0xE + STAT_ATK; + gBattleScripting.animArg1 = 14 + STAT_ATK; gBattleScripting.animArg2 = 0; BattleScriptExecute(BattleScript_BerryStatRaiseEnd2); effect = ITEM_STATS_CHANGE; } break; case HOLD_EFFECT_DEFENSE_UP: - if (gBattleMons[battlerId].hp <= gBattleMons[battlerId].maxHP / battlerHoldEffectParam && !moveTurn && gBattleMons[battlerId].statStages[STAT_DEF] < 0xC) - { - PREPARE_STAT_BUFFER(gBattleTextBuff1, STAT_DEF); - gEffectBattler = battlerId; - SET_STATCHANGER(STAT_DEF, 1, FALSE); - gBattleScripting.animArg1 = 0xE + STAT_DEF; - gBattleScripting.animArg2 = 0; - BattleScriptExecute(BattleScript_BerryStatRaiseEnd2); - effect = ITEM_STATS_CHANGE; - } + TRY_EAT_STAT_UP_BERRY(STAT_DEF); break; case HOLD_EFFECT_SPEED_UP: - if (gBattleMons[battlerId].hp <= gBattleMons[battlerId].maxHP / battlerHoldEffectParam && !moveTurn && gBattleMons[battlerId].statStages[STAT_SPEED] < 0xC) - { - PREPARE_STAT_BUFFER(gBattleTextBuff1, STAT_SPEED); - gEffectBattler = battlerId; - SET_STATCHANGER(STAT_SPEED, 1, FALSE); - gBattleScripting.animArg1 = 0xE + STAT_SPEED; - gBattleScripting.animArg2 = 0; - BattleScriptExecute(BattleScript_BerryStatRaiseEnd2); - effect = ITEM_STATS_CHANGE; - } + TRY_EAT_STAT_UP_BERRY(STAT_SPEED); break; case HOLD_EFFECT_SP_ATTACK_UP: - if (gBattleMons[battlerId].hp <= gBattleMons[battlerId].maxHP / battlerHoldEffectParam && !moveTurn && gBattleMons[battlerId].statStages[STAT_SPATK] < 0xC) - { - PREPARE_STAT_BUFFER(gBattleTextBuff1, STAT_SPATK); - gEffectBattler = battlerId; - SET_STATCHANGER(STAT_SPATK, 1, FALSE); - gBattleScripting.animArg1 = 0xE + STAT_SPATK; - gBattleScripting.animArg2 = 0; - BattleScriptExecute(BattleScript_BerryStatRaiseEnd2); - effect = ITEM_STATS_CHANGE; - } + TRY_EAT_STAT_UP_BERRY(STAT_SPATK); break; case HOLD_EFFECT_SP_DEFENSE_UP: - if (gBattleMons[battlerId].hp <= gBattleMons[battlerId].maxHP / battlerHoldEffectParam && !moveTurn && gBattleMons[battlerId].statStages[STAT_SPDEF] < 0xC) - { - PREPARE_STAT_BUFFER(gBattleTextBuff1, STAT_SPDEF); - gEffectBattler = battlerId; - SET_STATCHANGER(STAT_SPDEF, 1, FALSE); - gBattleScripting.animArg1 = 0xE + STAT_SPDEF; - gBattleScripting.animArg2 = 0; - BattleScriptExecute(BattleScript_BerryStatRaiseEnd2); - effect = ITEM_STATS_CHANGE; - } + TRY_EAT_STAT_UP_BERRY(STAT_SPDEF); break; case HOLD_EFFECT_CRITICAL_UP: - if (gBattleMons[battlerId].hp <= gBattleMons[battlerId].maxHP / battlerHoldEffectParam && !moveTurn && !(gBattleMons[battlerId].status2 & STATUS2_FOCUS_ENERGY)) + if (gBattleMons[battlerId].hp <= gBattleMons[battlerId].maxHP / battlerHoldEffectParam && !moveTurn + && !(gBattleMons[battlerId].status2 & STATUS2_FOCUS_ENERGY)) { gBattleMons[battlerId].status2 |= STATUS2_FOCUS_ENERGY; BattleScriptExecute(BattleScript_BerryFocusEnergyEnd2); @@ -2664,13 +2691,20 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) case HOLD_EFFECT_RANDOM_STAT_UP: if (!moveTurn && gBattleMons[battlerId].hp <= gBattleMons[battlerId].maxHP / battlerHoldEffectParam) { - for (i = 0; i < 5 && gBattleMons[battlerId].statStages[STAT_ATK + i] >= 0xC; ++i); - if (i != 5) + for (i = 0; i < NUM_STATS - 1; i++) + { + if (gBattleMons[battlerId].statStages[STAT_ATK + i] < MAX_STAT_STAGE) + break; + } + if (i != NUM_STATS - 1) { do - i = Random() % 5; - while (gBattleMons[battlerId].statStages[STAT_ATK + i] == 0xC); + { + i = Random() % (NUM_STATS - 1); + } while (gBattleMons[battlerId].statStages[STAT_ATK + i] == MAX_STAT_STAGE); + PREPARE_STAT_BUFFER(gBattleTextBuff1, i + 1); + gBattleTextBuff2[0] = B_BUFF_PLACEHOLDER_BEGIN; gBattleTextBuff2[1] = B_BUFF_STRING; gBattleTextBuff2[2] = STRINGID_STATSHARPLY; @@ -2679,6 +2713,7 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) gBattleTextBuff2[5] = STRINGID_STATROSE; gBattleTextBuff2[6] = STRINGID_STATROSE >> 8; gBattleTextBuff2[7] = EOS; + gEffectBattler = battlerId; SET_STATCHANGER(i + 1, 2, FALSE); gBattleScripting.animArg1 = 0x21 + i + 6; @@ -2691,7 +2726,7 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) case HOLD_EFFECT_CURE_PAR: if (gBattleMons[battlerId].status1 & STATUS1_PARALYSIS) { - gBattleMons[battlerId].status1 &= ~(STATUS1_PARALYSIS); + gBattleMons[battlerId].status1 &= ~STATUS1_PARALYSIS; BattleScriptExecute(BattleScript_BerryCurePrlzEnd2); effect = ITEM_STATUS_CHANGE; } @@ -2707,7 +2742,7 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) case HOLD_EFFECT_CURE_BRN: if (gBattleMons[battlerId].status1 & STATUS1_BURN) { - gBattleMons[battlerId].status1 &= ~(STATUS1_BURN); + gBattleMons[battlerId].status1 &= ~STATUS1_BURN; BattleScriptExecute(BattleScript_BerryCureBrnEnd2); effect = ITEM_STATUS_CHANGE; } @@ -2715,7 +2750,7 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) case HOLD_EFFECT_CURE_FRZ: if (gBattleMons[battlerId].status1 & STATUS1_FREEZE) { - gBattleMons[battlerId].status1 &= ~(STATUS1_FREEZE); + gBattleMons[battlerId].status1 &= ~STATUS1_FREEZE; BattleScriptExecute(BattleScript_BerryCureFrzEnd2); effect = ITEM_STATUS_CHANGE; } @@ -2723,8 +2758,8 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) case HOLD_EFFECT_CURE_SLP: if (gBattleMons[battlerId].status1 & STATUS1_SLEEP) { - gBattleMons[battlerId].status1 &= ~(STATUS1_SLEEP); - gBattleMons[battlerId].status2 &= ~(STATUS2_NIGHTMARE); + gBattleMons[battlerId].status1 &= ~STATUS1_SLEEP; + gBattleMons[battlerId].status2 &= ~STATUS2_NIGHTMARE; BattleScriptExecute(BattleScript_BerryCureSlpEnd2); effect = ITEM_STATUS_CHANGE; } @@ -2732,7 +2767,7 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) case HOLD_EFFECT_CURE_CONFUSION: if (gBattleMons[battlerId].status2 & STATUS2_CONFUSION) { - gBattleMons[battlerId].status2 &= ~(STATUS2_CONFUSION); + gBattleMons[battlerId].status2 &= ~STATUS2_CONFUSION; BattleScriptExecute(BattleScript_BerryCureConfusionEnd2); effect = ITEM_EFFECT_OTHER; } @@ -2744,40 +2779,40 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) if (gBattleMons[battlerId].status1 & STATUS1_PSN_ANY) { StringCopy(gBattleTextBuff1, gStatusConditionString_PoisonJpn); - ++i; + i++; } if (gBattleMons[battlerId].status1 & STATUS1_SLEEP) { - gBattleMons[battlerId].status2 &= ~(STATUS2_NIGHTMARE); + gBattleMons[battlerId].status2 &= ~STATUS2_NIGHTMARE; StringCopy(gBattleTextBuff1, gStatusConditionString_SleepJpn); - ++i; + i++; } if (gBattleMons[battlerId].status1 & STATUS1_PARALYSIS) { StringCopy(gBattleTextBuff1, gStatusConditionString_ParalysisJpn); - ++i; + i++; } if (gBattleMons[battlerId].status1 & STATUS1_BURN) { StringCopy(gBattleTextBuff1, gStatusConditionString_BurnJpn); - ++i; + i++; } if (gBattleMons[battlerId].status1 & STATUS1_FREEZE) { StringCopy(gBattleTextBuff1, gStatusConditionString_IceJpn); - ++i; + i++; } if (gBattleMons[battlerId].status2 & STATUS2_CONFUSION) { StringCopy(gBattleTextBuff1, gStatusConditionString_ConfusionJpn); - ++i; + i++; } - if (!(i > 1)) - gBattleCommunication[MULTISTRING_CHOOSER] = 0; + if (i <= 1) + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_CURED_PROBLEM; else - gBattleCommunication[MULTISTRING_CHOOSER] = 1; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_NORMALIZED_STATUS; gBattleMons[battlerId].status1 = 0; - gBattleMons[battlerId].status2 &= ~(STATUS2_CONFUSION); + gBattleMons[battlerId].status2 &= ~STATUS2_CONFUSION; BattleScriptExecute(BattleScript_BerryCureChosenStatusEnd2); effect = ITEM_STATUS_CHANGE; } @@ -2785,15 +2820,15 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) case HOLD_EFFECT_CURE_ATTRACT: if (gBattleMons[battlerId].status2 & STATUS2_INFATUATION) { - gBattleMons[battlerId].status2 &= ~(STATUS2_INFATUATION); + gBattleMons[battlerId].status2 &= ~STATUS2_INFATUATION; StringCopy(gBattleTextBuff1, gStatusConditionString_LoveJpn); BattleScriptExecute(BattleScript_BerryCureChosenStatusEnd2); - gBattleCommunication[MULTISTRING_CHOOSER] = 0; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_CURED_PROBLEM; effect = ITEM_EFFECT_OTHER; } break; } - if (effect) + if (effect != 0) { gBattleScripting.battler = battlerId; gPotentialItemEffectBattler = battlerId; @@ -2801,21 +2836,21 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) switch (effect) { case ITEM_STATUS_CHANGE: - BtlController_EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[battlerId].status1); + BtlController_EmitSetMonData(BUFFER_A, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[battlerId].status1); MarkBattlerForControllerExec(gActiveBattler); break; case ITEM_PP_CHANGE: - if (!(gBattleMons[battlerId].status2 & STATUS2_TRANSFORMED) && !(gDisableStructs[battlerId].mimickedMoves & gBitTable[i])) + if (MOVE_IS_PERMANENT(battlerId, i)) gBattleMons[battlerId].pp[i] = changedPP; break; } } } break; - case 2: + case ITEMEFFECT_DUMMY: break; case ITEMEFFECT_MOVE_END: - for (battlerId = 0; battlerId < gBattlersCount; ++battlerId) + for (battlerId = 0; battlerId < gBattlersCount; battlerId++) { gLastUsedItem = gBattleMons[battlerId].item; if (gBattleMons[battlerId].item == ITEM_ENIGMA_BERRY) @@ -2833,7 +2868,7 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) case HOLD_EFFECT_CURE_PAR: if (gBattleMons[battlerId].status1 & STATUS1_PARALYSIS) { - gBattleMons[battlerId].status1 &= ~(STATUS1_PARALYSIS); + gBattleMons[battlerId].status1 &= ~STATUS1_PARALYSIS; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_BerryCureParRet; effect = ITEM_STATUS_CHANGE; @@ -2851,7 +2886,7 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) case HOLD_EFFECT_CURE_BRN: if (gBattleMons[battlerId].status1 & STATUS1_BURN) { - gBattleMons[battlerId].status1 &= ~(STATUS1_BURN); + gBattleMons[battlerId].status1 &= ~STATUS1_BURN; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_BerryCureBrnRet; effect = ITEM_STATUS_CHANGE; @@ -2860,7 +2895,7 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) case HOLD_EFFECT_CURE_FRZ: if (gBattleMons[battlerId].status1 & STATUS1_FREEZE) { - gBattleMons[battlerId].status1 &= ~(STATUS1_FREEZE); + gBattleMons[battlerId].status1 &= ~STATUS1_FREEZE; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_BerryCureFrzRet; effect = ITEM_STATUS_CHANGE; @@ -2869,8 +2904,8 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) case HOLD_EFFECT_CURE_SLP: if (gBattleMons[battlerId].status1 & STATUS1_SLEEP) { - gBattleMons[battlerId].status1 &= ~(STATUS1_SLEEP); - gBattleMons[battlerId].status2 &= ~(STATUS2_NIGHTMARE); + gBattleMons[battlerId].status1 &= ~STATUS1_SLEEP; + gBattleMons[battlerId].status2 &= ~STATUS2_NIGHTMARE; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_BerryCureSlpRet; effect = ITEM_STATUS_CHANGE; @@ -2879,7 +2914,7 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) case HOLD_EFFECT_CURE_CONFUSION: if (gBattleMons[battlerId].status2 & STATUS2_CONFUSION) { - gBattleMons[battlerId].status2 &= ~(STATUS2_CONFUSION); + gBattleMons[battlerId].status2 &= ~STATUS2_CONFUSION; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_BerryCureConfusionRet; effect = ITEM_EFFECT_OTHER; @@ -2888,10 +2923,10 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) case HOLD_EFFECT_CURE_ATTRACT: if (gBattleMons[battlerId].status2 & STATUS2_INFATUATION) { - gBattleMons[battlerId].status2 &= ~(STATUS2_INFATUATION); + gBattleMons[battlerId].status2 &= ~STATUS2_INFATUATION; StringCopy(gBattleTextBuff1, gStatusConditionString_LoveJpn); BattleScriptPushCursor(); - gBattleCommunication[MULTISTRING_CHOOSER] = 0; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_CURED_PROBLEM; gBattlescriptCurrInstr = BattleScript_BerryCureChosenStatusRet; effect = ITEM_EFFECT_OTHER; } @@ -2900,48 +2935,44 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) if (gBattleMons[battlerId].status1 & STATUS1_ANY || gBattleMons[battlerId].status2 & STATUS2_CONFUSION) { if (gBattleMons[battlerId].status1 & STATUS1_PSN_ANY) - { StringCopy(gBattleTextBuff1, gStatusConditionString_PoisonJpn); - } + if (gBattleMons[battlerId].status1 & STATUS1_SLEEP) { - gBattleMons[battlerId].status2 &= ~(STATUS2_NIGHTMARE); + gBattleMons[battlerId].status2 &= ~STATUS2_NIGHTMARE; StringCopy(gBattleTextBuff1, gStatusConditionString_SleepJpn); } + if (gBattleMons[battlerId].status1 & STATUS1_PARALYSIS) - { StringCopy(gBattleTextBuff1, gStatusConditionString_ParalysisJpn); - } + if (gBattleMons[battlerId].status1 & STATUS1_BURN) - { StringCopy(gBattleTextBuff1, gStatusConditionString_BurnJpn); - } + if (gBattleMons[battlerId].status1 & STATUS1_FREEZE) - { StringCopy(gBattleTextBuff1, gStatusConditionString_IceJpn); - } + if (gBattleMons[battlerId].status2 & STATUS2_CONFUSION) - { StringCopy(gBattleTextBuff1, gStatusConditionString_ConfusionJpn); - } + gBattleMons[battlerId].status1 = 0; - gBattleMons[battlerId].status2 &= ~(STATUS2_CONFUSION); + gBattleMons[battlerId].status2 &= ~STATUS2_CONFUSION; BattleScriptPushCursor(); - gBattleCommunication[MULTISTRING_CHOOSER] = 0; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_CURED_PROBLEM; gBattlescriptCurrInstr = BattleScript_BerryCureChosenStatusRet; effect = ITEM_STATUS_CHANGE; } break; case HOLD_EFFECT_RESTORE_STATS: - for (i = 0; i < NUM_BATTLE_STATS; ++i) + for (i = 0; i < NUM_BATTLE_STATS; i++) { - if (gBattleMons[battlerId].statStages[i] < 6) + if (gBattleMons[battlerId].statStages[i] < DEFAULT_STAT_STAGE) { - gBattleMons[battlerId].statStages[i] = 6; + gBattleMons[battlerId].statStages[i] = DEFAULT_STAT_STAGE; effect = ITEM_STATS_CHANGE; } } - if (effect) + if (effect != 0) { gBattleScripting.battler = battlerId; gPotentialItemEffectBattler = battlerId; @@ -2951,12 +2982,12 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) } break; } - if (effect) + if (effect != 0) { gBattleScripting.battler = battlerId; gPotentialItemEffectBattler = battlerId; gActiveBattler = battlerId; - BtlController_EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1); + BtlController_EmitSetMonData(BUFFER_A, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBattler].status1); MarkBattlerForControllerExec(gActiveBattler); break; } @@ -2969,10 +3000,10 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) { case HOLD_EFFECT_FLINCH: if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) - && TARGET_TURN_DAMAGED - && (Random() % 100) < battlerHoldEffectParam - && gBattleMoves[gCurrentMove].flags & FLAG_KINGS_ROCK_AFFECTED - && gBattleMons[gBattlerTarget].hp) + && TARGET_TURN_DAMAGED + && (Random() % 100) < battlerHoldEffectParam + && gBattleMoves[gCurrentMove].flags & FLAG_KINGS_ROCK_AFFECTED + && gBattleMons[gBattlerTarget].hp) { gBattleCommunication[MOVE_EFFECT_BYTE] = MOVE_EFFECT_FLINCH; BattleScriptPushCursor(); @@ -2982,11 +3013,11 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) break; case HOLD_EFFECT_SHELL_BELL: if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) - && gSpecialStatuses[gBattlerTarget].dmg != 0 - && gSpecialStatuses[gBattlerTarget].dmg != 0xFFFF - && gBattlerAttacker != gBattlerTarget - && gBattleMons[gBattlerAttacker].hp != gBattleMons[gBattlerAttacker].maxHP - && gBattleMons[gBattlerAttacker].hp != 0) + && gSpecialStatuses[gBattlerTarget].dmg != 0 + && gSpecialStatuses[gBattlerTarget].dmg != 0xFFFF + && gBattlerAttacker != gBattlerTarget + && gBattleMons[gBattlerAttacker].hp != gBattleMons[gBattlerAttacker].maxHP + && gBattleMons[gBattlerAttacker].hp != 0) { gLastUsedItem = atkItem; gPotentialItemEffectBattler = gBattlerAttacker; @@ -2997,21 +3028,22 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) gSpecialStatuses[gBattlerTarget].dmg = 0; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_ItemHealHP_Ret; - ++effect; + effect++; } break; } } break; } + return effect; } void ClearFuryCutterDestinyBondGrudge(u8 battlerId) { gDisableStructs[battlerId].furyCutterCounter = 0; - gBattleMons[battlerId].status2 &= ~(STATUS2_DESTINY_BOND); - gStatuses3[battlerId] &= ~(STATUS3_GRUDGE); + gBattleMons[battlerId].status2 &= ~STATUS2_DESTINY_BOND; + gStatuses3[battlerId] &= ~STATUS3_GRUDGE; } void HandleAction_RunBattleScript(void) // identical to RunBattleScriptCommands @@ -3026,10 +3058,11 @@ u8 GetMoveTarget(u16 move, u8 setTarget) u8 moveTarget; u8 side; - if (setTarget) + if (setTarget != NO_TARGET_OVERRIDE) moveTarget = setTarget - 1; else moveTarget = gBattleMoves[move].target; + switch (moveTarget) { case MOVE_TARGET_SELECTED: @@ -3044,8 +3077,8 @@ u8 GetMoveTarget(u16 move, u8 setTarget) targetBattler = Random() % gBattlersCount; } while (targetBattler == gBattlerAttacker || side == GetBattlerSide(targetBattler) || gAbsentBattlerFlags & gBitTable[targetBattler]); if (gBattleMoves[move].type == TYPE_ELECTRIC - && AbilityBattleEffects(ABILITYEFFECT_COUNT_OTHER_SIDE, gBattlerAttacker, ABILITY_LIGHTNING_ROD, 0, 0) - && gBattleMons[targetBattler].ability != ABILITY_LIGHTNING_ROD) + && AbilityBattleEffects(ABILITYEFFECT_COUNT_OTHER_SIDE, gBattlerAttacker, ABILITY_LIGHTNING_ROD, 0, 0) + && gBattleMons[targetBattler].ability != ABILITY_LIGHTNING_ROD) { targetBattler ^= BIT_FLANK; RecordAbilityBattle(targetBattler, gBattleMons[targetBattler].ability); @@ -3092,16 +3125,19 @@ u8 GetMoveTarget(u16 move, u8 setTarget) targetBattler = gBattlerAttacker; break; } + *(gBattleStruct->moveTarget + gBattlerAttacker) = targetBattler; + return targetBattler; } -static bool32 IsNotEventLegalMewOrDeoxys(u8 battlerId) +static bool32 IsMonEventLegal(u8 battlerId) { - if (GetBattlerSide(battlerId) == B_SIDE_OPPONENT - || (GetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerId]], MON_DATA_SPECIES, NULL) != SPECIES_DEOXYS - && GetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerId]], MON_DATA_SPECIES, NULL) != SPECIES_MEW)) + if (GetBattlerSide(battlerId) == B_SIDE_OPPONENT) return TRUE; + if (GetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerId]], MON_DATA_SPECIES, NULL) != SPECIES_DEOXYS + && GetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerId]], MON_DATA_SPECIES, NULL) != SPECIES_MEW) + return TRUE; return GetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerId]], MON_DATA_EVENT_LEGAL, NULL); } @@ -3111,13 +3147,20 @@ u8 IsMonDisobedient(void) s32 calc; u8 obedienceLevel = 0; - if ((gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_POKEDUDE)) || GetBattlerSide(gBattlerAttacker) == B_SIDE_OPPONENT) + if ((gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_POKEDUDE))) return 0; - if (IsNotEventLegalMewOrDeoxys(gBattlerAttacker)) // only if species is Mew or Deoxys + if (GetBattlerSide(gBattlerAttacker) == B_SIDE_OPPONENT) + return 0; + + if (IsMonEventLegal(gBattlerAttacker)) // only false if illegal Mew or Deoxys { - if (!IsOtherTrainer(gBattleMons[gBattlerAttacker].otId, gBattleMons[gBattlerAttacker].otName) || FlagGet(FLAG_BADGE08_GET)) + if (!IsOtherTrainer(gBattleMons[gBattlerAttacker].otId, gBattleMons[gBattlerAttacker].otName)) return 0; + if (FlagGet(FLAG_BADGE08_GET)) + return 0; + obedienceLevel = 10; + if (FlagGet(FLAG_BADGE02_GET)) obedienceLevel = 30; if (FlagGet(FLAG_BADGE04_GET)) @@ -3125,39 +3168,46 @@ u8 IsMonDisobedient(void) if (FlagGet(FLAG_BADGE06_GET)) obedienceLevel = 70; } + if (gBattleMons[gBattlerAttacker].level <= obedienceLevel) return 0; rnd = (Random() & 255); calc = (gBattleMons[gBattlerAttacker].level + obedienceLevel) * rnd >> 8; if (calc < obedienceLevel) return 0; + // is not obedient if (gCurrentMove == MOVE_RAGE) - gBattleMons[gBattlerAttacker].status2 &= ~(STATUS2_RAGE); + gBattleMons[gBattlerAttacker].status2 &= ~STATUS2_RAGE; if (gBattleMons[gBattlerAttacker].status1 & STATUS1_SLEEP && (gCurrentMove == MOVE_SNORE || gCurrentMove == MOVE_SLEEP_TALK)) { gBattlescriptCurrInstr = BattleScript_IgnoresWhileAsleep; return 1; } + rnd = (Random() & 255); calc = (gBattleMons[gBattlerAttacker].level + obedienceLevel) * rnd >> 8; if (calc < obedienceLevel && gCurrentMove != MOVE_FOCUS_PUNCH) // Additional check for focus punch in FR { - calc = CheckMoveLimitations(gBattlerAttacker, gBitTable[gCurrMovePos], 0xFF); + calc = CheckMoveLimitations(gBattlerAttacker, gBitTable[gCurrMovePos], MOVE_LIMITATIONS_ALL); if (calc == 0xF) // all moves cannot be used { - gBattleCommunication[MULTISTRING_CHOOSER] = Random() & 3; + // Randomly select, then print a disobedient string + // B_MSG_LOAFING, B_MSG_WONT_OBEY, B_MSG_TURNED_AWAY, or B_MSG_PRETEND_NOT_NOTICE + gBattleCommunication[MULTISTRING_CHOOSER] = Random() & (NUM_LOAF_STRINGS - 1); gBattlescriptCurrInstr = BattleScript_MoveUsedLoafingAround; return 1; } else // use a random move { do - gCurrMovePos = gChosenMovePos = Random() & 3; - while (gBitTable[gCurrMovePos] & calc); + { + gCurrMovePos = gChosenMovePos = Random() & (MAX_MON_MOVES - 1); + } while (gBitTable[gCurrMovePos] & calc); + gCalledMove = gBattleMons[gBattlerAttacker].moves[gCurrMovePos]; gBattlescriptCurrInstr = BattleScript_IgnoresAndUsesRandomMove; - gBattlerTarget = GetMoveTarget(gCalledMove, 0); + gBattlerTarget = GetMoveTarget(gCalledMove, NO_TARGET_OVERRIDE); gHitMarker |= HITMARKER_DISOBEDIENT_MOVE; return 2; } @@ -3165,15 +3215,17 @@ u8 IsMonDisobedient(void) else { obedienceLevel = gBattleMons[gBattlerAttacker].level - obedienceLevel; + calc = (Random() & 255); if (calc < obedienceLevel && !(gBattleMons[gBattlerAttacker].status1 & STATUS1_ANY) && gBattleMons[gBattlerAttacker].ability != ABILITY_VITAL_SPIRIT && gBattleMons[gBattlerAttacker].ability != ABILITY_INSOMNIA) { // try putting asleep int i; - - for (i = 0; i < gBattlersCount; ++i) + for (i = 0; i < gBattlersCount; i++) + { if (gBattleMons[i].status2 & STATUS2_UPROAR) break; + } if (i == gBattlersCount) { gBattlescriptCurrInstr = BattleScript_IgnoresAndFallsAsleep; @@ -3191,7 +3243,9 @@ u8 IsMonDisobedient(void) } else { - gBattleCommunication[MULTISTRING_CHOOSER] = Random() & 3; + // Randomly select, then print a disobedient string + // B_MSG_LOAFING, B_MSG_WONT_OBEY, B_MSG_TURNED_AWAY, or B_MSG_PRETEND_NOT_NOTICE + gBattleCommunication[MULTISTRING_CHOOSER] = Random() & (NUM_LOAF_STRINGS - 1); gBattlescriptCurrInstr = BattleScript_MoveUsedLoafingAround; return 1; } diff --git a/src/battle_util2.c b/src/battle_util2.c index e3fa1a6a7..8a5fbccf6 100644 --- a/src/battle_util2.c +++ b/src/battle_util2.c @@ -2,8 +2,8 @@ #include "bg.h" #include "battle.h" #include "battle_anim.h" -#include "pokemon.h" #include "malloc.h" +#include "pokemon.h" #include "trainer_tower.h" void AllocateBattleResources(void) @@ -14,10 +14,12 @@ void AllocateBattleResources(void) { s32 i; - for (i = 0; i < 4; ++i) + for (i = 0; i < 4; i++) gPokedudeBattlerStates[i] = AllocZeroed(sizeof(struct PokedudeBattlerState)); } + gBattleStruct = AllocZeroed(sizeof(*gBattleStruct)); + gBattleResources = AllocZeroed(sizeof(*gBattleResources)); gBattleResources->secretBase = AllocZeroed(sizeof(*gBattleResources->secretBase)); gBattleResources->flags = AllocZeroed(sizeof(*gBattleResources->flags)); @@ -27,12 +29,15 @@ void AllocateBattleResources(void) gBattleResources->ai = AllocZeroed(sizeof(*gBattleResources->ai)); gBattleResources->battleHistory = AllocZeroed(sizeof(*gBattleResources->battleHistory)); gBattleResources->AI_ScriptsStack = AllocZeroed(sizeof(*gBattleResources->AI_ScriptsStack)); + gLinkBattleSendBuffer = AllocZeroed(BATTLE_BUFFER_LINK_SIZE); gLinkBattleRecvBuffer = AllocZeroed(BATTLE_BUFFER_LINK_SIZE); - gBattleAnimMons_BgTilesBuffer = AllocZeroed(0x2000); - gBattleAnimMons_BgTilemapBuffer = AllocZeroed(0x1000); - SetBgTilemapBuffer(1, gBattleAnimMons_BgTilemapBuffer); - SetBgTilemapBuffer(2, gBattleAnimMons_BgTilemapBuffer); + + gBattleAnimBgTileBuffer = AllocZeroed(0x2000); + gBattleAnimBgTilemapBuffer = AllocZeroed(0x1000); + + SetBgTilemapBuffer(1, gBattleAnimBgTilemapBuffer); + SetBgTilemapBuffer(2, gBattleAnimBgTilemapBuffer); } void FreeBattleResources(void) @@ -43,7 +48,7 @@ void FreeBattleResources(void) { s32 i; - for (i = 0; i < 4; ++i) + for (i = 0; i < 4; i++) { FREE_AND_SET_NULL(gPokedudeBattlerStates[i]); } @@ -51,6 +56,7 @@ void FreeBattleResources(void) if (gBattleResources != NULL) { FREE_AND_SET_NULL(gBattleStruct); + FREE_AND_SET_NULL(gBattleResources->secretBase); FREE_AND_SET_NULL(gBattleResources->flags); FREE_AND_SET_NULL(gBattleResources->battleScriptsStack); @@ -60,21 +66,26 @@ void FreeBattleResources(void) FREE_AND_SET_NULL(gBattleResources->battleHistory); FREE_AND_SET_NULL(gBattleResources->AI_ScriptsStack); FREE_AND_SET_NULL(gBattleResources); + FREE_AND_SET_NULL(gLinkBattleSendBuffer); FREE_AND_SET_NULL(gLinkBattleRecvBuffer); - FREE_AND_SET_NULL(gBattleAnimMons_BgTilesBuffer); - FREE_AND_SET_NULL(gBattleAnimMons_BgTilemapBuffer); + + FREE_AND_SET_NULL(gBattleAnimBgTileBuffer); + FREE_AND_SET_NULL(gBattleAnimBgTilemapBuffer); } } void AdjustFriendshipOnBattleFaint(u8 battlerId) { - u8 opposingBattlerId, opposingBattlerId2; + u8 opposingBattlerId; if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { + u8 opposingBattlerId2; + opposingBattlerId = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); opposingBattlerId2 = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT); + if (gBattleMons[opposingBattlerId2].level > gBattleMons[opposingBattlerId].level) opposingBattlerId = opposingBattlerId2; } @@ -82,6 +93,7 @@ void AdjustFriendshipOnBattleFaint(u8 battlerId) { opposingBattlerId = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); } + if (gBattleMons[opposingBattlerId].level > gBattleMons[battlerId].level) { if (gBattleMons[opposingBattlerId].level - gBattleMons[battlerId].level > 29) diff --git a/src/data.c b/src/data.c index 2b1d802ab..498f281b4 100644 --- a/src/data.c +++ b/src/data.c @@ -8,36 +8,38 @@ #include "constants/battle_ai.h" #include "constants/trainers.h" -const struct SpriteFrameImage gSpriteImages_BattlerPlayerLeft[] = +#define BATTLER_OFFSET(i) (gHeap + 0x8000 + MON_PIC_SIZE * (i)) + +const struct SpriteFrameImage gBattlerPicTable_PlayerLeft[] = { - gHeap + 0x8000, 0x800, - gHeap + 0x8800, 0x800, - gHeap + 0x9000, 0x800, - gHeap + 0x9800, 0x800, + BATTLER_OFFSET(0), MON_PIC_SIZE, + BATTLER_OFFSET(1), MON_PIC_SIZE, + BATTLER_OFFSET(2), MON_PIC_SIZE, + BATTLER_OFFSET(3), MON_PIC_SIZE, }; -const struct SpriteFrameImage gSpriteImages_BattlerOpponentLeft[] = +const struct SpriteFrameImage gBattlerPicTable_OpponentLeft[] = { - gHeap + 0xA000, 0x800, - gHeap + 0xA800, 0x800, - gHeap + 0xB000, 0x800, - gHeap + 0xB800, 0x800, + BATTLER_OFFSET(4), MON_PIC_SIZE, + BATTLER_OFFSET(5), MON_PIC_SIZE, + BATTLER_OFFSET(6), MON_PIC_SIZE, + BATTLER_OFFSET(7), MON_PIC_SIZE, }; -const struct SpriteFrameImage gSpriteImages_BattlerPlayerRight[] = +const struct SpriteFrameImage gBattlerPicTable_PlayerRight[] = { - gHeap + 0xC000, 0x800, - gHeap + 0xC800, 0x800, - gHeap + 0xD000, 0x800, - gHeap + 0xD800, 0x800, + BATTLER_OFFSET(8), MON_PIC_SIZE, + BATTLER_OFFSET(9), MON_PIC_SIZE, + BATTLER_OFFSET(10), MON_PIC_SIZE, + BATTLER_OFFSET(11), MON_PIC_SIZE, }; -const struct SpriteFrameImage gSpriteImages_BattlerOpponentRight[] = +const struct SpriteFrameImage gBattlerPicTable_OpponentRight[] = { - gHeap + 0xE000, 0x800, - gHeap + 0xE800, 0x800, - gHeap + 0xF000, 0x800, - gHeap + 0xF800, 0x800, + BATTLER_OFFSET(12), MON_PIC_SIZE, + BATTLER_OFFSET(13), MON_PIC_SIZE, + BATTLER_OFFSET(14), MON_PIC_SIZE, + BATTLER_OFFSET(15), MON_PIC_SIZE, }; const struct SpriteFrameImage gTrainerBackPicTable_Red[] = @@ -102,172 +104,177 @@ static const union AnimCmd sAnim_GeneralFrame3[] = ANIMCMD_END, }; -static const union AffineAnimCmd gSpriteAffineAnim_82347F8[] = +// Many of these affine anims seem to go unused, and +// instead SetSpriteRotScale is used to manipulate +// the battler sprites directly (for instance, in AnimTask_SwitchOutShrinkMon). +// Those with explicit indexes are referenced elsewhere. + +static const union AffineAnimCmd sAffineAnim_Battler_Normal[] = { - AFFINEANIMCMD_FRAME(0x0100, 0x0100, 0x00, 0x00), + AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gSpriteAffineAnim_8234808[] = +static const union AffineAnimCmd sAffineAnim_Battler_Flipped[] = { - AFFINEANIMCMD_FRAME(0xff00, 0x0100, 0x00, 0x00), + AFFINEANIMCMD_FRAME(-0x100, 0x0100, 0, 0), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gSpriteAffineAnim_8234818[] = +static const union AffineAnimCmd sAffineAnim_Battler_Emerge[] = { - AFFINEANIMCMD_FRAME(0x0028, 0x0028, 0x00, 0x00), - AFFINEANIMCMD_FRAME(0x0012, 0x0012, 0x00, 0x0c), + AFFINEANIMCMD_FRAME(0x28, 0x28, 0, 0), + AFFINEANIMCMD_FRAME(0x12, 0x12, 0, 12), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gSpriteAffineAnim_8234830[] = +static const union AffineAnimCmd sAffineAnim_Battler_Return[] = { - AFFINEANIMCMD_FRAME(0xfffe, 0xfffe, 0x00, 0x12), - AFFINEANIMCMD_FRAME(0xfff0, 0xfff0, 0x00, 0x0f), + AFFINEANIMCMD_FRAME(-0x2, -0x2, 0, 18), + AFFINEANIMCMD_FRAME(-0x10, -0x10, 0, 15), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gSpriteAffineAnim_8234848[] = +static const union AffineAnimCmd sAffineAnim_Battler_HorizontalSquishLoop[] = { - AFFINEANIMCMD_FRAME(0x00a0, 0x0100, 0x00, 0x00), - AFFINEANIMCMD_FRAME(0x0004, 0x0000, 0x00, 0x08), - AFFINEANIMCMD_FRAME(0xfffc, 0x0000, 0x00, 0x08), + AFFINEANIMCMD_FRAME(0xA0, 0x100, 0, 0), + AFFINEANIMCMD_FRAME( 0x4, 0x0, 0, 8), + AFFINEANIMCMD_FRAME(-0x4, 0x0, 0, 8), AFFINEANIMCMD_JUMP(1), }; -static const union AffineAnimCmd gSpriteAffineAnim_8234868[] = +static const union AffineAnimCmd sAffineAnim_Battler_Grow[] = { - AFFINEANIMCMD_FRAME(0x0002, 0x0002, 0x00, 0x14), + AFFINEANIMCMD_FRAME(0x2, 0x2, 0, 20), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gSpriteAffineAnim_8234878[] = +static const union AffineAnimCmd sAffineAnim_Battler_Shrink[] = { - AFFINEANIMCMD_FRAME(0xfffe, 0xfffe, 0x00, 0x14), + AFFINEANIMCMD_FRAME(-0x2, -0x2, 0, 20), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gSpriteAffineAnim_8234888[] = +static const union AffineAnimCmd sAffineAnim_Battler_BigToSmall[] = { - AFFINEANIMCMD_FRAME(0x0100, 0x0100, 0x00, 0000), - AFFINEANIMCMD_FRAME(0xfff0, 0xfff0, 0x00, 0x09), + AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), + AFFINEANIMCMD_FRAME(-0x10, -0x10, 0, 9), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gSpriteAffineAnim_82348A0[] = +static const union AffineAnimCmd sAffineAnim_Battler_GrowLarge[] = { - AFFINEANIMCMD_FRAME(0x0004, 0x0004, 0x00, 0x3f), + AFFINEANIMCMD_FRAME(0x4, 0x4, 0, 63), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gSpriteAffineAnim_82348B0[] = +static const union AffineAnimCmd sAffineAnim_Battler_TipRight[] = { - AFFINEANIMCMD_FRAME(0x0000, 0x0000, 0xfd, 0x05), - AFFINEANIMCMD_FRAME(0x0000, 0x0000, 0x03, 0x05), + AFFINEANIMCMD_FRAME(0x0, 0x0, -3, 5), + AFFINEANIMCMD_FRAME(0x0, 0x0, 3, 5), AFFINEANIMCMD_END, }; -const union AffineAnimCmd *const gSpriteAffineAnimTable_BattlerPlayer[] = +const union AffineAnimCmd *const gAffineAnims_BattleSpritePlayerSide[] = { - gSpriteAffineAnim_82347F8, - gSpriteAffineAnim_8234818, - gSpriteAffineAnim_8234830, - gSpriteAffineAnim_8234848, - gSpriteAffineAnim_8234868, - gSpriteAffineAnim_8234878, - gSpriteAffineAnim_82348A0, - gSpriteAffineAnim_82348B0, - gSpriteAffineAnim_8234888, + [BATTLER_AFFINE_NORMAL] = sAffineAnim_Battler_Normal, + [BATTLER_AFFINE_EMERGE] = sAffineAnim_Battler_Emerge, + [BATTLER_AFFINE_RETURN] = sAffineAnim_Battler_Return, + sAffineAnim_Battler_HorizontalSquishLoop, + sAffineAnim_Battler_Grow, + sAffineAnim_Battler_Shrink, + sAffineAnim_Battler_GrowLarge, + sAffineAnim_Battler_TipRight, + sAffineAnim_Battler_BigToSmall, }; -static const union AffineAnimCmd gSpriteAffineAnim_82348EC[] = +static const union AffineAnimCmd sAffineAnim_Battler_SpinShrink[] = { - AFFINEANIMCMD_FRAME(0xfffc, 0xfffc, 0x04, 0x3f), + AFFINEANIMCMD_FRAME(-0x4, -0x4, 4, 63), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gSpriteAffineAnim_82348FC[] = +static const union AffineAnimCmd sAffineAnim_Battler_TipLeft[] = { - AFFINEANIMCMD_FRAME(0x0000, 0x0000, 0x03, 0x05), - AFFINEANIMCMD_FRAME(0x0000, 0x0000, 0xfd, 0x05), + AFFINEANIMCMD_FRAME(0x0, 0x0, 3, 5), + AFFINEANIMCMD_FRAME(0x0, 0x0, -3, 5), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gSpriteAffineAnim_8234914[] = +static const union AffineAnimCmd sAffineAnim_Battler_RotateUpAndBack[] = { - AFFINEANIMCMD_FRAME(0x0000, 0x0000, 0xfb, 0x14), - AFFINEANIMCMD_FRAME(0x0000, 0x0000, 0x00, 0x14), - AFFINEANIMCMD_FRAME(0x0000, 0x0000, 0x05, 0x14), + AFFINEANIMCMD_FRAME(0x0, 0x0, -5, 20), + AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 20), + AFFINEANIMCMD_FRAME(0x0, 0x0, 5, 20), AFFINEANIMCMD_END, }; -static const union AffineAnimCmd gSpriteAffineAnim_8234934[] = +static const union AffineAnimCmd sAffineAnim_Battler_Spin[] = { - AFFINEANIMCMD_FRAME(0x0000, 0x0000, 0x09, 0x6e), + AFFINEANIMCMD_FRAME(0x0, 0x0, 9, 110), AFFINEANIMCMD_END, }; -const union AffineAnimCmd *const gSpriteAffineAnimTable_BattlerOpponent[] = +const union AffineAnimCmd *const gAffineAnims_BattleSpriteOpponentSide[] = { - gSpriteAffineAnim_82347F8, - gSpriteAffineAnim_8234818, - gSpriteAffineAnim_8234830, - gSpriteAffineAnim_8234848, - gSpriteAffineAnim_8234868, - gSpriteAffineAnim_8234878, - gSpriteAffineAnim_82348EC, - gSpriteAffineAnim_82348FC, - gSpriteAffineAnim_8234914, - gSpriteAffineAnim_8234888, - gSpriteAffineAnim_8234934, + [BATTLER_AFFINE_NORMAL] = sAffineAnim_Battler_Normal, + [BATTLER_AFFINE_EMERGE] = sAffineAnim_Battler_Emerge, + [BATTLER_AFFINE_RETURN] = sAffineAnim_Battler_Return, + sAffineAnim_Battler_HorizontalSquishLoop, + sAffineAnim_Battler_Grow, + sAffineAnim_Battler_Shrink, + sAffineAnim_Battler_SpinShrink, + sAffineAnim_Battler_TipLeft, + sAffineAnim_Battler_RotateUpAndBack, + sAffineAnim_Battler_BigToSmall, + sAffineAnim_Battler_Spin, }; -const union AffineAnimCmd *const gSpriteAffineAnimTable_82349470[] = +const union AffineAnimCmd *const gAffineAnims_BattleSpriteContest[] = { - gSpriteAffineAnim_8234808, - gSpriteAffineAnim_8234818, - gSpriteAffineAnim_8234830, - gSpriteAffineAnim_8234848, - gSpriteAffineAnim_8234868, - gSpriteAffineAnim_8234878, - gSpriteAffineAnim_82348EC, - gSpriteAffineAnim_82348FC, - gSpriteAffineAnim_8234914, - gSpriteAffineAnim_8234888, - gSpriteAffineAnim_8234934, + [BATTLER_AFFINE_NORMAL] = sAffineAnim_Battler_Flipped, + [BATTLER_AFFINE_EMERGE] = sAffineAnim_Battler_Emerge, + [BATTLER_AFFINE_RETURN] = sAffineAnim_Battler_Return, + sAffineAnim_Battler_HorizontalSquishLoop, + sAffineAnim_Battler_Grow, + sAffineAnim_Battler_Shrink, + sAffineAnim_Battler_SpinShrink, + sAffineAnim_Battler_TipLeft, + sAffineAnim_Battler_RotateUpAndBack, + sAffineAnim_Battler_BigToSmall, + sAffineAnim_Battler_Spin, }; -static const union AnimCmd gSpriteAnim_823499C[] = +static const union AnimCmd sAnim_MonPic_0[] = { ANIMCMD_FRAME(0, 0), ANIMCMD_END, }; -static const union AnimCmd gSpriteAnim_82349A4[] = +static const union AnimCmd sAnim_MonPic_1[] = { ANIMCMD_FRAME(1, 0), ANIMCMD_END, }; -static const union AnimCmd gSpriteAnim_82349AC[] = +static const union AnimCmd sAnim_MonPic_2[] = { ANIMCMD_FRAME(2, 0), ANIMCMD_END, }; -static const union AnimCmd gSpriteAnim_82349B4[] = +static const union AnimCmd sAnim_MonPic_3[] = { ANIMCMD_FRAME(3, 0), ANIMCMD_END, }; -const union AnimCmd *const gSpriteAnimTable_82349BC[] = +const union AnimCmd *const gAnims_MonPic[] = { - gSpriteAnim_823499C, - gSpriteAnim_82349A4, - gSpriteAnim_82349AC, - gSpriteAnim_82349B4, + sAnim_MonPic_0, + sAnim_MonPic_1, + sAnim_MonPic_2, + sAnim_MonPic_3, }; #define SPECIES_SPRITE(species, sprite) [SPECIES_##species] = {sprite, 0x800, SPECIES_##species} diff --git a/src/data/object_events/movement_action_func_tables.h b/src/data/object_events/movement_action_func_tables.h index 9abd6452a..2a1c496f7 100644 --- a/src/data/object_events/movement_action_func_tables.h +++ b/src/data/object_events/movement_action_func_tables.h @@ -1,87 +1,28 @@ -static bool8 MovementActionFunc_x04_0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementActionFunc_x05_0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementActionFunc_x06_0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementActionFunc_x07_0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementActionFunc_x08_0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementActionFunc_x08_1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementActionFunc_x09_0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementActionFunc_x09_1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementActionFunc_x0A_0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementActionFunc_x0A_1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementActionFunc_x0B_0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementActionFunc_x0B_1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementActionFunc_x0C_0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementActionFunc_x0C_1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementActionFunc_x0D_0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementActionFunc_x0D_1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementActionFunc_x0E_0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementActionFunc_x0E_1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementActionFunc_x0F_0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementActionFunc_x0F_1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementActionFunc_x41_0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementActionFunc_x41_1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementActionFunc_x42_0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementActionFunc_x42_1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementActionFunc_x43_0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementActionFunc_x43_1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementActionFunc_x44_0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementActionFunc_x44_1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementActionFunc_x70_0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementActionFunc_x71_0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementActionFunc_x72_0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementActionFunc_x73_0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementActionFunc_x88_0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementActionFunc_x89_0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementActionFunc_x8A_0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementActionFunc_x8B_0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementActionFunc_x94_0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementActionFunc_x94_1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementActionFunc_x95_0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementActionFunc_x95_1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementActionFunc_x96_0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementActionFunc_x96_1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementActionFunc_x97_0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementActionFunc_x97_1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementActionFunc_x98_0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementActionFunc_x98_1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementActionFunc_x99_1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementActionFunc_x9A_1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementActionFunc_x9B_0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementActionFunc_x9B_1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementActionFunc_x9C_0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementActionFunc_x9C_1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementActionFunc_x9D_0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementActionFunc_x9D_1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementActionFunc_x9E_0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementActionFunc_x9E_1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementActionFunc_x9F_0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementActionFunc_x9F_1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementActionFunc_xA0_0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementActionFunc_xA0_1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementActionFunc_xA1_0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementActionFunc_xA1_1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementActionFunc_xA2_0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementActionFunc_xA2_1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementActionFunc_xA3_0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementActionFunc_xA3_1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementActionFunc_xA4_0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementActionFunc_xA4_1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementActionFunc_xA4_2(struct ObjectEvent *, struct Sprite *); -static bool8 MovementActionFunc_xA5_0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementActionFunc_xA5_1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementActionFunc_xA6_0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementActionFunc_xA6_1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementActionFunc_xA7_0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementActionFunc_xA7_1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementActionFunc_xA8_0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementActionFunc_xA8_1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementActionFunc_xA9_0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementActionFunc_xA9_1(struct ObjectEvent *, struct Sprite *); static bool8 MovementAction_FaceDown_Step0(struct ObjectEvent *, struct Sprite *); static bool8 MovementAction_FaceUp_Step0(struct ObjectEvent *, struct Sprite *); static bool8 MovementAction_FaceLeft_Step0(struct ObjectEvent *, struct Sprite *); static bool8 MovementAction_FaceRight_Step0(struct ObjectEvent *, struct Sprite *); static bool8 MovementAction_PauseSpriteAnim(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_FaceDownFast_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_FaceUpFast_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_FaceLeftFast_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_FaceRightFast_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_WalkSlowerDown_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_WalkSlowerDown_Step1(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_WalkSlowerUp_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_WalkSlowerUp_Step1(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_WalkSlowerLeft_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_WalkSlowerLeft_Step1(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_WalkSlowerRight_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_WalkSlowerRight_Step1(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_WalkSlowDown_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_WalkSlowDown_Step1(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_WalkSlowUp_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_WalkSlowUp_Step1(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_WalkSlowLeft_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_WalkSlowLeft_Step1(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_WalkSlowRight_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_WalkSlowRight_Step1(struct ObjectEvent *, struct Sprite *); static bool8 MovementAction_WalkNormalDown_Step0(struct ObjectEvent *, struct Sprite *); static bool8 MovementAction_WalkNormalDown_Step1(struct ObjectEvent *, struct Sprite *); static bool8 MovementAction_WalkNormalUp_Step0(struct ObjectEvent *, struct Sprite *); @@ -104,10 +45,10 @@ static bool8 MovementAction_WalkInPlaceFastDown_Step0(struct ObjectEvent *, stru static bool8 MovementAction_WalkInPlaceFastUp_Step0(struct ObjectEvent *, struct Sprite *); static bool8 MovementAction_WalkInPlaceFastLeft_Step0(struct ObjectEvent *, struct Sprite *); static bool8 MovementAction_WalkInPlaceFastRight_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkInPlaceFastestDown_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkInPlaceFastestUp_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkInPlaceFastestLeft_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkInPlaceFastestRight_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_WalkInPlaceFasterDown_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_WalkInPlaceFasterUp_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_WalkInPlaceFasterLeft_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_WalkInPlaceFasterRight_Step0(struct ObjectEvent *, struct Sprite *); static bool8 MovementAction_Jump2Down_Step0(struct ObjectEvent *, struct Sprite *); static bool8 MovementAction_Jump2Down_Step1(struct ObjectEvent *, struct Sprite *); static bool8 MovementAction_Jump2Up_Step0(struct ObjectEvent *, struct Sprite *); @@ -116,6 +57,12 @@ static bool8 MovementAction_Jump2Left_Step0(struct ObjectEvent *, struct Sprite static bool8 MovementAction_Jump2Left_Step1(struct ObjectEvent *, struct Sprite *); static bool8 MovementAction_Jump2Right_Step0(struct ObjectEvent *, struct Sprite *); static bool8 MovementAction_Jump2Right_Step1(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_Delay1_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_Delay2_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_Delay4_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_Delay8_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_Delay16_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_Delay_Step1(struct ObjectEvent *, struct Sprite *); static bool8 MovementAction_WalkFastDown_Step0(struct ObjectEvent *, struct Sprite *); static bool8 MovementAction_WalkFastDown_Step1(struct ObjectEvent *, struct Sprite *); static bool8 MovementAction_WalkFastUp_Step0(struct ObjectEvent *, struct Sprite *); @@ -132,14 +79,14 @@ static bool8 MovementAction_RideWaterCurrentLeft_Step0(struct ObjectEvent *, str static bool8 MovementAction_RideWaterCurrentLeft_Step1(struct ObjectEvent *, struct Sprite *); static bool8 MovementAction_RideWaterCurrentRight_Step0(struct ObjectEvent *, struct Sprite *); static bool8 MovementAction_RideWaterCurrentRight_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkFastestDown_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkFastestDown_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkFastestUp_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkFastestUp_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkFastestLeft_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkFastestLeft_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkFastestRight_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_WalkFastestRight_Step1(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_WalkFasterDown_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_WalkFasterDown_Step1(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_WalkFasterUp_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_WalkFasterUp_Step1(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_WalkFasterLeft_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_WalkFasterLeft_Step1(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_WalkFasterRight_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_WalkFasterRight_Step1(struct ObjectEvent *, struct Sprite *); static bool8 MovementAction_SlideDown_Step0(struct ObjectEvent *, struct Sprite *); static bool8 MovementAction_SlideDown_Step1(struct ObjectEvent *, struct Sprite *); static bool8 MovementAction_SlideUp_Step0(struct ObjectEvent *, struct Sprite *); @@ -156,6 +103,15 @@ static bool8 MovementAction_PlayerRunLeft_Step0(struct ObjectEvent *, struct Spr static bool8 MovementAction_PlayerRunLeft_Step1(struct ObjectEvent *, struct Sprite *); static bool8 MovementAction_PlayerRunRight_Step0(struct ObjectEvent *, struct Sprite *); static bool8 MovementAction_PlayerRunRight_Step1(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_RunDownSlow_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_RunDownSlow_Step1(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_RunUpSlow_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_RunUpSlow_Step1(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_RunLeftSlow_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_RunLeftSlow_Step1(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_RunRightSlow_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_RunRightSlow_Step1(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_StartAnimInDirection_Step0(struct ObjectEvent *, struct Sprite *); static bool8 MovementAction_JumpSpecialDown_Step0(struct ObjectEvent *, struct Sprite *); static bool8 MovementAction_JumpSpecialDown_Step1(struct ObjectEvent *, struct Sprite *); static bool8 MovementAction_JumpSpecialUp_Step0(struct ObjectEvent *, struct Sprite *); @@ -164,6 +120,10 @@ static bool8 MovementAction_JumpSpecialLeft_Step0(struct ObjectEvent *, struct S static bool8 MovementAction_JumpSpecialLeft_Step1(struct ObjectEvent *, struct Sprite *); static bool8 MovementAction_JumpSpecialRight_Step0(struct ObjectEvent *, struct Sprite *); static bool8 MovementAction_JumpSpecialRight_Step1(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_FacePlayer_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_FaceAwayPlayer_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_LockFacingDirection_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_UnlockFacingDirection_Step0(struct ObjectEvent *, struct Sprite *); static bool8 MovementAction_JumpDown_Step0(struct ObjectEvent *, struct Sprite *); static bool8 MovementAction_JumpDown_Step1(struct ObjectEvent *, struct Sprite *); static bool8 MovementAction_JumpUp_Step0(struct ObjectEvent *, struct Sprite *); @@ -188,12 +148,55 @@ static bool8 MovementAction_JumpInPlaceLeftRight_Step0(struct ObjectEvent *, str static bool8 MovementAction_JumpInPlaceLeftRight_Step1(struct ObjectEvent *, struct Sprite *); static bool8 MovementAction_JumpInPlaceRightLeft_Step0(struct ObjectEvent *, struct Sprite *); static bool8 MovementAction_JumpInPlaceRightLeft_Step1(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_FaceOriginalDirection_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_NurseJoyBowDown_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_EnableJumpLandingGroundEffect_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_DisableJumpLandingGroundEffect_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_DisableAnimation_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_RestoreAnimation_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_SetInvisible_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_SetVisible_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_EmoteExclamationMark_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_EmoteQuestionMark_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_EmoteX_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_EmoteDoubleExclamationMark_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_EmoteSmile_Step0(struct ObjectEvent *, struct Sprite *); static bool8 MovementAction_RevealTrainer_Step0(struct ObjectEvent *, struct Sprite *); static bool8 MovementAction_RevealTrainer_Step1(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_RockSmashBreak_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_RockSmashBreak_Step1(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_RockSmashBreak_Step2(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_CutTree_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_CutTree_Step1(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_CutTree_Step2(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_SetFixedPriority_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_ClearFixedPriority_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_InitAffineAnim_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_ClearAffineAnim_Step0(struct ObjectEvent *, struct Sprite *); static bool8 MovementAction_WalkDownStartAffine_Step0(struct ObjectEvent *, struct Sprite *); static bool8 MovementAction_WalkDownStartAffine_Step1(struct ObjectEvent *, struct Sprite *); static bool8 MovementAction_WalkDownAffine_Step0(struct ObjectEvent *, struct Sprite *); static bool8 MovementAction_WalkDownAffine_Step1(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_AcroWheelieFaceDown_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_AcroWheelieFaceUp_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_AcroWheelieFaceLeft_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_AcroWheelieFaceRight_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_AcroPopWheelieDown_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_AcroPopWheelieDown_Step1(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_AcroPopWheelieUp_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_AcroPopWheelieUp_Step1(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_AcroPopWheelieLeft_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_AcroPopWheelieLeft_Step1(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_AcroPopWheelieRight_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_AcroPopWheelieRight_Step1(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_AcroEndWheelieFaceDown_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_AcroEndWheelieFaceUp_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_AcroEndWheelieFaceLeft_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_AcroEndWheelieFaceRight_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_UnusedAcroActionDown_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_UnusedAcroActionUp_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_UnusedAcroActionLeft_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_UnusedAcroActionRight_Step0(struct ObjectEvent *, struct Sprite *); static bool8 MovementAction_AcroWheelieHopFaceDown_Step0(struct ObjectEvent *, struct Sprite *); static bool8 MovementAction_AcroWheelieHopFaceDown_Step1(struct ObjectEvent *, struct Sprite *); static bool8 MovementAction_AcroWheelieHopFaceUp_Step0(struct ObjectEvent *, struct Sprite *); @@ -218,14 +221,10 @@ static bool8 MovementAction_AcroWheelieJumpLeft_Step0(struct ObjectEvent *, stru static bool8 MovementAction_AcroWheelieJumpLeft_Step1(struct ObjectEvent *, struct Sprite *); static bool8 MovementAction_AcroWheelieJumpRight_Step0(struct ObjectEvent *, struct Sprite *); static bool8 MovementAction_AcroWheelieJumpRight_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_AcroPopWheelieDown_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_AcroPopWheelieDown_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_AcroPopWheelieUp_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_AcroPopWheelieUp_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_AcroPopWheelieLeft_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_AcroPopWheelieLeft_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_AcroPopWheelieRight_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_AcroPopWheelieRight_Step1(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_AcroWheelieInPlaceDown_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_AcroWheelieInPlaceUp_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_AcroWheelieInPlaceLeft_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_AcroWheelieInPlaceRight_Step0(struct ObjectEvent *, struct Sprite *); static bool8 MovementAction_AcroPopWheelieMoveDown_Step0(struct ObjectEvent *, struct Sprite *); static bool8 MovementAction_AcroPopWheelieMoveDown_Step1(struct ObjectEvent *, struct Sprite *); static bool8 MovementAction_AcroPopWheelieMoveUp_Step0(struct ObjectEvent *, struct Sprite *); @@ -242,1404 +241,1426 @@ static bool8 MovementAction_AcroWheelieMoveLeft_Step0(struct ObjectEvent *, stru static bool8 MovementAction_AcroWheelieMoveLeft_Step1(struct ObjectEvent *, struct Sprite *); static bool8 MovementAction_AcroWheelieMoveRight_Step0(struct ObjectEvent *, struct Sprite *); static bool8 MovementAction_AcroWheelieMoveRight_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_AcroEndWheelieFaceDown_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_AcroEndWheelieFaceUp_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_AcroEndWheelieFaceLeft_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_AcroEndWheelieFaceRight_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_UnusedAcroActionDown_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_UnusedAcroActionUp_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_UnusedAcroActionLeft_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_UnusedAcroActionRight_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_RockSmashBreak_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_RockSmashBreak_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_RockSmashBreak_Step2(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_CutTree_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_CutTree_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_CutTree_Step2(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_SpinDown_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_SpinDown_Step1(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_SpinUp_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_SpinUp_Step1(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_SpinLeft_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_SpinLeft_Step1(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_SpinRight_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_SpinRight_Step1(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_RaiseHand_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_RaiseHandAndStop_Step1(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_RaiseHandAndJump_Step1(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_RaiseHandAndSwim_Step1(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_WalkSlowestDown_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_WalkSlowestDown_Step1(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_WalkSlowestUp_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_WalkSlowestUp_Step1(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_WalkSlowestLeft_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_WalkSlowestLeft_Step1(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_WalkSlowestRight_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_WalkSlowestRight_Step1(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_ShakeHeadOrWalkInPlace_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_ShakeHeadOrWalkInPlace_Step1(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_GlideDown_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_GlideDown_Step1(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_GlideUp_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_GlideUp_Step1(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_GlideLeft_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_GlideLeft_Step1(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_GlideRight_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_GlideRight_Step1(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_FlyUp_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_FlyUp_Step1(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_FlyUp_Step2(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_FlyDown_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_FlyDown_Step1(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_JumpSpecialWithEffectDown_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_JumpSpecialWithEffectDown_Step1(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_JumpSpecialWithEffectUp_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_JumpSpecialWithEffectUp_Step1(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_JumpSpecialWithEffectLeft_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_JumpSpecialWithEffectLeft_Step1(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_JumpSpecialWithEffectRight_Step0(struct ObjectEvent *, struct Sprite *); +static bool8 MovementAction_JumpSpecialWithEffectRight_Step1(struct ObjectEvent *, struct Sprite *); static bool8 MovementAction_WaitSpriteAnim(struct ObjectEvent *, struct Sprite *); static bool8 MovementAction_Finish(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_Delay_Step1(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_Delay1_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_Delay2_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_Delay4_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_Delay8_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_Delay16_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_FacePlayer_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_FaceAwayPlayer_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_FaceOriginalDirection_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_LockFacingDirection_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_UnlockFacingDirection_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_DisableAnimation_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_RestoreAnimation_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_SetInvisible_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_SetVisible_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_StartAnimInDirection_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_NurseJoyBowDown_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_EnableJumpLandingGroundEffect_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_DisableJumpLandingGroundEffect_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_EmoteExclamationMark_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_EmoteQuestionMark_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_EmoteHeart_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 do_double_excl_bubble(struct ObjectEvent *, struct Sprite *); -static bool8 do_smile_bubble(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_SetFixedPriority_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_ClearFixedPriority_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_InitAffineAnim_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 MovementAction_ClearAffineAnim_Step0(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x00[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x01[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x02[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x03[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x04[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x05[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x06[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x07[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x08[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x09[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x0A[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x0B[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x0D[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x0C[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x0E[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x0F[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x10[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x11[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x12[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x13[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x14[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x15[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x16[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x17[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x18[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x19[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x1A[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x1B[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x1C[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x1D[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x1E[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x1F[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x20[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x21[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x22[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x23[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x24[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x25[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x26[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x27[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x28[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x29[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x2A[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x2B[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x2C[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x2D[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x2E[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x2F[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x30[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x31[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x32[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x33[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x34[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x35[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x36[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x37[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x38[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x39[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x3A[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x3B[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x3C[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x3D[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x3E[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x3F[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x40[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x41[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x42[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x43[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x44[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x45[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x46[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x47[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x48[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x49[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x4A[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x4B[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x4C[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x4D[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x4E[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x4F[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x50[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x51[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x52[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x53[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x54[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x55[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x56[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x57[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x58[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x59[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x5A[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x5B[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x5C[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x5D[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x5E[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x5F[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x60[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x61[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x62[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x63[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x64[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x65[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x66[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x67[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x68[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x69[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x6A[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x6B[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x6C[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x6D[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x6E[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x6F[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x70[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x71[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x72[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x73[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x74[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x75[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x76[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x77[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x78[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x79[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x7A[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x7B[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x7C[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x7D[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x7E[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x7F[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x80[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x81[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x82[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x83[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x84[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x85[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x86[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x87[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x88[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x89[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x8A[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x8B[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x8C[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x8D[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x8E[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x8F[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x90[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x91[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x92[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x93[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x94[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x95[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x96[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x97[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x98[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x99[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x9A[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x9B[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x9C[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x9D[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x9E[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_x9F[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_xA0[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_xA1[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_xA2[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_xA3[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_xA4[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_xA5[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_xA6[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_xA7[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_xA8[])(struct ObjectEvent *, struct Sprite *); -static bool8 (*const sMovementActionFuncs_xA9[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_FaceDown[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_FaceUp[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_FaceLeft[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_FaceRight[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_FaceDownFast[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_FaceUpFast[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_FaceLeftFast[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_FaceRightFast[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_WalkSlowerDown[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_WalkSlowerUp[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_WalkSlowerLeft[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_WalkSlowerRight[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_WalkSlowUp[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_WalkSlowDown[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_WalkSlowLeft[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_WalkSlowRight[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_WalkNormalDown[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_WalkNormalUp[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_WalkNormalLeft[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_WalkNormalRight[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_Jump2Down[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_Jump2Up[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_Jump2Left[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_Jump2Right[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_Delay1[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_Delay2[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_Delay4[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_Delay8[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_Delay16[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_WalkFastDown[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_WalkFastUp[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_WalkFastLeft[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_WalkFastRight[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_WalkInPlaceSlowDown[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_WalkInPlaceSlowUp[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_WalkInPlaceSlowLeft[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_WalkInPlaceSlowRight[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_WalkInPlaceNormalDown[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_WalkInPlaceNormalUp[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_WalkInPlaceNormalLeft[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_WalkInPlaceNormalRight[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_WalkInPlaceFastDown[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_WalkInPlaceFastUp[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_WalkInPlaceFastLeft[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_WalkInPlaceFastRight[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_WalkInPlaceFasterDown[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_WalkInPlaceFasterUp[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_WalkInPlaceFasterLeft[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_WalkInPlaceFasterRight[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_RideWaterCurrentDown[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_RideWaterCurrentUp[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_RideWaterCurrentLeft[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_RideWaterCurrentRight[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_WalkFasterDown[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_WalkFasterUp[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_WalkFasterLeft[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_WalkFasterRight[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_SlideDown[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_SlideUp[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_SlideLeft[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_SlideRight[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_PlayerRunDown[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_PlayerRunUp[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_PlayerRunLeft[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_PlayerRunRight[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_PlayerRunDownSlow[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_PlayerRunUpSlow[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_PlayerRunLeftSlow[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_PlayerRunRightSlow[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_StartAnimInDirection[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_JumpSpecialDown[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_JumpSpecialUp[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_JumpSpecialLeft[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_JumpSpecialRight[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_FacePlayer[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_FaceAwayPlayer[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_LockFacingDirection[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_UnlockFacingDirection[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_JumpDown[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_JumpUp[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_JumpLeft[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_JumpRight[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_JumpInPlaceDown[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_JumpInPlaceUp[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_JumpInPlaceLeft[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_JumpInPlaceRight[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_JumpInPlaceDownUp[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_JumpInPlaceUpDown[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_JumpInPlaceLeftRight[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_JumpInPlaceRightLeft[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_FaceOriginalDirection[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_NurseJoyBowDown[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_EnableJumpLandingGroundEffect[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_DisableJumpLandingGroundEffect[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_DisableAnimation[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_RestoreAnimation[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_SetInvisible[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_SetVisible[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_EmoteExclamationMark[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_EmoteQuestionMark[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_EmoteX[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_EmoteDoubleExclMark[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_EmoteSmile[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_RevealTrainer[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_RockSmashBreak[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_CutTree[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_SetFixedPriority[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_ClearFixedPriority[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_InitAffineAnim[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_ClearAffineAnim[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_WalkDownStartAffine[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_WalkDownAffine[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_AcroWheelieFaceDown[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_AcroWheelieFaceUp[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_AcroWheelieFaceLeft[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_AcroWheelieFaceRight[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_AcroPopWheelieDown[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_AcroPopWheelieUp[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_AcroPopWheelieLeft[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_AcroPopWheelieRight[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_AcroEndWheelieFaceDown[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_AcroEndWheelieFaceUp[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_AcroEndWheelieFaceLeft[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_AcroEndWheelieFaceRight[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_AcroWheelieHopFaceDown[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_AcroWheelieHopFaceUp[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_AcroWheelieHopFaceLeft[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_AcroWheelieHopFaceRight[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_AcroWheelieHopDown[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_AcroWheelieHopUp[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_AcroWheelieHopLeft[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_AcroWheelieHopRight[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_AcroWheelieJumpDown[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_AcroWheelieJumpUp[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_AcroWheelieJumpLeft[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_AcroWheelieJumpRight[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_AcroWheelieInPlaceDown[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_AcroWheelieInPlaceUp[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_AcroWheelieInPlaceLeft[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_AcroWheelieInPlaceRight[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_AcroPopWheelieMoveDown[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_AcroPopWheelieMoveUp[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_AcroPopWheelieMoveLeft[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_AcroPopWheelieMoveRight[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_AcroWheelieMoveDown[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_AcroWheelieMoveUp[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_AcroWheelieMoveLeft[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_AcroWheelieMoveRight[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_SpinDown[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_SpinUp[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_SpinLeft[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_SpinRight[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_RaiseHandAndStop[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_RaiseHandAndJump[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_RaiseHandAndSwim[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_WalkSlowestDown[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_WalkSlowestUp[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_WalkSlowestLeft[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_WalkSlowestRight[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_ShakeHeadOrWalkInPlace[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_GlideDown[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_GlideUp[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_GlideLeft[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_GlideRight[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_FlyUp[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_FlyDown[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_JumpSpecialWithEffectDown[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_JumpSpecialWithEffectUp[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_JumpSpecialWithEffectLeft[])(struct ObjectEvent *, struct Sprite *); +static bool8 (*const sMovementActionFuncs_JumpSpecialWithEffectRight[])(struct ObjectEvent *, struct Sprite *); static u8 GetMoveDirectionFastAnimNum(u8 direction); static u8 GetMoveDirectionFasterAnimNum(u8 direction); static u8 GetMoveDirectionFastestAnimNum(u8 direction); -bool8 (*const *const gMovementActionFuncs[])(struct ObjectEvent *, struct Sprite *) = { - [MOVEMENT_ACTION_FACE_DOWN] = sMovementActionFuncs_x00, - [MOVEMENT_ACTION_FACE_UP] = sMovementActionFuncs_x01, - [MOVEMENT_ACTION_FACE_LEFT] = sMovementActionFuncs_x02, - [MOVEMENT_ACTION_FACE_RIGHT] = sMovementActionFuncs_x03, - [MOVEMENT_ACTION_FACE_DOWN_FAST] = sMovementActionFuncs_x04, - [MOVEMENT_ACTION_FACE_UP_FAST] = sMovementActionFuncs_x05, - [MOVEMENT_ACTION_FACE_LEFT_FAST] = sMovementActionFuncs_x06, - [MOVEMENT_ACTION_FACE_RIGHT_FAST] = sMovementActionFuncs_x07, - [MOVEMENT_ACTION_WALK_SLOWER_DOWN] = sMovementActionFuncs_x08, - [MOVEMENT_ACTION_WALK_SLOWER_UP] = sMovementActionFuncs_x09, - [MOVEMENT_ACTION_WALK_SLOWER_LEFT] = sMovementActionFuncs_x0A, - [MOVEMENT_ACTION_WALK_SLOWER_RIGHT] = sMovementActionFuncs_x0B, - [MOVEMENT_ACTION_WALK_SLOW_DOWN] = sMovementActionFuncs_x0C, - [MOVEMENT_ACTION_WALK_SLOW_UP] = sMovementActionFuncs_x0D, - [MOVEMENT_ACTION_WALK_SLOW_LEFT] = sMovementActionFuncs_x0E, - [MOVEMENT_ACTION_WALK_SLOW_RIGHT] = sMovementActionFuncs_x0F, - [MOVEMENT_ACTION_WALK_NORMAL_DOWN] = sMovementActionFuncs_x10, - [MOVEMENT_ACTION_WALK_NORMAL_UP] = sMovementActionFuncs_x11, - [MOVEMENT_ACTION_WALK_NORMAL_LEFT] = sMovementActionFuncs_x12, - [MOVEMENT_ACTION_WALK_NORMAL_RIGHT] = sMovementActionFuncs_x13, - [MOVEMENT_ACTION_JUMP_2_DOWN] = sMovementActionFuncs_x14, - [MOVEMENT_ACTION_JUMP_2_UP] = sMovementActionFuncs_x15, - [MOVEMENT_ACTION_JUMP_2_LEFT] = sMovementActionFuncs_x16, - [MOVEMENT_ACTION_JUMP_2_RIGHT] = sMovementActionFuncs_x17, - [MOVEMENT_ACTION_DELAY_1] = sMovementActionFuncs_x18, - [MOVEMENT_ACTION_DELAY_2] = sMovementActionFuncs_x19, - [MOVEMENT_ACTION_DELAY_4] = sMovementActionFuncs_x1A, - [MOVEMENT_ACTION_DELAY_8] = sMovementActionFuncs_x1B, - [MOVEMENT_ACTION_DELAY_16] = sMovementActionFuncs_x1C, - [MOVEMENT_ACTION_WALK_FAST_DOWN] = sMovementActionFuncs_x1D, - [MOVEMENT_ACTION_WALK_FAST_UP] = sMovementActionFuncs_x1E, - [MOVEMENT_ACTION_WALK_FAST_LEFT] = sMovementActionFuncs_x1F, - [MOVEMENT_ACTION_WALK_FAST_RIGHT] = sMovementActionFuncs_x20, - [MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_DOWN] = sMovementActionFuncs_x21, - [MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_UP] = sMovementActionFuncs_x22, - [MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_LEFT] = sMovementActionFuncs_x23, - [MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_RIGHT] = sMovementActionFuncs_x24, - [MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_DOWN] = sMovementActionFuncs_x25, - [MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_UP] = sMovementActionFuncs_x26, - [MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_LEFT] = sMovementActionFuncs_x27, - [MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_RIGHT] = sMovementActionFuncs_x28, - [MOVEMENT_ACTION_WALK_IN_PLACE_FAST_DOWN] = sMovementActionFuncs_x29, - [MOVEMENT_ACTION_WALK_IN_PLACE_FAST_UP] = sMovementActionFuncs_x2A, - [MOVEMENT_ACTION_WALK_IN_PLACE_FAST_LEFT] = sMovementActionFuncs_x2B, - [MOVEMENT_ACTION_WALK_IN_PLACE_FAST_RIGHT] = sMovementActionFuncs_x2C, - [MOVEMENT_ACTION_WALK_IN_PLACE_FASTEST_DOWN] = sMovementActionFuncs_x2D, - [MOVEMENT_ACTION_WALK_IN_PLACE_FASTEST_UP] = sMovementActionFuncs_x2E, - [MOVEMENT_ACTION_WALK_IN_PLACE_FASTEST_LEFT] = sMovementActionFuncs_x2F, - [MOVEMENT_ACTION_WALK_IN_PLACE_FASTEST_RIGHT] = sMovementActionFuncs_x30, - [MOVEMENT_ACTION_RIDE_WATER_CURRENT_DOWN] = sMovementActionFuncs_x31, - [MOVEMENT_ACTION_RIDE_WATER_CURRENT_UP] = sMovementActionFuncs_x32, - [MOVEMENT_ACTION_RIDE_WATER_CURRENT_LEFT] = sMovementActionFuncs_x33, - [MOVEMENT_ACTION_RIDE_WATER_CURRENT_RIGHT] = sMovementActionFuncs_x34, - [MOVEMENT_ACTION_WALK_FASTEST_DOWN] = sMovementActionFuncs_x35, - [MOVEMENT_ACTION_WALK_FASTEST_UP] = sMovementActionFuncs_x36, - [MOVEMENT_ACTION_WALK_FASTEST_LEFT] = sMovementActionFuncs_x37, - [MOVEMENT_ACTION_WALK_FASTEST_RIGHT] = sMovementActionFuncs_x38, - [MOVEMENT_ACTION_SLIDE_DOWN] = sMovementActionFuncs_x39, - [MOVEMENT_ACTION_SLIDE_UP] = sMovementActionFuncs_x3A, - [MOVEMENT_ACTION_SLIDE_LEFT] = sMovementActionFuncs_x3B, - [MOVEMENT_ACTION_SLIDE_RIGHT] = sMovementActionFuncs_x3C, - [MOVEMENT_ACTION_PLAYER_RUN_DOWN] = sMovementActionFuncs_x3D, - [MOVEMENT_ACTION_PLAYER_RUN_UP] = sMovementActionFuncs_x3E, - [MOVEMENT_ACTION_PLAYER_RUN_LEFT] = sMovementActionFuncs_x3F, - [MOVEMENT_ACTION_PLAYER_RUN_RIGHT] = sMovementActionFuncs_x40, - [MOVEMENT_ACTION_PLAYER_RUN_DOWN_SLOW] = sMovementActionFuncs_x41, - [MOVEMENT_ACTION_PLAYER_RUN_UP_SLOW] = sMovementActionFuncs_x42, - [MOVEMENT_ACTION_PLAYER_RUN_LEFT_SLOW] = sMovementActionFuncs_x43, - [MOVEMENT_ACTION_PLAYER_RUN_RIGHT_SLOW] = sMovementActionFuncs_x44, - [MOVEMENT_ACTION_START_ANIM_IN_DIRECTION] = sMovementActionFuncs_x45, - [MOVEMENT_ACTION_JUMP_SPECIAL_DOWN] = sMovementActionFuncs_x46, - [MOVEMENT_ACTION_JUMP_SPECIAL_UP] = sMovementActionFuncs_x47, - [MOVEMENT_ACTION_JUMP_SPECIAL_LEFT] = sMovementActionFuncs_x48, - [MOVEMENT_ACTION_JUMP_SPECIAL_RIGHT] = sMovementActionFuncs_x49, - [MOVEMENT_ACTION_FACE_PLAYER] = sMovementActionFuncs_x4A, - [MOVEMENT_ACTION_FACE_AWAY_PLAYER] = sMovementActionFuncs_x4B, - [MOVEMENT_ACTION_LOCK_FACING_DIRECTION] = sMovementActionFuncs_x4C, - [MOVEMENT_ACTION_UNLOCK_FACING_DIRECTION] = sMovementActionFuncs_x4D, - [MOVEMENT_ACTION_JUMP_DOWN] = sMovementActionFuncs_x4E, - [MOVEMENT_ACTION_JUMP_UP] = sMovementActionFuncs_x4F, - [MOVEMENT_ACTION_JUMP_LEFT] = sMovementActionFuncs_x50, - [MOVEMENT_ACTION_JUMP_RIGHT] = sMovementActionFuncs_x51, - [MOVEMENT_ACTION_JUMP_IN_PLACE_DOWN] = sMovementActionFuncs_x52, - [MOVEMENT_ACTION_JUMP_IN_PLACE_UP] = sMovementActionFuncs_x53, - [MOVEMENT_ACTION_JUMP_IN_PLACE_LEFT] = sMovementActionFuncs_x54, - [MOVEMENT_ACTION_JUMP_IN_PLACE_RIGHT] = sMovementActionFuncs_x55, - [MOVEMENT_ACTION_JUMP_IN_PLACE_DOWN_UP] = sMovementActionFuncs_x56, - [MOVEMENT_ACTION_JUMP_IN_PLACE_UP_DOWN] = sMovementActionFuncs_x57, - [MOVEMENT_ACTION_JUMP_IN_PLACE_LEFT_RIGHT] = sMovementActionFuncs_x58, - [MOVEMENT_ACTION_JUMP_IN_PLACE_RIGHT_LEFT] = sMovementActionFuncs_x59, - [MOVEMENT_ACTION_FACE_ORIGINAL_DIRECTION] = sMovementActionFuncs_x5A, - [MOVEMENT_ACTION_NURSE_JOY_BOW_DOWN] = sMovementActionFuncs_x5B, - [MOVEMENT_ACTION_ENABLE_JUMP_LANDING_GROUND_EFFECT] = sMovementActionFuncs_x5C, - [MOVEMENT_ACTION_DISABLE_JUMP_LANDING_GROUND_EFFECT] = sMovementActionFuncs_x5D, - [MOVEMENT_ACTION_DISABLE_ANIMATION] = sMovementActionFuncs_x5E, - [MOVEMENT_ACTION_RESTORE_ANIMATION] = sMovementActionFuncs_x5F, - [MOVEMENT_ACTION_SET_INVISIBLE] = sMovementActionFuncs_x60, - [MOVEMENT_ACTION_SET_VISIBLE] = sMovementActionFuncs_x61, - [MOVEMENT_ACTION_EMOTE_EXCLAMATION_MARK] = sMovementActionFuncs_x62, - [MOVEMENT_ACTION_EMOTE_QUESTION_MARK] = sMovementActionFuncs_x63, - [MOVEMENT_ACTION_EMOTE_X] = sMovementActionFuncs_x64, - [MOVEMENT_ACTION_EMOTE_DOUBLE_EXCL_MARK] = sMovementActionFuncs_x65, - [MOVEMENT_ACTION_EMOTE_SMILE] = sMovementActionFuncs_x66, - [MOVEMENT_ACTION_REVEAL_TRAINER] = sMovementActionFuncs_x67, - [MOVEMENT_ACTION_ROCK_SMASH_BREAK] = sMovementActionFuncs_x68, - [MOVEMENT_ACTION_CUT_TREE] = sMovementActionFuncs_x69, - [MOVEMENT_ACTION_SET_FIXED_PRIORITY] = sMovementActionFuncs_x6A, - [MOVEMENT_ACTION_CLEAR_FIXED_PRIORITY] = sMovementActionFuncs_x6B, - [MOVEMENT_ACTION_INIT_AFFINE_ANIM] = sMovementActionFuncs_x6C, - [MOVEMENT_ACTION_CLEAR_AFFINE_ANIM] = sMovementActionFuncs_x6D, - [MOVEMENT_ACTION_WALK_DOWN_START_AFFINE] = sMovementActionFuncs_x6E, - [MOVEMENT_ACTION_WALK_DOWN_AFFINE] = sMovementActionFuncs_x6F, - [MOVEMENT_ACTION_ACRO_WHEELIE_FACE_DOWN] = sMovementActionFuncs_x70, - [MOVEMENT_ACTION_ACRO_WHEELIE_FACE_UP] = sMovementActionFuncs_x71, - [MOVEMENT_ACTION_ACRO_WHEELIE_FACE_LEFT] = sMovementActionFuncs_x72, - [MOVEMENT_ACTION_ACRO_WHEELIE_FACE_RIGHT] = sMovementActionFuncs_x73, - [MOVEMENT_ACTION_ACRO_POP_WHEELIE_DOWN] = sMovementActionFuncs_x74, - [MOVEMENT_ACTION_ACRO_POP_WHEELIE_UP] = sMovementActionFuncs_x75, - [MOVEMENT_ACTION_ACRO_POP_WHEELIE_LEFT] = sMovementActionFuncs_x76, - [MOVEMENT_ACTION_ACRO_POP_WHEELIE_RIGHT] = sMovementActionFuncs_x77, - [MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_DOWN] = sMovementActionFuncs_x78, - [MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_UP] = sMovementActionFuncs_x79, - [MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_LEFT] = sMovementActionFuncs_x7A, - [MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_RIGHT] = sMovementActionFuncs_x7B, - [MOVEMENT_ACTION_ACRO_WHEELIE_HOP_FACE_DOWN] = sMovementActionFuncs_x7C, - [MOVEMENT_ACTION_ACRO_WHEELIE_HOP_FACE_UP] = sMovementActionFuncs_x7D, - [MOVEMENT_ACTION_ACRO_WHEELIE_HOP_FACE_LEFT] = sMovementActionFuncs_x7E, - [MOVEMENT_ACTION_ACRO_WHEELIE_HOP_FACE_RIGHT] = sMovementActionFuncs_x7F, - [MOVEMENT_ACTION_ACRO_WHEELIE_HOP_DOWN] = sMovementActionFuncs_x80, - [MOVEMENT_ACTION_ACRO_WHEELIE_HOP_UP] = sMovementActionFuncs_x81, - [MOVEMENT_ACTION_ACRO_WHEELIE_HOP_LEFT] = sMovementActionFuncs_x82, - [MOVEMENT_ACTION_ACRO_WHEELIE_HOP_RIGHT] = sMovementActionFuncs_x83, - [MOVEMENT_ACTION_ACRO_WHEELIE_JUMP_DOWN] = sMovementActionFuncs_x84, - [MOVEMENT_ACTION_ACRO_WHEELIE_JUMP_UP] = sMovementActionFuncs_x85, - [MOVEMENT_ACTION_ACRO_WHEELIE_JUMP_LEFT] = sMovementActionFuncs_x86, - [MOVEMENT_ACTION_ACRO_WHEELIE_JUMP_RIGHT] = sMovementActionFuncs_x87, - [MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_DOWN] = sMovementActionFuncs_x88, - [MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_UP] = sMovementActionFuncs_x89, - [MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_LEFT] = sMovementActionFuncs_x8A, - [MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_RIGHT] = sMovementActionFuncs_x8B, - [MOVEMENT_ACTION_ACRO_POP_WHEELIE_MOVE_DOWN] = sMovementActionFuncs_x8C, - [MOVEMENT_ACTION_ACRO_POP_WHEELIE_MOVE_UP] = sMovementActionFuncs_x8D, - [MOVEMENT_ACTION_ACRO_POP_WHEELIE_MOVE_LEFT] = sMovementActionFuncs_x8E, - [MOVEMENT_ACTION_ACRO_POP_WHEELIE_MOVE_RIGHT] = sMovementActionFuncs_x8F, - [MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_DOWN] = sMovementActionFuncs_x90, - [MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_UP] = sMovementActionFuncs_x91, - [MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_LEFT] = sMovementActionFuncs_x92, - [MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_RIGHT] = sMovementActionFuncs_x93, - [MOVEMENT_ACTION_SPIN_DOWN] = sMovementActionFuncs_x94, - [MOVEMENT_ACTION_SPIN_UP] = sMovementActionFuncs_x95, - [MOVEMENT_ACTION_SPIN_LEFT] = sMovementActionFuncs_x96, - [MOVEMENT_ACTION_SPIN_RIGHT] = sMovementActionFuncs_x97, - [MOVEMENT_ACTION_0x98] = sMovementActionFuncs_x98, - [MOVEMENT_ACTION_0x99] = sMovementActionFuncs_x99, - [MOVEMENT_ACTION_0x9A] = sMovementActionFuncs_x9A, - [MOVEMENT_ACTION_WALK_SLOWEST_DOWN] = sMovementActionFuncs_x9B, - [MOVEMENT_ACTION_WALK_SLOWEST_UP] = sMovementActionFuncs_x9C, - [MOVEMENT_ACTION_WALK_SLOWEST_LEFT] = sMovementActionFuncs_x9D, - [MOVEMENT_ACTION_WALK_SLOWEST_RIGHT] = sMovementActionFuncs_x9E, - [MOVEMENT_ACTION_SHAKE_HEAD_OR_WALK_IN_PLACE] = sMovementActionFuncs_x9F, - [MOVEMENT_ACTION_0xA0] = sMovementActionFuncs_xA0, - [MOVEMENT_ACTION_0xA1] = sMovementActionFuncs_xA1, - [MOVEMENT_ACTION_0xA2] = sMovementActionFuncs_xA2, - [MOVEMENT_ACTION_0xA3] = sMovementActionFuncs_xA3, - [MOVEMENT_ACTION_FLY_UP] = sMovementActionFuncs_xA4, - [MOVEMENT_ACTION_FLY_DOWN] = sMovementActionFuncs_xA5, - [MOVEMENT_ACTION_JUMP_SPECIAL_WITH_EFFECT_DOWN] = sMovementActionFuncs_xA6, - [MOVEMENT_ACTION_JUMP_SPECIAL_WITH_EFFECT_UP] = sMovementActionFuncs_xA7, - [MOVEMENT_ACTION_JUMP_SPECIAL_WITH_EFFECT_LEFT] = sMovementActionFuncs_xA8, - [MOVEMENT_ACTION_JUMP_SPECIAL_WITH_EFFECT_RIGHT] = sMovementActionFuncs_xA9, +static bool8 (*const *const sMovementActionFuncs[])(struct ObjectEvent *, struct Sprite *) = { + [MOVEMENT_ACTION_FACE_DOWN] = sMovementActionFuncs_FaceDown, + [MOVEMENT_ACTION_FACE_UP] = sMovementActionFuncs_FaceUp, + [MOVEMENT_ACTION_FACE_LEFT] = sMovementActionFuncs_FaceLeft, + [MOVEMENT_ACTION_FACE_RIGHT] = sMovementActionFuncs_FaceRight, + [MOVEMENT_ACTION_FACE_DOWN_FAST] = sMovementActionFuncs_FaceDownFast, + [MOVEMENT_ACTION_FACE_UP_FAST] = sMovementActionFuncs_FaceUpFast, + [MOVEMENT_ACTION_FACE_LEFT_FAST] = sMovementActionFuncs_FaceLeftFast, + [MOVEMENT_ACTION_FACE_RIGHT_FAST] = sMovementActionFuncs_FaceRightFast, + [MOVEMENT_ACTION_WALK_SLOWER_DOWN] = sMovementActionFuncs_WalkSlowerDown, + [MOVEMENT_ACTION_WALK_SLOWER_UP] = sMovementActionFuncs_WalkSlowerUp, + [MOVEMENT_ACTION_WALK_SLOWER_LEFT] = sMovementActionFuncs_WalkSlowerLeft, + [MOVEMENT_ACTION_WALK_SLOWER_RIGHT] = sMovementActionFuncs_WalkSlowerRight, + [MOVEMENT_ACTION_WALK_SLOW_DOWN] = sMovementActionFuncs_WalkSlowDown, + [MOVEMENT_ACTION_WALK_SLOW_UP] = sMovementActionFuncs_WalkSlowUp, + [MOVEMENT_ACTION_WALK_SLOW_LEFT] = sMovementActionFuncs_WalkSlowLeft, + [MOVEMENT_ACTION_WALK_SLOW_RIGHT] = sMovementActionFuncs_WalkSlowRight, + [MOVEMENT_ACTION_WALK_NORMAL_DOWN] = sMovementActionFuncs_WalkNormalDown, + [MOVEMENT_ACTION_WALK_NORMAL_UP] = sMovementActionFuncs_WalkNormalUp, + [MOVEMENT_ACTION_WALK_NORMAL_LEFT] = sMovementActionFuncs_WalkNormalLeft, + [MOVEMENT_ACTION_WALK_NORMAL_RIGHT] = sMovementActionFuncs_WalkNormalRight, + [MOVEMENT_ACTION_JUMP_2_DOWN] = sMovementActionFuncs_Jump2Down, + [MOVEMENT_ACTION_JUMP_2_UP] = sMovementActionFuncs_Jump2Up, + [MOVEMENT_ACTION_JUMP_2_LEFT] = sMovementActionFuncs_Jump2Left, + [MOVEMENT_ACTION_JUMP_2_RIGHT] = sMovementActionFuncs_Jump2Right, + [MOVEMENT_ACTION_DELAY_1] = sMovementActionFuncs_Delay1, + [MOVEMENT_ACTION_DELAY_2] = sMovementActionFuncs_Delay2, + [MOVEMENT_ACTION_DELAY_4] = sMovementActionFuncs_Delay4, + [MOVEMENT_ACTION_DELAY_8] = sMovementActionFuncs_Delay8, + [MOVEMENT_ACTION_DELAY_16] = sMovementActionFuncs_Delay16, + [MOVEMENT_ACTION_WALK_FAST_DOWN] = sMovementActionFuncs_WalkFastDown, + [MOVEMENT_ACTION_WALK_FAST_UP] = sMovementActionFuncs_WalkFastUp, + [MOVEMENT_ACTION_WALK_FAST_LEFT] = sMovementActionFuncs_WalkFastLeft, + [MOVEMENT_ACTION_WALK_FAST_RIGHT] = sMovementActionFuncs_WalkFastRight, + [MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_DOWN] = sMovementActionFuncs_WalkInPlaceSlowDown, + [MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_UP] = sMovementActionFuncs_WalkInPlaceSlowUp, + [MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_LEFT] = sMovementActionFuncs_WalkInPlaceSlowLeft, + [MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_RIGHT] = sMovementActionFuncs_WalkInPlaceSlowRight, + [MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_DOWN] = sMovementActionFuncs_WalkInPlaceNormalDown, + [MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_UP] = sMovementActionFuncs_WalkInPlaceNormalUp, + [MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_LEFT] = sMovementActionFuncs_WalkInPlaceNormalLeft, + [MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_RIGHT] = sMovementActionFuncs_WalkInPlaceNormalRight, + [MOVEMENT_ACTION_WALK_IN_PLACE_FAST_DOWN] = sMovementActionFuncs_WalkInPlaceFastDown, + [MOVEMENT_ACTION_WALK_IN_PLACE_FAST_UP] = sMovementActionFuncs_WalkInPlaceFastUp, + [MOVEMENT_ACTION_WALK_IN_PLACE_FAST_LEFT] = sMovementActionFuncs_WalkInPlaceFastLeft, + [MOVEMENT_ACTION_WALK_IN_PLACE_FAST_RIGHT] = sMovementActionFuncs_WalkInPlaceFastRight, + [MOVEMENT_ACTION_WALK_IN_PLACE_FASTER_DOWN] = sMovementActionFuncs_WalkInPlaceFasterDown, + [MOVEMENT_ACTION_WALK_IN_PLACE_FASTER_UP] = sMovementActionFuncs_WalkInPlaceFasterUp, + [MOVEMENT_ACTION_WALK_IN_PLACE_FASTER_LEFT] = sMovementActionFuncs_WalkInPlaceFasterLeft, + [MOVEMENT_ACTION_WALK_IN_PLACE_FASTER_RIGHT] = sMovementActionFuncs_WalkInPlaceFasterRight, + [MOVEMENT_ACTION_RIDE_WATER_CURRENT_DOWN] = sMovementActionFuncs_RideWaterCurrentDown, + [MOVEMENT_ACTION_RIDE_WATER_CURRENT_UP] = sMovementActionFuncs_RideWaterCurrentUp, + [MOVEMENT_ACTION_RIDE_WATER_CURRENT_LEFT] = sMovementActionFuncs_RideWaterCurrentLeft, + [MOVEMENT_ACTION_RIDE_WATER_CURRENT_RIGHT] = sMovementActionFuncs_RideWaterCurrentRight, + [MOVEMENT_ACTION_WALK_FASTER_DOWN] = sMovementActionFuncs_WalkFasterDown, + [MOVEMENT_ACTION_WALK_FASTER_UP] = sMovementActionFuncs_WalkFasterUp, + [MOVEMENT_ACTION_WALK_FASTER_LEFT] = sMovementActionFuncs_WalkFasterLeft, + [MOVEMENT_ACTION_WALK_FASTER_RIGHT] = sMovementActionFuncs_WalkFasterRight, + [MOVEMENT_ACTION_SLIDE_DOWN] = sMovementActionFuncs_SlideDown, + [MOVEMENT_ACTION_SLIDE_UP] = sMovementActionFuncs_SlideUp, + [MOVEMENT_ACTION_SLIDE_LEFT] = sMovementActionFuncs_SlideLeft, + [MOVEMENT_ACTION_SLIDE_RIGHT] = sMovementActionFuncs_SlideRight, + [MOVEMENT_ACTION_PLAYER_RUN_DOWN] = sMovementActionFuncs_PlayerRunDown, + [MOVEMENT_ACTION_PLAYER_RUN_UP] = sMovementActionFuncs_PlayerRunUp, + [MOVEMENT_ACTION_PLAYER_RUN_LEFT] = sMovementActionFuncs_PlayerRunLeft, + [MOVEMENT_ACTION_PLAYER_RUN_RIGHT] = sMovementActionFuncs_PlayerRunRight, + [MOVEMENT_ACTION_PLAYER_RUN_DOWN_SLOW] = sMovementActionFuncs_PlayerRunDownSlow, + [MOVEMENT_ACTION_PLAYER_RUN_UP_SLOW] = sMovementActionFuncs_PlayerRunUpSlow, + [MOVEMENT_ACTION_PLAYER_RUN_LEFT_SLOW] = sMovementActionFuncs_PlayerRunLeftSlow, + [MOVEMENT_ACTION_PLAYER_RUN_RIGHT_SLOW] = sMovementActionFuncs_PlayerRunRightSlow, + [MOVEMENT_ACTION_START_ANIM_IN_DIRECTION] = sMovementActionFuncs_StartAnimInDirection, + [MOVEMENT_ACTION_JUMP_SPECIAL_DOWN] = sMovementActionFuncs_JumpSpecialDown, + [MOVEMENT_ACTION_JUMP_SPECIAL_UP] = sMovementActionFuncs_JumpSpecialUp, + [MOVEMENT_ACTION_JUMP_SPECIAL_LEFT] = sMovementActionFuncs_JumpSpecialLeft, + [MOVEMENT_ACTION_JUMP_SPECIAL_RIGHT] = sMovementActionFuncs_JumpSpecialRight, + [MOVEMENT_ACTION_FACE_PLAYER] = sMovementActionFuncs_FacePlayer, + [MOVEMENT_ACTION_FACE_AWAY_PLAYER] = sMovementActionFuncs_FaceAwayPlayer, + [MOVEMENT_ACTION_LOCK_FACING_DIRECTION] = sMovementActionFuncs_LockFacingDirection, + [MOVEMENT_ACTION_UNLOCK_FACING_DIRECTION] = sMovementActionFuncs_UnlockFacingDirection, + [MOVEMENT_ACTION_JUMP_DOWN] = sMovementActionFuncs_JumpDown, + [MOVEMENT_ACTION_JUMP_UP] = sMovementActionFuncs_JumpUp, + [MOVEMENT_ACTION_JUMP_LEFT] = sMovementActionFuncs_JumpLeft, + [MOVEMENT_ACTION_JUMP_RIGHT] = sMovementActionFuncs_JumpRight, + [MOVEMENT_ACTION_JUMP_IN_PLACE_DOWN] = sMovementActionFuncs_JumpInPlaceDown, + [MOVEMENT_ACTION_JUMP_IN_PLACE_UP] = sMovementActionFuncs_JumpInPlaceUp, + [MOVEMENT_ACTION_JUMP_IN_PLACE_LEFT] = sMovementActionFuncs_JumpInPlaceLeft, + [MOVEMENT_ACTION_JUMP_IN_PLACE_RIGHT] = sMovementActionFuncs_JumpInPlaceRight, + [MOVEMENT_ACTION_JUMP_IN_PLACE_DOWN_UP] = sMovementActionFuncs_JumpInPlaceDownUp, + [MOVEMENT_ACTION_JUMP_IN_PLACE_UP_DOWN] = sMovementActionFuncs_JumpInPlaceUpDown, + [MOVEMENT_ACTION_JUMP_IN_PLACE_LEFT_RIGHT] = sMovementActionFuncs_JumpInPlaceLeftRight, + [MOVEMENT_ACTION_JUMP_IN_PLACE_RIGHT_LEFT] = sMovementActionFuncs_JumpInPlaceRightLeft, + [MOVEMENT_ACTION_FACE_ORIGINAL_DIRECTION] = sMovementActionFuncs_FaceOriginalDirection, + [MOVEMENT_ACTION_NURSE_JOY_BOW_DOWN] = sMovementActionFuncs_NurseJoyBowDown, + [MOVEMENT_ACTION_ENABLE_JUMP_LANDING_GROUND_EFFECT] = sMovementActionFuncs_EnableJumpLandingGroundEffect, + [MOVEMENT_ACTION_DISABLE_JUMP_LANDING_GROUND_EFFECT] = sMovementActionFuncs_DisableJumpLandingGroundEffect, + [MOVEMENT_ACTION_DISABLE_ANIMATION] = sMovementActionFuncs_DisableAnimation, + [MOVEMENT_ACTION_RESTORE_ANIMATION] = sMovementActionFuncs_RestoreAnimation, + [MOVEMENT_ACTION_SET_INVISIBLE] = sMovementActionFuncs_SetInvisible, + [MOVEMENT_ACTION_SET_VISIBLE] = sMovementActionFuncs_SetVisible, + [MOVEMENT_ACTION_EMOTE_EXCLAMATION_MARK] = sMovementActionFuncs_EmoteExclamationMark, + [MOVEMENT_ACTION_EMOTE_QUESTION_MARK] = sMovementActionFuncs_EmoteQuestionMark, + [MOVEMENT_ACTION_EMOTE_X] = sMovementActionFuncs_EmoteX, + [MOVEMENT_ACTION_EMOTE_DOUBLE_EXCL_MARK] = sMovementActionFuncs_EmoteDoubleExclMark, + [MOVEMENT_ACTION_EMOTE_SMILE] = sMovementActionFuncs_EmoteSmile, + [MOVEMENT_ACTION_REVEAL_TRAINER] = sMovementActionFuncs_RevealTrainer, + [MOVEMENT_ACTION_ROCK_SMASH_BREAK] = sMovementActionFuncs_RockSmashBreak, + [MOVEMENT_ACTION_CUT_TREE] = sMovementActionFuncs_CutTree, + [MOVEMENT_ACTION_SET_FIXED_PRIORITY] = sMovementActionFuncs_SetFixedPriority, + [MOVEMENT_ACTION_CLEAR_FIXED_PRIORITY] = sMovementActionFuncs_ClearFixedPriority, + [MOVEMENT_ACTION_INIT_AFFINE_ANIM] = sMovementActionFuncs_InitAffineAnim, + [MOVEMENT_ACTION_CLEAR_AFFINE_ANIM] = sMovementActionFuncs_ClearAffineAnim, + [MOVEMENT_ACTION_WALK_DOWN_START_AFFINE] = sMovementActionFuncs_WalkDownStartAffine, + [MOVEMENT_ACTION_WALK_DOWN_AFFINE] = sMovementActionFuncs_WalkDownAffine, + [MOVEMENT_ACTION_ACRO_WHEELIE_FACE_DOWN] = sMovementActionFuncs_AcroWheelieFaceDown, + [MOVEMENT_ACTION_ACRO_WHEELIE_FACE_UP] = sMovementActionFuncs_AcroWheelieFaceUp, + [MOVEMENT_ACTION_ACRO_WHEELIE_FACE_LEFT] = sMovementActionFuncs_AcroWheelieFaceLeft, + [MOVEMENT_ACTION_ACRO_WHEELIE_FACE_RIGHT] = sMovementActionFuncs_AcroWheelieFaceRight, + [MOVEMENT_ACTION_ACRO_POP_WHEELIE_DOWN] = sMovementActionFuncs_AcroPopWheelieDown, + [MOVEMENT_ACTION_ACRO_POP_WHEELIE_UP] = sMovementActionFuncs_AcroPopWheelieUp, + [MOVEMENT_ACTION_ACRO_POP_WHEELIE_LEFT] = sMovementActionFuncs_AcroPopWheelieLeft, + [MOVEMENT_ACTION_ACRO_POP_WHEELIE_RIGHT] = sMovementActionFuncs_AcroPopWheelieRight, + [MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_DOWN] = sMovementActionFuncs_AcroEndWheelieFaceDown, + [MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_UP] = sMovementActionFuncs_AcroEndWheelieFaceUp, + [MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_LEFT] = sMovementActionFuncs_AcroEndWheelieFaceLeft, + [MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_RIGHT] = sMovementActionFuncs_AcroEndWheelieFaceRight, + [MOVEMENT_ACTION_ACRO_WHEELIE_HOP_FACE_DOWN] = sMovementActionFuncs_AcroWheelieHopFaceDown, + [MOVEMENT_ACTION_ACRO_WHEELIE_HOP_FACE_UP] = sMovementActionFuncs_AcroWheelieHopFaceUp, + [MOVEMENT_ACTION_ACRO_WHEELIE_HOP_FACE_LEFT] = sMovementActionFuncs_AcroWheelieHopFaceLeft, + [MOVEMENT_ACTION_ACRO_WHEELIE_HOP_FACE_RIGHT] = sMovementActionFuncs_AcroWheelieHopFaceRight, + [MOVEMENT_ACTION_ACRO_WHEELIE_HOP_DOWN] = sMovementActionFuncs_AcroWheelieHopDown, + [MOVEMENT_ACTION_ACRO_WHEELIE_HOP_UP] = sMovementActionFuncs_AcroWheelieHopUp, + [MOVEMENT_ACTION_ACRO_WHEELIE_HOP_LEFT] = sMovementActionFuncs_AcroWheelieHopLeft, + [MOVEMENT_ACTION_ACRO_WHEELIE_HOP_RIGHT] = sMovementActionFuncs_AcroWheelieHopRight, + [MOVEMENT_ACTION_ACRO_WHEELIE_JUMP_DOWN] = sMovementActionFuncs_AcroWheelieJumpDown, + [MOVEMENT_ACTION_ACRO_WHEELIE_JUMP_UP] = sMovementActionFuncs_AcroWheelieJumpUp, + [MOVEMENT_ACTION_ACRO_WHEELIE_JUMP_LEFT] = sMovementActionFuncs_AcroWheelieJumpLeft, + [MOVEMENT_ACTION_ACRO_WHEELIE_JUMP_RIGHT] = sMovementActionFuncs_AcroWheelieJumpRight, + [MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_DOWN] = sMovementActionFuncs_AcroWheelieInPlaceDown, + [MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_UP] = sMovementActionFuncs_AcroWheelieInPlaceUp, + [MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_LEFT] = sMovementActionFuncs_AcroWheelieInPlaceLeft, + [MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_RIGHT] = sMovementActionFuncs_AcroWheelieInPlaceRight, + [MOVEMENT_ACTION_ACRO_POP_WHEELIE_MOVE_DOWN] = sMovementActionFuncs_AcroPopWheelieMoveDown, + [MOVEMENT_ACTION_ACRO_POP_WHEELIE_MOVE_UP] = sMovementActionFuncs_AcroPopWheelieMoveUp, + [MOVEMENT_ACTION_ACRO_POP_WHEELIE_MOVE_LEFT] = sMovementActionFuncs_AcroPopWheelieMoveLeft, + [MOVEMENT_ACTION_ACRO_POP_WHEELIE_MOVE_RIGHT] = sMovementActionFuncs_AcroPopWheelieMoveRight, + [MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_DOWN] = sMovementActionFuncs_AcroWheelieMoveDown, + [MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_UP] = sMovementActionFuncs_AcroWheelieMoveUp, + [MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_LEFT] = sMovementActionFuncs_AcroWheelieMoveLeft, + [MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_RIGHT] = sMovementActionFuncs_AcroWheelieMoveRight, + [MOVEMENT_ACTION_SPIN_DOWN] = sMovementActionFuncs_SpinDown, + [MOVEMENT_ACTION_SPIN_UP] = sMovementActionFuncs_SpinUp, + [MOVEMENT_ACTION_SPIN_LEFT] = sMovementActionFuncs_SpinLeft, + [MOVEMENT_ACTION_SPIN_RIGHT] = sMovementActionFuncs_SpinRight, + [MOVEMENT_ACTION_RAISE_HAND_AND_STOP] = sMovementActionFuncs_RaiseHandAndStop, + [MOVEMENT_ACTION_RAISE_HAND_AND_JUMP] = sMovementActionFuncs_RaiseHandAndJump, + [MOVEMENT_ACTION_RAISE_HAND_AND_SWIM] = sMovementActionFuncs_RaiseHandAndSwim, + [MOVEMENT_ACTION_WALK_SLOWEST_DOWN] = sMovementActionFuncs_WalkSlowestDown, + [MOVEMENT_ACTION_WALK_SLOWEST_UP] = sMovementActionFuncs_WalkSlowestUp, + [MOVEMENT_ACTION_WALK_SLOWEST_LEFT] = sMovementActionFuncs_WalkSlowestLeft, + [MOVEMENT_ACTION_WALK_SLOWEST_RIGHT] = sMovementActionFuncs_WalkSlowestRight, + [MOVEMENT_ACTION_SHAKE_HEAD_OR_WALK_IN_PLACE] = sMovementActionFuncs_ShakeHeadOrWalkInPlace, + [MOVEMENT_ACTION_GLIDE_DOWN] = sMovementActionFuncs_GlideDown, + [MOVEMENT_ACTION_GLIDE_UP] = sMovementActionFuncs_GlideUp, + [MOVEMENT_ACTION_GLIDE_LEFT] = sMovementActionFuncs_GlideLeft, + [MOVEMENT_ACTION_GLIDE_RIGHT] = sMovementActionFuncs_GlideRight, + [MOVEMENT_ACTION_FLY_UP] = sMovementActionFuncs_FlyUp, + [MOVEMENT_ACTION_FLY_DOWN] = sMovementActionFuncs_FlyDown, + [MOVEMENT_ACTION_JUMP_SPECIAL_WITH_EFFECT_DOWN] = sMovementActionFuncs_JumpSpecialWithEffectDown, + [MOVEMENT_ACTION_JUMP_SPECIAL_WITH_EFFECT_UP] = sMovementActionFuncs_JumpSpecialWithEffectUp, + [MOVEMENT_ACTION_JUMP_SPECIAL_WITH_EFFECT_LEFT] = sMovementActionFuncs_JumpSpecialWithEffectLeft, + [MOVEMENT_ACTION_JUMP_SPECIAL_WITH_EFFECT_RIGHT] = sMovementActionFuncs_JumpSpecialWithEffectRight, }; -static bool8 (*const sMovementActionFuncs_x00[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_FaceDown[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_FaceDown_Step0, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x01[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_FaceUp[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_FaceUp_Step0, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x02[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_FaceLeft[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_FaceLeft_Step0, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x03[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_FaceRight[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_FaceRight_Step0, MovementAction_PauseSpriteAnim, }; -static bool8 (*const gUnknown_83A6884[])(u8) = { - GetMoveDirectionAnimNum, - GetMoveDirectionFastAnimNum, - GetMoveDirectionFastAnimNum, - GetMoveDirectionFasterAnimNum, - GetMoveDirectionFastestAnimNum, +static bool8 (*const sDirectionAnimFuncsBySpeed[])(u8) = { + [MOVE_SPEED_NORMAL] = GetMoveDirectionAnimNum, + [MOVE_SPEED_FAST_1] = GetMoveDirectionFastAnimNum, + [MOVE_SPEED_FAST_2] = GetMoveDirectionFastAnimNum, + [MOVE_SPEED_FASTER] = GetMoveDirectionFasterAnimNum, + [MOVE_SPEED_FASTEST] = GetMoveDirectionFastestAnimNum, }; -static bool8 (*const sMovementActionFuncs_x9B[])(struct ObjectEvent *, struct Sprite *) = { - MovementActionFunc_x9B_0, - MovementActionFunc_x9B_1, +static bool8 (*const sMovementActionFuncs_WalkSlowestDown[])(struct ObjectEvent *, struct Sprite *) = { + MovementAction_WalkSlowestDown_Step0, + MovementAction_WalkSlowestDown_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x9C[])(struct ObjectEvent *, struct Sprite *) = { - MovementActionFunc_x9C_0, - MovementActionFunc_x9C_1, +static bool8 (*const sMovementActionFuncs_WalkSlowestUp[])(struct ObjectEvent *, struct Sprite *) = { + MovementAction_WalkSlowestUp_Step0, + MovementAction_WalkSlowestUp_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x9D[])(struct ObjectEvent *, struct Sprite *) = { - MovementActionFunc_x9D_0, - MovementActionFunc_x9D_1, +static bool8 (*const sMovementActionFuncs_WalkSlowestLeft[])(struct ObjectEvent *, struct Sprite *) = { + MovementAction_WalkSlowestLeft_Step0, + MovementAction_WalkSlowestLeft_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x9E[])(struct ObjectEvent *, struct Sprite *) = { - MovementActionFunc_x9E_0, - MovementActionFunc_x9E_1, +static bool8 (*const sMovementActionFuncs_WalkSlowestRight[])(struct ObjectEvent *, struct Sprite *) = { + MovementAction_WalkSlowestRight_Step0, + MovementAction_WalkSlowestRight_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x08[])(struct ObjectEvent *, struct Sprite *) = { - MovementActionFunc_x08_0, - MovementActionFunc_x08_1, +static bool8 (*const sMovementActionFuncs_WalkSlowerDown[])(struct ObjectEvent *, struct Sprite *) = { + MovementAction_WalkSlowerDown_Step0, + MovementAction_WalkSlowerDown_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x09[])(struct ObjectEvent *, struct Sprite *) = { - MovementActionFunc_x09_0, - MovementActionFunc_x09_1, +static bool8 (*const sMovementActionFuncs_WalkSlowerUp[])(struct ObjectEvent *, struct Sprite *) = { + MovementAction_WalkSlowerUp_Step0, + MovementAction_WalkSlowerUp_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x0A[])(struct ObjectEvent *, struct Sprite *) = { - MovementActionFunc_x0A_0, - MovementActionFunc_x0A_1, +static bool8 (*const sMovementActionFuncs_WalkSlowerLeft[])(struct ObjectEvent *, struct Sprite *) = { + MovementAction_WalkSlowerLeft_Step0, + MovementAction_WalkSlowerLeft_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x0B[])(struct ObjectEvent *, struct Sprite *) = { - MovementActionFunc_x0B_0, - MovementActionFunc_x0B_1, +static bool8 (*const sMovementActionFuncs_WalkSlowerRight[])(struct ObjectEvent *, struct Sprite *) = { + MovementAction_WalkSlowerRight_Step0, + MovementAction_WalkSlowerRight_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x0D[])(struct ObjectEvent *, struct Sprite *) = { - MovementActionFunc_x0D_0, - MovementActionFunc_x0D_1, +static bool8 (*const sMovementActionFuncs_WalkSlowUp[])(struct ObjectEvent *, struct Sprite *) = { + MovementAction_WalkSlowUp_Step0, + MovementAction_WalkSlowUp_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x0C[])(struct ObjectEvent *, struct Sprite *) = { - MovementActionFunc_x0C_0, - MovementActionFunc_x0C_1, +static bool8 (*const sMovementActionFuncs_WalkSlowDown[])(struct ObjectEvent *, struct Sprite *) = { + MovementAction_WalkSlowDown_Step0, + MovementAction_WalkSlowDown_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x0E[])(struct ObjectEvent *, struct Sprite *) = { - MovementActionFunc_x0E_0, - MovementActionFunc_x0E_1, +static bool8 (*const sMovementActionFuncs_WalkSlowLeft[])(struct ObjectEvent *, struct Sprite *) = { + MovementAction_WalkSlowLeft_Step0, + MovementAction_WalkSlowLeft_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x0F[])(struct ObjectEvent *, struct Sprite *) = { - MovementActionFunc_x0F_0, - MovementActionFunc_x0F_1, +static bool8 (*const sMovementActionFuncs_WalkSlowRight[])(struct ObjectEvent *, struct Sprite *) = { + MovementAction_WalkSlowRight_Step0, + MovementAction_WalkSlowRight_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x10[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_WalkNormalDown[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_WalkNormalDown_Step0, MovementAction_WalkNormalDown_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x11[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_WalkNormalUp[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_WalkNormalUp_Step0, MovementAction_WalkNormalUp_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x12[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_WalkNormalLeft[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_WalkNormalLeft_Step0, MovementAction_WalkNormalLeft_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x13[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_WalkNormalRight[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_WalkNormalRight_Step0, MovementAction_WalkNormalRight_Step1, MovementAction_PauseSpriteAnim, }; -const s16 gUnknown_83A6958[] = {0, 1, 1}; -const s16 gUnknown_83A695E[] = {0, 0, 1}; +static const s16 sJumpInitDisplacements[] = { + [JUMP_DISTANCE_IN_PLACE] = 0, + [JUMP_DISTANCE_NORMAL] = 1, + [JUMP_DISTANCE_FAR] = 1, +}; -static bool8 (*const sMovementActionFuncs_x14[])(struct ObjectEvent *, struct Sprite *) = { +static const s16 sJumpDisplacements[] = { + [JUMP_DISTANCE_IN_PLACE] = 0, + [JUMP_DISTANCE_NORMAL] = 0, + [JUMP_DISTANCE_FAR] = 1, +}; + +static bool8 (*const sMovementActionFuncs_Jump2Down[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_Jump2Down_Step0, MovementAction_Jump2Down_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x15[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_Jump2Up[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_Jump2Up_Step0, MovementAction_Jump2Up_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x16[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_Jump2Left[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_Jump2Left_Step0, MovementAction_Jump2Left_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x17[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_Jump2Right[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_Jump2Right_Step0, MovementAction_Jump2Right_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x18[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_Delay1[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_Delay1_Step0, MovementAction_Delay_Step1, MovementAction_Finish, }; -static bool8 (*const sMovementActionFuncs_x19[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_Delay2[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_Delay2_Step0, MovementAction_Delay_Step1, MovementAction_Finish, }; -static bool8 (*const sMovementActionFuncs_x1A[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_Delay4[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_Delay4_Step0, MovementAction_Delay_Step1, MovementAction_Finish, }; -static bool8 (*const sMovementActionFuncs_x1B[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_Delay8[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_Delay8_Step0, MovementAction_Delay_Step1, MovementAction_Finish, }; -static bool8 (*const sMovementActionFuncs_x1C[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_Delay16[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_Delay16_Step0, MovementAction_Delay_Step1, MovementAction_Finish, }; -static bool8 (*const sMovementActionFuncs_x1D[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_WalkFastDown[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_WalkFastDown_Step0, MovementAction_WalkFastDown_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x1E[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_WalkFastUp[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_WalkFastUp_Step0, MovementAction_WalkFastUp_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x1F[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_WalkFastLeft[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_WalkFastLeft_Step0, MovementAction_WalkFastLeft_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x20[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_WalkFastRight[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_WalkFastRight_Step0, MovementAction_WalkFastRight_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_xA0[])(struct ObjectEvent *, struct Sprite *) = { - MovementActionFunc_xA0_0, - MovementActionFunc_xA0_1, +static bool8 (*const sMovementActionFuncs_GlideDown[])(struct ObjectEvent *, struct Sprite *) = { + MovementAction_GlideDown_Step0, + MovementAction_GlideDown_Step1, MovementAction_Finish, }; -static bool8 (*const sMovementActionFuncs_xA1[])(struct ObjectEvent *, struct Sprite *) = { - MovementActionFunc_xA1_0, - MovementActionFunc_xA1_1, +static bool8 (*const sMovementActionFuncs_GlideUp[])(struct ObjectEvent *, struct Sprite *) = { + MovementAction_GlideUp_Step0, + MovementAction_GlideUp_Step1, MovementAction_Finish, }; -static bool8 (*const sMovementActionFuncs_xA2[])(struct ObjectEvent *, struct Sprite *) = { - MovementActionFunc_xA2_0, - MovementActionFunc_xA2_1, +static bool8 (*const sMovementActionFuncs_GlideLeft[])(struct ObjectEvent *, struct Sprite *) = { + MovementAction_GlideLeft_Step0, + MovementAction_GlideLeft_Step1, MovementAction_Finish, }; -static bool8 (*const sMovementActionFuncs_xA3[])(struct ObjectEvent *, struct Sprite *) = { - MovementActionFunc_xA3_0, - MovementActionFunc_xA3_1, +static bool8 (*const sMovementActionFuncs_GlideRight[])(struct ObjectEvent *, struct Sprite *) = { + MovementAction_GlideRight_Step0, + MovementAction_GlideRight_Step1, MovementAction_Finish, }; -static bool8 (*const sMovementActionFuncs_x04[])(struct ObjectEvent *, struct Sprite *) = { - MovementActionFunc_x04_0, +static bool8 (*const sMovementActionFuncs_FaceDownFast[])(struct ObjectEvent *, struct Sprite *) = { + MovementAction_FaceDownFast_Step0, MovementAction_Finish, }; -static bool8 (*const sMovementActionFuncs_x05[])(struct ObjectEvent *, struct Sprite *) = { - MovementActionFunc_x05_0, +static bool8 (*const sMovementActionFuncs_FaceUpFast[])(struct ObjectEvent *, struct Sprite *) = { + MovementAction_FaceUpFast_Step0, MovementAction_Finish, }; -static bool8 (*const sMovementActionFuncs_x06[])(struct ObjectEvent *, struct Sprite *) = { - MovementActionFunc_x06_0, +static bool8 (*const sMovementActionFuncs_FaceLeftFast[])(struct ObjectEvent *, struct Sprite *) = { + MovementAction_FaceLeftFast_Step0, MovementAction_Finish, }; -static bool8 (*const sMovementActionFuncs_x07[])(struct ObjectEvent *, struct Sprite *) = { - MovementActionFunc_x07_0, +static bool8 (*const sMovementActionFuncs_FaceRightFast[])(struct ObjectEvent *, struct Sprite *) = { + MovementAction_FaceRightFast_Step0, MovementAction_Finish, }; -static bool8 (*const sMovementActionFuncs_x21[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_WalkInPlaceSlowDown[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_WalkInPlaceSlowDown_Step0, MovementAction_WalkInPlaceSlow_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x22[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_WalkInPlaceSlowUp[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_WalkInPlaceSlowUp_Step0, MovementAction_WalkInPlaceSlow_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x23[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_WalkInPlaceSlowLeft[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_WalkInPlaceSlowLeft_Step0, MovementAction_WalkInPlaceSlow_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x24[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_WalkInPlaceSlowRight[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_WalkInPlaceSlowRight_Step0, MovementAction_WalkInPlaceSlow_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x25[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_WalkInPlaceNormalDown[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_WalkInPlaceNormalDown_Step0, MovementAction_WalkInPlace_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x26[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_WalkInPlaceNormalUp[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_WalkInPlaceNormalUp_Step0, MovementAction_WalkInPlace_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x27[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_WalkInPlaceNormalLeft[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_WalkInPlaceNormalLeft_Step0, MovementAction_WalkInPlace_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x28[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_WalkInPlaceNormalRight[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_WalkInPlaceNormalRight_Step0, MovementAction_WalkInPlace_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x29[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_WalkInPlaceFastDown[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_WalkInPlaceFastDown_Step0, MovementAction_WalkInPlace_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x2A[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_WalkInPlaceFastUp[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_WalkInPlaceFastUp_Step0, MovementAction_WalkInPlace_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x2B[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_WalkInPlaceFastLeft[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_WalkInPlaceFastLeft_Step0, MovementAction_WalkInPlace_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x2C[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_WalkInPlaceFastRight[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_WalkInPlaceFastRight_Step0, MovementAction_WalkInPlace_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x2D[])(struct ObjectEvent *, struct Sprite *) = { - MovementAction_WalkInPlaceFastestDown_Step0, +static bool8 (*const sMovementActionFuncs_WalkInPlaceFasterDown[])(struct ObjectEvent *, struct Sprite *) = { + MovementAction_WalkInPlaceFasterDown_Step0, MovementAction_WalkInPlace_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x2E[])(struct ObjectEvent *, struct Sprite *) = { - MovementAction_WalkInPlaceFastestUp_Step0, +static bool8 (*const sMovementActionFuncs_WalkInPlaceFasterUp[])(struct ObjectEvent *, struct Sprite *) = { + MovementAction_WalkInPlaceFasterUp_Step0, MovementAction_WalkInPlace_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x2F[])(struct ObjectEvent *, struct Sprite *) = { - MovementAction_WalkInPlaceFastestLeft_Step0, +static bool8 (*const sMovementActionFuncs_WalkInPlaceFasterLeft[])(struct ObjectEvent *, struct Sprite *) = { + MovementAction_WalkInPlaceFasterLeft_Step0, MovementAction_WalkInPlace_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x30[])(struct ObjectEvent *, struct Sprite *) = { - MovementAction_WalkInPlaceFastestRight_Step0, +static bool8 (*const sMovementActionFuncs_WalkInPlaceFasterRight[])(struct ObjectEvent *, struct Sprite *) = { + MovementAction_WalkInPlaceFasterRight_Step0, MovementAction_WalkInPlace_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x31[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_RideWaterCurrentDown[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_RideWaterCurrentDown_Step0, MovementAction_RideWaterCurrentDown_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x32[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_RideWaterCurrentUp[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_RideWaterCurrentUp_Step0, MovementAction_RideWaterCurrentUp_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x33[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_RideWaterCurrentLeft[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_RideWaterCurrentLeft_Step0, MovementAction_RideWaterCurrentLeft_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x34[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_RideWaterCurrentRight[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_RideWaterCurrentRight_Step0, MovementAction_RideWaterCurrentRight_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x35[])(struct ObjectEvent *, struct Sprite *) = { - MovementAction_WalkFastestDown_Step0, - MovementAction_WalkFastestDown_Step1, +static bool8 (*const sMovementActionFuncs_WalkFasterDown[])(struct ObjectEvent *, struct Sprite *) = { + MovementAction_WalkFasterDown_Step0, + MovementAction_WalkFasterDown_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x36[])(struct ObjectEvent *, struct Sprite *) = { - MovementAction_WalkFastestUp_Step0, - MovementAction_WalkFastestUp_Step1, +static bool8 (*const sMovementActionFuncs_WalkFasterUp[])(struct ObjectEvent *, struct Sprite *) = { + MovementAction_WalkFasterUp_Step0, + MovementAction_WalkFasterUp_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x37[])(struct ObjectEvent *, struct Sprite *) = { - MovementAction_WalkFastestLeft_Step0, - MovementAction_WalkFastestLeft_Step1, +static bool8 (*const sMovementActionFuncs_WalkFasterLeft[])(struct ObjectEvent *, struct Sprite *) = { + MovementAction_WalkFasterLeft_Step0, + MovementAction_WalkFasterLeft_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x38[])(struct ObjectEvent *, struct Sprite *) = { - MovementAction_WalkFastestRight_Step0, - MovementAction_WalkFastestRight_Step1, +static bool8 (*const sMovementActionFuncs_WalkFasterRight[])(struct ObjectEvent *, struct Sprite *) = { + MovementAction_WalkFasterRight_Step0, + MovementAction_WalkFasterRight_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x39[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_SlideDown[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_SlideDown_Step0, MovementAction_SlideDown_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x3A[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_SlideUp[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_SlideUp_Step0, MovementAction_SlideUp_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x3B[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_SlideLeft[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_SlideLeft_Step0, MovementAction_SlideLeft_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x3C[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_SlideRight[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_SlideRight_Step0, MovementAction_SlideRight_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x3D[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_PlayerRunDown[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_PlayerRunDown_Step0, MovementAction_PlayerRunDown_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x3E[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_PlayerRunUp[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_PlayerRunUp_Step0, MovementAction_PlayerRunUp_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x3F[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_PlayerRunLeft[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_PlayerRunLeft_Step0, MovementAction_PlayerRunLeft_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x40[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_PlayerRunRight[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_PlayerRunRight_Step0, MovementAction_PlayerRunRight_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x41[])(struct ObjectEvent *, struct Sprite *) = { - MovementActionFunc_x41_0, - MovementActionFunc_x41_1, +static bool8 (*const sMovementActionFuncs_PlayerRunDownSlow[])(struct ObjectEvent *, struct Sprite *) = { + MovementAction_RunDownSlow_Step0, + MovementAction_RunDownSlow_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x42[])(struct ObjectEvent *, struct Sprite *) = { - MovementActionFunc_x42_0, - MovementActionFunc_x42_1, +static bool8 (*const sMovementActionFuncs_PlayerRunUpSlow[])(struct ObjectEvent *, struct Sprite *) = { + MovementAction_RunUpSlow_Step0, + MovementAction_RunUpSlow_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x43[])(struct ObjectEvent *, struct Sprite *) = { - MovementActionFunc_x43_0, - MovementActionFunc_x43_1, +static bool8 (*const sMovementActionFuncs_PlayerRunLeftSlow[])(struct ObjectEvent *, struct Sprite *) = { + MovementAction_RunLeftSlow_Step0, + MovementAction_RunLeftSlow_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x44[])(struct ObjectEvent *, struct Sprite *) = { - MovementActionFunc_x44_0, - MovementActionFunc_x44_1, +static bool8 (*const sMovementActionFuncs_PlayerRunRightSlow[])(struct ObjectEvent *, struct Sprite *) = { + MovementAction_RunRightSlow_Step0, + MovementAction_RunRightSlow_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x45[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_StartAnimInDirection[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_StartAnimInDirection_Step0, MovementAction_WaitSpriteAnim, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x46[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_JumpSpecialDown[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_JumpSpecialDown_Step0, MovementAction_JumpSpecialDown_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x47[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_JumpSpecialUp[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_JumpSpecialUp_Step0, MovementAction_JumpSpecialUp_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x48[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_JumpSpecialLeft[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_JumpSpecialLeft_Step0, MovementAction_JumpSpecialLeft_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x49[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_JumpSpecialRight[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_JumpSpecialRight_Step0, MovementAction_JumpSpecialRight_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_xA6[])(struct ObjectEvent *, struct Sprite *) = { - MovementActionFunc_xA6_0, - MovementActionFunc_xA6_1, +static bool8 (*const sMovementActionFuncs_JumpSpecialWithEffectDown[])(struct ObjectEvent *, struct Sprite *) = { + MovementAction_JumpSpecialWithEffectDown_Step0, + MovementAction_JumpSpecialWithEffectDown_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_xA7[])(struct ObjectEvent *, struct Sprite *) = { - MovementActionFunc_xA7_0, - MovementActionFunc_xA7_1, +static bool8 (*const sMovementActionFuncs_JumpSpecialWithEffectUp[])(struct ObjectEvent *, struct Sprite *) = { + MovementAction_JumpSpecialWithEffectUp_Step0, + MovementAction_JumpSpecialWithEffectUp_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_xA8[])(struct ObjectEvent *, struct Sprite *) = { - MovementActionFunc_xA8_0, - MovementActionFunc_xA8_1, +static bool8 (*const sMovementActionFuncs_JumpSpecialWithEffectLeft[])(struct ObjectEvent *, struct Sprite *) = { + MovementAction_JumpSpecialWithEffectLeft_Step0, + MovementAction_JumpSpecialWithEffectLeft_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_xA9[])(struct ObjectEvent *, struct Sprite *) = { - MovementActionFunc_xA9_0, - MovementActionFunc_xA9_1, +static bool8 (*const sMovementActionFuncs_JumpSpecialWithEffectRight[])(struct ObjectEvent *, struct Sprite *) = { + MovementAction_JumpSpecialWithEffectRight_Step0, + MovementAction_JumpSpecialWithEffectRight_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x4A[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_FacePlayer[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_FacePlayer_Step0, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x4B[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_FaceAwayPlayer[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_FaceAwayPlayer_Step0, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x4C[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_LockFacingDirection[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_LockFacingDirection_Step0, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x4D[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_UnlockFacingDirection[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_UnlockFacingDirection_Step0, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x4E[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_JumpDown[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_JumpDown_Step0, MovementAction_JumpDown_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x4F[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_JumpUp[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_JumpUp_Step0, MovementAction_JumpUp_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x50[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_JumpLeft[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_JumpLeft_Step0, MovementAction_JumpLeft_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x51[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_JumpRight[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_JumpRight_Step0, MovementAction_JumpRight_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x52[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_JumpInPlaceDown[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_JumpInPlaceDown_Step0, MovementAction_JumpInPlaceDown_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x53[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_JumpInPlaceUp[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_JumpInPlaceUp_Step0, MovementAction_JumpInPlaceUp_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x54[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_JumpInPlaceLeft[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_JumpInPlaceLeft_Step0, MovementAction_JumpInPlaceLeft_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x55[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_JumpInPlaceRight[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_JumpInPlaceRight_Step0, MovementAction_JumpInPlaceRight_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x56[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_JumpInPlaceDownUp[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_JumpInPlaceDownUp_Step0, MovementAction_JumpInPlaceDownUp_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x57[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_JumpInPlaceUpDown[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_JumpInPlaceUpDown_Step0, MovementAction_JumpInPlaceUpDown_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x58[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_JumpInPlaceLeftRight[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_JumpInPlaceLeftRight_Step0, MovementAction_JumpInPlaceLeftRight_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x59[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_JumpInPlaceRightLeft[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_JumpInPlaceRightLeft_Step0, MovementAction_JumpInPlaceRightLeft_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x5A[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_FaceOriginalDirection[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_FaceOriginalDirection_Step0, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x5B[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_NurseJoyBowDown[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_NurseJoyBowDown_Step0, MovementAction_WaitSpriteAnim, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x5C[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_EnableJumpLandingGroundEffect[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_EnableJumpLandingGroundEffect_Step0, MovementAction_Finish, }; -static bool8 (*const sMovementActionFuncs_x5D[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_DisableJumpLandingGroundEffect[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_DisableJumpLandingGroundEffect_Step0, MovementAction_Finish, }; -static bool8 (*const sMovementActionFuncs_x5E[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_DisableAnimation[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_DisableAnimation_Step0, MovementAction_Finish, }; -static bool8 (*const sMovementActionFuncs_x5F[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_RestoreAnimation[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_RestoreAnimation_Step0, MovementAction_Finish, }; -static bool8 (*const sMovementActionFuncs_x60[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_SetInvisible[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_SetInvisible_Step0, MovementAction_Finish, }; -static bool8 (*const sMovementActionFuncs_x61[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_SetVisible[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_SetVisible_Step0, MovementAction_Finish, }; -static bool8 (*const sMovementActionFuncs_x62[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_EmoteExclamationMark[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_EmoteExclamationMark_Step0, MovementAction_Finish, }; -static bool8 (*const sMovementActionFuncs_x63[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_EmoteQuestionMark[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_EmoteQuestionMark_Step0, MovementAction_Finish, }; -static bool8 (*const sMovementActionFuncs_x64[])(struct ObjectEvent *, struct Sprite *) = { - MovementAction_EmoteHeart_Step0, +static bool8 (*const sMovementActionFuncs_EmoteX[])(struct ObjectEvent *, struct Sprite *) = { + MovementAction_EmoteX_Step0, MovementAction_Finish, }; -static bool8 (*const sMovementActionFuncs_x65[])(struct ObjectEvent *, struct Sprite *) = { - do_double_excl_bubble, +static bool8 (*const sMovementActionFuncs_EmoteDoubleExclMark[])(struct ObjectEvent *, struct Sprite *) = { + MovementAction_EmoteDoubleExclamationMark_Step0, MovementAction_Finish, }; -static bool8 (*const sMovementActionFuncs_x66[])(struct ObjectEvent *, struct Sprite *) = { - do_smile_bubble, +static bool8 (*const sMovementActionFuncs_EmoteSmile[])(struct ObjectEvent *, struct Sprite *) = { + MovementAction_EmoteSmile_Step0, MovementAction_Finish, }; -static bool8 (*const sMovementActionFuncs_x67[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_RevealTrainer[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_RevealTrainer_Step0, MovementAction_RevealTrainer_Step1, MovementAction_Finish, }; -static bool8 (*const sMovementActionFuncs_x68[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_RockSmashBreak[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_RockSmashBreak_Step0, MovementAction_RockSmashBreak_Step1, MovementAction_RockSmashBreak_Step2, MovementAction_Finish, }; -static bool8 (*const sMovementActionFuncs_x69[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_CutTree[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_CutTree_Step0, MovementAction_CutTree_Step1, MovementAction_CutTree_Step2, MovementAction_Finish, }; -static bool8 (*const sMovementActionFuncs_x6A[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_SetFixedPriority[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_SetFixedPriority_Step0, MovementAction_Finish, }; -static bool8 (*const sMovementActionFuncs_x6B[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_ClearFixedPriority[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_ClearFixedPriority_Step0, MovementAction_Finish, }; -static bool8 (*const sMovementActionFuncs_x6C[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_InitAffineAnim[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_InitAffineAnim_Step0, MovementAction_Finish, }; -static bool8 (*const sMovementActionFuncs_x6D[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_ClearAffineAnim[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_ClearAffineAnim_Step0, MovementAction_Finish, }; -static bool8 (*const sMovementActionFuncs_x6E[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_WalkDownStartAffine[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_WalkDownStartAffine_Step0, MovementAction_WalkDownStartAffine_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x6F[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_WalkDownAffine[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_WalkDownAffine_Step0, MovementAction_WalkDownAffine_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x70[])(struct ObjectEvent *, struct Sprite *) = { - MovementActionFunc_x70_0, +static bool8 (*const sMovementActionFuncs_AcroWheelieFaceDown[])(struct ObjectEvent *, struct Sprite *) = { + MovementAction_AcroWheelieFaceDown_Step0, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x71[])(struct ObjectEvent *, struct Sprite *) = { - MovementActionFunc_x71_0, +static bool8 (*const sMovementActionFuncs_AcroWheelieFaceUp[])(struct ObjectEvent *, struct Sprite *) = { + MovementAction_AcroWheelieFaceUp_Step0, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x72[])(struct ObjectEvent *, struct Sprite *) = { - MovementActionFunc_x72_0, +static bool8 (*const sMovementActionFuncs_AcroWheelieFaceLeft[])(struct ObjectEvent *, struct Sprite *) = { + MovementAction_AcroWheelieFaceLeft_Step0, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x73[])(struct ObjectEvent *, struct Sprite *) = { - MovementActionFunc_x73_0, +static bool8 (*const sMovementActionFuncs_AcroWheelieFaceRight[])(struct ObjectEvent *, struct Sprite *) = { + MovementAction_AcroWheelieFaceRight_Step0, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x74[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_AcroPopWheelieDown[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_AcroPopWheelieDown_Step0, MovementAction_WaitSpriteAnim, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x75[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_AcroPopWheelieUp[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_AcroPopWheelieUp_Step0, MovementAction_WaitSpriteAnim, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x76[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_AcroPopWheelieLeft[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_AcroPopWheelieLeft_Step0, MovementAction_WaitSpriteAnim, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x77[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_AcroPopWheelieRight[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_AcroPopWheelieRight_Step0, MovementAction_WaitSpriteAnim, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x78[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_AcroEndWheelieFaceDown[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_AcroEndWheelieFaceDown_Step0, MovementAction_WaitSpriteAnim, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x79[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_AcroEndWheelieFaceUp[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_AcroEndWheelieFaceUp_Step0, MovementAction_WaitSpriteAnim, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x7A[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_AcroEndWheelieFaceLeft[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_AcroEndWheelieFaceLeft_Step0, MovementAction_WaitSpriteAnim, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x7B[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_AcroEndWheelieFaceRight[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_AcroEndWheelieFaceRight_Step0, MovementAction_WaitSpriteAnim, MovementAction_PauseSpriteAnim, +}; + +static bool8 (*const MovementActionFuncs_UnusedAcroActionDown[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_UnusedAcroActionDown_Step0, MovementAction_WaitSpriteAnim, MovementAction_PauseSpriteAnim, +}; + +static bool8 (*const MovementActionFuncs_UnusedAcroActionUp[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_UnusedAcroActionUp_Step0, MovementAction_WaitSpriteAnim, MovementAction_PauseSpriteAnim, +}; + +static bool8 (*const MovementActionFuncs_UnusedAcroActionLeft[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_UnusedAcroActionLeft_Step0, MovementAction_WaitSpriteAnim, MovementAction_PauseSpriteAnim, +}; + +static bool8 (*const MovementActionFuncs_UnusedAcroActionRight[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_UnusedAcroActionRight_Step0, MovementAction_WaitSpriteAnim, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x7C[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_AcroWheelieHopFaceDown[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_AcroWheelieHopFaceDown_Step0, MovementAction_AcroWheelieHopFaceDown_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x7D[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_AcroWheelieHopFaceUp[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_AcroWheelieHopFaceUp_Step0, MovementAction_AcroWheelieHopFaceUp_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x7E[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_AcroWheelieHopFaceLeft[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_AcroWheelieHopFaceLeft_Step0, MovementAction_AcroWheelieHopFaceLeft_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x7F[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_AcroWheelieHopFaceRight[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_AcroWheelieHopFaceRight_Step0, MovementAction_AcroWheelieHopFaceRight_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x80[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_AcroWheelieHopDown[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_AcroWheelieHopDown_Step0, MovementAction_AcroWheelieHopDown_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x81[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_AcroWheelieHopUp[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_AcroWheelieHopUp_Step0, MovementAction_AcroWheelieHopUp_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x82[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_AcroWheelieHopLeft[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_AcroWheelieHopLeft_Step0, MovementAction_AcroWheelieHopLeft_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x83[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_AcroWheelieHopRight[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_AcroWheelieHopRight_Step0, MovementAction_AcroWheelieHopRight_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x84[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_AcroWheelieJumpDown[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_AcroWheelieJumpDown_Step0, MovementAction_AcroWheelieJumpDown_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x85[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_AcroWheelieJumpUp[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_AcroWheelieJumpUp_Step0, MovementAction_AcroWheelieJumpUp_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x86[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_AcroWheelieJumpLeft[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_AcroWheelieJumpLeft_Step0, MovementAction_AcroWheelieJumpLeft_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x87[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_AcroWheelieJumpRight[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_AcroWheelieJumpRight_Step0, MovementAction_AcroWheelieJumpRight_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x88[])(struct ObjectEvent *, struct Sprite *) = { - MovementActionFunc_x88_0, +static bool8 (*const sMovementActionFuncs_AcroWheelieInPlaceDown[])(struct ObjectEvent *, struct Sprite *) = { + MovementAction_AcroWheelieInPlaceDown_Step0, MovementAction_WalkInPlace_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x89[])(struct ObjectEvent *, struct Sprite *) = { - MovementActionFunc_x89_0, +static bool8 (*const sMovementActionFuncs_AcroWheelieInPlaceUp[])(struct ObjectEvent *, struct Sprite *) = { + MovementAction_AcroWheelieInPlaceUp_Step0, MovementAction_WalkInPlace_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x8A[])(struct ObjectEvent *, struct Sprite *) = { - MovementActionFunc_x8A_0, +static bool8 (*const sMovementActionFuncs_AcroWheelieInPlaceLeft[])(struct ObjectEvent *, struct Sprite *) = { + MovementAction_AcroWheelieInPlaceLeft_Step0, MovementAction_WalkInPlace_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x8B[])(struct ObjectEvent *, struct Sprite *) = { - MovementActionFunc_x8B_0, +static bool8 (*const sMovementActionFuncs_AcroWheelieInPlaceRight[])(struct ObjectEvent *, struct Sprite *) = { + MovementAction_AcroWheelieInPlaceRight_Step0, MovementAction_WalkInPlace_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x8C[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_AcroPopWheelieMoveDown[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_AcroPopWheelieMoveDown_Step0, MovementAction_AcroPopWheelieMoveDown_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x8D[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_AcroPopWheelieMoveUp[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_AcroPopWheelieMoveUp_Step0, MovementAction_AcroPopWheelieMoveUp_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x8E[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_AcroPopWheelieMoveLeft[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_AcroPopWheelieMoveLeft_Step0, MovementAction_AcroPopWheelieMoveLeft_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x8F[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_AcroPopWheelieMoveRight[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_AcroPopWheelieMoveRight_Step0, MovementAction_AcroPopWheelieMoveRight_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x90[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_AcroWheelieMoveDown[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_AcroWheelieMoveDown_Step0, MovementAction_AcroWheelieMoveDown_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x91[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_AcroWheelieMoveUp[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_AcroWheelieMoveUp_Step0, MovementAction_AcroWheelieMoveUp_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x92[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_AcroWheelieMoveLeft[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_AcroWheelieMoveLeft_Step0, MovementAction_AcroWheelieMoveLeft_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x93[])(struct ObjectEvent *, struct Sprite *) = { +static bool8 (*const sMovementActionFuncs_AcroWheelieMoveRight[])(struct ObjectEvent *, struct Sprite *) = { MovementAction_AcroWheelieMoveRight_Step0, MovementAction_AcroWheelieMoveRight_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x94[])(struct ObjectEvent *, struct Sprite *) = { - MovementActionFunc_x94_0, - MovementActionFunc_x94_1, +static bool8 (*const sMovementActionFuncs_SpinDown[])(struct ObjectEvent *, struct Sprite *) = { + MovementAction_SpinDown_Step0, + MovementAction_SpinDown_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x95[])(struct ObjectEvent *, struct Sprite *) = { - MovementActionFunc_x95_0, - MovementActionFunc_x95_1, +static bool8 (*const sMovementActionFuncs_SpinUp[])(struct ObjectEvent *, struct Sprite *) = { + MovementAction_SpinUp_Step0, + MovementAction_SpinUp_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x96[])(struct ObjectEvent *, struct Sprite *) = { - MovementActionFunc_x96_0, - MovementActionFunc_x96_1, +static bool8 (*const sMovementActionFuncs_SpinLeft[])(struct ObjectEvent *, struct Sprite *) = { + MovementAction_SpinLeft_Step0, + MovementAction_SpinLeft_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x97[])(struct ObjectEvent *, struct Sprite *) = { - MovementActionFunc_x97_0, - MovementActionFunc_x97_1, +static bool8 (*const sMovementActionFuncs_SpinRight[])(struct ObjectEvent *, struct Sprite *) = { + MovementAction_SpinRight_Step0, + MovementAction_SpinRight_Step1, MovementAction_PauseSpriteAnim, }; -static bool8 (*const sMovementActionFuncs_x98[])(struct ObjectEvent *, struct Sprite *) = { - MovementActionFunc_x98_0, - MovementActionFunc_x98_1, +static bool8 (*const sMovementActionFuncs_RaiseHandAndStop[])(struct ObjectEvent *, struct Sprite *) = { + MovementAction_RaiseHand_Step0, + MovementAction_RaiseHandAndStop_Step1, }; -static bool8 (*const sMovementActionFuncs_x99[])(struct ObjectEvent *, struct Sprite *) = { - MovementActionFunc_x98_0, - MovementActionFunc_x99_1, +static bool8 (*const sMovementActionFuncs_RaiseHandAndJump[])(struct ObjectEvent *, struct Sprite *) = { + MovementAction_RaiseHand_Step0, + MovementAction_RaiseHandAndJump_Step1, }; -static bool8 (*const sMovementActionFuncs_x9A[])(struct ObjectEvent *, struct Sprite *) = { - MovementActionFunc_x98_0, - MovementActionFunc_x9A_1, +static bool8 (*const sMovementActionFuncs_RaiseHandAndSwim[])(struct ObjectEvent *, struct Sprite *) = { + MovementAction_RaiseHand_Step0, + MovementAction_RaiseHandAndSwim_Step1, }; -static bool8 (*const sMovementActionFuncs_x9F[])(struct ObjectEvent *, struct Sprite *) = { - MovementActionFunc_x9F_0, - MovementActionFunc_x9F_1, +static bool8 (*const sMovementActionFuncs_ShakeHeadOrWalkInPlace[])(struct ObjectEvent *, struct Sprite *) = { + MovementAction_ShakeHeadOrWalkInPlace_Step0, + MovementAction_ShakeHeadOrWalkInPlace_Step1, }; -static bool8 (*const sMovementActionFuncs_xA4[])(struct ObjectEvent *, struct Sprite *) = { - MovementActionFunc_xA4_0, - MovementActionFunc_xA4_1, - MovementActionFunc_xA4_2, +static bool8 (*const sMovementActionFuncs_FlyUp[])(struct ObjectEvent *, struct Sprite *) = { + MovementAction_FlyUp_Step0, + MovementAction_FlyUp_Step1, + MovementAction_FlyUp_Step2, }; -static bool8 (*const sMovementActionFuncs_xA5[])(struct ObjectEvent *, struct Sprite *) = { - MovementActionFunc_xA5_0, - MovementActionFunc_xA5_1, - MovementActionFunc_xA4_2, +static bool8 (*const sMovementActionFuncs_FlyDown[])(struct ObjectEvent *, struct Sprite *) = { + MovementAction_FlyDown_Step0, + MovementAction_FlyDown_Step1, + MovementAction_FlyUp_Step2, }; diff --git a/src/data/object_events/movement_type_func_tables.h b/src/data/object_events/movement_type_func_tables.h index 627d1bc51..4799a7edd 100644 --- a/src/data/object_events/movement_type_func_tables.h +++ b/src/data/object_events/movement_type_func_tables.h @@ -141,12 +141,12 @@ static bool8 MovementType_MoveInPlace_Step1(struct ObjectEvent *objectEvent, str static bool8 MovementType_Invisible_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite); static bool8 MovementType_Invisible_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite); static bool8 MovementType_Invisible_Step2(struct ObjectEvent *objectEvent, struct Sprite *sprite); -static bool8 MovementType_VsSeeker4D_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite); -static bool8 MovementType_VsSeeker4D_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite); -static bool8 MovementType_VsSeeker4D_Step2(struct ObjectEvent *objectEvent, struct Sprite *sprite); -static bool8 MovementType_VsSeeker4E_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite); -static bool8 MovementType_VsSeeker4F_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite); -static bool8 MovementType_VsSeeker4E_VsSeeker4F_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite); +static bool8 MovementType_RaiseHandAndStop_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite); +static bool8 MovementType_RaiseHandAndStop_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite); +static bool8 MovementType_RaiseHandAndStop_Step2(struct ObjectEvent *objectEvent, struct Sprite *sprite); +static bool8 MovementType_RaiseHandAndJump_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite); +static bool8 MovementType_RaiseHandAndSwim_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite); +static bool8 MovementType_RaiseHandAndMove_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite); static u8 GetVectorDirection(s16 dx, s16 dy, s16 absdx, s16 absdy); static u8 GetLimitedVectorDirection_SouthNorth(s16 dx, s16 dy, s16 absdx, s16 absdy); @@ -596,18 +596,18 @@ u8 (*const gMovementTypeFuncs_Invisible[])(struct ObjectEvent *, struct Sprite * MovementType_Invisible_Step2, }; -u8 (*const gMovementTypeFuncs_VsSeeker4D[])(struct ObjectEvent *, struct Sprite *) = { - MovementType_VsSeeker4D_Step0, - MovementType_VsSeeker4D_Step1, - MovementType_VsSeeker4D_Step2, +u8 (*const gMovementTypeFuncs_RaiseHandAndStop[])(struct ObjectEvent *, struct Sprite *) = { + MovementType_RaiseHandAndStop_Step0, + MovementType_RaiseHandAndStop_Step1, + MovementType_RaiseHandAndStop_Step2, }; -u8 (*const gMovementTypeFuncs_VsSeeker4E[])(struct ObjectEvent *, struct Sprite *) = { - MovementType_VsSeeker4E_Step0, - MovementType_VsSeeker4E_VsSeeker4F_Step1, +u8 (*const gMovementTypeFuncs_RaiseHandAndJump[])(struct ObjectEvent *, struct Sprite *) = { + MovementType_RaiseHandAndJump_Step0, + MovementType_RaiseHandAndMove_Step1, }; -u8 (*const gMovementTypeFuncs_VsSeeker4F[])(struct ObjectEvent *, struct Sprite *) = { - MovementType_VsSeeker4F_Step0, - MovementType_VsSeeker4E_VsSeeker4F_Step1, +u8 (*const gMovementTypeFuncs_RaiseHandAndSwim[])(struct ObjectEvent *, struct Sprite *) = { + MovementType_RaiseHandAndSwim_Step0, + MovementType_RaiseHandAndMove_Step1, }; diff --git a/src/data/trainer_graphics/front_pic_anims.h b/src/data/trainer_graphics/front_pic_anims.h index 32d38068a..2013ebb4b 100644 --- a/src/data/trainer_graphics/front_pic_anims.h +++ b/src/data/trainer_graphics/front_pic_anims.h @@ -1,891 +1,891 @@ -static const union AnimCmd *const sAnims_8238E8C[] = +static const union AnimCmd *const sAnims_AquaLeaderArchie[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238E90[] = +static const union AnimCmd *const sAnims_AquaGruntM[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238E94[] = +static const union AnimCmd *const sAnims_AquaGruntF[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238E98[] = +static const union AnimCmd *const sAnims_RSAromaLady[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238E9C[] = +static const union AnimCmd *const sAnims_RSRuinManiac[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238EA0[] = +static const union AnimCmd *const sAnims_Interviewer[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238EA4[] = +static const union AnimCmd *const sAnims_RSTuberF[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238EA8[] = +static const union AnimCmd *const sAnims_RSTuberM[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238EAC[] = +static const union AnimCmd *const sAnims_RSCooltrainerM[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238EB0[] = +static const union AnimCmd *const sAnims_RSCooltrainerF[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238EB4[] = +static const union AnimCmd *const sAnims_HexManiac[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238EB8[] = +static const union AnimCmd *const sAnims_RSLady[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238EBC[] = +static const union AnimCmd *const sAnims_RSBeauty[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238EC0[] = +static const union AnimCmd *const sAnims_RichBoy[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238EC4[] = +static const union AnimCmd *const sAnims_RSPokemaniac[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238EC8[] = +static const union AnimCmd *const sAnims_RSSwimmerM[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238ECC[] = +static const union AnimCmd *const sAnims_RSBlackBelt[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238ED0[] = +static const union AnimCmd *const sAnims_Guitarist[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238ED4[] = +static const union AnimCmd *const sAnims_Kindler[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238ED8[] = +static const union AnimCmd *const sAnims_RSCamper[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238EDC[] = +static const union AnimCmd *const sAnims_BugManiac[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238EE0[] = +static const union AnimCmd *const sAnims_RSPsychicM[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238EE4[] = +static const union AnimCmd *const sAnims_RSPsychicF[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238EE8[] = +static const union AnimCmd *const sAnims_RSGentleman[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238EEC[] = +static const union AnimCmd *const sAnims_EliteFourSidney[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238EF0[] = +static const union AnimCmd *const sAnims_EliteFourPhoebe[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238EF4[] = +static const union AnimCmd *const sAnims_LeaderRoxanne[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238EF8[] = +static const union AnimCmd *const sAnims_LeaderBrawly[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238EFC[] = +static const union AnimCmd *const sAnims_LeaderTateAndLiza[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238F00[] = +static const union AnimCmd *const sAnims_SchoolKidM[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238F04[] = +static const union AnimCmd *const sAnims_SchoolKidF[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238F08[] = +static const union AnimCmd *const sAnims_SrAndJr[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238F0C[] = +static const union AnimCmd *const sAnims_PokefanM[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238F10[] = +static const union AnimCmd *const sAnims_PokefanF[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238F14[] = +static const union AnimCmd *const sAnims_ExpertM[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238F18[] = +static const union AnimCmd *const sAnims_ExpertF[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238F1C[] = +static const union AnimCmd *const sAnims_RSYoungster[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238F20[] = +static const union AnimCmd *const sAnims_ChampionSteven[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238F24[] = +static const union AnimCmd *const sAnims_RSFisherman[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238F28[] = +static const union AnimCmd *const sAnims_CyclingTriathleteM[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238F2C[] = +static const union AnimCmd *const sAnims_CyclingTriathleteF[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238F30[] = +static const union AnimCmd *const sAnims_RunningTriathleteM[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238F34[] = +static const union AnimCmd *const sAnims_RunningTriathleteF[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238F38[] = +static const union AnimCmd *const sAnims_SwimmingTriathleteM[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238F3C[] = +static const union AnimCmd *const sAnims_SwimmingTriathleteF[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238F40[] = +static const union AnimCmd *const sAnims_DragonTamer[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238F44[] = +static const union AnimCmd *const sAnims_RSBirdKeeper[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238F48[] = +static const union AnimCmd *const sAnims_NinjaBoy[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238F4C[] = +static const union AnimCmd *const sAnims_BattleGirl[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238F50[] = +static const union AnimCmd *const sAnims_ParasolLady[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238F54[] = +static const union AnimCmd *const sAnims_RSSwimmerF[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238F58[] = +static const union AnimCmd *const sAnims_RSPicnicker[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238F5C[] = +static const union AnimCmd *const sAnims_RSTwins[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238F60[] = +static const union AnimCmd *const sAnims_RSSailor[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238F64[] = +static const union AnimCmd *const sAnims_Collector[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238F68[] = +static const union AnimCmd *const sAnims_Wally[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238F6C[] = +static const union AnimCmd *const sAnims_RSBrendan1[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238F70[] = +static const union AnimCmd *const sAnims_RSMay1[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238F74[] = +static const union AnimCmd *const sAnims_RSPokemonBreederM[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238F78[] = +static const union AnimCmd *const sAnims_RSPokemonBreederF[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238F7C[] = +static const union AnimCmd *const sAnims_RSPokemonRangerM[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238F80[] = +static const union AnimCmd *const sAnims_RSPokemonRangerF[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238F84[] = +static const union AnimCmd *const sAnims_MagmaLeaderMaxie[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238F88[] = +static const union AnimCmd *const sAnims_MagmaGruntM[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238F8C[] = +static const union AnimCmd *const sAnims_MagmaGruntF[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238F90[] = +static const union AnimCmd *const sAnims_RSLass[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238F94[] = +static const union AnimCmd *const sAnims_RSBugCatcher[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238F98[] = +static const union AnimCmd *const sAnims_RSHiker[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238F9C[] = +static const union AnimCmd *const sAnims_RSYoungCouple[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238FA0[] = +static const union AnimCmd *const sAnims_OldCouple[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238FA4[] = +static const union AnimCmd *const sAnims_RSSisAndBro[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238FA8[] = +static const union AnimCmd *const sAnims_AquaAdminM[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238FAC[] = +static const union AnimCmd *const sAnims_AquaAdminF[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238FB0[] = +static const union AnimCmd *const sAnims_MagmaAdminM[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238FB4[] = +static const union AnimCmd *const sAnims_MagmaAdminF[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238FB8[] = +static const union AnimCmd *const sAnims_LeaderWattson[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238FBC[] = +static const union AnimCmd *const sAnims_LeaderFlannery[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238FC0[] = +static const union AnimCmd *const sAnims_LeaderNorman[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238FC4[] = +static const union AnimCmd *const sAnims_LeaderWinona[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238FC8[] = +static const union AnimCmd *const sAnims_LeaderWallace[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238FCC[] = +static const union AnimCmd *const sAnims_EliteFourGlacia[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238FD0[] = +static const union AnimCmd *const sAnims_EliteFourDrake[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238FD4[] = +static const union AnimCmd *const sAnims_Youngster[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238FD8[] = +static const union AnimCmd *const sAnims_BugCatcher[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238FDC[] = +static const union AnimCmd *const sAnims_Lass[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238FE0[] = +static const union AnimCmd *const sAnims_Sailor[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238FE4[] = +static const union AnimCmd *const sAnims_Camper[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238FE8[] = +static const union AnimCmd *const sAnims_Picnicker[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238FEC[] = +static const union AnimCmd *const sAnims_Pokemaniac[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238FF0[] = +static const union AnimCmd *const sAnims_SuperNerd[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238FF4[] = +static const union AnimCmd *const sAnims_Hiker[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238FF8[] = +static const union AnimCmd *const sAnims_Biker[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8238FFC[] = +static const union AnimCmd *const sAnims_Burglar[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8239000[] = +static const union AnimCmd *const sAnims_Engineer[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8239004[] = +static const union AnimCmd *const sAnims_Fisherman[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8239008[] = +static const union AnimCmd *const sAnims_SwimmerM[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_823900C[] = +static const union AnimCmd *const sAnims_CueBall[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8239010[] = +static const union AnimCmd *const sAnims_Gamer[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8239014[] = +static const union AnimCmd *const sAnims_Beauty[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8239018[] = +static const union AnimCmd *const sAnims_SwimmerF[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_823901C[] = +static const union AnimCmd *const sAnims_PsychicM[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8239020[] = +static const union AnimCmd *const sAnims_Rocker[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8239024[] = +static const union AnimCmd *const sAnims_Juggler[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8239028[] = +static const union AnimCmd *const sAnims_Tamer[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_823902C[] = +static const union AnimCmd *const sAnims_BirdKeeper[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8239030[] = +static const union AnimCmd *const sAnims_BlackBelt[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8239034[] = +static const union AnimCmd *const sAnims_RivalEarly[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8239038[] = +static const union AnimCmd *const sAnims_Scientist[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_823903C[] = +static const union AnimCmd *const sAnims_LeaderGiovanni[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8239040[] = +static const union AnimCmd *const sAnims_RocketGruntM[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8239044[] = +static const union AnimCmd *const sAnims_CooltrainerM[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8239048[] = +static const union AnimCmd *const sAnims_CooltrainerF[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_823904C[] = +static const union AnimCmd *const sAnims_EliteFourLorelei[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8239050[] = +static const union AnimCmd *const sAnims_EliteFourBruno[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8239054[] = +static const union AnimCmd *const sAnims_EliteFourAgatha[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8239058[] = +static const union AnimCmd *const sAnims_EliteFourLance[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_823905C[] = +static const union AnimCmd *const sAnims_LeaderBrock[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8239060[] = +static const union AnimCmd *const sAnims_LeaderMisty[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8239064[] = +static const union AnimCmd *const sAnims_LeaderLtSurge[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8239068[] = +static const union AnimCmd *const sAnims_LeaderErika[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_823906C[] = +static const union AnimCmd *const sAnims_LeaderKoga[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8239070[] = +static const union AnimCmd *const sAnims_LeaderBlaine[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8239074[] = +static const union AnimCmd *const sAnims_LeaderSabrina[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8239078[] = +static const union AnimCmd *const sAnims_Gentleman[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_823907C[] = +static const union AnimCmd *const sAnims_RivalLate[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8239080[] = +static const union AnimCmd *const sAnims_ChampionRival[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8239084[] = +static const union AnimCmd *const sAnims_Channeler[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8239088[] = +static const union AnimCmd *const sAnims_Twins[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_823908C[] = +static const union AnimCmd *const sAnims_CoolCouple[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8239090[] = +static const union AnimCmd *const sAnims_YoungCouple[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8239094[] = +static const union AnimCmd *const sAnims_CrushKin[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_8239098[] = +static const union AnimCmd *const sAnims_SisAndBro[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_823909C[] = +static const union AnimCmd *const sAnims_ProfessorOak[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_82390A0[] = +static const union AnimCmd *const sAnims_RSBrendan2[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_82390A4[] = +static const union AnimCmd *const sAnims_RSMay2[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_82390A8[] = +static const union AnimCmd *const sAnims_Red[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_82390AC[] = +static const union AnimCmd *const sAnims_Leaf[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_82390B0[] = +static const union AnimCmd *const sAnims_RocketGruntF[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_82390B4[] = +static const union AnimCmd *const sAnims_PsychicF[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_82390B8[] = +static const union AnimCmd *const sAnims_CrushGirl[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_82390BC[] = +static const union AnimCmd *const sAnims_TuberF[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_82390C0[] = +static const union AnimCmd *const sAnims_PokemonBreeder[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_82390C4[] = +static const union AnimCmd *const sAnims_PokemonRangerM[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_82390C8[] = +static const union AnimCmd *const sAnims_PokemonRangerF[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_82390CC[] = +static const union AnimCmd *const sAnims_AromaLady[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_82390D0[] = +static const union AnimCmd *const sAnims_RuinManiac[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_82390D4[] = +static const union AnimCmd *const sAnims_Lady[] = { sAnim_GeneralFrame0, }; -static const union AnimCmd *const sAnims_82390D8[] = +static const union AnimCmd *const sAnims_Painter[] = { sAnim_GeneralFrame0, }; const union AnimCmd *const *const gTrainerFrontAnimsPtrTable[] = { - sAnims_8238E8C, - sAnims_8238E90, - sAnims_8238E94, - sAnims_8238E98, - sAnims_8238E9C, - sAnims_8238EA0, - sAnims_8238EA4, - sAnims_8238EA8, - sAnims_8238EAC, - sAnims_8238EB0, - sAnims_8238EB4, - sAnims_8238EB8, - sAnims_8238EBC, - sAnims_8238EC0, - sAnims_8238EC4, - sAnims_8238EC8, - sAnims_8238ECC, - sAnims_8238ED0, - sAnims_8238ED4, - sAnims_8238ED8, - sAnims_8238EDC, - sAnims_8238EE0, - sAnims_8238EE4, - sAnims_8238EE8, - sAnims_8238EEC, - sAnims_8238EF0, - sAnims_8238EF4, - sAnims_8238EF8, - sAnims_8238EFC, - sAnims_8238F00, - sAnims_8238F04, - sAnims_8238F08, - sAnims_8238F0C, - sAnims_8238F10, - sAnims_8238F14, - sAnims_8238F18, - sAnims_8238F1C, - sAnims_8238F20, - sAnims_8238F24, - sAnims_8238F28, - sAnims_8238F2C, - sAnims_8238F30, - sAnims_8238F34, - sAnims_8238F38, - sAnims_8238F3C, - sAnims_8238F40, - sAnims_8238F44, - sAnims_8238F48, - sAnims_8238F4C, - sAnims_8238F50, - sAnims_8238F54, - sAnims_8238F58, - sAnims_8238F5C, - sAnims_8238F60, - sAnims_8238F64, - sAnims_8238F68, - sAnims_8238F6C, - sAnims_8238F70, - sAnims_8238F74, - sAnims_8238F78, - sAnims_8238F7C, - sAnims_8238F80, - sAnims_8238F84, - sAnims_8238F88, - sAnims_8238F8C, - sAnims_8238F90, - sAnims_8238F94, - sAnims_8238F98, - sAnims_8238F9C, - sAnims_8238FA0, - sAnims_8238FA4, - sAnims_8238FA8, - sAnims_8238FAC, - sAnims_8238FB0, - sAnims_8238FB4, - sAnims_8238FB8, - sAnims_8238FBC, - sAnims_8238FC0, - sAnims_8238FC4, - sAnims_8238FC8, - sAnims_8238FCC, - sAnims_8238FD0, - sAnims_8238FD4, - sAnims_8238FD8, - sAnims_8238FDC, - sAnims_8238FE0, - sAnims_8238FE4, - sAnims_8238FE8, - sAnims_8238FEC, - sAnims_8238FF0, - sAnims_8238FF4, - sAnims_8238FF8, - sAnims_8238FFC, - sAnims_8239000, - sAnims_8239004, - sAnims_8239008, - sAnims_823900C, - sAnims_8239010, - sAnims_8239014, - sAnims_8239018, - sAnims_823901C, - sAnims_8239020, - sAnims_8239024, - sAnims_8239028, - sAnims_823902C, - sAnims_8239030, - sAnims_8239034, - sAnims_8239038, - sAnims_823903C, - sAnims_8239040, - sAnims_8239044, - sAnims_8239048, - sAnims_823904C, - sAnims_8239050, - sAnims_8239054, - sAnims_8239058, - sAnims_823905C, - sAnims_8239060, - sAnims_8239064, - sAnims_8239068, - sAnims_823906C, - sAnims_8239070, - sAnims_8239074, - sAnims_8239078, - sAnims_823907C, - sAnims_8239080, - sAnims_8239084, - sAnims_8239088, - sAnims_823908C, - sAnims_8239090, - sAnims_8239094, - sAnims_8239098, - sAnims_823909C, - sAnims_82390A0, - sAnims_82390A4, - sAnims_82390A8, - sAnims_82390AC, - sAnims_82390B0, - sAnims_82390B4, - sAnims_82390B8, - sAnims_82390BC, - sAnims_82390C0, - sAnims_82390C4, - sAnims_82390C8, - sAnims_82390CC, - sAnims_82390D0, - sAnims_82390D4, - sAnims_82390D8, + [TRAINER_PIC_AQUA_LEADER_ARCHIE] = sAnims_AquaLeaderArchie, + [TRAINER_PIC_AQUA_GRUNT_M] = sAnims_AquaGruntM, + [TRAINER_PIC_AQUA_GRUNT_F] = sAnims_AquaGruntF, + [TRAINER_PIC_RS_AROMA_LADY] = sAnims_RSAromaLady, + [TRAINER_PIC_RS_RUIN_MANIAC] = sAnims_RSRuinManiac, + [TRAINER_PIC_INTERVIEWER] = sAnims_Interviewer, + [TRAINER_PIC_RS_TUBER_F] = sAnims_RSTuberF, + [TRAINER_PIC_RS_TUBER_M] = sAnims_RSTuberM, + [TRAINER_PIC_RS_COOLTRAINER_M] = sAnims_RSCooltrainerM, + [TRAINER_PIC_RS_COOLTRAINER_F] = sAnims_RSCooltrainerF, + [TRAINER_PIC_HEX_MANIAC] = sAnims_HexManiac, + [TRAINER_PIC_RS_LADY] = sAnims_RSLady, + [TRAINER_PIC_RS_BEAUTY] = sAnims_RSBeauty, + [TRAINER_PIC_RICH_BOY] = sAnims_RichBoy, + [TRAINER_PIC_RS_POKEMANIAC] = sAnims_RSPokemaniac, + [TRAINER_PIC_RS_SWIMMER_M] = sAnims_RSSwimmerM, + [TRAINER_PIC_RS_BLACK_BELT] = sAnims_RSBlackBelt, + [TRAINER_PIC_GUITARIST] = sAnims_Guitarist, + [TRAINER_PIC_KINDLER] = sAnims_Kindler, + [TRAINER_PIC_RS_CAMPER] = sAnims_RSCamper, + [TRAINER_PIC_BUG_MANIAC] = sAnims_BugManiac, + [TRAINER_PIC_RS_PSYCHIC_M] = sAnims_RSPsychicM, + [TRAINER_PIC_RS_PSYCHIC_F] = sAnims_RSPsychicF, + [TRAINER_PIC_RS_GENTLEMAN] = sAnims_RSGentleman, + [TRAINER_PIC_ELITE_FOUR_SIDNEY] = sAnims_EliteFourSidney, + [TRAINER_PIC_ELITE_FOUR_PHOEBE] = sAnims_EliteFourPhoebe, + [TRAINER_PIC_LEADER_ROXANNE] = sAnims_LeaderRoxanne, + [TRAINER_PIC_LEADER_BRAWLY] = sAnims_LeaderBrawly, + [TRAINER_PIC_LEADER_TATE_AND_LIZA] = sAnims_LeaderTateAndLiza, + [TRAINER_PIC_SCHOOL_KID_M] = sAnims_SchoolKidM, + [TRAINER_PIC_SCHOOL_KID_F] = sAnims_SchoolKidF, + [TRAINER_PIC_SR_AND_JR] = sAnims_SrAndJr, + [TRAINER_PIC_POKEFAN_M] = sAnims_PokefanM, + [TRAINER_PIC_POKEFAN_F] = sAnims_PokefanF, + [TRAINER_PIC_EXPERT_M] = sAnims_ExpertM, + [TRAINER_PIC_EXPERT_F] = sAnims_ExpertF, + [TRAINER_PIC_RS_YOUNGSTER] = sAnims_RSYoungster, + [TRAINER_PIC_CHAMPION_STEVEN] = sAnims_ChampionSteven, + [TRAINER_PIC_RS_FISHERMAN] = sAnims_RSFisherman, + [TRAINER_PIC_CYCLING_TRIATHLETE_M] = sAnims_CyclingTriathleteM, + [TRAINER_PIC_CYCLING_TRIATHLETE_F] = sAnims_CyclingTriathleteF, + [TRAINER_PIC_RUNNING_TRIATHLETE_M] = sAnims_RunningTriathleteM, + [TRAINER_PIC_RUNNING_TRIATHLETE_F] = sAnims_RunningTriathleteF, + [TRAINER_PIC_SWIMMING_TRIATHLETE_M] = sAnims_SwimmingTriathleteM, + [TRAINER_PIC_SWIMMING_TRIATHLETE_F] = sAnims_SwimmingTriathleteF, + [TRAINER_PIC_DRAGON_TAMER] = sAnims_DragonTamer, + [TRAINER_PIC_RS_BIRD_KEEPER] = sAnims_RSBirdKeeper, + [TRAINER_PIC_NINJA_BOY] = sAnims_NinjaBoy, + [TRAINER_PIC_BATTLE_GIRL] = sAnims_BattleGirl, + [TRAINER_PIC_PARASOL_LADY] = sAnims_ParasolLady, + [TRAINER_PIC_RS_SWIMMER_F] = sAnims_RSSwimmerF, + [TRAINER_PIC_RS_PICNICKER] = sAnims_RSPicnicker, + [TRAINER_PIC_RS_TWINS] = sAnims_RSTwins, + [TRAINER_PIC_RS_SAILOR] = sAnims_RSSailor, + [TRAINER_PIC_COLLECTOR] = sAnims_Collector, + [TRAINER_PIC_WALLY] = sAnims_Wally, + [TRAINER_PIC_RS_BRENDAN_1] = sAnims_RSBrendan1, + [TRAINER_PIC_RS_MAY_1] = sAnims_RSMay1, + [TRAINER_PIC_RS_POKEMON_BREEDER_M] = sAnims_RSPokemonBreederM, + [TRAINER_PIC_RS_POKEMON_BREEDER_F] = sAnims_RSPokemonBreederF, + [TRAINER_PIC_RS_POKEMON_RANGER_M] = sAnims_RSPokemonRangerM, + [TRAINER_PIC_RS_POKEMON_RANGER_F] = sAnims_RSPokemonRangerF, + [TRAINER_PIC_MAGMA_LEADER_MAXIE] = sAnims_MagmaLeaderMaxie, + [TRAINER_PIC_MAGMA_GRUNT_M] = sAnims_MagmaGruntM, + [TRAINER_PIC_MAGMA_GRUNT_F] = sAnims_MagmaGruntF, + [TRAINER_PIC_RS_LASS] = sAnims_RSLass, + [TRAINER_PIC_RS_BUG_CATCHER] = sAnims_RSBugCatcher, + [TRAINER_PIC_RS_HIKER] = sAnims_RSHiker, + [TRAINER_PIC_RS_YOUNG_COUPLE] = sAnims_RSYoungCouple, + [TRAINER_PIC_OLD_COUPLE] = sAnims_OldCouple, + [TRAINER_PIC_RS_SIS_AND_BRO] = sAnims_RSSisAndBro, + [TRAINER_PIC_AQUA_ADMIN_M] = sAnims_AquaAdminM, + [TRAINER_PIC_AQUA_ADMIN_F] = sAnims_AquaAdminF, + [TRAINER_PIC_MAGMA_ADMIN_M] = sAnims_MagmaAdminM, + [TRAINER_PIC_MAGMA_ADMIN_F] = sAnims_MagmaAdminF, + [TRAINER_PIC_LEADER_WATTSON] = sAnims_LeaderWattson, + [TRAINER_PIC_LEADER_FLANNERY] = sAnims_LeaderFlannery, + [TRAINER_PIC_LEADER_NORMAN] = sAnims_LeaderNorman, + [TRAINER_PIC_LEADER_WINONA] = sAnims_LeaderWinona, + [TRAINER_PIC_LEADER_WALLACE] = sAnims_LeaderWallace, + [TRAINER_PIC_ELITE_FOUR_GLACIA] = sAnims_EliteFourGlacia, + [TRAINER_PIC_ELITE_FOUR_DRAKE] = sAnims_EliteFourDrake, + [TRAINER_PIC_YOUNGSTER] = sAnims_Youngster, + [TRAINER_PIC_BUG_CATCHER] = sAnims_BugCatcher, + [TRAINER_PIC_LASS] = sAnims_Lass, + [TRAINER_PIC_SAILOR] = sAnims_Sailor, + [TRAINER_PIC_CAMPER] = sAnims_Camper, + [TRAINER_PIC_PICNICKER] = sAnims_Picnicker, + [TRAINER_PIC_POKEMANIAC] = sAnims_Pokemaniac, + [TRAINER_PIC_SUPER_NERD] = sAnims_SuperNerd, + [TRAINER_PIC_HIKER] = sAnims_Hiker, + [TRAINER_PIC_BIKER] = sAnims_Biker, + [TRAINER_PIC_BURGLAR] = sAnims_Burglar, + [TRAINER_PIC_ENGINEER] = sAnims_Engineer, + [TRAINER_PIC_FISHERMAN] = sAnims_Fisherman, + [TRAINER_PIC_SWIMMER_M] = sAnims_SwimmerM, + [TRAINER_PIC_CUE_BALL] = sAnims_CueBall, + [TRAINER_PIC_GAMER] = sAnims_Gamer, + [TRAINER_PIC_BEAUTY] = sAnims_Beauty, + [TRAINER_PIC_SWIMMER_F] = sAnims_SwimmerF, + [TRAINER_PIC_PSYCHIC_M] = sAnims_PsychicM, + [TRAINER_PIC_ROCKER] = sAnims_Rocker, + [TRAINER_PIC_JUGGLER] = sAnims_Juggler, + [TRAINER_PIC_TAMER] = sAnims_Tamer, + [TRAINER_PIC_BIRD_KEEPER] = sAnims_BirdKeeper, + [TRAINER_PIC_BLACK_BELT] = sAnims_BlackBelt, + [TRAINER_PIC_RIVAL_EARLY] = sAnims_RivalEarly, + [TRAINER_PIC_SCIENTIST] = sAnims_Scientist, + [TRAINER_PIC_LEADER_GIOVANNI] = sAnims_LeaderGiovanni, + [TRAINER_PIC_ROCKET_GRUNT_M] = sAnims_RocketGruntM, + [TRAINER_PIC_COOLTRAINER_M] = sAnims_CooltrainerM, + [TRAINER_PIC_COOLTRAINER_F] = sAnims_CooltrainerF, + [TRAINER_PIC_ELITE_FOUR_LORELEI] = sAnims_EliteFourLorelei, + [TRAINER_PIC_ELITE_FOUR_BRUNO] = sAnims_EliteFourBruno, + [TRAINER_PIC_ELITE_FOUR_AGATHA] = sAnims_EliteFourAgatha, + [TRAINER_PIC_ELITE_FOUR_LANCE] = sAnims_EliteFourLance, + [TRAINER_PIC_LEADER_BROCK] = sAnims_LeaderBrock, + [TRAINER_PIC_LEADER_MISTY] = sAnims_LeaderMisty, + [TRAINER_PIC_LEADER_LT_SURGE] = sAnims_LeaderLtSurge, + [TRAINER_PIC_LEADER_ERIKA] = sAnims_LeaderErika, + [TRAINER_PIC_LEADER_KOGA] = sAnims_LeaderKoga, + [TRAINER_PIC_LEADER_BLAINE] = sAnims_LeaderBlaine, + [TRAINER_PIC_LEADER_SABRINA] = sAnims_LeaderSabrina, + [TRAINER_PIC_GENTLEMAN] = sAnims_Gentleman, + [TRAINER_PIC_RIVAL_LATE] = sAnims_RivalLate, + [TRAINER_PIC_CHAMPION_RIVAL] = sAnims_ChampionRival, + [TRAINER_PIC_CHANNELER] = sAnims_Channeler, + [TRAINER_PIC_TWINS] = sAnims_Twins, + [TRAINER_PIC_COOL_COUPLE] = sAnims_CoolCouple, + [TRAINER_PIC_YOUNG_COUPLE] = sAnims_YoungCouple, + [TRAINER_PIC_CRUSH_KIN] = sAnims_CrushKin, + [TRAINER_PIC_SIS_AND_BRO] = sAnims_SisAndBro, + [TRAINER_PIC_PROFESSOR_OAK] = sAnims_ProfessorOak, + [TRAINER_PIC_RS_BRENDAN_2] = sAnims_RSBrendan2, + [TRAINER_PIC_RS_MAY_2] = sAnims_RSMay2, + [TRAINER_PIC_RED] = sAnims_Red, + [TRAINER_PIC_LEAF] = sAnims_Leaf, + [TRAINER_PIC_ROCKET_GRUNT_F] = sAnims_RocketGruntF, + [TRAINER_PIC_PSYCHIC_F] = sAnims_PsychicF, + [TRAINER_PIC_CRUSH_GIRL] = sAnims_CrushGirl, + [TRAINER_PIC_TUBER_F] = sAnims_TuberF, + [TRAINER_PIC_POKEMON_BREEDER] = sAnims_PokemonBreeder, + [TRAINER_PIC_POKEMON_RANGER_M] = sAnims_PokemonRangerM, + [TRAINER_PIC_POKEMON_RANGER_F] = sAnims_PokemonRangerF, + [TRAINER_PIC_AROMA_LADY] = sAnims_AromaLady, + [TRAINER_PIC_RUIN_MANIAC] = sAnims_RuinManiac, + [TRAINER_PIC_LADY] = sAnims_Lady, + [TRAINER_PIC_PAINTER] = sAnims_Painter, }; diff --git a/src/event_object_movement.c b/src/event_object_movement.c index acf21293b..3c2707173 100644 --- a/src/event_object_movement.c +++ b/src/event_object_movement.c @@ -90,9 +90,9 @@ static bool8 sub_805E2E8(struct ObjectEventTemplate *, s16, s16); static void sub_805E384(struct ObjectEventTemplate *); static bool8 MovementType_Disguise_Callback(struct ObjectEvent *, struct Sprite *); static bool8 MovementType_Buried_Callback(struct ObjectEvent *, struct Sprite *); -static u8 MovementType_VsSeeker4D_Callback(struct ObjectEvent *, struct Sprite *); -static u8 MovementType_VsSeeker4E_Callback(struct ObjectEvent *, struct Sprite *); -static u8 MovementType_VsSeeker4F_Callback(struct ObjectEvent *, struct Sprite *); +static u8 MovementType_RaiseHandAndStop_Callback(struct ObjectEvent *, struct Sprite *); +static u8 MovementType_RaiseHandAndJump_Callback(struct ObjectEvent *, struct Sprite *); +static u8 MovementType_RaiseHandAndSwim_Callback(struct ObjectEvent *, struct Sprite *); static void sub_8064544(struct ObjectEvent *, struct Sprite *); static void DoObjectUnionRoomWarpYDisplacement(struct Sprite *sprite); static void MovementType_None(struct Sprite *); @@ -147,11 +147,25 @@ static void MovementType_WalkInPlace(struct Sprite *); static void MovementType_WalkSlowlyInPlace(struct Sprite *); static void MovementType_JogInPlace(struct Sprite *); static void MovementType_Invisible(struct Sprite *); -static void MovementType_VsSeeker4D(struct Sprite *); -static void MovementType_VsSeeker4E(struct Sprite *); -static void MovementType_VsSeeker4F(struct Sprite *); +static void MovementType_RaiseHandAndStop(struct Sprite *); +static void MovementType_RaiseHandAndJump(struct Sprite *); +static void MovementType_RaiseHandAndSwim(struct Sprite *); static void MovementType_WanderAroundSlower(struct Sprite *); +enum { + MOVE_SPEED_NORMAL, // walking + MOVE_SPEED_FAST_1, // running / surfing / sliding (ice tile) + MOVE_SPEED_FAST_2, // water current / bicycle + MOVE_SPEED_FASTER, // going down cycling road on bicycle + MOVE_SPEED_FASTEST, +}; + +enum { + JUMP_DISTANCE_IN_PLACE, + JUMP_DISTANCE_NORMAL, + JUMP_DISTANCE_FAR, +}; + #define movement_type_def(setup, table) \ static u8 setup##_callback(struct ObjectEvent *, struct Sprite *); \ void setup(struct Sprite *sprite) \ @@ -275,9 +289,9 @@ static void (*const sMovementTypeCallbacks[MOVEMENT_TYPES_COUNT])(struct Sprite [MOVEMENT_TYPE_JOG_IN_PLACE_LEFT] = MovementType_JogInPlace, [MOVEMENT_TYPE_JOG_IN_PLACE_RIGHT] = MovementType_JogInPlace, [MOVEMENT_TYPE_INVISIBLE] = MovementType_Invisible, - [MOVEMENT_TYPE_VS_SEEKER_4D] = MovementType_VsSeeker4D, - [MOVEMENT_TYPE_VS_SEEKER_4E] = MovementType_VsSeeker4E, - [MOVEMENT_TYPE_VS_SEEKER_4F] = MovementType_VsSeeker4F, + [MOVEMENT_TYPE_RAISE_HAND_AND_STOP] = MovementType_RaiseHandAndStop, + [MOVEMENT_TYPE_RAISE_HAND_AND_JUMP] = MovementType_RaiseHandAndJump, + [MOVEMENT_TYPE_RAISE_HAND_AND_SWIM] = MovementType_RaiseHandAndSwim, [MOVEMENT_TYPE_WANDER_AROUND_SLOWER] = MovementType_WanderAroundSlower, }; @@ -404,9 +418,9 @@ static const u8 gInitialMovementTypeFacingDirections[MOVEMENT_TYPES_COUNT] = { [MOVEMENT_TYPE_JOG_IN_PLACE_LEFT] = DIR_WEST, [MOVEMENT_TYPE_JOG_IN_PLACE_RIGHT] = DIR_EAST, [MOVEMENT_TYPE_INVISIBLE] = DIR_SOUTH, - [MOVEMENT_TYPE_VS_SEEKER_4D] = DIR_SOUTH, - [MOVEMENT_TYPE_VS_SEEKER_4E] = DIR_SOUTH, - [MOVEMENT_TYPE_VS_SEEKER_4F] = DIR_SOUTH, + [MOVEMENT_TYPE_RAISE_HAND_AND_STOP] = DIR_SOUTH, + [MOVEMENT_TYPE_RAISE_HAND_AND_JUMP] = DIR_SOUTH, + [MOVEMENT_TYPE_RAISE_HAND_AND_SWIM] = DIR_SOUTH, [MOVEMENT_TYPE_WANDER_AROUND_SLOWER] = DIR_SOUTH, }; @@ -939,11 +953,11 @@ static const u8 gUnknown_83A650A[] = { }; static const u8 gUnknown_83A650F[] = { - [DIR_NONE] = MOVEMENT_ACTION_0xA0, - [DIR_SOUTH] = MOVEMENT_ACTION_0xA0, - [DIR_NORTH] = MOVEMENT_ACTION_0xA1, - [DIR_WEST] = MOVEMENT_ACTION_0xA2, - [DIR_EAST] = MOVEMENT_ACTION_0xA3, + [DIR_NONE] = MOVEMENT_ACTION_GLIDE_DOWN, + [DIR_SOUTH] = MOVEMENT_ACTION_GLIDE_DOWN, + [DIR_NORTH] = MOVEMENT_ACTION_GLIDE_UP, + [DIR_WEST] = MOVEMENT_ACTION_GLIDE_LEFT, + [DIR_EAST] = MOVEMENT_ACTION_GLIDE_RIGHT, }; static const u8 gUnknown_83A6514[] = { @@ -955,11 +969,11 @@ static const u8 gUnknown_83A6514[] = { }; static const u8 gUnknown_83A6519[] = { - [DIR_NONE] = MOVEMENT_ACTION_WALK_FASTEST_DOWN, - [DIR_SOUTH] = MOVEMENT_ACTION_WALK_FASTEST_DOWN, - [DIR_NORTH] = MOVEMENT_ACTION_WALK_FASTEST_UP, - [DIR_WEST] = MOVEMENT_ACTION_WALK_FASTEST_LEFT, - [DIR_EAST] = MOVEMENT_ACTION_WALK_FASTEST_RIGHT, + [DIR_NONE] = MOVEMENT_ACTION_WALK_FASTER_DOWN, + [DIR_SOUTH] = MOVEMENT_ACTION_WALK_FASTER_DOWN, + [DIR_NORTH] = MOVEMENT_ACTION_WALK_FASTER_UP, + [DIR_WEST] = MOVEMENT_ACTION_WALK_FASTER_LEFT, + [DIR_EAST] = MOVEMENT_ACTION_WALK_FASTER_RIGHT, }; static const u8 gUnknown_83A651E[] = { @@ -1067,11 +1081,11 @@ static const u8 gUnknown_83A655A[] = { }; static const u8 gUnknown_83A655F[] = { - [DIR_NONE] = MOVEMENT_ACTION_WALK_IN_PLACE_FASTEST_DOWN, - [DIR_SOUTH] = MOVEMENT_ACTION_WALK_IN_PLACE_FASTEST_DOWN, - [DIR_NORTH] = MOVEMENT_ACTION_WALK_IN_PLACE_FASTEST_UP, - [DIR_WEST] = MOVEMENT_ACTION_WALK_IN_PLACE_FASTEST_LEFT, - [DIR_EAST] = MOVEMENT_ACTION_WALK_IN_PLACE_FASTEST_RIGHT, + [DIR_NONE] = MOVEMENT_ACTION_WALK_IN_PLACE_FASTER_DOWN, + [DIR_SOUTH] = MOVEMENT_ACTION_WALK_IN_PLACE_FASTER_DOWN, + [DIR_NORTH] = MOVEMENT_ACTION_WALK_IN_PLACE_FASTER_UP, + [DIR_WEST] = MOVEMENT_ACTION_WALK_IN_PLACE_FASTER_LEFT, + [DIR_EAST] = MOVEMENT_ACTION_WALK_IN_PLACE_FASTER_RIGHT, }; static const u8 gUnknown_83A6564[] = { @@ -4573,45 +4587,45 @@ static bool8 MovementType_Invisible_Step2(struct ObjectEvent *objectEvent, struc return FALSE; } -void MovementType_VsSeeker4D(struct Sprite *sprite) +void MovementType_RaiseHandAndStop(struct Sprite *sprite) { - UpdateObjectEventCurrentMovement(&gObjectEvents[sprite->data[0]], sprite, MovementType_VsSeeker4D_Callback); + UpdateObjectEventCurrentMovement(&gObjectEvents[sprite->data[0]], sprite, MovementType_RaiseHandAndStop_Callback); } -void MovementType_VsSeeker4E(struct Sprite *sprite) +void MovementType_RaiseHandAndJump(struct Sprite *sprite) { - UpdateObjectEventCurrentMovement(&gObjectEvents[sprite->data[0]], sprite, MovementType_VsSeeker4E_Callback); + UpdateObjectEventCurrentMovement(&gObjectEvents[sprite->data[0]], sprite, MovementType_RaiseHandAndJump_Callback); } -void MovementType_VsSeeker4F(struct Sprite *sprite) +void MovementType_RaiseHandAndSwim(struct Sprite *sprite) { - UpdateObjectEventCurrentMovement(&gObjectEvents[sprite->data[0]], sprite, MovementType_VsSeeker4F_Callback); + UpdateObjectEventCurrentMovement(&gObjectEvents[sprite->data[0]], sprite, MovementType_RaiseHandAndSwim_Callback); } -static u8 MovementType_VsSeeker4D_Callback(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static u8 MovementType_RaiseHandAndStop_Callback(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - return gMovementTypeFuncs_VsSeeker4D[sprite->data[1]](objectEvent, sprite); + return gMovementTypeFuncs_RaiseHandAndStop[sprite->data[1]](objectEvent, sprite); } -static u8 MovementType_VsSeeker4E_Callback(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static u8 MovementType_RaiseHandAndJump_Callback(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - return gMovementTypeFuncs_VsSeeker4E[sprite->data[1]](objectEvent, sprite); + return gMovementTypeFuncs_RaiseHandAndJump[sprite->data[1]](objectEvent, sprite); } -static u8 MovementType_VsSeeker4F_Callback(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static u8 MovementType_RaiseHandAndSwim_Callback(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - return gMovementTypeFuncs_VsSeeker4F[sprite->data[1]](objectEvent, sprite); + return gMovementTypeFuncs_RaiseHandAndSwim[sprite->data[1]](objectEvent, sprite); } -static bool8 MovementType_VsSeeker4D_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementType_RaiseHandAndStop_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { ClearObjectEventMovement(objectEvent, sprite); - ObjectEventSetSingleMovement(objectEvent, sprite, MOVEMENT_ACTION_0x98); + ObjectEventSetSingleMovement(objectEvent, sprite, MOVEMENT_ACTION_RAISE_HAND_AND_STOP); sprite->data[1] = 1; return TRUE; } -static bool8 MovementType_VsSeeker4D_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementType_RaiseHandAndStop_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (ObjectEventExecSingleMovementAction(objectEvent, sprite)) { @@ -4621,29 +4635,29 @@ static bool8 MovementType_VsSeeker4D_Step1(struct ObjectEvent *objectEvent, stru return FALSE; } -static bool8 MovementType_VsSeeker4D_Step2(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementType_RaiseHandAndStop_Step2(struct ObjectEvent *objectEvent, struct Sprite *sprite) { objectEvent->singleMovementActive = FALSE; return FALSE; } -static bool8 MovementType_VsSeeker4E_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementType_RaiseHandAndJump_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { ClearObjectEventMovement(objectEvent, sprite); - ObjectEventSetSingleMovement(objectEvent, sprite, MOVEMENT_ACTION_0x99); + ObjectEventSetSingleMovement(objectEvent, sprite, MOVEMENT_ACTION_RAISE_HAND_AND_JUMP); sprite->data[1] = 1; return FALSE; } -static bool8 MovementType_VsSeeker4F_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementType_RaiseHandAndSwim_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { ClearObjectEventMovement(objectEvent, sprite); - ObjectEventSetSingleMovement(objectEvent, sprite, MOVEMENT_ACTION_0x9A); + ObjectEventSetSingleMovement(objectEvent, sprite, MOVEMENT_ACTION_RAISE_HAND_AND_SWIM); sprite->data[1] = 1; return FALSE; } -static bool8 MovementType_VsSeeker4E_VsSeeker4F_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementType_RaiseHandAndMove_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (ObjectEventExecSingleMovementAction(objectEvent, sprite)) { @@ -5251,7 +5265,7 @@ static u32 GetCopyDirection(u8 copyInitDir, u32 playerInitDir, u32 playerMoveDir static void ObjectEventExecHeldMovementAction(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (gMovementActionFuncs[objectEvent->movementActionId][sprite->data[2]](objectEvent, sprite)) + if (sMovementActionFuncs[objectEvent->movementActionId][sprite->data[2]](objectEvent, sprite)) { objectEvent->heldMovementFinished = TRUE; } @@ -5259,7 +5273,7 @@ static void ObjectEventExecHeldMovementAction(struct ObjectEvent *objectEvent, s static void sub_8064544(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (gMovementActionFuncs[objectEvent->movementActionId][sprite->data[2]](objectEvent, sprite)) + if (sMovementActionFuncs[objectEvent->movementActionId][sprite->data[2]](objectEvent, sprite)) { objectEvent->heldMovementFinished = TRUE; if (objectEvent->graphicsId == OBJ_EVENT_GFX_PUSHABLE_BOULDER) @@ -5269,7 +5283,7 @@ static void sub_8064544(struct ObjectEvent *objectEvent, struct Sprite *sprite) static bool8 ObjectEventExecSingleMovementAction(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (gMovementActionFuncs[objectEvent->movementActionId][sprite->data[2]](objectEvent, sprite)) + if (sMovementActionFuncs[objectEvent->movementActionId][sprite->data[2]](objectEvent, sprite)) { objectEvent->movementActionId = 0xFF; sprite->data[2] = 0; @@ -5340,16 +5354,15 @@ void InitNpcForMovement(struct ObjectEvent *objectEvent, struct Sprite *sprite, void InitMovementNormal(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction, u8 speed) { - u8 (*functions[NELEMS(gUnknown_83A6884)])(u8); - - memcpy(functions, gUnknown_83A6884, sizeof gUnknown_83A6884); + u8 (*functions[NELEMS(sDirectionAnimFuncsBySpeed)])(u8); + memcpy(functions, sDirectionAnimFuncsBySpeed, sizeof sDirectionAnimFuncsBySpeed); InitNpcForMovement(objectEvent, sprite, direction, speed); SetStepAnimHandleAlternation(objectEvent, sprite, functions[speed](objectEvent->facingDirection)); } void StartRunningAnim(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction) { - InitNpcForMovement(objectEvent, sprite, direction, 1); + InitNpcForMovement(objectEvent, sprite, direction, MOVE_SPEED_FAST_1); SetStepAnimHandleAlternation(objectEvent, sprite, GetRunningDirectionAnimNum(objectEvent->facingDirection)); } @@ -5433,13 +5446,13 @@ bool8 UpdateWalkSlowest(struct ObjectEvent *objectEvent, struct Sprite *sprite) return FALSE; } -static bool8 MovementActionFunc_x9B_0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_WalkSlowestDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitWalkSlowest(objectEvent, sprite, DIR_SOUTH); - return MovementActionFunc_x9B_1(objectEvent, sprite); + return MovementAction_WalkSlowestDown_Step1(objectEvent, sprite); } -static bool8 MovementActionFunc_x9B_1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_WalkSlowestDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (UpdateWalkSlowest(objectEvent, sprite)) { @@ -5449,13 +5462,13 @@ static bool8 MovementActionFunc_x9B_1(struct ObjectEvent *objectEvent, struct Sp return FALSE; } -static bool8 MovementActionFunc_x9C_0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_WalkSlowestUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitWalkSlowest(objectEvent, sprite, DIR_NORTH); - return MovementActionFunc_x9C_1(objectEvent, sprite); + return MovementAction_WalkSlowestUp_Step1(objectEvent, sprite); } -static bool8 MovementActionFunc_x9C_1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_WalkSlowestUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (UpdateWalkSlowest(objectEvent, sprite)) { @@ -5465,13 +5478,13 @@ static bool8 MovementActionFunc_x9C_1(struct ObjectEvent *objectEvent, struct Sp return FALSE; } -static bool8 MovementActionFunc_x9D_0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_WalkSlowestLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitWalkSlowest(objectEvent, sprite, DIR_WEST); - return MovementActionFunc_x9D_1(objectEvent, sprite); + return MovementAction_WalkSlowestLeft_Step1(objectEvent, sprite); } -static bool8 MovementActionFunc_x9D_1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_WalkSlowestLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (UpdateWalkSlowest(objectEvent, sprite)) { @@ -5481,13 +5494,13 @@ static bool8 MovementActionFunc_x9D_1(struct ObjectEvent *objectEvent, struct Sp return FALSE; } -static bool8 MovementActionFunc_x9E_0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_WalkSlowestRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitWalkSlowest(objectEvent, sprite, DIR_EAST); - return MovementActionFunc_x9E_1(objectEvent, sprite); + return MovementAction_WalkSlowestRight_Step1(objectEvent, sprite); } -static bool8 MovementActionFunc_x9E_1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_WalkSlowestRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (UpdateWalkSlowest(objectEvent, sprite)) { @@ -5497,13 +5510,13 @@ static bool8 MovementActionFunc_x9E_1(struct ObjectEvent *objectEvent, struct Sp return FALSE; } -static bool8 MovementActionFunc_x08_0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_WalkSlowerDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitWalkSlower(objectEvent, sprite, DIR_SOUTH); - return MovementActionFunc_x08_1(objectEvent, sprite); + return MovementAction_WalkSlowerDown_Step1(objectEvent, sprite); } -static bool8 MovementActionFunc_x08_1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_WalkSlowerDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (UpdateWalkSlower(objectEvent, sprite)) { @@ -5513,13 +5526,13 @@ static bool8 MovementActionFunc_x08_1(struct ObjectEvent *objectEvent, struct Sp return FALSE; } -static bool8 MovementActionFunc_x09_0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_WalkSlowerUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitWalkSlower(objectEvent, sprite, DIR_NORTH); - return MovementActionFunc_x09_1(objectEvent, sprite); + return MovementAction_WalkSlowerUp_Step1(objectEvent, sprite); } -static bool8 MovementActionFunc_x09_1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_WalkSlowerUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (UpdateWalkSlower(objectEvent, sprite)) { @@ -5529,13 +5542,13 @@ static bool8 MovementActionFunc_x09_1(struct ObjectEvent *objectEvent, struct Sp return FALSE; } -static bool8 MovementActionFunc_x0A_0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_WalkSlowerLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitWalkSlower(objectEvent, sprite, DIR_WEST); - return MovementActionFunc_x0A_1(objectEvent, sprite); + return MovementAction_WalkSlowerLeft_Step1(objectEvent, sprite); } -static bool8 MovementActionFunc_x0A_1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_WalkSlowerLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (UpdateWalkSlower(objectEvent, sprite)) { @@ -5545,13 +5558,13 @@ static bool8 MovementActionFunc_x0A_1(struct ObjectEvent *objectEvent, struct Sp return FALSE; } -static bool8 MovementActionFunc_x0B_0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_WalkSlowerRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitWalkSlower(objectEvent, sprite, DIR_EAST); - return MovementActionFunc_x0B_1(objectEvent, sprite); + return MovementAction_WalkSlowerRight_Step1(objectEvent, sprite); } -static bool8 MovementActionFunc_x0B_1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_WalkSlowerRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (UpdateWalkSlower(objectEvent, sprite)) { @@ -5599,13 +5612,13 @@ bool8 UpdateWalkSlow(struct ObjectEvent *objectEvent, struct Sprite *sprite) return FALSE; } -static bool8 MovementActionFunc_x0D_0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_WalkSlowUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitWalkSlow(objectEvent, sprite, DIR_NORTH); - return MovementActionFunc_x0D_1(objectEvent, sprite); + return MovementAction_WalkSlowUp_Step1(objectEvent, sprite); } -static bool8 MovementActionFunc_x0D_1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_WalkSlowUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (UpdateWalkSlow(objectEvent, sprite)) { @@ -5615,13 +5628,13 @@ static bool8 MovementActionFunc_x0D_1(struct ObjectEvent *objectEvent, struct Sp return FALSE; } -static bool8 MovementActionFunc_x0C_0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_WalkSlowDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitWalkSlow(objectEvent, sprite, DIR_SOUTH); - return MovementActionFunc_x0C_1(objectEvent, sprite); + return MovementAction_WalkSlowDown_Step1(objectEvent, sprite); } -static bool8 MovementActionFunc_x0C_1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_WalkSlowDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (UpdateWalkSlow(objectEvent, sprite)) { @@ -5631,13 +5644,13 @@ static bool8 MovementActionFunc_x0C_1(struct ObjectEvent *objectEvent, struct Sp return FALSE; } -static bool8 MovementActionFunc_x0E_0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_WalkSlowLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitWalkSlow(objectEvent, sprite, DIR_WEST); - return MovementActionFunc_x0E_1(objectEvent, sprite); + return MovementAction_WalkSlowLeft_Step1(objectEvent, sprite); } -static bool8 MovementActionFunc_x0E_1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_WalkSlowLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (UpdateWalkSlow(objectEvent, sprite)) { @@ -5647,13 +5660,13 @@ static bool8 MovementActionFunc_x0E_1(struct ObjectEvent *objectEvent, struct Sp return FALSE; } -static bool8 MovementActionFunc_x0F_0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_WalkSlowRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitWalkSlow(objectEvent, sprite, DIR_EAST); - return MovementActionFunc_x0F_1(objectEvent, sprite); + return MovementAction_WalkSlowRight_Step1(objectEvent, sprite); } -static bool8 MovementActionFunc_x0F_1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_WalkSlowRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (UpdateWalkSlow(objectEvent, sprite)) { @@ -5665,7 +5678,7 @@ static bool8 MovementActionFunc_x0F_1(struct ObjectEvent *objectEvent, struct Sp static bool8 MovementAction_WalkNormalDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitMovementNormal(objectEvent, sprite, DIR_SOUTH, 0); + InitMovementNormal(objectEvent, sprite, DIR_SOUTH, MOVE_SPEED_NORMAL); return MovementAction_WalkNormalDown_Step1(objectEvent, sprite); } @@ -5681,7 +5694,7 @@ static bool8 MovementAction_WalkNormalDown_Step1(struct ObjectEvent *objectEvent static bool8 MovementAction_WalkNormalUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitMovementNormal(objectEvent, sprite, DIR_NORTH, 0); + InitMovementNormal(objectEvent, sprite, DIR_NORTH, MOVE_SPEED_NORMAL); return MovementAction_WalkNormalUp_Step1(objectEvent, sprite); } @@ -5697,7 +5710,7 @@ static bool8 MovementAction_WalkNormalUp_Step1(struct ObjectEvent *objectEvent, static bool8 MovementAction_WalkNormalLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitMovementNormal(objectEvent, sprite, DIR_WEST, 0); + InitMovementNormal(objectEvent, sprite, DIR_WEST, MOVE_SPEED_NORMAL); return MovementAction_WalkNormalLeft_Step1(objectEvent, sprite); } @@ -5713,7 +5726,7 @@ static bool8 MovementAction_WalkNormalLeft_Step1(struct ObjectEvent *objectEvent static bool8 MovementAction_WalkNormalRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitMovementNormal(objectEvent, sprite, DIR_EAST, 0); + InitMovementNormal(objectEvent, sprite, DIR_EAST, MOVE_SPEED_NORMAL); return MovementAction_WalkNormalRight_Step1(objectEvent, sprite); } @@ -5727,42 +5740,51 @@ static bool8 MovementAction_WalkNormalRight_Step1(struct ObjectEvent *objectEven return FALSE; } -void InitJump(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction, u8 speed, u8 a5) +#define JUMP_HALFWAY 1 +#define JUMP_FINISHED ((u8)-1) + +enum { + JUMP_TYPE_HIGH, + JUMP_TYPE_LOW, + JUMP_TYPE_NORMAL, +}; + +void InitJump(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction, u8 distance, u8 type) { - s16 displacements[NELEMS(gUnknown_83A6958)]; + s16 displacements[NELEMS(sJumpInitDisplacements)]; s16 x; s16 y; - memcpy(displacements, gUnknown_83A6958, sizeof gUnknown_83A6958); + memcpy(displacements, sJumpInitDisplacements, sizeof sJumpInitDisplacements); x = 0; y = 0; SetObjectEventDirection(objectEvent, direction); - MoveCoordsInDirection(direction, &x, &y, displacements[speed], displacements[speed]); + MoveCoordsInDirection(direction, &x, &y, displacements[distance], displacements[distance]); ShiftObjectEventCoords(objectEvent, objectEvent->currentCoords.x + x, objectEvent->currentCoords.y + y); - SetJumpSpriteData(sprite, direction, speed, a5); + SetJumpSpriteData(sprite, direction, distance, type); sprite->data[2] = 1; sprite->animPaused = 0; objectEvent->triggerGroundEffectsOnMove = 1; objectEvent->disableCoveringGroundEffects = 1; } -void InitJumpRegular(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction, u8 speed, u8 a4) +void InitJumpRegular(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction, u8 distance, u8 type) { - InitJump(objectEvent, sprite, direction, speed, a4); + InitJump(objectEvent, sprite, direction, distance, type); SetStepAnimHandleAlternation(objectEvent, sprite, GetMoveDirectionAnimNum(objectEvent->facingDirection)); DoShadowFieldEffect(objectEvent); } u8 UpdateJumpAnim(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 callback(struct Sprite *)) { - s16 displacements[NELEMS(gUnknown_83A695E)]; + s16 displacements[NELEMS(sJumpDisplacements)]; s16 x; s16 y; u8 result; - memcpy(displacements, gUnknown_83A695E, sizeof gUnknown_83A695E); + memcpy(displacements, sJumpDisplacements, sizeof sJumpDisplacements); result = callback(sprite); - if (result == 1 && displacements[sprite->data[4]] != 0) + if (result == JUMP_HALFWAY && displacements[sprite->data[4]] != 0) { x = 0; y = 0; @@ -5771,7 +5793,7 @@ u8 UpdateJumpAnim(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 cal objectEvent->triggerGroundEffectsOnMove = TRUE; objectEvent->disableCoveringGroundEffects = TRUE; } - else if (result == 0xFF) + else if (result == JUMP_FINISHED) { ShiftStillObjectEventCoords(objectEvent); objectEvent->triggerGroundEffectsOnStop = TRUE; @@ -5793,7 +5815,7 @@ u8 DoJumpSpecialAnimStep(struct ObjectEvent *objectEvent, struct Sprite *sprite) bool8 DoJumpAnim(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (DoJumpAnimStep(objectEvent, sprite) == 0xFF) + if (DoJumpAnimStep(objectEvent, sprite) == JUMP_FINISHED) return TRUE; return FALSE; @@ -5801,7 +5823,7 @@ bool8 DoJumpAnim(struct ObjectEvent *objectEvent, struct Sprite *sprite) bool8 DoJumpSpecialAnim(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - if (DoJumpSpecialAnimStep(objectEvent, sprite) == 0xFF) + if (DoJumpSpecialAnimStep(objectEvent, sprite) == JUMP_FINISHED) return TRUE; return FALSE; @@ -5811,9 +5833,9 @@ bool8 DoJumpInPlaceAnim(struct ObjectEvent *objectEvent, struct Sprite *sprite) { switch (DoJumpAnimStep(objectEvent, sprite)) { - case 0xFF: + case JUMP_FINISHED: return TRUE; - case 1: + case JUMP_HALFWAY: SetObjectEventDirection(objectEvent, GetOppositeDirection(objectEvent->movementDirection)); SetStepAnim(objectEvent, sprite, GetMoveDirectionAnimNum(objectEvent->facingDirection)); default: @@ -5823,7 +5845,7 @@ bool8 DoJumpInPlaceAnim(struct ObjectEvent *objectEvent, struct Sprite *sprite) static bool8 MovementAction_Jump2Down_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitJumpRegular(objectEvent, sprite, DIR_SOUTH, 2, 0); + InitJumpRegular(objectEvent, sprite, DIR_SOUTH, JUMP_DISTANCE_FAR, JUMP_TYPE_HIGH); return MovementAction_Jump2Down_Step1(objectEvent, sprite); } @@ -5840,7 +5862,7 @@ static bool8 MovementAction_Jump2Down_Step1(struct ObjectEvent *objectEvent, str static bool8 MovementAction_Jump2Up_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitJumpRegular(objectEvent, sprite, DIR_NORTH, 2, 0); + InitJumpRegular(objectEvent, sprite, DIR_NORTH, JUMP_DISTANCE_FAR, JUMP_TYPE_HIGH); return MovementAction_Jump2Up_Step1(objectEvent, sprite); } @@ -5857,7 +5879,7 @@ static bool8 MovementAction_Jump2Up_Step1(struct ObjectEvent *objectEvent, struc static bool8 MovementAction_Jump2Left_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitJumpRegular(objectEvent, sprite, DIR_WEST, 2, 0); + InitJumpRegular(objectEvent, sprite, DIR_WEST, JUMP_DISTANCE_FAR, JUMP_TYPE_HIGH); return MovementAction_Jump2Left_Step1(objectEvent, sprite); } @@ -5874,7 +5896,7 @@ static bool8 MovementAction_Jump2Left_Step1(struct ObjectEvent *objectEvent, str static bool8 MovementAction_Jump2Right_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitJumpRegular(objectEvent, sprite, DIR_EAST, 2, 0); + InitJumpRegular(objectEvent, sprite, DIR_EAST, JUMP_DISTANCE_FAR, JUMP_TYPE_HIGH); return MovementAction_Jump2Right_Step1(objectEvent, sprite); } @@ -5937,7 +5959,7 @@ static bool8 MovementAction_Delay16_Step0(struct ObjectEvent *objectEvent, struc static bool8 MovementAction_WalkFastDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitMovementNormal(objectEvent, sprite, DIR_SOUTH, 1); + InitMovementNormal(objectEvent, sprite, DIR_SOUTH, MOVE_SPEED_FAST_1); return MovementAction_WalkFastDown_Step1(objectEvent, sprite); } @@ -5953,7 +5975,7 @@ static bool8 MovementAction_WalkFastDown_Step1(struct ObjectEvent *objectEvent, static bool8 MovementAction_WalkFastUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitMovementNormal(objectEvent, sprite, DIR_NORTH, 1); + InitMovementNormal(objectEvent, sprite, DIR_NORTH, MOVE_SPEED_FAST_1); return MovementAction_WalkFastUp_Step1(objectEvent, sprite); } @@ -5969,7 +5991,7 @@ static bool8 MovementAction_WalkFastUp_Step1(struct ObjectEvent *objectEvent, st static bool8 MovementAction_WalkFastLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitMovementNormal(objectEvent, sprite, DIR_WEST, 1); + InitMovementNormal(objectEvent, sprite, DIR_WEST, MOVE_SPEED_FAST_1); return MovementAction_WalkFastLeft_Step1(objectEvent, sprite); } @@ -5985,7 +6007,7 @@ static bool8 MovementAction_WalkFastLeft_Step1(struct ObjectEvent *objectEvent, static bool8 MovementAction_WalkFastRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitMovementNormal(objectEvent, sprite, DIR_EAST, 1); + InitMovementNormal(objectEvent, sprite, DIR_EAST, MOVE_SPEED_FAST_1); return MovementAction_WalkFastRight_Step1(objectEvent, sprite); } @@ -5999,7 +6021,7 @@ static bool8 MovementAction_WalkFastRight_Step1(struct ObjectEvent *objectEvent, return FALSE; } -bool8 sub_80653CC(struct ObjectEvent *objectEvent, struct Sprite *sprite) +bool8 UpdateMovementGlide(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (NpcTakeStep(sprite)) { @@ -6010,19 +6032,19 @@ bool8 sub_80653CC(struct ObjectEvent *objectEvent, struct Sprite *sprite) return FALSE; } -u8 MovementActionFunc_xA0_0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +u8 MovementAction_GlideDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if(objectEvent->facingDirection != DIR_SOUTH) StartSpriteAnim(sprite, GetFaceDirectionAnimNum(DIR_SOUTH)); - InitNpcForMovement(objectEvent, sprite, DIR_SOUTH, 1); - return MovementActionFunc_xA0_1(objectEvent, sprite); + InitNpcForMovement(objectEvent, sprite, DIR_SOUTH, MOVE_SPEED_FAST_1); + return MovementAction_GlideDown_Step1(objectEvent, sprite); } -static bool8 MovementActionFunc_xA0_1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_GlideDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { AnimateSprite(sprite); - if (sub_80653CC(objectEvent, sprite)) + if (UpdateMovementGlide(objectEvent, sprite)) { sprite->data[2] = 2; return TRUE; @@ -6030,19 +6052,19 @@ static bool8 MovementActionFunc_xA0_1(struct ObjectEvent *objectEvent, struct Sp return FALSE; } -u8 MovementActionFunc_xA1_0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +u8 MovementAction_GlideUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if(objectEvent->facingDirection != DIR_NORTH) StartSpriteAnim(sprite, GetFaceDirectionAnimNum(DIR_NORTH)); - InitNpcForMovement(objectEvent, sprite, DIR_NORTH, 1); - return MovementActionFunc_xA1_1(objectEvent, sprite); + InitNpcForMovement(objectEvent, sprite, DIR_NORTH, MOVE_SPEED_FAST_1); + return MovementAction_GlideUp_Step1(objectEvent, sprite); } -static bool8 MovementActionFunc_xA1_1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_GlideUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { AnimateSprite(sprite); - if (sub_80653CC(objectEvent, sprite)) + if (UpdateMovementGlide(objectEvent, sprite)) { sprite->data[2] = 2; return TRUE; @@ -6050,19 +6072,19 @@ static bool8 MovementActionFunc_xA1_1(struct ObjectEvent *objectEvent, struct Sp return FALSE; } -u8 MovementActionFunc_xA2_0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +u8 MovementAction_GlideLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if(objectEvent->facingDirection != DIR_WEST) StartSpriteAnim(sprite, GetFaceDirectionAnimNum(DIR_WEST)); - InitNpcForMovement(objectEvent, sprite, DIR_WEST, 1); - return MovementActionFunc_xA2_1(objectEvent, sprite); + InitNpcForMovement(objectEvent, sprite, DIR_WEST, MOVE_SPEED_FAST_1); + return MovementAction_GlideLeft_Step1(objectEvent, sprite); } -static bool8 MovementActionFunc_xA2_1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_GlideLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { AnimateSprite(sprite); - if (sub_80653CC(objectEvent, sprite)) + if (UpdateMovementGlide(objectEvent, sprite)) { sprite->data[2] = 2; return TRUE; @@ -6070,19 +6092,19 @@ static bool8 MovementActionFunc_xA2_1(struct ObjectEvent *objectEvent, struct Sp return FALSE; } -u8 MovementActionFunc_xA3_0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +u8 MovementAction_GlideRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if(objectEvent->facingDirection != DIR_EAST) StartSpriteAnim(sprite, GetFaceDirectionAnimNum(DIR_EAST)); - InitNpcForMovement(objectEvent, sprite, DIR_EAST, 1); - return MovementActionFunc_xA3_1(objectEvent, sprite); + InitNpcForMovement(objectEvent, sprite, DIR_EAST, MOVE_SPEED_FAST_1); + return MovementAction_GlideRight_Step1(objectEvent, sprite); } -static bool8 MovementActionFunc_xA3_1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_GlideRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { AnimateSprite(sprite); - if (sub_80653CC(objectEvent, sprite)) + if (UpdateMovementGlide(objectEvent, sprite)) { sprite->data[2] = 2; return TRUE; @@ -6098,7 +6120,7 @@ void sub_80655A8(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 dire sprite->data[2] = 1; } -u8 MovementActionFunc_x04_0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +u8 MovementAction_FaceDownFast_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if(objectEvent->facingDirection != DIR_SOUTH) StartSpriteAnim(sprite, GetFaceDirectionAnimNum(DIR_SOUTH)); @@ -6108,7 +6130,7 @@ u8 MovementActionFunc_x04_0(struct ObjectEvent *objectEvent, struct Sprite *spri return TRUE; } -u8 MovementActionFunc_x05_0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +u8 MovementAction_FaceUpFast_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if(objectEvent->facingDirection != DIR_NORTH) StartSpriteAnim(sprite, GetFaceDirectionAnimNum(DIR_NORTH)); @@ -6118,7 +6140,7 @@ u8 MovementActionFunc_x05_0(struct ObjectEvent *objectEvent, struct Sprite *spri return TRUE; } -u8 MovementActionFunc_x06_0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +u8 MovementAction_FaceLeftFast_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if(objectEvent->facingDirection != DIR_WEST) StartSpriteAnim(sprite, GetFaceDirectionAnimNum(DIR_WEST)); @@ -6128,7 +6150,7 @@ u8 MovementActionFunc_x06_0(struct ObjectEvent *objectEvent, struct Sprite *spri return TRUE; } -u8 MovementActionFunc_x07_0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +u8 MovementAction_FaceRightFast_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if(objectEvent->facingDirection != DIR_EAST) StartSpriteAnim(sprite, GetFaceDirectionAnimNum(DIR_EAST)); @@ -6238,25 +6260,25 @@ static bool8 MovementAction_WalkInPlaceFastRight_Step0(struct ObjectEvent *objec return MovementAction_WalkInPlace_Step1(objectEvent, sprite); } -static bool8 MovementAction_WalkInPlaceFastestDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_WalkInPlaceFasterDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitMoveInPlace(objectEvent, sprite, DIR_SOUTH, GetMoveDirectionFasterAnimNum(DIR_SOUTH), 4); return MovementAction_WalkInPlace_Step1(objectEvent, sprite); } -static bool8 MovementAction_WalkInPlaceFastestUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_WalkInPlaceFasterUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitMoveInPlace(objectEvent, sprite, DIR_NORTH, GetMoveDirectionFasterAnimNum(DIR_NORTH), 4); return MovementAction_WalkInPlace_Step1(objectEvent, sprite); } -static bool8 MovementAction_WalkInPlaceFastestLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_WalkInPlaceFasterLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitMoveInPlace(objectEvent, sprite, DIR_WEST, GetMoveDirectionFasterAnimNum(DIR_WEST), 4); return MovementAction_WalkInPlace_Step1(objectEvent, sprite); } -static bool8 MovementAction_WalkInPlaceFastestRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_WalkInPlaceFasterRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitMoveInPlace(objectEvent, sprite, DIR_EAST, GetMoveDirectionFasterAnimNum(DIR_EAST), 4); return MovementAction_WalkInPlace_Step1(objectEvent, sprite); @@ -6264,7 +6286,7 @@ static bool8 MovementAction_WalkInPlaceFastestRight_Step0(struct ObjectEvent *ob static bool8 MovementAction_RideWaterCurrentDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitMovementNormal(objectEvent, sprite, DIR_SOUTH, 2); + InitMovementNormal(objectEvent, sprite, DIR_SOUTH, MOVE_SPEED_FAST_2); return MovementAction_RideWaterCurrentDown_Step1(objectEvent, sprite); } @@ -6280,7 +6302,7 @@ static bool8 MovementAction_RideWaterCurrentDown_Step1(struct ObjectEvent *objec static bool8 MovementAction_RideWaterCurrentUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitMovementNormal(objectEvent, sprite, DIR_NORTH, 2); + InitMovementNormal(objectEvent, sprite, DIR_NORTH, MOVE_SPEED_FAST_2); return MovementAction_RideWaterCurrentUp_Step1(objectEvent, sprite); } @@ -6296,7 +6318,7 @@ static bool8 MovementAction_RideWaterCurrentUp_Step1(struct ObjectEvent *objectE static bool8 MovementAction_RideWaterCurrentLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitMovementNormal(objectEvent, sprite, DIR_WEST, 2); + InitMovementNormal(objectEvent, sprite, DIR_WEST, MOVE_SPEED_FAST_2); return MovementAction_RideWaterCurrentLeft_Step1(objectEvent, sprite); } @@ -6312,7 +6334,7 @@ static bool8 MovementAction_RideWaterCurrentLeft_Step1(struct ObjectEvent *objec static bool8 MovementAction_RideWaterCurrentRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitMovementNormal(objectEvent, sprite, DIR_EAST, 2); + InitMovementNormal(objectEvent, sprite, DIR_EAST, MOVE_SPEED_FAST_2); return MovementAction_RideWaterCurrentRight_Step1(objectEvent, sprite); } @@ -6326,13 +6348,13 @@ static bool8 MovementAction_RideWaterCurrentRight_Step1(struct ObjectEvent *obje return FALSE; } -static bool8 MovementAction_WalkFastestDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_WalkFasterDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitMovementNormal(objectEvent, sprite, DIR_SOUTH, 3); - return MovementAction_WalkFastestDown_Step1(objectEvent, sprite); + InitMovementNormal(objectEvent, sprite, DIR_SOUTH, MOVE_SPEED_FASTER); + return MovementAction_WalkFasterDown_Step1(objectEvent, sprite); } -static bool8 MovementAction_WalkFastestDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_WalkFasterDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (UpdateMovementNormal(objectEvent, sprite)) { @@ -6342,13 +6364,13 @@ static bool8 MovementAction_WalkFastestDown_Step1(struct ObjectEvent *objectEven return FALSE; } -static bool8 MovementAction_WalkFastestUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_WalkFasterUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitMovementNormal(objectEvent, sprite, DIR_NORTH, 3); - return MovementAction_WalkFastestUp_Step1(objectEvent, sprite); + InitMovementNormal(objectEvent, sprite, DIR_NORTH, MOVE_SPEED_FASTER); + return MovementAction_WalkFasterUp_Step1(objectEvent, sprite); } -static bool8 MovementAction_WalkFastestUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_WalkFasterUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (UpdateMovementNormal(objectEvent, sprite)) { @@ -6358,13 +6380,13 @@ static bool8 MovementAction_WalkFastestUp_Step1(struct ObjectEvent *objectEvent, return FALSE; } -static bool8 MovementAction_WalkFastestLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_WalkFasterLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitMovementNormal(objectEvent, sprite, DIR_WEST, 3); - return MovementAction_WalkFastestLeft_Step1(objectEvent, sprite); + InitMovementNormal(objectEvent, sprite, DIR_WEST, MOVE_SPEED_FASTER); + return MovementAction_WalkFasterLeft_Step1(objectEvent, sprite); } -static bool8 MovementAction_WalkFastestLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_WalkFasterLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (UpdateMovementNormal(objectEvent, sprite)) { @@ -6374,13 +6396,13 @@ static bool8 MovementAction_WalkFastestLeft_Step1(struct ObjectEvent *objectEven return FALSE; } -static bool8 MovementAction_WalkFastestRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_WalkFasterRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitMovementNormal(objectEvent, sprite, DIR_EAST, 3); - return MovementAction_WalkFastestRight_Step1(objectEvent, sprite); + InitMovementNormal(objectEvent, sprite, DIR_EAST, MOVE_SPEED_FASTER); + return MovementAction_WalkFasterRight_Step1(objectEvent, sprite); } -static bool8 MovementAction_WalkFastestRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_WalkFasterRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (UpdateMovementNormal(objectEvent, sprite)) { @@ -6392,7 +6414,7 @@ static bool8 MovementAction_WalkFastestRight_Step1(struct ObjectEvent *objectEve static bool8 MovementAction_SlideDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitMovementNormal(objectEvent, sprite, DIR_SOUTH, 4); + InitMovementNormal(objectEvent, sprite, DIR_SOUTH, MOVE_SPEED_FASTEST); return MovementAction_SlideDown_Step1(objectEvent, sprite); } @@ -6408,7 +6430,7 @@ static bool8 MovementAction_SlideDown_Step1(struct ObjectEvent *objectEvent, str static bool8 MovementAction_SlideUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitMovementNormal(objectEvent, sprite, DIR_NORTH, 4); + InitMovementNormal(objectEvent, sprite, DIR_NORTH, MOVE_SPEED_FASTEST); return MovementAction_SlideUp_Step1(objectEvent, sprite); } @@ -6424,7 +6446,7 @@ static bool8 MovementAction_SlideUp_Step1(struct ObjectEvent *objectEvent, struc static bool8 MovementAction_SlideLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitMovementNormal(objectEvent, sprite, DIR_WEST, 4); + InitMovementNormal(objectEvent, sprite, DIR_WEST, MOVE_SPEED_FASTEST); return MovementAction_SlideLeft_Step1(objectEvent, sprite); } @@ -6440,7 +6462,7 @@ static bool8 MovementAction_SlideLeft_Step1(struct ObjectEvent *objectEvent, str static bool8 MovementAction_SlideRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitMovementNormal(objectEvent, sprite, DIR_EAST, 4); + InitMovementNormal(objectEvent, sprite, DIR_EAST, MOVE_SPEED_FASTEST); return MovementAction_SlideRight_Step1(objectEvent, sprite); } @@ -6552,13 +6574,13 @@ bool8 UpdateRunSlow(struct ObjectEvent *objectEvent, struct Sprite *sprite) return FALSE; } -static bool8 MovementActionFunc_x41_0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_RunDownSlow_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitRunSlow(objectEvent, sprite, DIR_SOUTH); - return MovementActionFunc_x41_1(objectEvent, sprite); + return MovementAction_RunDownSlow_Step1(objectEvent, sprite); } -static bool8 MovementActionFunc_x41_1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_RunDownSlow_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (UpdateRunSlow(objectEvent, sprite)) { @@ -6568,13 +6590,13 @@ static bool8 MovementActionFunc_x41_1(struct ObjectEvent *objectEvent, struct Sp return FALSE; } -static bool8 MovementActionFunc_x42_0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_RunUpSlow_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitRunSlow(objectEvent, sprite, DIR_NORTH); - return MovementActionFunc_x42_1(objectEvent, sprite); + return MovementAction_RunUpSlow_Step1(objectEvent, sprite); } -static bool8 MovementActionFunc_x42_1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_RunUpSlow_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (UpdateRunSlow(objectEvent, sprite)) { @@ -6584,13 +6606,13 @@ static bool8 MovementActionFunc_x42_1(struct ObjectEvent *objectEvent, struct Sp return FALSE; } -static bool8 MovementActionFunc_x43_0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_RunLeftSlow_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitRunSlow(objectEvent, sprite, DIR_WEST); - return MovementActionFunc_x43_1(objectEvent, sprite); + return MovementAction_RunLeftSlow_Step1(objectEvent, sprite); } -static bool8 MovementActionFunc_x43_1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_RunLeftSlow_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (UpdateRunSlow(objectEvent, sprite)) { @@ -6600,13 +6622,13 @@ static bool8 MovementActionFunc_x43_1(struct ObjectEvent *objectEvent, struct Sp return FALSE; } -static bool8 MovementActionFunc_x44_0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_RunRightSlow_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitRunSlow(objectEvent, sprite, DIR_SOUTH); - return MovementActionFunc_x44_1(objectEvent, sprite); + return MovementAction_RunRightSlow_Step1(objectEvent, sprite); } -static bool8 MovementActionFunc_x44_1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_RunRightSlow_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (UpdateRunSlow(objectEvent, sprite)) { @@ -6641,7 +6663,7 @@ static bool8 MovementAction_WaitSpriteAnim(struct ObjectEvent *objectEvent, stru void InitJumpSpecial(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction) { - InitJump(objectEvent, sprite, direction, 1, 0); + InitJump(objectEvent, sprite, direction, JUMP_DISTANCE_NORMAL, JUMP_TYPE_HIGH); StartSpriteAnim(sprite, GetJumpSpecialDirectionAnimNum(direction)); } @@ -6713,13 +6735,13 @@ static bool8 MovementAction_JumpSpecialRight_Step1(struct ObjectEvent *objectEve return FALSE; } -static bool8 MovementActionFunc_xA6_0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_JumpSpecialWithEffectDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitJumpSpecial(objectEvent, sprite, DIR_SOUTH); - return MovementActionFunc_xA6_1(objectEvent, sprite); + return MovementAction_JumpSpecialWithEffectDown_Step1(objectEvent, sprite); } -static bool8 MovementActionFunc_xA6_1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_JumpSpecialWithEffectDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (DoJumpSpecialAnim(objectEvent, sprite)) { @@ -6729,13 +6751,13 @@ static bool8 MovementActionFunc_xA6_1(struct ObjectEvent *objectEvent, struct Sp return FALSE; } -static bool8 MovementActionFunc_xA7_0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_JumpSpecialWithEffectUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitJumpSpecial(objectEvent, sprite, DIR_NORTH); - return MovementActionFunc_xA7_1(objectEvent, sprite); + return MovementAction_JumpSpecialWithEffectUp_Step1(objectEvent, sprite); } -static bool8 MovementActionFunc_xA7_1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_JumpSpecialWithEffectUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (DoJumpSpecialAnim(objectEvent, sprite)) { @@ -6745,13 +6767,13 @@ static bool8 MovementActionFunc_xA7_1(struct ObjectEvent *objectEvent, struct Sp return FALSE; } -static bool8 MovementActionFunc_xA8_0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_JumpSpecialWithEffectLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitJumpSpecial(objectEvent, sprite, DIR_WEST); - return MovementActionFunc_xA8_1(objectEvent, sprite); + return MovementAction_JumpSpecialWithEffectLeft_Step1(objectEvent, sprite); } -static bool8 MovementActionFunc_xA8_1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_JumpSpecialWithEffectLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (DoJumpSpecialAnim(objectEvent, sprite)) { @@ -6761,13 +6783,13 @@ static bool8 MovementActionFunc_xA8_1(struct ObjectEvent *objectEvent, struct Sp return FALSE; } -static bool8 MovementActionFunc_xA9_0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_JumpSpecialWithEffectRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitJumpSpecial(objectEvent, sprite, DIR_EAST); - return MovementActionFunc_xA9_1(objectEvent, sprite); + return MovementAction_JumpSpecialWithEffectRight_Step1(objectEvent, sprite); } -static bool8 MovementActionFunc_xA9_1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_JumpSpecialWithEffectRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (DoJumpSpecialAnim(objectEvent, sprite)) { @@ -6817,7 +6839,7 @@ static bool8 MovementAction_UnlockFacingDirection_Step0(struct ObjectEvent *obje static bool8 MovementAction_JumpDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitJumpRegular(objectEvent, sprite, DIR_SOUTH, 1, 2); + InitJumpRegular(objectEvent, sprite, DIR_SOUTH, JUMP_DISTANCE_NORMAL, JUMP_TYPE_NORMAL); return MovementAction_JumpDown_Step1(objectEvent, sprite); } @@ -6834,7 +6856,7 @@ static bool8 MovementAction_JumpDown_Step1(struct ObjectEvent *objectEvent, stru static bool8 MovementAction_JumpUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitJumpRegular(objectEvent, sprite, DIR_NORTH, 1, 2); + InitJumpRegular(objectEvent, sprite, DIR_NORTH, JUMP_DISTANCE_NORMAL, JUMP_TYPE_NORMAL); return MovementAction_JumpUp_Step1(objectEvent, sprite); } @@ -6851,7 +6873,7 @@ static bool8 MovementAction_JumpUp_Step1(struct ObjectEvent *objectEvent, struct static bool8 MovementAction_JumpLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitJumpRegular(objectEvent, sprite, DIR_WEST, 1, 2); + InitJumpRegular(objectEvent, sprite, DIR_WEST, JUMP_DISTANCE_NORMAL, JUMP_TYPE_NORMAL); return MovementAction_JumpLeft_Step1(objectEvent, sprite); } @@ -6868,7 +6890,7 @@ static bool8 MovementAction_JumpLeft_Step1(struct ObjectEvent *objectEvent, stru static bool8 MovementAction_JumpRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitJumpRegular(objectEvent, sprite, DIR_EAST, 1, 2); + InitJumpRegular(objectEvent, sprite, DIR_EAST, JUMP_DISTANCE_NORMAL, JUMP_TYPE_NORMAL); return MovementAction_JumpRight_Step1(objectEvent, sprite); } @@ -6885,7 +6907,7 @@ static bool8 MovementAction_JumpRight_Step1(struct ObjectEvent *objectEvent, str static bool8 MovementAction_JumpInPlaceDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitJumpRegular(objectEvent, sprite, DIR_SOUTH, 0, 0); + InitJumpRegular(objectEvent, sprite, DIR_SOUTH, JUMP_DISTANCE_IN_PLACE, JUMP_TYPE_HIGH); return MovementAction_JumpInPlaceDown_Step1(objectEvent, sprite); } @@ -6902,7 +6924,7 @@ static bool8 MovementAction_JumpInPlaceDown_Step1(struct ObjectEvent *objectEven static bool8 MovementAction_JumpInPlaceUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitJumpRegular(objectEvent, sprite, DIR_NORTH, 0, 0); + InitJumpRegular(objectEvent, sprite, DIR_NORTH, JUMP_DISTANCE_IN_PLACE, JUMP_TYPE_HIGH); return MovementAction_JumpInPlaceUp_Step1(objectEvent, sprite); } @@ -6919,7 +6941,7 @@ static bool8 MovementAction_JumpInPlaceUp_Step1(struct ObjectEvent *objectEvent, static bool8 MovementAction_JumpInPlaceLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitJumpRegular(objectEvent, sprite, DIR_WEST, 0, 0); + InitJumpRegular(objectEvent, sprite, DIR_WEST, JUMP_DISTANCE_IN_PLACE, JUMP_TYPE_HIGH); return MovementAction_JumpInPlaceLeft_Step1(objectEvent, sprite); } @@ -6936,7 +6958,7 @@ static bool8 MovementAction_JumpInPlaceLeft_Step1(struct ObjectEvent *objectEven static bool8 MovementAction_JumpInPlaceRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitJumpRegular(objectEvent, sprite, DIR_EAST, 0, 0); + InitJumpRegular(objectEvent, sprite, DIR_EAST, JUMP_DISTANCE_IN_PLACE, JUMP_TYPE_HIGH); return MovementAction_JumpInPlaceRight_Step1(objectEvent, sprite); } @@ -6953,7 +6975,7 @@ static bool8 MovementAction_JumpInPlaceRight_Step1(struct ObjectEvent *objectEve static bool8 MovementAction_JumpInPlaceDownUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitJumpRegular(objectEvent, sprite, DIR_SOUTH, 0, 2); + InitJumpRegular(objectEvent, sprite, DIR_SOUTH, JUMP_DISTANCE_IN_PLACE, JUMP_TYPE_NORMAL); return MovementAction_JumpInPlaceDownUp_Step1(objectEvent, sprite); } @@ -6970,7 +6992,7 @@ static bool8 MovementAction_JumpInPlaceDownUp_Step1(struct ObjectEvent *objectEv static bool8 MovementAction_JumpInPlaceUpDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitJumpRegular(objectEvent, sprite, DIR_NORTH, 0, 2); + InitJumpRegular(objectEvent, sprite, DIR_NORTH, JUMP_DISTANCE_IN_PLACE, JUMP_TYPE_NORMAL); return MovementAction_JumpInPlaceUpDown_Step1(objectEvent, sprite); } @@ -6987,7 +7009,7 @@ static bool8 MovementAction_JumpInPlaceUpDown_Step1(struct ObjectEvent *objectEv static bool8 MovementAction_JumpInPlaceLeftRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitJumpRegular(objectEvent, sprite, DIR_WEST, 0, 2); + InitJumpRegular(objectEvent, sprite, DIR_WEST, JUMP_DISTANCE_IN_PLACE, JUMP_TYPE_NORMAL); return MovementAction_JumpInPlaceLeftRight_Step1(objectEvent, sprite); } @@ -7004,7 +7026,7 @@ static bool8 MovementAction_JumpInPlaceLeftRight_Step1(struct ObjectEvent *objec static bool8 MovementAction_JumpInPlaceRightLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitJumpRegular(objectEvent, sprite, DIR_EAST, 0, 2); + InitJumpRegular(objectEvent, sprite, DIR_EAST, JUMP_DISTANCE_IN_PLACE, JUMP_TYPE_NORMAL); return MovementAction_JumpInPlaceRightLeft_Step1(objectEvent, sprite); } @@ -7089,7 +7111,7 @@ static bool8 MovementAction_EmoteQuestionMark_Step0(struct ObjectEvent *objectEv return TRUE; } -static bool8 MovementAction_EmoteHeart_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_EmoteX_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { ObjectEventGetLocalIdAndMap(objectEvent, &gFieldEffectArguments[0], &gFieldEffectArguments[1], &gFieldEffectArguments[2]); FieldEffectStart(FLDEFF_X_ICON); @@ -7097,7 +7119,7 @@ static bool8 MovementAction_EmoteHeart_Step0(struct ObjectEvent *objectEvent, st return TRUE; } -static bool8 do_double_excl_bubble(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_EmoteDoubleExclamationMark_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { ObjectEventGetLocalIdAndMap(objectEvent, &gFieldEffectArguments[0], &gFieldEffectArguments[1], &gFieldEffectArguments[2]); FieldEffectStart(FLDEFF_DOUBLE_EXCL_MARK_ICON); @@ -7105,7 +7127,7 @@ static bool8 do_double_excl_bubble(struct ObjectEvent *objectEvent, struct Sprit return TRUE; } -static bool8 do_smile_bubble(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_EmoteSmile_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { ObjectEventGetLocalIdAndMap(objectEvent, &gFieldEffectArguments[0], &gFieldEffectArguments[1], &gFieldEffectArguments[2]); FieldEffectStart(FLDEFF_SMILEY_FACE_ICON); @@ -7274,25 +7296,25 @@ void AcroWheelieFaceDirection(struct ObjectEvent *objectEvent, struct Sprite *sp sprite->data[2] = 1; } -static bool8 MovementActionFunc_x70_0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_AcroWheelieFaceDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { AcroWheelieFaceDirection(objectEvent, sprite, DIR_SOUTH); return TRUE; } -static bool8 MovementActionFunc_x71_0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_AcroWheelieFaceUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { AcroWheelieFaceDirection(objectEvent, sprite, DIR_NORTH); return TRUE; } -static bool8 MovementActionFunc_x72_0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_AcroWheelieFaceLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { AcroWheelieFaceDirection(objectEvent, sprite, DIR_WEST); return TRUE; } -static bool8 MovementActionFunc_x73_0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_AcroWheelieFaceRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { AcroWheelieFaceDirection(objectEvent, sprite, DIR_EAST); return TRUE; @@ -7370,16 +7392,16 @@ static bool8 MovementAction_UnusedAcroActionRight_Step0(struct ObjectEvent *obje return FALSE; } -void InitAcroWheelieJump(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction, u8 speed, u8 a4) +void InitAcroWheelieJump(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction, u8 distance, u8 type) { - InitJump(objectEvent, sprite, direction, speed, a4); + InitJump(objectEvent, sprite, direction, distance, type); StartSpriteAnimIfDifferent(sprite, GetAcroWheelieDirectionAnimNum(direction)); DoShadowFieldEffect(objectEvent); } static bool8 MovementAction_AcroWheelieHopFaceDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitAcroWheelieJump(objectEvent, sprite, DIR_SOUTH, 0, 1); + InitAcroWheelieJump(objectEvent, sprite, DIR_SOUTH, JUMP_DISTANCE_IN_PLACE, JUMP_TYPE_LOW); return MovementAction_AcroWheelieHopFaceDown_Step1(objectEvent, sprite); } @@ -7396,7 +7418,7 @@ static bool8 MovementAction_AcroWheelieHopFaceDown_Step1(struct ObjectEvent *obj static bool8 MovementAction_AcroWheelieHopFaceUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitAcroWheelieJump(objectEvent, sprite, DIR_NORTH, 0, 1); + InitAcroWheelieJump(objectEvent, sprite, DIR_NORTH, JUMP_DISTANCE_IN_PLACE, JUMP_TYPE_LOW); return MovementAction_AcroWheelieHopFaceUp_Step1(objectEvent, sprite); } @@ -7413,7 +7435,7 @@ static bool8 MovementAction_AcroWheelieHopFaceUp_Step1(struct ObjectEvent *objec static bool8 MovementAction_AcroWheelieHopFaceLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitAcroWheelieJump(objectEvent, sprite, DIR_WEST, 0, 1); + InitAcroWheelieJump(objectEvent, sprite, DIR_WEST, JUMP_DISTANCE_IN_PLACE, JUMP_TYPE_LOW); return MovementAction_AcroWheelieHopFaceLeft_Step1(objectEvent, sprite); } @@ -7430,7 +7452,7 @@ static bool8 MovementAction_AcroWheelieHopFaceLeft_Step1(struct ObjectEvent *obj static bool8 MovementAction_AcroWheelieHopFaceRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitAcroWheelieJump(objectEvent, sprite, DIR_EAST, 0, 1); + InitAcroWheelieJump(objectEvent, sprite, DIR_EAST, JUMP_DISTANCE_IN_PLACE, JUMP_TYPE_LOW); return MovementAction_AcroWheelieHopFaceRight_Step1(objectEvent, sprite); } @@ -7447,7 +7469,7 @@ static bool8 MovementAction_AcroWheelieHopFaceRight_Step1(struct ObjectEvent *ob static bool8 MovementAction_AcroWheelieHopDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitAcroWheelieJump(objectEvent, sprite, DIR_SOUTH, 1, 1); + InitAcroWheelieJump(objectEvent, sprite, DIR_SOUTH, JUMP_DISTANCE_NORMAL, JUMP_TYPE_LOW); return MovementAction_AcroWheelieHopDown_Step1(objectEvent, sprite); } @@ -7464,7 +7486,7 @@ static bool8 MovementAction_AcroWheelieHopDown_Step1(struct ObjectEvent *objectE static bool8 MovementAction_AcroWheelieHopUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitAcroWheelieJump(objectEvent, sprite, DIR_NORTH, 1, 1); + InitAcroWheelieJump(objectEvent, sprite, DIR_NORTH, JUMP_DISTANCE_NORMAL, JUMP_TYPE_LOW); return MovementAction_AcroWheelieHopUp_Step1(objectEvent, sprite); } @@ -7481,7 +7503,7 @@ static bool8 MovementAction_AcroWheelieHopUp_Step1(struct ObjectEvent *objectEve static bool8 MovementAction_AcroWheelieHopLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitAcroWheelieJump(objectEvent, sprite, DIR_WEST, 1, 1); + InitAcroWheelieJump(objectEvent, sprite, DIR_WEST, JUMP_DISTANCE_NORMAL, JUMP_TYPE_LOW); return MovementAction_AcroWheelieHopLeft_Step1(objectEvent, sprite); } @@ -7498,7 +7520,7 @@ static bool8 MovementAction_AcroWheelieHopLeft_Step1(struct ObjectEvent *objectE static bool8 MovementAction_AcroWheelieHopRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitAcroWheelieJump(objectEvent, sprite, DIR_EAST, 1, 1); + InitAcroWheelieJump(objectEvent, sprite, DIR_EAST, JUMP_DISTANCE_NORMAL, JUMP_TYPE_LOW); return MovementAction_AcroWheelieHopRight_Step1(objectEvent, sprite); } @@ -7515,7 +7537,7 @@ static bool8 MovementAction_AcroWheelieHopRight_Step1(struct ObjectEvent *object static bool8 MovementAction_AcroWheelieJumpDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitAcroWheelieJump(objectEvent, sprite, DIR_SOUTH, 2, 0); + InitAcroWheelieJump(objectEvent, sprite, DIR_SOUTH, JUMP_DISTANCE_FAR, JUMP_TYPE_HIGH); return MovementAction_AcroWheelieJumpDown_Step1(objectEvent, sprite); } @@ -7532,7 +7554,7 @@ static bool8 MovementAction_AcroWheelieJumpDown_Step1(struct ObjectEvent *object static bool8 MovementAction_AcroWheelieJumpUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitAcroWheelieJump(objectEvent, sprite, DIR_NORTH, 2, 0); + InitAcroWheelieJump(objectEvent, sprite, DIR_NORTH, JUMP_DISTANCE_FAR, JUMP_TYPE_HIGH); return MovementAction_AcroWheelieJumpUp_Step1(objectEvent, sprite); } @@ -7549,7 +7571,7 @@ static bool8 MovementAction_AcroWheelieJumpUp_Step1(struct ObjectEvent *objectEv static bool8 MovementAction_AcroWheelieJumpLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitAcroWheelieJump(objectEvent, sprite, DIR_WEST, 2, 0); + InitAcroWheelieJump(objectEvent, sprite, DIR_WEST, JUMP_DISTANCE_FAR, JUMP_TYPE_HIGH); return MovementAction_AcroWheelieJumpLeft_Step1(objectEvent, sprite); } @@ -7566,7 +7588,7 @@ static bool8 MovementAction_AcroWheelieJumpLeft_Step1(struct ObjectEvent *object static bool8 MovementAction_AcroWheelieJumpRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitAcroWheelieJump(objectEvent, sprite, DIR_EAST, 2, 0); + InitAcroWheelieJump(objectEvent, sprite, DIR_EAST, JUMP_DISTANCE_FAR, JUMP_TYPE_HIGH); return MovementAction_AcroWheelieJumpRight_Step1(objectEvent, sprite); } @@ -7581,25 +7603,25 @@ static bool8 MovementAction_AcroWheelieJumpRight_Step1(struct ObjectEvent *objec return FALSE; } -static bool8 MovementActionFunc_x88_0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_AcroWheelieInPlaceDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitMoveInPlace(objectEvent, sprite, DIR_SOUTH, GetAcroWheeliePedalDirectionAnimNum(DIR_SOUTH), 8); return MovementAction_WalkInPlace_Step1(objectEvent, sprite); } -static bool8 MovementActionFunc_x89_0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_AcroWheelieInPlaceUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitMoveInPlace(objectEvent, sprite, DIR_NORTH, GetAcroWheeliePedalDirectionAnimNum(DIR_NORTH), 8); return MovementAction_WalkInPlace_Step1(objectEvent, sprite); } -static bool8 MovementActionFunc_x8A_0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_AcroWheelieInPlaceLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitMoveInPlace(objectEvent, sprite, DIR_WEST, GetAcroWheeliePedalDirectionAnimNum(DIR_WEST), 8); return MovementAction_WalkInPlace_Step1(objectEvent, sprite); } -static bool8 MovementActionFunc_x8B_0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_AcroWheelieInPlaceRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { InitMoveInPlace(objectEvent, sprite, DIR_EAST, GetAcroWheeliePedalDirectionAnimNum(DIR_EAST), 8); return MovementAction_WalkInPlace_Step1(objectEvent, sprite); @@ -7614,7 +7636,7 @@ void InitAcroPopWheelie(struct ObjectEvent *objectEvent, struct Sprite *sprite, static bool8 MovementAction_AcroPopWheelieMoveDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitAcroPopWheelie(objectEvent, sprite, DIR_SOUTH, 1); + InitAcroPopWheelie(objectEvent, sprite, DIR_SOUTH, MOVE_SPEED_FAST_1); return MovementAction_AcroPopWheelieMoveDown_Step1(objectEvent, sprite); } @@ -7630,7 +7652,7 @@ static bool8 MovementAction_AcroPopWheelieMoveDown_Step1(struct ObjectEvent *obj static bool8 MovementAction_AcroPopWheelieMoveUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitAcroPopWheelie(objectEvent, sprite, DIR_NORTH, 1); + InitAcroPopWheelie(objectEvent, sprite, DIR_NORTH, MOVE_SPEED_FAST_1); return MovementAction_AcroPopWheelieMoveUp_Step1(objectEvent, sprite); } @@ -7646,7 +7668,7 @@ static bool8 MovementAction_AcroPopWheelieMoveUp_Step1(struct ObjectEvent *objec static bool8 MovementAction_AcroPopWheelieMoveLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitAcroPopWheelie(objectEvent, sprite, DIR_WEST, 1); + InitAcroPopWheelie(objectEvent, sprite, DIR_WEST, MOVE_SPEED_FAST_1); return MovementAction_AcroPopWheelieMoveLeft_Step1(objectEvent, sprite); } @@ -7662,7 +7684,7 @@ static bool8 MovementAction_AcroPopWheelieMoveLeft_Step1(struct ObjectEvent *obj static bool8 MovementAction_AcroPopWheelieMoveRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitAcroPopWheelie(objectEvent, sprite, DIR_EAST, 1); + InitAcroPopWheelie(objectEvent, sprite, DIR_EAST, MOVE_SPEED_FAST_1); return MovementAction_AcroPopWheelieMoveRight_Step1(objectEvent, sprite); } @@ -7684,7 +7706,7 @@ void InitAcroWheelieMove(struct ObjectEvent *objectEvent, struct Sprite *sprite, static bool8 MovementAction_AcroWheelieMoveDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitAcroWheelieMove(objectEvent, sprite, DIR_SOUTH, 1); + InitAcroWheelieMove(objectEvent, sprite, DIR_SOUTH, MOVE_SPEED_FAST_1); return MovementAction_AcroWheelieMoveDown_Step1(objectEvent, sprite); } @@ -7700,7 +7722,7 @@ static bool8 MovementAction_AcroWheelieMoveDown_Step1(struct ObjectEvent *object static bool8 MovementAction_AcroWheelieMoveUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitAcroWheelieMove(objectEvent, sprite, DIR_NORTH, 1); + InitAcroWheelieMove(objectEvent, sprite, DIR_NORTH, MOVE_SPEED_FAST_1); return MovementAction_AcroWheelieMoveUp_Step1(objectEvent, sprite); } @@ -7716,7 +7738,7 @@ static bool8 MovementAction_AcroWheelieMoveUp_Step1(struct ObjectEvent *objectEv static bool8 MovementAction_AcroWheelieMoveLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitAcroWheelieMove(objectEvent, sprite, DIR_WEST, 1); + InitAcroWheelieMove(objectEvent, sprite, DIR_WEST, MOVE_SPEED_FAST_1); return MovementAction_AcroWheelieMoveLeft_Step1(objectEvent, sprite); } @@ -7732,7 +7754,7 @@ static bool8 MovementAction_AcroWheelieMoveLeft_Step1(struct ObjectEvent *object static bool8 MovementAction_AcroWheelieMoveRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitAcroWheelieMove(objectEvent, sprite, DIR_EAST, 1); + InitAcroWheelieMove(objectEvent, sprite, DIR_EAST, MOVE_SPEED_FAST_1); return MovementAction_AcroWheelieMoveRight_Step1(objectEvent, sprite); } @@ -7753,13 +7775,13 @@ void InitSpin(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 directi SeekSpriteAnim(sprite, 0); } -static bool8 MovementActionFunc_x94_0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_SpinDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitSpin(objectEvent, sprite, DIR_SOUTH, 1); - return MovementActionFunc_x94_1(objectEvent, sprite); + InitSpin(objectEvent, sprite, DIR_SOUTH, MOVE_SPEED_FAST_1); + return MovementAction_SpinDown_Step1(objectEvent, sprite); } -static bool8 MovementActionFunc_x94_1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_SpinDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (UpdateMovementNormal(objectEvent, sprite)) { @@ -7769,13 +7791,13 @@ static bool8 MovementActionFunc_x94_1(struct ObjectEvent *objectEvent, struct Sp return FALSE; } -static bool8 MovementActionFunc_x95_0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_SpinUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitSpin(objectEvent, sprite, DIR_NORTH, 1); - return MovementActionFunc_x95_1(objectEvent, sprite); + InitSpin(objectEvent, sprite, DIR_NORTH, MOVE_SPEED_FAST_1); + return MovementAction_SpinUp_Step1(objectEvent, sprite); } -static bool8 MovementActionFunc_x95_1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_SpinUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (UpdateMovementNormal(objectEvent, sprite)) { @@ -7785,13 +7807,13 @@ static bool8 MovementActionFunc_x95_1(struct ObjectEvent *objectEvent, struct Sp return FALSE; } -static bool8 MovementActionFunc_x96_0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_SpinLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitSpin(objectEvent, sprite, DIR_WEST, 1); - return MovementActionFunc_x96_1(objectEvent, sprite); + InitSpin(objectEvent, sprite, DIR_WEST, MOVE_SPEED_FAST_1); + return MovementAction_SpinLeft_Step1(objectEvent, sprite); } -static bool8 MovementActionFunc_x96_1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_SpinLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (UpdateMovementNormal(objectEvent, sprite)) { @@ -7801,13 +7823,13 @@ static bool8 MovementActionFunc_x96_1(struct ObjectEvent *objectEvent, struct Sp return FALSE; } -static bool8 MovementActionFunc_x97_0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_SpinRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { - InitSpin(objectEvent, sprite, DIR_EAST, 1); - return MovementActionFunc_x97_1(objectEvent, sprite); + InitSpin(objectEvent, sprite, DIR_EAST, MOVE_SPEED_FAST_1); + return MovementAction_SpinRight_Step1(objectEvent, sprite); } -static bool8 MovementActionFunc_x97_1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_SpinRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { if (UpdateMovementNormal(objectEvent, sprite)) { @@ -7817,7 +7839,7 @@ static bool8 MovementActionFunc_x97_1(struct ObjectEvent *objectEvent, struct Sp return FALSE; } -static bool8 MovementActionFunc_x98_0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_RaiseHand_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { StartSpriteAnim(sprite, ANIM_RAISE_HAND); sprite->animPaused = FALSE; @@ -7830,12 +7852,12 @@ static bool8 MovementActionFunc_x98_0(struct ObjectEvent *objectEvent, struct Sp return FALSE; } -static bool8 MovementActionFunc_x98_1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_RaiseHandAndStop_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { return sprite->animEnded; } -static bool8 MovementActionFunc_x99_1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_RaiseHandAndJump_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { switch (sprite->data[7]) { @@ -7881,7 +7903,7 @@ static bool8 MovementActionFunc_x99_1(struct ObjectEvent *objectEvent, struct Sp return FALSE; } -static bool8 MovementActionFunc_x9A_1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_RaiseHandAndSwim_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { bool8 ret; sprite->data[7] = (sprite->data[7] + 4) & 0xFF; @@ -7893,7 +7915,7 @@ static bool8 MovementActionFunc_x9A_1(struct ObjectEvent *objectEvent, struct Sp return ret; } -static bool8 MovementActionFunc_x9F_0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_ShakeHeadOrWalkInPlace_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { StartSpriteAnim(sprite, ANIM_SHAKE_HEAD_OR_WALK_IN_PLACE); sprite->animPaused = FALSE; @@ -7902,7 +7924,7 @@ static bool8 MovementActionFunc_x9F_0(struct ObjectEvent *objectEvent, struct Sp return FALSE; } -static bool8 MovementActionFunc_x9F_1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_ShakeHeadOrWalkInPlace_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { return sprite->animEnded; } @@ -7918,14 +7940,14 @@ static bool8 MovementAction_PauseSpriteAnim(struct ObjectEvent *objectEvent, str return TRUE; } -static bool8 MovementActionFunc_xA4_0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_FlyUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { sprite->y2 = 0; sprite->data[2]++; return FALSE; } -static bool8 MovementActionFunc_xA4_1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_FlyUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { sprite->y2 -= 8; if (sprite->y2 == -160) @@ -7933,14 +7955,14 @@ static bool8 MovementActionFunc_xA4_1(struct ObjectEvent *objectEvent, struct Sp return FALSE; } -static bool8 MovementActionFunc_xA5_0(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_FlyDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) { sprite->y2 = -160; sprite->data[2]++; return FALSE; } -static bool8 MovementActionFunc_xA5_1(struct ObjectEvent *objectEvent, struct Sprite *sprite) +static bool8 MovementAction_FlyDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite) { sprite->y2 += 8; if (sprite->y2 == 0) @@ -7948,7 +7970,7 @@ static bool8 MovementActionFunc_xA5_1(struct ObjectEvent *objectEvent, struct Sp return FALSE; } -u8 MovementActionFunc_xA4_2(struct ObjectEvent *objectEvent, struct Sprite *sprite) +u8 MovementAction_FlyUp_Step2(struct ObjectEvent *objectEvent, struct Sprite *sprite) { return TRUE; } @@ -8840,31 +8862,31 @@ void UnfreezeObjectEvents(void) #define tSpeed data[4] #define tStepNo data[5] -static void little_step(struct Sprite *sprite, u8 direction) +static void Step1(struct Sprite *sprite, u8 direction) { sprite->x += sDirectionToVectors[direction].x; sprite->y += sDirectionToVectors[direction].y; } -static void double_little_steps(struct Sprite *sprite, u8 direction) +static void Step2(struct Sprite *sprite, u8 direction) { sprite->x += 2 * (u16)sDirectionToVectors[direction].x; sprite->y += 2 * (u16)sDirectionToVectors[direction].y; } -static void triple_little_steps(struct Sprite *sprite, u8 direction) +static void Step3(struct Sprite *sprite, u8 direction) { sprite->x += 2 * (u16)sDirectionToVectors[direction].x + (u16)sDirectionToVectors[direction].x; sprite->y += 2 * (u16)sDirectionToVectors[direction].y + (u16)sDirectionToVectors[direction].y; } -static void quad_little_steps(struct Sprite *sprite, u8 direction) +static void Step4(struct Sprite *sprite, u8 direction) { sprite->x += 4 * (u16)sDirectionToVectors[direction].x; sprite->y += 4 * (u16)sDirectionToVectors[direction].y; } -static void oct_little_steps(struct Sprite *sprite, u8 direction) +static void Step8(struct Sprite *sprite, u8 direction) { sprite->x += 8 * (u16)sDirectionToVectors[direction].x; sprite->y += 8 * (u16)sDirectionToVectors[direction].y; @@ -8879,83 +8901,83 @@ void SetSpriteDataForNormalStep(struct Sprite *sprite, u8 direction, u8 speed) typedef void (*SpriteStepFunc)(struct Sprite *sprite, u8 direction); -static const SpriteStepFunc sSpeed0[] = { - little_step, - little_step, - little_step, - little_step, - little_step, - little_step, - little_step, - little_step, - little_step, - little_step, - little_step, - little_step, - little_step, - little_step, - little_step, - little_step +static const SpriteStepFunc sSpeedNormalStepFuncs[] = { + Step1, + Step1, + Step1, + Step1, + Step1, + Step1, + Step1, + Step1, + Step1, + Step1, + Step1, + Step1, + Step1, + Step1, + Step1, + Step1 }; -static const SpriteStepFunc sSpeed1[] = { - double_little_steps, - double_little_steps, - double_little_steps, - double_little_steps, - double_little_steps, - double_little_steps, - double_little_steps, - double_little_steps +static const SpriteStepFunc sSpeedFast1StepFuncs[] = { + Step2, + Step2, + Step2, + Step2, + Step2, + Step2, + Step2, + Step2 }; -static const SpriteStepFunc sSpeed2[] = { - double_little_steps, - triple_little_steps, - triple_little_steps, - double_little_steps, - triple_little_steps, - triple_little_steps +static const SpriteStepFunc sSpeedFast2StepFuncs[] = { + Step2, + Step3, + Step3, + Step2, + Step3, + Step3 }; -static const SpriteStepFunc sSpeed3[] = { - quad_little_steps, - quad_little_steps, - quad_little_steps, - quad_little_steps +static const SpriteStepFunc sSpeedFasterStepFuncs[] = { + Step4, + Step4, + Step4, + Step4 }; -static const SpriteStepFunc sSpeed4[] = { - oct_little_steps, - oct_little_steps +static const SpriteStepFunc sSpeedFastestStepFuncs[] = { + Step8, + Step8 }; -static const SpriteStepFunc *const sSpriteStepFuncsBySpeed[] = { - sSpeed0, - sSpeed1, - sSpeed2, - sSpeed3, - sSpeed4 +static const SpriteStepFunc *const sNpcStepFuncTables[] = { + [MOVE_SPEED_NORMAL] = sSpeedNormalStepFuncs, + [MOVE_SPEED_FAST_1] = sSpeedFast1StepFuncs, + [MOVE_SPEED_FAST_2] = sSpeedFast2StepFuncs, + [MOVE_SPEED_FASTER] = sSpeedFasterStepFuncs, + [MOVE_SPEED_FASTEST] = sSpeedFastestStepFuncs, }; -static const s16 sSpriteStepCountsBySpeed[] = { - NELEMS(sSpeed0), - NELEMS(sSpeed1), - NELEMS(sSpeed2), - NELEMS(sSpeed3), - NELEMS(sSpeed4) +static const s16 sStepTimes[] = { + [MOVE_SPEED_NORMAL] = NELEMS(sSpeedNormalStepFuncs), + [MOVE_SPEED_FAST_1] = NELEMS(sSpeedFast1StepFuncs), + [MOVE_SPEED_FAST_2] = NELEMS(sSpeedFast2StepFuncs), + [MOVE_SPEED_FASTER] = NELEMS(sSpeedFasterStepFuncs), + [MOVE_SPEED_FASTEST] = NELEMS(sSpeedFastestStepFuncs), }; bool8 NpcTakeStep(struct Sprite *sprite) { - if (sprite->tStepNo >= sSpriteStepCountsBySpeed[sprite->tSpeed]) + if (sprite->tStepNo >= sStepTimes[sprite->tSpeed]) return FALSE; - sSpriteStepFuncsBySpeed[sprite->tSpeed][sprite->tStepNo](sprite, sprite->tDirection); + sNpcStepFuncTables[sprite->tSpeed][sprite->tStepNo](sprite, sprite->tDirection); sprite->tStepNo++; - if (sprite->tStepNo < sSpriteStepCountsBySpeed[sprite->tSpeed]) + if (sprite->tStepNo < sStepTimes[sprite->tSpeed]) return FALSE; return TRUE; @@ -8976,7 +8998,7 @@ bool8 UpdateWalkSlowerAnim(struct Sprite *sprite) { if (!(sprite->tDelay & 1)) { - little_step(sprite, sprite->tDirection); + Step1(sprite, sprite->tDirection); sprite->tStepNo++; } @@ -9001,7 +9023,7 @@ bool8 UpdateWalkSlowAnim(struct Sprite *sprite) { if (++sprite->tDelay < 3) { - little_step(sprite, sprite->tDirection); + Step1(sprite, sprite->tDirection); sprite->tStepNo++; } else @@ -9025,7 +9047,7 @@ bool8 UpdateWalkSlowestAnim(struct Sprite *sprite) if (++sprite->tDelay > 9) { sprite->tDelay = 0; - little_step(sprite, sprite->tDirection); + Step1(sprite, sprite->tDirection); sprite->tStepNo++; } @@ -9046,12 +9068,12 @@ bool8 UpdateRunSlowAnim(struct Sprite *sprite) { if ((++sprite->tDelay) & 1) { - little_step(sprite, sprite->tDirection); + Step1(sprite, sprite->tDirection); sprite->tStepNo++; } else { - double_little_steps(sprite, sprite->tDirection); + Step2(sprite, sprite->tDirection); sprite->tStepNo += 2; } @@ -9064,61 +9086,72 @@ bool8 UpdateRunSlowAnim(struct Sprite *sprite) #undef tStepNo #undef tDelay -#define tJumpSpeed data[4] -#define tJumpHeight data[5] -#define tStepNo data[6] - -static const s8 sJumpHeight12[] = { - -4, -6, -8, -10, -11, -12, -12, -12, -11, -10, -9, -8, -6, -4, 0, 0 +static const s8 sJumpY_High[] = { + -4, -6, -8, -10, -11, -12, -12, -12, + -11, -10, -9, -8, -6, -4, 0, 0 }; -static const s8 sJumpHeight6[] = { - 0, -2, -3, -4, -5, -6, -6, -6, -5, -5, -4, -3, -2, 0, 0, 0 +static const s8 sJumpY_Low[] = { + 0, -2, -3, -4, -5, -6, -6, -6, + -5, -5, -4, -3, -2, 0, 0, 0 }; -static const s8 sJumpHeight10[] = { - -2, -4, -6, -8, -9, -10, -10, -10, -9, -8, -6, -5, -3, -2, 0, 0 +static const s8 sJumpY_Normal[] = { + -2, -4, -6, -8, -9, -10, -10, -10, + -9, -8, -6, -5, -3, -2, 0, 0 }; -static const s8 *const sYDisplacementPtrs[] = { - sJumpHeight12, - sJumpHeight6, - sJumpHeight10 +#define sJumpDistance data[4] +#define sJumpType data[5] +#define sTimer data[6] + +static const s8 *const sJumpYTable[] = { + [JUMP_TYPE_HIGH] = sJumpY_High, + [JUMP_TYPE_LOW] = sJumpY_Low, + [JUMP_TYPE_NORMAL] = sJumpY_Normal, }; -static s16 GetJumpYDisplacement(s16 stepno, u8 jumpno) +static s16 GetJumpY(s16 i, u8 type) { - return sYDisplacementPtrs[jumpno][stepno]; + return sJumpYTable[type][i]; } -void SetJumpSpriteData(struct Sprite *sprite, u8 direction, u8 speed, u8 height) +void SetJumpSpriteData(struct Sprite *sprite, u8 direction, u8 distance, u8 type) { sprite->tDirection = direction; - sprite->tJumpSpeed = speed; - sprite->tJumpHeight = height; - sprite->tStepNo = 0; + sprite->sJumpDistance = distance; + sprite->sJumpType = type; + sprite->sTimer = 0; } u8 DoJumpSpriteMovement(struct Sprite *sprite) { - s16 duration[3] = {0x10, 0x10, 0x20}; - u8 shifts[3] = {0, 0, 1}; + s16 distanceToTime[] = { + [JUMP_DISTANCE_IN_PLACE] = 16, + [JUMP_DISTANCE_NORMAL] = 16, + [JUMP_DISTANCE_FAR] = 32, + }; + u8 distanceToShift[] = { + [JUMP_DISTANCE_IN_PLACE] = 0, + [JUMP_DISTANCE_NORMAL] = 0, + [JUMP_DISTANCE_FAR] = 1, + }; u8 jumpPhase = 0; - if (sprite->tJumpSpeed != 0) - little_step(sprite, sprite->tDirection); + if (sprite->sJumpDistance != JUMP_DISTANCE_IN_PLACE) + Step1(sprite, sprite->tDirection); - sprite->y2 = GetJumpYDisplacement(sprite->tStepNo >> shifts[sprite->tJumpSpeed], sprite->tJumpHeight); + sprite->y2 = GetJumpY(sprite->sTimer >> distanceToShift[sprite->sJumpDistance], sprite->sJumpType); - sprite->tStepNo++; + sprite->sTimer++; - if (sprite->tStepNo == (duration[sprite->tJumpSpeed] >> 1)) - jumpPhase = 1; + if (sprite->sTimer == (distanceToTime[sprite->sJumpDistance] >> 1)) + jumpPhase = JUMP_HALFWAY; - if (sprite->tStepNo >= duration[sprite->tJumpSpeed]) + if (sprite->sTimer >= distanceToTime[sprite->sJumpDistance]) { sprite->y2 = 0; - jumpPhase = -1; + jumpPhase = JUMP_FINISHED; } return jumpPhase; @@ -9130,28 +9163,28 @@ u8 DoJumpSpecialSpriteMovement(struct Sprite *sprite) u8 shifts[3] = {1, 1, 2}; u8 jumpPhase = 0; - if (sprite->tJumpSpeed != 0 && !(sprite->tStepNo & 1)) - little_step(sprite, sprite->tDirection); + if (sprite->sJumpDistance != JUMP_DISTANCE_IN_PLACE && !(sprite->sTimer & 1)) + Step1(sprite, sprite->tDirection); - sprite->y2 = GetJumpYDisplacement(sprite->tStepNo >> shifts[sprite->tJumpSpeed], sprite->tJumpHeight); + sprite->y2 = GetJumpY(sprite->sTimer >> shifts[sprite->sJumpDistance], sprite->sJumpType); - sprite->tStepNo++; + sprite->sTimer++; - if (sprite->tStepNo == (duration[sprite->tJumpSpeed] >> 1)) - jumpPhase = 1; + if (sprite->sTimer == (duration[sprite->sJumpDistance] >> 1)) + jumpPhase = JUMP_HALFWAY; - if (sprite->tStepNo >= duration[sprite->tJumpSpeed]) + if (sprite->sTimer >= duration[sprite->sJumpDistance]) { sprite->y2 = 0; - jumpPhase = -1; + jumpPhase = JUMP_FINISHED; } return jumpPhase; } -#undef tStepNo -#undef tJumpHeight -#undef tJumpSpeed +#undef sTimer +#undef sJumpType +#undef sJumpDistance #undef tDirection #define tDelay data[3] diff --git a/src/field_player_avatar.c b/src/field_player_avatar.c index b65942866..fd1c67ccd 100644 --- a/src/field_player_avatar.c +++ b/src/field_player_avatar.c @@ -767,7 +767,7 @@ static bool8 PlayerAnimIsMultiFrameStationary(void) if (movementActionId <= MOVEMENT_ACTION_FACE_RIGHT_FAST || (movementActionId >= MOVEMENT_ACTION_DELAY_1 && movementActionId <= MOVEMENT_ACTION_DELAY_16) - || (movementActionId >= MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_DOWN && movementActionId <= MOVEMENT_ACTION_WALK_IN_PLACE_FASTEST_RIGHT) + || (movementActionId >= MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_DOWN && movementActionId <= MOVEMENT_ACTION_WALK_IN_PLACE_FASTER_RIGHT) || (movementActionId >= MOVEMENT_ACTION_ACRO_WHEELIE_FACE_DOWN && movementActionId <= MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_RIGHT) || (movementActionId >= MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_DOWN && movementActionId <= MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_RIGHT)) return TRUE; diff --git a/src/mail_data.c b/src/mail_data.c index bb5fa6581..9bff74b6d 100644 --- a/src/mail_data.c +++ b/src/mail_data.c @@ -5,6 +5,8 @@ #include "constants/items.h" #include "pokemon_icon.h" +#define UNOWN_OFFSET 30000 + void ClearMailData(void) { u8 i; @@ -73,7 +75,7 @@ u8 GiveMailToMon(struct Pokemon *mon, u16 itemId) u16 SpeciesToMailSpecies(u16 species, u32 personality) { if (species == SPECIES_UNOWN) { - u32 mailSpecies = GetUnownLetterByPersonality(personality) + 30000; + u32 mailSpecies = GetUnownLetterByPersonality(personality) + UNOWN_OFFSET; return mailSpecies; } return species; @@ -83,10 +85,10 @@ u16 MailSpeciesToSpecies(u16 mailSpecies, u16 *unownLetter) { u16 result; - if (mailSpecies >= 30000 && mailSpecies < (30000 + UNOWN_FORM_COUNT)) + if (mailSpecies >= UNOWN_OFFSET && mailSpecies < (UNOWN_OFFSET + NUM_UNOWN_FORMS)) { result = SPECIES_UNOWN; - *unownLetter = mailSpecies - 30000; + *unownLetter = mailSpecies - UNOWN_OFFSET; } else { diff --git a/src/pokedex_screen.c b/src/pokedex_screen.c index 764d3c770..17f29ac13 100644 --- a/src/pokedex_screen.c +++ b/src/pokedex_screen.c @@ -797,7 +797,7 @@ const u8 (*const sCategoryPageIconCoords[])[4] = { sPageIconCoords_4Mons, }; -static const u8 * const sDexCategoryNamePtrs[] = { +static const u8 *const sDexCategoryNamePtrs[] = { gText_DexCategory_GrasslandPkmn, gText_DexCategory_ForestPkmn, gText_DexCategory_WatersEdgePkmn, diff --git a/src/pokemon.c b/src/pokemon.c index e2bfb20cf..bf8daac60 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -1473,8 +1473,8 @@ const struct SpriteTemplate gSpriteTemplates_Battlers[] = .paletteTag = 0, .oam = &gOamData_BattlerPlayer, .anims = NULL, - .images = gSpriteImages_BattlerPlayerLeft, - .affineAnims = gSpriteAffineAnimTable_BattlerPlayer, + .images = gBattlerPicTable_PlayerLeft, + .affineAnims = gAffineAnims_BattleSpritePlayerSide, .callback = SpriteCB_AllyMon, }, [B_POSITION_OPPONENT_LEFT] = { @@ -1482,8 +1482,8 @@ const struct SpriteTemplate gSpriteTemplates_Battlers[] = .paletteTag = 0, .oam = &gOamData_BattlerOpponent, .anims = NULL, - .images = gSpriteImages_BattlerOpponentLeft, - .affineAnims = gSpriteAffineAnimTable_BattlerOpponent, + .images = gBattlerPicTable_OpponentLeft, + .affineAnims = gAffineAnims_BattleSpriteOpponentSide, .callback = SpriteCB_EnemyMon, }, [B_POSITION_PLAYER_RIGHT] = { @@ -1491,8 +1491,8 @@ const struct SpriteTemplate gSpriteTemplates_Battlers[] = .paletteTag = 0, .oam = &gOamData_BattlerPlayer, .anims = NULL, - .images = gSpriteImages_BattlerPlayerRight, - .affineAnims = gSpriteAffineAnimTable_BattlerPlayer, + .images = gBattlerPicTable_PlayerRight, + .affineAnims = gAffineAnims_BattleSpritePlayerSide, .callback = SpriteCB_AllyMon, }, [B_POSITION_OPPONENT_RIGHT] = { @@ -1500,8 +1500,8 @@ const struct SpriteTemplate gSpriteTemplates_Battlers[] = .paletteTag = 0, .oam = &gOamData_BattlerOpponent, .anims = NULL, - .images = gSpriteImages_BattlerOpponentRight, - .affineAnims = gSpriteAffineAnimTable_BattlerOpponent, + .images = gBattlerPicTable_OpponentRight, + .affineAnims = gAffineAnims_BattleSpriteOpponentSide, .callback = SpriteCB_EnemyMon, }, }; @@ -1514,7 +1514,7 @@ const struct SpriteTemplate gSpriteTemplates_TrainerBackpics[] = .oam = &gOamData_BattlerPlayer, .anims = NULL, .images = gTrainerBackPicTable_Red, - .affineAnims = gSpriteAffineAnimTable_BattlerPlayer, + .affineAnims = gAffineAnims_BattleSpritePlayerSide, .callback = SpriteCB_AllyMon, }, { @@ -1523,7 +1523,7 @@ const struct SpriteTemplate gSpriteTemplates_TrainerBackpics[] = .oam = &gOamData_BattlerPlayer, .anims = NULL, .images = gTrainerBackPicTable_Leaf, - .affineAnims = gSpriteAffineAnimTable_BattlerPlayer, + .affineAnims = gAffineAnims_BattleSpritePlayerSide, .callback = SpriteCB_AllyMon, }, { @@ -1532,7 +1532,7 @@ const struct SpriteTemplate gSpriteTemplates_TrainerBackpics[] = .oam = &gOamData_BattlerPlayer, .anims = NULL, .images = gTrainerBackPicTable_RSBrendan, - .affineAnims = gSpriteAffineAnimTable_BattlerPlayer, + .affineAnims = gAffineAnims_BattleSpritePlayerSide, .callback = SpriteCB_AllyMon, }, { @@ -1541,7 +1541,7 @@ const struct SpriteTemplate gSpriteTemplates_TrainerBackpics[] = .oam = &gOamData_BattlerPlayer, .anims = NULL, .images = gTrainerBackPicTable_RSMay, - .affineAnims = gSpriteAffineAnimTable_BattlerPlayer, + .affineAnims = gAffineAnims_BattleSpritePlayerSide, .callback = SpriteCB_AllyMon, }, { @@ -1550,7 +1550,7 @@ const struct SpriteTemplate gSpriteTemplates_TrainerBackpics[] = .oam = &gOamData_BattlerPlayer, .anims = NULL, .images = gTrainerBackPicTable_Pokedude, - .affineAnims = gSpriteAffineAnimTable_BattlerPlayer, + .affineAnims = gAffineAnims_BattleSpritePlayerSide, .callback = SpriteCB_AllyMon, }, { @@ -1559,7 +1559,7 @@ const struct SpriteTemplate gSpriteTemplates_TrainerBackpics[] = .oam = &gOamData_BattlerPlayer, .anims = NULL, .images = gTrainerBackPicTable_OldMan, - .affineAnims = gSpriteAffineAnimTable_BattlerPlayer, + .affineAnims = gAffineAnims_BattleSpritePlayerSide, .callback = SpriteCB_AllyMon, }, }; @@ -1856,7 +1856,7 @@ void CreateMonWithGenderNatureLetter(struct Pokemon *mon, u16 species, u8 level, { u32 personality; - if ((u8)(unownLetter - 1) < 28) + if ((u8)(unownLetter - 1) < NUM_UNOWN_FORMS) { u16 actualLetter; @@ -2747,7 +2747,7 @@ void SetMultiuseSpriteTemplateToPokemon(u16 speciesTag, u8 battlerPosition) } } gMultiuseSpriteTemplate.paletteTag = speciesTag; - gMultiuseSpriteTemplate.anims = gSpriteAnimTable_82349BC; + gMultiuseSpriteTemplate.anims = gAnims_MonPic; } void SetMultiuseSpriteTemplateToTrainerBack(u16 trainerSpriteId, u8 battlerPosition) @@ -3919,7 +3919,7 @@ static void CopyPlayerPartyMonToBattleData(u8 battlerId, u8 partyIndex) *hpSwitchout = gBattleMons[battlerId].hp; for (i = 0; i < 8; i++) - gBattleMons[battlerId].statStages[i] = 6; + gBattleMons[battlerId].statStages[i] = DEFAULT_STAT_STAGE; gBattleMons[battlerId].status2 = 0; UpdateSentPokesToOpponentValue(battlerId); @@ -6125,7 +6125,7 @@ static void OakSpeechNidoranFSetupTemplateDummy(struct OakSpeechNidoranFStruct * for (j = 0; j < structPtr->frameCount; ++j) structPtr->frameImages[i * structPtr->spriteCount + j].data = &structPtr->bufferPtrs[i][j * 0x800]; structPtr->templates[i].images = &structPtr->frameImages[i * structPtr->spriteCount]; // should be frameCount logically - structPtr->templates[i].anims = gSpriteAnimTable_82349BC; + structPtr->templates[i].anims = gAnims_MonPic; structPtr->templates[i].paletteTag = i; } } diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index fa3731083..0b510f5e8 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -626,14 +626,14 @@ static const u32 sBgTilemap_MovesPage[] = INCBIN_U32( "graphics/interface/pokesu #include "data/text/nature_names.h" -static const u8 * const sEggHatchTimeTexts[] = { +static const u8 *const sEggHatchTimeTexts[] = { gText_PokeSum_EggHatch_LongTime, gText_PokeSum_EggHatch_SomeTime, gText_PokeSum_EggHatch_Soon, gText_PokeSum_EggHatch_AlmostReady }; -static const u8 * const sEggOriginTexts[] = { +static const u8 *const sEggOriginTexts[] = { gText_PokeSum_EggOrigin_DayCare, gText_PokeSum_EggOrigin_Trade, gText_PokeSum_EggOrigin_TravelingMan, diff --git a/src/rom_header_gf.c b/src/rom_header_gf.c index 9b7975c72..ee6dffcbd 100644 --- a/src/rom_header_gf.c +++ b/src/rom_header_gf.c @@ -16,7 +16,7 @@ struct GFRomHeader const struct CompressedSpriteSheet * monBackPics; const struct CompressedSpritePalette * monNormalPalettes; const struct CompressedSpritePalette * monShinyPalettes; - const u8 * const * monIcons; + const u8 *const * monIcons; const u8 * monIconPaletteIds; const struct SpritePalette * monIconPalettes; const u8 (* monSpeciesNames)[]; @@ -63,7 +63,7 @@ struct GFRomHeader u32 unk18; const struct BaseStats * baseStats; const u8 (* abilityNames)[]; - const u8 * const * abilityDescriptions; + const u8 *const * abilityDescriptions; const struct Item * items; const struct BattleMove * moves; const struct CompressedSpriteSheet * ballGfx; diff --git a/src/trainer_pokemon_sprites.c b/src/trainer_pokemon_sprites.c index 0740ecdcf..2b58063b8 100644 --- a/src/trainer_pokemon_sprites.c +++ b/src/trainer_pokemon_sprites.c @@ -1,16 +1,7 @@ #include "global.h" #include "gflib.h" #include "decompress.h" - -extern const struct CompressedSpriteSheet gMonFrontPicTable[]; -extern const struct CompressedSpriteSheet gMonBackPicTable[]; -extern const struct CompressedSpriteSheet gTrainerFrontPicTable[]; -extern const struct CompressedSpriteSheet gTrainerBackPicTable[]; -extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[]; -extern const union AnimCmd *const gSpriteAnimTable_82349BC[]; -extern const union AnimCmd *const *const gTrainerFrontAnimsPtrTable[]; - -// Static type declarations +#include "data.h" struct PicData { @@ -131,7 +122,7 @@ void LoadPicPaletteBySlot(u16 species, u32 otId, u32 personality, u8 paletteSlot void AssignSpriteAnimsTable(bool8 isTrainer) { if (!isTrainer) - sCreatingSpriteTemplate.anims = gSpriteAnimTable_82349BC; + sCreatingSpriteTemplate.anims = gAnims_MonPic; else sCreatingSpriteTemplate.anims = gTrainerFrontAnimsPtrTable[0]; } diff --git a/src/vs_seeker.c b/src/vs_seeker.c index c95c0da52..4962a7cf8 100644 --- a/src/vs_seeker.c +++ b/src/vs_seeker.c @@ -575,7 +575,7 @@ static const u8 sMovementScript_TrainerNoRematch[] = { }; static const u8 sMovementScript_TrainerRematch[] = { - MOVEMENT_ACTION_WALK_IN_PLACE_FASTEST_DOWN, + MOVEMENT_ACTION_WALK_IN_PLACE_FASTER_DOWN, MOVEMENT_ACTION_EMOTE_DOUBLE_EXCL_MARK, MOVEMENT_ACTION_STEP_END }; @@ -640,9 +640,9 @@ void VsSeekerResetObjectMovementAfterChargeComplete(void) { if ((templates[i].trainerType == TRAINER_TYPE_NORMAL || templates[i].trainerType == TRAINER_TYPE_BURIED) - && (templates[i].movementType == MOVEMENT_TYPE_VS_SEEKER_4D - || templates[i].movementType == MOVEMENT_TYPE_VS_SEEKER_4E - || templates[i].movementType == MOVEMENT_TYPE_VS_SEEKER_4F)) + && (templates[i].movementType == MOVEMENT_TYPE_RAISE_HAND_AND_STOP + || templates[i].movementType == MOVEMENT_TYPE_RAISE_HAND_AND_JUMP + || templates[i].movementType == MOVEMENT_TYPE_RAISE_HAND_AND_SWIM)) { movementType = GetRandomFaceDirectionMovementType(); TryGetObjectEventIdByLocalIdAndMap(templates[i].localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, &objEventId); @@ -700,7 +700,9 @@ static void ResetMovementOfRematchableTrainers(void) for (i = 0; i < OBJECT_EVENTS_COUNT; i++) { struct ObjectEvent * objectEvent = &gObjectEvents[i]; - if (objectEvent->movementType == MOVEMENT_TYPE_VS_SEEKER_4D || objectEvent->movementType == MOVEMENT_TYPE_VS_SEEKER_4E || objectEvent->movementType == MOVEMENT_TYPE_VS_SEEKER_4F) + if (objectEvent->movementType == MOVEMENT_TYPE_RAISE_HAND_AND_STOP + || objectEvent->movementType == MOVEMENT_TYPE_RAISE_HAND_AND_JUMP + || objectEvent->movementType == MOVEMENT_TYPE_RAISE_HAND_AND_SWIM) { u8 movementType = GetRandomFaceDirectionMovementType(); if (objectEvent->active && gSprites[objectEvent->spriteId].data[0] == i) @@ -1142,13 +1144,13 @@ static u8 GetRunningBehaviorFromGraphicsId(u8 graphicsId) case OBJ_EVENT_GFX_BLACKBELT: case OBJ_EVENT_GFX_HIKER: case OBJ_EVENT_GFX_SAILOR: - return MOVEMENT_TYPE_VS_SEEKER_4E; + return MOVEMENT_TYPE_RAISE_HAND_AND_JUMP; case OBJ_EVENT_GFX_TUBER_M_WATER: case OBJ_EVENT_GFX_SWIMMER_M_WATER: case OBJ_EVENT_GFX_SWIMMER_F_WATER: - return MOVEMENT_TYPE_VS_SEEKER_4F; + return MOVEMENT_TYPE_RAISE_HAND_AND_SWIM; default: - return MOVEMENT_TYPE_VS_SEEKER_4D; + return MOVEMENT_TYPE_RAISE_HAND_AND_STOP; } }