Merge remote-tracking branch 'pret/master' into pret_clean2

This commit is contained in:
Eduardo Quezada
2022-08-27 00:56:00 -04:00
60 changed files with 1577 additions and 1659 deletions
+2 -2
View File
@@ -152,8 +152,8 @@
create_movement_action walk_slow_diag_northeast, MOVEMENT_ACTION_WALK_SLOW_DIAGONAL_UP_RIGHT create_movement_action walk_slow_diag_northeast, MOVEMENT_ACTION_WALK_SLOW_DIAGONAL_UP_RIGHT
create_movement_action walk_slow_diag_southwest, MOVEMENT_ACTION_WALK_SLOW_DIAGONAL_DOWN_LEFT create_movement_action walk_slow_diag_southwest, MOVEMENT_ACTION_WALK_SLOW_DIAGONAL_DOWN_LEFT
create_movement_action walk_slow_diag_southeast, MOVEMENT_ACTION_WALK_SLOW_DIAGONAL_DOWN_RIGHT create_movement_action walk_slow_diag_southeast, MOVEMENT_ACTION_WALK_SLOW_DIAGONAL_DOWN_RIGHT
create_movement_action store_lock_anim, MOVEMENT_ACTION_STORE_AND_LOCK_ANIM create_movement_action lock_anim, MOVEMENT_ACTION_LOCK_ANIM
create_movement_action free_unlock_anim, MOVEMENT_ACTION_FREE_AND_UNLOCK_ANIM create_movement_action unlock_anim, MOVEMENT_ACTION_UNLOCK_ANIM
create_movement_action walk_left_affine, MOVEMENT_ACTION_WALK_LEFT_AFFINE create_movement_action walk_left_affine, MOVEMENT_ACTION_WALK_LEFT_AFFINE
create_movement_action walk_right_affine, MOVEMENT_ACTION_WALK_RIGHT_AFFINE create_movement_action walk_right_affine, MOVEMENT_ACTION_WALK_RIGHT_AFFINE
create_movement_action levitate, MOVEMENT_ACTION_LEVITATE create_movement_action levitate, MOVEMENT_ACTION_LEVITATE
+505 -505
View File
File diff suppressed because it is too large Load Diff
+10 -10
View File
@@ -798,14 +798,14 @@ Move_DOUBLE_EDGE:
createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 4, -10, 0, ANIM_TARGET, 0 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 4, -10, 0, ANIM_TARGET, 0
createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 1, -32, 0, 0, 3 createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 1, -32, 0, 0, 3
waitforvisualfinish waitforvisualfinish
createvisualtask AnimTask_RotateMonSpriteToSide, 2, 8, -256, 0, 0 createvisualtask AnimTask_RotateMonSpriteToSide, 2, 8, -256, ANIM_ATTACKER, 0
createvisualtask AnimTask_RotateMonSpriteToSide, 2, 8, -256, 1, 0 createvisualtask AnimTask_RotateMonSpriteToSide, 2, 8, -256, ANIM_TARGET, 0
createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_ATTACKER, 4, 0, 12, 1 createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_ATTACKER, 4, 0, 12, 1
createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_TARGET, 4, 0, 12, 1 createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_TARGET, 4, 0, 12, 1
createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 2, 16, 0, RGB_WHITE createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 2, 16, 0, RGB_WHITE
waitforvisualfinish waitforvisualfinish
createvisualtask AnimTask_RotateMonSpriteToSide, 2, 8, -256, 0, 1 createvisualtask AnimTask_RotateMonSpriteToSide, 2, 8, -256, ANIM_ATTACKER, 1
createvisualtask AnimTask_RotateMonSpriteToSide, 2, 8, -256, 1, 1 createvisualtask AnimTask_RotateMonSpriteToSide, 2, 8, -256, ANIM_TARGET, 1
waitforvisualfinish waitforvisualfinish
createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 5 createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 5
delay 3 delay 3
@@ -2441,7 +2441,7 @@ Move_HORN_ATTACK:
Move_FURY_ATTACK: Move_FURY_ATTACK:
loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_IMPACT
loadspritegfx ANIM_TAG_HORN_HIT loadspritegfx ANIM_TAG_HORN_HIT
createvisualtask AnimTask_RotateMonSpriteToSide, 2, 4, 256, 0, 2 createvisualtask AnimTask_RotateMonSpriteToSide, 2, 4, 256, ANIM_ATTACKER, 2
choosetwoturnanim FuryAttackRight, FuryAttackLeft choosetwoturnanim FuryAttackRight, FuryAttackLeft
FuryAttackContinue: FuryAttackContinue:
createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 5, 0, 6, 1 createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 5, 0, 6, 1
@@ -2590,7 +2590,7 @@ Move_LOW_KICK:
createsprite gSlidingKickSpriteTemplate, ANIM_TARGET, 2, -24, 28, 40, 8, 160, 0 createsprite gSlidingKickSpriteTemplate, ANIM_TARGET, 2, -24, 28, 40, 8, 160, 0
delay 4 delay 4
createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, -8, 8, ANIM_TARGET, 2 createsprite gBasicHitSplatSpriteTemplate, ANIM_TARGET, 2, -8, 8, ANIM_TARGET, 2
createvisualtask AnimTask_RotateMonSpriteToSide, 2, 6, 384, 1, 2 createvisualtask AnimTask_RotateMonSpriteToSide, 2, 6, 384, ANIM_TARGET, 2
playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET
waitforvisualfinish waitforvisualfinish
createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 1, 4 createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 1, 4
@@ -2835,7 +2835,7 @@ SkullBashSetUpHeadDown:
createsprite gSlideMonToOffsetAndBackSpriteTemplate, ANIM_ATTACKER, 2, ANIM_ATTACKER, -24, 0, 0, 10, 0 createsprite gSlideMonToOffsetAndBackSpriteTemplate, ANIM_ATTACKER, 2, ANIM_ATTACKER, -24, 0, 0, 10, 0
playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER
waitforvisualfinish waitforvisualfinish
createvisualtask AnimTask_RotateMonSpriteToSide, 2, 16, 96, 0, 2 createvisualtask AnimTask_RotateMonSpriteToSide, 2, 16, 96, ANIM_ATTACKER, 2
waitforvisualfinish waitforvisualfinish
createsprite gSlideMonToOffsetAndBackSpriteTemplate, ANIM_ATTACKER, 2, ANIM_ATTACKER, 24, 0, 0, 10, 1 createsprite gSlideMonToOffsetAndBackSpriteTemplate, ANIM_ATTACKER, 2, ANIM_ATTACKER, 24, 0, 0, 10, 1
waitforvisualfinish waitforvisualfinish
@@ -3958,7 +3958,7 @@ Move_MIST_BALL:
createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, F_PAL_BG, 1, 1, RGB(23, 16, 31), 16, RGB_WHITE, 16 createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 0, F_PAL_BG, 1, 1, RGB(23, 16, 31), 16, RGB_WHITE, 16
delay 0 delay 0
playsewithpan SE_M_HAZE, 0 playsewithpan SE_M_HAZE, 0
createvisualtask AnimTask_LoadMistTiles, 5 createvisualtask AnimTask_MistBallFog, 5
createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_TARGET, 3, 0, 16, RGB_WHITE createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_TARGET, 3, 0, 16, RGB_WHITE
delay 8 delay 8
createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 4, 0, 70, 0 createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 4, 0, 70, 0
@@ -8570,14 +8570,14 @@ Move_ARM_THRUST:
loadspritegfx ANIM_TAG_IMPACT loadspritegfx ANIM_TAG_IMPACT
splitbgprio ANIM_TARGET splitbgprio ANIM_TARGET
setalpha 12, 8 setalpha 12, 8
createvisualtask AnimTask_RotateMonSpriteToSide, 5, 8, 5, 0, 0 createvisualtask AnimTask_RotateMonSpriteToSide, 5, 8, 5, ANIM_ATTACKER, 0
delay 6 delay 6
createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 4, 3 createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 4, 3
delay 4 delay 4
playsewithpan SE_M_SWAGGER, SOUND_PAN_TARGET playsewithpan SE_M_SWAGGER, SOUND_PAN_TARGET
createsprite gArmThrustHandSpriteTemplate, ANIM_TARGET, 2, 10, -8, 14, 3 createsprite gArmThrustHandSpriteTemplate, ANIM_TARGET, 2, 10, -8, 14, 3
waitforvisualfinish waitforvisualfinish
createvisualtask AnimTask_RotateMonSpriteToSide, 5, 8, 5, 0, 1 createvisualtask AnimTask_RotateMonSpriteToSide, 5, 8, 5, ANIM_ATTACKER, 1
playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET
choosetwoturnanim ArmThrustRight, ArmThrustLeft choosetwoturnanim ArmThrustRight, ArmThrustLeft
ArmThrustContinue: ArmThrustContinue:
+5 -3
View File
@@ -1,6 +1,7 @@
#include "constants/global.h" #include "constants/global.h"
#include "constants/battle.h" #include "constants/battle.h"
#include "constants/pokemon.h" #include "constants/pokemon.h"
#include "constants/battle_arena.h"
#include "constants/battle_script_commands.h" #include "constants/battle_script_commands.h"
#include "constants/battle_anim.h" #include "constants/battle_anim.h"
#include "constants/battle_string_ids.h" #include "constants/battle_string_ids.h"
@@ -4482,7 +4483,7 @@ BattleScript_ArenaDoJudgment::
arenajudgmentstring B_MSG_REF_THATS_IT arenajudgmentstring B_MSG_REF_THATS_IT
arenawaitmessage B_MSG_REF_THATS_IT arenawaitmessage B_MSG_REF_THATS_IT
pause B_WAIT_TIME_LONG pause B_WAIT_TIME_LONG
setbyte gBattleCommunication, 0 setbyte gBattleCommunication, 0 @ Reset state for arenajudgmentwindow
arenajudgmentwindow arenajudgmentwindow
pause B_WAIT_TIME_LONG pause B_WAIT_TIME_LONG
arenajudgmentwindow arenajudgmentwindow
@@ -4495,8 +4496,9 @@ BattleScript_ArenaDoJudgment::
arenajudgmentstring B_MSG_REF_JUDGE_BODY arenajudgmentstring B_MSG_REF_JUDGE_BODY
arenawaitmessage B_MSG_REF_JUDGE_BODY arenawaitmessage B_MSG_REF_JUDGE_BODY
arenajudgmentwindow arenajudgmentwindow
jumpifbyte CMP_EQUAL, gBattleCommunication + 1, 3, BattleScript_ArenaJudgmentPlayerLoses jumpifbyte CMP_EQUAL, gBattleCommunication + 1, ARENA_RESULT_PLAYER_LOST, BattleScript_ArenaJudgmentPlayerLoses
jumpifbyte CMP_EQUAL, gBattleCommunication + 1, 4, BattleScript_ArenaJudgmentDraw jumpifbyte CMP_EQUAL, gBattleCommunication + 1, ARENA_RESULT_TIE, BattleScript_ArenaJudgmentDraw
@ ARENA_RESULT_PLAYER_WON
arenajudgmentstring B_MSG_REF_PLAYER_WON arenajudgmentstring B_MSG_REF_PLAYER_WON
arenawaitmessage B_MSG_REF_PLAYER_WON arenawaitmessage B_MSG_REF_PLAYER_WON
arenajudgmentwindow arenajudgmentwindow
+18 -2
View File
@@ -435,11 +435,15 @@ AI_CGM_BetterWhenAudienceExcited:
AI_CGM_BetterWhenAudienceExcited_1stUp: AI_CGM_BetterWhenAudienceExcited_1stUp:
@ BUG: Should be if_appeal_num_eq 0 @ BUG: Should be if_appeal_num_eq 0
@ 1st up on 1st appeal excitement will always be 0 @ 1st up on 1st appeal excitement will always be 0
if_appeal_num_not_eq 0, AI_CGM_BetterWhenAudienceExcited_Not1stAppeal .ifdef BUGFIX
if_appeal_num_eq 0, AI_CGM_BetterWhenAudienceExcited_1stAppeal
.else
if_appeal_num_not_eq 0, AI_CGM_BetterWhenAudienceExcited_1stAppeal
.endif
if_excitement_eq 4, AI_CGM_BetterWhenAudienceExcited_1AwayFromMax if_excitement_eq 4, AI_CGM_BetterWhenAudienceExcited_1AwayFromMax
if_excitement_eq 3, AI_CGM_BetterWhenAudienceExcited_2AwayFromMax if_excitement_eq 3, AI_CGM_BetterWhenAudienceExcited_2AwayFromMax
end end
AI_CGM_BetterWhenAudienceExcited_Not1stAppeal: AI_CGM_BetterWhenAudienceExcited_1stAppeal:
if_random_less_than 125, AI_CGM_End if_random_less_than 125, AI_CGM_End
score -15 score -15
end end
@@ -542,7 +546,11 @@ AI_CGM_TargetMonWithJudgesAttention:
end end
AI_CGM_TargetMonWithJudgesAttention_CheckMon1: AI_CGM_TargetMonWithJudgesAttention_CheckMon1:
if_cannot_participate MON_1, AI_CGM_TargetMonWithJudgesAttention_CheckMon2 if_cannot_participate MON_1, AI_CGM_TargetMonWithJudgesAttention_CheckMon2
.ifdef BUGFIX
if_not_used_combo_starter MON_1, AI_CGM_TargetMonWithJudgesAttention_CheckMon2
.else
if_used_combo_starter MON_1, AI_CGM_TargetMonWithJudgesAttention_CheckMon2 if_used_combo_starter MON_1, AI_CGM_TargetMonWithJudgesAttention_CheckMon2
.endif
if_random_less_than 125, AI_CGM_TargetMonWithJudgesAttention_CheckMon2 if_random_less_than 125, AI_CGM_TargetMonWithJudgesAttention_CheckMon2
score +2 score +2
if_not_completed_combo MON_1, AI_CGM_TargetMonWithJudgesAttention_CheckMon2 if_not_completed_combo MON_1, AI_CGM_TargetMonWithJudgesAttention_CheckMon2
@@ -551,7 +559,11 @@ AI_CGM_TargetMonWithJudgesAttention_CheckMon1:
AI_CGM_TargetMonWithJudgesAttention_CheckMon2: AI_CGM_TargetMonWithJudgesAttention_CheckMon2:
if_user_order_eq MON_2, AI_CGM_End if_user_order_eq MON_2, AI_CGM_End
if_cannot_participate MON_2, AI_CGM_TargetMonWithJudgesAttention_CheckMon3 if_cannot_participate MON_2, AI_CGM_TargetMonWithJudgesAttention_CheckMon3
.ifdef BUGFIX
if_not_used_combo_starter MON_2, AI_CGM_TargetMonWithJudgesAttention_CheckMon3
.else
if_used_combo_starter MON_2, AI_CGM_TargetMonWithJudgesAttention_CheckMon3 if_used_combo_starter MON_2, AI_CGM_TargetMonWithJudgesAttention_CheckMon3
.endif
if_random_less_than 125, AI_CGM_TargetMonWithJudgesAttention_CheckMon3 if_random_less_than 125, AI_CGM_TargetMonWithJudgesAttention_CheckMon3
score +2 score +2
if_not_completed_combo MON_2, AI_CGM_TargetMonWithJudgesAttention_CheckMon3 if_not_completed_combo MON_2, AI_CGM_TargetMonWithJudgesAttention_CheckMon3
@@ -560,7 +572,11 @@ AI_CGM_TargetMonWithJudgesAttention_CheckMon2:
AI_CGM_TargetMonWithJudgesAttention_CheckMon3: AI_CGM_TargetMonWithJudgesAttention_CheckMon3:
if_user_order_eq MON_3, AI_CGM_End if_user_order_eq MON_3, AI_CGM_End
if_cannot_participate MON_3, AI_CGM_End if_cannot_participate MON_3, AI_CGM_End
.ifdef BUGFIX
if_not_used_combo_starter MON_3, AI_CGM_End
.else
if_used_combo_starter MON_3, AI_CGM_End if_used_combo_starter MON_3, AI_CGM_End
.endif
if_random_less_than 125, AI_CGM_End if_random_less_than 125, AI_CGM_End
score +2 score +2
if_not_completed_combo MON_3, AI_CGM_End if_not_completed_combo MON_3, AI_CGM_End
@@ -472,8 +472,8 @@ BattleFrontier_BattlePalaceLobby_Text_FeatWillBeRecorded:
@ Unused @ Unused
BattleFrontier_BattlePalaceLobby_Text_BattlePointsFor7WinStreak: BattleFrontier_BattlePalaceLobby_Text_BattlePointsFor7WinStreak:
.string "For the feat of your 7-win streak,\n" .string "For the feat of your 7-win streak,\n"
.string "we present you with Battle Point(s).$" .string "we present you with Battle Point(s).$"
BattleFrontier_BattlePalaceLobby_Text_NoSpaceForPrize: BattleFrontier_BattlePalaceLobby_Text_NoSpaceForPrize:
.string "You seem to have no space for\n" .string "You seem to have no space for\n"
@@ -33,8 +33,8 @@ EverGrandeCity_ChampionsRoom_EventScript_EnterRoom::
waitmovement 0 waitmovement 0
setvar VAR_TEMP_1, 1 setvar VAR_TEMP_1, 1
goto EverGrandeCity_ChampionsRoom_EventScript_Wallace goto EverGrandeCity_ChampionsRoom_EventScript_Wallace
releaseall releaseall
end end
EverGrandeCity_ChampionsRoom_Movement_PlayerApproachWallace: EverGrandeCity_ChampionsRoom_Movement_PlayerApproachWallace:
walk_up walk_up
@@ -19,7 +19,7 @@ FortreeCity_DecorationShop_EventScript_ClerkDesks::
release release
end end
.align 2 .align 2
FortreeCity_DecorationShop_PokemartDecor_Desks: FortreeCity_DecorationShop_PokemartDecor_Desks:
.2byte DECOR_SMALL_DESK .2byte DECOR_SMALL_DESK
.2byte DECOR_POKEMON_DESK .2byte DECOR_POKEMON_DESK
+1 -1
View File
@@ -158,7 +158,7 @@
"y": 9, "y": 9,
"elevation": 0, "elevation": 0,
"player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY",
"script": "OldaleTown_EventScript_CitySign" "script": "OldaleTown_EventScript_TownSign"
}, },
{ {
"type": "sign", "type": "sign",
+3 -3
View File
@@ -29,8 +29,8 @@ OldaleTown_EventScript_MoveMartEmployee::
setobjectmovementtype LOCALID_MART_EMPLOYEE, MOVEMENT_TYPE_FACE_DOWN setobjectmovementtype LOCALID_MART_EMPLOYEE, MOVEMENT_TYPE_FACE_DOWN
return return
OldaleTown_EventScript_CitySign:: OldaleTown_EventScript_TownSign::
msgbox OldaleTown_Text_CitySign, MSGBOX_SIGN msgbox OldaleTown_Text_TownSign, MSGBOX_SIGN
end end
OldaleTown_EventScript_Girl:: OldaleTown_EventScript_Girl::
@@ -395,7 +395,7 @@ OldaleTown_Text_BrendanLetsGoBack:
.string "LAB now.\l" .string "LAB now.\l"
.string "{PLAYER}, you should hustle back, too.$" .string "{PLAYER}, you should hustle back, too.$"
OldaleTown_Text_CitySign: OldaleTown_Text_TownSign:
.string "OLDALE TOWN\n" .string "OLDALE TOWN\n"
.string "“Where things start off scarce.”$" .string "“Where things start off scarce.”$"
+2 -2
View File
@@ -11,9 +11,9 @@ PacifidlogTown_House2_EventScript_FanClubYoungerBrother::
call_if_unset FLAG_MET_FANCLUB_YOUNGER_BROTHER, PacifidlogTown_House2_EventScript_FirstMonAssessment call_if_unset FLAG_MET_FANCLUB_YOUNGER_BROTHER, PacifidlogTown_House2_EventScript_FirstMonAssessment
setflag FLAG_MET_FANCLUB_YOUNGER_BROTHER setflag FLAG_MET_FANCLUB_YOUNGER_BROTHER
specialvar VAR_RESULT, GetLeadMonFriendshipScore specialvar VAR_RESULT, GetLeadMonFriendshipScore
goto_if_ge VAR_RESULT, 4, PacifidlogTown_House2_EventScript_GiveReturn goto_if_ge VAR_RESULT, FRIENDSHIP_150_TO_199, PacifidlogTown_House2_EventScript_GiveReturn
specialvar VAR_RESULT, GetLeadMonFriendshipScore specialvar VAR_RESULT, GetLeadMonFriendshipScore
goto_if_ge VAR_RESULT, 2, PacifidlogTown_House2_EventScript_PutInEffort goto_if_ge VAR_RESULT, FRIENDSHIP_50_TO_99, PacifidlogTown_House2_EventScript_PutInEffort
goto PacifidlogTown_House2_EventScript_GiveFrustration goto PacifidlogTown_House2_EventScript_GiveFrustration
end end
+1 -1
View File
@@ -144,7 +144,7 @@ Route111_EventScript_RootFossilDisappeared::
@ Unused @ Unused
Route111_Movement_PlayerFall:: Route111_Movement_PlayerFall::
store_lock_anim lock_anim
walk_fast_down walk_fast_down
walk_fast_down walk_fast_down
walk_fast_down walk_fast_down
@@ -192,7 +192,7 @@ SlateportCity_PokemonFanClub_EventScript_SootheBellWoman::
goto_if_set FLAG_RECEIVED_SOOTHE_BELL, SlateportCity_PokemonFanClub_EventScript_ReceivedSootheBell goto_if_set FLAG_RECEIVED_SOOTHE_BELL, SlateportCity_PokemonFanClub_EventScript_ReceivedSootheBell
msgbox SlateportCity_PokemonFanClub_Text_ShowMePokemonThatLoveYou, MSGBOX_DEFAULT msgbox SlateportCity_PokemonFanClub_Text_ShowMePokemonThatLoveYou, MSGBOX_DEFAULT
specialvar VAR_RESULT, GetLeadMonFriendshipScore specialvar VAR_RESULT, GetLeadMonFriendshipScore
goto_if_ge VAR_RESULT, 4, SlateportCity_PokemonFanClub_EventScript_GiveSootheBell goto_if_ge VAR_RESULT, FRIENDSHIP_150_TO_199, SlateportCity_PokemonFanClub_EventScript_GiveSootheBell
release release
end end
@@ -7,13 +7,13 @@ VerdanturfTown_FriendshipRatersHouse_EventScript_FriendshipRater::
msgbox VerdanturfTown_FriendshipRatersHouse_Text_SeeHowMuchPokemonLikesYou, MSGBOX_DEFAULT msgbox VerdanturfTown_FriendshipRatersHouse_Text_SeeHowMuchPokemonLikesYou, MSGBOX_DEFAULT
specialvar VAR_RESULT, GetLeadMonFriendshipScore specialvar VAR_RESULT, GetLeadMonFriendshipScore
switch VAR_RESULT switch VAR_RESULT
case 0, VerdanturfTown_FriendshipRatersHouse_EventScript_DetestsYou case FRIENDSHIP_NONE, VerdanturfTown_FriendshipRatersHouse_EventScript_DetestsYou
case 1, VerdanturfTown_FriendshipRatersHouse_EventScript_VeryWary case FRIENDSHIP_1_TO_49, VerdanturfTown_FriendshipRatersHouse_EventScript_VeryWary
case 2, VerdanturfTown_FriendshipRatersHouse_EventScript_NotUsedToYou case FRIENDSHIP_50_TO_99, VerdanturfTown_FriendshipRatersHouse_EventScript_NotUsedToYou
case 3, VerdanturfTown_FriendshipRatersHouse_EventScript_GettingUsedToYou case FRIENDSHIP_100_TO_149, VerdanturfTown_FriendshipRatersHouse_EventScript_GettingUsedToYou
case 4, VerdanturfTown_FriendshipRatersHouse_EventScript_LikesYouQuiteALot case FRIENDSHIP_150_TO_199, VerdanturfTown_FriendshipRatersHouse_EventScript_LikesYouQuiteALot
case 5, VerdanturfTown_FriendshipRatersHouse_EventScript_VeryHappy case FRIENDSHIP_200_TO_254, VerdanturfTown_FriendshipRatersHouse_EventScript_VeryHappy
case 6, VerdanturfTown_FriendshipRatersHouse_EventScript_AdoresYou case FRIENDSHIP_MAX, VerdanturfTown_FriendshipRatersHouse_EventScript_AdoresYou
release release
end end
+1 -1
View File
@@ -315,7 +315,7 @@ MauvilleCity_PokemonCenter_1F_Text_TrendsStartedStory::
.string "the HOENN region!$" .string "the HOENN region!$"
MauvilleCity_PokemonCenter_1F_Text_BerriesPlantedTitle:: MauvilleCity_PokemonCenter_1F_Text_BerriesPlantedTitle::
.string "The BERRY-Planting TRAINER$" .string "The BERRY-Planting TRAINER$"
MauvilleCity_PokemonCenter_1F_Text_BerriesPlantedAction:: MauvilleCity_PokemonCenter_1F_Text_BerriesPlantedAction::
.string "Planted BERRIES$" .string "Planted BERRIES$"
+52 -52
View File
@@ -1,71 +1,71 @@
EventTicket_Text_OldSeaMapTooFar: EventTicket_Text_OldSeaMapTooFar:
.string "What's up, youngster?\p" .string "What's up, youngster?\p"
.string "What, it's you who's supposed to have\n" .string "What, it's you who's supposed to have\n"
.string "a tattered old map?\p" .string "a tattered old map?\p"
.string "Let's have a look.\n" .string "Let's have a look.\n"
.string "… … … … … …\p" .string "… … … … … …\p"
.string "Boy, this is quite a ways away.\n" .string "Boy, this is quite a ways away.\n"
.string "I'm afraid I can't help you…$" .string "I'm afraid I can't help you…$"
EventTicket_Text_BrineyHoldOnASecond: EventTicket_Text_BrineyHoldOnASecond:
.string "BRINEY: Hold on a second!\p" .string "BRINEY: Hold on a second!\p"
.string "What's the idea of turning down\n" .string "What's the idea of turning down\n"
.string "someone that I owe so much to?$" .string "someone that I owe so much to?$"
EventTicket_Text_BrineyLetsSail: EventTicket_Text_BrineyLetsSail:
.string "{PLAYER}{KUN}, I'm terribly sorry.\p" .string "{PLAYER}{KUN}, I'm terribly sorry.\p"
.string "You came to me seeking my help,\n" .string "You came to me seeking my help,\n"
.string "and we almost turned you away.\p" .string "and we almost turned you away.\p"
.string "Well, let me make things right.\p" .string "Well, let me make things right.\p"
.string "We'll sail right away, of course!\p" .string "We'll sail right away, of course!\p"
.string "Let's find this island on\n" .string "Let's find this island on\n"
.string "this OLD SEA MAP!$" .string "this OLD SEA MAP!$"
EventTicket_Text_OddTicketGetOnBoard: EventTicket_Text_OddTicketGetOnBoard:
.string "Is it you who brought that odd\n" .string "Is it you who brought that odd\n"
.string "ticket?\p" .string "ticket?\p"
.string "Where you're trying to go is an island\n" .string "Where you're trying to go is an island\n"
.string "that's far, far away.\p" .string "that's far, far away.\p"
.string "No one knows what awaits there…\p" .string "No one knows what awaits there…\p"
.string "The very thought excites my blood\n" .string "The very thought excites my blood\n"
.string "as a sailing man!\p" .string "as a sailing man!\p"
.string "Get on board, youngster!$" .string "Get on board, youngster!$"
FarawayIsland_Entrance_Text_SailorReturn: FarawayIsland_Entrance_Text_SailorReturn:
.string "CAPT. BRINEY can be so maddeningly\n" .string "CAPT. BRINEY can be so maddeningly\n"
.string "fickle…\p" .string "fickle…\p"
.string "Do you want to return to LILYCOVE?$" .string "Do you want to return to LILYCOVE?$"
BirthIsland_Harbor_Text_SailorReturn: BirthIsland_Harbor_Text_SailorReturn:
.string "What an oddly shaped island, eh?\n" .string "What an oddly shaped island, eh?\n"
.string "Do you want to return to LILYCOVE?$" .string "Do you want to return to LILYCOVE?$"
EventTicket_Text_OddTicketsWhereTo: EventTicket_Text_OddTicketsWhereTo:
.string "Is it you who brought those\n" .string "Is it you who brought those\n"
.string "odd tickets?\p" .string "odd tickets?\p"
.string "… … …Hm.\p" .string "… … …Hm.\p"
.string "These tickets will get you to islands\n" .string "These tickets will get you to islands\n"
.string "that are far, far away.\p" .string "that are far, far away.\p"
.string "No one knows what awaits there,\n" .string "No one knows what awaits there,\n"
.string "or what may happen there.\p" .string "or what may happen there.\p"
.string "The very thought excites my blood\n" .string "The very thought excites my blood\n"
.string "as a sailing man!\p" .string "as a sailing man!\p"
.string "Get on board, youngster!\n" .string "Get on board, youngster!\n"
.string "Where shall we sail first?$" .string "Where shall we sail first?$"
NavelRock_Harbor_Text_SailorReturn: NavelRock_Harbor_Text_SailorReturn:
.string "Did… Did you hear that?\n" .string "Did… Did you hear that?\n"
.string "That low growling from deep in there.\p" .string "That low growling from deep in there.\p"
.string "Are you sure it's safe?\n" .string "Are you sure it's safe?\n"
.string "Do you think we should leave?$" .string "Do you think we should leave?$"
FarawayIsland_Entrance_Text_Sign: FarawayIsland_Entrance_Text_Sign:
.string "The writing is fading as if it was\n" .string "The writing is fading as if it was\n"
.string "written a long time ago…\p" .string "written a long time ago…\p"
.string "“…ber, 6th day\n" .string "“…ber, 6th day\n"
.string "If any human…sets foot here…\l" .string "If any human…sets foot here…\l"
.string "again…et it be a kindhearted pers…\l" .string "again…et it be a kindhearted pers…\l"
.string "…ith that hope, I depar…”$" .string "…ith that hope, I depar…”$"
FarawayIsland_Interior_Text_Mew: FarawayIsland_Interior_Text_Mew:
.string "Myuu…$" .string "Myuu…$"
+32 -32
View File
@@ -1,51 +1,51 @@
gText_WouldYouLikeToRestYourPkmn:: gText_WouldYouLikeToRestYourPkmn::
.string "Hello, and welcome to\n" .string "Hello, and welcome to\n"
.string "the POKéMON CENTER.\p" .string "the POKéMON CENTER.\p"
.string "We restore your tired POKéMON\n" .string "We restore your tired POKéMON\n"
.string "to full health.\p" .string "to full health.\p"
.string "Would you like to rest your POKéMON?$" .string "Would you like to rest your POKéMON?$"
gText_IllTakeYourPkmn:: gText_IllTakeYourPkmn::
.string "Okay, I'll take your POKéMON\n" .string "Okay, I'll take your POKéMON\n"
.string "for a few seconds.$" .string "for a few seconds.$"
gText_RestoredPkmnToFullHealth:: gText_RestoredPkmnToFullHealth::
.string "Thank you for waiting.\p" .string "Thank you for waiting.\p"
.string "We've restored your POKéMON\n" .string "We've restored your POKéMON\n"
.string "to full health.$" .string "to full health.$"
gText_WeHopeToSeeYouAgain:: gText_WeHopeToSeeYouAgain::
.string "We hope to see you again!$" .string "We hope to see you again!$"
gText_WelcomeCutShort:: gText_WelcomeCutShort::
.string "Hello, and welcome to\n" .string "Hello, and welcome to\n"
.string "the POKéMON CENTER.\p" .string "the POKéMON CENTER.\p"
.string "We restore your tired POKéMON\n" .string "We restore your tired POKéMON\n"
.string "to full health.\p" .string "to full health.\p"
.string "Would you like to…$" .string "Would you like to…$"
gText_NoticesGoldCard:: gText_NoticesGoldCard::
.string "Th-that card…\n" .string "Th-that card…\n"
.string "Could it be… The GOLD CARD?!\p" .string "Could it be… The GOLD CARD?!\p"
.string "Oh, the gold color is brilliant!\n" .string "Oh, the gold color is brilliant!\n"
.string "The four stars seem to sparkle!\p" .string "The four stars seem to sparkle!\p"
.string "I've seen several TRAINERS with\n" .string "I've seen several TRAINERS with\n"
.string "a SILVER CARD before, but, {PLAYER},\l" .string "a SILVER CARD before, but, {PLAYER},\l"
.string "you're the first TRAINER I've ever\l" .string "you're the first TRAINER I've ever\l"
.string "seen with a GOLD CARD!\p" .string "seen with a GOLD CARD!\p"
.string "Okay, {PLAYER}, please allow me\n" .string "Okay, {PLAYER}, please allow me\n"
.string "the honor of resting your POKéMON!$" .string "the honor of resting your POKéMON!$"
gText_YouWantTheUsual:: gText_YouWantTheUsual::
.string "I'm delighted to see you, {PLAYER}!\n" .string "I'm delighted to see you, {PLAYER}!\n"
.string "You want the usual, am I right?$" .string "You want the usual, am I right?$"
gText_IllTakeYourPkmn2:: gText_IllTakeYourPkmn2::
.string "Okay, I'll take your POKéMON\n" .string "Okay, I'll take your POKéMON\n"
.string "for a few seconds.$" .string "for a few seconds.$"
gText_ThankYouForWaiting:: gText_ThankYouForWaiting::
.string "Thank you for waiting.$" .string "Thank you for waiting.$"
gText_WeHopeToSeeYouAgain2:: gText_WeHopeToSeeYouAgain2::
.string "We hope to see you again!$" .string "We hope to see you again!$"
+167 -167
View File
@@ -1,286 +1,286 @@
SecretBase_Text_Trainer0Intro: SecretBase_Text_Trainer0Intro:
.string "Have you made a SECRET BASE already?\p" .string "Have you made a SECRET BASE already?\p"
.string "I went here, there, everywhere before\n" .string "I went here, there, everywhere before\n"
.string "choosing this place.\p" .string "choosing this place.\p"
.string "Since you're already here, how would\n" .string "Since you're already here, how would\n"
.string "you like to battle?$" .string "you like to battle?$"
SecretBase_Text_Trainer0AcceptBattle: SecretBase_Text_Trainer0AcceptBattle:
.string "Okay!\n" .string "Okay!\n"
.string "Here we come!$" .string "Here we come!$"
SecretBase_Text_Trainer0DeclineBattle: SecretBase_Text_Trainer0DeclineBattle:
.string "Hunh?\n" .string "Hunh?\n"
.string "Oh, you can't now…$" .string "Oh, you can't now…$"
SecretBase_Text_Trainer0Defeated:: SecretBase_Text_Trainer0Defeated::
.string "Waaargh! You're too strong!\n" .string "Waaargh! You're too strong!\n"
.string "About me losing… Please keep it secret!$" .string "About me losing… Please keep it secret!$"
SecretBase_Text_Trainer0PostBattle: SecretBase_Text_Trainer0PostBattle:
.string "What do you think of my SECRET BASE?\n" .string "What do you think of my SECRET BASE?\n"
.string "Come visit me again tomorrow.$" .string "Come visit me again tomorrow.$"
SecretBase_Text_Trainer0PreChampion: SecretBase_Text_Trainer0PreChampion:
.string "Have you made a SECRET BASE already?\p" .string "Have you made a SECRET BASE already?\p"
.string "I went here, there, everywhere before\n" .string "I went here, there, everywhere before\n"
.string "choosing this place.\p" .string "choosing this place.\p"
.string "Feel free to hang out!$" .string "Feel free to hang out!$"
SecretBase_Text_Trainer5Intro: SecretBase_Text_Trainer5Intro:
.string "There're a lot of places where\n" .string "There're a lot of places where\n"
.string "you can make a SECRET BASE.\p" .string "you can make a SECRET BASE.\p"
.string "But I like this spot best.\n" .string "But I like this spot best.\n"
.string "Don't you think it's nice?\p" .string "Don't you think it's nice?\p"
.string "Oh, would you like to have a battle?$" .string "Oh, would you like to have a battle?$"
SecretBase_Text_Trainer5AcceptBattle: SecretBase_Text_Trainer5AcceptBattle:
.string "Okay, here goes!$" .string "Okay, here goes!$"
SecretBase_Text_Trainer5DeclineBattle: SecretBase_Text_Trainer5DeclineBattle:
.string "Oh…\n" .string "Oh…\n"
.string "You can't now, okay.$" .string "You can't now, okay.$"
SecretBase_Text_Trainer5Defeated:: SecretBase_Text_Trainer5Defeated::
.string "Hmmm… It's our loss…\n" .string "Hmmm… It's our loss…\n"
.string "But don't tell anyone!\l" .string "But don't tell anyone!\l"
.string "It's a confidential secret!$" .string "It's a confidential secret!$"
SecretBase_Text_Trainer5PostBattle: SecretBase_Text_Trainer5PostBattle:
.string "If you're in this area again,\n" .string "If you're in this area again,\n"
.string "I hope you'll visit me.$" .string "I hope you'll visit me.$"
SecretBase_Text_Trainer5PreChampion: SecretBase_Text_Trainer5PreChampion:
.string "There're a lot of places where you can\n" .string "There're a lot of places where you can\n"
.string "make a SECRET BASE.\p" .string "make a SECRET BASE.\p"
.string "But I like this spot best.\n" .string "But I like this spot best.\n"
.string "Don't you think it's nice?$" .string "Don't you think it's nice?$"
SecretBase_Text_Trainer1Intro: SecretBase_Text_Trainer1Intro:
.string "This is a popular spot.\n" .string "This is a popular spot.\n"
.string "It's always taken.\p" .string "It's always taken.\p"
.string "Oh! Were you thinking about\n" .string "Oh! Were you thinking about\n"
.string "taking this spot, too?\p" .string "taking this spot, too?\p"
.string "I'll tell you what, you can have this\n" .string "I'll tell you what, you can have this\n"
.string "spot if you can beat me.$" .string "spot if you can beat me.$"
SecretBase_Text_Trainer1AcceptBattle: SecretBase_Text_Trainer1AcceptBattle:
.string "Okay!\n" .string "Okay!\n"
.string "I'm going to defend my SECRET BASE!$" .string "I'm going to defend my SECRET BASE!$"
SecretBase_Text_Trainer1DeclineBattle: SecretBase_Text_Trainer1DeclineBattle:
.string "Hunh? Is that right?\n" .string "Hunh? Is that right?\n"
.string "You're not interested in this spot?$" .string "You're not interested in this spot?$"
SecretBase_Text_Trainer1Defeated:: SecretBase_Text_Trainer1Defeated::
.string "I can't keep going!\n" .string "I can't keep going!\n"
.string "I surrender!$" .string "I surrender!$"
SecretBase_Text_Trainer1PostBattle: SecretBase_Text_Trainer1PostBattle:
.string "Okay, when I move one day,\n" .string "Okay, when I move one day,\n"
.string "this place will be yours!$" .string "this place will be yours!$"
SecretBase_Text_Trainer1PreChampion: SecretBase_Text_Trainer1PreChampion:
.string "This is a popular spot.\n" .string "This is a popular spot.\n"
.string "It's always taken.\p" .string "It's always taken.\p"
.string "I waited a long time for it to open.\n" .string "I waited a long time for it to open.\n"
.string "I finally got to use it!$" .string "I finally got to use it!$"
SecretBase_Text_Trainer6Intro: SecretBase_Text_Trainer6Intro:
.string "Welcome to my POKéMON LAB.\p" .string "Welcome to my POKéMON LAB.\p"
.string "I carry out research on battling in\n" .string "I carry out research on battling in\n"
.string "secrecy.\p" .string "secrecy.\p"
.string "Would you like to see how strong I am?$" .string "Would you like to see how strong I am?$"
SecretBase_Text_Trainer6AcceptBattle: SecretBase_Text_Trainer6AcceptBattle:
.string "I'm going to go all out!$" .string "I'm going to go all out!$"
SecretBase_Text_Trainer6DeclineBattle: SecretBase_Text_Trainer6DeclineBattle:
.string "Oh.\n" .string "Oh.\n"
.string "Some other time, then!$" .string "Some other time, then!$"
SecretBase_Text_Trainer6Defeated:: SecretBase_Text_Trainer6Defeated::
.string "Hmm… I've still got lots to learn.\n" .string "Hmm… I've still got lots to learn.\n"
.string "I have to study some more.$" .string "I have to study some more.$"
SecretBase_Text_Trainer6PostBattle: SecretBase_Text_Trainer6PostBattle:
.string "Thanks for battling with me.\n" .string "Thanks for battling with me.\n"
.string "Please come back again tomorrow.$" .string "Please come back again tomorrow.$"
SecretBase_Text_Trainer6PreChampion: SecretBase_Text_Trainer6PreChampion:
.string "Welcome to my POKéMON LAB.\p" .string "Welcome to my POKéMON LAB.\p"
.string "I carry out research on battling in\n" .string "I carry out research on battling in\n"
.string "secrecy.$" .string "secrecy.$"
SecretBase_Text_Trainer2Intro: SecretBase_Text_Trainer2Intro:
.string "A big mansion is nice, but I like this\n" .string "A big mansion is nice, but I like this\n"
.string "sort of place more.\p" .string "sort of place more.\p"
.string "I like it because all kinds of people\n" .string "I like it because all kinds of people\n"
.string "come visit me.\p" .string "come visit me.\p"
.string "So, how would you like a battle?$" .string "So, how would you like a battle?$"
SecretBase_Text_Trainer2AcceptBattle: SecretBase_Text_Trainer2AcceptBattle:
.string "That's the way!$" .string "That's the way!$"
SecretBase_Text_Trainer2DeclineBattle: SecretBase_Text_Trainer2DeclineBattle:
.string "When you're ready, give me a shout!$" .string "When you're ready, give me a shout!$"
SecretBase_Text_Trainer2Defeated:: SecretBase_Text_Trainer2Defeated::
.string "Aww! Done in!\n" .string "Aww! Done in!\n"
.string "But it's still fun to battle!$" .string "But it's still fun to battle!$"
SecretBase_Text_Trainer2PostBattle: SecretBase_Text_Trainer2PostBattle:
.string "Well, anyway, I should go buy some\n" .string "Well, anyway, I should go buy some\n"
.string "decorations and furniture.\p" .string "decorations and furniture.\p"
.string "I want my SECRET BASE to be a place\n" .string "I want my SECRET BASE to be a place\n"
.string "other people can enjoy.$" .string "other people can enjoy.$"
SecretBase_Text_Trainer2PreChampion: SecretBase_Text_Trainer2PreChampion:
.string "A big mansion is nice, but I like this\n" .string "A big mansion is nice, but I like this\n"
.string "sort of place more.\p" .string "sort of place more.\p"
.string "I like it because all kinds of people\n" .string "I like it because all kinds of people\n"
.string "come visit me.$" .string "come visit me.$"
SecretBase_Text_Trainer7Intro: SecretBase_Text_Trainer7Intro:
.string "I simply adore shopping for decorations\n" .string "I simply adore shopping for decorations\n"
.string "and furniture.\p" .string "and furniture.\p"
.string "I also love raising POKéMON just\n" .string "I also love raising POKéMON just\n"
.string "as much.\p" .string "as much.\p"
.string "If you would be so kind, will you battle\n" .string "If you would be so kind, will you battle\n"
.string "with my POKéMON?$" .string "with my POKéMON?$"
SecretBase_Text_Trainer7AcceptBattle: SecretBase_Text_Trainer7AcceptBattle:
.string "Thank you.\n" .string "Thank you.\n"
.string "Shall we begin?$" .string "Shall we begin?$"
SecretBase_Text_Trainer7DeclineBattle: SecretBase_Text_Trainer7DeclineBattle:
.string "Oh.\n" .string "Oh.\n"
.string "How disappointing…$" .string "How disappointing…$"
SecretBase_Text_Trainer7Defeated:: SecretBase_Text_Trainer7Defeated::
.string "I concede…$" .string "I concede…$"
SecretBase_Text_Trainer7PostBattle: SecretBase_Text_Trainer7PostBattle:
.string "That was all in good fun!\n" .string "That was all in good fun!\n"
.string "I should go enjoy shopping now.$" .string "I should go enjoy shopping now.$"
SecretBase_Text_Trainer7PreChampion: SecretBase_Text_Trainer7PreChampion:
.string "I simply adore shopping for decorations\n" .string "I simply adore shopping for decorations\n"
.string "and furniture.\p" .string "and furniture.\p"
.string "I also love raising POKéMON just\n" .string "I also love raising POKéMON just\n"
.string "as much.$" .string "as much.$"
SecretBase_Text_Trainer3Intro: SecretBase_Text_Trainer3Intro:
.string "Some people make their SECRET BASES in\n" .string "Some people make their SECRET BASES in\n"
.string "hard-to-find places.\l" .string "hard-to-find places.\l"
.string "Do they want to just lie low?\p" .string "Do they want to just lie low?\p"
.string "But since you found me, how about we\n" .string "But since you found me, how about we\n"
.string "have a battle?$" .string "have a battle?$"
SecretBase_Text_Trainer3AcceptBattle: SecretBase_Text_Trainer3AcceptBattle:
.string "I'm not going down easily!$" .string "I'm not going down easily!$"
SecretBase_Text_Trainer3DeclineBattle: SecretBase_Text_Trainer3DeclineBattle:
.string "Oh… Are you maybe tired from searching\n" .string "Oh… Are you maybe tired from searching\n"
.string "for this place?$" .string "for this place?$"
SecretBase_Text_Trainer3Defeated:: SecretBase_Text_Trainer3Defeated::
.string "I went down…$" .string "I went down…$"
SecretBase_Text_Trainer3PostBattle: SecretBase_Text_Trainer3PostBattle:
.string "Where's your SECRET BASE?\n" .string "Where's your SECRET BASE?\n"
.string "I should go visit you there.$" .string "I should go visit you there.$"
SecretBase_Text_Trainer3PreChampion: SecretBase_Text_Trainer3PreChampion:
.string "Some people make their SECRET BASES in\n" .string "Some people make their SECRET BASES in\n"
.string "hard-to-find places.\l" .string "hard-to-find places.\l"
.string "Do they want to just lie low?$" .string "Do they want to just lie low?$"
SecretBase_Text_Trainer8Intro: SecretBase_Text_Trainer8Intro:
.string "People have told me that you can get\n" .string "People have told me that you can get\n"
.string "decorations in several ways.\p" .string "decorations in several ways.\p"
.string "We should have a race to see who can\n" .string "We should have a race to see who can\n"
.string "get nicer decorations and furniture!\p" .string "get nicer decorations and furniture!\p"
.string "In the meantime, want to battle?$" .string "In the meantime, want to battle?$"
SecretBase_Text_Trainer8AcceptBattle: SecretBase_Text_Trainer8AcceptBattle:
.string "This is my SECRET BASE.\n" .string "This is my SECRET BASE.\n"
.string "I can't lose!$" .string "I can't lose!$"
SecretBase_Text_Trainer8DeclineBattle: SecretBase_Text_Trainer8DeclineBattle:
.string "I'll battle with you anytime.$" .string "I'll battle with you anytime.$"
SecretBase_Text_Trainer8Defeated:: SecretBase_Text_Trainer8Defeated::
.string "Huh?\n" .string "Huh?\n"
.string "Did I just lose?$" .string "Did I just lose?$"
SecretBase_Text_Trainer8PostBattle: SecretBase_Text_Trainer8PostBattle:
.string "I won't lose at collecting decorations.\n" .string "I won't lose at collecting decorations.\n"
.string "Come visit again!$" .string "Come visit again!$"
SecretBase_Text_Trainer8PreChampion: SecretBase_Text_Trainer8PreChampion:
.string "People have told me that you can get\n" .string "People have told me that you can get\n"
.string "decorations in several ways.\p" .string "decorations in several ways.\p"
.string "We should have a race to see who can\n" .string "We should have a race to see who can\n"
.string "get nicer decorations and furniture!$" .string "get nicer decorations and furniture!$"
SecretBase_Text_Trainer4Intro: SecretBase_Text_Trainer4Intro:
.string "I found a spot I liked, and I did it up\n" .string "I found a spot I liked, and I did it up\n"
.string "with my favorite decorations.\p" .string "with my favorite decorations.\p"
.string "I raise my favorite POKéMON and grow\n" .string "I raise my favorite POKéMON and grow\n"
.string "stronger with it.\p" .string "stronger with it.\p"
.string "That's what I do.\n" .string "That's what I do.\n"
.string "Want to battle with me?$" .string "Want to battle with me?$"
SecretBase_Text_Trainer4AcceptBattle: SecretBase_Text_Trainer4AcceptBattle:
.string "Show me what you're made of!$" .string "Show me what you're made of!$"
SecretBase_Text_Trainer4DeclineBattle: SecretBase_Text_Trainer4DeclineBattle:
.string "I guess there are times when you're not\n" .string "I guess there are times when you're not\n"
.string "into it.$" .string "into it.$"
SecretBase_Text_Trainer4Defeated:: SecretBase_Text_Trainer4Defeated::
.string "I know exactly what you're made of now.$" .string "I know exactly what you're made of now.$"
SecretBase_Text_Trainer4PostBattle: SecretBase_Text_Trainer4PostBattle:
.string "We can both become stronger.\n" .string "We can both become stronger.\n"
.string "Let's keep at it!$" .string "Let's keep at it!$"
SecretBase_Text_Trainer4PreChampion: SecretBase_Text_Trainer4PreChampion:
.string "I found a spot I liked, and I did it up\n" .string "I found a spot I liked, and I did it up\n"
.string "with my favorite decorations.\p" .string "with my favorite decorations.\p"
.string "I raise my favorite POKéMON and grow\n" .string "I raise my favorite POKéMON and grow\n"
.string "stronger with it.\p" .string "stronger with it.\p"
.string "Every day is a great day.$" .string "Every day is a great day.$"
SecretBase_Text_Trainer9Intro: SecretBase_Text_Trainer9Intro:
.string "You can learn a lot about the taste\n" .string "You can learn a lot about the taste\n"
.string "and sense of people by the kinds of\l" .string "and sense of people by the kinds of\l"
.string "decorations they have, and how they\l" .string "decorations they have, and how they\l"
.string "display them.\p" .string "display them.\p"
.string "What do you think of my taste?\n" .string "What do you think of my taste?\n"
.string "Are you speechless?\p" .string "Are you speechless?\p"
.string "Want to see my taste in battling?$" .string "Want to see my taste in battling?$"
SecretBase_Text_Trainer9AcceptBattle: SecretBase_Text_Trainer9AcceptBattle:
.string "There's no holding back!$" .string "There's no holding back!$"
SecretBase_Text_Trainer9DeclineBattle: SecretBase_Text_Trainer9DeclineBattle:
.string "I'll be happy to demonstrate my style\n" .string "I'll be happy to demonstrate my style\n"
.string "anytime.$" .string "anytime.$"
SecretBase_Text_Trainer9Defeated:: SecretBase_Text_Trainer9Defeated::
.string "You're supremely talented!\n" .string "You're supremely talented!\n"
.string "Your power seems to be limitless…$" .string "Your power seems to be limitless…$"
SecretBase_Text_Trainer9PostBattle: SecretBase_Text_Trainer9PostBattle:
.string "What did you think of my style?\n" .string "What did you think of my style?\n"
.string "I'll keep on polishing it!$" .string "I'll keep on polishing it!$"
SecretBase_Text_Trainer9PreChampion: SecretBase_Text_Trainer9PreChampion:
.string "You can learn a lot about the taste\n" .string "You can learn a lot about the taste\n"
.string "and sense of people by the kinds of\l" .string "and sense of people by the kinds of\l"
.string "decorations they have, and how they\l" .string "decorations they have, and how they\l"
.string "display them.\p" .string "display them.\p"
.string "What do you think of my taste?\n" .string "What do you think of my taste?\n"
.string "Are you speechless?$" .string "Are you speechless?$"
+16 -16
View File
@@ -3,29 +3,29 @@
enum enum
{ {
BG_ATTR_CHARBASEINDEX = 1, BG_ATTR_CHARBASEINDEX = 1,
BG_ATTR_MAPBASEINDEX, BG_ATTR_MAPBASEINDEX,
BG_ATTR_SCREENSIZE, BG_ATTR_SCREENSIZE,
BG_ATTR_PALETTEMODE, BG_ATTR_PALETTEMODE,
BG_ATTR_MOSAIC, BG_ATTR_MOSAIC,
BG_ATTR_WRAPAROUND, BG_ATTR_WRAPAROUND,
BG_ATTR_PRIORITY, BG_ATTR_PRIORITY,
BG_ATTR_METRIC, BG_ATTR_METRIC,
BG_ATTR_TYPE, BG_ATTR_TYPE,
BG_ATTR_BASETILE, BG_ATTR_BASETILE,
}; };
enum { enum {
BG_TYPE_NORMAL, BG_TYPE_NORMAL,
BG_TYPE_AFFINE, BG_TYPE_AFFINE,
BG_TYPE_NONE = 0xFFFF BG_TYPE_NONE = 0xFFFF
}; };
// Modes for ChangeBgX / ChangeBgY // Modes for ChangeBgX / ChangeBgY
enum { enum {
BG_COORD_SET, BG_COORD_SET,
BG_COORD_ADD, BG_COORD_ADD,
BG_COORD_SUB, BG_COORD_SUB,
}; };
// Modes for Unused_AdjustBgMosaic // Modes for Unused_AdjustBgMosaic
+1 -1
View File
@@ -120,7 +120,7 @@ void PrepareBattlerSpriteForRotScale(u8 spriteId, u8 objMode);
void SetBattlerSpriteYOffsetFromRotation(u8 spriteId); void SetBattlerSpriteYOffsetFromRotation(u8 spriteId);
u32 GetBattlePalettesMask(bool8 battleBackground, bool8 attacker, bool8 target, bool8 attackerPartner, bool8 targetPartner, bool8 anim1, bool8 anim2); u32 GetBattlePalettesMask(bool8 battleBackground, bool8 attacker, bool8 target, bool8 attackerPartner, bool8 targetPartner, bool8 anim1, bool8 anim2);
u32 GetBattleMonSpritePalettesMask(u8 playerLeft, u8 playerRight, u8 opponentLeft, u8 opponentRight); u32 GetBattleMonSpritePalettesMask(u8 playerLeft, u8 playerRight, u8 opponentLeft, u8 opponentRight);
u8 AnimDummyReturnArg(u8 battler); u8 GetSpritePalIdxByBattler(u8 battler);
s16 CloneBattlerSpriteWithBlend(u8); s16 CloneBattlerSpriteWithBlend(u8);
void DestroySpriteWithActiveSheet(struct Sprite *); void DestroySpriteWithActiveSheet(struct Sprite *);
u8 CreateInvisibleSpriteCopy(int, u8, int); u8 CreateInvisibleSpriteCopy(int, u8, int);
+2
View File
@@ -1,6 +1,8 @@
#ifndef GUARD_BATTLE_ARENA_H #ifndef GUARD_BATTLE_ARENA_H
#define GUARD_BATTLE_ARENA_H #define GUARD_BATTLE_ARENA_H
#include "constants/battle_arena.h"
void CallBattleArenaFunction(void); void CallBattleArenaFunction(void);
u8 BattleArena_ShowJudgmentWindow(u8 *state); u8 BattleArena_ShowJudgmentWindow(u8 *state);
void BattleArena_InitPoints(void); void BattleArena_InitPoints(void);
+7 -4
View File
@@ -34,16 +34,19 @@ enum
#define TAG_HEALTHBAR_PLAYER2_TILE 0xD706 #define TAG_HEALTHBAR_PLAYER2_TILE 0xD706
#define TAG_HEALTHBAR_OPPONENT2_TILE 0xD707 #define TAG_HEALTHBAR_OPPONENT2_TILE 0xD707
#define TAG_HEALTHBOX_PALS_1 0xD709
#define TAG_HEALTHBOX_PALS_2 0xD70A
#define TAG_HEALTHBOX_SAFARI_TILE 0xD70B #define TAG_HEALTHBOX_SAFARI_TILE 0xD70B
#define TAG_STATUS_SUMMARY_BAR_TILE 0xD70C #define TAG_STATUS_SUMMARY_BAR_TILE 0xD70C
#define TAG_STATUS_SUMMARY_BALLS_TILE 0xD714
#define TAG_HEALTHBOX_PAL 0xD6FF
#define TAG_HEALTHBAR_PAL 0xD704
#define TAG_STATUS_SUMMARY_BAR_PAL 0xD710 #define TAG_STATUS_SUMMARY_BAR_PAL 0xD710
#define TAG_STATUS_SUMMARY_BALLS_PAL 0xD712 #define TAG_STATUS_SUMMARY_BALLS_PAL 0xD712
#define TAG_STATUS_SUMMARY_BALLS_TILE 0xD714
#define TAG_HEALTHBAR_PAL TAG_HEALTHBAR_PLAYER1_TILE
#define TAG_HEALTHBOX_PAL TAG_HEALTHBOX_PLAYER1_TILE
enum enum
{ {
HEALTHBOX_ALL, HEALTHBOX_ALL,
+6
View File
@@ -17,4 +17,10 @@
#define ARENA_CATEGORY_SKILL 1 #define ARENA_CATEGORY_SKILL 1
#define ARENA_CATEGORY_BODY 2 #define ARENA_CATEGORY_BODY 2
#define ARENA_RESULT_RUNNING 0 // For intermediate steps, when BattleArena_ShowJudgmentWindow should be called again immediately
#define ARENA_RESULT_STEP_DONE 1 // A step has been completed, the script may advance to the next instruction
#define ARENA_RESULT_PLAYER_WON 2
#define ARENA_RESULT_PLAYER_LOST 3
#define ARENA_RESULT_TIE 4
#endif //GUARD_CONSTANTS_BATTLE_ARENA_H #endif //GUARD_CONSTANTS_BATTLE_ARENA_H
+2 -2
View File
@@ -232,8 +232,8 @@
#define MOVEMENT_ACTION_WALK_SLOW_DIAGONAL_UP_RIGHT 0x91 #define MOVEMENT_ACTION_WALK_SLOW_DIAGONAL_UP_RIGHT 0x91
#define MOVEMENT_ACTION_WALK_SLOW_DIAGONAL_DOWN_LEFT 0x92 #define MOVEMENT_ACTION_WALK_SLOW_DIAGONAL_DOWN_LEFT 0x92
#define MOVEMENT_ACTION_WALK_SLOW_DIAGONAL_DOWN_RIGHT 0x93 #define MOVEMENT_ACTION_WALK_SLOW_DIAGONAL_DOWN_RIGHT 0x93
#define MOVEMENT_ACTION_STORE_AND_LOCK_ANIM 0x94 #define MOVEMENT_ACTION_LOCK_ANIM 0x94
#define MOVEMENT_ACTION_FREE_AND_UNLOCK_ANIM 0x95 #define MOVEMENT_ACTION_UNLOCK_ANIM 0x95
#define MOVEMENT_ACTION_WALK_LEFT_AFFINE 0x96 #define MOVEMENT_ACTION_WALK_LEFT_AFFINE 0x96
#define MOVEMENT_ACTION_WALK_RIGHT_AFFINE 0x97 #define MOVEMENT_ACTION_WALK_RIGHT_AFFINE 0x97
#define MOVEMENT_ACTION_LEVITATE 0x98 #define MOVEMENT_ACTION_LEVITATE 0x98
+9
View File
@@ -181,6 +181,15 @@
#define FRIENDSHIP_EVENT_FAINT_FIELD_PSN 7 #define FRIENDSHIP_EVENT_FAINT_FIELD_PSN 7
#define FRIENDSHIP_EVENT_FAINT_LARGE 8 // If opponent was >= 30 levels higher. See AdjustFriendshipOnBattleFaint #define FRIENDSHIP_EVENT_FAINT_LARGE 8 // If opponent was >= 30 levels higher. See AdjustFriendshipOnBattleFaint
// Constants for GetLeadMonFriendshipScore
#define FRIENDSHIP_NONE 0
#define FRIENDSHIP_1_TO_49 1
#define FRIENDSHIP_50_TO_99 2
#define FRIENDSHIP_100_TO_149 3
#define FRIENDSHIP_150_TO_199 4
#define FRIENDSHIP_200_TO_254 5
#define FRIENDSHIP_MAX 6
#define MAX_FRIENDSHIP 255 #define MAX_FRIENDSHIP 255
#define MAX_SHEEN 255 #define MAX_SHEEN 255
#define MAX_CONDITION 255 #define MAX_CONDITION 255
+1 -1
View File
@@ -63,7 +63,7 @@ struct PairedPalettes
struct LockedAnimObjectEvents struct LockedAnimObjectEvents
{ {
u8 objectEventIds[OBJECT_EVENTS_COUNT]; u8 localIds[OBJECT_EVENTS_COUNT];
u8 count; u8 count;
}; };
+37 -37
View File
@@ -116,21 +116,21 @@ enum
#define POKENAV_MENU_IDS_START 100000 #define POKENAV_MENU_IDS_START 100000
enum enum
{ {
POKENAV_MAIN_MENU = POKENAV_MENU_IDS_START, // The main menu where the player selects Hoenn Map/Condition/Match Call/Ribbons POKENAV_MAIN_MENU = POKENAV_MENU_IDS_START, // The main menu where the player selects Hoenn Map/Condition/Match Call/Ribbons
POKENAV_MAIN_MENU_CURSOR_ON_MAP, POKENAV_MAIN_MENU_CURSOR_ON_MAP,
POKENAV_CONDITION_MENU, // The first Condition screen where the player selects Party or Search POKENAV_CONDITION_MENU, // The first Condition screen where the player selects Party or Search
POKENAV_CONDITION_SEARCH_MENU, // The Condition search menu where the player selects a search parameter POKENAV_CONDITION_SEARCH_MENU, // The Condition search menu where the player selects a search parameter
POKENAV_MAIN_MENU_CURSOR_ON_MATCH_CALL, POKENAV_MAIN_MENU_CURSOR_ON_MATCH_CALL,
POKENAV_MAIN_MENU_CURSOR_ON_RIBBONS, POKENAV_MAIN_MENU_CURSOR_ON_RIBBONS,
POKENAV_REGION_MAP, POKENAV_REGION_MAP,
POKENAV_CONDITION_GRAPH_PARTY, // The Condition graph screen when Party has been selected POKENAV_CONDITION_GRAPH_PARTY, // The Condition graph screen when Party has been selected
POKENAV_CONDITION_SEARCH_RESULTS, // The list of results from a Condition search POKENAV_CONDITION_SEARCH_RESULTS, // The list of results from a Condition search
POKENAV_CONDITION_GRAPH_SEARCH, // The Condition graph screen when a search result has been selected POKENAV_CONDITION_GRAPH_SEARCH, // The Condition graph screen when a search result has been selected
POKENAV_RETURN_CONDITION_SEARCH, // Exited the graph screen back to the list of Condition search results POKENAV_RETURN_CONDITION_SEARCH, // Exited the graph screen back to the list of Condition search results
POKENAV_MATCH_CALL, POKENAV_MATCH_CALL,
POKENAV_RIBBONS_MON_LIST, // The list of Pokémon with ribbons POKENAV_RIBBONS_MON_LIST, // The list of Pokémon with ribbons
POKENAV_RIBBONS_SUMMARY_SCREEN, // The ribbon summary screen shown when a Pokémon has been selected POKENAV_RIBBONS_SUMMARY_SCREEN, // The ribbon summary screen shown when a Pokémon has been selected
POKENAV_RIBBONS_RETURN_TO_MON_LIST, // Exited the summary screen back to the ribbon list POKENAV_RIBBONS_RETURN_TO_MON_LIST, // Exited the summary screen back to the ribbon list
}; };
enum enum
@@ -185,28 +185,28 @@ enum
enum enum
{ {
MC_HEADER_MR_STONE, MC_HEADER_MR_STONE,
MC_HEADER_PROF_BIRCH, MC_HEADER_PROF_BIRCH,
MC_HEADER_BRENDAN, MC_HEADER_BRENDAN,
MC_HEADER_MAY, MC_HEADER_MAY,
MC_HEADER_WALLY, MC_HEADER_WALLY,
MC_HEADER_NORMAN, MC_HEADER_NORMAN,
MC_HEADER_MOM, MC_HEADER_MOM,
MC_HEADER_STEVEN, MC_HEADER_STEVEN,
MC_HEADER_SCOTT, MC_HEADER_SCOTT,
MC_HEADER_ROXANNE, MC_HEADER_ROXANNE,
MC_HEADER_BRAWLY, MC_HEADER_BRAWLY,
MC_HEADER_WATTSON, MC_HEADER_WATTSON,
MC_HEADER_FLANNERY, MC_HEADER_FLANNERY,
MC_HEADER_WINONA, MC_HEADER_WINONA,
MC_HEADER_TATE_LIZA, MC_HEADER_TATE_LIZA,
MC_HEADER_JUAN, MC_HEADER_JUAN,
MC_HEADER_SIDNEY, MC_HEADER_SIDNEY,
MC_HEADER_PHOEBE, MC_HEADER_PHOEBE,
MC_HEADER_GLACIA, MC_HEADER_GLACIA,
MC_HEADER_DRAKE, MC_HEADER_DRAKE,
MC_HEADER_WALLACE, MC_HEADER_WALLACE,
MC_HEADER_COUNT MC_HEADER_COUNT
}; };
enum enum
-3
View File
@@ -45,9 +45,6 @@ SECTIONS {
/* COMMON starts at 0x30022A8 */ /* COMMON starts at 0x30022A8 */
INCLUDE "sym_common.ld" INCLUDE "sym_common.ld"
src/*.o(COMMON);
gflib/*.o(COMMON);
*libc.a:sbrkr.o(COMMON); *libc.a:sbrkr.o(COMMON);
end = .; end = .;
. = 0x8000; . = 0x8000;
+8 -8
View File
@@ -84,7 +84,7 @@ static void AnimMilkBottle(struct Sprite *);
static void AnimMilkBottle_Step1(struct Sprite *); static void AnimMilkBottle_Step1(struct Sprite *);
static void AnimMilkBottle_Step2(struct Sprite *, int, int); static void AnimMilkBottle_Step2(struct Sprite *, int, int);
static void AnimGrantingStars(struct Sprite *); static void AnimGrantingStars(struct Sprite *);
static void AnimSparkingStars(struct Sprite *); static void AnimSparklingStars(struct Sprite *);
static void AnimBubbleBurst(struct Sprite *); static void AnimBubbleBurst(struct Sprite *);
static void AnimBubbleBurst_Step(struct Sprite *); static void AnimBubbleBurst_Step(struct Sprite *);
static void AnimSleepLetterZ(struct Sprite *); static void AnimSleepLetterZ(struct Sprite *);
@@ -1416,7 +1416,7 @@ const struct SpriteTemplate gSparklingStarsSpriteTemplate =
.anims = gGrantingStarsAnimTable, .anims = gGrantingStarsAnimTable,
.images = NULL, .images = NULL,
.affineAnims = gDummySpriteAffineAnimTable, .affineAnims = gDummySpriteAffineAnimTable,
.callback = AnimSparkingStars, .callback = AnimSparklingStars,
}; };
static const union AnimCmd sAnim_BubbleBurst[] = static const union AnimCmd sAnim_BubbleBurst[] =
@@ -3184,14 +3184,14 @@ static void AnimItemSteal_Step3(struct Sprite *sprite)
sprite->y2 = Sin(sprite->data[0] + 0x80, 30 - sprite->data[1] * 8); sprite->y2 = Sin(sprite->data[0] + 0x80, 30 - sprite->data[1] * 8);
if (sprite->y2 == 0) if (sprite->y2 == 0)
PlaySE12WithPanning(SE_M_BUBBLE2, BattleAnimAdjustPanning(63)); PlaySE12WithPanning(SE_M_BUBBLE2, BattleAnimAdjustPanning(SOUND_PAN_TARGET));
if (moveAlongLinearPath(sprite)) if (moveAlongLinearPath(sprite))
{ {
sprite->y2 = 0; sprite->y2 = 0;
sprite->data[0] = 0; sprite->data[0] = 0;
sprite->callback = AnimItemSteal_Step2; sprite->callback = AnimItemSteal_Step2;
PlaySE12WithPanning(SE_M_BUBBLE2, BattleAnimAdjustPanning(-64)); PlaySE12WithPanning(SE_M_BUBBLE2, BattleAnimAdjustPanning(SOUND_PAN_ATTACKER));
} }
} }
@@ -4137,7 +4137,7 @@ static void AnimGrantingStars(struct Sprite *sprite)
sprite->callback = TranslateSpriteLinearFixedPoint; sprite->callback = TranslateSpriteLinearFixedPoint;
} }
static void AnimSparkingStars(struct Sprite *sprite) static void AnimSparklingStars(struct Sprite *sprite)
{ {
u8 battler; u8 battler;
if (!gBattleAnimArgs[2]) if (!gBattleAnimArgs[2])
@@ -4264,7 +4264,7 @@ static void AnimLockOnTarget_Step1(struct Sprite *sprite)
sprite->callback = StartAnimLinearTranslation; sprite->callback = StartAnimLinearTranslation;
StoreSpriteCallbackInData6(sprite, AnimLockOnTarget_Step2); StoreSpriteCallbackInData6(sprite, AnimLockOnTarget_Step2);
sprite->data[5] += 0x100; sprite->data[5] += 0x100;
PlaySE12WithPanning(SE_M_LOCK_ON, BattleAnimAdjustPanning(63)); PlaySE12WithPanning(SE_M_LOCK_ON, BattleAnimAdjustPanning(SOUND_PAN_TARGET));
break; break;
} }
@@ -4350,7 +4350,7 @@ static void AnimLockOnTarget_Step4(struct Sprite *sprite)
sprite->data[2]++; sprite->data[2]++;
pal = sprite->oam.paletteNum; pal = sprite->oam.paletteNum;
LoadPalette(&gPlttBufferUnfaded[0x108 + pal * 16], pal * 16 | 0x101, 4); LoadPalette(&gPlttBufferUnfaded[0x108 + pal * 16], pal * 16 | 0x101, 4);
PlaySE12WithPanning(SE_M_LEER, BattleAnimAdjustPanning(63)); PlaySE12WithPanning(SE_M_LEER, BattleAnimAdjustPanning(SOUND_PAN_TARGET));
} }
else if (sprite->data[1] == 0) else if (sprite->data[1] == 0)
{ {
@@ -4812,7 +4812,7 @@ static void AnimSharpenSphere(struct Sprite *sprite)
sprite->data[2] = 0; sprite->data[2] = 0;
sprite->data[3] = 0; sprite->data[3] = 0;
sprite->data[4] = 0; sprite->data[4] = 0;
sprite->data[5] = BattleAnimAdjustPanning(-64); sprite->data[5] = BattleAnimAdjustPanning(SOUND_PAN_ATTACKER);
sprite->callback = AnimSharpenSphere_Step; sprite->callback = AnimSharpenSphere_Step;
} }
+5 -8
View File
@@ -1642,7 +1642,7 @@ static void AirCutterProjectileStep1(u8 taskId)
gTasks[taskId].data[gTasks[taskId].data[1] + 13] = spriteId; gTasks[taskId].data[gTasks[taskId].data[1] + 13] = spriteId;
gTasks[taskId].data[0] = gTasks[taskId].data[3]; gTasks[taskId].data[0] = gTasks[taskId].data[3];
gTasks[taskId].data[1]++; gTasks[taskId].data[1]++;
PlaySE12WithPanning(SE_M_BLIZZARD2, BattleAnimAdjustPanning(-63)); PlaySE12WithPanning(SE_M_BLIZZARD2, BattleAnimAdjustPanning(SOUND_PAN_ATTACKER + 1));
if (gTasks[taskId].data[1] > 2) if (gTasks[taskId].data[1] > 2)
gTasks[taskId].func = AirCutterProjectileStep2; gTasks[taskId].func = AirCutterProjectileStep2;
} }
@@ -1839,7 +1839,7 @@ static void AnimBulletSeed_Step1(struct Sprite *sprite)
int i; int i;
u16 rand; u16 rand;
s16 *ptr; s16 *ptr;
PlaySE12WithPanning(SE_M_HORN_ATTACK, BattleAnimAdjustPanning(63)); PlaySE12WithPanning(SE_M_HORN_ATTACK, BattleAnimAdjustPanning(SOUND_PAN_TARGET));
sprite->x += sprite->x2; sprite->x += sprite->x2;
sprite->y += sprite->y2; sprite->y += sprite->y2;
sprite->y2 = 0; sprite->y2 = 0;
@@ -2485,7 +2485,7 @@ static void AnimPencil(struct Sprite *sprite)
sprite->data[3] = 16; sprite->data[3] = 16;
sprite->data[4] = 0; sprite->data[4] = 0;
sprite->data[5] = GetBattlerSpriteCoordAttr(gBattleAnimTarget, BATTLER_COORD_ATTR_HEIGHT) + 2; sprite->data[5] = GetBattlerSpriteCoordAttr(gBattleAnimTarget, BATTLER_COORD_ATTR_HEIGHT) + 2;
sprite->data[6] = BattleAnimAdjustPanning(63); sprite->data[6] = BattleAnimAdjustPanning(SOUND_PAN_TARGET);
sprite->callback = AnimPencil_Step; sprite->callback = AnimPencil_Step;
} }
@@ -3043,9 +3043,7 @@ void AnimTask_FreeMusicNotesPals(u8 taskId)
static void SetMusicNotePalette(struct Sprite *sprite, u8 a, u8 b) static void SetMusicNotePalette(struct Sprite *sprite, u8 a, u8 b)
{ {
u8 tile; u8 tile = (b & 1) ? 32 : 0;
tile = (b & 1);
tile = ((-tile | tile) >> 31) & 32;
sprite->oam.tileNum += tile + (a << 2); sprite->oam.tileNum += tile + (a << 2);
sprite->oam.paletteNum = IndexOfSpritePaletteTag(sMusicNotePaletteTagsTable[b >> 1]); sprite->oam.paletteNum = IndexOfSpritePaletteTag(sMusicNotePaletteTagsTable[b >> 1]);
} }
@@ -3792,8 +3790,7 @@ static void AnimPerishSongMusicNote_Step2(struct Sprite *sprite)
if (sprite->data[4] > 3) if (sprite->data[4] > 3)
{ {
int var1 = sprite->data[2]; sprite->invisible = sprite->data[2] % 2;
sprite->invisible = var1 - (((s32)(var1 + ((u32)var1 >> 31)) >> 1) << 1);
DestroyAnimSprite(sprite); DestroyAnimSprite(sprite);
} }
+17 -17
View File
@@ -1646,7 +1646,7 @@ static void AnimClappingHand_Step(struct Sprite *sprite)
sprite->data[2]++; sprite->data[2]++;
if (sprite->data[3] == 0) if (sprite->data[3] == 0)
{ {
PlaySE1WithPanning(SE_M_ENCORE, BattleAnimAdjustPanning(-64)); PlaySE1WithPanning(SE_M_ENCORE, BattleAnimAdjustPanning(SOUND_PAN_ATTACKER));
} }
} }
} }
@@ -1930,7 +1930,7 @@ static void TormentAttacker_Step(u8 taskId)
y = task->data[3] + task->data[5]; y = task->data[3] + task->data[5];
spriteId = CreateSprite(&gThoughtBubbleSpriteTemplate, x, y, 6 - task->data[1]); spriteId = CreateSprite(&gThoughtBubbleSpriteTemplate, x, y, 6 - task->data[1]);
PlaySE12WithPanning(SE_M_METRONOME, BattleAnimAdjustPanning(-64)); PlaySE12WithPanning(SE_M_METRONOME, BattleAnimAdjustPanning(SOUND_PAN_ATTACKER));
if (spriteId != MAX_SPRITES) if (spriteId != MAX_SPRITES)
{ {
@@ -2107,7 +2107,7 @@ static void AnimWishStar(struct Sprite *sprite)
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
sprite->x = -16; sprite->x = -16;
else else
sprite->x = 256; sprite->x = DISPLAY_WIDTH + 16;
sprite->y = 0; sprite->y = 0;
sprite->callback = AnimWishStar_Step; sprite->callback = AnimWishStar_Step;
@@ -2136,7 +2136,7 @@ static void AnimWishStar_Step(struct Sprite *sprite)
} }
newX = sprite->x + sprite->x2 + 32; newX = sprite->x + sprite->x2 + 32;
if (newX > 304) if (newX > DISPLAY_WIDTH + 64)
DestroyAnimSprite(sprite); DestroyAnimSprite(sprite);
} }
@@ -2411,7 +2411,7 @@ void AnimTask_MorningSunLightBeam(u8 taskId)
gTasks[taskId].data[11] = gBattle_BG1_Y; gTasks[taskId].data[11] = gBattle_BG1_Y;
gTasks[taskId].data[0]++; gTasks[taskId].data[0]++;
PlaySE12WithPanning(SE_M_MORNING_SUN, BattleAnimAdjustPanning(-64)); PlaySE12WithPanning(SE_M_MORNING_SUN, BattleAnimAdjustPanning(SOUND_PAN_ATTACKER));
break; break;
case 1: case 1:
if (gTasks[taskId].data[4]++ > 0) if (gTasks[taskId].data[4]++ > 0)
@@ -2446,7 +2446,7 @@ void AnimTask_MorningSunLightBeam(u8 taskId)
{ {
gTasks[taskId].data[3] = 0; gTasks[taskId].data[3] = 0;
gTasks[taskId].data[0] = 1; gTasks[taskId].data[0] = 1;
PlaySE12WithPanning(SE_M_MORNING_SUN, BattleAnimAdjustPanning(-64)); PlaySE12WithPanning(SE_M_MORNING_SUN, BattleAnimAdjustPanning(SOUND_PAN_ATTACKER));
} }
break; break;
case 4: case 4:
@@ -3183,7 +3183,7 @@ static void AnimReversalOrb_Step(struct Sprite *sprite)
// Copies the target mon's sprite, and makes a white silhouette that shrinks away. // Copies the target mon's sprite, and makes a white silhouette that shrinks away.
void AnimTask_RolePlaySilhouette(u8 taskId) void AnimTask_RolePlaySilhouette(u8 taskId)
{ {
u8 isBackPic; bool8 isBackPic;
u32 personality; u32 personality;
u32 otId; u32 otId;
u16 species; u16 species;
@@ -3206,7 +3206,7 @@ void AnimTask_RolePlaySilhouette(u8 taskId)
{ {
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
{ {
isBackPic = 0; isBackPic = FALSE;
personality = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimTarget]], MON_DATA_PERSONALITY); personality = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimTarget]], MON_DATA_PERSONALITY);
otId = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimTarget]], MON_DATA_OT_ID); otId = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimTarget]], MON_DATA_OT_ID);
if (gBattleSpritesDataPtr->battlerData[gBattleAnimTarget].transformSpecies == SPECIES_NONE) if (gBattleSpritesDataPtr->battlerData[gBattleAnimTarget].transformSpecies == SPECIES_NONE)
@@ -3226,7 +3226,7 @@ void AnimTask_RolePlaySilhouette(u8 taskId)
} }
else else
{ {
isBackPic = 1; isBackPic = TRUE;
personality = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleAnimTarget]], MON_DATA_PERSONALITY); personality = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleAnimTarget]], MON_DATA_PERSONALITY);
otId = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleAnimTarget]], MON_DATA_OT_ID); otId = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleAnimTarget]], MON_DATA_OT_ID);
if (gBattleSpritesDataPtr->battlerData[gBattleAnimTarget].transformSpecies == SPECIES_NONE) if (gBattleSpritesDataPtr->battlerData[gBattleAnimTarget].transformSpecies == SPECIES_NONE)
@@ -4845,7 +4845,7 @@ static void AnimTask_MonToSubstituteDoll(u8 taskId)
if (gSprites[spriteId].y2 == 0) if (gSprites[spriteId].y2 == 0)
{ {
PlaySE12WithPanning(SE_M_BUBBLE2, BattleAnimAdjustPanning(-64)); PlaySE12WithPanning(SE_M_BUBBLE2, BattleAnimAdjustPanning(SOUND_PAN_ATTACKER));
gTasks[taskId].data[10] -= 0x800; gTasks[taskId].data[10] -= 0x800;
gTasks[taskId].data[0]++; gTasks[taskId].data[0]++;
} }
@@ -4867,7 +4867,7 @@ static void AnimTask_MonToSubstituteDoll(u8 taskId)
if (gSprites[spriteId].y2 == 0) if (gSprites[spriteId].y2 == 0)
{ {
PlaySE12WithPanning(SE_M_BUBBLE2, BattleAnimAdjustPanning(-64)); PlaySE12WithPanning(SE_M_BUBBLE2, BattleAnimAdjustPanning(SOUND_PAN_ATTACKER));
DestroyAnimVisualTask(taskId); DestroyAnimVisualTask(taskId);
} }
break; break;
@@ -4904,7 +4904,7 @@ static void AnimBlockX_Step(struct Sprite *sprite)
sprite->y2 += 10; sprite->y2 += 10;
if (sprite->y2 >= 0) if (sprite->y2 >= 0)
{ {
PlaySE12WithPanning(SE_M_SKETCH, BattleAnimAdjustPanning(63)); PlaySE12WithPanning(SE_M_SKETCH, BattleAnimAdjustPanning(SOUND_PAN_TARGET));
sprite->y2 = 0; sprite->y2 = 0;
sprite->data[0]++; sprite->data[0]++;
} }
@@ -4914,7 +4914,7 @@ static void AnimBlockX_Step(struct Sprite *sprite)
sprite->y2 = -(gSineTable[sprite->data[1]] >> 3); sprite->y2 = -(gSineTable[sprite->data[1]] >> 3);
if (sprite->data[1] > 0x7F) if (sprite->data[1] > 0x7F)
{ {
PlaySE12WithPanning(SE_M_SKETCH, BattleAnimAdjustPanning(63)); PlaySE12WithPanning(SE_M_SKETCH, BattleAnimAdjustPanning(SOUND_PAN_TARGET));
sprite->data[1] = 0; sprite->data[1] = 0;
sprite->y2 = 0; sprite->y2 = 0;
sprite->data[0]++; sprite->data[0]++;
@@ -4933,7 +4933,7 @@ static void AnimBlockX_Step(struct Sprite *sprite)
case 3: case 3:
if (++sprite->data[1] > 8) if (++sprite->data[1] > 8)
{ {
PlaySE12WithPanning(SE_M_LEER, BattleAnimAdjustPanning(63)); PlaySE12WithPanning(SE_M_LEER, BattleAnimAdjustPanning(SOUND_PAN_TARGET));
sprite->data[1] = 0; sprite->data[1] = 0;
sprite->data[0]++; sprite->data[0]++;
} }
@@ -5097,7 +5097,7 @@ void AnimTask_SnatchOpposingMonMove(u8 taskId)
gTasks[taskId].data[1] &= 0xFF; gTasks[taskId].data[1] &= 0xFF;
x = gSprites[spriteId].x + gSprites[spriteId].x2; x = gSprites[spriteId].x + gSprites[spriteId].x2;
if ((u16)(x + 32) > 304) if (x < -32 || x > DISPLAY_WIDTH + 32)
{ {
gTasks[taskId].data[1] = 0; gTasks[taskId].data[1] = 0;
gTasks[taskId].data[0]++; gTasks[taskId].data[0]++;
@@ -5180,7 +5180,7 @@ void AnimTask_SnatchOpposingMonMove(u8 taskId)
} }
} }
if ((u16)(x + 32) > 304) if (x < -32 || x > DISPLAY_WIDTH + 32)
{ {
gTasks[taskId].data[1] = 0; gTasks[taskId].data[1] = 0;
gTasks[taskId].data[0]++; gTasks[taskId].data[0]++;
@@ -5227,7 +5227,7 @@ static void AnimUnusedItemBagSteal(struct Sprite *sprite)
case 0: case 0:
if (gBattleAnimArgs[7] == -1) if (gBattleAnimArgs[7] == -1)
{ {
PlaySE12WithPanning(SE_M_VITAL_THROW, BattleAnimAdjustPanning(63)); PlaySE12WithPanning(SE_M_VITAL_THROW, BattleAnimAdjustPanning(SOUND_PAN_TARGET));
sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y) + 16; sprite->y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y) + 16;
sprite->data[0] = -32; sprite->data[0] = -32;
sprite->data[7]++; sprite->data[7]++;
+2 -2
View File
@@ -583,7 +583,7 @@ static void AnimZapCannonSpark(struct Sprite *sprite)
sprite->data[7] = gBattleAnimArgs[4]; sprite->data[7] = gBattleAnimArgs[4];
sprite->oam.tileNum += gBattleAnimArgs[6] * 4; sprite->oam.tileNum += gBattleAnimArgs[6] * 4;
sprite->callback = AnimZapCannonSpark_Step; sprite->callback = AnimZapCannonSpark_Step;
AnimZapCannonSpark_Step(sprite); sprite->callback(sprite);
} }
static void AnimZapCannonSpark_Step(struct Sprite *sprite) static void AnimZapCannonSpark_Step(struct Sprite *sprite)
@@ -1159,7 +1159,7 @@ void AnimTask_ShockWaveProgressingBolt(u8 taskId)
task->data[4] = 7; task->data[4] = 7;
task->data[5] = -1; task->data[5] = -1;
task->data[11] = 12; task->data[11] = 12;
task->data[12] = BattleAnimAdjustPanning(task->data[11] - 76); task->data[12] = BattleAnimAdjustPanning(SOUND_PAN_ATTACKER);
task->data[13] = BattleAnimAdjustPanning(SOUND_PAN_TARGET); task->data[13] = BattleAnimAdjustPanning(SOUND_PAN_TARGET);
task->data[14] = task->data[12]; task->data[14] = task->data[12];
task->data[15] = (task->data[13] - task->data[12]) / 3; task->data[15] = (task->data[13] - task->data[12]) / 3;
+2 -2
View File
@@ -500,7 +500,7 @@ static void AnimFistOrFootRandomPos(struct Sprite *sprite)
sprite->data[0] = gBattleAnimArgs[1]; sprite->data[0] = gBattleAnimArgs[1];
sprite->data[7] = CreateSprite(&gBasicHitSplatSpriteTemplate, sprite->x, sprite->y, sprite->subpriority + 1); sprite->data[7] = CreateSprite(&gBasicHitSplatSpriteTemplate, sprite->x, sprite->y, sprite->subpriority + 1);
if (sprite->data[7] != 64) if (sprite->data[7] != MAX_SPRITES)
{ {
StartSpriteAffineAnim(&gSprites[sprite->data[7]], 0); StartSpriteAffineAnim(&gSprites[sprite->data[7]], 0);
gSprites[sprite->data[7]].callback = SpriteCallbackDummy; gSprites[sprite->data[7]].callback = SpriteCallbackDummy;
@@ -513,7 +513,7 @@ static void AnimFistOrFootRandomPos_Step(struct Sprite *sprite)
{ {
if (sprite->data[0] == 0) if (sprite->data[0] == 0)
{ {
if (sprite->data[7] != 64) if (sprite->data[7] != MAX_SPRITES)
{ {
FreeOamMatrix(gSprites[sprite->data[7]].oam.matrixNum); FreeOamMatrix(gSprites[sprite->data[7]].oam.matrixNum);
DestroySprite(&gSprites[sprite->data[7]]); DestroySprite(&gSprites[sprite->data[7]]);
+2 -2
View File
@@ -1227,8 +1227,8 @@ void AnimTask_MoveHeatWaveTargets(u8 taskId)
{ {
struct Task *task = &gTasks[taskId]; struct Task *task = &gTasks[taskId];
task->data[12] = !GetBattlerSide(gBattleAnimAttacker) ? 1 : -1; task->data[12] = GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER ? 1 : -1;
task->data[13] = IsBattlerSpriteVisible(gBattleAnimTarget ^ 2) + 1; task->data[13] = IsBattlerSpriteVisible(gBattleAnimTarget ^ BIT_FLANK) + 1;
task->data[14] = GetAnimBattlerSpriteId(ANIM_TARGET); task->data[14] = GetAnimBattlerSpriteId(ANIM_TARGET);
task->data[15] = GetAnimBattlerSpriteId(ANIM_DEF_PARTNER); task->data[15] = GetAnimBattlerSpriteId(ANIM_DEF_PARTNER);
+4 -4
View File
@@ -528,8 +528,8 @@ static void AnimFlyBallAttack_Step(struct Sprite *sprite)
} }
if (sprite->x + sprite->x2 < -32 if (sprite->x + sprite->x2 < -32
|| sprite->x + sprite->x2 > DISPLAY_WIDTH + 32 || sprite->x + sprite->x2 > DISPLAY_WIDTH + 32
|| sprite->y + sprite->y2 > DISPLAY_HEIGHT) || sprite->y + sprite->y2 > DISPLAY_HEIGHT)
{ {
gSprites[GetAnimBattlerSpriteId(ANIM_ATTACKER)].invisible = FALSE; gSprites[GetAnimBattlerSpriteId(ANIM_ATTACKER)].invisible = FALSE;
DestroyAnimSprite(sprite); DestroyAnimSprite(sprite);
@@ -1215,8 +1215,8 @@ void AnimSkyAttackBird_Step(struct Sprite *sprite)
sprite->x = sprite->data[4] >> 4; sprite->x = sprite->data[4] >> 4;
sprite->y = sprite->data[5] >> 4; sprite->y = sprite->data[5] >> 4;
if (sprite->x > 285 || sprite->x < -45 if (sprite->x > DISPLAY_WIDTH + 45 || sprite->x < -45
|| sprite->y > 157 || sprite->y < -45) || sprite->y > 157 || sprite->y < -45)
DestroySpriteAndMatrix(sprite); DestroySpriteAndMatrix(sprite);
} }
+18 -14
View File
@@ -45,7 +45,7 @@ static void AnimThrowIceBall(struct Sprite *);
static void InitIceBallParticle(struct Sprite *); static void InitIceBallParticle(struct Sprite *);
static void AnimIceBallParticle(struct Sprite *); static void AnimIceBallParticle(struct Sprite *);
static void AnimTask_HazeScrollingFog_Step(u8); static void AnimTask_HazeScrollingFog_Step(u8);
static void AnimTask_LoadMistTiles_Step(u8); static void AnimTask_MistBallFog_Step(u8);
static void AnimTask_Hail2(u8); static void AnimTask_Hail2(u8);
static bool8 GenerateHailParticle(u8 hailStructId, u8 affineAnimNum, u8 taskId, u8 c); static bool8 GenerateHailParticle(u8 hailStructId, u8 affineAnimNum, u8 taskId, u8 c);
@@ -353,7 +353,7 @@ const struct SpriteTemplate gMistBallSpriteTemplate =
.callback = AnimThrowMistBall, .callback = AnimThrowMistBall,
}; };
static const u8 wMistBlendAmounts[] = static const u8 sMistBlendAmounts[] =
{ {
0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 5, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 5,
}; };
@@ -696,7 +696,8 @@ static void AnimSwirlingSnowball(struct Sprite *sprite)
sprite->data[0] = 1; sprite->data[0] = 1;
AnimFastTranslateLinear(sprite); AnimFastTranslateLinear(sprite);
if ((u32)(sprite->x + sprite->x2 + 16) > DISPLAY_WIDTH + 32 if (sprite->x + sprite->x2 > DISPLAY_WIDTH + 16
|| sprite->x + sprite->x2 < -16
|| sprite->y + sprite->y2 > DISPLAY_HEIGHT || sprite->y + sprite->y2 > DISPLAY_HEIGHT
|| sprite->y + sprite->y2 < -16) || sprite->y + sprite->y2 < -16)
break; break;
@@ -762,7 +763,8 @@ static void AnimSwirlingSnowball_End(struct Sprite *sprite)
sprite->data[0] = 1; sprite->data[0] = 1;
AnimFastTranslateLinear(sprite); AnimFastTranslateLinear(sprite);
if ((u32)(sprite->x + sprite->x2 + 16) > DISPLAY_WIDTH + 32 if (sprite->x + sprite->x2 > 256
|| sprite->x + sprite->x2 < -16
|| sprite->y + sprite->y2 > 256 || sprite->y + sprite->y2 > 256
|| sprite->y + sprite->y2 < -16) || sprite->y + sprite->y2 < -16)
DestroyAnimSprite(sprite); DestroyAnimSprite(sprite);
@@ -816,7 +818,8 @@ static void AnimMoveParticleBeyondTarget(struct Sprite *sprite)
{ {
sprite->data[0] = 1; sprite->data[0] = 1;
AnimFastTranslateLinear(sprite); AnimFastTranslateLinear(sprite);
if ((u32)(sprite->x + sprite->x2 + 16) > DISPLAY_WIDTH + 32 if (sprite->x + sprite->x2 > DISPLAY_WIDTH + 16
|| sprite->x + sprite->x2 < -16
|| sprite->y + sprite->y2 > DISPLAY_HEIGHT || sprite->y + sprite->y2 > DISPLAY_HEIGHT
|| sprite->y + sprite->y2 < -16) || sprite->y + sprite->y2 < -16)
break; break;
@@ -846,7 +849,8 @@ static void AnimWiggleParticleTowardsTarget(struct Sprite *sprite)
sprite->data[7] = (sprite->data[7] + sprite->data[6]) & 0xFF; sprite->data[7] = (sprite->data[7] + sprite->data[6]) & 0xFF;
if (sprite->data[0] == 1) if (sprite->data[0] == 1)
{ {
if ((u32)(sprite->x + sprite->x2 + 16) > DISPLAY_WIDTH + 32 if (sprite->x + sprite->x2 > DISPLAY_WIDTH + 16
|| sprite->x + sprite->x2 < -16
|| sprite->y + sprite->y2 > DISPLAY_HEIGHT || sprite->y + sprite->y2 > DISPLAY_HEIGHT
|| sprite->y + sprite->y2 < -16) || sprite->y + sprite->y2 < -16)
DestroyAnimSprite(sprite); DestroyAnimSprite(sprite);
@@ -1086,7 +1090,7 @@ static void AnimThrowMistBall(struct Sprite *sprite)
} }
// Displays misty background in Mist Ball. // Displays misty background in Mist Ball.
void AnimTask_LoadMistTiles(u8 taskId) void AnimTask_MistBallFog(u8 taskId)
{ {
struct BattleAnimBgData animBg; struct BattleAnimBgData animBg;
@@ -1109,10 +1113,10 @@ void AnimTask_LoadMistTiles(u8 taskId)
LoadPalette(&gFogPalette, animBg.paletteId * 16, 32); LoadPalette(&gFogPalette, animBg.paletteId * 16, 32);
gTasks[taskId].data[15] = -1; gTasks[taskId].data[15] = -1;
gTasks[taskId].func = AnimTask_LoadMistTiles_Step; gTasks[taskId].func = AnimTask_MistBallFog_Step;
} }
static void AnimTask_LoadMistTiles_Step(u8 taskId) static void AnimTask_MistBallFog_Step(u8 taskId)
{ {
struct BattleAnimBgData animBg; struct BattleAnimBgData animBg;
@@ -1123,7 +1127,7 @@ static void AnimTask_LoadMistTiles_Step(u8 taskId)
{ {
case 0: case 0:
gTasks[taskId].data[9] += 1; gTasks[taskId].data[9] += 1;
gTasks[taskId].data[11] = wMistBlendAmounts[gTasks[taskId].data[9]]; gTasks[taskId].data[11] = sMistBlendAmounts[gTasks[taskId].data[9]];
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[11], 17 - gTasks[taskId].data[11])); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(gTasks[taskId].data[11], 17 - gTasks[taskId].data[11]));
if (gTasks[taskId].data[11] == 5) if (gTasks[taskId].data[11] == 5)
{ {
@@ -1410,14 +1414,14 @@ static bool8 GenerateHailParticle(u8 hailStructId, u8 affineAnimNum, u8 taskId,
} }
else else
{ {
battlerX = (sHailCoordData[hailStructId].x); battlerX = sHailCoordData[hailStructId].x;
battlerY = (sHailCoordData[hailStructId].y); battlerY = sHailCoordData[hailStructId].y;
} }
} }
else else
{ {
battlerX = (sHailCoordData[hailStructId].x); battlerX = sHailCoordData[hailStructId].x;
battlerY = (sHailCoordData[hailStructId].y); battlerY = sHailCoordData[hailStructId].y;
} }
spriteX = battlerX - ((battlerY + 8) / 2); spriteX = battlerX - ((battlerY + 8) / 2);
id = CreateSprite(&gHailParticleSpriteTemplate, spriteX, -8, 18); id = CreateSprite(&gHailParticleSpriteTemplate, spriteX, -8, 18);
+13 -24
View File
@@ -5,7 +5,6 @@
#include "task.h" #include "task.h"
#include "trig.h" #include "trig.h"
// This file's functions.
static void AnimTask_ShakeMon_Step(u8 taskId); static void AnimTask_ShakeMon_Step(u8 taskId);
static void AnimTask_ShakeMon2_Step(u8 taskId); static void AnimTask_ShakeMon2_Step(u8 taskId);
static void AnimTask_ShakeMonInPlace_Step(u8 taskId); static void AnimTask_ShakeMonInPlace_Step(u8 taskId);
@@ -108,7 +107,7 @@ void AnimTask_ShakeMon(u8 taskId)
gTasks[taskId].data[4] = gBattleAnimArgs[1]; gTasks[taskId].data[4] = gBattleAnimArgs[1];
gTasks[taskId].data[5] = gBattleAnimArgs[2]; gTasks[taskId].data[5] = gBattleAnimArgs[2];
gTasks[taskId].func = AnimTask_ShakeMon_Step; gTasks[taskId].func = AnimTask_ShakeMon_Step;
AnimTask_ShakeMon_Step(taskId); gTasks[taskId].func(taskId);
} }
static void AnimTask_ShakeMon_Step(u8 taskId) static void AnimTask_ShakeMon_Step(u8 taskId)
@@ -156,17 +155,14 @@ static void AnimTask_ShakeMon_Step(u8 taskId)
void AnimTask_ShakeMon2(u8 taskId) void AnimTask_ShakeMon2(u8 taskId)
{ {
u8 spriteId; u8 spriteId;
bool8 destroy = FALSE; bool8 abort = FALSE;
u8 battlerId; u8 battlerId;
if (gBattleAnimArgs[0] < MAX_BATTLERS_COUNT) if (gBattleAnimArgs[0] < MAX_BATTLERS_COUNT)
{ {
spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]);
if (spriteId == SPRITE_NONE) if (spriteId == SPRITE_NONE)
{ abort = TRUE;
DestroyAnimVisualTask(taskId);
return;
}
} }
else if (gBattleAnimArgs[0] != 8) else if (gBattleAnimArgs[0] != 8)
{ {
@@ -188,7 +184,7 @@ void AnimTask_ShakeMon2(u8 taskId)
} }
if (IsBattlerSpriteVisible(battlerId) == FALSE) if (IsBattlerSpriteVisible(battlerId) == FALSE)
destroy = TRUE; abort = TRUE;
spriteId = gBattlerSpriteIds[battlerId]; spriteId = gBattlerSpriteIds[battlerId];
} }
@@ -197,7 +193,7 @@ void AnimTask_ShakeMon2(u8 taskId)
spriteId = gBattlerSpriteIds[gBattleAnimAttacker]; spriteId = gBattlerSpriteIds[gBattleAnimAttacker];
} }
if (destroy) if (abort)
{ {
DestroyAnimVisualTask(taskId); DestroyAnimVisualTask(taskId);
return; return;
@@ -332,10 +328,8 @@ void AnimTask_ShakeAndSinkMon(u8 taskId)
static void AnimTask_ShakeAndSinkMon_Step(u8 taskId) static void AnimTask_ShakeAndSinkMon_Step(u8 taskId)
{ {
s16 x; u8 spriteId = gTasks[taskId].data[0];
u8 spriteId; s16 x = gTasks[taskId].data[1];
spriteId = gTasks[taskId].data[0];
x = gTasks[taskId].data[1];
if (gTasks[taskId].data[2] == gTasks[taskId].data[8]++) if (gTasks[taskId].data[2] == gTasks[taskId].data[8]++)
{ {
gTasks[taskId].data[8] = 0; gTasks[taskId].data[8] = 0;
@@ -365,11 +359,8 @@ static void AnimTask_ShakeAndSinkMon_Step(u8 taskId)
void AnimTask_TranslateMonElliptical(u8 taskId) void AnimTask_TranslateMonElliptical(u8 taskId)
{ {
u8 i; u8 i;
u8 spriteId; u8 wavePeriod = 1;
u8 wavePeriod; u8 spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]);
wavePeriod = 1;
spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]);
if (gBattleAnimArgs[4] > 5) if (gBattleAnimArgs[4] > 5)
gBattleAnimArgs[4] = 5; gBattleAnimArgs[4] = 5;
@@ -742,7 +733,7 @@ static void AnimTask_SlideOffScreen_Step(u8 taskId)
{ {
u8 spriteId = gTasks[taskId].data[0]; u8 spriteId = gTasks[taskId].data[0];
gSprites[spriteId].x2 += gTasks[taskId].data[1]; gSprites[spriteId].x2 += gTasks[taskId].data[1];
if (gSprites[spriteId].x2 + gSprites[spriteId].x + 0x20 > 0x130u) if (gSprites[spriteId].x2 + gSprites[spriteId].x < -32 || gSprites[spriteId].x2 + gSprites[spriteId].x > DISPLAY_WIDTH + 32)
{ {
DestroyAnimVisualTask(taskId); DestroyAnimVisualTask(taskId);
return; return;
@@ -831,8 +822,7 @@ static void AnimTask_SwayMonStep(u8 taskId)
// arg 4: sprite object mode // arg 4: sprite object mode
void AnimTask_ScaleMonAndRestore(u8 taskId) void AnimTask_ScaleMonAndRestore(u8 taskId)
{ {
u8 spriteId; u8 spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[3]);
spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[3]);
PrepareBattlerSpriteForRotScale(spriteId, gBattleAnimArgs[4]); PrepareBattlerSpriteForRotScale(spriteId, gBattleAnimArgs[4]);
gTasks[taskId].data[0] = gBattleAnimArgs[0]; gTasks[taskId].data[0] = gBattleAnimArgs[0];
gTasks[taskId].data[1] = gBattleAnimArgs[1]; gTasks[taskId].data[1] = gBattleAnimArgs[1];
@@ -893,7 +883,7 @@ void AnimTask_RotateMonSpriteToSide(u8 taskId)
} }
else else
{ {
if (gBattleAnimArgs[2] == 0) if (gBattleAnimArgs[2] == ANIM_ATTACKER)
{ {
gTasks[taskId].data[7] = !GetBattlerSide(gBattleAnimAttacker); gTasks[taskId].data[7] = !GetBattlerSide(gBattleAnimAttacker);
} }
@@ -916,8 +906,7 @@ void AnimTask_RotateMonSpriteToSide(u8 taskId)
// Rotates mon to side and back to original position. For Peck and when a held item activates // Rotates mon to side and back to original position. For Peck and when a held item activates
void AnimTask_RotateMonToSideAndRestore(u8 taskId) void AnimTask_RotateMonToSideAndRestore(u8 taskId)
{ {
u8 spriteId; u8 spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[2]);
spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[2]);
PrepareBattlerSpriteForRotScale(spriteId, ST_OAM_OBJ_NORMAL); PrepareBattlerSpriteForRotScale(spriteId, ST_OAM_OBJ_NORMAL);
gTasks[taskId].data[1] = 0; gTasks[taskId].data[1] = 0;
gTasks[taskId].data[2] = gBattleAnimArgs[0]; gTasks[taskId].data[2] = gBattleAnimArgs[0];
+15 -15
View File
@@ -81,7 +81,7 @@ static const u8 sCastformBackSpriteYCoords[NUM_CASTFORM_FORMS] =
#define TAG_MOVE_EFFECT_MON_1 55125 #define TAG_MOVE_EFFECT_MON_1 55125
#define TAG_MOVE_EFFECT_MON_2 55126 #define TAG_MOVE_EFFECT_MON_2 55126
static const struct SpriteTemplate sSpriteTemplate_MoveEffectMons[] = static const struct SpriteTemplate sSpriteTemplates_MoveEffectMons[] =
{ {
{ {
.tileTag = TAG_MOVE_EFFECT_MON_1, .tileTag = TAG_MOVE_EFFECT_MON_1,
@@ -103,7 +103,7 @@ static const struct SpriteTemplate sSpriteTemplate_MoveEffectMons[] =
} }
}; };
static const struct SpriteSheet sSpriteSheet_MoveEffectMons[] = static const struct SpriteSheet sSpriteSheets_MoveEffectMons[] =
{ {
{ gMiscBlank_Gfx, MON_PIC_SIZE, TAG_MOVE_EFFECT_MON_1, }, { gMiscBlank_Gfx, MON_PIC_SIZE, TAG_MOVE_EFFECT_MON_1, },
{ gMiscBlank_Gfx, MON_PIC_SIZE, TAG_MOVE_EFFECT_MON_2, }, { gMiscBlank_Gfx, MON_PIC_SIZE, TAG_MOVE_EFFECT_MON_2, },
@@ -440,7 +440,7 @@ void SetCallbackToStoredInData6(struct Sprite *sprite)
#define sAmplitudeX sAmplitude #define sAmplitudeX sAmplitude
#define sAmplitudeY data[4] #define sAmplitudeY data[4]
// TranslateSpriteInWavePattern // TranslateSpriteInLissajousCurve
#define sCirclePosX sCirclePos #define sCirclePosX sCirclePos
#define sCircleSpeedX sCircleSpeed #define sCircleSpeedX sCircleSpeed
#define sCirclePosY data[4] #define sCirclePosY data[4]
@@ -487,7 +487,7 @@ void TranslateSpriteInGrowingCircle(struct Sprite *sprite)
// Unused // Unused
// Exact shape depends on arguments. Can move in a figure-8-like pattern, or circular, etc. // Exact shape depends on arguments. Can move in a figure-8-like pattern, or circular, etc.
static void TranslateSpriteInWavePattern(struct Sprite *sprite) static void TranslateSpriteInLissajousCurve(struct Sprite *sprite)
{ {
if (sprite->sDuration) if (sprite->sDuration)
{ {
@@ -1508,13 +1508,13 @@ u32 GetBattleMonSpritePalettesMask(u8 playerLeft, u8 playerRight, u8 opponentLef
return selectedPalettes; return selectedPalettes;
} }
// Presumably something commented here, just returns arg u8 GetSpritePalIdxByBattler(u8 battler)
u8 AnimDummyReturnArg(u8 battler)
{ {
return battler; return battler;
} }
static u8 GetBattlerAtPosition_(u8 position) // Unused
static u8 GetSpritePalIdxByPosition(u8 position)
{ {
return GetBattlerAtPosition(position); return GetBattlerAtPosition(position);
} }
@@ -1552,20 +1552,20 @@ void AnimSpriteOnMonPos(struct Sprite *sprite)
// arg 5: lower 8 bits = location on attacking mon, upper 8 bits = location on target mon pick to target // arg 5: lower 8 bits = location on attacking mon, upper 8 bits = location on target mon pick to target
void TranslateAnimSpriteToTargetMonLocation(struct Sprite *sprite) void TranslateAnimSpriteToTargetMonLocation(struct Sprite *sprite)
{ {
bool8 v1; bool8 respectMonPicOffsets;
u8 coordType; u8 coordType;
if (!(gBattleAnimArgs[5] & 0xff00)) if (!(gBattleAnimArgs[5] & 0xff00))
v1 = TRUE; respectMonPicOffsets = TRUE;
else else
v1 = FALSE; respectMonPicOffsets = FALSE;
if (!(gBattleAnimArgs[5] & 0xff)) if (!(gBattleAnimArgs[5] & 0xff))
coordType = BATTLER_COORD_Y_PIC_OFFSET; coordType = BATTLER_COORD_Y_PIC_OFFSET;
else else
coordType = BATTLER_COORD_Y; coordType = BATTLER_COORD_Y;
InitSpritePosToAnimAttacker(sprite, v1); InitSpritePosToAnimAttacker(sprite, respectMonPicOffsets);
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER) if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
gBattleAnimArgs[2] = -gBattleAnimArgs[2]; gBattleAnimArgs[2] = -gBattleAnimArgs[2];
@@ -2097,8 +2097,8 @@ u8 GetBattlerSpriteBGPriorityRank(u8 battlerId)
u8 CreateAdditionalMonSpriteForMoveAnim(u16 species, bool8 isBackpic, u8 id, s16 x, s16 y, u8 subpriority, u32 personality, u32 trainerId, u32 battlerId, bool32 ignoreDeoxysForm) u8 CreateAdditionalMonSpriteForMoveAnim(u16 species, bool8 isBackpic, u8 id, s16 x, s16 y, u8 subpriority, u32 personality, u32 trainerId, u32 battlerId, bool32 ignoreDeoxysForm)
{ {
u8 spriteId; u8 spriteId;
u16 sheet = LoadSpriteSheet(&sSpriteSheet_MoveEffectMons[id]); u16 sheet = LoadSpriteSheet(&sSpriteSheets_MoveEffectMons[id]);
u16 palette = AllocSpritePalette(sSpriteTemplate_MoveEffectMons[id].paletteTag); u16 palette = AllocSpritePalette(sSpriteTemplates_MoveEffectMons[id].paletteTag);
if (gMonSpritesGfxPtr != NULL && gMonSpritesGfxPtr->buffer == NULL) if (gMonSpritesGfxPtr != NULL && gMonSpritesGfxPtr->buffer == NULL)
gMonSpritesGfxPtr->buffer = AllocZeroed(0x2000); gMonSpritesGfxPtr->buffer = AllocZeroed(0x2000);
@@ -2139,9 +2139,9 @@ u8 CreateAdditionalMonSpriteForMoveAnim(u16 species, bool8 isBackpic, u8 id, s16
FREE_AND_SET_NULL(gMonSpritesGfxPtr->buffer); FREE_AND_SET_NULL(gMonSpritesGfxPtr->buffer);
if (!isBackpic) if (!isBackpic)
spriteId = CreateSprite(&sSpriteTemplate_MoveEffectMons[id], x, y + gMonFrontPicCoords[species].y_offset, subpriority); spriteId = CreateSprite(&sSpriteTemplates_MoveEffectMons[id], x, y + gMonFrontPicCoords[species].y_offset, subpriority);
else else
spriteId = CreateSprite(&sSpriteTemplate_MoveEffectMons[id], x, y + gMonBackPicCoords[species].y_offset, subpriority); spriteId = CreateSprite(&sSpriteTemplates_MoveEffectMons[id], x, y + gMonBackPicCoords[species].y_offset, subpriority);
if (IsContest()) if (IsContest())
{ {
+3 -5
View File
@@ -818,7 +818,7 @@ static void AnimTask_ImprisonOrbs_Step(u8 taskId)
{ {
for (i = 8; i < 13; i++) for (i = 8; i < 13; i++)
{ {
if (task->data[i] != 64) if (task->data[i] != MAX_SPRITES)
DestroySprite(&gSprites[task->data[i]]); DestroySprite(&gSprites[task->data[i]]);
} }
@@ -997,12 +997,10 @@ void AnimTask_ExtrasensoryDistortion(u8 taskId)
scanlineParams.dmaDest = &REG_BG2HOFS; scanlineParams.dmaDest = &REG_BG2HOFS;
} }
i = task->data[14]; for (i = task->data[14]; i <= task->data[14] + 64; i++)
while (i <= task->data[14] + 64)
{ {
gScanlineEffectRegBuffers[0][i] = task->data[10]; gScanlineEffectRegBuffers[0][i] = task->data[10];
gScanlineEffectRegBuffers[1][i] = task->data[10]; gScanlineEffectRegBuffers[1][i] = task->data[10];
i++;
} }
scanlineParams.dmaControl = SCANLINE_EFFECT_DMACNT_16BIT; scanlineParams.dmaControl = SCANLINE_EFFECT_DMACNT_16BIT;
@@ -1137,7 +1135,7 @@ static void AnimPsychoBoost(struct Sprite *sprite)
case 1: case 1:
if (sprite->affineAnimEnded) if (sprite->affineAnimEnded)
{ {
PlaySE12WithPanning(SE_M_TELEPORT, BattleAnimAdjustPanning(-64)); PlaySE12WithPanning(SE_M_TELEPORT, BattleAnimAdjustPanning(SOUND_PAN_ATTACKER));
ChangeSpriteAffineAnim(sprite, 1); ChangeSpriteAffineAnim(sprite, 1);
sprite->data[0]++; sprite->data[0]++;
} }
+2 -2
View File
@@ -596,8 +596,8 @@ void AnimTask_Rollout(u8 taskId)
task->data[6] = 0; task->data[6] = 0;
task->data[7] = 0; task->data[7] = 0;
pan1 = BattleAnimAdjustPanning(-64); pan1 = BattleAnimAdjustPanning(SOUND_PAN_ATTACKER);
pan2 = BattleAnimAdjustPanning(63); pan2 = BattleAnimAdjustPanning(SOUND_PAN_TARGET);
task->data[13] = pan1; task->data[13] = pan1;
task->data[14] = (pan2 - pan1) / task->data[8]; task->data[14] = (pan2 - pan1) / task->data[8];
+2 -2
View File
@@ -100,7 +100,7 @@ void SoundTask_LoopSEAdjustPanning(u8 taskId)
gTasks[taskId].data[12] = r9; gTasks[taskId].data[12] = r9;
gTasks[taskId].func = SoundTask_LoopSEAdjustPanning_Step; gTasks[taskId].func = SoundTask_LoopSEAdjustPanning_Step;
SoundTask_LoopSEAdjustPanning_Step(taskId); gTasks[taskId].func(taskId);
} }
static void SoundTask_LoopSEAdjustPanning_Step(u8 taskId) static void SoundTask_LoopSEAdjustPanning_Step(u8 taskId)
@@ -385,7 +385,7 @@ void SoundTask_AdjustPanningVar(u8 taskId)
gTasks[taskId].data[11] = sourcePan; gTasks[taskId].data[11] = sourcePan;
gTasks[taskId].func = SoundTask_AdjustPanningVar_Step; gTasks[taskId].func = SoundTask_AdjustPanningVar_Step;
SoundTask_AdjustPanningVar_Step(taskId); gTasks[taskId].func(taskId);
} }
static void SoundTask_AdjustPanningVar_Step(u8 taskId) static void SoundTask_AdjustPanningVar_Step(u8 taskId)
+7 -7
View File
@@ -550,8 +550,8 @@ static void LoadHealthboxPalsForLevelUp(u8 *paletteId1, u8 *paletteId2, u8 battl
healthBoxSpriteId = gHealthboxSpriteIds[battler]; healthBoxSpriteId = gHealthboxSpriteIds[battler];
spriteId1 = gSprites[healthBoxSpriteId].oam.affineParam; spriteId1 = gSprites[healthBoxSpriteId].oam.affineParam;
spriteId2 = gSprites[healthBoxSpriteId].data[5]; spriteId2 = gSprites[healthBoxSpriteId].data[5];
*paletteId1 = AllocSpritePalette(0xD709); *paletteId1 = AllocSpritePalette(TAG_HEALTHBOX_PALS_1);
*paletteId2 = AllocSpritePalette(0xD70A); *paletteId2 = AllocSpritePalette(TAG_HEALTHBOX_PALS_2);
offset1 = (gSprites[healthBoxSpriteId].oam.paletteNum * 16) + 0x100; offset1 = (gSprites[healthBoxSpriteId].oam.paletteNum * 16) + 0x100;
offset2 = (gSprites[spriteId2].oam.paletteNum * 16) + 0x100; offset2 = (gSprites[spriteId2].oam.paletteNum * 16) + 0x100;
@@ -580,10 +580,10 @@ static void FreeHealthboxPalsForLevelUp(u8 battler)
spriteId1 = gSprites[healthBoxSpriteId].oam.affineParam; spriteId1 = gSprites[healthBoxSpriteId].oam.affineParam;
spriteId2 = gSprites[healthBoxSpriteId].data[5]; spriteId2 = gSprites[healthBoxSpriteId].data[5];
FreeSpritePaletteByTag(0xD709); FreeSpritePaletteByTag(TAG_HEALTHBOX_PALS_1);
FreeSpritePaletteByTag(0xD70A); FreeSpritePaletteByTag(TAG_HEALTHBOX_PALS_2);
paletteId1 = IndexOfSpritePaletteTag(0xD6FF); paletteId1 = IndexOfSpritePaletteTag(TAG_HEALTHBOX_PAL);
paletteId2 = IndexOfSpritePaletteTag(0xD704); paletteId2 = IndexOfSpritePaletteTag(TAG_HEALTHBAR_PAL);
gSprites[healthBoxSpriteId].oam.paletteNum = paletteId1; gSprites[healthBoxSpriteId].oam.paletteNum = paletteId1;
gSprites[spriteId1].oam.paletteNum = paletteId1; gSprites[spriteId1].oam.paletteNum = paletteId1;
gSprites[spriteId2].oam.paletteNum = paletteId2; gSprites[spriteId2].oam.paletteNum = paletteId2;
@@ -611,7 +611,7 @@ static void AnimTask_FlashHealthboxOnLevelUp_Step(u8 taskId)
if (gTasks[taskId].data[0]++ >= gTasks[taskId].data[11]) if (gTasks[taskId].data[0]++ >= gTasks[taskId].data[11])
{ {
gTasks[taskId].data[0] = 0; gTasks[taskId].data[0] = 0;
paletteNum = IndexOfSpritePaletteTag(0xD709); paletteNum = IndexOfSpritePaletteTag(TAG_HEALTHBOX_PALS_1);
colorOffset = gTasks[taskId].data[10] == 0 ? 6 : 2; colorOffset = gTasks[taskId].data[10] == 0 ? 6 : 2;
switch (gTasks[taskId].data[1]) switch (gTasks[taskId].data[1])
{ {
+3 -3
View File
@@ -97,7 +97,7 @@ void AnimTask_BlendBattleAnimPalExclude(u8 taskId)
for (battler = 0; battler < MAX_BATTLERS_COUNT; battler++) for (battler = 0; battler < MAX_BATTLERS_COUNT; battler++)
{ {
if (battler != animBattlers[0] && battler != animBattlers[1] && IsBattlerSpriteVisible(battler)) if (battler != animBattlers[0] && battler != animBattlers[1] && IsBattlerSpriteVisible(battler))
selectedPalettes |= 0x10000 << AnimDummyReturnArg(battler); selectedPalettes |= 0x10000 << GetSpritePalIdxByBattler(battler);
} }
StartBlendAnimSpriteColor(taskId, selectedPalettes); StartBlendAnimSpriteColor(taskId, selectedPalettes);
@@ -535,9 +535,9 @@ static void StatsChangeAnimation_Step2(u8 taskId)
gTasks[taskId].func = StatsChangeAnimation_Step3; gTasks[taskId].func = StatsChangeAnimation_Step3;
if (sAnimStatsChangeData->data[0] == 0) if (sAnimStatsChangeData->data[0] == 0)
PlaySE12WithPanning(SE_M_STAT_INCREASE, BattleAnimAdjustPanning2(-64)); PlaySE12WithPanning(SE_M_STAT_INCREASE, BattleAnimAdjustPanning2(SOUND_PAN_ATTACKER));
else else
PlaySE12WithPanning(SE_M_STAT_DECREASE, BattleAnimAdjustPanning2(-64)); PlaySE12WithPanning(SE_M_STAT_DECREASE, BattleAnimAdjustPanning2(SOUND_PAN_ATTACKER));
} }
static void StatsChangeAnimation_Step3(u8 taskId) static void StatsChangeAnimation_Step3(u8 taskId)
+58 -178
View File
@@ -38,9 +38,25 @@ static void BufferArenaOpponentName(void);
static void SpriteCB_JudgmentIcon(struct Sprite *sprite); static void SpriteCB_JudgmentIcon(struct Sprite *sprite);
static void ShowJudgmentSprite(u8 x, u8 y, u8 category, u8 battler); static void ShowJudgmentSprite(u8 x, u8 y, u8 category, u8 battler);
static const s8 sMindRatings[] = #define JUDGEMENT_STATE_FINISHED 8
#define TAG_JUDGEMENT_ICON 1000
enum {
ANIM_ICON_X, // Player lost
ANIM_ICON_TRIANGLE, // Tie
ANIM_ICON_CIRCLE, // Player won
ANIM_ICON_LINE, // Line segment for separating the score total at the bottom
};
// This table holds the number of points to add to the 'mind' score for each move.
// All moves with power != 0 give 1 point, with the following exceptions:
// - Counter, Mirror Coat, and Bide give 0 points
// - Fake Out subtracts 1 point
// All moves with power == 0 give 0 points, with the following exceptions:
// - Protect, Detect, and Endure subtract 1 point
static const s8 sMindRatings[MOVES_COUNT] =
{ {
[MOVE_NONE] = 0,
[MOVE_POUND] = 1, [MOVE_POUND] = 1,
[MOVE_KARATE_CHOP] = 1, [MOVE_KARATE_CHOP] = 1,
[MOVE_DOUBLE_SLAP] = 1, [MOVE_DOUBLE_SLAP] = 1,
@@ -54,11 +70,9 @@ static const s8 sMindRatings[] =
[MOVE_VICE_GRIP] = 1, [MOVE_VICE_GRIP] = 1,
[MOVE_GUILLOTINE] = 1, [MOVE_GUILLOTINE] = 1,
[MOVE_RAZOR_WIND] = 1, [MOVE_RAZOR_WIND] = 1,
[MOVE_SWORDS_DANCE] = 0,
[MOVE_CUT] = 1, [MOVE_CUT] = 1,
[MOVE_GUST] = 1, [MOVE_GUST] = 1,
[MOVE_WING_ATTACK] = 1, [MOVE_WING_ATTACK] = 1,
[MOVE_WHIRLWIND] = 0,
[MOVE_FLY] = 1, [MOVE_FLY] = 1,
[MOVE_BIND] = 1, [MOVE_BIND] = 1,
[MOVE_SLAM] = 1, [MOVE_SLAM] = 1,
@@ -68,7 +82,6 @@ static const s8 sMindRatings[] =
[MOVE_MEGA_KICK] = 1, [MOVE_MEGA_KICK] = 1,
[MOVE_JUMP_KICK] = 1, [MOVE_JUMP_KICK] = 1,
[MOVE_ROLLING_KICK] = 1, [MOVE_ROLLING_KICK] = 1,
[MOVE_SAND_ATTACK] = 0,
[MOVE_HEADBUTT] = 1, [MOVE_HEADBUTT] = 1,
[MOVE_HORN_ATTACK] = 1, [MOVE_HORN_ATTACK] = 1,
[MOVE_FURY_ATTACK] = 1, [MOVE_FURY_ATTACK] = 1,
@@ -79,22 +92,14 @@ static const s8 sMindRatings[] =
[MOVE_TAKE_DOWN] = 1, [MOVE_TAKE_DOWN] = 1,
[MOVE_THRASH] = 1, [MOVE_THRASH] = 1,
[MOVE_DOUBLE_EDGE] = 1, [MOVE_DOUBLE_EDGE] = 1,
[MOVE_TAIL_WHIP] = 0,
[MOVE_POISON_STING] = 1, [MOVE_POISON_STING] = 1,
[MOVE_TWINEEDLE] = 1, [MOVE_TWINEEDLE] = 1,
[MOVE_PIN_MISSILE] = 1, [MOVE_PIN_MISSILE] = 1,
[MOVE_LEER] = 0,
[MOVE_BITE] = 1, [MOVE_BITE] = 1,
[MOVE_GROWL] = 0,
[MOVE_ROAR] = 0,
[MOVE_SING] = 0,
[MOVE_SUPERSONIC] = 0,
[MOVE_SONIC_BOOM] = 1, [MOVE_SONIC_BOOM] = 1,
[MOVE_DISABLE] = 0,
[MOVE_ACID] = 1, [MOVE_ACID] = 1,
[MOVE_EMBER] = 1, [MOVE_EMBER] = 1,
[MOVE_FLAMETHROWER] = 1, [MOVE_FLAMETHROWER] = 1,
[MOVE_MIST] = 0,
[MOVE_WATER_GUN] = 1, [MOVE_WATER_GUN] = 1,
[MOVE_HYDRO_PUMP] = 1, [MOVE_HYDRO_PUMP] = 1,
[MOVE_SURF] = 1, [MOVE_SURF] = 1,
@@ -108,58 +113,27 @@ static const s8 sMindRatings[] =
[MOVE_DRILL_PECK] = 1, [MOVE_DRILL_PECK] = 1,
[MOVE_SUBMISSION] = 1, [MOVE_SUBMISSION] = 1,
[MOVE_LOW_KICK] = 1, [MOVE_LOW_KICK] = 1,
[MOVE_COUNTER] = 0,
[MOVE_SEISMIC_TOSS] = 1, [MOVE_SEISMIC_TOSS] = 1,
[MOVE_STRENGTH] = 1, [MOVE_STRENGTH] = 1,
[MOVE_ABSORB] = 1, [MOVE_ABSORB] = 1,
[MOVE_MEGA_DRAIN] = 1, [MOVE_MEGA_DRAIN] = 1,
[MOVE_LEECH_SEED] = 0,
[MOVE_GROWTH] = 0,
[MOVE_RAZOR_LEAF] = 1, [MOVE_RAZOR_LEAF] = 1,
[MOVE_SOLAR_BEAM] = 1, [MOVE_SOLAR_BEAM] = 1,
[MOVE_POISON_POWDER] = 0,
[MOVE_STUN_SPORE] = 0,
[MOVE_SLEEP_POWDER] = 0,
[MOVE_PETAL_DANCE] = 1, [MOVE_PETAL_DANCE] = 1,
[MOVE_STRING_SHOT] = 0,
[MOVE_DRAGON_RAGE] = 1, [MOVE_DRAGON_RAGE] = 1,
[MOVE_FIRE_SPIN] = 1, [MOVE_FIRE_SPIN] = 1,
[MOVE_THUNDER_SHOCK] = 1, [MOVE_THUNDER_SHOCK] = 1,
[MOVE_THUNDERBOLT] = 1, [MOVE_THUNDERBOLT] = 1,
[MOVE_THUNDER_WAVE] = 0,
[MOVE_THUNDER] = 1, [MOVE_THUNDER] = 1,
[MOVE_ROCK_THROW] = 1, [MOVE_ROCK_THROW] = 1,
[MOVE_EARTHQUAKE] = 1, [MOVE_EARTHQUAKE] = 1,
[MOVE_FISSURE] = 1, [MOVE_FISSURE] = 1,
[MOVE_DIG] = 1, [MOVE_DIG] = 1,
[MOVE_TOXIC] = 0,
[MOVE_CONFUSION] = 1, [MOVE_CONFUSION] = 1,
[MOVE_PSYCHIC] = 1, [MOVE_PSYCHIC] = 1,
[MOVE_HYPNOSIS] = 0,
[MOVE_MEDITATE] = 0,
[MOVE_AGILITY] = 0,
[MOVE_QUICK_ATTACK] = 1, [MOVE_QUICK_ATTACK] = 1,
[MOVE_RAGE] = 1, [MOVE_RAGE] = 1,
[MOVE_TELEPORT] = 0,
[MOVE_NIGHT_SHADE] = 1, [MOVE_NIGHT_SHADE] = 1,
[MOVE_MIMIC] = 0,
[MOVE_SCREECH] = 0,
[MOVE_DOUBLE_TEAM] = 0,
[MOVE_RECOVER] = 0,
[MOVE_HARDEN] = 0,
[MOVE_MINIMIZE] = 0,
[MOVE_SMOKESCREEN] = 0,
[MOVE_CONFUSE_RAY] = 0,
[MOVE_WITHDRAW] = 0,
[MOVE_DEFENSE_CURL] = 0,
[MOVE_BARRIER] = 0,
[MOVE_LIGHT_SCREEN] = 0,
[MOVE_HAZE] = 0,
[MOVE_REFLECT] = 0,
[MOVE_FOCUS_ENERGY] = 0,
[MOVE_BIDE] = 0,
[MOVE_METRONOME] = 0,
[MOVE_MIRROR_MOVE] = 0,
[MOVE_SELF_DESTRUCT] = 1, [MOVE_SELF_DESTRUCT] = 1,
[MOVE_EGG_BOMB] = 1, [MOVE_EGG_BOMB] = 1,
[MOVE_LICK] = 1, [MOVE_LICK] = 1,
@@ -173,118 +147,67 @@ static const s8 sMindRatings[] =
[MOVE_SKULL_BASH] = 1, [MOVE_SKULL_BASH] = 1,
[MOVE_SPIKE_CANNON] = 1, [MOVE_SPIKE_CANNON] = 1,
[MOVE_CONSTRICT] = 1, [MOVE_CONSTRICT] = 1,
[MOVE_AMNESIA] = 0,
[MOVE_KINESIS] = 0,
[MOVE_SOFT_BOILED] = 0,
[MOVE_HI_JUMP_KICK] = 1, [MOVE_HI_JUMP_KICK] = 1,
[MOVE_GLARE] = 0,
[MOVE_DREAM_EATER] = 1, [MOVE_DREAM_EATER] = 1,
[MOVE_POISON_GAS] = 0,
[MOVE_BARRAGE] = 1, [MOVE_BARRAGE] = 1,
[MOVE_LEECH_LIFE] = 1, [MOVE_LEECH_LIFE] = 1,
[MOVE_LOVELY_KISS] = 0,
[MOVE_SKY_ATTACK] = 1, [MOVE_SKY_ATTACK] = 1,
[MOVE_TRANSFORM] = 0,
[MOVE_BUBBLE] = 1, [MOVE_BUBBLE] = 1,
[MOVE_DIZZY_PUNCH] = 1, [MOVE_DIZZY_PUNCH] = 1,
[MOVE_SPORE] = 0,
[MOVE_FLASH] = 0,
[MOVE_PSYWAVE] = 1, [MOVE_PSYWAVE] = 1,
[MOVE_SPLASH] = 0,
[MOVE_ACID_ARMOR] = 0,
[MOVE_CRABHAMMER] = 1, [MOVE_CRABHAMMER] = 1,
[MOVE_EXPLOSION] = 1, [MOVE_EXPLOSION] = 1,
[MOVE_FURY_SWIPES] = 1, [MOVE_FURY_SWIPES] = 1,
[MOVE_BONEMERANG] = 1, [MOVE_BONEMERANG] = 1,
[MOVE_REST] = 0,
[MOVE_ROCK_SLIDE] = 1, [MOVE_ROCK_SLIDE] = 1,
[MOVE_HYPER_FANG] = 1, [MOVE_HYPER_FANG] = 1,
[MOVE_SHARPEN] = 0,
[MOVE_CONVERSION] = 0,
[MOVE_TRI_ATTACK] = 1, [MOVE_TRI_ATTACK] = 1,
[MOVE_SUPER_FANG] = 1, [MOVE_SUPER_FANG] = 1,
[MOVE_SLASH] = 1, [MOVE_SLASH] = 1,
[MOVE_SUBSTITUTE] = 0,
[MOVE_STRUGGLE] = 1, [MOVE_STRUGGLE] = 1,
[MOVE_SKETCH] = 0,
[MOVE_TRIPLE_KICK] = 1, [MOVE_TRIPLE_KICK] = 1,
[MOVE_THIEF] = 1, [MOVE_THIEF] = 1,
[MOVE_SPIDER_WEB] = 0,
[MOVE_MIND_READER] = 0,
[MOVE_NIGHTMARE] = 0,
[MOVE_FLAME_WHEEL] = 1, [MOVE_FLAME_WHEEL] = 1,
[MOVE_SNORE] = 1, [MOVE_SNORE] = 1,
[MOVE_CURSE] = 0,
[MOVE_FLAIL] = 1, [MOVE_FLAIL] = 1,
[MOVE_CONVERSION_2] = 0,
[MOVE_AEROBLAST] = 1, [MOVE_AEROBLAST] = 1,
[MOVE_COTTON_SPORE] = 0,
[MOVE_REVERSAL] = 1, [MOVE_REVERSAL] = 1,
[MOVE_SPITE] = 0,
[MOVE_POWDER_SNOW] = 1, [MOVE_POWDER_SNOW] = 1,
[MOVE_PROTECT] = -1, [MOVE_PROTECT] = -1,
[MOVE_MACH_PUNCH] = 1, [MOVE_MACH_PUNCH] = 1,
[MOVE_SCARY_FACE] = 0,
[MOVE_FAINT_ATTACK] = 1, [MOVE_FAINT_ATTACK] = 1,
[MOVE_SWEET_KISS] = 0,
[MOVE_BELLY_DRUM] = 0,
[MOVE_SLUDGE_BOMB] = 1, [MOVE_SLUDGE_BOMB] = 1,
[MOVE_MUD_SLAP] = 1, [MOVE_MUD_SLAP] = 1,
[MOVE_OCTAZOOKA] = 1, [MOVE_OCTAZOOKA] = 1,
[MOVE_SPIKES] = 0,
[MOVE_ZAP_CANNON] = 1, [MOVE_ZAP_CANNON] = 1,
[MOVE_FORESIGHT] = 0,
[MOVE_DESTINY_BOND] = 0,
[MOVE_PERISH_SONG] = 0,
[MOVE_ICY_WIND] = 1, [MOVE_ICY_WIND] = 1,
[MOVE_DETECT] = -1, [MOVE_DETECT] = -1,
[MOVE_BONE_RUSH] = 1, [MOVE_BONE_RUSH] = 1,
[MOVE_LOCK_ON] = 0,
[MOVE_OUTRAGE] = 1, [MOVE_OUTRAGE] = 1,
[MOVE_SANDSTORM] = 0,
[MOVE_GIGA_DRAIN] = 1, [MOVE_GIGA_DRAIN] = 1,
[MOVE_ENDURE] = -1, [MOVE_ENDURE] = -1,
[MOVE_CHARM] = 0,
[MOVE_ROLLOUT] = 1, [MOVE_ROLLOUT] = 1,
[MOVE_FALSE_SWIPE] = 1, [MOVE_FALSE_SWIPE] = 1,
[MOVE_SWAGGER] = 0,
[MOVE_MILK_DRINK] = 0,
[MOVE_SPARK] = 1, [MOVE_SPARK] = 1,
[MOVE_FURY_CUTTER] = 1, [MOVE_FURY_CUTTER] = 1,
[MOVE_STEEL_WING] = 1, [MOVE_STEEL_WING] = 1,
[MOVE_MEAN_LOOK] = 0,
[MOVE_ATTRACT] = 0,
[MOVE_SLEEP_TALK] = 0,
[MOVE_HEAL_BELL] = 0,
[MOVE_RETURN] = 1, [MOVE_RETURN] = 1,
[MOVE_PRESENT] = 1, [MOVE_PRESENT] = 1,
[MOVE_FRUSTRATION] = 1, [MOVE_FRUSTRATION] = 1,
[MOVE_SAFEGUARD] = 0,
[MOVE_PAIN_SPLIT] = 0,
[MOVE_SACRED_FIRE] = 1, [MOVE_SACRED_FIRE] = 1,
[MOVE_MAGNITUDE] = 1, [MOVE_MAGNITUDE] = 1,
[MOVE_DYNAMIC_PUNCH] = 1, [MOVE_DYNAMIC_PUNCH] = 1,
[MOVE_MEGAHORN] = 1, [MOVE_MEGAHORN] = 1,
[MOVE_DRAGON_BREATH] = 1, [MOVE_DRAGON_BREATH] = 1,
[MOVE_BATON_PASS] = 0,
[MOVE_ENCORE] = 0,
[MOVE_PURSUIT] = 1, [MOVE_PURSUIT] = 1,
[MOVE_RAPID_SPIN] = 1, [MOVE_RAPID_SPIN] = 1,
[MOVE_SWEET_SCENT] = 0,
[MOVE_IRON_TAIL] = 1, [MOVE_IRON_TAIL] = 1,
[MOVE_METAL_CLAW] = 1, [MOVE_METAL_CLAW] = 1,
[MOVE_VITAL_THROW] = 1, [MOVE_VITAL_THROW] = 1,
[MOVE_MORNING_SUN] = 0,
[MOVE_SYNTHESIS] = 0,
[MOVE_MOONLIGHT] = 0,
[MOVE_HIDDEN_POWER] = 1, [MOVE_HIDDEN_POWER] = 1,
[MOVE_CROSS_CHOP] = 1, [MOVE_CROSS_CHOP] = 1,
[MOVE_TWISTER] = 1, [MOVE_TWISTER] = 1,
[MOVE_RAIN_DANCE] = 0,
[MOVE_SUNNY_DAY] = 0,
[MOVE_CRUNCH] = 1, [MOVE_CRUNCH] = 1,
[MOVE_MIRROR_COAT] = 0,
[MOVE_PSYCH_UP] = 0,
[MOVE_EXTREME_SPEED] = 1, [MOVE_EXTREME_SPEED] = 1,
[MOVE_ANCIENT_POWER] = 1, [MOVE_ANCIENT_POWER] = 1,
[MOVE_SHADOW_BALL] = 1, [MOVE_SHADOW_BALL] = 1,
@@ -294,56 +217,25 @@ static const s8 sMindRatings[] =
[MOVE_BEAT_UP] = 1, [MOVE_BEAT_UP] = 1,
[MOVE_FAKE_OUT] = -1, [MOVE_FAKE_OUT] = -1,
[MOVE_UPROAR] = 1, [MOVE_UPROAR] = 1,
[MOVE_STOCKPILE] = 0,
[MOVE_SPIT_UP] = 1, [MOVE_SPIT_UP] = 1,
[MOVE_SWALLOW] = 0,
[MOVE_HEAT_WAVE] = 1, [MOVE_HEAT_WAVE] = 1,
[MOVE_HAIL] = 0,
[MOVE_TORMENT] = 0,
[MOVE_FLATTER] = 0,
[MOVE_WILL_O_WISP] = 0,
[MOVE_MEMENTO] = 0,
[MOVE_FACADE] = 1, [MOVE_FACADE] = 1,
[MOVE_FOCUS_PUNCH] = 1, [MOVE_FOCUS_PUNCH] = 1,
[MOVE_SMELLING_SALT] = 1, [MOVE_SMELLING_SALT] = 1,
[MOVE_FOLLOW_ME] = 0,
[MOVE_NATURE_POWER] = 0,
[MOVE_CHARGE] = 0,
[MOVE_TAUNT] = 0,
[MOVE_HELPING_HAND] = 0,
[MOVE_TRICK] = 0,
[MOVE_ROLE_PLAY] = 0,
[MOVE_WISH] = 0,
[MOVE_ASSIST] = 0,
[MOVE_INGRAIN] = 0,
[MOVE_SUPERPOWER] = 1, [MOVE_SUPERPOWER] = 1,
[MOVE_MAGIC_COAT] = 0,
[MOVE_RECYCLE] = 0,
[MOVE_REVENGE] = 1, [MOVE_REVENGE] = 1,
[MOVE_BRICK_BREAK] = 1, [MOVE_BRICK_BREAK] = 1,
[MOVE_YAWN] = 0,
[MOVE_KNOCK_OFF] = 1, [MOVE_KNOCK_OFF] = 1,
[MOVE_ENDEAVOR] = 1, [MOVE_ENDEAVOR] = 1,
[MOVE_ERUPTION] = 1, [MOVE_ERUPTION] = 1,
[MOVE_SKILL_SWAP] = 0,
[MOVE_IMPRISON] = 0,
[MOVE_REFRESH] = 0,
[MOVE_GRUDGE] = 0,
[MOVE_SNATCH] = 0,
[MOVE_SECRET_POWER] = 1, [MOVE_SECRET_POWER] = 1,
[MOVE_DIVE] = 1, [MOVE_DIVE] = 1,
[MOVE_ARM_THRUST] = 1, [MOVE_ARM_THRUST] = 1,
[MOVE_CAMOUFLAGE] = 0,
[MOVE_TAIL_GLOW] = 0,
[MOVE_LUSTER_PURGE] = 1, [MOVE_LUSTER_PURGE] = 1,
[MOVE_MIST_BALL] = 1, [MOVE_MIST_BALL] = 1,
[MOVE_FEATHER_DANCE] = 0,
[MOVE_TEETER_DANCE] = 0,
[MOVE_BLAZE_KICK] = 1, [MOVE_BLAZE_KICK] = 1,
[MOVE_MUD_SPORT] = 0,
[MOVE_ICE_BALL] = 1, [MOVE_ICE_BALL] = 1,
[MOVE_NEEDLE_ARM] = 1, [MOVE_NEEDLE_ARM] = 1,
[MOVE_SLACK_OFF] = 0,
[MOVE_HYPER_VOICE] = 1, [MOVE_HYPER_VOICE] = 1,
[MOVE_POISON_FANG] = 1, [MOVE_POISON_FANG] = 1,
[MOVE_CRUSH_CLAW] = 1, [MOVE_CRUSH_CLAW] = 1,
@@ -352,17 +244,10 @@ static const s8 sMindRatings[] =
[MOVE_METEOR_MASH] = 1, [MOVE_METEOR_MASH] = 1,
[MOVE_ASTONISH] = 1, [MOVE_ASTONISH] = 1,
[MOVE_WEATHER_BALL] = 1, [MOVE_WEATHER_BALL] = 1,
[MOVE_AROMATHERAPY] = 0,
[MOVE_FAKE_TEARS] = 0,
[MOVE_AIR_CUTTER] = 1, [MOVE_AIR_CUTTER] = 1,
[MOVE_OVERHEAT] = 1, [MOVE_OVERHEAT] = 1,
[MOVE_ODOR_SLEUTH] = 0,
[MOVE_ROCK_TOMB] = 1, [MOVE_ROCK_TOMB] = 1,
[MOVE_SILVER_WIND] = 1, [MOVE_SILVER_WIND] = 1,
[MOVE_METAL_SOUND] = 0,
[MOVE_GRASS_WHISTLE] = 0,
[MOVE_TICKLE] = 0,
[MOVE_COSMIC_POWER] = 0,
[MOVE_WATER_SPOUT] = 1, [MOVE_WATER_SPOUT] = 1,
[MOVE_SIGNAL_BEAM] = 1, [MOVE_SIGNAL_BEAM] = 1,
[MOVE_SHADOW_PUNCH] = 1, [MOVE_SHADOW_PUNCH] = 1,
@@ -374,22 +259,15 @@ static const s8 sMindRatings[] =
[MOVE_BULLET_SEED] = 1, [MOVE_BULLET_SEED] = 1,
[MOVE_AERIAL_ACE] = 1, [MOVE_AERIAL_ACE] = 1,
[MOVE_ICICLE_SPEAR] = 1, [MOVE_ICICLE_SPEAR] = 1,
[MOVE_IRON_DEFENSE] = 0,
[MOVE_BLOCK] = 0,
[MOVE_HOWL] = 0,
[MOVE_DRAGON_CLAW] = 1, [MOVE_DRAGON_CLAW] = 1,
[MOVE_FRENZY_PLANT] = 1, [MOVE_FRENZY_PLANT] = 1,
[MOVE_BULK_UP] = 0,
[MOVE_BOUNCE] = 1, [MOVE_BOUNCE] = 1,
[MOVE_MUD_SHOT] = 1, [MOVE_MUD_SHOT] = 1,
[MOVE_POISON_TAIL] = 1, [MOVE_POISON_TAIL] = 1,
[MOVE_COVET] = 1, [MOVE_COVET] = 1,
[MOVE_VOLT_TACKLE] = 1, [MOVE_VOLT_TACKLE] = 1,
[MOVE_MAGICAL_LEAF] = 1, [MOVE_MAGICAL_LEAF] = 1,
[MOVE_WATER_SPORT] = 0,
[MOVE_CALM_MIND] = 0,
[MOVE_LEAF_BLADE] = 1, [MOVE_LEAF_BLADE] = 1,
[MOVE_DRAGON_DANCE] = 0,
[MOVE_ROCK_BLAST] = 1, [MOVE_ROCK_BLAST] = 1,
[MOVE_SHOCK_WAVE] = 1, [MOVE_SHOCK_WAVE] = 1,
[MOVE_WATER_PULSE] = 1, [MOVE_WATER_PULSE] = 1,
@@ -397,9 +275,7 @@ static const s8 sMindRatings[] =
[MOVE_PSYCHO_BOOST] = 1, [MOVE_PSYCHO_BOOST] = 1,
}; };
#define TAG_JUDGEMENT_ICON 1000 static const struct OamData sOam_JudgementIcon =
static const struct OamData sJudgementIconOamData =
{ {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_OFF, .affineMode = ST_OAM_AFFINE_OFF,
@@ -416,44 +292,44 @@ static const struct OamData sJudgementIconOamData =
.affineParam = 0 .affineParam = 0
}; };
static const union AnimCmd sJudgementIconAnimCmd0[] = static const union AnimCmd sAnim_JudgementIcon_X[] =
{ {
ANIMCMD_FRAME(0, 1), ANIMCMD_FRAME(0, 1),
ANIMCMD_END ANIMCMD_END
}; };
static const union AnimCmd sJudgementIconAnimCmd1[] = static const union AnimCmd sAnim_JudgementIcon_Triangle[] =
{ {
ANIMCMD_FRAME(4, 1), ANIMCMD_FRAME(4, 1),
ANIMCMD_END ANIMCMD_END
}; };
static const union AnimCmd sJudgementIconAnimCmd2[] = static const union AnimCmd sAnim_JudgementIcon_Circle[] =
{ {
ANIMCMD_FRAME(8, 1), ANIMCMD_FRAME(8, 1),
ANIMCMD_END ANIMCMD_END
}; };
static const union AnimCmd sJudgementIconAnimCmd3[] = static const union AnimCmd sAnim_JudgementIcon_Line[] =
{ {
ANIMCMD_FRAME(12, 1), ANIMCMD_FRAME(12, 1),
ANIMCMD_END ANIMCMD_END
}; };
static const union AnimCmd *const sJudgementIconAnimCmds[] = static const union AnimCmd *const sAnims_JudgementIcon[] =
{ {
sJudgementIconAnimCmd0, [ANIM_ICON_X] = sAnim_JudgementIcon_X,
sJudgementIconAnimCmd1, [ANIM_ICON_TRIANGLE] = sAnim_JudgementIcon_Triangle,
sJudgementIconAnimCmd2, [ANIM_ICON_CIRCLE] = sAnim_JudgementIcon_Circle,
sJudgementIconAnimCmd3 [ANIM_ICON_LINE] = sAnim_JudgementIcon_Line,
}; };
static const struct SpriteTemplate sSpriteTemplate_JudgmentIcon = static const struct SpriteTemplate sSpriteTemplate_JudgmentIcon =
{ {
.tileTag = TAG_JUDGEMENT_ICON, .tileTag = TAG_JUDGEMENT_ICON,
.paletteTag = TAG_NONE, .paletteTag = TAG_NONE,
.oam = &sJudgementIconOamData, .oam = &sOam_JudgementIcon,
.anims = sJudgementIconAnimCmds, .anims = sAnims_JudgementIcon,
.images = NULL, .images = NULL,
.affineAnims = gDummySpriteAffineAnimTable, .affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCB_JudgmentIcon, .callback = SpriteCB_JudgmentIcon,
@@ -507,12 +383,12 @@ void CallBattleArenaFunction(void)
u8 BattleArena_ShowJudgmentWindow(u8 *state) u8 BattleArena_ShowJudgmentWindow(u8 *state)
{ {
int i; int i;
u8 ret = 0; u8 result = ARENA_RESULT_RUNNING;
switch (*state) switch (*state)
{ {
case 0: case 0:
BeginNormalPaletteFade(0x7FFFFF1C, 4, 0, 8, RGB_BLACK); BeginNormalPaletteFade(0x7FFFFF1C, 4, 0, 8, RGB_BLACK);
SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG1 | WININ_WIN0_BG2 | WININ_WIN0_BG3 | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG_ALL | WININ_WIN1_OBJ | WININ_WIN1_CLR); SetGpuReg(REG_OFFSET_WININ, (WININ_WIN0_ALL & ~WININ_WIN0_BG0) | WININ_WIN1_ALL);
LoadCompressedSpriteSheet(sBattleArenaJudgementSymbolsSpriteSheet); LoadCompressedSpriteSheet(sBattleArenaJudgementSymbolsSpriteSheet);
LoadCompressedPalette(gBattleArenaJudgementSymbolsPalette, 0x1F0, 0x20); LoadCompressedPalette(gBattleArenaJudgementSymbolsPalette, 0x1F0, 0x20);
gBattle_WIN0H = 0xFF; gBattle_WIN0H = 0xFF;
@@ -549,13 +425,15 @@ u8 BattleArena_ShowJudgmentWindow(u8 *state)
case 3: case 3:
if (!IsDma3ManagerBusyWithBgCopy()) if (!IsDma3ManagerBusyWithBgCopy())
{ {
SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG_ALL | WININ_WIN1_OBJ | WININ_WIN1_CLR); SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_ALL | WININ_WIN1_ALL);
// Create dividing line for the the score totals at the bottom
for (i = 0; i < 8; i++) for (i = 0; i < 8; i++)
{ {
u8 spriteId = CreateSprite(&sSpriteTemplate_JudgmentIcon, 64 + i * 16, 84, 0); u8 spriteId = CreateSprite(&sSpriteTemplate_JudgmentIcon, 64 + i * 16, 84, 0);
StartSpriteAnim(&gSprites[spriteId], 3); StartSpriteAnim(&gSprites[spriteId], ANIM_ICON_LINE);
} }
ret = 1; result = ARENA_RESULT_STEP_DONE;
(*state)++; (*state)++;
} }
break; break;
@@ -566,7 +444,7 @@ u8 BattleArena_ShowJudgmentWindow(u8 *state)
BattleStringExpandPlaceholdersToDisplayedString(gText_Judgement); BattleStringExpandPlaceholdersToDisplayedString(gText_Judgement);
BattlePutTextOnWindow(gDisplayedStringBattle, ARENA_WIN_JUDGEMENT_TITLE); BattlePutTextOnWindow(gDisplayedStringBattle, ARENA_WIN_JUDGEMENT_TITLE);
(*state)++; (*state)++;
ret = 1; result = ARENA_RESULT_STEP_DONE;
break; break;
case 5: case 5:
PlaySE(SE_ARENA_TIMEUP1); PlaySE(SE_ARENA_TIMEUP1);
@@ -575,7 +453,7 @@ u8 BattleArena_ShowJudgmentWindow(u8 *state)
BattleStringExpandPlaceholdersToDisplayedString(gText_Judgement); BattleStringExpandPlaceholdersToDisplayedString(gText_Judgement);
BattlePutTextOnWindow(gDisplayedStringBattle, ARENA_WIN_JUDGEMENT_TITLE); BattlePutTextOnWindow(gDisplayedStringBattle, ARENA_WIN_JUDGEMENT_TITLE);
(*state)++; (*state)++;
ret = 1; result = ARENA_RESULT_STEP_DONE;
break; break;
case 6: case 6:
PlaySE(SE_ARENA_TIMEUP1); PlaySE(SE_ARENA_TIMEUP1);
@@ -584,49 +462,50 @@ u8 BattleArena_ShowJudgmentWindow(u8 *state)
BattleStringExpandPlaceholdersToDisplayedString(gText_Judgement); BattleStringExpandPlaceholdersToDisplayedString(gText_Judgement);
BattlePutTextOnWindow(gDisplayedStringBattle, ARENA_WIN_JUDGEMENT_TITLE); BattlePutTextOnWindow(gDisplayedStringBattle, ARENA_WIN_JUDGEMENT_TITLE);
(*state)++; (*state)++;
ret = 1; result = ARENA_RESULT_STEP_DONE;
break; break;
case 7: case 7:
PlaySE(SE_ARENA_TIMEUP2); PlaySE(SE_ARENA_TIMEUP2);
if (gBattleTextBuff1[0] > gBattleTextBuff2[0]) if (gBattleTextBuff1[0] > gBattleTextBuff2[0])
{ {
ret = 2; result = ARENA_RESULT_PLAYER_WON;
gBattleScripting.battler = 0; gBattleScripting.battler = 0;
} }
else if (gBattleTextBuff1[0] < gBattleTextBuff2[0]) else if (gBattleTextBuff1[0] < gBattleTextBuff2[0])
{ {
ret = 3; result = ARENA_RESULT_PLAYER_LOST;
gBattleScripting.battler = 1; gBattleScripting.battler = 1;
} }
else else
{ {
ret = 4; result = ARENA_RESULT_TIE;
} }
(*state)++; (*state)++;
break; break;
case 8: case JUDGEMENT_STATE_FINISHED:
// Finishing this state is the indicator to SpriteCB_JudgmentIcon that its safe to destroy the judgement icon sprites
(*state)++; (*state)++;
break; break;
case 9: case JUDGEMENT_STATE_FINISHED + 1:
SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG1 | WININ_WIN0_BG2 | WININ_WIN0_BG3 | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG_ALL | WININ_WIN1_OBJ | WININ_WIN1_CLR); SetGpuReg(REG_OFFSET_WININ, (WININ_WIN0_ALL & ~WININ_WIN0_BG0) | WININ_WIN1_ALL);
HandleBattleWindow(5, 0, 24, 13, WINDOW_CLEAR); HandleBattleWindow(5, 0, 24, 13, WINDOW_CLEAR);
CopyBgTilemapBufferToVram(0); CopyBgTilemapBufferToVram(0);
m4aMPlayVolumeControl(&gMPlayInfo_BGM, TRACKS_ALL, 256); m4aMPlayVolumeControl(&gMPlayInfo_BGM, TRACKS_ALL, 256);
BeginNormalPaletteFade(0x7FFFFF1C, 4, 8, 0, RGB_BLACK); BeginNormalPaletteFade(0x7FFFFF1C, 4, 8, 0, RGB_BLACK);
(*state)++; (*state)++;
break; break;
case 10: case JUDGEMENT_STATE_FINISHED + 2:
if (!gPaletteFade.active) if (!gPaletteFade.active)
{ {
SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG_ALL | WININ_WIN1_OBJ | WININ_WIN1_CLR); SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_ALL | WININ_WIN1_ALL);
FreeSpriteTilesByTag(TAG_JUDGEMENT_ICON); FreeSpriteTilesByTag(TAG_JUDGEMENT_ICON);
ret = 1; result = ARENA_RESULT_STEP_DONE;
(*state)++; (*state)++;
} }
break; break;
} }
return ret; return result;
} }
static void ShowJudgmentSprite(u8 x, u8 y, u8 category, u8 battler) static void ShowJudgmentSprite(u8 x, u8 y, u8 category, u8 battler)
@@ -656,7 +535,8 @@ static void ShowJudgmentSprite(u8 x, u8 y, u8 category, u8 battler)
if (pointsPlayer > pointsOpponent) if (pointsPlayer > pointsOpponent)
{ {
animNum = 2; animNum = ANIM_ICON_CIRCLE;
// +2 to score total for winning
if (battler != 0) if (battler != 0)
gBattleTextBuff2[0] += 2; gBattleTextBuff2[0] += 2;
else else
@@ -664,7 +544,8 @@ static void ShowJudgmentSprite(u8 x, u8 y, u8 category, u8 battler)
} }
else if (pointsPlayer == pointsOpponent) else if (pointsPlayer == pointsOpponent)
{ {
animNum = 1; animNum = ANIM_ICON_TRIANGLE;
// +1 to score total for a tie
if (battler != 0) if (battler != 0)
gBattleTextBuff2[0] += 1; gBattleTextBuff2[0] += 1;
else else
@@ -672,7 +553,7 @@ static void ShowJudgmentSprite(u8 x, u8 y, u8 category, u8 battler)
} }
else else
{ {
animNum = 0; animNum = ANIM_ICON_X;
} }
pointsPlayer = CreateSprite(&sSpriteTemplate_JudgmentIcon, x, y, 0); pointsPlayer = CreateSprite(&sSpriteTemplate_JudgmentIcon, x, y, 0);
@@ -681,7 +562,7 @@ static void ShowJudgmentSprite(u8 x, u8 y, u8 category, u8 battler)
static void SpriteCB_JudgmentIcon(struct Sprite *sprite) static void SpriteCB_JudgmentIcon(struct Sprite *sprite)
{ {
if (gBattleCommunication[0] > 8) if (gBattleCommunication[0] > JUDGEMENT_STATE_FINISHED)
DestroySprite(sprite); DestroySprite(sprite);
} }
@@ -701,8 +582,7 @@ void BattleArena_InitPoints(void)
void BattleArena_AddMindPoints(u8 battler) void BattleArena_AddMindPoints(u8 battler)
{ {
s8 *mindPoints = gBattleStruct->arenaMindPoints; gBattleStruct->arenaMindPoints[battler] += sMindRatings[gCurrentMove];
mindPoints[battler] += sMindRatings[gCurrentMove];
} }
void BattleArena_AddSkillPoints(u8 battler) void BattleArena_AddSkillPoints(u8 battler)
+5 -2
View File
@@ -6368,7 +6368,10 @@ static void Cmd_various(void)
break; break;
case VARIOUS_ARENA_JUDGMENT_WINDOW: case VARIOUS_ARENA_JUDGMENT_WINDOW:
i = BattleArena_ShowJudgmentWindow(&gBattleCommunication[0]); i = BattleArena_ShowJudgmentWindow(&gBattleCommunication[0]);
if (i == 0)
// BattleArena_ShowJudgmentWindow's last state was an intermediate step.
// Return without advancing the current instruction so that it will be called again.
if (i == ARENA_RESULT_RUNNING)
return; return;
gBattleCommunication[1] = i; gBattleCommunication[1] = i;
@@ -8517,7 +8520,7 @@ static void Cmd_friendshiptodamagecalculation(void)
if (gBattleMoves[gCurrentMove].effect == EFFECT_RETURN) if (gBattleMoves[gCurrentMove].effect == EFFECT_RETURN)
gDynamicBasePower = 10 * (gBattleMons[gBattlerAttacker].friendship) / 25; gDynamicBasePower = 10 * (gBattleMons[gBattlerAttacker].friendship) / 25;
else // EFFECT_FRUSTRATION else // EFFECT_FRUSTRATION
gDynamicBasePower = 10 * (255 - gBattleMons[gBattlerAttacker].friendship) / 25; gDynamicBasePower = 10 * (MAX_FRIENDSHIP - gBattleMons[gBattlerAttacker].friendship) / 25;
gBattlescriptCurrInstr++; gBattlescriptCurrInstr++;
} }
+251 -251
View File
@@ -1,253 +1,253 @@
const u16 gEasyChatGroup_Pokemon2[] = { const u16 gEasyChatGroup_Pokemon2[] = {
SPECIES_ABRA, SPECIES_ABRA,
SPECIES_AERODACTYL, SPECIES_AERODACTYL,
SPECIES_AIPOM, SPECIES_AIPOM,
SPECIES_ALAKAZAM, SPECIES_ALAKAZAM,
SPECIES_AMPHAROS, SPECIES_AMPHAROS,
SPECIES_ARBOK, SPECIES_ARBOK,
SPECIES_ARCANINE, SPECIES_ARCANINE,
SPECIES_ARIADOS, SPECIES_ARIADOS,
SPECIES_ARTICUNO, SPECIES_ARTICUNO,
SPECIES_AZUMARILL, SPECIES_AZUMARILL,
SPECIES_BAYLEEF, SPECIES_BAYLEEF,
SPECIES_BEEDRILL, SPECIES_BEEDRILL,
SPECIES_BELLOSSOM, SPECIES_BELLOSSOM,
SPECIES_BELLSPROUT, SPECIES_BELLSPROUT,
SPECIES_BLASTOISE, SPECIES_BLASTOISE,
SPECIES_BLISSEY, SPECIES_BLISSEY,
SPECIES_BULBASAUR, SPECIES_BULBASAUR,
SPECIES_BUTTERFREE, SPECIES_BUTTERFREE,
SPECIES_CATERPIE, SPECIES_CATERPIE,
SPECIES_CELEBI, SPECIES_CELEBI,
SPECIES_CHANSEY, SPECIES_CHANSEY,
SPECIES_CHARIZARD, SPECIES_CHARIZARD,
SPECIES_CHARMANDER, SPECIES_CHARMANDER,
SPECIES_CHARMELEON, SPECIES_CHARMELEON,
SPECIES_CHIKORITA, SPECIES_CHIKORITA,
SPECIES_CHINCHOU, SPECIES_CHINCHOU,
SPECIES_CLEFABLE, SPECIES_CLEFABLE,
SPECIES_CLEFAIRY, SPECIES_CLEFAIRY,
SPECIES_CLEFFA, SPECIES_CLEFFA,
SPECIES_CLOYSTER, SPECIES_CLOYSTER,
SPECIES_CORSOLA, SPECIES_CORSOLA,
SPECIES_CROBAT, SPECIES_CROBAT,
SPECIES_CROCONAW, SPECIES_CROCONAW,
SPECIES_CUBONE, SPECIES_CUBONE,
SPECIES_CYNDAQUIL, SPECIES_CYNDAQUIL,
SPECIES_DELIBIRD, SPECIES_DELIBIRD,
SPECIES_DEWGONG, SPECIES_DEWGONG,
SPECIES_DIGLETT, SPECIES_DIGLETT,
SPECIES_DITTO, SPECIES_DITTO,
SPECIES_DODRIO, SPECIES_DODRIO,
SPECIES_DODUO, SPECIES_DODUO,
SPECIES_DONPHAN, SPECIES_DONPHAN,
SPECIES_DRAGONAIR, SPECIES_DRAGONAIR,
SPECIES_DRAGONITE, SPECIES_DRAGONITE,
SPECIES_DRATINI, SPECIES_DRATINI,
SPECIES_DROWZEE, SPECIES_DROWZEE,
SPECIES_DUGTRIO, SPECIES_DUGTRIO,
SPECIES_DUNSPARCE, SPECIES_DUNSPARCE,
SPECIES_EEVEE, SPECIES_EEVEE,
SPECIES_EKANS, SPECIES_EKANS,
SPECIES_ELECTABUZZ, SPECIES_ELECTABUZZ,
SPECIES_ELECTRODE, SPECIES_ELECTRODE,
SPECIES_ELEKID, SPECIES_ELEKID,
SPECIES_ENTEI, SPECIES_ENTEI,
SPECIES_ESPEON, SPECIES_ESPEON,
SPECIES_EXEGGCUTE, SPECIES_EXEGGCUTE,
SPECIES_EXEGGUTOR, SPECIES_EXEGGUTOR,
SPECIES_FARFETCHD, SPECIES_FARFETCHD,
SPECIES_FEAROW, SPECIES_FEAROW,
SPECIES_FERALIGATR, SPECIES_FERALIGATR,
SPECIES_FLAAFFY, SPECIES_FLAAFFY,
SPECIES_FLAREON, SPECIES_FLAREON,
SPECIES_FORRETRESS, SPECIES_FORRETRESS,
SPECIES_FURRET, SPECIES_FURRET,
SPECIES_GASTLY, SPECIES_GASTLY,
SPECIES_GENGAR, SPECIES_GENGAR,
SPECIES_GEODUDE, SPECIES_GEODUDE,
SPECIES_GIRAFARIG, SPECIES_GIRAFARIG,
SPECIES_GLIGAR, SPECIES_GLIGAR,
SPECIES_GLOOM, SPECIES_GLOOM,
SPECIES_GOLBAT, SPECIES_GOLBAT,
SPECIES_GOLDEEN, SPECIES_GOLDEEN,
SPECIES_GOLDUCK, SPECIES_GOLDUCK,
SPECIES_GOLEM, SPECIES_GOLEM,
SPECIES_GRANBULL, SPECIES_GRANBULL,
SPECIES_GRAVELER, SPECIES_GRAVELER,
SPECIES_GRIMER, SPECIES_GRIMER,
SPECIES_GROWLITHE, SPECIES_GROWLITHE,
SPECIES_GYARADOS, SPECIES_GYARADOS,
SPECIES_HAUNTER, SPECIES_HAUNTER,
SPECIES_HERACROSS, SPECIES_HERACROSS,
SPECIES_HITMONCHAN, SPECIES_HITMONCHAN,
SPECIES_HITMONLEE, SPECIES_HITMONLEE,
SPECIES_HITMONTOP, SPECIES_HITMONTOP,
SPECIES_HO_OH, SPECIES_HO_OH,
SPECIES_HOOTHOOT, SPECIES_HOOTHOOT,
SPECIES_HOPPIP, SPECIES_HOPPIP,
SPECIES_HORSEA, SPECIES_HORSEA,
SPECIES_HOUNDOOM, SPECIES_HOUNDOOM,
SPECIES_HOUNDOUR, SPECIES_HOUNDOUR,
SPECIES_HYPNO, SPECIES_HYPNO,
SPECIES_IGGLYBUFF, SPECIES_IGGLYBUFF,
SPECIES_IVYSAUR, SPECIES_IVYSAUR,
SPECIES_JIGGLYPUFF, SPECIES_JIGGLYPUFF,
SPECIES_JOLTEON, SPECIES_JOLTEON,
SPECIES_JUMPLUFF, SPECIES_JUMPLUFF,
SPECIES_JYNX, SPECIES_JYNX,
SPECIES_KABUTO, SPECIES_KABUTO,
SPECIES_KABUTOPS, SPECIES_KABUTOPS,
SPECIES_KADABRA, SPECIES_KADABRA,
SPECIES_KAKUNA, SPECIES_KAKUNA,
SPECIES_KANGASKHAN, SPECIES_KANGASKHAN,
SPECIES_KINGDRA, SPECIES_KINGDRA,
SPECIES_KINGLER, SPECIES_KINGLER,
SPECIES_KOFFING, SPECIES_KOFFING,
SPECIES_KRABBY, SPECIES_KRABBY,
SPECIES_LANTURN, SPECIES_LANTURN,
SPECIES_LAPRAS, SPECIES_LAPRAS,
SPECIES_LARVITAR, SPECIES_LARVITAR,
SPECIES_LEDIAN, SPECIES_LEDIAN,
SPECIES_LEDYBA, SPECIES_LEDYBA,
SPECIES_LICKITUNG, SPECIES_LICKITUNG,
SPECIES_LUGIA, SPECIES_LUGIA,
SPECIES_MACHAMP, SPECIES_MACHAMP,
SPECIES_MACHOKE, SPECIES_MACHOKE,
SPECIES_MACHOP, SPECIES_MACHOP,
SPECIES_MAGBY, SPECIES_MAGBY,
SPECIES_MAGCARGO, SPECIES_MAGCARGO,
SPECIES_MAGIKARP, SPECIES_MAGIKARP,
SPECIES_MAGMAR, SPECIES_MAGMAR,
SPECIES_MAGNEMITE, SPECIES_MAGNEMITE,
SPECIES_MAGNETON, SPECIES_MAGNETON,
SPECIES_MANKEY, SPECIES_MANKEY,
SPECIES_MANTINE, SPECIES_MANTINE,
SPECIES_MAREEP, SPECIES_MAREEP,
SPECIES_MARILL, SPECIES_MARILL,
SPECIES_MAROWAK, SPECIES_MAROWAK,
SPECIES_MEGANIUM, SPECIES_MEGANIUM,
SPECIES_MEOWTH, SPECIES_MEOWTH,
SPECIES_METAPOD, SPECIES_METAPOD,
SPECIES_MEW, SPECIES_MEW,
SPECIES_MEWTWO, SPECIES_MEWTWO,
SPECIES_MILTANK, SPECIES_MILTANK,
SPECIES_MISDREAVUS, SPECIES_MISDREAVUS,
SPECIES_MOLTRES, SPECIES_MOLTRES,
SPECIES_MR_MIME, SPECIES_MR_MIME,
SPECIES_MUK, SPECIES_MUK,
SPECIES_MURKROW, SPECIES_MURKROW,
SPECIES_NATU, SPECIES_NATU,
SPECIES_NIDOKING, SPECIES_NIDOKING,
SPECIES_NIDOQUEEN, SPECIES_NIDOQUEEN,
SPECIES_NIDORAN_F, SPECIES_NIDORAN_F,
SPECIES_NIDORAN_M, SPECIES_NIDORAN_M,
SPECIES_NIDORINA, SPECIES_NIDORINA,
SPECIES_NIDORINO, SPECIES_NIDORINO,
SPECIES_NINETALES, SPECIES_NINETALES,
SPECIES_NOCTOWL, SPECIES_NOCTOWL,
SPECIES_OCTILLERY, SPECIES_OCTILLERY,
SPECIES_ODDISH, SPECIES_ODDISH,
SPECIES_OMANYTE, SPECIES_OMANYTE,
SPECIES_OMASTAR, SPECIES_OMASTAR,
SPECIES_ONIX, SPECIES_ONIX,
SPECIES_PARAS, SPECIES_PARAS,
SPECIES_PARASECT, SPECIES_PARASECT,
SPECIES_PERSIAN, SPECIES_PERSIAN,
SPECIES_PHANPY, SPECIES_PHANPY,
SPECIES_PICHU, SPECIES_PICHU,
SPECIES_PIDGEOT, SPECIES_PIDGEOT,
SPECIES_PIDGEOTTO, SPECIES_PIDGEOTTO,
SPECIES_PIDGEY, SPECIES_PIDGEY,
SPECIES_PIKACHU, SPECIES_PIKACHU,
SPECIES_PILOSWINE, SPECIES_PILOSWINE,
SPECIES_PINECO, SPECIES_PINECO,
SPECIES_PINSIR, SPECIES_PINSIR,
SPECIES_POLITOED, SPECIES_POLITOED,
SPECIES_POLIWAG, SPECIES_POLIWAG,
SPECIES_POLIWHIRL, SPECIES_POLIWHIRL,
SPECIES_POLIWRATH, SPECIES_POLIWRATH,
SPECIES_PONYTA, SPECIES_PONYTA,
SPECIES_PORYGON, SPECIES_PORYGON,
SPECIES_PORYGON2, SPECIES_PORYGON2,
SPECIES_PRIMEAPE, SPECIES_PRIMEAPE,
SPECIES_PSYDUCK, SPECIES_PSYDUCK,
SPECIES_PUPITAR, SPECIES_PUPITAR,
SPECIES_QUAGSIRE, SPECIES_QUAGSIRE,
SPECIES_QUILAVA, SPECIES_QUILAVA,
SPECIES_QWILFISH, SPECIES_QWILFISH,
SPECIES_RAICHU, SPECIES_RAICHU,
SPECIES_RAIKOU, SPECIES_RAIKOU,
SPECIES_RAPIDASH, SPECIES_RAPIDASH,
SPECIES_RATICATE, SPECIES_RATICATE,
SPECIES_RATTATA, SPECIES_RATTATA,
SPECIES_REMORAID, SPECIES_REMORAID,
SPECIES_RHYDON, SPECIES_RHYDON,
SPECIES_RHYHORN, SPECIES_RHYHORN,
SPECIES_SANDSHREW, SPECIES_SANDSHREW,
SPECIES_SANDSLASH, SPECIES_SANDSLASH,
SPECIES_SCIZOR, SPECIES_SCIZOR,
SPECIES_SCYTHER, SPECIES_SCYTHER,
SPECIES_SEADRA, SPECIES_SEADRA,
SPECIES_SEAKING, SPECIES_SEAKING,
SPECIES_SEEL, SPECIES_SEEL,
SPECIES_SENTRET, SPECIES_SENTRET,
SPECIES_SHELLDER, SPECIES_SHELLDER,
SPECIES_SHUCKLE, SPECIES_SHUCKLE,
SPECIES_SKARMORY, SPECIES_SKARMORY,
SPECIES_SKIPLOOM, SPECIES_SKIPLOOM,
SPECIES_SLOWBRO, SPECIES_SLOWBRO,
SPECIES_SLOWKING, SPECIES_SLOWKING,
SPECIES_SLOWPOKE, SPECIES_SLOWPOKE,
SPECIES_SLUGMA, SPECIES_SLUGMA,
SPECIES_SMEARGLE, SPECIES_SMEARGLE,
SPECIES_SMOOCHUM, SPECIES_SMOOCHUM,
SPECIES_SNEASEL, SPECIES_SNEASEL,
SPECIES_SNORLAX, SPECIES_SNORLAX,
SPECIES_SNUBBULL, SPECIES_SNUBBULL,
SPECIES_SPEAROW, SPECIES_SPEAROW,
SPECIES_SPINARAK, SPECIES_SPINARAK,
SPECIES_SQUIRTLE, SPECIES_SQUIRTLE,
SPECIES_STANTLER, SPECIES_STANTLER,
SPECIES_STARMIE, SPECIES_STARMIE,
SPECIES_STARYU, SPECIES_STARYU,
SPECIES_STEELIX, SPECIES_STEELIX,
SPECIES_SUDOWOODO, SPECIES_SUDOWOODO,
SPECIES_SUICUNE, SPECIES_SUICUNE,
SPECIES_SUNFLORA, SPECIES_SUNFLORA,
SPECIES_SUNKERN, SPECIES_SUNKERN,
SPECIES_SWINUB, SPECIES_SWINUB,
SPECIES_TANGELA, SPECIES_TANGELA,
SPECIES_TAUROS, SPECIES_TAUROS,
SPECIES_TEDDIURSA, SPECIES_TEDDIURSA,
SPECIES_TENTACOOL, SPECIES_TENTACOOL,
SPECIES_TENTACRUEL, SPECIES_TENTACRUEL,
SPECIES_TOGEPI, SPECIES_TOGEPI,
SPECIES_TOGETIC, SPECIES_TOGETIC,
SPECIES_TOTODILE, SPECIES_TOTODILE,
SPECIES_TYPHLOSION, SPECIES_TYPHLOSION,
SPECIES_TYRANITAR, SPECIES_TYRANITAR,
SPECIES_TYROGUE, SPECIES_TYROGUE,
SPECIES_UMBREON, SPECIES_UMBREON,
SPECIES_UNOWN, SPECIES_UNOWN,
SPECIES_URSARING, SPECIES_URSARING,
SPECIES_VAPOREON, SPECIES_VAPOREON,
SPECIES_VENOMOTH, SPECIES_VENOMOTH,
SPECIES_VENONAT, SPECIES_VENONAT,
SPECIES_VENUSAUR, SPECIES_VENUSAUR,
SPECIES_VICTREEBEL, SPECIES_VICTREEBEL,
SPECIES_VILEPLUME, SPECIES_VILEPLUME,
SPECIES_VOLTORB, SPECIES_VOLTORB,
SPECIES_VULPIX, SPECIES_VULPIX,
SPECIES_WARTORTLE, SPECIES_WARTORTLE,
SPECIES_WEEDLE, SPECIES_WEEDLE,
SPECIES_WEEPINBELL, SPECIES_WEEPINBELL,
SPECIES_WEEZING, SPECIES_WEEZING,
SPECIES_WIGGLYTUFF, SPECIES_WIGGLYTUFF,
SPECIES_WOBBUFFET, SPECIES_WOBBUFFET,
SPECIES_WOOPER, SPECIES_WOOPER,
SPECIES_XATU, SPECIES_XATU,
SPECIES_YANMA, SPECIES_YANMA,
SPECIES_ZAPDOS, SPECIES_ZAPDOS,
SPECIES_ZUBAT, SPECIES_ZUBAT,
}; };
@@ -253,9 +253,9 @@ u8 MovementAction_AcroEndWheelieMoveRight_Step1(struct ObjectEvent *, struct Spr
u8 MovementAction_Levitate_Step0(struct ObjectEvent *, struct Sprite *); u8 MovementAction_Levitate_Step0(struct ObjectEvent *, struct Sprite *);
u8 MovementAction_StopLevitate_Step0(struct ObjectEvent *, struct Sprite *); u8 MovementAction_StopLevitate_Step0(struct ObjectEvent *, struct Sprite *);
u8 MovementAction_StopLevitateAtTop_Step0(struct ObjectEvent *, struct Sprite *); u8 MovementAction_StopLevitateAtTop_Step0(struct ObjectEvent *, struct Sprite *);
u8 MovementAction_StoreAndLockAnim_Step0(struct ObjectEvent *, struct Sprite *); u8 MovementAction_LockAnim_Step0(struct ObjectEvent *, struct Sprite *);
u8 MovementAction_Finish(struct ObjectEvent *, struct Sprite *); u8 MovementAction_Finish(struct ObjectEvent *, struct Sprite *);
u8 MovementAction_FreeAndUnlockAnim_Step0(struct ObjectEvent *, struct Sprite *); u8 MovementAction_UnlockAnim_Step0(struct ObjectEvent *, struct Sprite *);
u8 MovementAction_FlyUp_Step0(struct ObjectEvent *, struct Sprite *); u8 MovementAction_FlyUp_Step0(struct ObjectEvent *, struct Sprite *);
u8 MovementAction_FlyUp_Step1(struct ObjectEvent *, struct Sprite *); u8 MovementAction_FlyUp_Step1(struct ObjectEvent *, struct Sprite *);
u8 MovementAction_Fly_Finish(struct ObjectEvent *, struct Sprite *); u8 MovementAction_Fly_Finish(struct ObjectEvent *, struct Sprite *);
@@ -410,8 +410,8 @@ u8 (*const gMovementActionFuncs_WalkSlowDiagonalUpLeft[])(struct ObjectEvent *,
u8 (*const gMovementActionFuncs_WalkSlowDiagonalUpRight[])(struct ObjectEvent *, struct Sprite *); u8 (*const gMovementActionFuncs_WalkSlowDiagonalUpRight[])(struct ObjectEvent *, struct Sprite *);
u8 (*const gMovementActionFuncs_WalkSlowDiagonalDownLeft[])(struct ObjectEvent *, struct Sprite *); u8 (*const gMovementActionFuncs_WalkSlowDiagonalDownLeft[])(struct ObjectEvent *, struct Sprite *);
u8 (*const gMovementActionFuncs_WalkSlowDiagonalDownRight[])(struct ObjectEvent *, struct Sprite *); u8 (*const gMovementActionFuncs_WalkSlowDiagonalDownRight[])(struct ObjectEvent *, struct Sprite *);
u8 (*const gMovementActionFuncs_StoreAndLockAnim[])(struct ObjectEvent *, struct Sprite *); u8 (*const gMovementActionFuncs_LockAnim[])(struct ObjectEvent *, struct Sprite *);
u8 (*const gMovementActionFuncs_FreeAndUnlockAnim[])(struct ObjectEvent *, struct Sprite *); u8 (*const gMovementActionFuncs_UnlockAnim[])(struct ObjectEvent *, struct Sprite *);
u8 (*const gMovementActionFuncs_WalkLeftAffine[])(struct ObjectEvent *, struct Sprite *); u8 (*const gMovementActionFuncs_WalkLeftAffine[])(struct ObjectEvent *, struct Sprite *);
u8 (*const gMovementActionFuncs_WalkRightAffine[])(struct ObjectEvent *, struct Sprite *); u8 (*const gMovementActionFuncs_WalkRightAffine[])(struct ObjectEvent *, struct Sprite *);
u8 (*const gMovementActionFuncs_Levitate[])(struct ObjectEvent *, struct Sprite *); u8 (*const gMovementActionFuncs_Levitate[])(struct ObjectEvent *, struct Sprite *);
@@ -570,8 +570,8 @@ u8 (*const *const gMovementActionFuncs[])(struct ObjectEvent *, struct Sprite *)
[MOVEMENT_ACTION_WALK_SLOW_DIAGONAL_UP_RIGHT] = gMovementActionFuncs_WalkSlowDiagonalUpRight, [MOVEMENT_ACTION_WALK_SLOW_DIAGONAL_UP_RIGHT] = gMovementActionFuncs_WalkSlowDiagonalUpRight,
[MOVEMENT_ACTION_WALK_SLOW_DIAGONAL_DOWN_LEFT] = gMovementActionFuncs_WalkSlowDiagonalDownLeft, [MOVEMENT_ACTION_WALK_SLOW_DIAGONAL_DOWN_LEFT] = gMovementActionFuncs_WalkSlowDiagonalDownLeft,
[MOVEMENT_ACTION_WALK_SLOW_DIAGONAL_DOWN_RIGHT] = gMovementActionFuncs_WalkSlowDiagonalDownRight, [MOVEMENT_ACTION_WALK_SLOW_DIAGONAL_DOWN_RIGHT] = gMovementActionFuncs_WalkSlowDiagonalDownRight,
[MOVEMENT_ACTION_STORE_AND_LOCK_ANIM] = gMovementActionFuncs_StoreAndLockAnim, [MOVEMENT_ACTION_LOCK_ANIM] = gMovementActionFuncs_LockAnim,
[MOVEMENT_ACTION_FREE_AND_UNLOCK_ANIM] = gMovementActionFuncs_FreeAndUnlockAnim, [MOVEMENT_ACTION_UNLOCK_ANIM] = gMovementActionFuncs_UnlockAnim,
[MOVEMENT_ACTION_WALK_LEFT_AFFINE] = gMovementActionFuncs_WalkLeftAffine, [MOVEMENT_ACTION_WALK_LEFT_AFFINE] = gMovementActionFuncs_WalkLeftAffine,
[MOVEMENT_ACTION_WALK_RIGHT_AFFINE] = gMovementActionFuncs_WalkRightAffine, [MOVEMENT_ACTION_WALK_RIGHT_AFFINE] = gMovementActionFuncs_WalkRightAffine,
[MOVEMENT_ACTION_LEVITATE] = gMovementActionFuncs_Levitate, [MOVEMENT_ACTION_LEVITATE] = gMovementActionFuncs_Levitate,
+28 -89
View File
@@ -1,9 +1,3 @@
enum {
TAG_POKEBALL = 1200,
TAG_POKEBALL_SMALL,
TAG_STATUS_ICONS,
};
static const struct BgTemplate sPartyMenuBgTemplates[] = static const struct BgTemplate sPartyMenuBgTemplates[] =
{ {
{ {
@@ -35,12 +29,6 @@ static const struct BgTemplate sPartyMenuBgTemplates[] =
}, },
}; };
enum
{
PARTY_BOX_LEFT_COLUMN,
PARTY_BOX_RIGHT_COLUMN
};
static const struct PartyMenuBoxInfoRects sPartyBoxInfoRects[] = static const struct PartyMenuBoxInfoRects sPartyBoxInfoRects[] =
{ {
[PARTY_BOX_LEFT_COLUMN] = [PARTY_BOX_LEFT_COLUMN] =
@@ -663,51 +651,6 @@ static const u16 sUnusedData[] =
0x0121, 0x013b, 0x000f, 0x0013, 0x0039, 0x0046, 0x0094, 0x00f9, 0x007f, 0x0123, 0x0121, 0x013b, 0x000f, 0x0013, 0x0039, 0x0046, 0x0094, 0x00f9, 0x007f, 0x0123,
}; };
enum
{
MENU_SUMMARY,
MENU_SWITCH,
MENU_CANCEL1,
MENU_ITEM,
MENU_GIVE,
MENU_TAKE_ITEM,
MENU_MAIL,
MENU_TAKE_MAIL,
MENU_READ,
MENU_CANCEL2,
MENU_SHIFT,
MENU_SEND_OUT,
MENU_ENTER,
MENU_NO_ENTRY,
MENU_STORE,
MENU_REGISTER,
MENU_TRADE1,
MENU_TRADE2,
MENU_TOSS,
MENU_FIELD_MOVES,
};
enum
{
FIELD_MOVE_CUT,
FIELD_MOVE_FLASH,
FIELD_MOVE_ROCK_SMASH,
FIELD_MOVE_STRENGTH,
FIELD_MOVE_SURF,
FIELD_MOVE_FLY,
FIELD_MOVE_DIVE,
FIELD_MOVE_WATERFALL,
FIELD_MOVE_TELEPORT,
FIELD_MOVE_DIG,
FIELD_MOVE_SECRET_POWER,
FIELD_MOVE_MILK_DRINK,
FIELD_MOVE_SOFT_BOILED,
FIELD_MOVE_SWEET_SCENT,
};
// What a weird choice of table termination;
#define FIELD_MOVE_TERMINATOR MOVE_SWORDS_DANCE
struct struct
{ {
const u8 *text; const u8 *text;
@@ -763,25 +706,6 @@ static const u8 sPartyMenuAction_TradeSummaryCancel1[] = {MENU_TRADE1, MENU_SUMM
static const u8 sPartyMenuAction_TradeSummaryCancel2[] = {MENU_TRADE2, MENU_SUMMARY, MENU_CANCEL1}; static const u8 sPartyMenuAction_TradeSummaryCancel2[] = {MENU_TRADE2, MENU_SUMMARY, MENU_CANCEL1};
static const u8 sPartyMenuAction_TakeItemTossCancel[] = {MENU_TAKE_ITEM, MENU_TOSS, MENU_CANCEL1}; static const u8 sPartyMenuAction_TakeItemTossCancel[] = {MENU_TAKE_ITEM, MENU_TOSS, MENU_CANCEL1};
// IDs for the action lists that appear when a party mon is selected
enum
{
ACTIONS_NONE,
ACTIONS_SWITCH,
ACTIONS_SHIFT,
ACTIONS_SEND_OUT,
ACTIONS_ENTER,
ACTIONS_NO_ENTRY,
ACTIONS_STORE,
ACTIONS_SUMMARY_ONLY,
ACTIONS_ITEM,
ACTIONS_MAIL,
ACTIONS_REGISTER,
ACTIONS_TRADE,
ACTIONS_SPIN_TRADE,
ACTIONS_TAKEITEM_TOSS
};
static const u8 *const sPartyMenuActions[] = static const u8 *const sPartyMenuActions[] =
{ {
[ACTIONS_NONE] = NULL, [ACTIONS_NONE] = NULL,
@@ -818,17 +742,32 @@ static const u8 sPartyMenuActionCounts[] =
[ACTIONS_TAKEITEM_TOSS] = ARRAY_COUNT(sPartyMenuAction_TakeItemTossCancel) [ACTIONS_TAKEITEM_TOSS] = ARRAY_COUNT(sPartyMenuAction_TakeItemTossCancel)
}; };
static const u16 sFieldMoves[] = static const u16 sFieldMoves[FIELD_MOVES_COUNT + 1] =
{ {
MOVE_CUT, MOVE_FLASH, MOVE_ROCK_SMASH, MOVE_STRENGTH, MOVE_SURF, MOVE_FLY, MOVE_DIVE, MOVE_WATERFALL, MOVE_TELEPORT, [FIELD_MOVE_CUT] = MOVE_CUT,
MOVE_DIG, MOVE_SECRET_POWER, MOVE_MILK_DRINK, MOVE_SOFT_BOILED, MOVE_SWEET_SCENT, FIELD_MOVE_TERMINATOR [FIELD_MOVE_FLASH] = MOVE_FLASH,
[FIELD_MOVE_ROCK_SMASH] = MOVE_ROCK_SMASH,
[FIELD_MOVE_STRENGTH] = MOVE_STRENGTH,
[FIELD_MOVE_SURF] = MOVE_SURF,
[FIELD_MOVE_FLY] = MOVE_FLY,
[FIELD_MOVE_DIVE] = MOVE_DIVE,
[FIELD_MOVE_WATERFALL] = MOVE_WATERFALL,
[FIELD_MOVE_TELEPORT] = MOVE_TELEPORT,
[FIELD_MOVE_DIG] = MOVE_DIG,
[FIELD_MOVE_SECRET_POWER] = MOVE_SECRET_POWER,
[FIELD_MOVE_MILK_DRINK] = MOVE_MILK_DRINK,
[FIELD_MOVE_SOFT_BOILED] = MOVE_SOFT_BOILED,
[FIELD_MOVE_SWEET_SCENT] = MOVE_SWEET_SCENT,
// NOTE: This value is used as the terminal value for the table. There's no reason to do this, as the size of the table is known.
// Whichever move shares this value (MOVE_SWORDS_DANCE by default) if present will be treated as the end of the array rather than a field move.
[FIELD_MOVES_COUNT] = FIELD_MOVES_COUNT
}; };
struct struct
{ {
bool8 (*fieldMoveFunc)(void); bool8 (*fieldMoveFunc)(void);
u8 msgId; u8 msgId;
} static const sFieldMoveCursorCallbacks[] = } static const sFieldMoveCursorCallbacks[FIELD_MOVES_COUNT] =
{ {
[FIELD_MOVE_CUT] = {SetUpFieldMove_Cut, PARTY_MSG_NOTHING_TO_CUT}, [FIELD_MOVE_CUT] = {SetUpFieldMove_Cut, PARTY_MSG_NOTHING_TO_CUT},
[FIELD_MOVE_FLASH] = {SetUpFieldMove_Flash, PARTY_MSG_CANT_USE_HERE}, [FIELD_MOVE_FLASH] = {SetUpFieldMove_Flash, PARTY_MSG_CANT_USE_HERE},
@@ -899,23 +838,23 @@ static const union AnimCmd *const sSpriteAnimTable_HeldItem[] =
static const struct SpriteSheet sSpriteSheet_HeldItem = static const struct SpriteSheet sSpriteSheet_HeldItem =
{ {
sHeldItemGfx, sizeof(sHeldItemGfx), 0xd750 .data = sHeldItemGfx, .size = sizeof(sHeldItemGfx), .tag = TAG_HELD_ITEM
}; };
static const struct SpritePalette sSpritePalette_HeldItem = static const struct SpritePalette sSpritePalette_HeldItem =
{ {
sHeldItemPalette, 0xd750 .data = sHeldItemPalette, .tag = TAG_HELD_ITEM
}; };
static const struct SpriteTemplate sSpriteTemplate_HeldItem = static const struct SpriteTemplate sSpriteTemplate_HeldItem =
{ {
0xd750, .tileTag = TAG_HELD_ITEM,
0xd750, .paletteTag = TAG_HELD_ITEM,
&sOamData_HeldItem, .oam = &sOamData_HeldItem,
sSpriteAnimTable_HeldItem, .anims = sSpriteAnimTable_HeldItem,
NULL, .images = NULL,
gDummySpriteAffineAnimTable, .affineAnims = gDummySpriteAffineAnimTable,
SpriteCallbackDummy .callback = SpriteCallbackDummy
}; };
static const struct OamData sOamData_MenuPokeball = static const struct OamData sOamData_MenuPokeball =
+17 -17
View File
@@ -8746,13 +8746,13 @@ static void DoRippleFieldEffect(struct ObjectEvent *objectEvent, struct Sprite *
FieldEffectStart(FLDEFF_RIPPLE); FieldEffectStart(FLDEFF_RIPPLE);
} }
u8 (*const gMovementActionFuncs_StoreAndLockAnim[])(struct ObjectEvent *, struct Sprite *) = { u8 (*const gMovementActionFuncs_LockAnim[])(struct ObjectEvent *, struct Sprite *) = {
MovementAction_StoreAndLockAnim_Step0, MovementAction_LockAnim_Step0,
MovementAction_Finish, MovementAction_Finish,
}; };
u8 (*const gMovementActionFuncs_FreeAndUnlockAnim[])(struct ObjectEvent *, struct Sprite *) = { u8 (*const gMovementActionFuncs_UnlockAnim[])(struct ObjectEvent *, struct Sprite *) = {
MovementAction_FreeAndUnlockAnim_Step0, MovementAction_UnlockAnim_Step0,
MovementAction_Finish, MovementAction_Finish,
}; };
@@ -8768,36 +8768,36 @@ u8 (*const gMovementActionFuncs_FlyDown[])(struct ObjectEvent *, struct Sprite *
MovementAction_Fly_Finish, MovementAction_Fly_Finish,
}; };
u8 MovementAction_StoreAndLockAnim_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) u8 MovementAction_LockAnim_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{ {
bool32 ableToStore = FALSE; bool32 ableToStore = FALSE;
if (sLockedAnimObjectEvents == NULL) if (sLockedAnimObjectEvents == NULL)
{ {
sLockedAnimObjectEvents = AllocZeroed(sizeof(struct LockedAnimObjectEvents)); sLockedAnimObjectEvents = AllocZeroed(sizeof(struct LockedAnimObjectEvents));
sLockedAnimObjectEvents->objectEventIds[0] = objectEvent->localId; sLockedAnimObjectEvents->localIds[0] = objectEvent->localId;
sLockedAnimObjectEvents->count = 1; sLockedAnimObjectEvents->count = 1;
ableToStore = TRUE; ableToStore = TRUE;
} }
else else
{ {
u8 i; u8 i;
u8 firstFreeSlot; u8 firstFreeSlot = OBJECT_EVENTS_COUNT;
bool32 found; bool32 found = FALSE;
for (firstFreeSlot = 16, found = FALSE, i = 0; i < 16; i++) for (i = 0; i < OBJECT_EVENTS_COUNT; i++)
{ {
if (firstFreeSlot == 16 && sLockedAnimObjectEvents->objectEventIds[i] == 0) if (firstFreeSlot == OBJECT_EVENTS_COUNT && sLockedAnimObjectEvents->localIds[i] == 0)
firstFreeSlot = i; firstFreeSlot = i;
if (sLockedAnimObjectEvents->objectEventIds[i] == objectEvent->localId) if (sLockedAnimObjectEvents->localIds[i] == objectEvent->localId)
{ {
found = TRUE; found = TRUE;
break; break;
} }
} }
if (!found && firstFreeSlot != 16) if (!found && firstFreeSlot != OBJECT_EVENTS_COUNT)
{ {
sLockedAnimObjectEvents->objectEventIds[firstFreeSlot] = objectEvent->localId; sLockedAnimObjectEvents->localIds[firstFreeSlot] = objectEvent->localId;
sLockedAnimObjectEvents->count++; sLockedAnimObjectEvents->count++;
ableToStore = TRUE; ableToStore = TRUE;
} }
@@ -8813,7 +8813,7 @@ u8 MovementAction_StoreAndLockAnim_Step0(struct ObjectEvent *objectEvent, struct
return TRUE; return TRUE;
} }
u8 MovementAction_FreeAndUnlockAnim_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite) u8 MovementAction_UnlockAnim_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{ {
bool32 ableToStore; bool32 ableToStore;
u8 index; u8 index;
@@ -8823,9 +8823,9 @@ u8 MovementAction_FreeAndUnlockAnim_Step0(struct ObjectEvent *objectEvent, struc
{ {
ableToStore = FALSE; ableToStore = FALSE;
index = FindLockedObjectEventIndex(objectEvent); index = FindLockedObjectEventIndex(objectEvent);
if (index != 16) if (index != OBJECT_EVENTS_COUNT)
{ {
sLockedAnimObjectEvents->objectEventIds[index] = 0; sLockedAnimObjectEvents->localIds[index] = 0;
sLockedAnimObjectEvents->count--; sLockedAnimObjectEvents->count--;
ableToStore = TRUE; ableToStore = TRUE;
} }
@@ -8848,7 +8848,7 @@ u8 FindLockedObjectEventIndex(struct ObjectEvent *objectEvent)
for (i = 0; i < OBJECT_EVENTS_COUNT; i++) for (i = 0; i < OBJECT_EVENTS_COUNT; i++)
{ {
if (sLockedAnimObjectEvents->objectEventIds[i] == objectEvent->localId) if (sLockedAnimObjectEvents->localIds[i] == objectEvent->localId)
return i; return i;
} }
return OBJECT_EVENTS_COUNT; return OBJECT_EVENTS_COUNT;
+31 -31
View File
@@ -67,40 +67,40 @@ static void Task_TryFieldPoisonWhiteOut(u8 taskId)
s16 *data = gTasks[taskId].data; s16 *data = gTasks[taskId].data;
switch (tState) switch (tState)
{ {
case 0: case 0:
for (; tPartyIdx < PARTY_SIZE; tPartyIdx++) for (; tPartyIdx < PARTY_SIZE; tPartyIdx++)
{
if (MonFaintedFromPoison(tPartyIdx))
{ {
if (MonFaintedFromPoison(tPartyIdx)) FaintFromFieldPoison(tPartyIdx);
{ ShowFieldMessage(gText_PkmnFainted_FldPsn);
FaintFromFieldPoison(tPartyIdx); tState++;
ShowFieldMessage(gText_PkmnFainted_FldPsn); return;
tState++;
return;
}
}
tState = 2; // Finished checking party
break;
case 1:
// Wait for "{mon} fainted" message, then return to party loop
if (IsFieldMessageBoxHidden())
tState--;
break;
case 2:
if (AllMonsFainted())
{
// Battle facilities have their own white out script to handle the challenge loss
if (InBattlePyramid() | InBattlePike() || InTrainerHillChallenge())
gSpecialVar_Result = FLDPSN_FRONTIER_WHITEOUT;
else
gSpecialVar_Result = FLDPSN_WHITEOUT;
} }
}
tState = 2; // Finished checking party
break;
case 1:
// Wait for "{mon} fainted" message, then return to party loop
if (IsFieldMessageBoxHidden())
tState--;
break;
case 2:
if (AllMonsFainted())
{
// Battle facilities have their own white out script to handle the challenge loss
if (InBattlePyramid() | InBattlePike() || InTrainerHillChallenge())
gSpecialVar_Result = FLDPSN_FRONTIER_WHITEOUT;
else else
{ gSpecialVar_Result = FLDPSN_WHITEOUT;
gSpecialVar_Result = FLDPSN_NO_WHITEOUT; }
} else
ScriptContext_Enable(); {
DestroyTask(taskId); gSpecialVar_Result = FLDPSN_NO_WHITEOUT;
break; }
ScriptContext_Enable();
DestroyTask(taskId);
break;
} }
} }
+8 -8
View File
@@ -868,7 +868,7 @@ static void PetalburgGymSetDoorMetatiles(u8 roomNumber, u16 metatileId)
for (i = 0; i < nDoors; i++) for (i = 0; i < nDoors; i++)
{ {
MapGridSetMetatileIdAt(doorCoordsX[i] + MAP_OFFSET, doorCoordsY[i] + MAP_OFFSET, metatileId | MAPGRID_COLLISION_MASK); MapGridSetMetatileIdAt(doorCoordsX[i] + MAP_OFFSET, doorCoordsY[i] + MAP_OFFSET, metatileId | MAPGRID_COLLISION_MASK);
MapGridSetMetatileIdAt(doorCoordsX[i] + MAP_OFFSET, doorCoordsY[i] + MAP_OFFSET + 1, (metatileId + 8) | MAPGRID_COLLISION_MASK); MapGridSetMetatileIdAt(doorCoordsX[i] + MAP_OFFSET, doorCoordsY[i] + MAP_OFFSET + 1, (metatileId + METATILE_ROW_WIDTH) | MAPGRID_COLLISION_MASK);
} }
DrawWholeMapView(); DrawWholeMapView();
} }
@@ -941,19 +941,19 @@ u8 GetLeadMonFriendshipScore(void)
{ {
struct Pokemon *pokemon = &gPlayerParty[GetLeadMonIndex()]; struct Pokemon *pokemon = &gPlayerParty[GetLeadMonIndex()];
if (GetMonData(pokemon, MON_DATA_FRIENDSHIP) == MAX_FRIENDSHIP) if (GetMonData(pokemon, MON_DATA_FRIENDSHIP) == MAX_FRIENDSHIP)
return 6; return FRIENDSHIP_MAX;
if (GetMonData(pokemon, MON_DATA_FRIENDSHIP) >= 200) if (GetMonData(pokemon, MON_DATA_FRIENDSHIP) >= 200)
return 5; return FRIENDSHIP_200_TO_254;
if (GetMonData(pokemon, MON_DATA_FRIENDSHIP) >= 150) if (GetMonData(pokemon, MON_DATA_FRIENDSHIP) >= 150)
return 4; return FRIENDSHIP_150_TO_199;
if (GetMonData(pokemon, MON_DATA_FRIENDSHIP) >= 100) if (GetMonData(pokemon, MON_DATA_FRIENDSHIP) >= 100)
return 3; return FRIENDSHIP_100_TO_149;
if (GetMonData(pokemon, MON_DATA_FRIENDSHIP) >= 50) if (GetMonData(pokemon, MON_DATA_FRIENDSHIP) >= 50)
return 2; return FRIENDSHIP_50_TO_99;
if (GetMonData(pokemon, MON_DATA_FRIENDSHIP) >= 1) if (GetMonData(pokemon, MON_DATA_FRIENDSHIP) >= 1)
return 1; return FRIENDSHIP_1_TO_49;
return 0; return FRIENDSHIP_NONE;
} }
static void CB2_FieldShowRegionMap(void) static void CB2_FieldShowRegionMap(void)
+32 -32
View File
@@ -110,38 +110,38 @@ ALIGNED(4) const u8 gFontNarrowLatinGlyphWidths[] = {
ALIGNED(4) const u16 gFontShortLatinGlyphs[] = INCBIN_U16("graphics/fonts/short.latfont"); ALIGNED(4) const u16 gFontShortLatinGlyphs[] = INCBIN_U16("graphics/fonts/short.latfont");
ALIGNED(4) const u8 gFontShortLatinGlyphWidths[] = { ALIGNED(4) const u8 gFontShortLatinGlyphWidths[] = {
3, 6, 6, 6, 6, 6, 6, 6, 6, 6, 3, 6, 6, 6, 6, 6, 3, 6, 6, 6, 6, 6, 6, 6, 6, 6, 3, 6, 6, 6, 6, 6,
8, 6, 6, 6, 6, 6, 6, 6, 3, 6, 6, 6, 6, 6, 6, 3, 8, 6, 6, 6, 6, 6, 6, 6, 3, 6, 6, 6, 6, 6, 6, 3,
6, 6, 6, 6, 6, 8, 6, 6, 6, 6, 6, 6, 9, 8, 8, 3, 6, 6, 6, 6, 6, 8, 6, 6, 6, 6, 6, 6, 9, 8, 8, 3,
3, 3, 3, 3, 10, 8, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 10, 8, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
6, 6, 6, 8, 8, 8, 8, 8, 8, 4, 6, 8, 5, 5, 3, 3, 6, 6, 6, 8, 8, 8, 8, 8, 8, 4, 6, 8, 5, 5, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 6, 3, 3, 3, 3, 3, 3, 6, 3, 3, 3, 3, 3, 3, 3, 3, 6, 3, 3, 3, 3, 3, 3, 6,
3, 3, 3, 3, 3, 3, 3, 6, 3, 12, 12, 12, 12, 1, 2, 3, 3, 3, 3, 3, 3, 3, 3, 6, 3, 12, 12, 12, 12, 1, 2, 3,
4, 5, 6, 7, 8, 8, 8, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 5, 6, 7, 8, 8, 8, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
8, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 5, 6, 5, 8, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 5, 6, 5,
6, 6, 6, 3, 3, 6, 6, 8, 5, 9, 6, 6, 6, 6, 6, 6, 6, 6, 6, 3, 3, 6, 6, 8, 5, 9, 6, 6, 6, 6, 6, 6,
6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 5, 6, 6, 4, 6, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 5, 6, 6, 4, 6, 5,
5, 6, 5, 6, 6, 6, 5, 5, 5, 6, 6, 6, 6, 6, 6, 8, 5, 6, 5, 6, 6, 6, 5, 5, 5, 6, 6, 6, 6, 6, 6, 8,
5, 6, 6, 6, 6, 6, 6, 3, 3, 3, 3, 3, 3, 3, 3, 3, 5, 6, 6, 6, 6, 6, 6, 3, 3, 3, 3, 3, 3, 3, 3, 3,
12, 12, 12, 12, 8, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 12, 12, 12, 12, 8, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
10, 10, 10, 10, 10, 10, 10, 10, 3, 3, 3, 3, 3, 3, 3, 3, 10, 10, 10, 10, 10, 10, 10, 10, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 3, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 3,
}; };
ALIGNED(4) const u16 gFontNormalLatinGlyphs[] = INCBIN_U16("graphics/fonts/normal.latfont"); ALIGNED(4) const u16 gFontNormalLatinGlyphs[] = INCBIN_U16("graphics/fonts/normal.latfont");
+1 -2
View File
@@ -2520,8 +2520,7 @@ static u16 KeyInterCB_Idle(u32 key)
return LINK_KEY_CODE_EMPTY; return LINK_KEY_CODE_EMPTY;
} }
// Ignore the player's inputs as long as there is an event script // Ignore the player's inputs as long as there is an event script being executed.
// in ScriptContext2.
static u16 KeyInterCB_DeferToEventScript(u32 key) static u16 KeyInterCB_DeferToEventScript(u32 key)
{ {
u16 retVal; u16 retVal;
+81 -7
View File
@@ -73,6 +73,80 @@
#include "constants/rgb.h" #include "constants/rgb.h"
#include "constants/songs.h" #include "constants/songs.h"
enum {
MENU_SUMMARY,
MENU_SWITCH,
MENU_CANCEL1,
MENU_ITEM,
MENU_GIVE,
MENU_TAKE_ITEM,
MENU_MAIL,
MENU_TAKE_MAIL,
MENU_READ,
MENU_CANCEL2,
MENU_SHIFT,
MENU_SEND_OUT,
MENU_ENTER,
MENU_NO_ENTRY,
MENU_STORE,
MENU_REGISTER,
MENU_TRADE1,
MENU_TRADE2,
MENU_TOSS,
MENU_FIELD_MOVES
};
// IDs for the action lists that appear when a party mon is selected
enum {
ACTIONS_NONE,
ACTIONS_SWITCH,
ACTIONS_SHIFT,
ACTIONS_SEND_OUT,
ACTIONS_ENTER,
ACTIONS_NO_ENTRY,
ACTIONS_STORE,
ACTIONS_SUMMARY_ONLY,
ACTIONS_ITEM,
ACTIONS_MAIL,
ACTIONS_REGISTER,
ACTIONS_TRADE,
ACTIONS_SPIN_TRADE,
ACTIONS_TAKEITEM_TOSS,
};
// In CursorCb_FieldMove, field moves <= FIELD_MOVE_WATERFALL are assumed to line up with the badge flags.
// Badge flag names are commented here for people searching for references to remove the badge requirement.
enum {
FIELD_MOVE_CUT, // FLAG_BADGE01_GET
FIELD_MOVE_FLASH, // FLAG_BADGE02_GET
FIELD_MOVE_ROCK_SMASH, // FLAG_BADGE03_GET
FIELD_MOVE_STRENGTH, // FLAG_BADGE04_GET
FIELD_MOVE_SURF, // FLAG_BADGE05_GET
FIELD_MOVE_FLY, // FLAG_BADGE06_GET
FIELD_MOVE_DIVE, // FLAG_BADGE07_GET
FIELD_MOVE_WATERFALL, // FLAG_BADGE08_GET
FIELD_MOVE_TELEPORT,
FIELD_MOVE_DIG,
FIELD_MOVE_SECRET_POWER,
FIELD_MOVE_MILK_DRINK,
FIELD_MOVE_SOFT_BOILED,
FIELD_MOVE_SWEET_SCENT,
FIELD_MOVES_COUNT
};
enum {
PARTY_BOX_LEFT_COLUMN,
PARTY_BOX_RIGHT_COLUMN,
};
enum {
TAG_POKEBALL = 1200,
TAG_POKEBALL_SMALL,
TAG_STATUS_ICONS,
};
#define TAG_HELD_ITEM 55120
#define PARTY_PAL_SELECTED (1 << 0) #define PARTY_PAL_SELECTED (1 << 0)
#define PARTY_PAL_FAINTED (1 << 1) #define PARTY_PAL_FAINTED (1 << 1)
#define PARTY_PAL_TO_SWITCH (1 << 2) #define PARTY_PAL_TO_SWITCH (1 << 2)
@@ -1186,13 +1260,13 @@ void Task_HandleChooseMonInput(u8 taskId)
switch (PartyMenuButtonHandler(slotPtr)) switch (PartyMenuButtonHandler(slotPtr))
{ {
case 1: // Selected mon case A_BUTTON: // Selected mon
HandleChooseMonSelection(taskId, slotPtr); HandleChooseMonSelection(taskId, slotPtr);
break; break;
case 2: // Selected Cancel case B_BUTTON: // Selected Cancel / pressed B
HandleChooseMonCancel(taskId, slotPtr); HandleChooseMonCancel(taskId, slotPtr);
break; break;
case 8: // Start button case START_BUTTON:
if (sPartyMenuInternal->chooseHalf) if (sPartyMenuInternal->chooseHalf)
{ {
PlaySE(SE_SELECT); PlaySE(SE_SELECT);
@@ -1409,7 +1483,7 @@ static u16 PartyMenuButtonHandler(s8 *slotPtr)
} }
if (JOY_NEW(START_BUTTON)) if (JOY_NEW(START_BUTTON))
return 8; return START_BUTTON;
if (movementDir) if (movementDir)
{ {
@@ -1418,8 +1492,8 @@ static u16 PartyMenuButtonHandler(s8 *slotPtr)
} }
// Pressed Cancel // Pressed Cancel
if ((JOY_NEW(A_BUTTON)) && *slotPtr == PARTY_SIZE + 1) if (JOY_NEW(A_BUTTON) && *slotPtr == PARTY_SIZE + 1)
return 2; return B_BUTTON;
return JOY_NEW(A_BUTTON | B_BUTTON); return JOY_NEW(A_BUTTON | B_BUTTON);
} }
@@ -2536,7 +2610,7 @@ static void SetPartyMonFieldSelectionActions(struct Pokemon *mons, u8 slotId)
// Add field moves to action list // Add field moves to action list
for (i = 0; i < MAX_MON_MOVES; i++) for (i = 0; i < MAX_MON_MOVES; i++)
{ {
for (j = 0; sFieldMoves[j] != FIELD_MOVE_TERMINATOR; j++) for (j = 0; sFieldMoves[j] != FIELD_MOVES_COUNT; j++)
{ {
if (GetMonData(&mons[slotId], i + MON_DATA_MOVE1) == sFieldMoves[j]) if (GetMonData(&mons[slotId], i + MON_DATA_MOVE1) == sFieldMoves[j])
{ {
+1 -1
View File
@@ -6675,7 +6675,7 @@ const u8 *GetTrainerPartnerName(void)
} }
#define READ_PTR_FROM_TASK(taskId, dataId) \ #define READ_PTR_FROM_TASK(taskId, dataId) \
(void *)( \ (void *)( \
((u16)(gTasks[taskId].data[dataId]) | \ ((u16)(gTasks[taskId].data[dataId]) | \
((u16)(gTasks[taskId].data[dataId + 1]) << 16))) ((u16)(gTasks[taskId].data[dataId + 1]) << 16)))
+10 -10
View File
@@ -1,5 +1,5 @@
@ Note: ROM header data is empty space here. @ Note: ROM header data is empty space here.
@ It's populated by gbafix using data provided in the Makefile. @ It's populated by gbafix using data provided in the Makefile.
.global Start .global Start
Start: Start:
@@ -41,20 +41,20 @@ RomHeaderChecksum:
RomHeaderReserved2: RomHeaderReserved2:
.space 2 .space 2
.word 0 .word 0
.global GPIOPortData .global GPIOPortData
GPIOPortData: GPIOPortData:
.2byte 0 .2byte 0
.global GPIOPortDirection .global GPIOPortDirection
GPIOPortDirection: GPIOPortDirection:
.2byte 0 .2byte 0
.global GPIOPortReadEnable .global GPIOPortReadEnable
GPIOPortReadEnable: GPIOPortReadEnable:
.2byte 0 .2byte 0
.2byte 0 .2byte 0
.space 0x34 .space 0x34
+8 -8
View File
@@ -27,33 +27,33 @@ struct RotatingTilePuzzle
static const u8 sMovement_ShiftRight[] = static const u8 sMovement_ShiftRight[] =
{ {
MOVEMENT_ACTION_STORE_AND_LOCK_ANIM, MOVEMENT_ACTION_LOCK_ANIM,
MOVEMENT_ACTION_WALK_NORMAL_RIGHT, MOVEMENT_ACTION_WALK_NORMAL_RIGHT,
MOVEMENT_ACTION_FREE_AND_UNLOCK_ANIM, MOVEMENT_ACTION_UNLOCK_ANIM,
MOVEMENT_ACTION_STEP_END MOVEMENT_ACTION_STEP_END
}; };
static const u8 sMovement_ShiftDown[] = static const u8 sMovement_ShiftDown[] =
{ {
MOVEMENT_ACTION_STORE_AND_LOCK_ANIM, MOVEMENT_ACTION_LOCK_ANIM,
MOVEMENT_ACTION_WALK_NORMAL_DOWN, MOVEMENT_ACTION_WALK_NORMAL_DOWN,
MOVEMENT_ACTION_FREE_AND_UNLOCK_ANIM, MOVEMENT_ACTION_UNLOCK_ANIM,
MOVEMENT_ACTION_STEP_END MOVEMENT_ACTION_STEP_END
}; };
static const u8 sMovement_ShiftLeft[] = static const u8 sMovement_ShiftLeft[] =
{ {
MOVEMENT_ACTION_STORE_AND_LOCK_ANIM, MOVEMENT_ACTION_LOCK_ANIM,
MOVEMENT_ACTION_WALK_NORMAL_LEFT, MOVEMENT_ACTION_WALK_NORMAL_LEFT,
MOVEMENT_ACTION_FREE_AND_UNLOCK_ANIM, MOVEMENT_ACTION_UNLOCK_ANIM,
MOVEMENT_ACTION_STEP_END MOVEMENT_ACTION_STEP_END
}; };
static const u8 sMovement_ShiftUp[] = static const u8 sMovement_ShiftUp[] =
{ {
MOVEMENT_ACTION_STORE_AND_LOCK_ANIM, MOVEMENT_ACTION_LOCK_ANIM,
MOVEMENT_ACTION_WALK_NORMAL_UP, MOVEMENT_ACTION_WALK_NORMAL_UP,
MOVEMENT_ACTION_FREE_AND_UNLOCK_ANIM, MOVEMENT_ACTION_UNLOCK_ANIM,
MOVEMENT_ACTION_STEP_END MOVEMENT_ACTION_STEP_END
}; };
+6 -6
View File
@@ -1040,11 +1040,11 @@ static const struct YesNoFuncTable sYesNoTable_KeepPlaying =
static void CB2_Roulette(void) static void CB2_Roulette(void)
{ {
RunTasks(); RunTasks();
AnimateSprites(); AnimateSprites();
BuildOamBuffer(); BuildOamBuffer();
if (sRoulette->flashUtil.enabled) if (sRoulette->flashUtil.enabled)
RouletteFlash_Run(&sRoulette->flashUtil); RouletteFlash_Run(&sRoulette->flashUtil);
} }
static void VBlankCB_Roulette(void) static void VBlankCB_Roulette(void)
@@ -4516,7 +4516,7 @@ static void SpriteCB_ShroomishExit(struct Sprite *sprite)
// Delay for screen shaking, then exit left // Delay for screen shaking, then exit left
if (sprite->data[1]++ >= sprite->data[3]) if (sprite->data[1]++ >= sprite->data[3])
{ {
sprite->x -= 2; sprite->x -= 2;
if (sprite->x < -16) if (sprite->x < -16)
{ {
if (!sRoulette->ballUnstuck) if (!sRoulette->ballUnstuck)
+20 -20
View File
@@ -165,30 +165,30 @@ static const u16 sPrizeListAttract[] = {ITEM_TM45_ATTRACT, ITEM_ETHER, I
static const u16 *const sPrizeLists1[NUM_TRAINER_HILL_PRIZE_LISTS] = static const u16 *const sPrizeLists1[NUM_TRAINER_HILL_PRIZE_LISTS] =
{ {
sPrizeListRareCandy1, sPrizeListRareCandy1,
sPrizeListLuxuryBall1, sPrizeListLuxuryBall1,
sPrizeListMaxRevive1, sPrizeListMaxRevive1,
sPrizeListMaxEther1, sPrizeListMaxEther1,
sPrizeListElixir1, sPrizeListElixir1,
sPrizeListRoar, sPrizeListRoar,
sPrizeListSludgeBomb, sPrizeListSludgeBomb,
sPrizeListToxic, sPrizeListToxic,
sPrizeListSunnyDay, sPrizeListSunnyDay,
sPrizeListEarthQuake sPrizeListEarthQuake
}; };
static const u16 *const sPrizeLists2[NUM_TRAINER_HILL_PRIZE_LISTS] = static const u16 *const sPrizeLists2[NUM_TRAINER_HILL_PRIZE_LISTS] =
{ {
sPrizeListRareCandy2, sPrizeListRareCandy2,
sPrizeListLuxuryBall2, sPrizeListLuxuryBall2,
sPrizeListMaxRevive2, sPrizeListMaxRevive2,
sPrizeListMaxEther2, sPrizeListMaxEther2,
sPrizeListElixir2, sPrizeListElixir2,
sPrizeListBrickBreak, sPrizeListBrickBreak,
sPrizeListTorment, sPrizeListTorment,
sPrizeListSkillSwap, sPrizeListSkillSwap,
sPrizeListGigaDrain, sPrizeListGigaDrain,
sPrizeListAttract sPrizeListAttract
}; };
static const u16 *const *const sPrizeListSets[] = static const u16 *const *const sPrizeListSets[] =
+18 -18
View File
@@ -3,35 +3,35 @@
@ ../gflib/bg.o @ ../gflib/bg.o
.align 2 .align 2
gWindowTileAutoAllocEnabled: gWindowTileAutoAllocEnabled:
.space 4 .space 4
@ ../gflib/window.o @ ../gflib/window.o
.align 4 .align 4
gTransparentTileNumber: gTransparentTileNumber:
.space 1 .space 1
.align 4 .align 4
gWindowBgTilemapBuffers: gWindowBgTilemapBuffers:
.space 16 .space 16
@ ../gflib/text.o @ ../gflib/text.o
.align 4 .align 4
gFonts: gFonts:
.space 4 .space 4
.align 2 .align 2
gDisableTextPrinters: gDisableTextPrinters:
.space 1 .space 1
.align 4 .align 4
gCurGlyph: gCurGlyph:
.space 132 .space 132
.align 2 .align 2
gTextFlags: gTextFlags:
.space 4 .space 4
@ ../gflib/sprite.o @ ../gflib/sprite.o
.align 2 .align 2
gOamMatrixAllocBitmap: gOamMatrixAllocBitmap:
.space 4 .space 4
.align 2 .align 2
gReservedSpritePaletteCount: gReservedSpritePaletteCount:
.space 1 .space 1
.align 4 .align 4
.include "link.o" .include "link.o"
.include "AgbRfu_LinkManager.o" .include "AgbRfu_LinkManager.o"
.include "link_rfu_2.o" .include "link_rfu_2.o"