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_southwest, MOVEMENT_ACTION_WALK_SLOW_DIAGONAL_DOWN_LEFT
|
||||
create_movement_action walk_slow_diag_southeast, MOVEMENT_ACTION_WALK_SLOW_DIAGONAL_DOWN_RIGHT
|
||||
create_movement_action store_lock_anim, MOVEMENT_ACTION_STORE_AND_LOCK_ANIM
|
||||
create_movement_action free_unlock_anim, MOVEMENT_ACTION_FREE_AND_UNLOCK_ANIM
|
||||
create_movement_action lock_anim, MOVEMENT_ACTION_LOCK_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_right_affine, MOVEMENT_ACTION_WALK_RIGHT_AFFINE
|
||||
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 gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, 1, -32, 0, 0, 3
|
||||
waitforvisualfinish
|
||||
createvisualtask AnimTask_RotateMonSpriteToSide, 2, 8, -256, 0, 0
|
||||
createvisualtask AnimTask_RotateMonSpriteToSide, 2, 8, -256, 1, 0
|
||||
createvisualtask AnimTask_RotateMonSpriteToSide, 2, 8, -256, ANIM_ATTACKER, 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_TARGET, 4, 0, 12, 1
|
||||
createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 2, 16, 0, RGB_WHITE
|
||||
waitforvisualfinish
|
||||
createvisualtask AnimTask_RotateMonSpriteToSide, 2, 8, -256, 0, 1
|
||||
createvisualtask AnimTask_RotateMonSpriteToSide, 2, 8, -256, 1, 1
|
||||
createvisualtask AnimTask_RotateMonSpriteToSide, 2, 8, -256, ANIM_ATTACKER, 1
|
||||
createvisualtask AnimTask_RotateMonSpriteToSide, 2, 8, -256, ANIM_TARGET, 1
|
||||
waitforvisualfinish
|
||||
createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 5
|
||||
delay 3
|
||||
@@ -2441,7 +2441,7 @@ Move_HORN_ATTACK:
|
||||
Move_FURY_ATTACK:
|
||||
loadspritegfx ANIM_TAG_IMPACT
|
||||
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
|
||||
FuryAttackContinue:
|
||||
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
|
||||
delay 4
|
||||
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
|
||||
waitforvisualfinish
|
||||
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
|
||||
playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER
|
||||
waitforvisualfinish
|
||||
createvisualtask AnimTask_RotateMonSpriteToSide, 2, 16, 96, 0, 2
|
||||
createvisualtask AnimTask_RotateMonSpriteToSide, 2, 16, 96, ANIM_ATTACKER, 2
|
||||
waitforvisualfinish
|
||||
createsprite gSlideMonToOffsetAndBackSpriteTemplate, ANIM_ATTACKER, 2, ANIM_ATTACKER, 24, 0, 0, 10, 1
|
||||
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
|
||||
delay 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
|
||||
delay 8
|
||||
createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 4, 0, 70, 0
|
||||
@@ -8570,14 +8570,14 @@ Move_ARM_THRUST:
|
||||
loadspritegfx ANIM_TAG_IMPACT
|
||||
splitbgprio ANIM_TARGET
|
||||
setalpha 12, 8
|
||||
createvisualtask AnimTask_RotateMonSpriteToSide, 5, 8, 5, 0, 0
|
||||
createvisualtask AnimTask_RotateMonSpriteToSide, 5, 8, 5, ANIM_ATTACKER, 0
|
||||
delay 6
|
||||
createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 4, 3
|
||||
delay 4
|
||||
playsewithpan SE_M_SWAGGER, SOUND_PAN_TARGET
|
||||
createsprite gArmThrustHandSpriteTemplate, ANIM_TARGET, 2, 10, -8, 14, 3
|
||||
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
|
||||
choosetwoturnanim ArmThrustRight, ArmThrustLeft
|
||||
ArmThrustContinue:
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
#include "constants/global.h"
|
||||
#include "constants/battle.h"
|
||||
#include "constants/pokemon.h"
|
||||
#include "constants/battle_arena.h"
|
||||
#include "constants/battle_script_commands.h"
|
||||
#include "constants/battle_anim.h"
|
||||
#include "constants/battle_string_ids.h"
|
||||
@@ -4482,7 +4483,7 @@ BattleScript_ArenaDoJudgment::
|
||||
arenajudgmentstring B_MSG_REF_THATS_IT
|
||||
arenawaitmessage B_MSG_REF_THATS_IT
|
||||
pause B_WAIT_TIME_LONG
|
||||
setbyte gBattleCommunication, 0
|
||||
setbyte gBattleCommunication, 0 @ Reset state for arenajudgmentwindow
|
||||
arenajudgmentwindow
|
||||
pause B_WAIT_TIME_LONG
|
||||
arenajudgmentwindow
|
||||
@@ -4495,8 +4496,9 @@ BattleScript_ArenaDoJudgment::
|
||||
arenajudgmentstring B_MSG_REF_JUDGE_BODY
|
||||
arenawaitmessage B_MSG_REF_JUDGE_BODY
|
||||
arenajudgmentwindow
|
||||
jumpifbyte CMP_EQUAL, gBattleCommunication + 1, 3, BattleScript_ArenaJudgmentPlayerLoses
|
||||
jumpifbyte CMP_EQUAL, gBattleCommunication + 1, 4, BattleScript_ArenaJudgmentDraw
|
||||
jumpifbyte CMP_EQUAL, gBattleCommunication + 1, ARENA_RESULT_PLAYER_LOST, BattleScript_ArenaJudgmentPlayerLoses
|
||||
jumpifbyte CMP_EQUAL, gBattleCommunication + 1, ARENA_RESULT_TIE, BattleScript_ArenaJudgmentDraw
|
||||
@ ARENA_RESULT_PLAYER_WON
|
||||
arenajudgmentstring B_MSG_REF_PLAYER_WON
|
||||
arenawaitmessage B_MSG_REF_PLAYER_WON
|
||||
arenajudgmentwindow
|
||||
|
||||
@@ -435,11 +435,15 @@ AI_CGM_BetterWhenAudienceExcited:
|
||||
AI_CGM_BetterWhenAudienceExcited_1stUp:
|
||||
@ BUG: Should be if_appeal_num_eq 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 3, AI_CGM_BetterWhenAudienceExcited_2AwayFromMax
|
||||
end
|
||||
AI_CGM_BetterWhenAudienceExcited_Not1stAppeal:
|
||||
AI_CGM_BetterWhenAudienceExcited_1stAppeal:
|
||||
if_random_less_than 125, AI_CGM_End
|
||||
score -15
|
||||
end
|
||||
@@ -542,7 +546,11 @@ AI_CGM_TargetMonWithJudgesAttention:
|
||||
end
|
||||
AI_CGM_TargetMonWithJudgesAttention_CheckMon1:
|
||||
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
|
||||
.endif
|
||||
if_random_less_than 125, AI_CGM_TargetMonWithJudgesAttention_CheckMon2
|
||||
score +2
|
||||
if_not_completed_combo MON_1, AI_CGM_TargetMonWithJudgesAttention_CheckMon2
|
||||
@@ -551,7 +559,11 @@ AI_CGM_TargetMonWithJudgesAttention_CheckMon1:
|
||||
AI_CGM_TargetMonWithJudgesAttention_CheckMon2:
|
||||
if_user_order_eq MON_2, AI_CGM_End
|
||||
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
|
||||
.endif
|
||||
if_random_less_than 125, AI_CGM_TargetMonWithJudgesAttention_CheckMon3
|
||||
score +2
|
||||
if_not_completed_combo MON_2, AI_CGM_TargetMonWithJudgesAttention_CheckMon3
|
||||
@@ -560,7 +572,11 @@ AI_CGM_TargetMonWithJudgesAttention_CheckMon2:
|
||||
AI_CGM_TargetMonWithJudgesAttention_CheckMon3:
|
||||
if_user_order_eq 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
|
||||
.endif
|
||||
if_random_less_than 125, AI_CGM_End
|
||||
score +2
|
||||
if_not_completed_combo MON_3, AI_CGM_End
|
||||
|
||||
@@ -472,8 +472,8 @@ BattleFrontier_BattlePalaceLobby_Text_FeatWillBeRecorded:
|
||||
|
||||
@ Unused
|
||||
BattleFrontier_BattlePalaceLobby_Text_BattlePointsFor7WinStreak:
|
||||
.string "For the feat of your 7-win streak,\n"
|
||||
.string "we present you with Battle Point(s).$"
|
||||
.string "For the feat of your 7-win streak,\n"
|
||||
.string "we present you with Battle Point(s).$"
|
||||
|
||||
BattleFrontier_BattlePalaceLobby_Text_NoSpaceForPrize:
|
||||
.string "You seem to have no space for\n"
|
||||
|
||||
@@ -33,8 +33,8 @@ EverGrandeCity_ChampionsRoom_EventScript_EnterRoom::
|
||||
waitmovement 0
|
||||
setvar VAR_TEMP_1, 1
|
||||
goto EverGrandeCity_ChampionsRoom_EventScript_Wallace
|
||||
releaseall
|
||||
end
|
||||
releaseall
|
||||
end
|
||||
|
||||
EverGrandeCity_ChampionsRoom_Movement_PlayerApproachWallace:
|
||||
walk_up
|
||||
|
||||
@@ -19,7 +19,7 @@ FortreeCity_DecorationShop_EventScript_ClerkDesks::
|
||||
release
|
||||
end
|
||||
|
||||
.align 2
|
||||
.align 2
|
||||
FortreeCity_DecorationShop_PokemartDecor_Desks:
|
||||
.2byte DECOR_SMALL_DESK
|
||||
.2byte DECOR_POKEMON_DESK
|
||||
|
||||
@@ -158,7 +158,7 @@
|
||||
"y": 9,
|
||||
"elevation": 0,
|
||||
"player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY",
|
||||
"script": "OldaleTown_EventScript_CitySign"
|
||||
"script": "OldaleTown_EventScript_TownSign"
|
||||
},
|
||||
{
|
||||
"type": "sign",
|
||||
|
||||
@@ -29,8 +29,8 @@ OldaleTown_EventScript_MoveMartEmployee::
|
||||
setobjectmovementtype LOCALID_MART_EMPLOYEE, MOVEMENT_TYPE_FACE_DOWN
|
||||
return
|
||||
|
||||
OldaleTown_EventScript_CitySign::
|
||||
msgbox OldaleTown_Text_CitySign, MSGBOX_SIGN
|
||||
OldaleTown_EventScript_TownSign::
|
||||
msgbox OldaleTown_Text_TownSign, MSGBOX_SIGN
|
||||
end
|
||||
|
||||
OldaleTown_EventScript_Girl::
|
||||
@@ -395,7 +395,7 @@ OldaleTown_Text_BrendanLetsGoBack:
|
||||
.string "LAB now.\l"
|
||||
.string "{PLAYER}, you should hustle back, too.$"
|
||||
|
||||
OldaleTown_Text_CitySign:
|
||||
OldaleTown_Text_TownSign:
|
||||
.string "OLDALE TOWN\n"
|
||||
.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
|
||||
setflag FLAG_MET_FANCLUB_YOUNGER_BROTHER
|
||||
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
|
||||
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
|
||||
end
|
||||
|
||||
|
||||
@@ -144,7 +144,7 @@ Route111_EventScript_RootFossilDisappeared::
|
||||
|
||||
@ Unused
|
||||
Route111_Movement_PlayerFall::
|
||||
store_lock_anim
|
||||
lock_anim
|
||||
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
|
||||
msgbox SlateportCity_PokemonFanClub_Text_ShowMePokemonThatLoveYou, MSGBOX_DEFAULT
|
||||
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
|
||||
end
|
||||
|
||||
|
||||
@@ -7,13 +7,13 @@ VerdanturfTown_FriendshipRatersHouse_EventScript_FriendshipRater::
|
||||
msgbox VerdanturfTown_FriendshipRatersHouse_Text_SeeHowMuchPokemonLikesYou, MSGBOX_DEFAULT
|
||||
specialvar VAR_RESULT, GetLeadMonFriendshipScore
|
||||
switch VAR_RESULT
|
||||
case 0, VerdanturfTown_FriendshipRatersHouse_EventScript_DetestsYou
|
||||
case 1, VerdanturfTown_FriendshipRatersHouse_EventScript_VeryWary
|
||||
case 2, VerdanturfTown_FriendshipRatersHouse_EventScript_NotUsedToYou
|
||||
case 3, VerdanturfTown_FriendshipRatersHouse_EventScript_GettingUsedToYou
|
||||
case 4, VerdanturfTown_FriendshipRatersHouse_EventScript_LikesYouQuiteALot
|
||||
case 5, VerdanturfTown_FriendshipRatersHouse_EventScript_VeryHappy
|
||||
case 6, VerdanturfTown_FriendshipRatersHouse_EventScript_AdoresYou
|
||||
case FRIENDSHIP_NONE, VerdanturfTown_FriendshipRatersHouse_EventScript_DetestsYou
|
||||
case FRIENDSHIP_1_TO_49, VerdanturfTown_FriendshipRatersHouse_EventScript_VeryWary
|
||||
case FRIENDSHIP_50_TO_99, VerdanturfTown_FriendshipRatersHouse_EventScript_NotUsedToYou
|
||||
case FRIENDSHIP_100_TO_149, VerdanturfTown_FriendshipRatersHouse_EventScript_GettingUsedToYou
|
||||
case FRIENDSHIP_150_TO_199, VerdanturfTown_FriendshipRatersHouse_EventScript_LikesYouQuiteALot
|
||||
case FRIENDSHIP_200_TO_254, VerdanturfTown_FriendshipRatersHouse_EventScript_VeryHappy
|
||||
case FRIENDSHIP_MAX, VerdanturfTown_FriendshipRatersHouse_EventScript_AdoresYou
|
||||
release
|
||||
end
|
||||
|
||||
|
||||
@@ -315,7 +315,7 @@ MauvilleCity_PokemonCenter_1F_Text_TrendsStartedStory::
|
||||
.string "the HOENN region!$"
|
||||
|
||||
MauvilleCity_PokemonCenter_1F_Text_BerriesPlantedTitle::
|
||||
.string "The BERRY-Planting TRAINER$"
|
||||
.string "The BERRY-Planting TRAINER$"
|
||||
|
||||
MauvilleCity_PokemonCenter_1F_Text_BerriesPlantedAction::
|
||||
.string "Planted BERRIES$"
|
||||
|
||||
@@ -1,71 +1,71 @@
|
||||
EventTicket_Text_OldSeaMapTooFar:
|
||||
.string "What's up, youngster?\p"
|
||||
.string "What, it's you who's supposed to have\n"
|
||||
.string "a tattered old map?\p"
|
||||
.string "Let's have a look.\n"
|
||||
.string "… … … … … …\p"
|
||||
.string "Boy, this is quite a ways away.\n"
|
||||
.string "I'm afraid I can't help you…$"
|
||||
.string "What's up, youngster?\p"
|
||||
.string "What, it's you who's supposed to have\n"
|
||||
.string "a tattered old map?\p"
|
||||
.string "Let's have a look.\n"
|
||||
.string "… … … … … …\p"
|
||||
.string "Boy, this is quite a ways away.\n"
|
||||
.string "I'm afraid I can't help you…$"
|
||||
|
||||
EventTicket_Text_BrineyHoldOnASecond:
|
||||
.string "BRINEY: Hold on a second!\p"
|
||||
.string "What's the idea of turning down\n"
|
||||
.string "someone that I owe so much to?$"
|
||||
.string "BRINEY: Hold on a second!\p"
|
||||
.string "What's the idea of turning down\n"
|
||||
.string "someone that I owe so much to?$"
|
||||
|
||||
EventTicket_Text_BrineyLetsSail:
|
||||
.string "{PLAYER}{KUN}, I'm terribly sorry.\p"
|
||||
.string "You came to me seeking my help,\n"
|
||||
.string "and we almost turned you away.\p"
|
||||
.string "Well, let me make things right.\p"
|
||||
.string "We'll sail right away, of course!\p"
|
||||
.string "Let's find this island on\n"
|
||||
.string "this OLD SEA MAP!$"
|
||||
.string "{PLAYER}{KUN}, I'm terribly sorry.\p"
|
||||
.string "You came to me seeking my help,\n"
|
||||
.string "and we almost turned you away.\p"
|
||||
.string "Well, let me make things right.\p"
|
||||
.string "We'll sail right away, of course!\p"
|
||||
.string "Let's find this island on\n"
|
||||
.string "this OLD SEA MAP!$"
|
||||
|
||||
EventTicket_Text_OddTicketGetOnBoard:
|
||||
.string "Is it you who brought that odd\n"
|
||||
.string "ticket?\p"
|
||||
.string "Where you're trying to go is an island\n"
|
||||
.string "that's far, far away.\p"
|
||||
.string "No one knows what awaits there…\p"
|
||||
.string "The very thought excites my blood\n"
|
||||
.string "as a sailing man!\p"
|
||||
.string "Get on board, youngster!$"
|
||||
.string "Is it you who brought that odd\n"
|
||||
.string "ticket?\p"
|
||||
.string "Where you're trying to go is an island\n"
|
||||
.string "that's far, far away.\p"
|
||||
.string "No one knows what awaits there…\p"
|
||||
.string "The very thought excites my blood\n"
|
||||
.string "as a sailing man!\p"
|
||||
.string "Get on board, youngster!$"
|
||||
|
||||
FarawayIsland_Entrance_Text_SailorReturn:
|
||||
.string "CAPT. BRINEY can be so maddeningly\n"
|
||||
.string "fickle…\p"
|
||||
.string "Do you want to return to LILYCOVE?$"
|
||||
.string "CAPT. BRINEY can be so maddeningly\n"
|
||||
.string "fickle…\p"
|
||||
.string "Do you want to return to LILYCOVE?$"
|
||||
|
||||
BirthIsland_Harbor_Text_SailorReturn:
|
||||
.string "What an oddly shaped island, eh?\n"
|
||||
.string "Do you want to return to LILYCOVE?$"
|
||||
.string "What an oddly shaped island, eh?\n"
|
||||
.string "Do you want to return to LILYCOVE?$"
|
||||
|
||||
EventTicket_Text_OddTicketsWhereTo:
|
||||
.string "Is it you who brought those\n"
|
||||
.string "odd tickets?\p"
|
||||
.string "… … …Hm.\p"
|
||||
.string "These tickets will get you to islands\n"
|
||||
.string "that are far, far away.\p"
|
||||
.string "No one knows what awaits there,\n"
|
||||
.string "or what may happen there.\p"
|
||||
.string "The very thought excites my blood\n"
|
||||
.string "as a sailing man!\p"
|
||||
.string "Get on board, youngster!\n"
|
||||
.string "Where shall we sail first?$"
|
||||
.string "Is it you who brought those\n"
|
||||
.string "odd tickets?\p"
|
||||
.string "… … …Hm.\p"
|
||||
.string "These tickets will get you to islands\n"
|
||||
.string "that are far, far away.\p"
|
||||
.string "No one knows what awaits there,\n"
|
||||
.string "or what may happen there.\p"
|
||||
.string "The very thought excites my blood\n"
|
||||
.string "as a sailing man!\p"
|
||||
.string "Get on board, youngster!\n"
|
||||
.string "Where shall we sail first?$"
|
||||
|
||||
NavelRock_Harbor_Text_SailorReturn:
|
||||
.string "Did… Did you hear that?\n"
|
||||
.string "That low growling from deep in there.\p"
|
||||
.string "Are you sure it's safe?\n"
|
||||
.string "Do you think we should leave?$"
|
||||
.string "Did… Did you hear that?\n"
|
||||
.string "That low growling from deep in there.\p"
|
||||
.string "Are you sure it's safe?\n"
|
||||
.string "Do you think we should leave?$"
|
||||
|
||||
FarawayIsland_Entrance_Text_Sign:
|
||||
.string "The writing is fading as if it was\n"
|
||||
.string "written a long time ago…\p"
|
||||
.string "“…ber, 6th day\n"
|
||||
.string "If any human…sets foot here…\l"
|
||||
.string "again…et it be a kindhearted pers…\l"
|
||||
.string "…ith that hope, I depar…”$"
|
||||
.string "The writing is fading as if it was\n"
|
||||
.string "written a long time ago…\p"
|
||||
.string "“…ber, 6th day\n"
|
||||
.string "If any human…sets foot here…\l"
|
||||
.string "again…et it be a kindhearted pers…\l"
|
||||
.string "…ith that hope, I depar…”$"
|
||||
|
||||
FarawayIsland_Interior_Text_Mew:
|
||||
.string "Myuu…$"
|
||||
.string "Myuu…$"
|
||||
|
||||
@@ -1,51 +1,51 @@
|
||||
gText_WouldYouLikeToRestYourPkmn::
|
||||
.string "Hello, and welcome to\n"
|
||||
.string "the POKéMON CENTER.\p"
|
||||
.string "We restore your tired POKéMON\n"
|
||||
.string "to full health.\p"
|
||||
.string "Would you like to rest your POKéMON?$"
|
||||
.string "Hello, and welcome to\n"
|
||||
.string "the POKéMON CENTER.\p"
|
||||
.string "We restore your tired POKéMON\n"
|
||||
.string "to full health.\p"
|
||||
.string "Would you like to rest your POKéMON?$"
|
||||
|
||||
gText_IllTakeYourPkmn::
|
||||
.string "Okay, I'll take your POKéMON\n"
|
||||
.string "for a few seconds.$"
|
||||
.string "Okay, I'll take your POKéMON\n"
|
||||
.string "for a few seconds.$"
|
||||
|
||||
gText_RestoredPkmnToFullHealth::
|
||||
.string "Thank you for waiting.\p"
|
||||
.string "We've restored your POKéMON\n"
|
||||
.string "to full health.$"
|
||||
.string "Thank you for waiting.\p"
|
||||
.string "We've restored your POKéMON\n"
|
||||
.string "to full health.$"
|
||||
|
||||
gText_WeHopeToSeeYouAgain::
|
||||
.string "We hope to see you again!$"
|
||||
.string "We hope to see you again!$"
|
||||
|
||||
gText_WelcomeCutShort::
|
||||
.string "Hello, and welcome to\n"
|
||||
.string "the POKéMON CENTER.\p"
|
||||
.string "We restore your tired POKéMON\n"
|
||||
.string "to full health.\p"
|
||||
.string "Would you like to…$"
|
||||
.string "Hello, and welcome to\n"
|
||||
.string "the POKéMON CENTER.\p"
|
||||
.string "We restore your tired POKéMON\n"
|
||||
.string "to full health.\p"
|
||||
.string "Would you like to…$"
|
||||
|
||||
gText_NoticesGoldCard::
|
||||
.string "Th-that card…\n"
|
||||
.string "Could it be… The GOLD CARD?!\p"
|
||||
.string "Oh, the gold color is brilliant!\n"
|
||||
.string "The four stars seem to sparkle!\p"
|
||||
.string "I've seen several TRAINERS with\n"
|
||||
.string "a SILVER CARD before, but, {PLAYER},\l"
|
||||
.string "you're the first TRAINER I've ever\l"
|
||||
.string "seen with a GOLD CARD!\p"
|
||||
.string "Okay, {PLAYER}, please allow me\n"
|
||||
.string "the honor of resting your POKéMON!$"
|
||||
.string "Th-that card…\n"
|
||||
.string "Could it be… The GOLD CARD?!\p"
|
||||
.string "Oh, the gold color is brilliant!\n"
|
||||
.string "The four stars seem to sparkle!\p"
|
||||
.string "I've seen several TRAINERS with\n"
|
||||
.string "a SILVER CARD before, but, {PLAYER},\l"
|
||||
.string "you're the first TRAINER I've ever\l"
|
||||
.string "seen with a GOLD CARD!\p"
|
||||
.string "Okay, {PLAYER}, please allow me\n"
|
||||
.string "the honor of resting your POKéMON!$"
|
||||
|
||||
gText_YouWantTheUsual::
|
||||
.string "I'm delighted to see you, {PLAYER}!\n"
|
||||
.string "You want the usual, am I right?$"
|
||||
.string "I'm delighted to see you, {PLAYER}!\n"
|
||||
.string "You want the usual, am I right?$"
|
||||
|
||||
gText_IllTakeYourPkmn2::
|
||||
.string "Okay, I'll take your POKéMON\n"
|
||||
.string "for a few seconds.$"
|
||||
.string "Okay, I'll take your POKéMON\n"
|
||||
.string "for a few seconds.$"
|
||||
|
||||
gText_ThankYouForWaiting::
|
||||
.string "Thank you for waiting.$"
|
||||
.string "Thank you for waiting.$"
|
||||
|
||||
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:
|
||||
.string "Have you made a SECRET BASE already?\p"
|
||||
.string "I went here, there, everywhere before\n"
|
||||
.string "choosing this place.\p"
|
||||
.string "Since you're already here, how would\n"
|
||||
.string "you like to battle?$"
|
||||
.string "Have you made a SECRET BASE already?\p"
|
||||
.string "I went here, there, everywhere before\n"
|
||||
.string "choosing this place.\p"
|
||||
.string "Since you're already here, how would\n"
|
||||
.string "you like to battle?$"
|
||||
|
||||
SecretBase_Text_Trainer0AcceptBattle:
|
||||
.string "Okay!\n"
|
||||
.string "Here we come!$"
|
||||
.string "Okay!\n"
|
||||
.string "Here we come!$"
|
||||
|
||||
SecretBase_Text_Trainer0DeclineBattle:
|
||||
.string "Hunh?\n"
|
||||
.string "Oh, you can't now…$"
|
||||
.string "Hunh?\n"
|
||||
.string "Oh, you can't now…$"
|
||||
|
||||
SecretBase_Text_Trainer0Defeated::
|
||||
.string "Waaargh! You're too strong!\n"
|
||||
.string "About me losing… Please keep it secret!$"
|
||||
.string "Waaargh! You're too strong!\n"
|
||||
.string "About me losing… Please keep it secret!$"
|
||||
|
||||
SecretBase_Text_Trainer0PostBattle:
|
||||
.string "What do you think of my SECRET BASE?\n"
|
||||
.string "Come visit me again tomorrow.$"
|
||||
.string "What do you think of my SECRET BASE?\n"
|
||||
.string "Come visit me again tomorrow.$"
|
||||
|
||||
SecretBase_Text_Trainer0PreChampion:
|
||||
.string "Have you made a SECRET BASE already?\p"
|
||||
.string "I went here, there, everywhere before\n"
|
||||
.string "choosing this place.\p"
|
||||
.string "Feel free to hang out!$"
|
||||
.string "Have you made a SECRET BASE already?\p"
|
||||
.string "I went here, there, everywhere before\n"
|
||||
.string "choosing this place.\p"
|
||||
.string "Feel free to hang out!$"
|
||||
|
||||
SecretBase_Text_Trainer5Intro:
|
||||
.string "There're a lot of places where\n"
|
||||
.string "you can make a SECRET BASE.\p"
|
||||
.string "But I like this spot best.\n"
|
||||
.string "Don't you think it's nice?\p"
|
||||
.string "Oh, would you like to have a battle?$"
|
||||
.string "There're a lot of places where\n"
|
||||
.string "you can make a SECRET BASE.\p"
|
||||
.string "But I like this spot best.\n"
|
||||
.string "Don't you think it's nice?\p"
|
||||
.string "Oh, would you like to have a battle?$"
|
||||
|
||||
SecretBase_Text_Trainer5AcceptBattle:
|
||||
.string "Okay, here goes!$"
|
||||
.string "Okay, here goes!$"
|
||||
|
||||
SecretBase_Text_Trainer5DeclineBattle:
|
||||
.string "Oh…\n"
|
||||
.string "You can't now, okay.$"
|
||||
.string "Oh…\n"
|
||||
.string "You can't now, okay.$"
|
||||
|
||||
SecretBase_Text_Trainer5Defeated::
|
||||
.string "Hmmm… It's our loss…\n"
|
||||
.string "But don't tell anyone!\l"
|
||||
.string "It's a confidential secret!$"
|
||||
.string "Hmmm… It's our loss…\n"
|
||||
.string "But don't tell anyone!\l"
|
||||
.string "It's a confidential secret!$"
|
||||
|
||||
SecretBase_Text_Trainer5PostBattle:
|
||||
.string "If you're in this area again,\n"
|
||||
.string "I hope you'll visit me.$"
|
||||
.string "If you're in this area again,\n"
|
||||
.string "I hope you'll visit me.$"
|
||||
|
||||
SecretBase_Text_Trainer5PreChampion:
|
||||
.string "There're a lot of places where you can\n"
|
||||
.string "make a SECRET BASE.\p"
|
||||
.string "But I like this spot best.\n"
|
||||
.string "Don't you think it's nice?$"
|
||||
.string "There're a lot of places where you can\n"
|
||||
.string "make a SECRET BASE.\p"
|
||||
.string "But I like this spot best.\n"
|
||||
.string "Don't you think it's nice?$"
|
||||
|
||||
SecretBase_Text_Trainer1Intro:
|
||||
.string "This is a popular spot.\n"
|
||||
.string "It's always taken.\p"
|
||||
.string "Oh! Were you thinking about\n"
|
||||
.string "taking this spot, too?\p"
|
||||
.string "I'll tell you what, you can have this\n"
|
||||
.string "spot if you can beat me.$"
|
||||
.string "This is a popular spot.\n"
|
||||
.string "It's always taken.\p"
|
||||
.string "Oh! Were you thinking about\n"
|
||||
.string "taking this spot, too?\p"
|
||||
.string "I'll tell you what, you can have this\n"
|
||||
.string "spot if you can beat me.$"
|
||||
|
||||
SecretBase_Text_Trainer1AcceptBattle:
|
||||
.string "Okay!\n"
|
||||
.string "I'm going to defend my SECRET BASE!$"
|
||||
.string "Okay!\n"
|
||||
.string "I'm going to defend my SECRET BASE!$"
|
||||
|
||||
SecretBase_Text_Trainer1DeclineBattle:
|
||||
.string "Hunh? Is that right?\n"
|
||||
.string "You're not interested in this spot?$"
|
||||
.string "Hunh? Is that right?\n"
|
||||
.string "You're not interested in this spot?$"
|
||||
|
||||
SecretBase_Text_Trainer1Defeated::
|
||||
.string "I can't keep going!\n"
|
||||
.string "I surrender!$"
|
||||
.string "I can't keep going!\n"
|
||||
.string "I surrender!$"
|
||||
|
||||
SecretBase_Text_Trainer1PostBattle:
|
||||
.string "Okay, when I move one day,\n"
|
||||
.string "this place will be yours!$"
|
||||
.string "Okay, when I move one day,\n"
|
||||
.string "this place will be yours!$"
|
||||
|
||||
SecretBase_Text_Trainer1PreChampion:
|
||||
.string "This is a popular spot.\n"
|
||||
.string "It's always taken.\p"
|
||||
.string "I waited a long time for it to open.\n"
|
||||
.string "I finally got to use it!$"
|
||||
.string "This is a popular spot.\n"
|
||||
.string "It's always taken.\p"
|
||||
.string "I waited a long time for it to open.\n"
|
||||
.string "I finally got to use it!$"
|
||||
|
||||
SecretBase_Text_Trainer6Intro:
|
||||
.string "Welcome to my POKéMON LAB.\p"
|
||||
.string "I carry out research on battling in\n"
|
||||
.string "secrecy.\p"
|
||||
.string "Would you like to see how strong I am?$"
|
||||
.string "Welcome to my POKéMON LAB.\p"
|
||||
.string "I carry out research on battling in\n"
|
||||
.string "secrecy.\p"
|
||||
.string "Would you like to see how strong I am?$"
|
||||
|
||||
SecretBase_Text_Trainer6AcceptBattle:
|
||||
.string "I'm going to go all out!$"
|
||||
.string "I'm going to go all out!$"
|
||||
|
||||
SecretBase_Text_Trainer6DeclineBattle:
|
||||
.string "Oh.\n"
|
||||
.string "Some other time, then!$"
|
||||
.string "Oh.\n"
|
||||
.string "Some other time, then!$"
|
||||
|
||||
SecretBase_Text_Trainer6Defeated::
|
||||
.string "Hmm… I've still got lots to learn.\n"
|
||||
.string "I have to study some more.$"
|
||||
.string "Hmm… I've still got lots to learn.\n"
|
||||
.string "I have to study some more.$"
|
||||
|
||||
SecretBase_Text_Trainer6PostBattle:
|
||||
.string "Thanks for battling with me.\n"
|
||||
.string "Please come back again tomorrow.$"
|
||||
.string "Thanks for battling with me.\n"
|
||||
.string "Please come back again tomorrow.$"
|
||||
|
||||
SecretBase_Text_Trainer6PreChampion:
|
||||
.string "Welcome to my POKéMON LAB.\p"
|
||||
.string "I carry out research on battling in\n"
|
||||
.string "secrecy.$"
|
||||
.string "Welcome to my POKéMON LAB.\p"
|
||||
.string "I carry out research on battling in\n"
|
||||
.string "secrecy.$"
|
||||
|
||||
SecretBase_Text_Trainer2Intro:
|
||||
.string "A big mansion is nice, but I like this\n"
|
||||
.string "sort of place more.\p"
|
||||
.string "I like it because all kinds of people\n"
|
||||
.string "come visit me.\p"
|
||||
.string "So, how would you like a battle?$"
|
||||
.string "A big mansion is nice, but I like this\n"
|
||||
.string "sort of place more.\p"
|
||||
.string "I like it because all kinds of people\n"
|
||||
.string "come visit me.\p"
|
||||
.string "So, how would you like a battle?$"
|
||||
|
||||
SecretBase_Text_Trainer2AcceptBattle:
|
||||
.string "That's the way!$"
|
||||
.string "That's the way!$"
|
||||
|
||||
SecretBase_Text_Trainer2DeclineBattle:
|
||||
.string "When you're ready, give me a shout!$"
|
||||
.string "When you're ready, give me a shout!$"
|
||||
|
||||
SecretBase_Text_Trainer2Defeated::
|
||||
.string "Aww! Done in!\n"
|
||||
.string "But it's still fun to battle!$"
|
||||
.string "Aww! Done in!\n"
|
||||
.string "But it's still fun to battle!$"
|
||||
|
||||
SecretBase_Text_Trainer2PostBattle:
|
||||
.string "Well, anyway, I should go buy some\n"
|
||||
.string "decorations and furniture.\p"
|
||||
.string "I want my SECRET BASE to be a place\n"
|
||||
.string "other people can enjoy.$"
|
||||
.string "Well, anyway, I should go buy some\n"
|
||||
.string "decorations and furniture.\p"
|
||||
.string "I want my SECRET BASE to be a place\n"
|
||||
.string "other people can enjoy.$"
|
||||
|
||||
SecretBase_Text_Trainer2PreChampion:
|
||||
.string "A big mansion is nice, but I like this\n"
|
||||
.string "sort of place more.\p"
|
||||
.string "I like it because all kinds of people\n"
|
||||
.string "come visit me.$"
|
||||
.string "A big mansion is nice, but I like this\n"
|
||||
.string "sort of place more.\p"
|
||||
.string "I like it because all kinds of people\n"
|
||||
.string "come visit me.$"
|
||||
|
||||
SecretBase_Text_Trainer7Intro:
|
||||
.string "I simply adore shopping for decorations\n"
|
||||
.string "and furniture.\p"
|
||||
.string "I also love raising POKéMON just\n"
|
||||
.string "as much.\p"
|
||||
.string "If you would be so kind, will you battle\n"
|
||||
.string "with my POKéMON?$"
|
||||
.string "I simply adore shopping for decorations\n"
|
||||
.string "and furniture.\p"
|
||||
.string "I also love raising POKéMON just\n"
|
||||
.string "as much.\p"
|
||||
.string "If you would be so kind, will you battle\n"
|
||||
.string "with my POKéMON?$"
|
||||
|
||||
SecretBase_Text_Trainer7AcceptBattle:
|
||||
.string "Thank you.\n"
|
||||
.string "Shall we begin?$"
|
||||
.string "Thank you.\n"
|
||||
.string "Shall we begin?$"
|
||||
|
||||
SecretBase_Text_Trainer7DeclineBattle:
|
||||
.string "Oh.\n"
|
||||
.string "How disappointing…$"
|
||||
.string "Oh.\n"
|
||||
.string "How disappointing…$"
|
||||
|
||||
SecretBase_Text_Trainer7Defeated::
|
||||
.string "I concede…$"
|
||||
.string "I concede…$"
|
||||
|
||||
SecretBase_Text_Trainer7PostBattle:
|
||||
.string "That was all in good fun!\n"
|
||||
.string "I should go enjoy shopping now.$"
|
||||
.string "That was all in good fun!\n"
|
||||
.string "I should go enjoy shopping now.$"
|
||||
|
||||
SecretBase_Text_Trainer7PreChampion:
|
||||
.string "I simply adore shopping for decorations\n"
|
||||
.string "and furniture.\p"
|
||||
.string "I also love raising POKéMON just\n"
|
||||
.string "as much.$"
|
||||
.string "I simply adore shopping for decorations\n"
|
||||
.string "and furniture.\p"
|
||||
.string "I also love raising POKéMON just\n"
|
||||
.string "as much.$"
|
||||
|
||||
SecretBase_Text_Trainer3Intro:
|
||||
.string "Some people make their SECRET BASES in\n"
|
||||
.string "hard-to-find places.\l"
|
||||
.string "Do they want to just lie low?\p"
|
||||
.string "But since you found me, how about we\n"
|
||||
.string "have a battle?$"
|
||||
.string "Some people make their SECRET BASES in\n"
|
||||
.string "hard-to-find places.\l"
|
||||
.string "Do they want to just lie low?\p"
|
||||
.string "But since you found me, how about we\n"
|
||||
.string "have a battle?$"
|
||||
|
||||
SecretBase_Text_Trainer3AcceptBattle:
|
||||
.string "I'm not going down easily!$"
|
||||
.string "I'm not going down easily!$"
|
||||
|
||||
SecretBase_Text_Trainer3DeclineBattle:
|
||||
.string "Oh… Are you maybe tired from searching\n"
|
||||
.string "for this place?$"
|
||||
.string "Oh… Are you maybe tired from searching\n"
|
||||
.string "for this place?$"
|
||||
|
||||
SecretBase_Text_Trainer3Defeated::
|
||||
.string "I went down…$"
|
||||
.string "I went down…$"
|
||||
|
||||
SecretBase_Text_Trainer3PostBattle:
|
||||
.string "Where's your SECRET BASE?\n"
|
||||
.string "I should go visit you there.$"
|
||||
.string "Where's your SECRET BASE?\n"
|
||||
.string "I should go visit you there.$"
|
||||
|
||||
SecretBase_Text_Trainer3PreChampion:
|
||||
.string "Some people make their SECRET BASES in\n"
|
||||
.string "hard-to-find places.\l"
|
||||
.string "Do they want to just lie low?$"
|
||||
.string "Some people make their SECRET BASES in\n"
|
||||
.string "hard-to-find places.\l"
|
||||
.string "Do they want to just lie low?$"
|
||||
|
||||
SecretBase_Text_Trainer8Intro:
|
||||
.string "People have told me that you can get\n"
|
||||
.string "decorations in several ways.\p"
|
||||
.string "We should have a race to see who can\n"
|
||||
.string "get nicer decorations and furniture!\p"
|
||||
.string "In the meantime, want to battle?$"
|
||||
.string "People have told me that you can get\n"
|
||||
.string "decorations in several ways.\p"
|
||||
.string "We should have a race to see who can\n"
|
||||
.string "get nicer decorations and furniture!\p"
|
||||
.string "In the meantime, want to battle?$"
|
||||
|
||||
SecretBase_Text_Trainer8AcceptBattle:
|
||||
.string "This is my SECRET BASE.\n"
|
||||
.string "I can't lose!$"
|
||||
.string "This is my SECRET BASE.\n"
|
||||
.string "I can't lose!$"
|
||||
|
||||
SecretBase_Text_Trainer8DeclineBattle:
|
||||
.string "I'll battle with you anytime.$"
|
||||
.string "I'll battle with you anytime.$"
|
||||
|
||||
SecretBase_Text_Trainer8Defeated::
|
||||
.string "Huh?\n"
|
||||
.string "Did I just lose?$"
|
||||
.string "Huh?\n"
|
||||
.string "Did I just lose?$"
|
||||
|
||||
SecretBase_Text_Trainer8PostBattle:
|
||||
.string "I won't lose at collecting decorations.\n"
|
||||
.string "Come visit again!$"
|
||||
.string "I won't lose at collecting decorations.\n"
|
||||
.string "Come visit again!$"
|
||||
|
||||
SecretBase_Text_Trainer8PreChampion:
|
||||
.string "People have told me that you can get\n"
|
||||
.string "decorations in several ways.\p"
|
||||
.string "We should have a race to see who can\n"
|
||||
.string "get nicer decorations and furniture!$"
|
||||
.string "People have told me that you can get\n"
|
||||
.string "decorations in several ways.\p"
|
||||
.string "We should have a race to see who can\n"
|
||||
.string "get nicer decorations and furniture!$"
|
||||
|
||||
SecretBase_Text_Trainer4Intro:
|
||||
.string "I found a spot I liked, and I did it up\n"
|
||||
.string "with my favorite decorations.\p"
|
||||
.string "I raise my favorite POKéMON and grow\n"
|
||||
.string "stronger with it.\p"
|
||||
.string "That's what I do.\n"
|
||||
.string "Want to battle with me?$"
|
||||
.string "I found a spot I liked, and I did it up\n"
|
||||
.string "with my favorite decorations.\p"
|
||||
.string "I raise my favorite POKéMON and grow\n"
|
||||
.string "stronger with it.\p"
|
||||
.string "That's what I do.\n"
|
||||
.string "Want to battle with me?$"
|
||||
|
||||
SecretBase_Text_Trainer4AcceptBattle:
|
||||
.string "Show me what you're made of!$"
|
||||
.string "Show me what you're made of!$"
|
||||
|
||||
SecretBase_Text_Trainer4DeclineBattle:
|
||||
.string "I guess there are times when you're not\n"
|
||||
.string "into it.$"
|
||||
.string "I guess there are times when you're not\n"
|
||||
.string "into it.$"
|
||||
|
||||
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:
|
||||
.string "We can both become stronger.\n"
|
||||
.string "Let's keep at it!$"
|
||||
.string "We can both become stronger.\n"
|
||||
.string "Let's keep at it!$"
|
||||
|
||||
SecretBase_Text_Trainer4PreChampion:
|
||||
.string "I found a spot I liked, and I did it up\n"
|
||||
.string "with my favorite decorations.\p"
|
||||
.string "I raise my favorite POKéMON and grow\n"
|
||||
.string "stronger with it.\p"
|
||||
.string "Every day is a great day.$"
|
||||
.string "I found a spot I liked, and I did it up\n"
|
||||
.string "with my favorite decorations.\p"
|
||||
.string "I raise my favorite POKéMON and grow\n"
|
||||
.string "stronger with it.\p"
|
||||
.string "Every day is a great day.$"
|
||||
|
||||
SecretBase_Text_Trainer9Intro:
|
||||
.string "You can learn a lot about the taste\n"
|
||||
.string "and sense of people by the kinds of\l"
|
||||
.string "decorations they have, and how they\l"
|
||||
.string "display them.\p"
|
||||
.string "What do you think of my taste?\n"
|
||||
.string "Are you speechless?\p"
|
||||
.string "Want to see my taste in battling?$"
|
||||
.string "You can learn a lot about the taste\n"
|
||||
.string "and sense of people by the kinds of\l"
|
||||
.string "decorations they have, and how they\l"
|
||||
.string "display them.\p"
|
||||
.string "What do you think of my taste?\n"
|
||||
.string "Are you speechless?\p"
|
||||
.string "Want to see my taste in battling?$"
|
||||
|
||||
SecretBase_Text_Trainer9AcceptBattle:
|
||||
.string "There's no holding back!$"
|
||||
.string "There's no holding back!$"
|
||||
|
||||
SecretBase_Text_Trainer9DeclineBattle:
|
||||
.string "I'll be happy to demonstrate my style\n"
|
||||
.string "anytime.$"
|
||||
.string "I'll be happy to demonstrate my style\n"
|
||||
.string "anytime.$"
|
||||
|
||||
SecretBase_Text_Trainer9Defeated::
|
||||
.string "You're supremely talented!\n"
|
||||
.string "Your power seems to be limitless…$"
|
||||
.string "You're supremely talented!\n"
|
||||
.string "Your power seems to be limitless…$"
|
||||
|
||||
SecretBase_Text_Trainer9PostBattle:
|
||||
.string "What did you think of my style?\n"
|
||||
.string "I'll keep on polishing it!$"
|
||||
.string "What did you think of my style?\n"
|
||||
.string "I'll keep on polishing it!$"
|
||||
|
||||
SecretBase_Text_Trainer9PreChampion:
|
||||
.string "You can learn a lot about the taste\n"
|
||||
.string "and sense of people by the kinds of\l"
|
||||
.string "decorations they have, and how they\l"
|
||||
.string "display them.\p"
|
||||
.string "What do you think of my taste?\n"
|
||||
.string "Are you speechless?$"
|
||||
.string "You can learn a lot about the taste\n"
|
||||
.string "and sense of people by the kinds of\l"
|
||||
.string "decorations they have, and how they\l"
|
||||
.string "display them.\p"
|
||||
.string "What do you think of my taste?\n"
|
||||
.string "Are you speechless?$"
|
||||
|
||||
+16
-16
@@ -3,29 +3,29 @@
|
||||
|
||||
enum
|
||||
{
|
||||
BG_ATTR_CHARBASEINDEX = 1,
|
||||
BG_ATTR_MAPBASEINDEX,
|
||||
BG_ATTR_SCREENSIZE,
|
||||
BG_ATTR_PALETTEMODE,
|
||||
BG_ATTR_MOSAIC,
|
||||
BG_ATTR_WRAPAROUND,
|
||||
BG_ATTR_PRIORITY,
|
||||
BG_ATTR_METRIC,
|
||||
BG_ATTR_TYPE,
|
||||
BG_ATTR_BASETILE,
|
||||
BG_ATTR_CHARBASEINDEX = 1,
|
||||
BG_ATTR_MAPBASEINDEX,
|
||||
BG_ATTR_SCREENSIZE,
|
||||
BG_ATTR_PALETTEMODE,
|
||||
BG_ATTR_MOSAIC,
|
||||
BG_ATTR_WRAPAROUND,
|
||||
BG_ATTR_PRIORITY,
|
||||
BG_ATTR_METRIC,
|
||||
BG_ATTR_TYPE,
|
||||
BG_ATTR_BASETILE,
|
||||
};
|
||||
|
||||
enum {
|
||||
BG_TYPE_NORMAL,
|
||||
BG_TYPE_AFFINE,
|
||||
BG_TYPE_NONE = 0xFFFF
|
||||
BG_TYPE_NORMAL,
|
||||
BG_TYPE_AFFINE,
|
||||
BG_TYPE_NONE = 0xFFFF
|
||||
};
|
||||
|
||||
// Modes for ChangeBgX / ChangeBgY
|
||||
enum {
|
||||
BG_COORD_SET,
|
||||
BG_COORD_ADD,
|
||||
BG_COORD_SUB,
|
||||
BG_COORD_SET,
|
||||
BG_COORD_ADD,
|
||||
BG_COORD_SUB,
|
||||
};
|
||||
|
||||
// Modes for Unused_AdjustBgMosaic
|
||||
|
||||
@@ -120,7 +120,7 @@ void PrepareBattlerSpriteForRotScale(u8 spriteId, u8 objMode);
|
||||
void SetBattlerSpriteYOffsetFromRotation(u8 spriteId);
|
||||
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);
|
||||
u8 AnimDummyReturnArg(u8 battler);
|
||||
u8 GetSpritePalIdxByBattler(u8 battler);
|
||||
s16 CloneBattlerSpriteWithBlend(u8);
|
||||
void DestroySpriteWithActiveSheet(struct Sprite *);
|
||||
u8 CreateInvisibleSpriteCopy(int, u8, int);
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
#ifndef GUARD_BATTLE_ARENA_H
|
||||
#define GUARD_BATTLE_ARENA_H
|
||||
|
||||
#include "constants/battle_arena.h"
|
||||
|
||||
void CallBattleArenaFunction(void);
|
||||
u8 BattleArena_ShowJudgmentWindow(u8 *state);
|
||||
void BattleArena_InitPoints(void);
|
||||
|
||||
@@ -34,16 +34,19 @@ enum
|
||||
#define TAG_HEALTHBAR_PLAYER2_TILE 0xD706
|
||||
#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_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_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
|
||||
{
|
||||
HEALTHBOX_ALL,
|
||||
|
||||
@@ -17,4 +17,10 @@
|
||||
#define ARENA_CATEGORY_SKILL 1
|
||||
#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
|
||||
|
||||
@@ -232,8 +232,8 @@
|
||||
#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_RIGHT 0x93
|
||||
#define MOVEMENT_ACTION_STORE_AND_LOCK_ANIM 0x94
|
||||
#define MOVEMENT_ACTION_FREE_AND_UNLOCK_ANIM 0x95
|
||||
#define MOVEMENT_ACTION_LOCK_ANIM 0x94
|
||||
#define MOVEMENT_ACTION_UNLOCK_ANIM 0x95
|
||||
#define MOVEMENT_ACTION_WALK_LEFT_AFFINE 0x96
|
||||
#define MOVEMENT_ACTION_WALK_RIGHT_AFFINE 0x97
|
||||
#define MOVEMENT_ACTION_LEVITATE 0x98
|
||||
|
||||
@@ -181,6 +181,15 @@
|
||||
#define FRIENDSHIP_EVENT_FAINT_FIELD_PSN 7
|
||||
#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_SHEEN 255
|
||||
#define MAX_CONDITION 255
|
||||
|
||||
@@ -63,7 +63,7 @@ struct PairedPalettes
|
||||
|
||||
struct LockedAnimObjectEvents
|
||||
{
|
||||
u8 objectEventIds[OBJECT_EVENTS_COUNT];
|
||||
u8 localIds[OBJECT_EVENTS_COUNT];
|
||||
u8 count;
|
||||
};
|
||||
|
||||
|
||||
+37
-37
@@ -116,21 +116,21 @@ enum
|
||||
#define POKENAV_MENU_IDS_START 100000
|
||||
enum
|
||||
{
|
||||
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_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_MAIN_MENU_CURSOR_ON_MATCH_CALL,
|
||||
POKENAV_MAIN_MENU_CURSOR_ON_RIBBONS,
|
||||
POKENAV_REGION_MAP,
|
||||
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_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_MATCH_CALL,
|
||||
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_RETURN_TO_MON_LIST, // Exited the summary screen back to the ribbon list
|
||||
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_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_MAIN_MENU_CURSOR_ON_MATCH_CALL,
|
||||
POKENAV_MAIN_MENU_CURSOR_ON_RIBBONS,
|
||||
POKENAV_REGION_MAP,
|
||||
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_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_MATCH_CALL,
|
||||
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_RETURN_TO_MON_LIST, // Exited the summary screen back to the ribbon list
|
||||
};
|
||||
|
||||
enum
|
||||
@@ -185,28 +185,28 @@ enum
|
||||
|
||||
enum
|
||||
{
|
||||
MC_HEADER_MR_STONE,
|
||||
MC_HEADER_PROF_BIRCH,
|
||||
MC_HEADER_BRENDAN,
|
||||
MC_HEADER_MAY,
|
||||
MC_HEADER_WALLY,
|
||||
MC_HEADER_NORMAN,
|
||||
MC_HEADER_MOM,
|
||||
MC_HEADER_STEVEN,
|
||||
MC_HEADER_SCOTT,
|
||||
MC_HEADER_ROXANNE,
|
||||
MC_HEADER_BRAWLY,
|
||||
MC_HEADER_WATTSON,
|
||||
MC_HEADER_FLANNERY,
|
||||
MC_HEADER_WINONA,
|
||||
MC_HEADER_TATE_LIZA,
|
||||
MC_HEADER_JUAN,
|
||||
MC_HEADER_SIDNEY,
|
||||
MC_HEADER_PHOEBE,
|
||||
MC_HEADER_GLACIA,
|
||||
MC_HEADER_DRAKE,
|
||||
MC_HEADER_WALLACE,
|
||||
MC_HEADER_COUNT
|
||||
MC_HEADER_MR_STONE,
|
||||
MC_HEADER_PROF_BIRCH,
|
||||
MC_HEADER_BRENDAN,
|
||||
MC_HEADER_MAY,
|
||||
MC_HEADER_WALLY,
|
||||
MC_HEADER_NORMAN,
|
||||
MC_HEADER_MOM,
|
||||
MC_HEADER_STEVEN,
|
||||
MC_HEADER_SCOTT,
|
||||
MC_HEADER_ROXANNE,
|
||||
MC_HEADER_BRAWLY,
|
||||
MC_HEADER_WATTSON,
|
||||
MC_HEADER_FLANNERY,
|
||||
MC_HEADER_WINONA,
|
||||
MC_HEADER_TATE_LIZA,
|
||||
MC_HEADER_JUAN,
|
||||
MC_HEADER_SIDNEY,
|
||||
MC_HEADER_PHOEBE,
|
||||
MC_HEADER_GLACIA,
|
||||
MC_HEADER_DRAKE,
|
||||
MC_HEADER_WALLACE,
|
||||
MC_HEADER_COUNT
|
||||
};
|
||||
|
||||
enum
|
||||
|
||||
@@ -45,9 +45,6 @@ SECTIONS {
|
||||
|
||||
/* COMMON starts at 0x30022A8 */
|
||||
INCLUDE "sym_common.ld"
|
||||
src/*.o(COMMON);
|
||||
gflib/*.o(COMMON);
|
||||
|
||||
*libc.a:sbrkr.o(COMMON);
|
||||
end = .;
|
||||
. = 0x8000;
|
||||
|
||||
@@ -84,7 +84,7 @@ static void AnimMilkBottle(struct Sprite *);
|
||||
static void AnimMilkBottle_Step1(struct Sprite *);
|
||||
static void AnimMilkBottle_Step2(struct Sprite *, int, int);
|
||||
static void AnimGrantingStars(struct Sprite *);
|
||||
static void AnimSparkingStars(struct Sprite *);
|
||||
static void AnimSparklingStars(struct Sprite *);
|
||||
static void AnimBubbleBurst(struct Sprite *);
|
||||
static void AnimBubbleBurst_Step(struct Sprite *);
|
||||
static void AnimSleepLetterZ(struct Sprite *);
|
||||
@@ -1416,7 +1416,7 @@ const struct SpriteTemplate gSparklingStarsSpriteTemplate =
|
||||
.anims = gGrantingStarsAnimTable,
|
||||
.images = NULL,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = AnimSparkingStars,
|
||||
.callback = AnimSparklingStars,
|
||||
};
|
||||
|
||||
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);
|
||||
if (sprite->y2 == 0)
|
||||
PlaySE12WithPanning(SE_M_BUBBLE2, BattleAnimAdjustPanning(63));
|
||||
PlaySE12WithPanning(SE_M_BUBBLE2, BattleAnimAdjustPanning(SOUND_PAN_TARGET));
|
||||
|
||||
if (moveAlongLinearPath(sprite))
|
||||
{
|
||||
sprite->y2 = 0;
|
||||
sprite->data[0] = 0;
|
||||
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;
|
||||
}
|
||||
|
||||
static void AnimSparkingStars(struct Sprite *sprite)
|
||||
static void AnimSparklingStars(struct Sprite *sprite)
|
||||
{
|
||||
u8 battler;
|
||||
if (!gBattleAnimArgs[2])
|
||||
@@ -4264,7 +4264,7 @@ static void AnimLockOnTarget_Step1(struct Sprite *sprite)
|
||||
sprite->callback = StartAnimLinearTranslation;
|
||||
StoreSpriteCallbackInData6(sprite, AnimLockOnTarget_Step2);
|
||||
sprite->data[5] += 0x100;
|
||||
PlaySE12WithPanning(SE_M_LOCK_ON, BattleAnimAdjustPanning(63));
|
||||
PlaySE12WithPanning(SE_M_LOCK_ON, BattleAnimAdjustPanning(SOUND_PAN_TARGET));
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -4350,7 +4350,7 @@ static void AnimLockOnTarget_Step4(struct Sprite *sprite)
|
||||
sprite->data[2]++;
|
||||
pal = sprite->oam.paletteNum;
|
||||
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)
|
||||
{
|
||||
@@ -4812,7 +4812,7 @@ static void AnimSharpenSphere(struct Sprite *sprite)
|
||||
sprite->data[2] = 0;
|
||||
sprite->data[3] = 0;
|
||||
sprite->data[4] = 0;
|
||||
sprite->data[5] = BattleAnimAdjustPanning(-64);
|
||||
sprite->data[5] = BattleAnimAdjustPanning(SOUND_PAN_ATTACKER);
|
||||
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[0] = gTasks[taskId].data[3];
|
||||
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)
|
||||
gTasks[taskId].func = AirCutterProjectileStep2;
|
||||
}
|
||||
@@ -1839,7 +1839,7 @@ static void AnimBulletSeed_Step1(struct Sprite *sprite)
|
||||
int i;
|
||||
u16 rand;
|
||||
s16 *ptr;
|
||||
PlaySE12WithPanning(SE_M_HORN_ATTACK, BattleAnimAdjustPanning(63));
|
||||
PlaySE12WithPanning(SE_M_HORN_ATTACK, BattleAnimAdjustPanning(SOUND_PAN_TARGET));
|
||||
sprite->x += sprite->x2;
|
||||
sprite->y += sprite->y2;
|
||||
sprite->y2 = 0;
|
||||
@@ -2485,7 +2485,7 @@ static void AnimPencil(struct Sprite *sprite)
|
||||
sprite->data[3] = 16;
|
||||
sprite->data[4] = 0;
|
||||
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;
|
||||
}
|
||||
|
||||
@@ -3043,9 +3043,7 @@ void AnimTask_FreeMusicNotesPals(u8 taskId)
|
||||
|
||||
static void SetMusicNotePalette(struct Sprite *sprite, u8 a, u8 b)
|
||||
{
|
||||
u8 tile;
|
||||
tile = (b & 1);
|
||||
tile = ((-tile | tile) >> 31) & 32;
|
||||
u8 tile = (b & 1) ? 32 : 0;
|
||||
sprite->oam.tileNum += tile + (a << 2);
|
||||
sprite->oam.paletteNum = IndexOfSpritePaletteTag(sMusicNotePaletteTagsTable[b >> 1]);
|
||||
}
|
||||
@@ -3792,8 +3790,7 @@ static void AnimPerishSongMusicNote_Step2(struct Sprite *sprite)
|
||||
|
||||
if (sprite->data[4] > 3)
|
||||
{
|
||||
int var1 = sprite->data[2];
|
||||
sprite->invisible = var1 - (((s32)(var1 + ((u32)var1 >> 31)) >> 1) << 1);
|
||||
sprite->invisible = sprite->data[2] % 2;
|
||||
DestroyAnimSprite(sprite);
|
||||
}
|
||||
|
||||
|
||||
+17
-17
@@ -1646,7 +1646,7 @@ static void AnimClappingHand_Step(struct Sprite *sprite)
|
||||
sprite->data[2]++;
|
||||
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];
|
||||
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)
|
||||
{
|
||||
@@ -2107,7 +2107,7 @@ static void AnimWishStar(struct Sprite *sprite)
|
||||
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
|
||||
sprite->x = -16;
|
||||
else
|
||||
sprite->x = 256;
|
||||
sprite->x = DISPLAY_WIDTH + 16;
|
||||
|
||||
sprite->y = 0;
|
||||
sprite->callback = AnimWishStar_Step;
|
||||
@@ -2136,7 +2136,7 @@ static void AnimWishStar_Step(struct Sprite *sprite)
|
||||
}
|
||||
|
||||
newX = sprite->x + sprite->x2 + 32;
|
||||
if (newX > 304)
|
||||
if (newX > DISPLAY_WIDTH + 64)
|
||||
DestroyAnimSprite(sprite);
|
||||
}
|
||||
|
||||
@@ -2411,7 +2411,7 @@ void AnimTask_MorningSunLightBeam(u8 taskId)
|
||||
gTasks[taskId].data[11] = gBattle_BG1_Y;
|
||||
|
||||
gTasks[taskId].data[0]++;
|
||||
PlaySE12WithPanning(SE_M_MORNING_SUN, BattleAnimAdjustPanning(-64));
|
||||
PlaySE12WithPanning(SE_M_MORNING_SUN, BattleAnimAdjustPanning(SOUND_PAN_ATTACKER));
|
||||
break;
|
||||
case 1:
|
||||
if (gTasks[taskId].data[4]++ > 0)
|
||||
@@ -2446,7 +2446,7 @@ void AnimTask_MorningSunLightBeam(u8 taskId)
|
||||
{
|
||||
gTasks[taskId].data[3] = 0;
|
||||
gTasks[taskId].data[0] = 1;
|
||||
PlaySE12WithPanning(SE_M_MORNING_SUN, BattleAnimAdjustPanning(-64));
|
||||
PlaySE12WithPanning(SE_M_MORNING_SUN, BattleAnimAdjustPanning(SOUND_PAN_ATTACKER));
|
||||
}
|
||||
break;
|
||||
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.
|
||||
void AnimTask_RolePlaySilhouette(u8 taskId)
|
||||
{
|
||||
u8 isBackPic;
|
||||
bool8 isBackPic;
|
||||
u32 personality;
|
||||
u32 otId;
|
||||
u16 species;
|
||||
@@ -3206,7 +3206,7 @@ void AnimTask_RolePlaySilhouette(u8 taskId)
|
||||
{
|
||||
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
|
||||
{
|
||||
isBackPic = 0;
|
||||
isBackPic = FALSE;
|
||||
personality = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimTarget]], MON_DATA_PERSONALITY);
|
||||
otId = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimTarget]], MON_DATA_OT_ID);
|
||||
if (gBattleSpritesDataPtr->battlerData[gBattleAnimTarget].transformSpecies == SPECIES_NONE)
|
||||
@@ -3226,7 +3226,7 @@ void AnimTask_RolePlaySilhouette(u8 taskId)
|
||||
}
|
||||
else
|
||||
{
|
||||
isBackPic = 1;
|
||||
isBackPic = TRUE;
|
||||
personality = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleAnimTarget]], MON_DATA_PERSONALITY);
|
||||
otId = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleAnimTarget]], MON_DATA_OT_ID);
|
||||
if (gBattleSpritesDataPtr->battlerData[gBattleAnimTarget].transformSpecies == SPECIES_NONE)
|
||||
@@ -4845,7 +4845,7 @@ static void AnimTask_MonToSubstituteDoll(u8 taskId)
|
||||
|
||||
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[0]++;
|
||||
}
|
||||
@@ -4867,7 +4867,7 @@ static void AnimTask_MonToSubstituteDoll(u8 taskId)
|
||||
|
||||
if (gSprites[spriteId].y2 == 0)
|
||||
{
|
||||
PlaySE12WithPanning(SE_M_BUBBLE2, BattleAnimAdjustPanning(-64));
|
||||
PlaySE12WithPanning(SE_M_BUBBLE2, BattleAnimAdjustPanning(SOUND_PAN_ATTACKER));
|
||||
DestroyAnimVisualTask(taskId);
|
||||
}
|
||||
break;
|
||||
@@ -4904,7 +4904,7 @@ static void AnimBlockX_Step(struct Sprite *sprite)
|
||||
sprite->y2 += 10;
|
||||
if (sprite->y2 >= 0)
|
||||
{
|
||||
PlaySE12WithPanning(SE_M_SKETCH, BattleAnimAdjustPanning(63));
|
||||
PlaySE12WithPanning(SE_M_SKETCH, BattleAnimAdjustPanning(SOUND_PAN_TARGET));
|
||||
sprite->y2 = 0;
|
||||
sprite->data[0]++;
|
||||
}
|
||||
@@ -4914,7 +4914,7 @@ static void AnimBlockX_Step(struct Sprite *sprite)
|
||||
sprite->y2 = -(gSineTable[sprite->data[1]] >> 3);
|
||||
if (sprite->data[1] > 0x7F)
|
||||
{
|
||||
PlaySE12WithPanning(SE_M_SKETCH, BattleAnimAdjustPanning(63));
|
||||
PlaySE12WithPanning(SE_M_SKETCH, BattleAnimAdjustPanning(SOUND_PAN_TARGET));
|
||||
sprite->data[1] = 0;
|
||||
sprite->y2 = 0;
|
||||
sprite->data[0]++;
|
||||
@@ -4933,7 +4933,7 @@ static void AnimBlockX_Step(struct Sprite *sprite)
|
||||
case 3:
|
||||
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[0]++;
|
||||
}
|
||||
@@ -5097,7 +5097,7 @@ void AnimTask_SnatchOpposingMonMove(u8 taskId)
|
||||
|
||||
gTasks[taskId].data[1] &= 0xFF;
|
||||
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[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[0]++;
|
||||
@@ -5227,7 +5227,7 @@ static void AnimUnusedItemBagSteal(struct Sprite *sprite)
|
||||
case 0:
|
||||
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->data[0] = -32;
|
||||
sprite->data[7]++;
|
||||
|
||||
@@ -583,7 +583,7 @@ static void AnimZapCannonSpark(struct Sprite *sprite)
|
||||
sprite->data[7] = gBattleAnimArgs[4];
|
||||
sprite->oam.tileNum += gBattleAnimArgs[6] * 4;
|
||||
sprite->callback = AnimZapCannonSpark_Step;
|
||||
AnimZapCannonSpark_Step(sprite);
|
||||
sprite->callback(sprite);
|
||||
}
|
||||
|
||||
static void AnimZapCannonSpark_Step(struct Sprite *sprite)
|
||||
@@ -1159,7 +1159,7 @@ void AnimTask_ShockWaveProgressingBolt(u8 taskId)
|
||||
task->data[4] = 7;
|
||||
task->data[5] = -1;
|
||||
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[14] = task->data[12];
|
||||
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[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);
|
||||
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[7] != 64)
|
||||
if (sprite->data[7] != MAX_SPRITES)
|
||||
{
|
||||
FreeOamMatrix(gSprites[sprite->data[7]].oam.matrixNum);
|
||||
DestroySprite(&gSprites[sprite->data[7]]);
|
||||
|
||||
@@ -1227,8 +1227,8 @@ void AnimTask_MoveHeatWaveTargets(u8 taskId)
|
||||
{
|
||||
struct Task *task = &gTasks[taskId];
|
||||
|
||||
task->data[12] = !GetBattlerSide(gBattleAnimAttacker) ? 1 : -1;
|
||||
task->data[13] = IsBattlerSpriteVisible(gBattleAnimTarget ^ 2) + 1;
|
||||
task->data[12] = GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER ? 1 : -1;
|
||||
task->data[13] = IsBattlerSpriteVisible(gBattleAnimTarget ^ BIT_FLANK) + 1;
|
||||
task->data[14] = GetAnimBattlerSpriteId(ANIM_TARGET);
|
||||
task->data[15] = GetAnimBattlerSpriteId(ANIM_DEF_PARTNER);
|
||||
|
||||
|
||||
@@ -528,8 +528,8 @@ static void AnimFlyBallAttack_Step(struct Sprite *sprite)
|
||||
}
|
||||
|
||||
if (sprite->x + sprite->x2 < -32
|
||||
|| sprite->x + sprite->x2 > DISPLAY_WIDTH + 32
|
||||
|| sprite->y + sprite->y2 > DISPLAY_HEIGHT)
|
||||
|| sprite->x + sprite->x2 > DISPLAY_WIDTH + 32
|
||||
|| sprite->y + sprite->y2 > DISPLAY_HEIGHT)
|
||||
{
|
||||
gSprites[GetAnimBattlerSpriteId(ANIM_ATTACKER)].invisible = FALSE;
|
||||
DestroyAnimSprite(sprite);
|
||||
@@ -1215,8 +1215,8 @@ void AnimSkyAttackBird_Step(struct Sprite *sprite)
|
||||
sprite->x = sprite->data[4] >> 4;
|
||||
sprite->y = sprite->data[5] >> 4;
|
||||
|
||||
if (sprite->x > 285 || sprite->x < -45
|
||||
|| sprite->y > 157 || sprite->y < -45)
|
||||
if (sprite->x > DISPLAY_WIDTH + 45 || sprite->x < -45
|
||||
|| sprite->y > 157 || sprite->y < -45)
|
||||
DestroySpriteAndMatrix(sprite);
|
||||
}
|
||||
|
||||
|
||||
+18
-14
@@ -45,7 +45,7 @@ static void AnimThrowIceBall(struct Sprite *);
|
||||
static void InitIceBallParticle(struct Sprite *);
|
||||
static void AnimIceBallParticle(struct Sprite *);
|
||||
static void AnimTask_HazeScrollingFog_Step(u8);
|
||||
static void AnimTask_LoadMistTiles_Step(u8);
|
||||
static void AnimTask_MistBallFog_Step(u8);
|
||||
static void AnimTask_Hail2(u8);
|
||||
static bool8 GenerateHailParticle(u8 hailStructId, u8 affineAnimNum, u8 taskId, u8 c);
|
||||
|
||||
@@ -353,7 +353,7 @@ const struct SpriteTemplate gMistBallSpriteTemplate =
|
||||
.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,
|
||||
};
|
||||
@@ -696,7 +696,8 @@ static void AnimSwirlingSnowball(struct Sprite *sprite)
|
||||
sprite->data[0] = 1;
|
||||
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 < -16)
|
||||
break;
|
||||
@@ -762,7 +763,8 @@ static void AnimSwirlingSnowball_End(struct Sprite *sprite)
|
||||
sprite->data[0] = 1;
|
||||
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 < -16)
|
||||
DestroyAnimSprite(sprite);
|
||||
@@ -816,7 +818,8 @@ static void AnimMoveParticleBeyondTarget(struct Sprite *sprite)
|
||||
{
|
||||
sprite->data[0] = 1;
|
||||
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 < -16)
|
||||
break;
|
||||
@@ -846,7 +849,8 @@ static void AnimWiggleParticleTowardsTarget(struct Sprite *sprite)
|
||||
sprite->data[7] = (sprite->data[7] + sprite->data[6]) & 0xFF;
|
||||
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 < -16)
|
||||
DestroyAnimSprite(sprite);
|
||||
@@ -1086,7 +1090,7 @@ static void AnimThrowMistBall(struct Sprite *sprite)
|
||||
}
|
||||
|
||||
// Displays misty background in Mist Ball.
|
||||
void AnimTask_LoadMistTiles(u8 taskId)
|
||||
void AnimTask_MistBallFog(u8 taskId)
|
||||
{
|
||||
struct BattleAnimBgData animBg;
|
||||
|
||||
@@ -1109,10 +1113,10 @@ void AnimTask_LoadMistTiles(u8 taskId)
|
||||
LoadPalette(&gFogPalette, animBg.paletteId * 16, 32);
|
||||
|
||||
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;
|
||||
|
||||
@@ -1123,7 +1127,7 @@ static void AnimTask_LoadMistTiles_Step(u8 taskId)
|
||||
{
|
||||
case 0:
|
||||
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]));
|
||||
if (gTasks[taskId].data[11] == 5)
|
||||
{
|
||||
@@ -1410,14 +1414,14 @@ static bool8 GenerateHailParticle(u8 hailStructId, u8 affineAnimNum, u8 taskId,
|
||||
}
|
||||
else
|
||||
{
|
||||
battlerX = (sHailCoordData[hailStructId].x);
|
||||
battlerY = (sHailCoordData[hailStructId].y);
|
||||
battlerX = sHailCoordData[hailStructId].x;
|
||||
battlerY = sHailCoordData[hailStructId].y;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
battlerX = (sHailCoordData[hailStructId].x);
|
||||
battlerY = (sHailCoordData[hailStructId].y);
|
||||
battlerX = sHailCoordData[hailStructId].x;
|
||||
battlerY = sHailCoordData[hailStructId].y;
|
||||
}
|
||||
spriteX = battlerX - ((battlerY + 8) / 2);
|
||||
id = CreateSprite(&gHailParticleSpriteTemplate, spriteX, -8, 18);
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
#include "task.h"
|
||||
#include "trig.h"
|
||||
|
||||
// This file's functions.
|
||||
static void AnimTask_ShakeMon_Step(u8 taskId);
|
||||
static void AnimTask_ShakeMon2_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[5] = gBattleAnimArgs[2];
|
||||
gTasks[taskId].func = AnimTask_ShakeMon_Step;
|
||||
AnimTask_ShakeMon_Step(taskId);
|
||||
gTasks[taskId].func(taskId);
|
||||
}
|
||||
|
||||
static void AnimTask_ShakeMon_Step(u8 taskId)
|
||||
@@ -156,17 +155,14 @@ static void AnimTask_ShakeMon_Step(u8 taskId)
|
||||
void AnimTask_ShakeMon2(u8 taskId)
|
||||
{
|
||||
u8 spriteId;
|
||||
bool8 destroy = FALSE;
|
||||
bool8 abort = FALSE;
|
||||
u8 battlerId;
|
||||
|
||||
if (gBattleAnimArgs[0] < MAX_BATTLERS_COUNT)
|
||||
{
|
||||
spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]);
|
||||
if (spriteId == SPRITE_NONE)
|
||||
{
|
||||
DestroyAnimVisualTask(taskId);
|
||||
return;
|
||||
}
|
||||
abort = TRUE;
|
||||
}
|
||||
else if (gBattleAnimArgs[0] != 8)
|
||||
{
|
||||
@@ -188,7 +184,7 @@ void AnimTask_ShakeMon2(u8 taskId)
|
||||
}
|
||||
|
||||
if (IsBattlerSpriteVisible(battlerId) == FALSE)
|
||||
destroy = TRUE;
|
||||
abort = TRUE;
|
||||
|
||||
spriteId = gBattlerSpriteIds[battlerId];
|
||||
}
|
||||
@@ -197,7 +193,7 @@ void AnimTask_ShakeMon2(u8 taskId)
|
||||
spriteId = gBattlerSpriteIds[gBattleAnimAttacker];
|
||||
}
|
||||
|
||||
if (destroy)
|
||||
if (abort)
|
||||
{
|
||||
DestroyAnimVisualTask(taskId);
|
||||
return;
|
||||
@@ -332,10 +328,8 @@ void AnimTask_ShakeAndSinkMon(u8 taskId)
|
||||
|
||||
static void AnimTask_ShakeAndSinkMon_Step(u8 taskId)
|
||||
{
|
||||
s16 x;
|
||||
u8 spriteId;
|
||||
spriteId = gTasks[taskId].data[0];
|
||||
x = gTasks[taskId].data[1];
|
||||
u8 spriteId = gTasks[taskId].data[0];
|
||||
s16 x = gTasks[taskId].data[1];
|
||||
if (gTasks[taskId].data[2] == gTasks[taskId].data[8]++)
|
||||
{
|
||||
gTasks[taskId].data[8] = 0;
|
||||
@@ -365,11 +359,8 @@ static void AnimTask_ShakeAndSinkMon_Step(u8 taskId)
|
||||
void AnimTask_TranslateMonElliptical(u8 taskId)
|
||||
{
|
||||
u8 i;
|
||||
u8 spriteId;
|
||||
u8 wavePeriod;
|
||||
|
||||
wavePeriod = 1;
|
||||
spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]);
|
||||
u8 wavePeriod = 1;
|
||||
u8 spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]);
|
||||
if (gBattleAnimArgs[4] > 5)
|
||||
gBattleAnimArgs[4] = 5;
|
||||
|
||||
@@ -742,7 +733,7 @@ static void AnimTask_SlideOffScreen_Step(u8 taskId)
|
||||
{
|
||||
u8 spriteId = gTasks[taskId].data[0];
|
||||
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);
|
||||
return;
|
||||
@@ -831,8 +822,7 @@ static void AnimTask_SwayMonStep(u8 taskId)
|
||||
// arg 4: sprite object mode
|
||||
void AnimTask_ScaleMonAndRestore(u8 taskId)
|
||||
{
|
||||
u8 spriteId;
|
||||
spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[3]);
|
||||
u8 spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[3]);
|
||||
PrepareBattlerSpriteForRotScale(spriteId, gBattleAnimArgs[4]);
|
||||
gTasks[taskId].data[0] = gBattleAnimArgs[0];
|
||||
gTasks[taskId].data[1] = gBattleAnimArgs[1];
|
||||
@@ -893,7 +883,7 @@ void AnimTask_RotateMonSpriteToSide(u8 taskId)
|
||||
}
|
||||
else
|
||||
{
|
||||
if (gBattleAnimArgs[2] == 0)
|
||||
if (gBattleAnimArgs[2] == ANIM_ATTACKER)
|
||||
{
|
||||
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
|
||||
void AnimTask_RotateMonToSideAndRestore(u8 taskId)
|
||||
{
|
||||
u8 spriteId;
|
||||
spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[2]);
|
||||
u8 spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[2]);
|
||||
PrepareBattlerSpriteForRotScale(spriteId, ST_OAM_OBJ_NORMAL);
|
||||
gTasks[taskId].data[1] = 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_2 55126
|
||||
|
||||
static const struct SpriteTemplate sSpriteTemplate_MoveEffectMons[] =
|
||||
static const struct SpriteTemplate sSpriteTemplates_MoveEffectMons[] =
|
||||
{
|
||||
{
|
||||
.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_2, },
|
||||
@@ -440,7 +440,7 @@ void SetCallbackToStoredInData6(struct Sprite *sprite)
|
||||
#define sAmplitudeX sAmplitude
|
||||
#define sAmplitudeY data[4]
|
||||
|
||||
// TranslateSpriteInWavePattern
|
||||
// TranslateSpriteInLissajousCurve
|
||||
#define sCirclePosX sCirclePos
|
||||
#define sCircleSpeedX sCircleSpeed
|
||||
#define sCirclePosY data[4]
|
||||
@@ -487,7 +487,7 @@ void TranslateSpriteInGrowingCircle(struct Sprite *sprite)
|
||||
|
||||
// Unused
|
||||
// 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)
|
||||
{
|
||||
@@ -1508,13 +1508,13 @@ u32 GetBattleMonSpritePalettesMask(u8 playerLeft, u8 playerRight, u8 opponentLef
|
||||
return selectedPalettes;
|
||||
}
|
||||
|
||||
// Presumably something commented here, just returns arg
|
||||
u8 AnimDummyReturnArg(u8 battler)
|
||||
u8 GetSpritePalIdxByBattler(u8 battler)
|
||||
{
|
||||
return battler;
|
||||
}
|
||||
|
||||
static u8 GetBattlerAtPosition_(u8 position)
|
||||
// Unused
|
||||
static u8 GetSpritePalIdxByPosition(u8 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
|
||||
void TranslateAnimSpriteToTargetMonLocation(struct Sprite *sprite)
|
||||
{
|
||||
bool8 v1;
|
||||
bool8 respectMonPicOffsets;
|
||||
u8 coordType;
|
||||
|
||||
if (!(gBattleAnimArgs[5] & 0xff00))
|
||||
v1 = TRUE;
|
||||
respectMonPicOffsets = TRUE;
|
||||
else
|
||||
v1 = FALSE;
|
||||
respectMonPicOffsets = FALSE;
|
||||
|
||||
if (!(gBattleAnimArgs[5] & 0xff))
|
||||
coordType = BATTLER_COORD_Y_PIC_OFFSET;
|
||||
else
|
||||
coordType = BATTLER_COORD_Y;
|
||||
|
||||
InitSpritePosToAnimAttacker(sprite, v1);
|
||||
InitSpritePosToAnimAttacker(sprite, respectMonPicOffsets);
|
||||
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
|
||||
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 spriteId;
|
||||
u16 sheet = LoadSpriteSheet(&sSpriteSheet_MoveEffectMons[id]);
|
||||
u16 palette = AllocSpritePalette(sSpriteTemplate_MoveEffectMons[id].paletteTag);
|
||||
u16 sheet = LoadSpriteSheet(&sSpriteSheets_MoveEffectMons[id]);
|
||||
u16 palette = AllocSpritePalette(sSpriteTemplates_MoveEffectMons[id].paletteTag);
|
||||
|
||||
if (gMonSpritesGfxPtr != NULL && gMonSpritesGfxPtr->buffer == NULL)
|
||||
gMonSpritesGfxPtr->buffer = AllocZeroed(0x2000);
|
||||
@@ -2139,9 +2139,9 @@ u8 CreateAdditionalMonSpriteForMoveAnim(u16 species, bool8 isBackpic, u8 id, s16
|
||||
FREE_AND_SET_NULL(gMonSpritesGfxPtr->buffer);
|
||||
|
||||
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
|
||||
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())
|
||||
{
|
||||
|
||||
@@ -818,7 +818,7 @@ static void AnimTask_ImprisonOrbs_Step(u8 taskId)
|
||||
{
|
||||
for (i = 8; i < 13; i++)
|
||||
{
|
||||
if (task->data[i] != 64)
|
||||
if (task->data[i] != MAX_SPRITES)
|
||||
DestroySprite(&gSprites[task->data[i]]);
|
||||
}
|
||||
|
||||
@@ -997,12 +997,10 @@ void AnimTask_ExtrasensoryDistortion(u8 taskId)
|
||||
scanlineParams.dmaDest = ®_BG2HOFS;
|
||||
}
|
||||
|
||||
i = task->data[14];
|
||||
while (i <= task->data[14] + 64)
|
||||
for (i = task->data[14]; i <= task->data[14] + 64; i++)
|
||||
{
|
||||
gScanlineEffectRegBuffers[0][i] = task->data[10];
|
||||
gScanlineEffectRegBuffers[1][i] = task->data[10];
|
||||
i++;
|
||||
}
|
||||
|
||||
scanlineParams.dmaControl = SCANLINE_EFFECT_DMACNT_16BIT;
|
||||
@@ -1137,7 +1135,7 @@ static void AnimPsychoBoost(struct Sprite *sprite)
|
||||
case 1:
|
||||
if (sprite->affineAnimEnded)
|
||||
{
|
||||
PlaySE12WithPanning(SE_M_TELEPORT, BattleAnimAdjustPanning(-64));
|
||||
PlaySE12WithPanning(SE_M_TELEPORT, BattleAnimAdjustPanning(SOUND_PAN_ATTACKER));
|
||||
ChangeSpriteAffineAnim(sprite, 1);
|
||||
sprite->data[0]++;
|
||||
}
|
||||
|
||||
@@ -596,8 +596,8 @@ void AnimTask_Rollout(u8 taskId)
|
||||
task->data[6] = 0;
|
||||
task->data[7] = 0;
|
||||
|
||||
pan1 = BattleAnimAdjustPanning(-64);
|
||||
pan2 = BattleAnimAdjustPanning(63);
|
||||
pan1 = BattleAnimAdjustPanning(SOUND_PAN_ATTACKER);
|
||||
pan2 = BattleAnimAdjustPanning(SOUND_PAN_TARGET);
|
||||
|
||||
task->data[13] = pan1;
|
||||
task->data[14] = (pan2 - pan1) / task->data[8];
|
||||
|
||||
@@ -100,7 +100,7 @@ void SoundTask_LoopSEAdjustPanning(u8 taskId)
|
||||
gTasks[taskId].data[12] = r9;
|
||||
|
||||
gTasks[taskId].func = SoundTask_LoopSEAdjustPanning_Step;
|
||||
SoundTask_LoopSEAdjustPanning_Step(taskId);
|
||||
gTasks[taskId].func(taskId);
|
||||
}
|
||||
|
||||
static void SoundTask_LoopSEAdjustPanning_Step(u8 taskId)
|
||||
@@ -385,7 +385,7 @@ void SoundTask_AdjustPanningVar(u8 taskId)
|
||||
gTasks[taskId].data[11] = sourcePan;
|
||||
|
||||
gTasks[taskId].func = SoundTask_AdjustPanningVar_Step;
|
||||
SoundTask_AdjustPanningVar_Step(taskId);
|
||||
gTasks[taskId].func(taskId);
|
||||
}
|
||||
|
||||
static void SoundTask_AdjustPanningVar_Step(u8 taskId)
|
||||
|
||||
@@ -550,8 +550,8 @@ static void LoadHealthboxPalsForLevelUp(u8 *paletteId1, u8 *paletteId2, u8 battl
|
||||
healthBoxSpriteId = gHealthboxSpriteIds[battler];
|
||||
spriteId1 = gSprites[healthBoxSpriteId].oam.affineParam;
|
||||
spriteId2 = gSprites[healthBoxSpriteId].data[5];
|
||||
*paletteId1 = AllocSpritePalette(0xD709);
|
||||
*paletteId2 = AllocSpritePalette(0xD70A);
|
||||
*paletteId1 = AllocSpritePalette(TAG_HEALTHBOX_PALS_1);
|
||||
*paletteId2 = AllocSpritePalette(TAG_HEALTHBOX_PALS_2);
|
||||
|
||||
offset1 = (gSprites[healthBoxSpriteId].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;
|
||||
spriteId2 = gSprites[healthBoxSpriteId].data[5];
|
||||
|
||||
FreeSpritePaletteByTag(0xD709);
|
||||
FreeSpritePaletteByTag(0xD70A);
|
||||
paletteId1 = IndexOfSpritePaletteTag(0xD6FF);
|
||||
paletteId2 = IndexOfSpritePaletteTag(0xD704);
|
||||
FreeSpritePaletteByTag(TAG_HEALTHBOX_PALS_1);
|
||||
FreeSpritePaletteByTag(TAG_HEALTHBOX_PALS_2);
|
||||
paletteId1 = IndexOfSpritePaletteTag(TAG_HEALTHBOX_PAL);
|
||||
paletteId2 = IndexOfSpritePaletteTag(TAG_HEALTHBAR_PAL);
|
||||
gSprites[healthBoxSpriteId].oam.paletteNum = paletteId1;
|
||||
gSprites[spriteId1].oam.paletteNum = paletteId1;
|
||||
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])
|
||||
{
|
||||
gTasks[taskId].data[0] = 0;
|
||||
paletteNum = IndexOfSpritePaletteTag(0xD709);
|
||||
paletteNum = IndexOfSpritePaletteTag(TAG_HEALTHBOX_PALS_1);
|
||||
colorOffset = gTasks[taskId].data[10] == 0 ? 6 : 2;
|
||||
switch (gTasks[taskId].data[1])
|
||||
{
|
||||
|
||||
@@ -97,7 +97,7 @@ void AnimTask_BlendBattleAnimPalExclude(u8 taskId)
|
||||
for (battler = 0; battler < MAX_BATTLERS_COUNT; battler++)
|
||||
{
|
||||
if (battler != animBattlers[0] && battler != animBattlers[1] && IsBattlerSpriteVisible(battler))
|
||||
selectedPalettes |= 0x10000 << AnimDummyReturnArg(battler);
|
||||
selectedPalettes |= 0x10000 << GetSpritePalIdxByBattler(battler);
|
||||
}
|
||||
|
||||
StartBlendAnimSpriteColor(taskId, selectedPalettes);
|
||||
@@ -535,9 +535,9 @@ static void StatsChangeAnimation_Step2(u8 taskId)
|
||||
gTasks[taskId].func = StatsChangeAnimation_Step3;
|
||||
|
||||
if (sAnimStatsChangeData->data[0] == 0)
|
||||
PlaySE12WithPanning(SE_M_STAT_INCREASE, BattleAnimAdjustPanning2(-64));
|
||||
PlaySE12WithPanning(SE_M_STAT_INCREASE, BattleAnimAdjustPanning2(SOUND_PAN_ATTACKER));
|
||||
else
|
||||
PlaySE12WithPanning(SE_M_STAT_DECREASE, BattleAnimAdjustPanning2(-64));
|
||||
PlaySE12WithPanning(SE_M_STAT_DECREASE, BattleAnimAdjustPanning2(SOUND_PAN_ATTACKER));
|
||||
}
|
||||
|
||||
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 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_KARATE_CHOP] = 1,
|
||||
[MOVE_DOUBLE_SLAP] = 1,
|
||||
@@ -54,11 +70,9 @@ static const s8 sMindRatings[] =
|
||||
[MOVE_VICE_GRIP] = 1,
|
||||
[MOVE_GUILLOTINE] = 1,
|
||||
[MOVE_RAZOR_WIND] = 1,
|
||||
[MOVE_SWORDS_DANCE] = 0,
|
||||
[MOVE_CUT] = 1,
|
||||
[MOVE_GUST] = 1,
|
||||
[MOVE_WING_ATTACK] = 1,
|
||||
[MOVE_WHIRLWIND] = 0,
|
||||
[MOVE_FLY] = 1,
|
||||
[MOVE_BIND] = 1,
|
||||
[MOVE_SLAM] = 1,
|
||||
@@ -68,7 +82,6 @@ static const s8 sMindRatings[] =
|
||||
[MOVE_MEGA_KICK] = 1,
|
||||
[MOVE_JUMP_KICK] = 1,
|
||||
[MOVE_ROLLING_KICK] = 1,
|
||||
[MOVE_SAND_ATTACK] = 0,
|
||||
[MOVE_HEADBUTT] = 1,
|
||||
[MOVE_HORN_ATTACK] = 1,
|
||||
[MOVE_FURY_ATTACK] = 1,
|
||||
@@ -79,22 +92,14 @@ static const s8 sMindRatings[] =
|
||||
[MOVE_TAKE_DOWN] = 1,
|
||||
[MOVE_THRASH] = 1,
|
||||
[MOVE_DOUBLE_EDGE] = 1,
|
||||
[MOVE_TAIL_WHIP] = 0,
|
||||
[MOVE_POISON_STING] = 1,
|
||||
[MOVE_TWINEEDLE] = 1,
|
||||
[MOVE_PIN_MISSILE] = 1,
|
||||
[MOVE_LEER] = 0,
|
||||
[MOVE_BITE] = 1,
|
||||
[MOVE_GROWL] = 0,
|
||||
[MOVE_ROAR] = 0,
|
||||
[MOVE_SING] = 0,
|
||||
[MOVE_SUPERSONIC] = 0,
|
||||
[MOVE_SONIC_BOOM] = 1,
|
||||
[MOVE_DISABLE] = 0,
|
||||
[MOVE_ACID] = 1,
|
||||
[MOVE_EMBER] = 1,
|
||||
[MOVE_FLAMETHROWER] = 1,
|
||||
[MOVE_MIST] = 0,
|
||||
[MOVE_WATER_GUN] = 1,
|
||||
[MOVE_HYDRO_PUMP] = 1,
|
||||
[MOVE_SURF] = 1,
|
||||
@@ -108,58 +113,27 @@ static const s8 sMindRatings[] =
|
||||
[MOVE_DRILL_PECK] = 1,
|
||||
[MOVE_SUBMISSION] = 1,
|
||||
[MOVE_LOW_KICK] = 1,
|
||||
[MOVE_COUNTER] = 0,
|
||||
[MOVE_SEISMIC_TOSS] = 1,
|
||||
[MOVE_STRENGTH] = 1,
|
||||
[MOVE_ABSORB] = 1,
|
||||
[MOVE_MEGA_DRAIN] = 1,
|
||||
[MOVE_LEECH_SEED] = 0,
|
||||
[MOVE_GROWTH] = 0,
|
||||
[MOVE_RAZOR_LEAF] = 1,
|
||||
[MOVE_SOLAR_BEAM] = 1,
|
||||
[MOVE_POISON_POWDER] = 0,
|
||||
[MOVE_STUN_SPORE] = 0,
|
||||
[MOVE_SLEEP_POWDER] = 0,
|
||||
[MOVE_PETAL_DANCE] = 1,
|
||||
[MOVE_STRING_SHOT] = 0,
|
||||
[MOVE_DRAGON_RAGE] = 1,
|
||||
[MOVE_FIRE_SPIN] = 1,
|
||||
[MOVE_THUNDER_SHOCK] = 1,
|
||||
[MOVE_THUNDERBOLT] = 1,
|
||||
[MOVE_THUNDER_WAVE] = 0,
|
||||
[MOVE_THUNDER] = 1,
|
||||
[MOVE_ROCK_THROW] = 1,
|
||||
[MOVE_EARTHQUAKE] = 1,
|
||||
[MOVE_FISSURE] = 1,
|
||||
[MOVE_DIG] = 1,
|
||||
[MOVE_TOXIC] = 0,
|
||||
[MOVE_CONFUSION] = 1,
|
||||
[MOVE_PSYCHIC] = 1,
|
||||
[MOVE_HYPNOSIS] = 0,
|
||||
[MOVE_MEDITATE] = 0,
|
||||
[MOVE_AGILITY] = 0,
|
||||
[MOVE_QUICK_ATTACK] = 1,
|
||||
[MOVE_RAGE] = 1,
|
||||
[MOVE_TELEPORT] = 0,
|
||||
[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_EGG_BOMB] = 1,
|
||||
[MOVE_LICK] = 1,
|
||||
@@ -173,118 +147,67 @@ static const s8 sMindRatings[] =
|
||||
[MOVE_SKULL_BASH] = 1,
|
||||
[MOVE_SPIKE_CANNON] = 1,
|
||||
[MOVE_CONSTRICT] = 1,
|
||||
[MOVE_AMNESIA] = 0,
|
||||
[MOVE_KINESIS] = 0,
|
||||
[MOVE_SOFT_BOILED] = 0,
|
||||
[MOVE_HI_JUMP_KICK] = 1,
|
||||
[MOVE_GLARE] = 0,
|
||||
[MOVE_DREAM_EATER] = 1,
|
||||
[MOVE_POISON_GAS] = 0,
|
||||
[MOVE_BARRAGE] = 1,
|
||||
[MOVE_LEECH_LIFE] = 1,
|
||||
[MOVE_LOVELY_KISS] = 0,
|
||||
[MOVE_SKY_ATTACK] = 1,
|
||||
[MOVE_TRANSFORM] = 0,
|
||||
[MOVE_BUBBLE] = 1,
|
||||
[MOVE_DIZZY_PUNCH] = 1,
|
||||
[MOVE_SPORE] = 0,
|
||||
[MOVE_FLASH] = 0,
|
||||
[MOVE_PSYWAVE] = 1,
|
||||
[MOVE_SPLASH] = 0,
|
||||
[MOVE_ACID_ARMOR] = 0,
|
||||
[MOVE_CRABHAMMER] = 1,
|
||||
[MOVE_EXPLOSION] = 1,
|
||||
[MOVE_FURY_SWIPES] = 1,
|
||||
[MOVE_BONEMERANG] = 1,
|
||||
[MOVE_REST] = 0,
|
||||
[MOVE_ROCK_SLIDE] = 1,
|
||||
[MOVE_HYPER_FANG] = 1,
|
||||
[MOVE_SHARPEN] = 0,
|
||||
[MOVE_CONVERSION] = 0,
|
||||
[MOVE_TRI_ATTACK] = 1,
|
||||
[MOVE_SUPER_FANG] = 1,
|
||||
[MOVE_SLASH] = 1,
|
||||
[MOVE_SUBSTITUTE] = 0,
|
||||
[MOVE_STRUGGLE] = 1,
|
||||
[MOVE_SKETCH] = 0,
|
||||
[MOVE_TRIPLE_KICK] = 1,
|
||||
[MOVE_THIEF] = 1,
|
||||
[MOVE_SPIDER_WEB] = 0,
|
||||
[MOVE_MIND_READER] = 0,
|
||||
[MOVE_NIGHTMARE] = 0,
|
||||
[MOVE_FLAME_WHEEL] = 1,
|
||||
[MOVE_SNORE] = 1,
|
||||
[MOVE_CURSE] = 0,
|
||||
[MOVE_FLAIL] = 1,
|
||||
[MOVE_CONVERSION_2] = 0,
|
||||
[MOVE_AEROBLAST] = 1,
|
||||
[MOVE_COTTON_SPORE] = 0,
|
||||
[MOVE_REVERSAL] = 1,
|
||||
[MOVE_SPITE] = 0,
|
||||
[MOVE_POWDER_SNOW] = 1,
|
||||
[MOVE_PROTECT] = -1,
|
||||
[MOVE_MACH_PUNCH] = 1,
|
||||
[MOVE_SCARY_FACE] = 0,
|
||||
[MOVE_FAINT_ATTACK] = 1,
|
||||
[MOVE_SWEET_KISS] = 0,
|
||||
[MOVE_BELLY_DRUM] = 0,
|
||||
[MOVE_SLUDGE_BOMB] = 1,
|
||||
[MOVE_MUD_SLAP] = 1,
|
||||
[MOVE_OCTAZOOKA] = 1,
|
||||
[MOVE_SPIKES] = 0,
|
||||
[MOVE_ZAP_CANNON] = 1,
|
||||
[MOVE_FORESIGHT] = 0,
|
||||
[MOVE_DESTINY_BOND] = 0,
|
||||
[MOVE_PERISH_SONG] = 0,
|
||||
[MOVE_ICY_WIND] = 1,
|
||||
[MOVE_DETECT] = -1,
|
||||
[MOVE_BONE_RUSH] = 1,
|
||||
[MOVE_LOCK_ON] = 0,
|
||||
[MOVE_OUTRAGE] = 1,
|
||||
[MOVE_SANDSTORM] = 0,
|
||||
[MOVE_GIGA_DRAIN] = 1,
|
||||
[MOVE_ENDURE] = -1,
|
||||
[MOVE_CHARM] = 0,
|
||||
[MOVE_ROLLOUT] = 1,
|
||||
[MOVE_FALSE_SWIPE] = 1,
|
||||
[MOVE_SWAGGER] = 0,
|
||||
[MOVE_MILK_DRINK] = 0,
|
||||
[MOVE_SPARK] = 1,
|
||||
[MOVE_FURY_CUTTER] = 1,
|
||||
[MOVE_STEEL_WING] = 1,
|
||||
[MOVE_MEAN_LOOK] = 0,
|
||||
[MOVE_ATTRACT] = 0,
|
||||
[MOVE_SLEEP_TALK] = 0,
|
||||
[MOVE_HEAL_BELL] = 0,
|
||||
[MOVE_RETURN] = 1,
|
||||
[MOVE_PRESENT] = 1,
|
||||
[MOVE_FRUSTRATION] = 1,
|
||||
[MOVE_SAFEGUARD] = 0,
|
||||
[MOVE_PAIN_SPLIT] = 0,
|
||||
[MOVE_SACRED_FIRE] = 1,
|
||||
[MOVE_MAGNITUDE] = 1,
|
||||
[MOVE_DYNAMIC_PUNCH] = 1,
|
||||
[MOVE_MEGAHORN] = 1,
|
||||
[MOVE_DRAGON_BREATH] = 1,
|
||||
[MOVE_BATON_PASS] = 0,
|
||||
[MOVE_ENCORE] = 0,
|
||||
[MOVE_PURSUIT] = 1,
|
||||
[MOVE_RAPID_SPIN] = 1,
|
||||
[MOVE_SWEET_SCENT] = 0,
|
||||
[MOVE_IRON_TAIL] = 1,
|
||||
[MOVE_METAL_CLAW] = 1,
|
||||
[MOVE_VITAL_THROW] = 1,
|
||||
[MOVE_MORNING_SUN] = 0,
|
||||
[MOVE_SYNTHESIS] = 0,
|
||||
[MOVE_MOONLIGHT] = 0,
|
||||
[MOVE_HIDDEN_POWER] = 1,
|
||||
[MOVE_CROSS_CHOP] = 1,
|
||||
[MOVE_TWISTER] = 1,
|
||||
[MOVE_RAIN_DANCE] = 0,
|
||||
[MOVE_SUNNY_DAY] = 0,
|
||||
[MOVE_CRUNCH] = 1,
|
||||
[MOVE_MIRROR_COAT] = 0,
|
||||
[MOVE_PSYCH_UP] = 0,
|
||||
[MOVE_EXTREME_SPEED] = 1,
|
||||
[MOVE_ANCIENT_POWER] = 1,
|
||||
[MOVE_SHADOW_BALL] = 1,
|
||||
@@ -294,56 +217,25 @@ static const s8 sMindRatings[] =
|
||||
[MOVE_BEAT_UP] = 1,
|
||||
[MOVE_FAKE_OUT] = -1,
|
||||
[MOVE_UPROAR] = 1,
|
||||
[MOVE_STOCKPILE] = 0,
|
||||
[MOVE_SPIT_UP] = 1,
|
||||
[MOVE_SWALLOW] = 0,
|
||||
[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_FOCUS_PUNCH] = 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_MAGIC_COAT] = 0,
|
||||
[MOVE_RECYCLE] = 0,
|
||||
[MOVE_REVENGE] = 1,
|
||||
[MOVE_BRICK_BREAK] = 1,
|
||||
[MOVE_YAWN] = 0,
|
||||
[MOVE_KNOCK_OFF] = 1,
|
||||
[MOVE_ENDEAVOR] = 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_DIVE] = 1,
|
||||
[MOVE_ARM_THRUST] = 1,
|
||||
[MOVE_CAMOUFLAGE] = 0,
|
||||
[MOVE_TAIL_GLOW] = 0,
|
||||
[MOVE_LUSTER_PURGE] = 1,
|
||||
[MOVE_MIST_BALL] = 1,
|
||||
[MOVE_FEATHER_DANCE] = 0,
|
||||
[MOVE_TEETER_DANCE] = 0,
|
||||
[MOVE_BLAZE_KICK] = 1,
|
||||
[MOVE_MUD_SPORT] = 0,
|
||||
[MOVE_ICE_BALL] = 1,
|
||||
[MOVE_NEEDLE_ARM] = 1,
|
||||
[MOVE_SLACK_OFF] = 0,
|
||||
[MOVE_HYPER_VOICE] = 1,
|
||||
[MOVE_POISON_FANG] = 1,
|
||||
[MOVE_CRUSH_CLAW] = 1,
|
||||
@@ -352,17 +244,10 @@ static const s8 sMindRatings[] =
|
||||
[MOVE_METEOR_MASH] = 1,
|
||||
[MOVE_ASTONISH] = 1,
|
||||
[MOVE_WEATHER_BALL] = 1,
|
||||
[MOVE_AROMATHERAPY] = 0,
|
||||
[MOVE_FAKE_TEARS] = 0,
|
||||
[MOVE_AIR_CUTTER] = 1,
|
||||
[MOVE_OVERHEAT] = 1,
|
||||
[MOVE_ODOR_SLEUTH] = 0,
|
||||
[MOVE_ROCK_TOMB] = 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_SIGNAL_BEAM] = 1,
|
||||
[MOVE_SHADOW_PUNCH] = 1,
|
||||
@@ -374,22 +259,15 @@ static const s8 sMindRatings[] =
|
||||
[MOVE_BULLET_SEED] = 1,
|
||||
[MOVE_AERIAL_ACE] = 1,
|
||||
[MOVE_ICICLE_SPEAR] = 1,
|
||||
[MOVE_IRON_DEFENSE] = 0,
|
||||
[MOVE_BLOCK] = 0,
|
||||
[MOVE_HOWL] = 0,
|
||||
[MOVE_DRAGON_CLAW] = 1,
|
||||
[MOVE_FRENZY_PLANT] = 1,
|
||||
[MOVE_BULK_UP] = 0,
|
||||
[MOVE_BOUNCE] = 1,
|
||||
[MOVE_MUD_SHOT] = 1,
|
||||
[MOVE_POISON_TAIL] = 1,
|
||||
[MOVE_COVET] = 1,
|
||||
[MOVE_VOLT_TACKLE] = 1,
|
||||
[MOVE_MAGICAL_LEAF] = 1,
|
||||
[MOVE_WATER_SPORT] = 0,
|
||||
[MOVE_CALM_MIND] = 0,
|
||||
[MOVE_LEAF_BLADE] = 1,
|
||||
[MOVE_DRAGON_DANCE] = 0,
|
||||
[MOVE_ROCK_BLAST] = 1,
|
||||
[MOVE_SHOCK_WAVE] = 1,
|
||||
[MOVE_WATER_PULSE] = 1,
|
||||
@@ -397,9 +275,7 @@ static const s8 sMindRatings[] =
|
||||
[MOVE_PSYCHO_BOOST] = 1,
|
||||
};
|
||||
|
||||
#define TAG_JUDGEMENT_ICON 1000
|
||||
|
||||
static const struct OamData sJudgementIconOamData =
|
||||
static const struct OamData sOam_JudgementIcon =
|
||||
{
|
||||
.y = 0,
|
||||
.affineMode = ST_OAM_AFFINE_OFF,
|
||||
@@ -416,44 +292,44 @@ static const struct OamData sJudgementIconOamData =
|
||||
.affineParam = 0
|
||||
};
|
||||
|
||||
static const union AnimCmd sJudgementIconAnimCmd0[] =
|
||||
static const union AnimCmd sAnim_JudgementIcon_X[] =
|
||||
{
|
||||
ANIMCMD_FRAME(0, 1),
|
||||
ANIMCMD_END
|
||||
};
|
||||
|
||||
static const union AnimCmd sJudgementIconAnimCmd1[] =
|
||||
static const union AnimCmd sAnim_JudgementIcon_Triangle[] =
|
||||
{
|
||||
ANIMCMD_FRAME(4, 1),
|
||||
ANIMCMD_END
|
||||
};
|
||||
|
||||
static const union AnimCmd sJudgementIconAnimCmd2[] =
|
||||
static const union AnimCmd sAnim_JudgementIcon_Circle[] =
|
||||
{
|
||||
ANIMCMD_FRAME(8, 1),
|
||||
ANIMCMD_END
|
||||
};
|
||||
|
||||
static const union AnimCmd sJudgementIconAnimCmd3[] =
|
||||
static const union AnimCmd sAnim_JudgementIcon_Line[] =
|
||||
{
|
||||
ANIMCMD_FRAME(12, 1),
|
||||
ANIMCMD_END
|
||||
};
|
||||
|
||||
static const union AnimCmd *const sJudgementIconAnimCmds[] =
|
||||
static const union AnimCmd *const sAnims_JudgementIcon[] =
|
||||
{
|
||||
sJudgementIconAnimCmd0,
|
||||
sJudgementIconAnimCmd1,
|
||||
sJudgementIconAnimCmd2,
|
||||
sJudgementIconAnimCmd3
|
||||
[ANIM_ICON_X] = sAnim_JudgementIcon_X,
|
||||
[ANIM_ICON_TRIANGLE] = sAnim_JudgementIcon_Triangle,
|
||||
[ANIM_ICON_CIRCLE] = sAnim_JudgementIcon_Circle,
|
||||
[ANIM_ICON_LINE] = sAnim_JudgementIcon_Line,
|
||||
};
|
||||
|
||||
static const struct SpriteTemplate sSpriteTemplate_JudgmentIcon =
|
||||
{
|
||||
.tileTag = TAG_JUDGEMENT_ICON,
|
||||
.paletteTag = TAG_NONE,
|
||||
.oam = &sJudgementIconOamData,
|
||||
.anims = sJudgementIconAnimCmds,
|
||||
.oam = &sOam_JudgementIcon,
|
||||
.anims = sAnims_JudgementIcon,
|
||||
.images = NULL,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = SpriteCB_JudgmentIcon,
|
||||
@@ -507,12 +383,12 @@ void CallBattleArenaFunction(void)
|
||||
u8 BattleArena_ShowJudgmentWindow(u8 *state)
|
||||
{
|
||||
int i;
|
||||
u8 ret = 0;
|
||||
u8 result = ARENA_RESULT_RUNNING;
|
||||
switch (*state)
|
||||
{
|
||||
case 0:
|
||||
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);
|
||||
LoadCompressedPalette(gBattleArenaJudgementSymbolsPalette, 0x1F0, 0x20);
|
||||
gBattle_WIN0H = 0xFF;
|
||||
@@ -549,13 +425,15 @@ u8 BattleArena_ShowJudgmentWindow(u8 *state)
|
||||
case 3:
|
||||
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++)
|
||||
{
|
||||
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)++;
|
||||
}
|
||||
break;
|
||||
@@ -566,7 +444,7 @@ u8 BattleArena_ShowJudgmentWindow(u8 *state)
|
||||
BattleStringExpandPlaceholdersToDisplayedString(gText_Judgement);
|
||||
BattlePutTextOnWindow(gDisplayedStringBattle, ARENA_WIN_JUDGEMENT_TITLE);
|
||||
(*state)++;
|
||||
ret = 1;
|
||||
result = ARENA_RESULT_STEP_DONE;
|
||||
break;
|
||||
case 5:
|
||||
PlaySE(SE_ARENA_TIMEUP1);
|
||||
@@ -575,7 +453,7 @@ u8 BattleArena_ShowJudgmentWindow(u8 *state)
|
||||
BattleStringExpandPlaceholdersToDisplayedString(gText_Judgement);
|
||||
BattlePutTextOnWindow(gDisplayedStringBattle, ARENA_WIN_JUDGEMENT_TITLE);
|
||||
(*state)++;
|
||||
ret = 1;
|
||||
result = ARENA_RESULT_STEP_DONE;
|
||||
break;
|
||||
case 6:
|
||||
PlaySE(SE_ARENA_TIMEUP1);
|
||||
@@ -584,49 +462,50 @@ u8 BattleArena_ShowJudgmentWindow(u8 *state)
|
||||
BattleStringExpandPlaceholdersToDisplayedString(gText_Judgement);
|
||||
BattlePutTextOnWindow(gDisplayedStringBattle, ARENA_WIN_JUDGEMENT_TITLE);
|
||||
(*state)++;
|
||||
ret = 1;
|
||||
result = ARENA_RESULT_STEP_DONE;
|
||||
break;
|
||||
case 7:
|
||||
PlaySE(SE_ARENA_TIMEUP2);
|
||||
if (gBattleTextBuff1[0] > gBattleTextBuff2[0])
|
||||
{
|
||||
ret = 2;
|
||||
result = ARENA_RESULT_PLAYER_WON;
|
||||
gBattleScripting.battler = 0;
|
||||
}
|
||||
else if (gBattleTextBuff1[0] < gBattleTextBuff2[0])
|
||||
{
|
||||
ret = 3;
|
||||
result = ARENA_RESULT_PLAYER_LOST;
|
||||
gBattleScripting.battler = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
ret = 4;
|
||||
result = ARENA_RESULT_TIE;
|
||||
}
|
||||
(*state)++;
|
||||
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)++;
|
||||
break;
|
||||
case 9:
|
||||
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);
|
||||
case JUDGEMENT_STATE_FINISHED + 1:
|
||||
SetGpuReg(REG_OFFSET_WININ, (WININ_WIN0_ALL & ~WININ_WIN0_BG0) | WININ_WIN1_ALL);
|
||||
HandleBattleWindow(5, 0, 24, 13, WINDOW_CLEAR);
|
||||
CopyBgTilemapBufferToVram(0);
|
||||
m4aMPlayVolumeControl(&gMPlayInfo_BGM, TRACKS_ALL, 256);
|
||||
BeginNormalPaletteFade(0x7FFFFF1C, 4, 8, 0, RGB_BLACK);
|
||||
(*state)++;
|
||||
break;
|
||||
case 10:
|
||||
case JUDGEMENT_STATE_FINISHED + 2:
|
||||
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);
|
||||
ret = 1;
|
||||
result = ARENA_RESULT_STEP_DONE;
|
||||
(*state)++;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
return ret;
|
||||
return result;
|
||||
}
|
||||
|
||||
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)
|
||||
{
|
||||
animNum = 2;
|
||||
animNum = ANIM_ICON_CIRCLE;
|
||||
// +2 to score total for winning
|
||||
if (battler != 0)
|
||||
gBattleTextBuff2[0] += 2;
|
||||
else
|
||||
@@ -664,7 +544,8 @@ static void ShowJudgmentSprite(u8 x, u8 y, u8 category, u8 battler)
|
||||
}
|
||||
else if (pointsPlayer == pointsOpponent)
|
||||
{
|
||||
animNum = 1;
|
||||
animNum = ANIM_ICON_TRIANGLE;
|
||||
// +1 to score total for a tie
|
||||
if (battler != 0)
|
||||
gBattleTextBuff2[0] += 1;
|
||||
else
|
||||
@@ -672,7 +553,7 @@ static void ShowJudgmentSprite(u8 x, u8 y, u8 category, u8 battler)
|
||||
}
|
||||
else
|
||||
{
|
||||
animNum = 0;
|
||||
animNum = ANIM_ICON_X;
|
||||
}
|
||||
|
||||
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)
|
||||
{
|
||||
if (gBattleCommunication[0] > 8)
|
||||
if (gBattleCommunication[0] > JUDGEMENT_STATE_FINISHED)
|
||||
DestroySprite(sprite);
|
||||
}
|
||||
|
||||
@@ -701,8 +582,7 @@ void BattleArena_InitPoints(void)
|
||||
|
||||
void BattleArena_AddMindPoints(u8 battler)
|
||||
{
|
||||
s8 *mindPoints = gBattleStruct->arenaMindPoints;
|
||||
mindPoints[battler] += sMindRatings[gCurrentMove];
|
||||
gBattleStruct->arenaMindPoints[battler] += sMindRatings[gCurrentMove];
|
||||
}
|
||||
|
||||
void BattleArena_AddSkillPoints(u8 battler)
|
||||
|
||||
@@ -6368,7 +6368,10 @@ static void Cmd_various(void)
|
||||
break;
|
||||
case VARIOUS_ARENA_JUDGMENT_WINDOW:
|
||||
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;
|
||||
|
||||
gBattleCommunication[1] = i;
|
||||
@@ -8517,7 +8520,7 @@ static void Cmd_friendshiptodamagecalculation(void)
|
||||
if (gBattleMoves[gCurrentMove].effect == EFFECT_RETURN)
|
||||
gDynamicBasePower = 10 * (gBattleMons[gBattlerAttacker].friendship) / 25;
|
||||
else // EFFECT_FRUSTRATION
|
||||
gDynamicBasePower = 10 * (255 - gBattleMons[gBattlerAttacker].friendship) / 25;
|
||||
gDynamicBasePower = 10 * (MAX_FRIENDSHIP - gBattleMons[gBattlerAttacker].friendship) / 25;
|
||||
|
||||
gBattlescriptCurrInstr++;
|
||||
}
|
||||
|
||||
@@ -1,253 +1,253 @@
|
||||
const u16 gEasyChatGroup_Pokemon2[] = {
|
||||
SPECIES_ABRA,
|
||||
SPECIES_AERODACTYL,
|
||||
SPECIES_AIPOM,
|
||||
SPECIES_ALAKAZAM,
|
||||
SPECIES_AMPHAROS,
|
||||
SPECIES_ARBOK,
|
||||
SPECIES_ARCANINE,
|
||||
SPECIES_ARIADOS,
|
||||
SPECIES_ARTICUNO,
|
||||
SPECIES_AZUMARILL,
|
||||
SPECIES_BAYLEEF,
|
||||
SPECIES_BEEDRILL,
|
||||
SPECIES_BELLOSSOM,
|
||||
SPECIES_BELLSPROUT,
|
||||
SPECIES_BLASTOISE,
|
||||
SPECIES_BLISSEY,
|
||||
SPECIES_BULBASAUR,
|
||||
SPECIES_BUTTERFREE,
|
||||
SPECIES_CATERPIE,
|
||||
SPECIES_CELEBI,
|
||||
SPECIES_CHANSEY,
|
||||
SPECIES_CHARIZARD,
|
||||
SPECIES_CHARMANDER,
|
||||
SPECIES_CHARMELEON,
|
||||
SPECIES_CHIKORITA,
|
||||
SPECIES_CHINCHOU,
|
||||
SPECIES_CLEFABLE,
|
||||
SPECIES_CLEFAIRY,
|
||||
SPECIES_CLEFFA,
|
||||
SPECIES_CLOYSTER,
|
||||
SPECIES_CORSOLA,
|
||||
SPECIES_CROBAT,
|
||||
SPECIES_CROCONAW,
|
||||
SPECIES_CUBONE,
|
||||
SPECIES_CYNDAQUIL,
|
||||
SPECIES_DELIBIRD,
|
||||
SPECIES_DEWGONG,
|
||||
SPECIES_DIGLETT,
|
||||
SPECIES_DITTO,
|
||||
SPECIES_DODRIO,
|
||||
SPECIES_DODUO,
|
||||
SPECIES_DONPHAN,
|
||||
SPECIES_DRAGONAIR,
|
||||
SPECIES_DRAGONITE,
|
||||
SPECIES_DRATINI,
|
||||
SPECIES_DROWZEE,
|
||||
SPECIES_DUGTRIO,
|
||||
SPECIES_DUNSPARCE,
|
||||
SPECIES_EEVEE,
|
||||
SPECIES_EKANS,
|
||||
SPECIES_ELECTABUZZ,
|
||||
SPECIES_ELECTRODE,
|
||||
SPECIES_ELEKID,
|
||||
SPECIES_ENTEI,
|
||||
SPECIES_ESPEON,
|
||||
SPECIES_EXEGGCUTE,
|
||||
SPECIES_EXEGGUTOR,
|
||||
SPECIES_FARFETCHD,
|
||||
SPECIES_FEAROW,
|
||||
SPECIES_FERALIGATR,
|
||||
SPECIES_FLAAFFY,
|
||||
SPECIES_FLAREON,
|
||||
SPECIES_FORRETRESS,
|
||||
SPECIES_FURRET,
|
||||
SPECIES_GASTLY,
|
||||
SPECIES_GENGAR,
|
||||
SPECIES_GEODUDE,
|
||||
SPECIES_GIRAFARIG,
|
||||
SPECIES_GLIGAR,
|
||||
SPECIES_GLOOM,
|
||||
SPECIES_GOLBAT,
|
||||
SPECIES_GOLDEEN,
|
||||
SPECIES_GOLDUCK,
|
||||
SPECIES_GOLEM,
|
||||
SPECIES_GRANBULL,
|
||||
SPECIES_GRAVELER,
|
||||
SPECIES_GRIMER,
|
||||
SPECIES_GROWLITHE,
|
||||
SPECIES_GYARADOS,
|
||||
SPECIES_HAUNTER,
|
||||
SPECIES_HERACROSS,
|
||||
SPECIES_HITMONCHAN,
|
||||
SPECIES_HITMONLEE,
|
||||
SPECIES_HITMONTOP,
|
||||
SPECIES_HO_OH,
|
||||
SPECIES_HOOTHOOT,
|
||||
SPECIES_HOPPIP,
|
||||
SPECIES_HORSEA,
|
||||
SPECIES_HOUNDOOM,
|
||||
SPECIES_HOUNDOUR,
|
||||
SPECIES_HYPNO,
|
||||
SPECIES_IGGLYBUFF,
|
||||
SPECIES_IVYSAUR,
|
||||
SPECIES_JIGGLYPUFF,
|
||||
SPECIES_JOLTEON,
|
||||
SPECIES_JUMPLUFF,
|
||||
SPECIES_JYNX,
|
||||
SPECIES_KABUTO,
|
||||
SPECIES_KABUTOPS,
|
||||
SPECIES_KADABRA,
|
||||
SPECIES_KAKUNA,
|
||||
SPECIES_KANGASKHAN,
|
||||
SPECIES_KINGDRA,
|
||||
SPECIES_KINGLER,
|
||||
SPECIES_KOFFING,
|
||||
SPECIES_KRABBY,
|
||||
SPECIES_LANTURN,
|
||||
SPECIES_LAPRAS,
|
||||
SPECIES_LARVITAR,
|
||||
SPECIES_LEDIAN,
|
||||
SPECIES_LEDYBA,
|
||||
SPECIES_LICKITUNG,
|
||||
SPECIES_LUGIA,
|
||||
SPECIES_MACHAMP,
|
||||
SPECIES_MACHOKE,
|
||||
SPECIES_MACHOP,
|
||||
SPECIES_MAGBY,
|
||||
SPECIES_MAGCARGO,
|
||||
SPECIES_MAGIKARP,
|
||||
SPECIES_MAGMAR,
|
||||
SPECIES_MAGNEMITE,
|
||||
SPECIES_MAGNETON,
|
||||
SPECIES_MANKEY,
|
||||
SPECIES_MANTINE,
|
||||
SPECIES_MAREEP,
|
||||
SPECIES_MARILL,
|
||||
SPECIES_MAROWAK,
|
||||
SPECIES_MEGANIUM,
|
||||
SPECIES_MEOWTH,
|
||||
SPECIES_METAPOD,
|
||||
SPECIES_MEW,
|
||||
SPECIES_MEWTWO,
|
||||
SPECIES_MILTANK,
|
||||
SPECIES_MISDREAVUS,
|
||||
SPECIES_MOLTRES,
|
||||
SPECIES_MR_MIME,
|
||||
SPECIES_MUK,
|
||||
SPECIES_MURKROW,
|
||||
SPECIES_NATU,
|
||||
SPECIES_NIDOKING,
|
||||
SPECIES_NIDOQUEEN,
|
||||
SPECIES_NIDORAN_F,
|
||||
SPECIES_NIDORAN_M,
|
||||
SPECIES_NIDORINA,
|
||||
SPECIES_NIDORINO,
|
||||
SPECIES_NINETALES,
|
||||
SPECIES_NOCTOWL,
|
||||
SPECIES_OCTILLERY,
|
||||
SPECIES_ODDISH,
|
||||
SPECIES_OMANYTE,
|
||||
SPECIES_OMASTAR,
|
||||
SPECIES_ONIX,
|
||||
SPECIES_PARAS,
|
||||
SPECIES_PARASECT,
|
||||
SPECIES_PERSIAN,
|
||||
SPECIES_PHANPY,
|
||||
SPECIES_PICHU,
|
||||
SPECIES_PIDGEOT,
|
||||
SPECIES_PIDGEOTTO,
|
||||
SPECIES_PIDGEY,
|
||||
SPECIES_PIKACHU,
|
||||
SPECIES_PILOSWINE,
|
||||
SPECIES_PINECO,
|
||||
SPECIES_PINSIR,
|
||||
SPECIES_POLITOED,
|
||||
SPECIES_POLIWAG,
|
||||
SPECIES_POLIWHIRL,
|
||||
SPECIES_POLIWRATH,
|
||||
SPECIES_PONYTA,
|
||||
SPECIES_PORYGON,
|
||||
SPECIES_PORYGON2,
|
||||
SPECIES_PRIMEAPE,
|
||||
SPECIES_PSYDUCK,
|
||||
SPECIES_PUPITAR,
|
||||
SPECIES_QUAGSIRE,
|
||||
SPECIES_QUILAVA,
|
||||
SPECIES_QWILFISH,
|
||||
SPECIES_RAICHU,
|
||||
SPECIES_RAIKOU,
|
||||
SPECIES_RAPIDASH,
|
||||
SPECIES_RATICATE,
|
||||
SPECIES_RATTATA,
|
||||
SPECIES_REMORAID,
|
||||
SPECIES_RHYDON,
|
||||
SPECIES_RHYHORN,
|
||||
SPECIES_SANDSHREW,
|
||||
SPECIES_SANDSLASH,
|
||||
SPECIES_SCIZOR,
|
||||
SPECIES_SCYTHER,
|
||||
SPECIES_SEADRA,
|
||||
SPECIES_SEAKING,
|
||||
SPECIES_SEEL,
|
||||
SPECIES_SENTRET,
|
||||
SPECIES_SHELLDER,
|
||||
SPECIES_SHUCKLE,
|
||||
SPECIES_SKARMORY,
|
||||
SPECIES_SKIPLOOM,
|
||||
SPECIES_SLOWBRO,
|
||||
SPECIES_SLOWKING,
|
||||
SPECIES_SLOWPOKE,
|
||||
SPECIES_SLUGMA,
|
||||
SPECIES_SMEARGLE,
|
||||
SPECIES_SMOOCHUM,
|
||||
SPECIES_SNEASEL,
|
||||
SPECIES_SNORLAX,
|
||||
SPECIES_SNUBBULL,
|
||||
SPECIES_SPEAROW,
|
||||
SPECIES_SPINARAK,
|
||||
SPECIES_SQUIRTLE,
|
||||
SPECIES_STANTLER,
|
||||
SPECIES_STARMIE,
|
||||
SPECIES_STARYU,
|
||||
SPECIES_STEELIX,
|
||||
SPECIES_SUDOWOODO,
|
||||
SPECIES_SUICUNE,
|
||||
SPECIES_SUNFLORA,
|
||||
SPECIES_SUNKERN,
|
||||
SPECIES_SWINUB,
|
||||
SPECIES_TANGELA,
|
||||
SPECIES_TAUROS,
|
||||
SPECIES_TEDDIURSA,
|
||||
SPECIES_TENTACOOL,
|
||||
SPECIES_TENTACRUEL,
|
||||
SPECIES_TOGEPI,
|
||||
SPECIES_TOGETIC,
|
||||
SPECIES_TOTODILE,
|
||||
SPECIES_TYPHLOSION,
|
||||
SPECIES_TYRANITAR,
|
||||
SPECIES_TYROGUE,
|
||||
SPECIES_UMBREON,
|
||||
SPECIES_UNOWN,
|
||||
SPECIES_URSARING,
|
||||
SPECIES_VAPOREON,
|
||||
SPECIES_VENOMOTH,
|
||||
SPECIES_VENONAT,
|
||||
SPECIES_VENUSAUR,
|
||||
SPECIES_VICTREEBEL,
|
||||
SPECIES_VILEPLUME,
|
||||
SPECIES_VOLTORB,
|
||||
SPECIES_VULPIX,
|
||||
SPECIES_WARTORTLE,
|
||||
SPECIES_WEEDLE,
|
||||
SPECIES_WEEPINBELL,
|
||||
SPECIES_WEEZING,
|
||||
SPECIES_WIGGLYTUFF,
|
||||
SPECIES_WOBBUFFET,
|
||||
SPECIES_WOOPER,
|
||||
SPECIES_XATU,
|
||||
SPECIES_YANMA,
|
||||
SPECIES_ZAPDOS,
|
||||
SPECIES_ZUBAT,
|
||||
SPECIES_ABRA,
|
||||
SPECIES_AERODACTYL,
|
||||
SPECIES_AIPOM,
|
||||
SPECIES_ALAKAZAM,
|
||||
SPECIES_AMPHAROS,
|
||||
SPECIES_ARBOK,
|
||||
SPECIES_ARCANINE,
|
||||
SPECIES_ARIADOS,
|
||||
SPECIES_ARTICUNO,
|
||||
SPECIES_AZUMARILL,
|
||||
SPECIES_BAYLEEF,
|
||||
SPECIES_BEEDRILL,
|
||||
SPECIES_BELLOSSOM,
|
||||
SPECIES_BELLSPROUT,
|
||||
SPECIES_BLASTOISE,
|
||||
SPECIES_BLISSEY,
|
||||
SPECIES_BULBASAUR,
|
||||
SPECIES_BUTTERFREE,
|
||||
SPECIES_CATERPIE,
|
||||
SPECIES_CELEBI,
|
||||
SPECIES_CHANSEY,
|
||||
SPECIES_CHARIZARD,
|
||||
SPECIES_CHARMANDER,
|
||||
SPECIES_CHARMELEON,
|
||||
SPECIES_CHIKORITA,
|
||||
SPECIES_CHINCHOU,
|
||||
SPECIES_CLEFABLE,
|
||||
SPECIES_CLEFAIRY,
|
||||
SPECIES_CLEFFA,
|
||||
SPECIES_CLOYSTER,
|
||||
SPECIES_CORSOLA,
|
||||
SPECIES_CROBAT,
|
||||
SPECIES_CROCONAW,
|
||||
SPECIES_CUBONE,
|
||||
SPECIES_CYNDAQUIL,
|
||||
SPECIES_DELIBIRD,
|
||||
SPECIES_DEWGONG,
|
||||
SPECIES_DIGLETT,
|
||||
SPECIES_DITTO,
|
||||
SPECIES_DODRIO,
|
||||
SPECIES_DODUO,
|
||||
SPECIES_DONPHAN,
|
||||
SPECIES_DRAGONAIR,
|
||||
SPECIES_DRAGONITE,
|
||||
SPECIES_DRATINI,
|
||||
SPECIES_DROWZEE,
|
||||
SPECIES_DUGTRIO,
|
||||
SPECIES_DUNSPARCE,
|
||||
SPECIES_EEVEE,
|
||||
SPECIES_EKANS,
|
||||
SPECIES_ELECTABUZZ,
|
||||
SPECIES_ELECTRODE,
|
||||
SPECIES_ELEKID,
|
||||
SPECIES_ENTEI,
|
||||
SPECIES_ESPEON,
|
||||
SPECIES_EXEGGCUTE,
|
||||
SPECIES_EXEGGUTOR,
|
||||
SPECIES_FARFETCHD,
|
||||
SPECIES_FEAROW,
|
||||
SPECIES_FERALIGATR,
|
||||
SPECIES_FLAAFFY,
|
||||
SPECIES_FLAREON,
|
||||
SPECIES_FORRETRESS,
|
||||
SPECIES_FURRET,
|
||||
SPECIES_GASTLY,
|
||||
SPECIES_GENGAR,
|
||||
SPECIES_GEODUDE,
|
||||
SPECIES_GIRAFARIG,
|
||||
SPECIES_GLIGAR,
|
||||
SPECIES_GLOOM,
|
||||
SPECIES_GOLBAT,
|
||||
SPECIES_GOLDEEN,
|
||||
SPECIES_GOLDUCK,
|
||||
SPECIES_GOLEM,
|
||||
SPECIES_GRANBULL,
|
||||
SPECIES_GRAVELER,
|
||||
SPECIES_GRIMER,
|
||||
SPECIES_GROWLITHE,
|
||||
SPECIES_GYARADOS,
|
||||
SPECIES_HAUNTER,
|
||||
SPECIES_HERACROSS,
|
||||
SPECIES_HITMONCHAN,
|
||||
SPECIES_HITMONLEE,
|
||||
SPECIES_HITMONTOP,
|
||||
SPECIES_HO_OH,
|
||||
SPECIES_HOOTHOOT,
|
||||
SPECIES_HOPPIP,
|
||||
SPECIES_HORSEA,
|
||||
SPECIES_HOUNDOOM,
|
||||
SPECIES_HOUNDOUR,
|
||||
SPECIES_HYPNO,
|
||||
SPECIES_IGGLYBUFF,
|
||||
SPECIES_IVYSAUR,
|
||||
SPECIES_JIGGLYPUFF,
|
||||
SPECIES_JOLTEON,
|
||||
SPECIES_JUMPLUFF,
|
||||
SPECIES_JYNX,
|
||||
SPECIES_KABUTO,
|
||||
SPECIES_KABUTOPS,
|
||||
SPECIES_KADABRA,
|
||||
SPECIES_KAKUNA,
|
||||
SPECIES_KANGASKHAN,
|
||||
SPECIES_KINGDRA,
|
||||
SPECIES_KINGLER,
|
||||
SPECIES_KOFFING,
|
||||
SPECIES_KRABBY,
|
||||
SPECIES_LANTURN,
|
||||
SPECIES_LAPRAS,
|
||||
SPECIES_LARVITAR,
|
||||
SPECIES_LEDIAN,
|
||||
SPECIES_LEDYBA,
|
||||
SPECIES_LICKITUNG,
|
||||
SPECIES_LUGIA,
|
||||
SPECIES_MACHAMP,
|
||||
SPECIES_MACHOKE,
|
||||
SPECIES_MACHOP,
|
||||
SPECIES_MAGBY,
|
||||
SPECIES_MAGCARGO,
|
||||
SPECIES_MAGIKARP,
|
||||
SPECIES_MAGMAR,
|
||||
SPECIES_MAGNEMITE,
|
||||
SPECIES_MAGNETON,
|
||||
SPECIES_MANKEY,
|
||||
SPECIES_MANTINE,
|
||||
SPECIES_MAREEP,
|
||||
SPECIES_MARILL,
|
||||
SPECIES_MAROWAK,
|
||||
SPECIES_MEGANIUM,
|
||||
SPECIES_MEOWTH,
|
||||
SPECIES_METAPOD,
|
||||
SPECIES_MEW,
|
||||
SPECIES_MEWTWO,
|
||||
SPECIES_MILTANK,
|
||||
SPECIES_MISDREAVUS,
|
||||
SPECIES_MOLTRES,
|
||||
SPECIES_MR_MIME,
|
||||
SPECIES_MUK,
|
||||
SPECIES_MURKROW,
|
||||
SPECIES_NATU,
|
||||
SPECIES_NIDOKING,
|
||||
SPECIES_NIDOQUEEN,
|
||||
SPECIES_NIDORAN_F,
|
||||
SPECIES_NIDORAN_M,
|
||||
SPECIES_NIDORINA,
|
||||
SPECIES_NIDORINO,
|
||||
SPECIES_NINETALES,
|
||||
SPECIES_NOCTOWL,
|
||||
SPECIES_OCTILLERY,
|
||||
SPECIES_ODDISH,
|
||||
SPECIES_OMANYTE,
|
||||
SPECIES_OMASTAR,
|
||||
SPECIES_ONIX,
|
||||
SPECIES_PARAS,
|
||||
SPECIES_PARASECT,
|
||||
SPECIES_PERSIAN,
|
||||
SPECIES_PHANPY,
|
||||
SPECIES_PICHU,
|
||||
SPECIES_PIDGEOT,
|
||||
SPECIES_PIDGEOTTO,
|
||||
SPECIES_PIDGEY,
|
||||
SPECIES_PIKACHU,
|
||||
SPECIES_PILOSWINE,
|
||||
SPECIES_PINECO,
|
||||
SPECIES_PINSIR,
|
||||
SPECIES_POLITOED,
|
||||
SPECIES_POLIWAG,
|
||||
SPECIES_POLIWHIRL,
|
||||
SPECIES_POLIWRATH,
|
||||
SPECIES_PONYTA,
|
||||
SPECIES_PORYGON,
|
||||
SPECIES_PORYGON2,
|
||||
SPECIES_PRIMEAPE,
|
||||
SPECIES_PSYDUCK,
|
||||
SPECIES_PUPITAR,
|
||||
SPECIES_QUAGSIRE,
|
||||
SPECIES_QUILAVA,
|
||||
SPECIES_QWILFISH,
|
||||
SPECIES_RAICHU,
|
||||
SPECIES_RAIKOU,
|
||||
SPECIES_RAPIDASH,
|
||||
SPECIES_RATICATE,
|
||||
SPECIES_RATTATA,
|
||||
SPECIES_REMORAID,
|
||||
SPECIES_RHYDON,
|
||||
SPECIES_RHYHORN,
|
||||
SPECIES_SANDSHREW,
|
||||
SPECIES_SANDSLASH,
|
||||
SPECIES_SCIZOR,
|
||||
SPECIES_SCYTHER,
|
||||
SPECIES_SEADRA,
|
||||
SPECIES_SEAKING,
|
||||
SPECIES_SEEL,
|
||||
SPECIES_SENTRET,
|
||||
SPECIES_SHELLDER,
|
||||
SPECIES_SHUCKLE,
|
||||
SPECIES_SKARMORY,
|
||||
SPECIES_SKIPLOOM,
|
||||
SPECIES_SLOWBRO,
|
||||
SPECIES_SLOWKING,
|
||||
SPECIES_SLOWPOKE,
|
||||
SPECIES_SLUGMA,
|
||||
SPECIES_SMEARGLE,
|
||||
SPECIES_SMOOCHUM,
|
||||
SPECIES_SNEASEL,
|
||||
SPECIES_SNORLAX,
|
||||
SPECIES_SNUBBULL,
|
||||
SPECIES_SPEAROW,
|
||||
SPECIES_SPINARAK,
|
||||
SPECIES_SQUIRTLE,
|
||||
SPECIES_STANTLER,
|
||||
SPECIES_STARMIE,
|
||||
SPECIES_STARYU,
|
||||
SPECIES_STEELIX,
|
||||
SPECIES_SUDOWOODO,
|
||||
SPECIES_SUICUNE,
|
||||
SPECIES_SUNFLORA,
|
||||
SPECIES_SUNKERN,
|
||||
SPECIES_SWINUB,
|
||||
SPECIES_TANGELA,
|
||||
SPECIES_TAUROS,
|
||||
SPECIES_TEDDIURSA,
|
||||
SPECIES_TENTACOOL,
|
||||
SPECIES_TENTACRUEL,
|
||||
SPECIES_TOGEPI,
|
||||
SPECIES_TOGETIC,
|
||||
SPECIES_TOTODILE,
|
||||
SPECIES_TYPHLOSION,
|
||||
SPECIES_TYRANITAR,
|
||||
SPECIES_TYROGUE,
|
||||
SPECIES_UMBREON,
|
||||
SPECIES_UNOWN,
|
||||
SPECIES_URSARING,
|
||||
SPECIES_VAPOREON,
|
||||
SPECIES_VENOMOTH,
|
||||
SPECIES_VENONAT,
|
||||
SPECIES_VENUSAUR,
|
||||
SPECIES_VICTREEBEL,
|
||||
SPECIES_VILEPLUME,
|
||||
SPECIES_VOLTORB,
|
||||
SPECIES_VULPIX,
|
||||
SPECIES_WARTORTLE,
|
||||
SPECIES_WEEDLE,
|
||||
SPECIES_WEEPINBELL,
|
||||
SPECIES_WEEZING,
|
||||
SPECIES_WIGGLYTUFF,
|
||||
SPECIES_WOBBUFFET,
|
||||
SPECIES_WOOPER,
|
||||
SPECIES_XATU,
|
||||
SPECIES_YANMA,
|
||||
SPECIES_ZAPDOS,
|
||||
SPECIES_ZUBAT,
|
||||
};
|
||||
|
||||
@@ -253,9 +253,9 @@ u8 MovementAction_AcroEndWheelieMoveRight_Step1(struct ObjectEvent *, struct Spr
|
||||
u8 MovementAction_Levitate_Step0(struct ObjectEvent *, struct Sprite *);
|
||||
u8 MovementAction_StopLevitate_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_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_Step1(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_WalkSlowDiagonalDownLeft[])(struct ObjectEvent *, struct Sprite *);
|
||||
u8 (*const gMovementActionFuncs_WalkSlowDiagonalDownRight[])(struct ObjectEvent *, struct Sprite *);
|
||||
u8 (*const gMovementActionFuncs_StoreAndLockAnim[])(struct ObjectEvent *, struct Sprite *);
|
||||
u8 (*const gMovementActionFuncs_FreeAndUnlockAnim[])(struct ObjectEvent *, struct Sprite *);
|
||||
u8 (*const gMovementActionFuncs_LockAnim[])(struct ObjectEvent *, struct Sprite *);
|
||||
u8 (*const gMovementActionFuncs_UnlockAnim[])(struct ObjectEvent *, struct Sprite *);
|
||||
u8 (*const gMovementActionFuncs_WalkLeftAffine[])(struct ObjectEvent *, struct Sprite *);
|
||||
u8 (*const gMovementActionFuncs_WalkRightAffine[])(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_DOWN_LEFT] = gMovementActionFuncs_WalkSlowDiagonalDownLeft,
|
||||
[MOVEMENT_ACTION_WALK_SLOW_DIAGONAL_DOWN_RIGHT] = gMovementActionFuncs_WalkSlowDiagonalDownRight,
|
||||
[MOVEMENT_ACTION_STORE_AND_LOCK_ANIM] = gMovementActionFuncs_StoreAndLockAnim,
|
||||
[MOVEMENT_ACTION_FREE_AND_UNLOCK_ANIM] = gMovementActionFuncs_FreeAndUnlockAnim,
|
||||
[MOVEMENT_ACTION_LOCK_ANIM] = gMovementActionFuncs_LockAnim,
|
||||
[MOVEMENT_ACTION_UNLOCK_ANIM] = gMovementActionFuncs_UnlockAnim,
|
||||
[MOVEMENT_ACTION_WALK_LEFT_AFFINE] = gMovementActionFuncs_WalkLeftAffine,
|
||||
[MOVEMENT_ACTION_WALK_RIGHT_AFFINE] = gMovementActionFuncs_WalkRightAffine,
|
||||
[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[] =
|
||||
{
|
||||
{
|
||||
@@ -35,12 +29,6 @@ static const struct BgTemplate sPartyMenuBgTemplates[] =
|
||||
},
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
PARTY_BOX_LEFT_COLUMN,
|
||||
PARTY_BOX_RIGHT_COLUMN
|
||||
};
|
||||
|
||||
static const struct PartyMenuBoxInfoRects sPartyBoxInfoRects[] =
|
||||
{
|
||||
[PARTY_BOX_LEFT_COLUMN] =
|
||||
@@ -663,51 +651,6 @@ static const u16 sUnusedData[] =
|
||||
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
|
||||
{
|
||||
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_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[] =
|
||||
{
|
||||
[ACTIONS_NONE] = NULL,
|
||||
@@ -818,17 +742,32 @@ static const u8 sPartyMenuActionCounts[] =
|
||||
[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,
|
||||
MOVE_DIG, MOVE_SECRET_POWER, MOVE_MILK_DRINK, MOVE_SOFT_BOILED, MOVE_SWEET_SCENT, FIELD_MOVE_TERMINATOR
|
||||
[FIELD_MOVE_CUT] = MOVE_CUT,
|
||||
[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
|
||||
{
|
||||
bool8 (*fieldMoveFunc)(void);
|
||||
u8 msgId;
|
||||
} static const sFieldMoveCursorCallbacks[] =
|
||||
} static const sFieldMoveCursorCallbacks[FIELD_MOVES_COUNT] =
|
||||
{
|
||||
[FIELD_MOVE_CUT] = {SetUpFieldMove_Cut, PARTY_MSG_NOTHING_TO_CUT},
|
||||
[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 =
|
||||
{
|
||||
sHeldItemGfx, sizeof(sHeldItemGfx), 0xd750
|
||||
.data = sHeldItemGfx, .size = sizeof(sHeldItemGfx), .tag = TAG_HELD_ITEM
|
||||
};
|
||||
|
||||
static const struct SpritePalette sSpritePalette_HeldItem =
|
||||
{
|
||||
sHeldItemPalette, 0xd750
|
||||
.data = sHeldItemPalette, .tag = TAG_HELD_ITEM
|
||||
};
|
||||
|
||||
static const struct SpriteTemplate sSpriteTemplate_HeldItem =
|
||||
{
|
||||
0xd750,
|
||||
0xd750,
|
||||
&sOamData_HeldItem,
|
||||
sSpriteAnimTable_HeldItem,
|
||||
NULL,
|
||||
gDummySpriteAffineAnimTable,
|
||||
SpriteCallbackDummy
|
||||
.tileTag = TAG_HELD_ITEM,
|
||||
.paletteTag = TAG_HELD_ITEM,
|
||||
.oam = &sOamData_HeldItem,
|
||||
.anims = sSpriteAnimTable_HeldItem,
|
||||
.images = NULL,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = SpriteCallbackDummy
|
||||
};
|
||||
|
||||
static const struct OamData sOamData_MenuPokeball =
|
||||
|
||||
+17
-17
@@ -8746,13 +8746,13 @@ static void DoRippleFieldEffect(struct ObjectEvent *objectEvent, struct Sprite *
|
||||
FieldEffectStart(FLDEFF_RIPPLE);
|
||||
}
|
||||
|
||||
u8 (*const gMovementActionFuncs_StoreAndLockAnim[])(struct ObjectEvent *, struct Sprite *) = {
|
||||
MovementAction_StoreAndLockAnim_Step0,
|
||||
u8 (*const gMovementActionFuncs_LockAnim[])(struct ObjectEvent *, struct Sprite *) = {
|
||||
MovementAction_LockAnim_Step0,
|
||||
MovementAction_Finish,
|
||||
};
|
||||
|
||||
u8 (*const gMovementActionFuncs_FreeAndUnlockAnim[])(struct ObjectEvent *, struct Sprite *) = {
|
||||
MovementAction_FreeAndUnlockAnim_Step0,
|
||||
u8 (*const gMovementActionFuncs_UnlockAnim[])(struct ObjectEvent *, struct Sprite *) = {
|
||||
MovementAction_UnlockAnim_Step0,
|
||||
MovementAction_Finish,
|
||||
};
|
||||
|
||||
@@ -8768,36 +8768,36 @@ u8 (*const gMovementActionFuncs_FlyDown[])(struct ObjectEvent *, struct Sprite *
|
||||
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;
|
||||
if (sLockedAnimObjectEvents == NULL)
|
||||
{
|
||||
sLockedAnimObjectEvents = AllocZeroed(sizeof(struct LockedAnimObjectEvents));
|
||||
sLockedAnimObjectEvents->objectEventIds[0] = objectEvent->localId;
|
||||
sLockedAnimObjectEvents->localIds[0] = objectEvent->localId;
|
||||
sLockedAnimObjectEvents->count = 1;
|
||||
ableToStore = TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
u8 i;
|
||||
u8 firstFreeSlot;
|
||||
bool32 found;
|
||||
for (firstFreeSlot = 16, found = FALSE, i = 0; i < 16; i++)
|
||||
u8 firstFreeSlot = OBJECT_EVENTS_COUNT;
|
||||
bool32 found = FALSE;
|
||||
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;
|
||||
|
||||
if (sLockedAnimObjectEvents->objectEventIds[i] == objectEvent->localId)
|
||||
if (sLockedAnimObjectEvents->localIds[i] == objectEvent->localId)
|
||||
{
|
||||
found = TRUE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!found && firstFreeSlot != 16)
|
||||
if (!found && firstFreeSlot != OBJECT_EVENTS_COUNT)
|
||||
{
|
||||
sLockedAnimObjectEvents->objectEventIds[firstFreeSlot] = objectEvent->localId;
|
||||
sLockedAnimObjectEvents->localIds[firstFreeSlot] = objectEvent->localId;
|
||||
sLockedAnimObjectEvents->count++;
|
||||
ableToStore = TRUE;
|
||||
}
|
||||
@@ -8813,7 +8813,7 @@ u8 MovementAction_StoreAndLockAnim_Step0(struct ObjectEvent *objectEvent, struct
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
u8 MovementAction_FreeAndUnlockAnim_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
|
||||
u8 MovementAction_UnlockAnim_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
|
||||
{
|
||||
bool32 ableToStore;
|
||||
u8 index;
|
||||
@@ -8823,9 +8823,9 @@ u8 MovementAction_FreeAndUnlockAnim_Step0(struct ObjectEvent *objectEvent, struc
|
||||
{
|
||||
ableToStore = FALSE;
|
||||
index = FindLockedObjectEventIndex(objectEvent);
|
||||
if (index != 16)
|
||||
if (index != OBJECT_EVENTS_COUNT)
|
||||
{
|
||||
sLockedAnimObjectEvents->objectEventIds[index] = 0;
|
||||
sLockedAnimObjectEvents->localIds[index] = 0;
|
||||
sLockedAnimObjectEvents->count--;
|
||||
ableToStore = TRUE;
|
||||
}
|
||||
@@ -8848,7 +8848,7 @@ u8 FindLockedObjectEventIndex(struct ObjectEvent *objectEvent)
|
||||
|
||||
for (i = 0; i < OBJECT_EVENTS_COUNT; i++)
|
||||
{
|
||||
if (sLockedAnimObjectEvents->objectEventIds[i] == objectEvent->localId)
|
||||
if (sLockedAnimObjectEvents->localIds[i] == objectEvent->localId)
|
||||
return i;
|
||||
}
|
||||
return OBJECT_EVENTS_COUNT;
|
||||
|
||||
+31
-31
@@ -67,40 +67,40 @@ static void Task_TryFieldPoisonWhiteOut(u8 taskId)
|
||||
s16 *data = gTasks[taskId].data;
|
||||
switch (tState)
|
||||
{
|
||||
case 0:
|
||||
for (; tPartyIdx < PARTY_SIZE; tPartyIdx++)
|
||||
case 0:
|
||||
for (; tPartyIdx < PARTY_SIZE; tPartyIdx++)
|
||||
{
|
||||
if (MonFaintedFromPoison(tPartyIdx))
|
||||
{
|
||||
if (MonFaintedFromPoison(tPartyIdx))
|
||||
{
|
||||
FaintFromFieldPoison(tPartyIdx);
|
||||
ShowFieldMessage(gText_PkmnFainted_FldPsn);
|
||||
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;
|
||||
FaintFromFieldPoison(tPartyIdx);
|
||||
ShowFieldMessage(gText_PkmnFainted_FldPsn);
|
||||
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_NO_WHITEOUT;
|
||||
}
|
||||
ScriptContext_Enable();
|
||||
DestroyTask(taskId);
|
||||
break;
|
||||
gSpecialVar_Result = FLDPSN_WHITEOUT;
|
||||
}
|
||||
else
|
||||
{
|
||||
gSpecialVar_Result = FLDPSN_NO_WHITEOUT;
|
||||
}
|
||||
ScriptContext_Enable();
|
||||
DestroyTask(taskId);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -868,7 +868,7 @@ static void PetalburgGymSetDoorMetatiles(u8 roomNumber, u16 metatileId)
|
||||
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 + 1, (metatileId + 8) | MAPGRID_COLLISION_MASK);
|
||||
MapGridSetMetatileIdAt(doorCoordsX[i] + MAP_OFFSET, doorCoordsY[i] + MAP_OFFSET + 1, (metatileId + METATILE_ROW_WIDTH) | MAPGRID_COLLISION_MASK);
|
||||
}
|
||||
DrawWholeMapView();
|
||||
}
|
||||
@@ -941,19 +941,19 @@ u8 GetLeadMonFriendshipScore(void)
|
||||
{
|
||||
struct Pokemon *pokemon = &gPlayerParty[GetLeadMonIndex()];
|
||||
if (GetMonData(pokemon, MON_DATA_FRIENDSHIP) == MAX_FRIENDSHIP)
|
||||
return 6;
|
||||
return FRIENDSHIP_MAX;
|
||||
if (GetMonData(pokemon, MON_DATA_FRIENDSHIP) >= 200)
|
||||
return 5;
|
||||
return FRIENDSHIP_200_TO_254;
|
||||
if (GetMonData(pokemon, MON_DATA_FRIENDSHIP) >= 150)
|
||||
return 4;
|
||||
return FRIENDSHIP_150_TO_199;
|
||||
if (GetMonData(pokemon, MON_DATA_FRIENDSHIP) >= 100)
|
||||
return 3;
|
||||
return FRIENDSHIP_100_TO_149;
|
||||
if (GetMonData(pokemon, MON_DATA_FRIENDSHIP) >= 50)
|
||||
return 2;
|
||||
return FRIENDSHIP_50_TO_99;
|
||||
if (GetMonData(pokemon, MON_DATA_FRIENDSHIP) >= 1)
|
||||
return 1;
|
||||
return FRIENDSHIP_1_TO_49;
|
||||
|
||||
return 0;
|
||||
return FRIENDSHIP_NONE;
|
||||
}
|
||||
|
||||
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 u8 gFontShortLatinGlyphWidths[] = {
|
||||
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,
|
||||
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, 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,
|
||||
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,
|
||||
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,
|
||||
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, 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,
|
||||
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,
|
||||
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,
|
||||
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
|
||||
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
|
||||
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
|
||||
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
|
||||
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
|
||||
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
|
||||
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
|
||||
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
|
||||
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
|
||||
3, 3, 3, 3, 3, 3, 3, 3, 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, 3,
|
||||
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,
|
||||
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, 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,
|
||||
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,
|
||||
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,
|
||||
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, 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,
|
||||
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,
|
||||
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,
|
||||
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
|
||||
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
|
||||
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
|
||||
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
|
||||
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
|
||||
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
|
||||
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
|
||||
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
|
||||
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
|
||||
3, 3, 3, 3, 3, 3, 3, 3, 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, 3,
|
||||
};
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
// Ignore the player's inputs as long as there is an event script
|
||||
// in ScriptContext2.
|
||||
// Ignore the player's inputs as long as there is an event script being executed.
|
||||
static u16 KeyInterCB_DeferToEventScript(u32 key)
|
||||
{
|
||||
u16 retVal;
|
||||
|
||||
+81
-7
@@ -73,6 +73,80 @@
|
||||
#include "constants/rgb.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_FAINTED (1 << 1)
|
||||
#define PARTY_PAL_TO_SWITCH (1 << 2)
|
||||
@@ -1186,13 +1260,13 @@ void Task_HandleChooseMonInput(u8 taskId)
|
||||
|
||||
switch (PartyMenuButtonHandler(slotPtr))
|
||||
{
|
||||
case 1: // Selected mon
|
||||
case A_BUTTON: // Selected mon
|
||||
HandleChooseMonSelection(taskId, slotPtr);
|
||||
break;
|
||||
case 2: // Selected Cancel
|
||||
case B_BUTTON: // Selected Cancel / pressed B
|
||||
HandleChooseMonCancel(taskId, slotPtr);
|
||||
break;
|
||||
case 8: // Start button
|
||||
case START_BUTTON:
|
||||
if (sPartyMenuInternal->chooseHalf)
|
||||
{
|
||||
PlaySE(SE_SELECT);
|
||||
@@ -1409,7 +1483,7 @@ static u16 PartyMenuButtonHandler(s8 *slotPtr)
|
||||
}
|
||||
|
||||
if (JOY_NEW(START_BUTTON))
|
||||
return 8;
|
||||
return START_BUTTON;
|
||||
|
||||
if (movementDir)
|
||||
{
|
||||
@@ -1418,8 +1492,8 @@ static u16 PartyMenuButtonHandler(s8 *slotPtr)
|
||||
}
|
||||
|
||||
// Pressed Cancel
|
||||
if ((JOY_NEW(A_BUTTON)) && *slotPtr == PARTY_SIZE + 1)
|
||||
return 2;
|
||||
if (JOY_NEW(A_BUTTON) && *slotPtr == PARTY_SIZE + 1)
|
||||
return 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
|
||||
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])
|
||||
{
|
||||
|
||||
+1
-1
@@ -6675,7 +6675,7 @@ const u8 *GetTrainerPartnerName(void)
|
||||
}
|
||||
|
||||
#define READ_PTR_FROM_TASK(taskId, dataId) \
|
||||
(void *)( \
|
||||
(void *)( \
|
||||
((u16)(gTasks[taskId].data[dataId]) | \
|
||||
((u16)(gTasks[taskId].data[dataId + 1]) << 16)))
|
||||
|
||||
|
||||
+10
-10
@@ -1,5 +1,5 @@
|
||||
@ 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
|
||||
Start:
|
||||
@@ -41,20 +41,20 @@ RomHeaderChecksum:
|
||||
RomHeaderReserved2:
|
||||
.space 2
|
||||
|
||||
.word 0
|
||||
.word 0
|
||||
|
||||
.global GPIOPortData
|
||||
.global GPIOPortData
|
||||
GPIOPortData:
|
||||
.2byte 0
|
||||
.2byte 0
|
||||
|
||||
.global GPIOPortDirection
|
||||
.global GPIOPortDirection
|
||||
GPIOPortDirection:
|
||||
.2byte 0
|
||||
.2byte 0
|
||||
|
||||
.global GPIOPortReadEnable
|
||||
.global 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[] =
|
||||
{
|
||||
MOVEMENT_ACTION_STORE_AND_LOCK_ANIM,
|
||||
MOVEMENT_ACTION_LOCK_ANIM,
|
||||
MOVEMENT_ACTION_WALK_NORMAL_RIGHT,
|
||||
MOVEMENT_ACTION_FREE_AND_UNLOCK_ANIM,
|
||||
MOVEMENT_ACTION_UNLOCK_ANIM,
|
||||
MOVEMENT_ACTION_STEP_END
|
||||
};
|
||||
|
||||
static const u8 sMovement_ShiftDown[] =
|
||||
{
|
||||
MOVEMENT_ACTION_STORE_AND_LOCK_ANIM,
|
||||
MOVEMENT_ACTION_LOCK_ANIM,
|
||||
MOVEMENT_ACTION_WALK_NORMAL_DOWN,
|
||||
MOVEMENT_ACTION_FREE_AND_UNLOCK_ANIM,
|
||||
MOVEMENT_ACTION_UNLOCK_ANIM,
|
||||
MOVEMENT_ACTION_STEP_END
|
||||
};
|
||||
|
||||
static const u8 sMovement_ShiftLeft[] =
|
||||
{
|
||||
MOVEMENT_ACTION_STORE_AND_LOCK_ANIM,
|
||||
MOVEMENT_ACTION_LOCK_ANIM,
|
||||
MOVEMENT_ACTION_WALK_NORMAL_LEFT,
|
||||
MOVEMENT_ACTION_FREE_AND_UNLOCK_ANIM,
|
||||
MOVEMENT_ACTION_UNLOCK_ANIM,
|
||||
MOVEMENT_ACTION_STEP_END
|
||||
};
|
||||
|
||||
static const u8 sMovement_ShiftUp[] =
|
||||
{
|
||||
MOVEMENT_ACTION_STORE_AND_LOCK_ANIM,
|
||||
MOVEMENT_ACTION_LOCK_ANIM,
|
||||
MOVEMENT_ACTION_WALK_NORMAL_UP,
|
||||
MOVEMENT_ACTION_FREE_AND_UNLOCK_ANIM,
|
||||
MOVEMENT_ACTION_UNLOCK_ANIM,
|
||||
MOVEMENT_ACTION_STEP_END
|
||||
};
|
||||
|
||||
|
||||
+6
-6
@@ -1040,11 +1040,11 @@ static const struct YesNoFuncTable sYesNoTable_KeepPlaying =
|
||||
|
||||
static void CB2_Roulette(void)
|
||||
{
|
||||
RunTasks();
|
||||
AnimateSprites();
|
||||
BuildOamBuffer();
|
||||
if (sRoulette->flashUtil.enabled)
|
||||
RouletteFlash_Run(&sRoulette->flashUtil);
|
||||
RunTasks();
|
||||
AnimateSprites();
|
||||
BuildOamBuffer();
|
||||
if (sRoulette->flashUtil.enabled)
|
||||
RouletteFlash_Run(&sRoulette->flashUtil);
|
||||
}
|
||||
|
||||
static void VBlankCB_Roulette(void)
|
||||
@@ -4516,7 +4516,7 @@ static void SpriteCB_ShroomishExit(struct Sprite *sprite)
|
||||
// Delay for screen shaking, then exit left
|
||||
if (sprite->data[1]++ >= sprite->data[3])
|
||||
{
|
||||
sprite->x -= 2;
|
||||
sprite->x -= 2;
|
||||
if (sprite->x < -16)
|
||||
{
|
||||
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] =
|
||||
{
|
||||
sPrizeListRareCandy1,
|
||||
sPrizeListLuxuryBall1,
|
||||
sPrizeListMaxRevive1,
|
||||
sPrizeListMaxEther1,
|
||||
sPrizeListElixir1,
|
||||
sPrizeListRoar,
|
||||
sPrizeListSludgeBomb,
|
||||
sPrizeListToxic,
|
||||
sPrizeListSunnyDay,
|
||||
sPrizeListEarthQuake
|
||||
sPrizeListRareCandy1,
|
||||
sPrizeListLuxuryBall1,
|
||||
sPrizeListMaxRevive1,
|
||||
sPrizeListMaxEther1,
|
||||
sPrizeListElixir1,
|
||||
sPrizeListRoar,
|
||||
sPrizeListSludgeBomb,
|
||||
sPrizeListToxic,
|
||||
sPrizeListSunnyDay,
|
||||
sPrizeListEarthQuake
|
||||
};
|
||||
|
||||
static const u16 *const sPrizeLists2[NUM_TRAINER_HILL_PRIZE_LISTS] =
|
||||
{
|
||||
sPrizeListRareCandy2,
|
||||
sPrizeListLuxuryBall2,
|
||||
sPrizeListMaxRevive2,
|
||||
sPrizeListMaxEther2,
|
||||
sPrizeListElixir2,
|
||||
sPrizeListBrickBreak,
|
||||
sPrizeListTorment,
|
||||
sPrizeListSkillSwap,
|
||||
sPrizeListGigaDrain,
|
||||
sPrizeListAttract
|
||||
sPrizeListRareCandy2,
|
||||
sPrizeListLuxuryBall2,
|
||||
sPrizeListMaxRevive2,
|
||||
sPrizeListMaxEther2,
|
||||
sPrizeListElixir2,
|
||||
sPrizeListBrickBreak,
|
||||
sPrizeListTorment,
|
||||
sPrizeListSkillSwap,
|
||||
sPrizeListGigaDrain,
|
||||
sPrizeListAttract
|
||||
};
|
||||
|
||||
static const u16 *const *const sPrizeListSets[] =
|
||||
|
||||
+18
-18
@@ -3,35 +3,35 @@
|
||||
@ ../gflib/bg.o
|
||||
.align 2
|
||||
gWindowTileAutoAllocEnabled:
|
||||
.space 4
|
||||
.space 4
|
||||
@ ../gflib/window.o
|
||||
.align 4
|
||||
.align 4
|
||||
gTransparentTileNumber:
|
||||
.space 1
|
||||
.align 4
|
||||
.space 1
|
||||
.align 4
|
||||
gWindowBgTilemapBuffers:
|
||||
.space 16
|
||||
.space 16
|
||||
@ ../gflib/text.o
|
||||
.align 4
|
||||
.align 4
|
||||
gFonts:
|
||||
.space 4
|
||||
.align 2
|
||||
.space 4
|
||||
.align 2
|
||||
gDisableTextPrinters:
|
||||
.space 1
|
||||
.align 4
|
||||
.space 1
|
||||
.align 4
|
||||
gCurGlyph:
|
||||
.space 132
|
||||
.align 2
|
||||
.space 132
|
||||
.align 2
|
||||
gTextFlags:
|
||||
.space 4
|
||||
.space 4
|
||||
@ ../gflib/sprite.o
|
||||
.align 2
|
||||
.align 2
|
||||
gOamMatrixAllocBitmap:
|
||||
.space 4
|
||||
.align 2
|
||||
.space 4
|
||||
.align 2
|
||||
gReservedSpritePaletteCount:
|
||||
.space 1
|
||||
.align 4
|
||||
.space 1
|
||||
.align 4
|
||||
.include "link.o"
|
||||
.include "AgbRfu_LinkManager.o"
|
||||
.include "link_rfu_2.o"
|
||||
|
||||
Reference in New Issue
Block a user