Merge remote-tracking branch 'pret/master' into pret_clean2
This commit is contained in:
@@ -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
File diff suppressed because it is too large
Load Diff
+10
-10
@@ -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:
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
@@ -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.”$"
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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$"
|
||||||
|
|||||||
@@ -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…$"
|
||||||
|
|||||||
@@ -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
@@ -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
@@ -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
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
@@ -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
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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
@@ -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]++;
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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]]);
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|
||||||
|
|||||||
@@ -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
@@ -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);
|
||||||
|
|||||||
@@ -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
@@ -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())
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -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 = ®_BG2HOFS;
|
scanlineParams.dmaDest = ®_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]++;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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];
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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])
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -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
@@ -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)
|
||||||
|
|||||||
@@ -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++;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
@@ -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
@@ -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
@@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
|
||||||
|
|||||||
@@ -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
@@ -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
@@ -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
@@ -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"
|
||||||
|
|||||||
Reference in New Issue
Block a user