diff options
author | GriffinR <griffin.richards@comcast.net> | 2019-12-18 02:32:52 -0500 |
---|---|---|
committer | GriffinR <griffin.richards@comcast.net> | 2019-12-20 16:53:33 -0500 |
commit | 63c8cf97d1e47573ba8c5bcdf23543013a0f2a14 (patch) | |
tree | b3cbd3f1245fbb4611b4d3680128759ce34ab700 | |
parent | f8cef9a6a86fb85634e21370e5a7a0d2ac4a9ba2 (diff) |
Document Battle Dome scripts and some battle_dome.c
30 files changed, 1278 insertions, 1256 deletions
diff --git a/asm/macros/battle_frontier/battle_dome.inc b/asm/macros/battle_frontier/battle_dome.inc index 882c82e8b..836d4eecd 100644 --- a/asm/macros/battle_frontier/battle_dome.inc +++ b/asm/macros/battle_frontier/battle_dome.inc @@ -23,13 +23,13 @@ special CallBattleDomeFunction .endm - @ + @ Buffer the name of the current round to gStringVar1 .macro dome_getroundtext setvar VAR_0x8004, BATTLE_DOME_FUNC_GET_ROUND_TEXT special CallBattleDomeFunction .endm - @ + @ Buffer the name of the opponent to gStringVar2 and the name of the round to gStringVar1 .macro dome_getopponentname setvar VAR_0x8004, BATTLE_DOME_FUNC_GET_OPPONENT_NAME special CallBattleDomeFunction @@ -41,7 +41,7 @@ special CallBattleDomeFunction .endm - @ + @ Show the page that gives information on the next opponent .macro dome_showopponentinfo setvar VAR_0x8004, BATTLE_DOME_FUNC_SHOW_OPPONENT_INFO special CallBattleDomeFunction @@ -65,7 +65,7 @@ special CallBattleDomeFunction .endm - @ + @ Set the object event gfx id for the opponent .macro dome_setopponentgfx setvar VAR_0x8004, BATTLE_DOME_FUNC_SET_OPPONENT_GFX special CallBattleDomeFunction @@ -77,10 +77,10 @@ special CallBattleDomeFunction .endm - @ - .macro dome_resolvewinners arg:req + @ Decides the winners of NPC vs NPC matches, and eliminates either the player or their opponent depending on the playerStatus (DOME_PLAYER_*) + .macro dome_resolvewinners playerStatus:req setvar VAR_0x8004, BATTLE_DOME_FUNC_RESOLVE_WINNERS - setvar VAR_0x8005, \arg + setvar VAR_0x8005, \playerStatus special CallBattleDomeFunction .endm @@ -109,13 +109,13 @@ special CallBattleDomeFunction .endm - @ + @ Reset the held items of the mons that just battled to what they were prior to battling .macro dome_restorehelditems setvar VAR_0x8004, BATTLE_DOME_FUNC_RESTORE_HELD_ITEMS special CallBattleDomeFunction .endm - @ + @ Reduce the players party to the selected mons, used to reduce down to the 2 selected for battle .macro dome_reduceparty setvar VAR_0x8004, BATTLE_DOME_FUNC_REDUCE_PARTY special CallBattleDomeFunction @@ -133,9 +133,9 @@ special CallBattleDomeFunction .endm - @ TODO: Document this macro and its function - .macro dome_21 - setvar VAR_0x8004, BATTLE_DOME_FUNC_21 + @ Performs a random tourney to initialize the results board before the player has entered a challenge + .macro dome_initresultstree + setvar VAR_0x8004, BATTLE_DOME_FUNC_INIT_RESULTS_TREE special CallBattleDomeFunction .endm diff --git a/data/battle_ai_scripts.s b/data/battle_ai_scripts.s index 03f76fe29..633c3b38e 100644 --- a/data/battle_ai_scripts.s +++ b/data/battle_ai_scripts.s @@ -2395,10 +2395,10 @@ AI_CV_Hail_ScoreDown1: AI_CV_Hail_End: end +@ BUG: Facade score is increased if the target is statused, but should be if the user is. Replace AI_TARGET with AI_USER AI_CV_Facade: if_not_status AI_TARGET, STATUS1_POISON | STATUS1_BURN | STATUS1_PARALYSIS | STATUS1_TOXIC_POISON, AI_CV_Facade_End score +1 - AI_CV_Facade_End: end diff --git a/data/maps/BattleFrontier_BattleDomeBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleDomeBattleRoom/scripts.inc index ff11ac75a..3804f0a43 100644 --- a/data/maps/BattleFrontier_BattleDomeBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattleDomeBattleRoom/scripts.inc @@ -1,16 +1,20 @@ BattleFrontier_BattleDomeBattleRoom_MapScripts:: @ 824BC9C - map_script MAP_SCRIPT_ON_TRANSITION, BattleFrontier_BattleDomeBattleRoom_MapScript1_24BCB1 - map_script MAP_SCRIPT_ON_FRAME_TABLE, BattleFrontier_BattleDomeBattleRoom_MapScript2_24BD00 - map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, BattleFrontier_BattleDomeBattleRoom_MapScript2_24C481 - map_script MAP_SCRIPT_ON_RESUME, BattleFrontier_BattleDomeBattleRoom_MapScript1_24C4F0 + map_script MAP_SCRIPT_ON_TRANSITION, BattleFrontier_BattleDomeBattleRoom_OnTransition + map_script MAP_SCRIPT_ON_FRAME_TABLE, BattleFrontier_BattleDomeBattleRoom_OnFrame + map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, BattleFrontier_BattleDomeBattleRoom_OnWarp + map_script MAP_SCRIPT_ON_RESUME, BattleFrontier_BattleDomeBattleRoom_OnResume .byte 0 -BattleFrontier_BattleDomeBattleRoom_MapScript1_24BCB1: @ 824BCB1 + .set NO_DRAW, 0 + .set DRAW_TRAINER, 1 + .set DRAW_TUCKER, 2 + +BattleFrontier_BattleDomeBattleRoom_OnTransition: @ 824BCB1 dome_setopponentgfx frontier_get FRONTIER_DATA_BATTLE_NUM copyvar VAR_TEMP_F, VAR_RESULT - compare VAR_RESULT, 0 - call_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_24C919 + compare VAR_RESULT, DOME_ROUND1 + call_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_SetWalkingAudienceMemberPos call BattleFrontier_BattleDomeBattleRoom_EventScript_SetPlayerGfx end @@ -30,441 +34,431 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_SetPlayerGfxFemale:: @ 824BCFA setvar VAR_OBJ_GFX_ID_1, EVENT_OBJ_GFX_RIVAL_MAY_NORMAL return -BattleFrontier_BattleDomeBattleRoom_MapScript2_24BD00: @ 824BD00 - map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattleDomeBattleRoom_EventScript_24BD0A +BattleFrontier_BattleDomeBattleRoom_OnFrame: @ 824BD00 + map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattleDomeBattleRoom_EventScript_EnterRoom .2byte 0 -BattleFrontier_BattleDomeBattleRoom_EventScript_24BD0A:: @ 824BD0A +BattleFrontier_BattleDomeBattleRoom_EventScript_EnterRoom:: @ 824BD0A lockall - call BattleFrontier_BattleDomeBattleRoom_EventScript_24C1BD - compare VAR_RESULT, 0 - call_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_24C938 + call BattleFrontier_BattleDomeBattleRoom_EventScript_GetRoundNum + compare VAR_RESULT, DOME_ROUND1 + call_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_TryDoAudienceMemberWalkToSeat applymovement 1, Common_Movement_WalkInPlaceDown waitmovement 0 - call BattleFrontier_BattleDomeBattleRoom_EventScript_24BFD5 - msgbox BattleFrontier_BattleDomeBattleRoom_Text_24C970, MSGBOX_DEFAULT + call BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayer + msgbox BattleFrontier_BattleDomeBattleRoom_Text_PlayerHasEnteredDome, MSGBOX_DEFAULT closemessage showobjectat 13, MAP_BATTLE_FRONTIER_BATTLE_DOME_BATTLE_ROOM - compare VAR_TEMP_F, 3 - goto_if_ne BattleFrontier_BattleDomeBattleRoom_EventScript_24BD4E + compare VAR_TEMP_F, DOME_FINAL + goto_if_ne BattleFrontier_BattleDomeBattleRoom_EventScript_PlayerEnter compare VAR_TEMP_E, FRONTIER_BRAIN_NOT_READY - goto_if_ne BattleFrontier_BattleDomeBattleRoom_EventScript_24BD5A - -BattleFrontier_BattleDomeBattleRoom_EventScript_24BD4E:: @ 824BD4E - applymovement 13, BattleFrontier_BattleDomeBattleRoom_Movement_24C775 - goto BattleFrontier_BattleDomeBattleRoom_EventScript_24BD61 - -BattleFrontier_BattleDomeBattleRoom_EventScript_24BD5A:: @ 824BD5A - applymovement 13, BattleFrontier_BattleDomeBattleRoom_Movement_24C77F - -BattleFrontier_BattleDomeBattleRoom_EventScript_24BD61:: @ 824BD61 + goto_if_ne BattleFrontier_BattleDomeBattleRoom_EventScript_PlayerEnterForTucker +BattleFrontier_BattleDomeBattleRoom_EventScript_PlayerEnter:: @ 824BD4E + applymovement 13, BattleFrontier_BattleDomeBattleRoom_Movement_PlayerEnter + goto BattleFrontier_BattleDomeBattleRoom_EventScript_AudienceReactToPlayer + +BattleFrontier_BattleDomeBattleRoom_EventScript_PlayerEnterForTucker:: @ 824BD5A + applymovement 13, BattleFrontier_BattleDomeBattleRoom_Movement_PlayerEnterForTucker +BattleFrontier_BattleDomeBattleRoom_EventScript_AudienceReactToPlayer:: @ 824BD61 playse SE_W227B - call BattleFrontier_BattleDomeBattleRoom_EventScript_24C82E + call BattleFrontier_BattleDomeBattleRoom_EventScript_AudienceLookAround waitmovement 0 - compare VAR_TEMP_F, 3 - goto_if_ne BattleFrontier_BattleDomeBattleRoom_EventScript_24BD82 + compare VAR_TEMP_F, DOME_FINAL + goto_if_ne BattleFrontier_BattleDomeBattleRoom_EventScript_BattleOpponent compare VAR_TEMP_E, FRONTIER_BRAIN_NOT_READY - goto_if_ne BattleFrontier_BattleDomeBattleRoom_EventScript_24C1CB - -BattleFrontier_BattleDomeBattleRoom_EventScript_24BD82:: @ 824BD82 + goto_if_ne BattleFrontier_BattleDomeBattleRoom_EventScript_AnnounceTucker +BattleFrontier_BattleDomeBattleRoom_EventScript_BattleOpponent:: @ 824BD82 dome_getopponentname - msgbox BattleFrontier_BattleDomeBattleRoom_Text_24C990, MSGBOX_DEFAULT + msgbox BattleFrontier_BattleDomeBattleRoom_Text_PlayerVersusTrainer, MSGBOX_DEFAULT closemessage - applymovement 13, BattleFrontier_BattleDomeBattleRoom_Movement_24C77B - applymovement 15, BattleFrontier_BattleDomeBattleRoom_Movement_24C789 + applymovement 13, BattleFrontier_BattleDomeBattleRoom_Movement_PlayerStepForward + applymovement 15, BattleFrontier_BattleDomeBattleRoom_Movement_OpponentStepForward waitmovement 0 tower_getopponentintro 0 msgbox gStringVar4, MSGBOX_DEFAULT closemessage dome_initopponentparty - call BattleFrontier_BattleDomeBattleRoom_EventScript_24C440 - setvar VAR_TEMP_2, 0 + call BattleFrontier_BattleDomeBattleRoom_EventScript_DoDomeBattle + setvar VAR_TEMP_2, NO_DRAW switch VAR_RESULT - case 1, BattleFrontier_BattleDomeBattleRoom_EventScript_24BEE0 - case 2, BattleFrontier_BattleDomeBattleRoom_EventScript_24BE4F - case 9, BattleFrontier_BattleDomeBattleRoom_EventScript_24BE4F - setvar VAR_TEMP_2, 1 - -BattleFrontier_BattleDomeBattleRoom_EventScript_24BDF7:: @ 824BDF7 - msgbox BattleFrontier_BattleDomeBattleRoom_Text_24CA86, MSGBOX_DEFAULT + case B_OUTCOME_WON, BattleFrontier_BattleDomeBattleRoom_EventScript_DefeatedOpponent + case B_OUTCOME_LOST, BattleFrontier_BattleDomeBattleRoom_EventScript_LostToOpponent + case B_OUTCOME_FORFEITED, BattleFrontier_BattleDomeBattleRoom_EventScript_LostToOpponent + setvar VAR_TEMP_2, DRAW_TRAINER +BattleFrontier_BattleDomeBattleRoom_EventScript_Draw:: @ 824BDF7 + msgbox BattleFrontier_BattleDomeBattleRoom_Text_RefereeDecisionPleaseWait, MSGBOX_DEFAULT closemessage playse SE_W227B - call BattleFrontier_BattleDomeBattleRoom_EventScript_24C82E + call BattleFrontier_BattleDomeBattleRoom_EventScript_AudienceLookAround delay 60 - applymovement 9, BattleFrontier_BattleDomeBattleRoom_Movement_24C964 + applymovement 9, BattleFrontier_BattleDomeBattleRoom_Movement_TieRefereeEnter waitmovement 0 - applymovement 1, BattleFrontier_BattleDomeBattleRoom_Movement_24C969 + applymovement 1, BattleFrontier_BattleDomeBattleRoom_Movement_RefereeFaceLeft waitmovement 0 delay 180 - applymovement 9, BattleFrontier_BattleDomeBattleRoom_Movement_24C96B + applymovement 9, BattleFrontier_BattleDomeBattleRoom_Movement_TieRefereeExit waitmovement 0 - compare VAR_TEMP_2, 2 - goto_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_24BE4F + compare VAR_TEMP_2, DRAW_TUCKER @ Tucker always wins on a draw + goto_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_LostToOpponent dome_compareseeds switch VAR_RESULT - case 1, BattleFrontier_BattleDomeBattleRoom_EventScript_24BEE0 - -BattleFrontier_BattleDomeBattleRoom_EventScript_24BE4F:: @ 824BE4F + case 1, BattleFrontier_BattleDomeBattleRoom_EventScript_DefeatedOpponent +BattleFrontier_BattleDomeBattleRoom_EventScript_LostToOpponent:: @ 824BE4F applymovement 1, Common_Movement_WalkInPlaceDown waitmovement 0 dome_getopponentname - compare VAR_TEMP_2, 0 - call_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_24BEB1 - compare VAR_TEMP_2, 1 - call_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_24BEC5 - compare VAR_TEMP_2, 2 - call_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_24BED9 + compare VAR_TEMP_2, NO_DRAW + call_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_OpponentWon + compare VAR_TEMP_2, DRAW_TRAINER + call_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_OpponentWonDraw + compare VAR_TEMP_2, DRAW_TUCKER + call_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_TuckerWonDraw playse SE_W227B - call BattleFrontier_BattleDomeBattleRoom_EventScript_24C82E + call BattleFrontier_BattleDomeBattleRoom_EventScript_AudienceLookAround delay 60 - BattleFrontier_BattleDomeBattleRoom_EventScript_24BE8D:: @ 824BE8D - dome_resolvewinners 2 -BattleFrontier_BattleDomePreBattleRoom_EventScript_24BE9A:: @ 824BE9A + dome_resolvewinners DOME_PLAYER_LOST_MATCH +BattleFrontier_BattleDomeBattleRoom_EventScript_WarpToLobbyLost:: @ 824BE9A frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_LOST - goto BattleFrontier_BattleDomeBattleRoom_EventScript_24C8F5 -@ goto BattleFrontier_BattleDomePreBattleRoom_EventScript_24C8F5 + goto BattleFrontier_BattleDomeBattleRoom_EventScript_WarpToLobby -BattleFrontier_BattleDomeBattleRoom_EventScript_24BEB1:: @ 824BEB1 +BattleFrontier_BattleDomeBattleRoom_EventScript_OpponentWon:: @ 824BEB1 frontier_gettrainername 1 - message BattleFrontier_BattleDomeBattleRoom_Text_24C9E1 + message BattleFrontier_BattleDomeBattleRoom_Text_TrainerIsWinner waitmessage return -BattleFrontier_BattleDomeBattleRoom_EventScript_24BEC5:: @ 824BEC5 +BattleFrontier_BattleDomeBattleRoom_EventScript_OpponentWonDraw:: @ 824BEC5 frontier_gettrainername 0 - message BattleFrontier_BattleDomeBattleRoom_Text_24CB34 + message BattleFrontier_BattleDomeBattleRoom_Text_RefereesDecidedWinnerTrainer waitmessage return -BattleFrontier_BattleDomeBattleRoom_EventScript_24BED9:: @ 824BED9 - message BattleFrontier_BattleDomeBattleRoom_Text_24D6BE +BattleFrontier_BattleDomeBattleRoom_EventScript_TuckerWonDraw:: @ 824BED9 + message BattleFrontier_BattleDomeBattleRoom_Text_RefereesDecidedWinnerTucker waitmessage return -BattleFrontier_BattleDomeBattleRoom_EventScript_24BEE0:: @ 824BEE0 +BattleFrontier_BattleDomeBattleRoom_EventScript_DefeatedOpponent:: @ 824BEE0 applymovement 1, Common_Movement_WalkInPlaceDown waitmovement 0 - compare VAR_TEMP_2, 0 - call_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_24BFC3 - compare VAR_TEMP_2, 1 - call_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_24BFCC + compare VAR_TEMP_2, NO_DRAW + call_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_PlayerWon + compare VAR_TEMP_2, DRAW_TRAINER + call_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_PlayerWonDraw playse SE_W227B - call BattleFrontier_BattleDomeBattleRoom_EventScript_24C82E + call BattleFrontier_BattleDomeBattleRoom_EventScript_AudienceLookAround delay 60 dome_getroundtext - dome_resolvewinners 1 + dome_resolvewinners DOME_PLAYER_WON_MATCH frontier_get FRONTIER_DATA_BATTLE_NUM addvar VAR_RESULT, 1 frontier_set FRONTIER_DATA_BATTLE_NUM, VAR_RESULT switch VAR_RESULT - case 4, BattleFrontier_BattleDomeBattleRoom_EventScript_24BF62 + case DOME_ROUNDS_COUNT, BattleFrontier_BattleDomeBattleRoom_EventScript_WonTourney setvar VAR_0x8006, 1 warp MAP_BATTLE_FRONTIER_BATTLE_DOME_PRE_BATTLE_ROOM, 255, 5, 3 waitstate -BattleFrontier_BattleDomeBattleRoom_EventScript_24BF62:: @ 824BF62 - applymovement 13, BattleFrontier_BattleDomeBattleRoom_Movement_24C77D +BattleFrontier_BattleDomeBattleRoom_EventScript_WonTourney:: @ 824BF62 + applymovement 13, BattleFrontier_BattleDomeBattleRoom_Movement_PlayerApproachAudience waitmovement 0 frontier_get FRONTIER_DATA_LVL_MODE switch VAR_RESULT - case FRONTIER_LVL_OPEN, BattleFrontier_BattleDomeBattleRoom_EventScript_24BF96 - msgbox BattleFrontier_BattleDomeBattleRoom_Text_24CA04, MSGBOX_DEFAULT - goto BattleFrontier_BattleDomeBattleRoom_EventScript_24BF9E - -BattleFrontier_BattleDomeBattleRoom_EventScript_24BF96:: @ 824BF96 - msgbox BattleFrontier_BattleDomeBattleRoom_Text_24CA44, MSGBOX_DEFAULT - -BattleFrontier_BattleDomeBattleRoom_EventScript_24BF9E:: @ 824BF9E - special sub_8175280 + case FRONTIER_LVL_OPEN, BattleFrontier_BattleDomeBattleRoom_EventScript_WonLvOpenTourney + msgbox BattleFrontier_BattleDomeBattleRoom_Text_PlayerIsLv50Champ, MSGBOX_DEFAULT + goto BattleFrontier_BattleDomeBattleRoom_EventScript_CelebrateWin + +BattleFrontier_BattleDomeBattleRoom_EventScript_WonLvOpenTourney:: @ 824BF96 + msgbox BattleFrontier_BattleDomeBattleRoom_Text_PlayerIsLvOpenChamp, MSGBOX_DEFAULT +BattleFrontier_BattleDomeBattleRoom_EventScript_CelebrateWin:: @ 824BF9E + special DoConfettiEffect playse SE_W227B - call BattleFrontier_BattleDomeBattleRoom_EventScript_24C82E + call BattleFrontier_BattleDomeBattleRoom_EventScript_AudienceLookAround delay 60 frontier_set FRONTIER_DATA_CHALLENGE_STATUS, CHALLENGE_STATUS_WON - goto BattleFrontier_BattleDomeBattleRoom_EventScript_24C8F5 + goto BattleFrontier_BattleDomeBattleRoom_EventScript_WarpToLobby -BattleFrontier_BattleDomeBattleRoom_EventScript_24BFC3:: @ 824BFC3 - msgbox BattleFrontier_BattleDomeBattleRoom_Text_24C9BE, MSGBOX_DEFAULT +BattleFrontier_BattleDomeBattleRoom_EventScript_PlayerWon:: @ 824BFC3 + msgbox BattleFrontier_BattleDomeBattleRoom_Text_PlayerIsWinner, MSGBOX_DEFAULT return -BattleFrontier_BattleDomeBattleRoom_EventScript_24BFCC:: @ 824BFCC - msgbox BattleFrontier_BattleDomeBattleRoom_Text_24CB9D, MSGBOX_DEFAULT +BattleFrontier_BattleDomeBattleRoom_EventScript_PlayerWonDraw:: @ 824BFCC + msgbox BattleFrontier_BattleDomeBattleRoom_Text_RefereesDecidedWinnerPlayer, MSGBOX_DEFAULT return -BattleFrontier_BattleDomeBattleRoom_EventScript_24BFD5:: @ 824BFD5 - dome_get DOME_DATA_6 - compare VAR_RESULT, 0 - goto_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_24C023 - dome_get DOME_DATA_7 - compare VAR_RESULT, 0 - goto_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_24C076 +BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayer:: @ 824BFD5 + dome_get DOME_DATA_ATTEMPTED_CHALLENGE + compare VAR_RESULT, FALSE + goto_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerFirstAttempt + dome_get DOME_DATA_HAS_WON_CHALLENGE + compare VAR_RESULT, FALSE + goto_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerNeverWon dome_get DOME_DATA_WIN_STREAK_ACTIVE compare VAR_RESULT, FALSE - goto_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_24C16A - goto BattleFrontier_BattleDomeBattleRoom_EventScript_24C0C9 + goto_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerBrokenStreak + goto BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerChampion return -BattleFrontier_BattleDomeBattleRoom_EventScript_24C023:: @ 824C023 - call BattleFrontier_BattleDomeBattleRoom_EventScript_24C1BD +BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerFirstAttempt:: @ 824C023 + call BattleFrontier_BattleDomeBattleRoom_EventScript_GetRoundNum switch VAR_RESULT - case 0, BattleFrontier_BattleDomeBattleRoom_EventScript_24C05A - case 1, BattleFrontier_BattleDomeBattleRoom_EventScript_24C061 - case 2, BattleFrontier_BattleDomeBattleRoom_EventScript_24C068 - case 3, BattleFrontier_BattleDomeBattleRoom_EventScript_24C06F + case DOME_ROUND1, BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerFirstAttemptRound1 + case DOME_ROUND2, BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerFirstAttemptRound2 + case DOME_SEMIFINAL, BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerFirstAttemptSemifinal + case DOME_FINAL, BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerFirstAttemptFinal return -BattleFrontier_BattleDomeBattleRoom_EventScript_24C05A:: @ 824C05A - message BattleFrontier_BattleDomeBattleRoom_Text_24CC06 +BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerFirstAttemptRound1:: @ 824C05A + message BattleFrontier_BattleDomeBattleRoom_Text_BrightNewHope waitmessage return -BattleFrontier_BattleDomeBattleRoom_EventScript_24C061:: @ 824C061 - message BattleFrontier_BattleDomeBattleRoom_Text_24CC1C +BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerFirstAttemptRound2:: @ 824C061 + message BattleFrontier_BattleDomeBattleRoom_Text_RisingStar waitmessage return -BattleFrontier_BattleDomeBattleRoom_EventScript_24C068:: @ 824C068 - message BattleFrontier_BattleDomeBattleRoom_Text_24CC2E +BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerFirstAttemptSemifinal:: @ 824C068 + message BattleFrontier_BattleDomeBattleRoom_Text_WillTheyRaceToChampionship waitmessage return -BattleFrontier_BattleDomeBattleRoom_EventScript_24C06F:: @ 824C06F - message BattleFrontier_BattleDomeBattleRoom_Text_24CC5B +BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerFirstAttemptFinal:: @ 824C06F + message BattleFrontier_BattleDomeBattleRoom_Text_CanAchieveChampionFirstTry waitmessage return -BattleFrontier_BattleDomeBattleRoom_EventScript_24C076:: @ 824C076 - call BattleFrontier_BattleDomeBattleRoom_EventScript_24C1BD +BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerNeverWon:: @ 824C076 + call BattleFrontier_BattleDomeBattleRoom_EventScript_GetRoundNum switch VAR_RESULT - case 0, BattleFrontier_BattleDomeBattleRoom_EventScript_24C0AD - case 1, BattleFrontier_BattleDomeBattleRoom_EventScript_24C0B4 - case 2, BattleFrontier_BattleDomeBattleRoom_EventScript_24C0BB - case 3, BattleFrontier_BattleDomeBattleRoom_EventScript_24C0C2 + case DOME_ROUND1, BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerNeverWonRound1 + case DOME_ROUND2, BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerNeverWonRound2 + case DOME_SEMIFINAL, BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerNeverWonSemifinal + case DOME_FINAL, BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerNeverWonFinal return -BattleFrontier_BattleDomeBattleRoom_EventScript_24C0AD:: @ 824C0AD - message BattleFrontier_BattleDomeBattleRoom_Text_24CC99 +BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerNeverWonRound1:: @ 824C0AD + message BattleFrontier_BattleDomeBattleRoom_Text_CanLossBeAvenged waitmessage return -BattleFrontier_BattleDomeBattleRoom_EventScript_24C0B4:: @ 824C0B4 - message BattleFrontier_BattleDomeBattleRoom_Text_24CCC5 +BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerNeverWonRound2:: @ 824C0B4 + message BattleFrontier_BattleDomeBattleRoom_Text_OnFireForChampionship waitmessage return -BattleFrontier_BattleDomeBattleRoom_EventScript_24C0BB:: @ 824C0BB - message BattleFrontier_BattleDomeBattleRoom_Text_24CCFD +BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerNeverWonSemifinal:: @ 824C0BB + message BattleFrontier_BattleDomeBattleRoom_Text_WinHereAdvancesToFinal waitmessage return -BattleFrontier_BattleDomeBattleRoom_EventScript_24C0C2:: @ 824C0C2 - message BattleFrontier_BattleDomeBattleRoom_Text_24CD33 +BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerNeverWonFinal:: @ 824C0C2 + message BattleFrontier_BattleDomeBattleRoom_Text_WillLongHeldDreamComeTrue waitmessage return -BattleFrontier_BattleDomeBattleRoom_EventScript_24C0C9:: @ 824C0C9 - compare VAR_TEMP_F, 3 - goto_if_ne BattleFrontier_BattleDomeBattleRoom_EventScript_24C105 +BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerChampion:: @ 824C0C9 + compare VAR_TEMP_F, DOME_FINAL + goto_if_ne BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerChampionNoTucker switch VAR_TEMP_E - case FRONTIER_BRAIN_SILVER, BattleFrontier_BattleDomeBattleRoom_EventScript_24C158 - case FRONTIER_BRAIN_GOLD, BattleFrontier_BattleDomeBattleRoom_EventScript_24C161 - case FRONTIER_BRAIN_STREAK, BattleFrontier_BattleDomeBattleRoom_EventScript_24C158 - case FRONTIER_BRAIN_STREAK_LONG, BattleFrontier_BattleDomeBattleRoom_EventScript_24C161 - -BattleFrontier_BattleDomeBattleRoom_EventScript_24C105:: @ 824C105 - call BattleFrontier_BattleDomeBattleRoom_EventScript_24C1BD + case FRONTIER_BRAIN_SILVER, BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerPreTuckerSilver + case FRONTIER_BRAIN_GOLD, BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerPreTuckerGold + case FRONTIER_BRAIN_STREAK, BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerPreTuckerSilver + case FRONTIER_BRAIN_STREAK_LONG, BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerPreTuckerGold +BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerChampionNoTucker:: @ 824C105 + call BattleFrontier_BattleDomeBattleRoom_EventScript_GetRoundNum switch VAR_RESULT - case 0, BattleFrontier_BattleDomeBattleRoom_EventScript_24C13C - case 1, BattleFrontier_BattleDomeBattleRoom_EventScript_24C143 - case 2, BattleFrontier_BattleDomeBattleRoom_EventScript_24C14A - case 3, BattleFrontier_BattleDomeBattleRoom_EventScript_24C151 + case DOME_ROUND1, BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerChampionRound1 + case DOME_ROUND2, BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerChampionRound2 + case DOME_SEMIFINAL, BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerChampionSemifinal + case DOME_FINAL, BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerChampionFinal return -BattleFrontier_BattleDomeBattleRoom_EventScript_24C13C:: @ 824C13C - message BattleFrontier_BattleDomeBattleRoom_Text_24CD72 +BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerChampionRound1:: @ 824C13C + message BattleFrontier_BattleDomeBattleRoom_Text_TheInvincibleChampion waitmessage return -BattleFrontier_BattleDomeBattleRoom_EventScript_24C143:: @ 824C143 - message BattleFrontier_BattleDomeBattleRoom_Text_24CD8C +BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerChampionRound2:: @ 824C143 + message BattleFrontier_BattleDomeBattleRoom_Text_CanAnyoneHopeToBeatTrainer waitmessage return -BattleFrontier_BattleDomeBattleRoom_EventScript_24C14A:: @ 824C14A - message BattleFrontier_BattleDomeBattleRoom_Text_24CDB3 +BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerChampionSemifinal:: @ 824C14A + message BattleFrontier_BattleDomeBattleRoom_Text_DoBattlesExistSolelyForTrainer waitmessage return -BattleFrontier_BattleDomeBattleRoom_EventScript_24C151:: @ 824C151 - message BattleFrontier_BattleDomeBattleRoom_Text_24CDDE +BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerChampionFinal:: @ 824C151 + message BattleFrontier_BattleDomeBattleRoom_Text_CurrentChampAimingToRetainTitle waitmessage return -BattleFrontier_BattleDomeBattleRoom_EventScript_24C158:: @ 824C158 - msgbox BattleFrontier_BattleDomeBattleRoom_Text_24CEBE, MSGBOX_DEFAULT +BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerPreTuckerSilver:: @ 824C158 + msgbox BattleFrontier_BattleDomeBattleRoom_Text_FeelGlowOfTrueMaster, MSGBOX_DEFAULT return -BattleFrontier_BattleDomeBattleRoom_EventScript_24C161:: @ 824C161 - msgbox BattleFrontier_BattleDomeBattleRoom_Text_24D232, MSGBOX_DEFAULT +BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerPreTuckerGold:: @ 824C161 + msgbox BattleFrontier_BattleDomeBattleRoom_Text_CanWinStreakBeStretched, MSGBOX_DEFAULT return -BattleFrontier_BattleDomeBattleRoom_EventScript_24C16A:: @ 824C16A - call BattleFrontier_BattleDomeBattleRoom_EventScript_24C1BD +BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerBrokenStreak:: @ 824C16A + call BattleFrontier_BattleDomeBattleRoom_EventScript_GetRoundNum switch VAR_RESULT - case 0, BattleFrontier_BattleDomeBattleRoom_EventScript_24C1A1 - case 1, BattleFrontier_BattleDomeBattleRoom_EventScript_24C1A8 - case 2, BattleFrontier_BattleDomeBattleRoom_EventScript_24C1AF - case 3, BattleFrontier_BattleDomeBattleRoom_EventScript_24C1B6 + case DOME_ROUND1, BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerBrokenStreakRound1 + case DOME_ROUND2, BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerBrokenStreakRound2 + case DOME_SEMIFINAL, BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerBrokenStreakSemifinal + case DOME_FINAL, BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerBrokenStreakFinal return -BattleFrontier_BattleDomeBattleRoom_EventScript_24C1A1:: @ 824C1A1 - message BattleFrontier_BattleDomeBattleRoom_Text_24CE10 +BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerBrokenStreakRound1:: @ 824C1A1 + message BattleFrontier_BattleDomeBattleRoom_Text_FormerChampHasReturned waitmessage return -BattleFrontier_BattleDomeBattleRoom_EventScript_24C1A8:: @ 824C1A8 - message BattleFrontier_BattleDomeBattleRoom_Text_24CE33 +BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerBrokenStreakRound2:: @ 824C1A8 + message BattleFrontier_BattleDomeBattleRoom_Text_FormerToughnessReturned waitmessage return -BattleFrontier_BattleDomeBattleRoom_EventScript_24C1AF:: @ 824C1AF - message BattleFrontier_BattleDomeBattleRoom_Text_24CE57 +BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerBrokenStreakSemifinal:: @ 824C1AF + message BattleFrontier_BattleDomeBattleRoom_Text_WillDoExpectedAdvanceToFinals waitmessage return -BattleFrontier_BattleDomeBattleRoom_EventScript_24C1B6:: @ 824C1B6 - message BattleFrontier_BattleDomeBattleRoom_Text_24CE94 +BattleFrontier_BattleDomeBattleRoom_EventScript_AnnouncePlayerBrokenStreakFinal:: @ 824C1B6 + message BattleFrontier_BattleDomeBattleRoom_Text_WillFormerChampRegainGlory waitmessage return -BattleFrontier_BattleDomeBattleRoom_EventScript_24C1BD:: @ 824C1BD +BattleFrontier_BattleDomeBattleRoom_EventScript_GetRoundNum:: @ 824C1BD frontier_get FRONTIER_DATA_BATTLE_NUM return -BattleFrontier_BattleDomeBattleRoom_EventScript_24C1CB:: @ 824C1CB +BattleFrontier_BattleDomeBattleRoom_EventScript_AnnounceTucker:: @ 824C1CB switch VAR_TEMP_E - case FRONTIER_BRAIN_SILVER, BattleFrontier_BattleDomeBattleRoom_EventScript_24C1FC - case FRONTIER_BRAIN_GOLD, BattleFrontier_BattleDomeBattleRoom_EventScript_24C209 - case FRONTIER_BRAIN_STREAK, BattleFrontier_BattleDomeBattleRoom_EventScript_24C1FC - case FRONTIER_BRAIN_STREAK_LONG, BattleFrontier_BattleDomeBattleRoom_EventScript_24C209 - -BattleFrontier_BattleDomeBattleRoom_EventScript_24C1FC:: @ 824C1FC - msgbox BattleFrontier_BattleDomeBattleRoom_Text_24CEDE, MSGBOX_DEFAULT - goto BattleFrontier_BattleDomeBattleRoom_EventScript_24C211 - -BattleFrontier_BattleDomeBattleRoom_EventScript_24C209:: @ 824C209 - msgbox BattleFrontier_BattleDomeBattleRoom_Text_24D26C, MSGBOX_DEFAULT - -BattleFrontier_BattleDomeBattleRoom_EventScript_24C211:: @ 824C211 + case FRONTIER_BRAIN_SILVER, BattleFrontier_BattleDomeBattleRoom_EventScript_AnnounceTuckerSilver + case FRONTIER_BRAIN_GOLD, BattleFrontier_BattleDomeBattleRoom_EventScript_AnnounceTuckerGold + case FRONTIER_BRAIN_STREAK, BattleFrontier_BattleDomeBattleRoom_EventScript_AnnounceTuckerSilver + case FRONTIER_BRAIN_STREAK_LONG, BattleFrontier_BattleDomeBattleRoom_EventScript_AnnounceTuckerGold + +BattleFrontier_BattleDomeBattleRoom_EventScript_AnnounceTuckerSilver:: @ 824C1FC + msgbox BattleFrontier_BattleDomeBattleRoom_Text_MakeWayForDomeAceTucker, MSGBOX_DEFAULT + goto BattleFrontier_BattleDomeBattleRoom_EventScript_TuckerEnter + +BattleFrontier_BattleDomeBattleRoom_EventScript_AnnounceTuckerGold:: @ 824C209 + msgbox BattleFrontier_BattleDomeBattleRoom_Text_LegendHasReturnedDomeAceTucker, MSGBOX_DEFAULT +BattleFrontier_BattleDomeBattleRoom_EventScript_TuckerEnter:: @ 824C211 closemessage - applymovement 2, BattleFrontier_BattleDomeBattleRoom_Movement_24C94B - applymovement 1, BattleFrontier_BattleDomeBattleRoom_Movement_24C7F9 - applymovement 15, BattleFrontier_BattleDomeBattleRoom_Movement_24C78E + applymovement 2, BattleFrontier_BattleDomeBattleRoom_Movement_AudienceTwinJump + applymovement 1, BattleFrontier_BattleDomeBattleRoom_Movement_RefereeMoveForTuckerEntrance + applymovement 15, BattleFrontier_BattleDomeBattleRoom_Movement_TuckerEnterAndDance playse SE_W227B - call BattleFrontier_BattleDomeBattleRoom_EventScript_24C82E + call BattleFrontier_BattleDomeBattleRoom_EventScript_AudienceLookAround waitse playse SE_W227B - call BattleFrontier_BattleDomeBattleRoom_EventScript_24C82E + call BattleFrontier_BattleDomeBattleRoom_EventScript_AudienceLookAround waitse playse SE_W227B - call BattleFrontier_BattleDomeBattleRoom_EventScript_24C82E + call BattleFrontier_BattleDomeBattleRoom_EventScript_AudienceLookAround waitse playse SE_W227B - call BattleFrontier_BattleDomeBattleRoom_EventScript_24C82E + call BattleFrontier_BattleDomeBattleRoom_EventScript_AudienceLookAround waitse playse SE_W227B - call BattleFrontier_BattleDomeBattleRoom_EventScript_24C82E + call BattleFrontier_BattleDomeBattleRoom_EventScript_AudienceLookAround waitse waitmovement 0 - message BattleFrontier_BattleDomeBattleRoom_Text_24CF7A + message BattleFrontier_BattleDomeBattleRoom_Text_SpectatorTuckerChant waitmessage playse SE_W227B - call BattleFrontier_BattleDomeBattleRoom_EventScript_24C82E + call BattleFrontier_BattleDomeBattleRoom_EventScript_AudienceLookAround waitse switch VAR_TEMP_E - case FRONTIER_BRAIN_GOLD, BattleFrontier_BattleDomeBattleRoom_EventScript_24C346 - case FRONTIER_BRAIN_STREAK, BattleFrontier_BattleDomeBattleRoom_EventScript_24C2B9 - case FRONTIER_BRAIN_STREAK_LONG, BattleFrontier_BattleDomeBattleRoom_EventScript_24C373 + case FRONTIER_BRAIN_GOLD, BattleFrontier_BattleDomeBattleRoom_EventScript_TuckerGoldIntro + case FRONTIER_BRAIN_STREAK, BattleFrontier_BattleDomeBattleRoom_EventScript_BattleTuckerSilver + case FRONTIER_BRAIN_STREAK_LONG, BattleFrontier_BattleDomeBattleRoom_EventScript_BattleTuckerGold frontier_get FRONTIER_DATA_HEARD_BRAIN_SPEECH compare VAR_RESULT, FALSE - goto_if_ne BattleFrontier_BattleDomeBattleRoom_EventScript_24C2B9 - msgbox BattleFrontier_BattleDomeBattleRoom_Text_24CFAE, MSGBOX_DEFAULT + goto_if_ne BattleFrontier_BattleDomeBattleRoom_EventScript_BattleTuckerSilver + msgbox BattleFrontier_BattleDomeBattleRoom_Text_TuckerSilverIntro, MSGBOX_DEFAULT frontier_set FRONTIER_DATA_HEARD_BRAIN_SPEECH -BattleFrontier_BattleDomeBattleRoom_EventScript_24C2B9:: @ 824C2B9 - msgbox BattleFrontier_BattleDomeBattleRoom_Text_24D0D9, MSGBOX_DEFAULT - call BattleFrontier_BattleDomeBattleRoom_EventScript_24C400 +BattleFrontier_BattleDomeBattleRoom_EventScript_BattleTuckerSilver:: @ 824C2B9 + msgbox BattleFrontier_BattleDomeBattleRoom_Text_LetsSeeYourStrategy, MSGBOX_DEFAULT + call BattleFrontier_BattleDomeBattleRoom_EventScript_DoTuckerBattle switch VAR_RESULT - case 2, BattleFrontier_BattleDomeBattleRoom_EventScript_24C420 - case 9, BattleFrontier_BattleDomeBattleRoom_EventScript_24C420 - case 3, BattleFrontier_BattleDomeBattleRoom_EventScript_24C436 - msgbox BattleFrontier_BattleDomeBattleRoom_Text_24D0F6, MSGBOX_DEFAULT - dome_resolvewinners 1 + case B_OUTCOME_LOST, BattleFrontier_BattleDomeBattleRoom_EventScript_LostToTucker + case B_OUTCOME_FORFEITED, BattleFrontier_BattleDomeBattleRoom_EventScript_LostToTucker + case B_OUTCOME_DREW, BattleFrontier_BattleDomeBattleRoom_EventScript_TuckerDraw + msgbox BattleFrontier_BattleDomeBattleRoom_Text_IncredibleVictorIsPlayer, MSGBOX_DEFAULT + dome_resolvewinners DOME_PLAYER_WON_MATCH frontier_getsymbols compare VAR_RESULT, 0 - goto_if_ne BattleFrontier_BattleDomeBattleRoom_EventScript_24BF62 + goto_if_ne BattleFrontier_BattleDomeBattleRoom_EventScript_WonTourney closemessage - applymovement 15, BattleFrontier_BattleDomeBattleRoom_Movement_24C82B + applymovement 15, BattleFrontier_BattleDomeBattleRoom_Movement_TuckerApproachPlayer waitmovement 0 - msgbox BattleFrontier_BattleDomeBattleRoom_Text_24D172, MSGBOX_DEFAULT + msgbox BattleFrontier_BattleDomeBattleRoom_Text_SeeYourFrontierPass, MSGBOX_DEFAULT playfanfare MUS_ME_SYMBOLGET - message BattleFrontier_BattleDomeBattleRoom_Text_24D1AA + message BattleFrontier_BattleDomeBattleRoom_Text_ReceivedTacticsSymbol waitmessage waitfanfare frontier_givesymbol - msgbox BattleFrontier_BattleDomeBattleRoom_Text_24D1E0, MSGBOX_DEFAULT - goto BattleFrontier_BattleDomeBattleRoom_EventScript_24BF62 + msgbox BattleFrontier_BattleDomeBattleRoom_Text_WontUnderestimateYouNextTime, MSGBOX_DEFAULT + goto BattleFrontier_BattleDomeBattleRoom_EventScript_WonTourney -BattleFrontier_BattleDomeBattleRoom_EventScript_24C346:: @ 824C346 +BattleFrontier_BattleDomeBattleRoom_EventScript_TuckerGoldIntro:: @ 824C346 frontier_get FRONTIER_DATA_HEARD_BRAIN_SPEECH compare VAR_RESULT, FALSE - goto_if_ne BattleFrontier_BattleDomeBattleRoom_EventScript_24C373 - msgbox BattleFrontier_BattleDomeBattleRoom_Text_24D319, MSGBOX_DEFAULT + goto_if_ne BattleFrontier_BattleDomeBattleRoom_EventScript_BattleTuckerGold + msgbox BattleFrontier_BattleDomeBattleRoom_Text_TuckerGoldIntro, MSGBOX_DEFAULT frontier_set FRONTIER_DATA_HEARD_BRAIN_SPEECH -BattleFrontier_BattleDomeBattleRoom_EventScript_24C373:: @ 824C373 - msgbox BattleFrontier_BattleDomeBattleRoom_Text_24D43E, MSGBOX_DEFAULT - call BattleFrontier_BattleDomeBattleRoom_EventScript_24C400 +BattleFrontier_BattleDomeBattleRoom_EventScript_BattleTuckerGold:: @ 824C373 + msgbox BattleFrontier_BattleDomeBattleRoom_Text_UnleashAllPowerIPossess, MSGBOX_DEFAULT + call BattleFrontier_BattleDomeBattleRoom_EventScript_DoTuckerBattle switch VAR_RESULT - case 2, BattleFrontier_BattleDomeBattleRoom_EventScript_24C420 - case 9, BattleFrontier_BattleDomeBattleRoom_EventScript_24C420 - case 3, BattleFrontier_BattleDomeBattleRoom_EventScript_24C436 - msgbox BattleFrontier_BattleDomeBattleRoom_Text_24D0F6, MSGBOX_DEFAULT - dome_resolvewinners 1 + case B_OUTCOME_LOST, BattleFrontier_BattleDomeBattleRoom_EventScript_LostToTucker + case B_OUTCOME_FORFEITED, BattleFrontier_BattleDomeBattleRoom_EventScript_LostToTucker + case B_OUTCOME_DREW, BattleFrontier_BattleDomeBattleRoom_EventScript_TuckerDraw + msgbox BattleFrontier_BattleDomeBattleRoom_Text_IncredibleVictorIsPlayer, MSGBOX_DEFAULT + dome_resolvewinners DOME_PLAYER_WON_MATCH frontier_getsymbols compare VAR_RESULT, 2 - goto_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_24BF62 + goto_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_WonTourney closemessage - applymovement 15, BattleFrontier_BattleDomeBattleRoom_Movement_24C82B + applymovement 15, BattleFrontier_BattleDomeBattleRoom_Movement_TuckerApproachPlayer waitmovement 0 - msgbox BattleFrontier_BattleDomeBattleRoom_Text_24D47F, MSGBOX_DEFAULT + msgbox BattleFrontier_BattleDomeBattleRoom_Text_NeverLostWhenPowerUnleashed, MSGBOX_DEFAULT playfanfare MUS_ME_SYMBOLGET - message BattleFrontier_BattleDomeBattleRoom_Text_24D522 + message BattleFrontier_BattleDomeBattleRoom_Text_TacticsSymbolTookGoldenShine waitmessage waitfanfare frontier_givesymbol - msgbox BattleFrontier_BattleDomeBattleRoom_Text_24D54D, MSGBOX_DEFAULT - goto BattleFrontier_BattleDomeBattleRoom_EventScript_24BF62 + msgbox BattleFrontier_BattleDomeBattleRoom_Text_LookForwardToNextEncounter, MSGBOX_DEFAULT + goto BattleFrontier_BattleDomeBattleRoom_EventScript_WonTourney -BattleFrontier_BattleDomeBattleRoom_EventScript_24C400:: @ 824C400 - msgbox BattleFrontier_BattleDomeBattleRoom_Text_24D677, MSGBOX_DEFAULT +BattleFrontier_BattleDomeBattleRoom_EventScript_DoTuckerBattle:: @ 824C400 + msgbox BattleFrontier_BattleDomeBattleRoom_Text_PlayerVersusTucker, MSGBOX_DEFAULT closemessage - applymovement 13, BattleFrontier_BattleDomeBattleRoom_Movement_24C787 - applymovement 15, BattleFrontier_BattleDomeBattleRoom_Movement_24C829 + applymovement 13, BattleFrontier_BattleDomeBattleRoom_Movement_PlayerStepForward2 + applymovement 15, BattleFrontier_BattleDomeBattleRoom_Movement_TuckerStepForward waitmovement 0 - call BattleFrontier_BattleDomeBattleRoom_EventScript_24C440 + call BattleFrontier_BattleDomeBattleRoom_EventScript_DoDomeBattle return -BattleFrontier_BattleDomeBattleRoom_EventScript_24C420:: @ 824C420 - msgbox BattleFrontier_BattleDomeBattleRoom_Text_24D127, MSGBOX_DEFAULT +BattleFrontier_BattleDomeBattleRoom_EventScript_LostToTucker:: @ 824C420 + msgbox BattleFrontier_BattleDomeBattleRoom_Text_WinnerIsTucker, MSGBOX_DEFAULT playse SE_W227B - call BattleFrontier_BattleDomeBattleRoom_EventScript_24C82E + call BattleFrontier_BattleDomeBattleRoom_EventScript_AudienceLookAround waitse goto BattleFrontier_BattleDomeBattleRoom_EventScript_24BE8D -BattleFrontier_BattleDomeBattleRoom_EventScript_24C436:: @ 824C436 - setvar VAR_TEMP_2, 2 - goto BattleFrontier_BattleDomeBattleRoom_EventScript_24BDF7 +BattleFrontier_BattleDomeBattleRoom_EventScript_TuckerDraw:: @ 824C436 + setvar VAR_TEMP_2, DRAW_TUCKER + goto BattleFrontier_BattleDomeBattleRoom_EventScript_Draw -BattleFrontier_BattleDomeBattleRoom_EventScript_24C440:: @ 824C440 +BattleFrontier_BattleDomeBattleRoom_EventScript_DoDomeBattle:: @ 824C440 frontier_set FRONTIER_DATA_6, 0 special HealPlayerParty setvar VAR_0x8004, SPECIAL_BATTLE_DOME @@ -478,56 +472,56 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24C440:: @ 824C440 dome_resetsketch return -BattleFrontier_BattleDomeBattleRoom_MapScript2_24C481: @ 824C481 - map_script_2 VAR_TEMP_1, 0, BattleFrontier_BattleDomeBattleRoom_EventScript_24C48B +BattleFrontier_BattleDomeBattleRoom_OnWarp: @ 824C481 + map_script_2 VAR_TEMP_1, 0, BattleFrontier_BattleDomeBattleRoom_EventScript_SetUpObjects .2byte 0 -BattleFrontier_BattleDomeBattleRoom_EventScript_24C48B:: @ 824C48B +BattleFrontier_BattleDomeBattleRoom_EventScript_SetUpObjects:: @ 824C48B hideobjectat 13, MAP_BATTLE_FRONTIER_BATTLE_DOME_BATTLE_ROOM - call BattleFrontier_BattleDomeBattleRoom_EventScript_24C502 + call BattleFrontier_BattleDomeBattleRoom_EventScript_AddAudience call BattleFrontier_BattleDomeBattleRoom_EventScript_SetPlayerGfx setvar VAR_TEMP_1, 1 applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleDomeBattleRoom_Movement_SetInvisible frontier_get FRONTIER_DATA_BATTLE_NUM - compare VAR_RESULT, 3 - goto_if_ne BattleFrontier_BattleDomeBattleRoom_EventScript_24C4EF + compare VAR_RESULT, DOME_FINAL + goto_if_ne BattleFrontier_BattleDomeBattleRoom_EventScript_EndSetUpObjects frontier_getbrainstatus copyvar VAR_TEMP_E, VAR_RESULT compare VAR_RESULT, FRONTIER_BRAIN_NOT_READY - goto_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_24C4EF + goto_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_EndSetUpObjects call BattleFrontier_EventScript_SetBrainObjectGfx setobjectxyperm 15, 13, 9 removeobject 15 addobject 15 - applymovement 15, BattleFrontier_BattleDomeBattleRoom_Movement_24C78B - -BattleFrontier_BattleDomeBattleRoom_EventScript_24C4EF:: @ 824C4EF + applymovement 15, BattleFrontier_BattleDomeBattleRoom_Movement_SetInvisibleFacingUp +BattleFrontier_BattleDomeBattleRoom_EventScript_EndSetUpObjects:: @ 824C4EF end -BattleFrontier_BattleDomeBattleRoom_MapScript1_24C4F0: @ 824C4F0 +BattleFrontier_BattleDomeBattleRoom_OnResume: @ 824C4F0 compare VAR_TEMP_9, 1 - call_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_24C4FC + call_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_CallAddAudience end -BattleFrontier_BattleDomeBattleRoom_EventScript_24C4FC:: @ 824C4FC - call BattleFrontier_BattleDomeBattleRoom_EventScript_24C502 +BattleFrontier_BattleDomeBattleRoom_EventScript_CallAddAudience:: @ 824C4FC + call BattleFrontier_BattleDomeBattleRoom_EventScript_AddAudience return -BattleFrontier_BattleDomeBattleRoom_EventScript_24C502:: @ 824C502 - compare VAR_TEMP_F, 0 - call_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_24C52F - compare VAR_TEMP_F, 1 - call_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_24C530 - compare VAR_TEMP_F, 2 - call_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_24C594 - compare VAR_TEMP_F, 3 - call_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_24C652 +@ Add audience members to supplement the permanent object event audience +BattleFrontier_BattleDomeBattleRoom_EventScript_AddAudience:: @ 824C502 + compare VAR_TEMP_F, DOME_ROUND1 + call_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_AddRound1Audience + compare VAR_TEMP_F, DOME_ROUND2 + call_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_AddRound2Audience + compare VAR_TEMP_F, DOME_SEMIFINAL + call_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_AddSemifinalAudience + compare VAR_TEMP_F, DOME_FINAL + call_if_eq BattleFrontier_BattleDomeBattleRoom_EventScript_AddFinalAudience return -BattleFrontier_BattleDomeBattleRoom_EventScript_24C52F:: @ 824C52F +BattleFrontier_BattleDomeBattleRoom_EventScript_AddRound1Audience:: @ 824C52F return -BattleFrontier_BattleDomeBattleRoom_EventScript_24C530:: @ 824C530 +BattleFrontier_BattleDomeBattleRoom_EventScript_AddRound2Audience:: @ 824C530 createvobject EVENT_OBJ_GFX_SCIENTIST_1, 1, 3, 0, 3, DIR_SOUTH createvobject EVENT_OBJ_GFX_EXPERT_F, 4, 6, 0, 3, DIR_SOUTH createvobject EVENT_OBJ_GFX_NINJA_BOY, 6, 8, 0, 3, DIR_SOUTH @@ -541,7 +535,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24C530:: @ 824C530 createvobject EVENT_OBJ_GFX_SCHOOL_KID_M, 29, 5, 1, 3, DIR_SOUTH return -BattleFrontier_BattleDomeBattleRoom_EventScript_24C594:: @ 824C594 +BattleFrontier_BattleDomeBattleRoom_EventScript_AddSemifinalAudience:: @ 824C594 createvobject EVENT_OBJ_GFX_SCIENTIST_1, 1, 3, 0, 3, DIR_SOUTH createvobject EVENT_OBJ_GFX_EXPERT_F, 4, 6, 0, 3, DIR_SOUTH createvobject EVENT_OBJ_GFX_NINJA_BOY, 6, 8, 0, 3, DIR_SOUTH @@ -565,7 +559,7 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24C594:: @ 824C594 createvobject EVENT_OBJ_GFX_WOMAN_5, 31, 8, 2, 3, 1 return -BattleFrontier_BattleDomeBattleRoom_EventScript_24C652:: @ 824C652 +BattleFrontier_BattleDomeBattleRoom_EventScript_AddFinalAudience:: @ 824C652 createvobject EVENT_OBJ_GFX_NINJA_BOY, 0, 2, 0, 3, DIR_SOUTH createvobject EVENT_OBJ_GFX_SCIENTIST_1, 1, 3, 0, 3, DIR_SOUTH createvobject EVENT_OBJ_GFX_BEAUTY, 2, 15, 0, 3, DIR_SOUTH @@ -604,23 +598,23 @@ BattleFrontier_BattleDomeBattleRoom_Movement_SetInvisible: @ 824C773 set_invisible step_end -BattleFrontier_BattleDomeBattleRoom_Movement_24C775: @ 824C775 +BattleFrontier_BattleDomeBattleRoom_Movement_PlayerEnter: @ 824C775 set_visible delay_16 walk_up walk_up walk_up walk_right - -BattleFrontier_BattleDomeBattleRoom_Movement_24C77B: @ 824C77B +BattleFrontier_BattleDomeBattleRoom_Movement_PlayerStepForward: @ 824C77B walk_right step_end -BattleFrontier_BattleDomeBattleRoom_Movement_24C77D: @ 824C77D +BattleFrontier_BattleDomeBattleRoom_Movement_PlayerApproachAudience: @ 824C77D walk_up step_end -BattleFrontier_BattleDomeBattleRoom_Movement_24C77F: @ 824C77F +@ Identical to Movement_PlayerEnter +BattleFrontier_BattleDomeBattleRoom_Movement_PlayerEnterForTucker: @ 824C77F set_visible delay_16 walk_up @@ -630,20 +624,20 @@ BattleFrontier_BattleDomeBattleRoom_Movement_24C77F: @ 824C77F walk_right step_end -BattleFrontier_BattleDomeBattleRoom_Movement_24C787: @ 824C787 +BattleFrontier_BattleDomeBattleRoom_Movement_PlayerStepForward2: @ 824C787 walk_right step_end -BattleFrontier_BattleDomeBattleRoom_Movement_24C789: @ 824C789 +BattleFrontier_BattleDomeBattleRoom_Movement_OpponentStepForward: @ 824C789 walk_left step_end -BattleFrontier_BattleDomeBattleRoom_Movement_24C78B: @ 824C78B +BattleFrontier_BattleDomeBattleRoom_Movement_SetInvisibleFacingUp: @ 824C78B face_up set_invisible step_end -BattleFrontier_BattleDomeBattleRoom_Movement_24C78E: @ 824C78E +BattleFrontier_BattleDomeBattleRoom_Movement_TuckerEnterAndDance: @ 824C78E set_visible walk_up walk_up @@ -752,7 +746,7 @@ BattleFrontier_BattleDomeBattleRoom_Movement_24C78E: @ 824C78E walk_left step_end -BattleFrontier_BattleDomeBattleRoom_Movement_24C7F9: @ 824C7F9 +BattleFrontier_BattleDomeBattleRoom_Movement_RefereeMoveForTuckerEntrance: @ 824C7F9 delay_16 delay_16 walk_left @@ -802,16 +796,16 @@ BattleFrontier_BattleDomeBattleRoom_Movement_24C7F9: @ 824C7F9 walk_in_place_fastest_down step_end -BattleFrontier_BattleDomeBattleRoom_Movement_24C829: @ 824C829 +BattleFrontier_BattleDomeBattleRoom_Movement_TuckerStepForward: @ 824C829 walk_left step_end -BattleFrontier_BattleDomeBattleRoom_Movement_24C82B: @ 824C82B +BattleFrontier_BattleDomeBattleRoom_Movement_TuckerApproachPlayer: @ 824C82B walk_left walk_left step_end -BattleFrontier_BattleDomeBattleRoom_EventScript_24C82E:: @ 824C82E +BattleFrontier_BattleDomeBattleRoom_EventScript_AudienceLookAround:: @ 824C82E turnvobject 0, DIR_EAST turnvobject 2, DIR_EAST turnvobject 4, DIR_EAST @@ -880,21 +874,21 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24C82E:: @ 824C82E delay 20 return -BattleFrontier_BattleDomeBattleRoom_EventScript_24C8F5:: @ 824C8F5 -BattleFrontier_BattleDomePreBattleRoom_EventScript_24C8F5:: @ 824C8F5 +BattleFrontier_BattleDomeBattleRoom_EventScript_WarpToLobby:: @ 824C8F5 copyvar VAR_RESULT, VAR_FRONTIER_BATTLE_MODE compare VAR_RESULT, FRONTIER_MODE_DOUBLES - goto_if_eq BattleFrontier_BattleDomePreBattleRoom_EventScript_24C90F + goto_if_eq BattleFrontier_BattleDomePreBattleRoom_EventScript_WarpToLobbyDoubles warp MAP_BATTLE_FRONTIER_BATTLE_DOME_LOBBY, 255, 5, 11 waitstate end -BattleFrontier_BattleDomePreBattleRoom_EventScript_24C90F:: @ 824C90F +BattleFrontier_BattleDomePreBattleRoom_EventScript_WarpToLobbyDoubles:: @ 824C90F warp MAP_BATTLE_FRONTIER_BATTLE_DOME_LOBBY, 255, 17, 11 waitstate end -BattleFrontier_BattleDomeBattleRoom_EventScript_24C919:: @ 824C919 +@ On round 1 there's a 50% chance that a specific audience member will walk to his seat +BattleFrontier_BattleDomeBattleRoom_EventScript_SetWalkingAudienceMemberPos:: @ 824C919 random 2 copyvar VAR_TEMP_D, VAR_RESULT compare VAR_TEMP_D, 0 @@ -903,13 +897,13 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24C919:: @ 824C919 setobjectmovementtype 6, MOVEMENT_TYPE_FACE_RIGHT return -BattleFrontier_BattleDomeBattleRoom_EventScript_24C938:: @ 824C938 +BattleFrontier_BattleDomeBattleRoom_EventScript_TryDoAudienceMemberWalkToSeat:: @ 824C938 compare VAR_TEMP_D, 0 goto_if_eq Common_EventScript_NopReturn - applymovement 6, BattleFrontier_BattleDomeBattleRoom_Movement_24C95E + applymovement 6, BattleFrontier_BattleDomeBattleRoom_Movement_AudienceMemberWalkToSeat return -BattleFrontier_BattleDomeBattleRoom_Movement_24C94B: @ 824C94B +BattleFrontier_BattleDomeBattleRoom_Movement_AudienceTwinJump: @ 824C94B delay_16 delay_16 delay_16 @@ -930,7 +924,7 @@ BattleFrontier_BattleDomeBattleRoom_Movement_24C94B: @ 824C94B enable_jump_landing_ground_effect step_end -BattleFrontier_BattleDomeBattleRoom_Movement_24C95E: @ 824C95E +BattleFrontier_BattleDomeBattleRoom_Movement_AudienceMemberWalkToSeat: @ 824C95E walk_down walk_down walk_right @@ -938,52 +932,52 @@ BattleFrontier_BattleDomeBattleRoom_Movement_24C95E: @ 824C95E walk_in_place_fastest_down step_end -BattleFrontier_BattleDomeBattleRoom_Movement_24C964: @ 824C964 +BattleFrontier_BattleDomeBattleRoom_Movement_TieRefereeEnter: @ 824C964 walk_right walk_right walk_right walk_right step_end -BattleFrontier_BattleDomeBattleRoom_Movement_24C969: @ 824C969 +BattleFrontier_BattleDomeBattleRoom_Movement_RefereeFaceLeft: @ 824C969 walk_in_place_fastest_left step_end -BattleFrontier_BattleDomeBattleRoom_Movement_24C96B: @ 824C96B +BattleFrontier_BattleDomeBattleRoom_Movement_TieRefereeExit: @ 824C96B walk_left walk_left walk_left walk_left step_end -BattleFrontier_BattleDomeBattleRoom_Text_24C970: @ 824C970 +BattleFrontier_BattleDomeBattleRoom_Text_PlayerHasEnteredDome: @ 824C970 .string "{PLAYER} has entered the BATTLE DOME!$" -BattleFrontier_BattleDomeBattleRoom_Text_24C990: @ 824C990 +BattleFrontier_BattleDomeBattleRoom_Text_PlayerVersusTrainer: @ 824C990 .string "{STR_VAR_1}\n" .string "match!\p" .string "{PLAYER} versus {STR_VAR_2}!\p" .string "Let the battle begin!$" -BattleFrontier_BattleDomeBattleRoom_Text_24C9BE: @ 824C9BE +BattleFrontier_BattleDomeBattleRoom_Text_PlayerIsWinner: @ 824C9BE .string "{PLAYER} is the winner!\n" .string "Congratulations!$" -BattleFrontier_BattleDomeBattleRoom_Text_24C9E1: @ 824C9E1 +BattleFrontier_BattleDomeBattleRoom_Text_TrainerIsWinner: @ 824C9E1 .string "{STR_VAR_2} is the winner!\n" .string "Congratulations!$" -BattleFrontier_BattleDomeBattleRoom_Text_24CA04: @ 824CA04 +BattleFrontier_BattleDomeBattleRoom_Text_PlayerIsLv50Champ: @ 824CA04 .string "{PLAYER} is the Level 50\n" .string "Battle Tournament Champion!\p" .string "Congratulations!$" -BattleFrontier_BattleDomeBattleRoom_Text_24CA44: @ 824CA44 +BattleFrontier_BattleDomeBattleRoom_Text_PlayerIsLvOpenChamp: @ 824CA44 .string "{PLAYER} is the Open Level\n" .string "Battle Tournament Champion!\p" .string "Congratulations!$" -BattleFrontier_BattleDomeBattleRoom_Text_24CA86: @ 824CA86 +BattleFrontier_BattleDomeBattleRoom_Text_RefereeDecisionPleaseWait: @ 824CA86 .string "What an unbelievable finish!\n" .string "We have a double knockout!\p" .string "In this event, the Battle Tournament\n" @@ -991,7 +985,7 @@ BattleFrontier_BattleDomeBattleRoom_Text_24CA86: @ 824CA86 .string "Please wait while the judging\n" .string "is under way.$" -BattleFrontier_BattleDomeBattleRoom_Text_24CB34: @ 824CB34 +BattleFrontier_BattleDomeBattleRoom_Text_RefereesDecidedWinnerTrainer: @ 824CB34 .string "The REFEREES have reached\n" .string "a decision!\p" .string "The winner is…\n" @@ -999,7 +993,7 @@ BattleFrontier_BattleDomeBattleRoom_Text_24CB34: @ 824CB34 .string "The winner is {STR_VAR_1}!\l" .string "Congratulations!$" -BattleFrontier_BattleDomeBattleRoom_Text_24CB9D: @ 824CB9D +BattleFrontier_BattleDomeBattleRoom_Text_RefereesDecidedWinnerPlayer: @ 824CB9D .string "The REFEREES have reached\n" .string "a decision!\p" .string "The winner is…\n" @@ -1007,85 +1001,85 @@ BattleFrontier_BattleDomeBattleRoom_Text_24CB9D: @ 824CB9D .string "The winner is {PLAYER}!\l" .string "Congratulations!$" -BattleFrontier_BattleDomeBattleRoom_Text_24CC06: @ 824CC06 +BattleFrontier_BattleDomeBattleRoom_Text_BrightNewHope: @ 824CC06 .string "The bright new hope!\p" .string "$" -BattleFrontier_BattleDomeBattleRoom_Text_24CC1C: @ 824CC1C +BattleFrontier_BattleDomeBattleRoom_Text_RisingStar: @ 824CC1C .string "The rising star!\p" .string "$" -BattleFrontier_BattleDomeBattleRoom_Text_24CC2E: @ 824CC2E +BattleFrontier_BattleDomeBattleRoom_Text_WillTheyRaceToChampionship: @ 824CC2E .string "Will this TRAINER race to\n" .string "the championship?\p" .string "$" -BattleFrontier_BattleDomeBattleRoom_Text_24CC5B: @ 824CC5B +BattleFrontier_BattleDomeBattleRoom_Text_CanAchieveChampionFirstTry: @ 824CC5B .string "Can the feat of a championship\n" .string "on the first try be achieved?\p" .string "$" -BattleFrontier_BattleDomeBattleRoom_Text_24CC99: @ 824CC99 +BattleFrontier_BattleDomeBattleRoom_Text_CanLossBeAvenged: @ 824CC99 .string "Can the loss of the last match\n" .string "be avenged?\p" .string "$" -BattleFrontier_BattleDomeBattleRoom_Text_24CCC5: @ 824CCC5 +BattleFrontier_BattleDomeBattleRoom_Text_OnFireForChampionship: @ 824CCC5 .string "The TRAINER is on fire for\n" .string "the first championship try!\p" .string "$" -BattleFrontier_BattleDomeBattleRoom_Text_24CCFD: @ 824CCFD +BattleFrontier_BattleDomeBattleRoom_Text_WinHereAdvancesToFinal: @ 824CCFD .string "A win here means this TRAINER\n" .string "advances to the final!\p" .string "$" -BattleFrontier_BattleDomeBattleRoom_Text_24CD33: @ 824CD33 +BattleFrontier_BattleDomeBattleRoom_Text_WillLongHeldDreamComeTrue: @ 824CD33 .string "Will the long-held dream of\n" .string "a championship finally come true?\p" .string "$" -BattleFrontier_BattleDomeBattleRoom_Text_24CD72: @ 824CD72 +BattleFrontier_BattleDomeBattleRoom_Text_TheInvincibleChampion: @ 824CD72 .string "The invincible champion!\p" .string "$" -BattleFrontier_BattleDomeBattleRoom_Text_24CD8C: @ 824CD8C +BattleFrontier_BattleDomeBattleRoom_Text_CanAnyoneHopeToBeatTrainer: @ 824CD8C .string "Can anyone hope to beat this\n" .string "TRAINER?\p" .string "$" -BattleFrontier_BattleDomeBattleRoom_Text_24CDB3: @ 824CDB3 +BattleFrontier_BattleDomeBattleRoom_Text_DoBattlesExistSolelyForTrainer: @ 824CDB3 .string "Do battles exist solely for\n" .string "this TRAINER?\p" .string "$" -BattleFrontier_BattleDomeBattleRoom_Text_24CDDE: @ 824CDDE +BattleFrontier_BattleDomeBattleRoom_Text_CurrentChampAimingToRetainTitle: @ 824CDDE .string "The current champion aiming to\n" .string "retain the title!\p" .string "$" -BattleFrontier_BattleDomeBattleRoom_Text_24CE10: @ 824CE10 +BattleFrontier_BattleDomeBattleRoom_Text_FormerChampHasReturned: @ 824CE10 .string "The former champion has returned!\p" .string "$" -BattleFrontier_BattleDomeBattleRoom_Text_24CE33: @ 824CE33 +BattleFrontier_BattleDomeBattleRoom_Text_FormerToughnessReturned: @ 824CE33 .string "The former toughness has returned!\p" .string "$" -BattleFrontier_BattleDomeBattleRoom_Text_24CE57: @ 824CE57 +BattleFrontier_BattleDomeBattleRoom_Text_WillDoExpectedAdvanceToFinals: @ 824CE57 .string "Will this TRAINER do as expected\n" .string "and advance to the finals?\p" .string "$" -BattleFrontier_BattleDomeBattleRoom_Text_24CE94: @ 824CE94 +BattleFrontier_BattleDomeBattleRoom_Text_WillFormerChampRegainGlory: @ 824CE94 .string "Will the former champ regain\n" .string "lost glory?\p" .string "$" -BattleFrontier_BattleDomeBattleRoom_Text_24CEBE: @ 824CEBE +BattleFrontier_BattleDomeBattleRoom_Text_FeelGlowOfTrueMaster: @ 824CEBE .string "Feel the glow of a true master!$" -BattleFrontier_BattleDomeBattleRoom_Text_24CEDE: @ 824CEDE +BattleFrontier_BattleDomeBattleRoom_Text_MakeWayForDomeAceTucker: @ 824CEDE .string "And now… The TRAINER standing in\n" .string "{PLAYER}'s record-setting path…\p" .string "Yes! The one and only!\n" @@ -1093,11 +1087,11 @@ BattleFrontier_BattleDomeBattleRoom_Text_24CEDE: @ 824CEDE .string "Our very own DOME ACE!\l" .string "Make way for TUCKER!$" -BattleFrontier_BattleDomeBattleRoom_Text_24CF7A: @ 824CF7A +BattleFrontier_BattleDomeBattleRoom_Text_SpectatorTuckerChant: @ 824CF7A .string "Spectators: TUCKER! TUCKER!\n" .string "TUCKER! TUCKER! TUCKER!$" -BattleFrontier_BattleDomeBattleRoom_Text_24CFAE: @ 824CFAE +BattleFrontier_BattleDomeBattleRoom_Text_TuckerSilverIntro: @ 824CFAE .string "TUCKER: Ahahah!\p" .string "Do you hear it? This crowd!\n" .string "They're all itching to see our match!\p" @@ -1109,37 +1103,37 @@ BattleFrontier_BattleDomeBattleRoom_Text_24CFAE: @ 824CFAE .string "I, TUCKER the DOME ACE, will bathe you\l" .string "in my brilliant glow!$" -BattleFrontier_BattleDomeBattleRoom_Text_24D0D9: @ 824D0D9 +BattleFrontier_BattleDomeBattleRoom_Text_LetsSeeYourStrategy: @ 824D0D9 .string "Your strategy!\n" .string "Let's see it!$" -BattleFrontier_BattleDomeBattleRoom_Text_24D0F6: @ 824D0F6 +BattleFrontier_BattleDomeBattleRoom_Text_IncredibleVictorIsPlayer: @ 824D0F6 .string "Unbelievable! It's incredible!\n" .string "The victor is {PLAYER}!$" -BattleFrontier_BattleDomeBattleRoom_Text_24D127: @ 824D127 +BattleFrontier_BattleDomeBattleRoom_Text_WinnerIsTucker: @ 824D127 .string "The winner is TUCKER!\n" .string "The DOME ACE has prevailed!\p" .string "Congratulations, TUCKER!$" -BattleFrontier_BattleDomeBattleRoom_Text_24D172: @ 824D172 +BattleFrontier_BattleDomeBattleRoom_Text_SeeYourFrontierPass: @ 824D172 .string "TUCKER: Rules are rules!\n" .string "Let me see your FRONTIER PASS.$" -BattleFrontier_BattleDomeBattleRoom_Text_24D1AA: @ 824D1AA +BattleFrontier_BattleDomeBattleRoom_Text_ReceivedTacticsSymbol: @ 824D1AA .string "The Tactics Symbol was embossed on\n" .string "the FRONTIER PASS!$" -BattleFrontier_BattleDomeBattleRoom_Text_24D1E0: @ 824D1E0 +BattleFrontier_BattleDomeBattleRoom_Text_WontUnderestimateYouNextTime: @ 824D1E0 .string "… … … … … …\p" .string "I sorely underestimated you. I won't\n" .string "make the same mistake next time…$" -BattleFrontier_BattleDomeBattleRoom_Text_24D232: @ 824D232 +BattleFrontier_BattleDomeBattleRoom_Text_CanWinStreakBeStretched: @ 824D232 .string "Can the win streak be stretched?\n" .string "The confidence is there!$" -BattleFrontier_BattleDomeBattleRoom_Text_24D26C: @ 824D26C +BattleFrontier_BattleDomeBattleRoom_Text_LegendHasReturnedDomeAceTucker: @ 824D26C .string "Ladies and gentlemen!\n" .string "Boys, girls, and POKéMON!\p" .string "Finally!\n" @@ -1148,7 +1142,7 @@ BattleFrontier_BattleDomeBattleRoom_Text_24D26C: @ 824D26C .string "Our very own DOME ACE!\l" .string "It's none other than TUCKER!$" -BattleFrontier_BattleDomeBattleRoom_Text_24D319: @ 824D319 +BattleFrontier_BattleDomeBattleRoom_Text_TuckerGoldIntro: @ 824D319 .string "TUCKER: Ah…\n" .string "The pummeling roar of the crowd…\l" .string "Their furnace-like heat of excitement…\l" @@ -1160,22 +1154,22 @@ BattleFrontier_BattleDomeBattleRoom_Text_24D319: @ 824D319 .string "Brighter and more brilliant!\l" .string "I must light all that gather here!$" -BattleFrontier_BattleDomeBattleRoom_Text_24D43E: @ 824D43E +BattleFrontier_BattleDomeBattleRoom_Text_UnleashAllPowerIPossess: @ 824D43E .string "I will unleash all the power that\n" .string "I possess! Right here and now!$" -BattleFrontier_BattleDomeBattleRoom_Text_24D47F: @ 824D47F +BattleFrontier_BattleDomeBattleRoom_Text_NeverLostWhenPowerUnleashed: @ 824D47F .string "TUCKER: You're genuinely fantastic!\p" .string "Never before! I haven't ever lost in the\n" .string "times I've had to unleash my power.\p" .string "Yes, quite fantastic!\n" .string "Your FRONTIER PASS, please?$" -BattleFrontier_BattleDomeBattleRoom_Text_24D522: @ 824D522 +BattleFrontier_BattleDomeBattleRoom_Text_TacticsSymbolTookGoldenShine: @ 824D522 .string "The Tactics Symbol took on\n" .string "a golden shine!$" -BattleFrontier_BattleDomeBattleRoom_Text_24D54D: @ 824D54D +BattleFrontier_BattleDomeBattleRoom_Text_LookForwardToNextEncounter: @ 824D54D .string "You're strong, but above all,\n" .string "you have a unique charm!\p" .string "In you, I see a definite potential for\n" @@ -1183,22 +1177,24 @@ BattleFrontier_BattleDomeBattleRoom_Text_24D54D: @ 824D54D .string "I will very much look forward to\n" .string "our next encounter!$" -BattleFrontier_BattleDomeBattleRoom_Text_24D5F5: @ 824D5F5 +@ Unused +BattleFrontier_BattleDomeBattleRoom_Text_PlayerIsLv50Champ2: @ 824D5F5 .string "{PLAYER} is the Level 50\n" .string "Battle Tournament Champion!\p" .string "Congratulations!$" -BattleFrontier_BattleDomeBattleRoom_Text_24D635: @ 824D635 +@ Unused +BattleFrontier_BattleDomeBattleRoom_Text_PlayerIsLvOpenChamp2: @ 824D635 .string "{PLAYER} is the Open Level\n" .string "Battle Tournament Champion!\p" .string "Congratulations!$" -BattleFrontier_BattleDomeBattleRoom_Text_24D677: @ 824D677 +BattleFrontier_BattleDomeBattleRoom_Text_PlayerVersusTucker: @ 824D677 .string "The final match!\p" .string "{PLAYER} versus the DOME ACE, TUCKER!\p" .string "Let the battle begin!$" -BattleFrontier_BattleDomeBattleRoom_Text_24D6BE: @ 824D6BE +BattleFrontier_BattleDomeBattleRoom_Text_RefereesDecidedWinnerTucker: @ 824D6BE .string "The REFEREES have reached\n" .string "a decision!\p" .string "The winner is…\n" diff --git a/data/maps/BattleFrontier_BattleDomeCorridor/scripts.inc b/data/maps/BattleFrontier_BattleDomeCorridor/scripts.inc index 92be8bc3e..be8071c8c 100644 --- a/data/maps/BattleFrontier_BattleDomeCorridor/scripts.inc +++ b/data/maps/BattleFrontier_BattleDomeCorridor/scripts.inc @@ -1,48 +1,48 @@ BattleFrontier_BattleDomeCorridor_MapScripts:: @ 824B0FE - map_script MAP_SCRIPT_ON_FRAME_TABLE, BattleFrontier_BattleDomeCorridor_MapScript2_24B104 + map_script MAP_SCRIPT_ON_FRAME_TABLE, BattleFrontier_BattleDomeCorridor_OnFrame .byte 0 -BattleFrontier_BattleDomeCorridor_MapScript2_24B104: @ 824B104 - map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattleDomeCorridor_EventScript_24B10E +BattleFrontier_BattleDomeCorridor_OnFrame: @ 824B104 + map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattleDomeCorridor_EventScript_EnterCorridor .2byte 0 -BattleFrontier_BattleDomeCorridor_EventScript_24B10E:: @ 824B10E +BattleFrontier_BattleDomeCorridor_EventScript_EnterCorridor:: @ 824B10E delay 16 setvar VAR_TEMP_0, 1 frontier_get FRONTIER_DATA_LVL_MODE compare VAR_RESULT, FRONTIER_LVL_OPEN - goto_if_eq BattleFrontier_BattleDomeCorridor_EventScript_24B161 - applymovement 1, BattleFrontier_BattleDomeCorridor_Movement_24B1B2 - applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleDomeCorridor_Movement_24B1A1 + goto_if_eq BattleFrontier_BattleDomeCorridor_EventScript_WalkToBattleRoomLvOpen + applymovement 1, BattleFrontier_BattleDomeCorridor_Movement_AttendantWalkToDoorLv50 + applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleDomeCorridor_Movement_PlayerWalkToDoorLv50 waitmovement 0 opendoor 13, 3 waitdooranim - applymovement 1, BattleFrontier_BattleDomeCorridor_Movement_24B1BE - applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleDomeCorridor_Movement_24B1AE + applymovement 1, BattleFrontier_BattleDomeCorridor_Movement_AttendantEnterDoorLv50 + applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleDomeCorridor_Movement_PlayerEnterDoorLv50 waitmovement 0 closedoor 13, 3 waitdooranim - goto BattleFrontier_BattleDomeCorridor_EventScript_24B18F + goto BattleFrontier_BattleDomeCorridor_EventScript_WarpToPreBattleRoom -BattleFrontier_BattleDomeCorridor_EventScript_24B161:: @ 824B161 - applymovement 1, BattleFrontier_BattleDomeCorridor_Movement_24B1D6 - applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleDomeCorridor_Movement_24B1C1 +BattleFrontier_BattleDomeCorridor_EventScript_WalkToBattleRoomLvOpen:: @ 824B161 + applymovement 1, BattleFrontier_BattleDomeCorridor_Movement_AttendantWalkToDoorLvOpen + applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleDomeCorridor_Movement_PlayerWalkToDoorLvOpen waitmovement 0 opendoor 37, 3 waitdooranim - applymovement 1, BattleFrontier_BattleDomeCorridor_Movement_24B1E6 - applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleDomeCorridor_Movement_24B1D2 + applymovement 1, BattleFrontier_BattleDomeCorridor_Movement_AttendantEnterDoorLvOpen + applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleDomeCorridor_Movement_PlayerEnterDoorLvOpen waitmovement 0 closedoor 37, 3 waitdooranim -BattleFrontier_BattleDomeCorridor_EventScript_24B18F:: @ 824B18F +BattleFrontier_BattleDomeCorridor_EventScript_WarpToPreBattleRoom:: @ 824B18F waitmovement 0 setvar VAR_0x8006, 0 warp MAP_BATTLE_FRONTIER_BATTLE_DOME_PRE_BATTLE_ROOM, 255, 5, 7 waitstate end -BattleFrontier_BattleDomeCorridor_Movement_24B1A1: @ 824B1A1 +BattleFrontier_BattleDomeCorridor_Movement_PlayerWalkToDoorLv50: @ 824B1A1 walk_up walk_left walk_left @@ -57,13 +57,13 @@ BattleFrontier_BattleDomeCorridor_Movement_24B1A1: @ 824B1A1 walk_in_place_fastest_up step_end -BattleFrontier_BattleDomeCorridor_Movement_24B1AE: @ 824B1AE +BattleFrontier_BattleDomeCorridor_Movement_PlayerEnterDoorLv50: @ 824B1AE walk_up walk_up set_invisible step_end -BattleFrontier_BattleDomeCorridor_Movement_24B1B2: @ 824B1B2 +BattleFrontier_BattleDomeCorridor_Movement_AttendantWalkToDoorLv50: @ 824B1B2 walk_left walk_left walk_left @@ -77,12 +77,12 @@ BattleFrontier_BattleDomeCorridor_Movement_24B1B2: @ 824B1B2 walk_up step_end -BattleFrontier_BattleDomeCorridor_Movement_24B1BE: @ 824B1BE +BattleFrontier_BattleDomeCorridor_Movement_AttendantEnterDoorLv50: @ 824B1BE walk_up set_invisible step_end -BattleFrontier_BattleDomeCorridor_Movement_24B1C1: @ 824B1C1 +BattleFrontier_BattleDomeCorridor_Movement_PlayerWalkToDoorLvOpen: @ 824B1C1 walk_up walk_right walk_right @@ -101,13 +101,13 @@ BattleFrontier_BattleDomeCorridor_Movement_24B1C1: @ 824B1C1 walk_in_place_fastest_up step_end -BattleFrontier_BattleDomeCorridor_Movement_24B1D2: @ 824B1D2 +BattleFrontier_BattleDomeCorridor_Movement_PlayerEnterDoorLvOpen: @ 824B1D2 walk_up walk_up set_invisible step_end -BattleFrontier_BattleDomeCorridor_Movement_24B1D6: @ 824B1D6 +BattleFrontier_BattleDomeCorridor_Movement_AttendantWalkToDoorLvOpen: @ 824B1D6 walk_right walk_right walk_right @@ -125,12 +125,13 @@ BattleFrontier_BattleDomeCorridor_Movement_24B1D6: @ 824B1D6 walk_up step_end -BattleFrontier_BattleDomeCorridor_Movement_24B1E6: @ 824B1E6 +BattleFrontier_BattleDomeCorridor_Movement_AttendantEnterDoorLvOpen: @ 824B1E6 walk_up set_invisible step_end -BattleFrontier_BattleDomeCorridor_Movement_24B1E9: @ 824B1E9 +@ Unused +BattleFrontier_BattleDomeCorridor_Movement_WalkToBattleRoomMidRight: @ 824B1E9 walk_up walk_right walk_right diff --git a/data/maps/BattleFrontier_BattleDomeLobby/map.json b/data/maps/BattleFrontier_BattleDomeLobby/map.json index 89eeb60e4..f39fee696 100644 --- a/data/maps/BattleFrontier_BattleDomeLobby/map.json +++ b/data/maps/BattleFrontier_BattleDomeLobby/map.json @@ -24,7 +24,7 @@ "movement_range_y": 1, "trainer_type": "0", "trainer_sight_or_berry_tree_id": "0", - "script": "BattleFrontier_BattleDomeLobby_EventScript_249A35", + "script": "BattleFrontier_BattleDomeLobby_EventScript_SinglesAttendant", "flag": "0" }, { @@ -37,7 +37,7 @@ "movement_range_y": 1, "trainer_type": "0", "trainer_sight_or_berry_tree_id": "0", - "script": "BattleFrontier_BattleDomeLobby_EventScript_249E10", + "script": "BattleFrontier_BattleDomeLobby_EventScript_Man", "flag": "0" }, { @@ -50,7 +50,7 @@ "movement_range_y": 1, "trainer_type": "0", "trainer_sight_or_berry_tree_id": "0", - "script": "BattleFrontier_BattleDomeLobby_EventScript_249DFE", + "script": "BattleFrontier_BattleDomeLobby_EventScript_Lass", "flag": "0" }, { @@ -63,7 +63,7 @@ "movement_range_y": 1, "trainer_type": "0", "trainer_sight_or_berry_tree_id": "0", - "script": "BattleFrontier_BattleDomeLobby_EventScript_249E07", + "script": "BattleFrontier_BattleDomeLobby_EventScript_FatMan", "flag": "0" }, { @@ -76,7 +76,7 @@ "movement_range_y": 1, "trainer_type": "0", "trainer_sight_or_berry_tree_id": "0", - "script": "BattleFrontier_BattleDomeLobby_EventScript_249DED", + "script": "BattleFrontier_BattleDomeLobby_EventScript_Maniac", "flag": "0" }, { @@ -89,7 +89,7 @@ "movement_range_y": 1, "trainer_type": "0", "trainer_sight_or_berry_tree_id": "0", - "script": "BattleFrontier_BattleDomeLobby_EventScript_249A47", + "script": "BattleFrontier_BattleDomeLobby_EventScript_DoublesAttendant", "flag": "0" } ], @@ -117,7 +117,7 @@ "y": 10, "elevation": 0, "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", - "script": "BattleFrontier_BattleDomeLobby_EventScript_249D52" + "script": "BattleFrontier_BattleDomeLobby_EventScript_ShowSinglesResults" }, { "type": "sign", @@ -125,7 +125,7 @@ "y": 10, "elevation": 0, "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", - "script": "BattleFrontier_BattleDomeLobby_EventScript_249D84" + "script": "BattleFrontier_BattleDomeLobby_EventScript_ShowLastTourneyTree" }, { "type": "sign", @@ -133,7 +133,7 @@ "y": 10, "elevation": 0, "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", - "script": "BattleFrontier_BattleDomeLobby_EventScript_249D6B" + "script": "BattleFrontier_BattleDomeLobby_EventScript_ShowDoublesResults" }, { "type": "sign", @@ -141,7 +141,7 @@ "y": 10, "elevation": 0, "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", - "script": "BattleFrontier_BattleDomeLobby_EventScript_249E34" + "script": "BattleFrontier_BattleDomeLobby_EventScript_RulesBoard" } ] }
\ No newline at end of file diff --git a/data/maps/BattleFrontier_BattleDomeLobby/scripts.inc b/data/maps/BattleFrontier_BattleDomeLobby/scripts.inc index b4d0b3871..5428c1e8f 100644 --- a/data/maps/BattleFrontier_BattleDomeLobby/scripts.inc +++ b/data/maps/BattleFrontier_BattleDomeLobby/scripts.inc @@ -1,171 +1,168 @@ BattleFrontier_BattleDomeLobby_MapScripts:: @ 82497E2 - map_script MAP_SCRIPT_ON_RESUME, BattleFrontier_BattleDomeLobby_MapScript1_2497F2 - map_script MAP_SCRIPT_ON_FRAME_TABLE, BattleFrontier_BattleDomeLobby_MapScript2_24980F + map_script MAP_SCRIPT_ON_RESUME, BattleFrontier_BattleDomeLobby_OnResume + map_script MAP_SCRIPT_ON_FRAME_TABLE, BattleFrontier_BattleDomeLobby_OnFrame map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, BattleFrontier_BattleDomeLobby_OnWarp .byte 0 -BattleFrontier_BattleDomeLobby_MapScript1_2497F2: @ 82497F2 - dome_21 +BattleFrontier_BattleDomeLobby_OnResume: @ 82497F2 + dome_initresultstree end BattleFrontier_BattleDomeLobby_OnWarp: @ 82497FB - map_script_2 VAR_TEMP_1, 0, BattleFrontier_BattleDomeLobby_EventScript_249805 + map_script_2 VAR_TEMP_1, 0, BattleFrontier_BattleDomeLobby_EventScript_TurnPlayerNorth .2byte 0 -BattleFrontier_BattleDomeLobby_EventScript_249805:: @ 8249805 +BattleFrontier_BattleDomeLobby_EventScript_TurnPlayerNorth:: @ 8249805 setvar VAR_TEMP_1, 1 turnobject EVENT_OBJ_ID_PLAYER, DIR_NORTH end -BattleFrontier_BattleDomeLobby_MapScript2_24980F: @ 824980F - map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattleDomeLobby_EventScript_249839 - map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_SAVING, BattleFrontier_BattleDomeLobby_EventScript_249842 - map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_PAUSED, BattleFrontier_BattleDomeLobby_EventScript_2499F9 - map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_WON, BattleFrontier_BattleDomeLobby_EventScript_24989B - map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_LOST, BattleFrontier_BattleDomeLobby_EventScript_249940 +BattleFrontier_BattleDomeLobby_OnFrame: @ 824980F + map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattleDomeLobby_EventScript_GetChallengeStatus + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_SAVING, BattleFrontier_BattleDomeLobby_EventScript_QuitWithoutSaving + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_PAUSED, BattleFrontier_BattleDomeLobby_EventScript_ResumeChallenge + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_WON, BattleFrontier_BattleDomeLobby_EventScript_WonChallenge + map_script_2 VAR_TEMP_0, CHALLENGE_STATUS_LOST, BattleFrontier_BattleDomeLobby_EventScript_LostChallenge .2byte 0 -BattleFrontier_BattleDomeLobby_EventScript_249839:: @ 8249839 +BattleFrontier_BattleDomeLobby_EventScript_GetChallengeStatus:: @ 8249839 frontier_getstatus end -BattleFrontier_BattleDomeLobby_EventScript_249842:: @ 8249842 +BattleFrontier_BattleDomeLobby_EventScript_QuitWithoutSaving:: @ 8249842 lockall - msgbox BattleFrontier_BattleDomeLobby_Text_24A45F, MSGBOX_DEFAULT + msgbox BattleFrontier_BattleDomeLobby_Text_DidntSaveBeforeQuitting, MSGBOX_DEFAULT closemessage dome_set DOME_DATA_WIN_STREAK, 0 dome_set DOME_DATA_WIN_STREAK_ACTIVE, FALSE - dome_set DOME_DATA_6, 1 + dome_set DOME_DATA_ATTEMPTED_CHALLENGE, TRUE frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 setvar VAR_TEMP_0, 255 releaseall end -BattleFrontier_BattleDomeLobby_EventScript_24989B:: @ 824989B +BattleFrontier_BattleDomeLobby_EventScript_WonChallenge:: @ 824989B call BattleFrontier_EventScript_IncrementWinStreak lockall frontier_isbrain compare VAR_RESULT, TRUE - goto_if_eq BattleFrontier_BattleDomeLobby_EventScript_2498C1 - msgbox BattleFrontier_BattleDomeLobby_Text_24A4E9, MSGBOX_DEFAULT - goto BattleFrontier_BattleDomeLobby_EventScript_2498C9 - -BattleFrontier_BattleDomeLobby_EventScript_2498C1:: @ 82498C1 - msgbox BattleFrontier_BattleDomeLobby_Text_24AD67, MSGBOX_DEFAULT - -BattleFrontier_BattleDomeLobby_EventScript_2498C9:: @ 82498C9 - msgbox BattleFrontier_BattleDomeLobby_Text_24ADB1, MSGBOX_DEFAULT + goto_if_eq BattleFrontier_BattleDomeLobby_EventScript_DefeatedAce + msgbox BattleFrontier_BattleDomeLobby_Text_CongratsForWinningTourney, MSGBOX_DEFAULT + goto BattleFrontier_BattleDomeLobby_EventScript_GiveBattlePoints + +BattleFrontier_BattleDomeLobby_EventScript_DefeatedAce:: @ 82498C1 + msgbox BattleFrontier_BattleDomeLobby_Text_CongratsDefeatedTucker, MSGBOX_DEFAULT +BattleFrontier_BattleDomeLobby_EventScript_GiveBattlePoints:: @ 82498C9 + msgbox BattleFrontier_BattleDomeLobby_Text_AwardTheseBattlePoints, MSGBOX_DEFAULT frontier_givepoints msgbox BattleFrontier_Text_ObtainedXBattlePoints, MSGBOX_GETPOINTS - message BattleFrontier_BattleDomeLobby_Text_24A5D6 + message BattleFrontier_BattleDomeLobby_Text_RecordWillBeSaved waitmessage special LoadPlayerParty frontier_setpartyorder FRONTIER_PARTY_SIZE frontier_checkairshow - dome_set DOME_DATA_6, 1 - dome_set DOME_DATA_7, 1 + dome_set DOME_DATA_ATTEMPTED_CHALLENGE, TRUE + dome_set DOME_DATA_HAS_WON_CHALLENGE, TRUE dome_set DOME_DATA_WIN_STREAK_ACTIVE, TRUE special LoadPlayerParty special HealPlayerParty - goto BattleFrontier_BattleDomeLobby_EventScript_249991 + goto BattleFrontier_BattleDomeLobby_EventScript_AskRecordBattle -BattleFrontier_BattleDomeLobby_EventScript_249940:: @ 8249940 +BattleFrontier_BattleDomeLobby_EventScript_LostChallenge:: @ 8249940 lockall - msgbox BattleFrontier_BattleDomeLobby_Text_24A5BF, MSGBOX_DEFAULT - message BattleFrontier_BattleDomeLobby_Text_24A5D6 + msgbox BattleFrontier_BattleDomeLobby_Text_ThankYouForPlaying, MSGBOX_DEFAULT + message BattleFrontier_BattleDomeLobby_Text_RecordWillBeSaved waitmessage special LoadPlayerParty frontier_setpartyorder FRONTIER_PARTY_SIZE frontier_checkairshow dome_set DOME_DATA_WIN_STREAK_ACTIVE, FALSE - dome_set DOME_DATA_6, 1 + dome_set DOME_DATA_ATTEMPTED_CHALLENGE, TRUE special LoadPlayerParty special HealPlayerParty - -BattleFrontier_BattleDomeLobby_EventScript_249991:: @ 8249991 +BattleFrontier_BattleDomeLobby_EventScript_AskRecordBattle:: @ 8249991 dome_save 0 playse SE_SAVE waitse call BattleFrontier_BattleDomeLobby_EventScript_23E8E0 - compare VAR_RESULT, 1 - goto_if_eq BattleFrontier_BattleDomeLobby_EventScript_2499E9 - message BattleFrontier_BattleDomeLobby_Text_24AE17 + compare VAR_RESULT, TRUE + goto_if_eq BattleFrontier_BattleDomeLobby_EventScript_EndChallenge + message BattleFrontier_BattleDomeLobby_Text_RecordLastMatch waitmessage multichoicedefault 20, 8, MULTI_YESNO, 1, 0 switch VAR_RESULT - case 1, BattleFrontier_BattleDomeLobby_EventScript_2499E9 - case 0, BattleFrontier_BattleDomeLobby_EventScript_2499E4 - case MULTI_B_PRESSED, BattleFrontier_BattleDomeLobby_EventScript_2499E9 + case 1, BattleFrontier_BattleDomeLobby_EventScript_EndChallenge + case 0, BattleFrontier_BattleDomeLobby_EventScript_RecordBattle + case MULTI_B_PRESSED, BattleFrontier_BattleDomeLobby_EventScript_EndChallenge -BattleFrontier_BattleDomeLobby_EventScript_2499E4:: @ 82499E4 +BattleFrontier_BattleDomeLobby_EventScript_RecordBattle:: @ 82499E4 call BattleFrontier_EventScript_SaveBattle -BattleFrontier_BattleDomeLobby_EventScript_2499E9:: @ 82499E9 - msgbox BattleFrontier_BattleDomeLobby_Text_249F74, MSGBOX_DEFAULT +BattleFrontier_BattleDomeLobby_EventScript_EndChallenge:: @ 82499E9 + msgbox BattleFrontier_BattleDomeLobby_Text_HopeToSeeYouAgain, MSGBOX_DEFAULT closemessage setvar VAR_TEMP_0, 255 releaseall end -BattleFrontier_BattleDomeLobby_EventScript_2499F9:: @ 82499F9 +BattleFrontier_BattleDomeLobby_EventScript_ResumeChallenge:: @ 82499F9 lockall - msgbox BattleFrontier_BattleDomeLobby_Text_24A5FE, MSGBOX_DEFAULT - message BattleFrontier_BattleDomeLobby_Text_24A61A + msgbox BattleFrontier_BattleDomeLobby_Text_WeveBeenWaitingForYou, MSGBOX_DEFAULT + message BattleFrontier_BattleDomeLobby_Text_OkayToSaveBeforeChallenge2 waitmessage dome_save CHALLENGE_STATUS_SAVING playse SE_SAVE waitse frontier_set FRONTIER_DATA_PAUSED, FALSE setvar VAR_TEMP_0, 255 - goto BattleFrontier_BattleDomeLobby_EventScript_249BC2 + goto BattleFrontier_BattleDomeLobby_EventScript_EnterChallenge -BattleFrontier_BattleDomeLobby_EventScript_249A35:: @ 8249A35 +BattleFrontier_BattleDomeLobby_EventScript_SinglesAttendant:: @ 8249A35 lock faceplayer setvar VAR_FRONTIER_FACILITY, FRONTIER_FACILITY_DOME setvar VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES - goto BattleFrontier_BattleDomeLobby_EventScript_249A59 + goto BattleFrontier_BattleDomeLobby_EventScript_AttendantWelcome end -BattleFrontier_BattleDomeLobby_EventScript_249A47:: @ 8249A47 +BattleFrontier_BattleDomeLobby_EventScript_DoublesAttendant:: @ 8249A47 lock faceplayer setvar VAR_FRONTIER_FACILITY, FRONTIER_FACILITY_DOME setvar VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES - goto BattleFrontier_BattleDomeLobby_EventScript_249A59 + goto BattleFrontier_BattleDomeLobby_EventScript_AttendantWelcome end -BattleFrontier_BattleDomeLobby_EventScript_249A59:: @ 8249A59 +BattleFrontier_BattleDomeLobby_EventScript_AttendantWelcome:: @ 8249A59 special SavePlayerParty compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES - call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249CFD + call_if_eq BattleFrontier_BattleDomeLobby_EventScript_WelcomeSingles compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES - call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249D06 - -BattleFrontier_BattleDomeLobby_EventScript_249A72:: @ 8249A72 + call_if_eq BattleFrontier_BattleDomeLobby_EventScript_WelcomeDoubles +BattleFrontier_BattleDomeLobby_EventScript_AskTakeChallenge:: @ 8249A72 compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES - call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249D0F + call_if_eq BattleFrontier_BattleDomeLobby_EventScript_TakeSinglesChallenge compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES - call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249D15 + call_if_eq BattleFrontier_BattleDomeLobby_EventScript_TakeDoublesChallenge waitmessage multichoice 17, 6, MULTI_CHALLENGEINFO, 0 switch VAR_RESULT - case 0, BattleFrontier_BattleDomeLobby_EventScript_249ABF - case 1, BattleFrontier_BattleDomeLobby_EventScript_249BFA - case 2, BattleFrontier_BattleDomeLobby_EventScript_249C64 - case MULTI_B_PRESSED, BattleFrontier_BattleDomeLobby_EventScript_249C64 + case 0, BattleFrontier_BattleDomeLobby_EventScript_TryEnterChallenge + case 1, BattleFrontier_BattleDomeLobby_EventScript_ExplainChallenge + case 2, BattleFrontier_BattleDomeLobby_EventScript_CancelChallenge + case MULTI_B_PRESSED, BattleFrontier_BattleDomeLobby_EventScript_CancelChallenge -BattleFrontier_BattleDomeLobby_EventScript_249ABF:: @ 8249ABF - message BattleFrontier_BattleDomeLobby_Text_24A210 +BattleFrontier_BattleDomeLobby_EventScript_TryEnterChallenge:: @ 8249ABF + message BattleFrontier_BattleDomeLobby_Text_WhichLevelMode waitmessage multichoice 17, 6, MULTI_LEVEL_MODE, 0 switch VAR_RESULT - case FRONTIER_LVL_TENT, BattleFrontier_BattleDomeLobby_EventScript_249C64 - case MULTI_B_PRESSED, BattleFrontier_BattleDomeLobby_EventScript_249C64 + case FRONTIER_LVL_TENT, BattleFrontier_BattleDomeLobby_EventScript_CancelChallenge + case MULTI_B_PRESSED, BattleFrontier_BattleDomeLobby_EventScript_CancelChallenge frontier_checkineligible compare VAR_0x8004, TRUE - goto_if_eq BattleFrontier_BattleDomeLobby_EventScript_249C15 + goto_if_eq BattleFrontier_BattleDomeLobby_EventScript_NotEnoughValidMons frontier_set FRONTIER_DATA_LVL_MODE, VAR_RESULT - msgbox BattleFrontier_BattleDomeLobby_Text_24A26E, MSGBOX_DEFAULT + msgbox BattleFrontier_BattleDomeLobby_Text_SelectThreeMons, MSGBOX_DEFAULT fadescreen FADE_TO_BLACK call BattleFrontier_EventScript_GetLvlMode copyvar VAR_0x8004, VAR_RESULT @@ -173,14 +170,14 @@ BattleFrontier_BattleDomeLobby_EventScript_249ABF:: @ 8249ABF special ChoosePartyForBattleFrontier waitstate compare VAR_RESULT, 0 - goto_if_eq BattleFrontier_BattleDomeLobby_EventScript_249C61 - msgbox BattleFrontier_BattleDomeLobby_Text_24A1C6, MSGBOX_YESNO + goto_if_eq BattleFrontier_BattleDomeLobby_EventScript_LoadPartyCancelChallenge + msgbox BattleFrontier_BattleDomeLobby_Text_OkayToSaveBeforeChallenge, MSGBOX_YESNO switch VAR_RESULT - case NO, BattleFrontier_BattleDomeLobby_EventScript_249C61 - case YES, BattleFrontier_BattleDomeLobby_EventScript_249B60 - case MULTI_B_PRESSED, BattleFrontier_BattleDomeLobby_EventScript_249C61 + case NO, BattleFrontier_BattleDomeLobby_EventScript_LoadPartyCancelChallenge + case YES, BattleFrontier_BattleDomeLobby_EventScript_SaveBeforeChallenge + case MULTI_B_PRESSED, BattleFrontier_BattleDomeLobby_EventScript_LoadPartyCancelChallenge -BattleFrontier_BattleDomeLobby_EventScript_249B60:: @ 8249B60 +BattleFrontier_BattleDomeLobby_EventScript_SaveBeforeChallenge:: @ 8249B60 setvar VAR_TEMP_0, 0 frontier_set FRONTIER_DATA_SELECTED_MON_ORDER dome_init @@ -192,137 +189,135 @@ BattleFrontier_BattleDomeLobby_EventScript_249B60:: @ 8249B60 call Common_EventScript_SaveGame setvar VAR_TEMP_0, 255 compare VAR_RESULT, 0 - goto_if_eq BattleFrontier_BattleDomeLobby_EventScript_249C4A + goto_if_eq BattleFrontier_BattleDomeLobby_EventScript_CancelChallengeSaveFailed dome_inittrainers -BattleFrontier_BattleDomeLobby_EventScript_249BC2:: @ 8249BC2 +BattleFrontier_BattleDomeLobby_EventScript_EnterChallenge:: @ 8249BC2 special SavePlayerParty frontier_setpartyorder FRONTIER_PARTY_SIZE dome_settrainers - msgbox BattleFrontier_BattleDomeLobby_Text_24A437, MSGBOX_DEFAULT + msgbox BattleFrontier_BattleDomeLobby_Text_ShowYouToBattleDome, MSGBOX_DEFAULT closemessage - call BattleFrontier_BattleDomeLobby_EventScript_249C6E + call BattleFrontier_BattleDomeLobby_EventScript_WalkToDoor special HealPlayerParty warp MAP_BATTLE_FRONTIER_BATTLE_DOME_CORRIDOR, 255, 23, 6 setvar VAR_TEMP_0, 0 waitstate end -BattleFrontier_BattleDomeLobby_EventScript_249BFA:: @ 8249BFA +BattleFrontier_BattleDomeLobby_EventScript_ExplainChallenge:: @ 8249BFA compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES - call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249D1B + call_if_eq BattleFrontier_BattleDomeLobby_EventScript_ExplainSinglesChallenge compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES - call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249D24 - goto BattleFrontier_BattleDomeLobby_EventScript_249A72 + call_if_eq BattleFrontier_BattleDomeLobby_EventScript_ExplainDoublesChallenge + goto BattleFrontier_BattleDomeLobby_EventScript_AskTakeChallenge -BattleFrontier_BattleDomeLobby_EventScript_249C15:: @ 8249C15 +BattleFrontier_BattleDomeLobby_EventScript_NotEnoughValidMons:: @ 8249C15 switch VAR_RESULT - case FRONTIER_LVL_50, BattleFrontier_BattleDomeLobby_EventScript_249C30 - case FRONTIER_LVL_OPEN, BattleFrontier_BattleDomeLobby_EventScript_249C3D + case FRONTIER_LVL_50, BattleFrontier_BattleDomeLobby_EventScript_NotEnoughValidMonsLv50 + case FRONTIER_LVL_OPEN, BattleFrontier_BattleDomeLobby_EventScript_NotEnoughValidMonsLvOpen -BattleFrontier_BattleDomeLobby_EventScript_249C30:: @ 8249C30 - msgbox BattleFrontier_BattleDomeLobby_Text_24A353, MSGBOX_DEFAULT - goto BattleFrontier_BattleDomeLobby_EventScript_249C6C +BattleFrontier_BattleDomeLobby_EventScript_NotEnoughValidMonsLv50:: @ 8249C30 + msgbox BattleFrontier_BattleDomeLobby_Text_NotEnoughValidMonsLv50, MSGBOX_DEFAULT + goto BattleFrontier_BattleDomeLobby_EventScript_EndCancelChallenge -BattleFrontier_BattleDomeLobby_EventScript_249C3D:: @ 8249C3D - msgbox BattleFrontier_BattleDomeLobby_Text_24A2AB, MSGBOX_DEFAULT - goto BattleFrontier_BattleDomeLobby_EventScript_249C6C +BattleFrontier_BattleDomeLobby_EventScript_NotEnoughValidMonsLvOpen:: @ 8249C3D + msgbox BattleFrontier_BattleDomeLobby_Text_NotEnoughValidMonsLvOpen, MSGBOX_DEFAULT + goto BattleFrontier_BattleDomeLobby_EventScript_EndCancelChallenge -BattleFrontier_BattleDomeLobby_EventScript_249C4A:: @ 8249C4A +BattleFrontier_BattleDomeLobby_EventScript_CancelChallengeSaveFailed:: @ 8249C4A frontier_set FRONTIER_DATA_CHALLENGE_STATUS, 0 - goto BattleFrontier_BattleDomeLobby_EventScript_249C64 + goto BattleFrontier_BattleDomeLobby_EventScript_CancelChallenge -BattleFrontier_BattleDomeLobby_EventScript_249C61:: @ 8249C61 +BattleFrontier_BattleDomeLobby_EventScript_LoadPartyCancelChallenge:: @ 8249C61 special LoadPlayerParty - -BattleFrontier_BattleDomeLobby_EventScript_249C64:: @ 8249C64 - msgbox BattleFrontier_BattleDomeLobby_Text_249F74, MSGBOX_DEFAULT - -BattleFrontier_BattleDomeLobby_EventScript_249C6C:: @ 8249C6C +BattleFrontier_BattleDomeLobby_EventScript_CancelChallenge:: @ 8249C64 + msgbox BattleFrontier_BattleDomeLobby_Text_HopeToSeeYouAgain, MSGBOX_DEFAULT +BattleFrontier_BattleDomeLobby_EventScript_EndCancelChallenge:: @ 8249C6C release end -BattleFrontier_BattleDomeLobby_EventScript_249C6E:: @ 8249C6E +BattleFrontier_BattleDomeLobby_EventScript_WalkToDoor:: @ 8249C6E compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES - call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249CDD + call_if_eq BattleFrontier_BattleDomeLobby_EventScript_SinglesAttendantWalkToDoor compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES - call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249CE5 - applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleDomeLobby_Movement_249D45 + call_if_eq BattleFrontier_BattleDomeLobby_EventScript_DoublesAttendantWalkToDoor + applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleDomeLobby_Movement_WalkToDoor waitmovement 0 compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES - call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249D2D + call_if_eq BattleFrontier_BattleDomeLobby_EventScript_OpenSinglesDoor compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES - call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249D33 + call_if_eq BattleFrontier_BattleDomeLobby_EventScript_OpenDoublesDoor waitdooranim compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES - call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249CED + call_if_eq BattleFrontier_BattleDomeLobby_EventScript_SinglesAttendantEnterDoor compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES - call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249CF5 - applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleDomeLobby_Movement_249D4E + call_if_eq BattleFrontier_BattleDomeLobby_EventScript_DoublesAttendantEnterDoor + applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleDomeLobby_Movement_PlayerEnterDoor waitmovement 0 compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_SINGLES - call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249D39 + call_if_eq BattleFrontier_BattleDomeLobby_EventScript_CloseSinglesDoor compare VAR_FRONTIER_BATTLE_MODE, FRONTIER_MODE_DOUBLES - call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249D3F + call_if_eq BattleFrontier_BattleDomeLobby_EventScript_CloseDoublesDoor waitdooranim return -BattleFrontier_BattleDomeLobby_EventScript_249CDD:: @ 8249CDD - applymovement 1, BattleFrontier_BattleDomeLobby_Movement_249D45 +BattleFrontier_BattleDomeLobby_EventScript_SinglesAttendantWalkToDoor:: @ 8249CDD + applymovement 1, BattleFrontier_BattleDomeLobby_Movement_WalkToDoor return -BattleFrontier_BattleDomeLobby_EventScript_249CE5:: @ 8249CE5 - applymovement 6, BattleFrontier_BattleDomeLobby_Movement_249D45 +BattleFrontier_BattleDomeLobby_EventScript_DoublesAttendantWalkToDoor:: @ 8249CE5 + applymovement 6, BattleFrontier_BattleDomeLobby_Movement_WalkToDoor return -BattleFrontier_BattleDomeLobby_EventScript_249CED:: @ 8249CED - applymovement 1, BattleFrontier_BattleDomeLobby_Movement_249D4B +BattleFrontier_BattleDomeLobby_EventScript_SinglesAttendantEnterDoor:: @ 8249CED + applymovement 1, BattleFrontier_BattleDomeLobby_Movement_AttendantEnterDoor return -BattleFrontier_BattleDomeLobby_EventScript_249CF5:: @ 8249CF5 - applymovement 6, BattleFrontier_BattleDomeLobby_Movement_249D4B +BattleFrontier_BattleDomeLobby_EventScript_DoublesAttendantEnterDoor:: @ 8249CF5 + applymovement 6, BattleFrontier_BattleDomeLobby_Movement_AttendantEnterDoor return -BattleFrontier_BattleDomeLobby_EventScript_249CFD:: @ 8249CFD - msgbox BattleFrontier_BattleDomeLobby_Text_249EB7, MSGBOX_DEFAULT +BattleFrontier_BattleDomeLobby_EventScript_WelcomeSingles:: @ 8249CFD + msgbox BattleFrontier_BattleDomeLobby_Text_WelcomeSingleBattle, MSGBOX_DEFAULT return -BattleFrontier_BattleDomeLobby_EventScript_249D06:: @ 8249D06 - msgbox BattleFrontier_BattleDomeLobby_Text_24A664, MSGBOX_DEFAULT +BattleFrontier_BattleDomeLobby_EventScript_WelcomeDoubles:: @ 8249D06 + msgbox BattleFrontier_BattleDomeLobby_Text_WelcomeDoubleBattle, MSGBOX_DEFAULT return -BattleFrontier_BattleDomeLobby_EventScript_249D0F:: @ 8249D0F - message BattleFrontier_BattleDomeLobby_Text_249F3A +BattleFrontier_BattleDomeLobby_EventScript_TakeSinglesChallenge:: @ 8249D0F + message BattleFrontier_BattleDomeLobby_Text_TakeSinglesChallenge return -BattleFrontier_BattleDomeLobby_EventScript_249D15:: @ 8249D15 - message BattleFrontier_BattleDomeLobby_Text_24A6E7 +BattleFrontier_BattleDomeLobby_EventScript_TakeDoublesChallenge:: @ 8249D15 + message BattleFrontier_BattleDomeLobby_Text_TakeDoublesChallenge return -BattleFrontier_BattleDomeLobby_EventScript_249D1B:: @ 8249D1B - msgbox BattleFrontier_BattleDomeLobby_Text_249F8E, MSGBOX_DEFAULT +BattleFrontier_BattleDomeLobby_EventScript_ExplainSinglesChallenge:: @ 8249D1B + msgbox BattleFrontier_BattleDomeLobby_Text_ExplainSinglesChallenge, MSGBOX_DEFAULT return -BattleFrontier_BattleDomeLobby_EventScript_249D24:: @ 8249D24 - msgbox BattleFrontier_BattleDomeLobby_Text_24A721, MSGBOX_DEFAULT +BattleFrontier_BattleDomeLobby_EventScript_ExplainDoublesChallenge:: @ 8249D24 + msgbox BattleFrontier_BattleDomeLobby_Text_ExplainDoublesChallenge, MSGBOX_DEFAULT return -BattleFrontier_BattleDomeLobby_EventScript_249D2D:: @ 8249D2D +BattleFrontier_BattleDomeLobby_EventScript_OpenSinglesDoor:: @ 8249D2D opendoor 5, 4 return -BattleFrontier_BattleDomeLobby_EventScript_249D33:: @ 8249D33 +BattleFrontier_BattleDomeLobby_EventScript_OpenDoublesDoor:: @ 8249D33 opendoor 17, 4 return -BattleFrontier_BattleDomeLobby_EventScript_249D39:: @ 8249D39 +BattleFrontier_BattleDomeLobby_EventScript_CloseSinglesDoor:: @ 8249D39 closedoor 5, 4 return -BattleFrontier_BattleDomeLobby_EventScript_249D3F:: @ 8249D3F +BattleFrontier_BattleDomeLobby_EventScript_CloseDoublesDoor:: @ 8249D3F closedoor 17, 4 return -BattleFrontier_BattleDomeLobby_Movement_249D45: @ 8249D45 +BattleFrontier_BattleDomeLobby_Movement_WalkToDoor: @ 8249D45 walk_up walk_up walk_up @@ -330,18 +325,18 @@ BattleFrontier_BattleDomeLobby_Movement_249D45: @ 8249D45 walk_up step_end -BattleFrontier_BattleDomeLobby_Movement_249D4B: @ 8249D4B +BattleFrontier_BattleDomeLobby_Movement_AttendantEnterDoor: @ 8249D4B walk_up set_invisible step_end -BattleFrontier_BattleDomeLobby_Movement_249D4E: @ 8249D4E +BattleFrontier_BattleDomeLobby_Movement_PlayerEnterDoor: @ 8249D4E walk_up walk_up set_invisible step_end -BattleFrontier_BattleDomeLobby_EventScript_249D52:: @ 8249D52 +BattleFrontier_BattleDomeLobby_EventScript_ShowSinglesResults:: @ 8249D52 lockall frontier_results FRONTIER_FACILITY_DOME, FRONTIER_MODE_SINGLES waitbuttonpress @@ -349,7 +344,7 @@ BattleFrontier_BattleDomeLobby_EventScript_249D52:: @ 8249D52 releaseall end -BattleFrontier_BattleDomeLobby_EventScript_249D6B:: @ 8249D6B +BattleFrontier_BattleDomeLobby_EventScript_ShowDoublesResults:: @ 8249D6B lockall frontier_results FRONTIER_FACILITY_DOME, FRONTIER_MODE_DOUBLES waitbuttonpress @@ -357,119 +352,121 @@ BattleFrontier_BattleDomeLobby_EventScript_249D6B:: @ 8249D6B releaseall end -BattleFrontier_BattleDomeLobby_EventScript_249D84:: @ 8249D84 - dome_get DOME_DATA_9 +BattleFrontier_BattleDomeLobby_EventScript_ShowLastTourneyTree:: @ 8249D84 + dome_get DOME_DATA_LAST_TOURNEY_TYPE compare VAR_RESULT, 0 - call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249DC9 + call_if_eq BattleFrontier_BattleDomeLobby_EventScript_LastTourneyResultsSinglesLv50 compare VAR_RESULT, 1 - call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249DD2 + call_if_eq BattleFrontier_BattleDomeLobby_EventScript_LastTourneyResultsDoublesLv50 compare VAR_RESULT, 2 - call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249DDB + call_if_eq BattleFrontier_BattleDomeLobby_EventScript_LastTourneyResultsSinglesLvOpen compare VAR_RESULT, 3 - call_if_eq BattleFrontier_BattleDomeLobby_EventScript_249DE4 + call_if_eq BattleFrontier_BattleDomeLobby_EventScript_LastTourneyResultsDoublesLvOpen fadescreen FADE_TO_BLACK dome_showresultstree waitstate end -BattleFrontier_BattleDomeLobby_EventScript_249DC9:: @ 8249DC9 - msgbox BattleFrontier_BattleDomeLobby_Text_24A966, MSGBOX_SIGN +BattleFrontier_BattleDomeLobby_EventScript_LastTourneyResultsSinglesLv50:: @ 8249DC9 + msgbox BattleFrontier_BattleDomeLobby_Text_LastTourneyResultsSinglesLv50, MSGBOX_SIGN return -BattleFrontier_BattleDomeLobby_EventScript_249DD2:: @ 8249DD2 - msgbox BattleFrontier_BattleDomeLobby_Text_24A9A9, MSGBOX_SIGN +BattleFrontier_BattleDomeLobby_EventScript_LastTourneyResultsDoublesLv50:: @ 8249DD2 + msgbox BattleFrontier_BattleDomeLobby_Text_LastTourneyResultsDoublesLv50, MSGBOX_SIGN return -BattleFrontier_BattleDomeLobby_EventScript_249DDB:: @ 8249DDB - msgbox BattleFrontier_BattleDomeLobby_Text_24A9EC, MSGBOX_SIGN +BattleFrontier_BattleDomeLobby_EventScript_LastTourneyResultsSinglesLvOpen:: @ 8249DDB + msgbox BattleFrontier_BattleDomeLobby_Text_LastTourneyResultsSinglesLvOpen, MSGBOX_SIGN return -BattleFrontier_BattleDomeLobby_EventScript_249DE4:: @ 8249DE4 - msgbox BattleFrontier_BattleDomeLobby_Text_24AA31, MSGBOX_SIGN +BattleFrontier_BattleDomeLobby_EventScript_LastTourneyResultsDoublesLvOpen:: @ 8249DE4 + msgbox BattleFrontier_BattleDomeLobby_Text_LastTourneyResultsDoublesLvOpen, MSGBOX_SIGN return -BattleFrontier_BattleDomeLobby_EventScript_249DED:: @ 8249DED +BattleFrontier_BattleDomeLobby_EventScript_Maniac:: @ 8249DED dome_getwinnersname - msgbox BattleFrontier_BattleDomeLobby_Text_24AA76, MSGBOX_NPC + msgbox BattleFrontier_BattleDomeLobby_Text_LastWinnerWasTough, MSGBOX_NPC end -BattleFrontier_BattleDomeLobby_EventScript_249DFE:: @ 8249DFE - msgbox BattleFrontier_BattleDomeLobby_Text_24AB94, MSGBOX_NPC +BattleFrontier_BattleDomeLobby_EventScript_Lass:: @ 8249DFE + msgbox BattleFrontier_BattleDomeLobby_Text_WinnersGainReputation, MSGBOX_NPC end -BattleFrontier_BattleDomeLobby_EventScript_249E07:: @ 8249E07 - msgbox BattleFrontier_BattleDomeLobby_Text_24AC76, MSGBOX_NPC +BattleFrontier_BattleDomeLobby_EventScript_FatMan:: @ 8249E07 + msgbox BattleFrontier_BattleDomeLobby_Text_TrashedInFirstRound, MSGBOX_NPC end -BattleFrontier_BattleDomeLobby_EventScript_249E10:: @ 8249E10 - msgbox BattleFrontier_BattleDomeLobby_Text_24ACD3, MSGBOX_NPC +BattleFrontier_BattleDomeLobby_EventScript_Man:: @ 8249E10 + msgbox BattleFrontier_BattleDomeLobby_Text_NeedToCheckOpponentCarefully, MSGBOX_NPC end @ A few OutsideWest event scripts are inserted here instead, two of which are unused BattleFrontier_OutsideWest_EventScript_Man3:: @ 8249E19 - msgbox BattleFrontier_OutsideWest_Text_24AB06, MSGBOX_NPC + msgbox BattleFrontier_OutsideWest_Text_LongDreamedAboutBattleFrontier, MSGBOX_NPC end +@ Unused BattleFrontier_OutsideWest_EventScript_BattleDomeSign2:: @ 8249E22 msgbox BattleFrontier_OutsideWest_Text_BattleDomeSign2, MSGBOX_NPC end +@ Unused BattleFrontier_OutsideWest_EventScript_UnderConstructionSign:: @ 8249E2B msgbox BattleFrontier_OutsideWest_Text_QuestionMarkUnderConstruction, MSGBOX_NPC end -BattleFrontier_BattleDomeLobby_EventScript_249E34:: @ 8249E34 +BattleFrontier_BattleDomeLobby_EventScript_RulesBoard:: @ 8249E34 lockall - msgbox BattleFrontier_BattleDomeLobby_Text_24AE63, MSGBOX_DEFAULT - goto BattleFrontier_BattleDomeLobby_EventScript_249E43 + msgbox BattleFrontier_BattleDomeLobby_Text_RulesAreListed, MSGBOX_DEFAULT + goto BattleFrontier_BattleDomeLobby_EventScript_ReadRulesBoard end -BattleFrontier_BattleDomeLobby_EventScript_249E43:: @ 8249E43 - message BattleFrontier_BattleDomeLobby_Text_24AE8B +BattleFrontier_BattleDomeLobby_EventScript_ReadRulesBoard:: @ 8249E43 + message BattleFrontier_BattleDomeLobby_Text_ReadWhichHeading waitmessage multichoice 17, 4, MULTI_BATTLE_DOME_RULES, 0 switch VAR_RESULT - case 0, BattleFrontier_BattleDomeLobby_EventScript_249E8B - case 1, BattleFrontier_BattleDomeLobby_EventScript_249E99 - case 2, BattleFrontier_BattleDomeLobby_EventScript_249EA7 - case 3, BattleFrontier_BattleDomeLobby_EventScript_249EB5 - case MULTI_B_PRESSED, BattleFrontier_BattleDomeLobby_EventScript_249EB5 + case 0, BattleFrontier_BattleDomeLobby_EventScript_RulesMatchup + case 1, BattleFrontier_BattleDomeLobby_EventScript_RulesTourneyTree + case 2, BattleFrontier_BattleDomeLobby_EventScript_RulesDoubleKO + case 3, BattleFrontier_BattleDomeLobby_EventScript_ExitRules + case MULTI_B_PRESSED, BattleFrontier_BattleDomeLobby_EventScript_ExitRules end -BattleFrontier_BattleDomeLobby_EventScript_249E8B:: @ 8249E8B - msgbox BattleFrontier_BattleDomeLobby_Text_24AEAE, MSGBOX_DEFAULT - goto BattleFrontier_BattleDomeLobby_EventScript_249E43 +BattleFrontier_BattleDomeLobby_EventScript_RulesMatchup:: @ 8249E8B + msgbox BattleFrontier_BattleDomeLobby_Text_ExplainMatchupRules, MSGBOX_DEFAULT + goto BattleFrontier_BattleDomeLobby_EventScript_ReadRulesBoard end -BattleFrontier_BattleDomeLobby_EventScript_249E99:: @ 8249E99 - msgbox BattleFrontier_BattleDomeLobby_Text_24AF4C, MSGBOX_DEFAULT - goto BattleFrontier_BattleDomeLobby_EventScript_249E43 +BattleFrontier_BattleDomeLobby_EventScript_RulesTourneyTree:: @ 8249E99 + msgbox BattleFrontier_BattleDomeLobby_Text_ExplainTourneyTree, MSGBOX_DEFAULT + goto BattleFrontier_BattleDomeLobby_EventScript_ReadRulesBoard end -BattleFrontier_BattleDomeLobby_EventScript_249EA7:: @ 8249EA7 - msgbox BattleFrontier_BattleDomeLobby_Text_24B073, MSGBOX_DEFAULT - goto BattleFrontier_BattleDomeLobby_EventScript_249E43 +BattleFrontier_BattleDomeLobby_EventScript_RulesDoubleKO:: @ 8249EA7 + msgbox BattleFrontier_BattleDomeLobby_Text_ExplainDoubleKORules, MSGBOX_DEFAULT + goto BattleFrontier_BattleDomeLobby_EventScript_ReadRulesBoard end -BattleFrontier_BattleDomeLobby_EventScript_249EB5:: @ 8249EB5 +BattleFrontier_BattleDomeLobby_EventScript_ExitRules:: @ 8249EB5 releaseall end -BattleFrontier_BattleDomeLobby_Text_249EB7: @ 8249EB7 +BattleFrontier_BattleDomeLobby_Text_WelcomeSingleBattle: @ 8249EB7 .string "Where the strategies of TRAINERS\n" .string "are put to the test!\p" .string "Welcome to the BATTLE DOME!\p" .string "I am your guide to the SINGLE BATTLE\n" .string "Tournament.$" -BattleFrontier_BattleDomeLobby_Text_249F3A: @ 8249F3A +BattleFrontier_BattleDomeLobby_Text_TakeSinglesChallenge: @ 8249F3A .string "Would you like to challenge\n" .string "the SINGLE BATTLE Tournament?$" -BattleFrontier_BattleDomeLobby_Text_249F74: @ 8249F74 +BattleFrontier_BattleDomeLobby_Text_HopeToSeeYouAgain: @ 8249F74 .string "We hope to see you again.$" -BattleFrontier_BattleDomeLobby_Text_249F8E: @ 8249F8E +BattleFrontier_BattleDomeLobby_Text_ExplainSinglesChallenge: @ 8249F8E .string "The SINGLE BATTLE Tournament\n" .string "is exactly as the name suggests--\l" .string "a tournament of SINGLE BATTLES.\p" @@ -490,20 +487,20 @@ BattleFrontier_BattleDomeLobby_Text_249F8E: @ 8249F8E .string "If you don't save before interrupting,\n" .string "you will be disqualified.$" -BattleFrontier_BattleDomeLobby_Text_24A1C6: @ 824A1C6 +BattleFrontier_BattleDomeLobby_Text_OkayToSaveBeforeChallenge: @ 824A1C6 .string "Before I show you to the BATTLE DOME,\n" .string "I must save the data. Is that okay?$" -BattleFrontier_BattleDomeLobby_Text_24A210: @ 824A210 +BattleFrontier_BattleDomeLobby_Text_WhichLevelMode: @ 824A210 .string "The tournament offers two levels\n" .string "of challenge, Level 50 and Open Level.\l" .string "Which is your choice?$" -BattleFrontier_BattleDomeLobby_Text_24A26E: @ 824A26E +BattleFrontier_BattleDomeLobby_Text_SelectThreeMons: @ 824A26E .string "Now select the three POKéMON that\n" .string "you wish to enter, please.$" -BattleFrontier_BattleDomeLobby_Text_24A2AB: @ 824A2AB +BattleFrontier_BattleDomeLobby_Text_NotEnoughValidMonsLvOpen: @ 824A2AB .string "Excuse me!\p" .string "You don't have three eligible POKéMON.\p" .string "Also, the POKéMON must be holding\n" @@ -511,7 +508,7 @@ BattleFrontier_BattleDomeLobby_Text_24A2AB: @ 824A2AB .string "EGGS{STR_VAR_1} ineligible.\p" .string "Please come see me when you are ready.$" -BattleFrontier_BattleDomeLobby_Text_24A353: @ 824A353 +BattleFrontier_BattleDomeLobby_Text_NotEnoughValidMonsLv50: @ 824A353 .string "Excuse me!\p" .string "You don't have three eligible POKéMON.\p" .string "You must have three different POKéMON\n" @@ -521,25 +518,27 @@ BattleFrontier_BattleDomeLobby_Text_24A353: @ 824A353 .string "EGGS{STR_VAR_1} ineligible.\p" .string "Please come see me when you are ready.$" -BattleFrontier_BattleDomeLobby_Text_24A437: @ 824A437 +BattleFrontier_BattleDomeLobby_Text_ShowYouToBattleDome: @ 824A437 .string "I will now show you to\n" .string "the BATTLE DOME.$" -BattleFrontier_BattleDomeLobby_Text_24A45F: @ 824A45F +BattleFrontier_BattleDomeLobby_Text_DidntSaveBeforeQuitting: @ 824A45F .string "Excuse me!\p" .string "You didn't save before you quit your\n" .string "challenge last time.\p" .string "Because of that, your challenge so far\n" .string "has been disqualified. Sorry!$" -BattleFrontier_BattleDomeLobby_Text_24A4E9: @ 824A4E9 +BattleFrontier_BattleDomeLobby_Text_CongratsForWinningTourney: @ 824A4E9 .string "Congratulations for winning\n" .string "your Battle Tournament!$" -BattleFrontier_BattleDomeLobby_Text_24A51D: @ 824A51D +@ Unused +BattleFrontier_BattleDomeLobby_Text_HereIsYourPrize: @ 824A51D .string "Here is your prize for your Battle\n" .string "Tournament victory.$" +@ Used by Verdanturf Tent BattleFrontier_BattleDomeLobby_Text_ReceivedPrize: @ 824A554 .string "{PLAYER} received the prize\n" .string "{STR_VAR_1}.$" @@ -550,32 +549,32 @@ BattleFrontier_BattleDomeLobby_Text_BagFullMakeRoom: @ 824A56E .string "Please make room in your BAG, then come\n" .string "see me.$" -BattleFrontier_BattleDomeLobby_Text_24A5BF: @ 824A5BF +BattleFrontier_BattleDomeLobby_Text_ThankYouForPlaying: @ 824A5BF .string "Thank you for playing!$" -BattleFrontier_BattleDomeLobby_Text_24A5D6: @ 824A5D6 +BattleFrontier_BattleDomeLobby_Text_RecordWillBeSaved: @ 824A5D6 .string "Your record will be saved.\n" .string "Please wait.$" -BattleFrontier_BattleDomeLobby_Text_24A5FE: @ 824A5FE +BattleFrontier_BattleDomeLobby_Text_WeveBeenWaitingForYou: @ 824A5FE .string "We've been waiting for you!$" -BattleFrontier_BattleDomeLobby_Text_24A61A: @ 824A61A +BattleFrontier_BattleDomeLobby_Text_OkayToSaveBeforeChallenge2: @ 824A61A .string "Before I show you to the BATTLE DOME,\n" .string "I must save the data. Is that okay?$" -BattleFrontier_BattleDomeLobby_Text_24A664: @ 824A664 +BattleFrontier_BattleDomeLobby_Text_WelcomeDoubleBattle: @ 824A664 .string "Where the strategies of TRAINERS\n" .string "are put to the test!\p" .string "Welcome to the BATTLE DOME!\p" .string "I am your guide to the DOUBLE BATTLE\n" .string "Tournament.$" -BattleFrontier_BattleDomeLobby_Text_24A6E7: @ 824A6E7 +BattleFrontier_BattleDomeLobby_Text_TakeDoublesChallenge: @ 824A6E7 .string "Would you like to challenge\n" .string "the DOUBLE BATTLE Tournament?$" -BattleFrontier_BattleDomeLobby_Text_24A721: @ 824A721 +BattleFrontier_BattleDomeLobby_Text_ExplainDoublesChallenge: @ 824A721 .string "The DOUBLE BATTLE Tournament\n" .string "is exactly as the name suggests--\l" .string "a tournament of DOUBLE BATTLES.\p" @@ -596,23 +595,23 @@ BattleFrontier_BattleDomeLobby_Text_24A721: @ 824A721 .string "If you don't save before interrupting,\n" .string "you will be disqualified.$" -BattleFrontier_BattleDomeLobby_Text_24A966: @ 824A966 +BattleFrontier_BattleDomeLobby_Text_LastTourneyResultsSinglesLv50: @ 824A966 .string "They're the results of the last\n" .string "Level 50 SINGLE BATTLE Tournament.$" -BattleFrontier_BattleDomeLobby_Text_24A9A9: @ 824A9A9 +BattleFrontier_BattleDomeLobby_Text_LastTourneyResultsDoublesLv50: @ 824A9A9 .string "They're the results of the last\n" .string "Level 50 DOUBLE BATTLE Tournament.$" -BattleFrontier_BattleDomeLobby_Text_24A9EC: @ 824A9EC +BattleFrontier_BattleDomeLobby_Text_LastTourneyResultsSinglesLvOpen: @ 824A9EC .string "They're the results of the last\n" .string "Open Level SINGLE BATTLE Tournament.$" -BattleFrontier_BattleDomeLobby_Text_24AA31: @ 824AA31 +BattleFrontier_BattleDomeLobby_Text_LastTourneyResultsDoublesLvOpen: @ 824AA31 .string "They're the results of the last\n" .string "Open Level DOUBLE BATTLE Tournament.$" -BattleFrontier_BattleDomeLobby_Text_24AA76: @ 824AA76 +BattleFrontier_BattleDomeLobby_Text_LastWinnerWasTough: @ 824AA76 .string "Did you see it?\n" .string "The last Battle Tournament?\p" .string "The winner, {STR_VAR_1}, was seriously\n" @@ -620,19 +619,21 @@ BattleFrontier_BattleDomeLobby_Text_24AA76: @ 824AA76 .string "You should check out the results\n" .string "on the monitor beside the PC.$" -BattleFrontier_OutsideWest_Text_24AB06: @ 824AB06 +BattleFrontier_OutsideWest_Text_LongDreamedAboutBattleFrontier: @ 824AB06 .string "The BATTLE FRONTIER…\n" .string "I've long dreamed about a place like it.$" +@ Functionally unused BattleFrontier_OutsideWest_Text_BattleDomeSign2: @ 824AB44 .string "The BATTLE DOME\n" .string "Become the Unbeatable Superstar!$" +@ Functionally unused BattleFrontier_OutsideWest_Text_QuestionMarkUnderConstruction: @ 824AB75 .string "The ??????\n" .string "Under Construction!$" -BattleFrontier_BattleDomeLobby_Text_24AB94: @ 824AB94 +BattleFrontier_BattleDomeLobby_Text_WinnersGainReputation: @ 824AB94 .string "When a TRAINER chains tournament\n" .string "wins at the BATTLE DOME, he or she\l" .string "gains a reputation as a star.\p" @@ -641,48 +642,48 @@ BattleFrontier_BattleDomeLobby_Text_24AB94: @ 824AB94 .string "A true superstar is a TRAINER who\n" .string "can keep winning tournaments.$" -BattleFrontier_BattleDomeLobby_Text_24AC76: @ 824AC76 +BattleFrontier_BattleDomeLobby_Text_TrashedInFirstRound: @ 824AC76 .string "I ran into one of the tournament\n" .string "favorites in the very first round.\p" .string "Of course I got trashed…$" -BattleFrontier_BattleDomeLobby_Text_24ACD3: @ 824ACD3 +BattleFrontier_BattleDomeLobby_Text_NeedToCheckOpponentCarefully: @ 824ACD3 .string "I would've won if I'd kept this POKéMON\n" .string "held in reserve.\p" .string "You need to check your opponent's\n" .string "POKéMON carefully before choosing\l" .string "your battling POKéMON.$" -BattleFrontier_BattleDomeLobby_Text_24AD67: @ 824AD67 +BattleFrontier_BattleDomeLobby_Text_CongratsDefeatedTucker: @ 824AD67 .string "Congratulations!\p" .string "You defeated the DOME ACE and won\n" .string "the Battle Tournament!$" -BattleFrontier_BattleDomeLobby_Text_24ADB1: @ 824ADB1 +BattleFrontier_BattleDomeLobby_Text_AwardTheseBattlePoints: @ 824ADB1 .string "In recognition of your strategy--\n" .string "a thing of beauty it was, too--\l" .string "we award you these Battle Point(s)!$" -BattleFrontier_BattleDomeLobby_Text_24AE17: @ 824AE17 +BattleFrontier_BattleDomeLobby_Text_RecordLastMatch: @ 824AE17 .string "Would you like to record your\n" .string "last BATTLE DOME match on your\l" .string "FRONTIER PASS?$" -BattleFrontier_BattleDomeLobby_Text_24AE63: @ 824AE63 +BattleFrontier_BattleDomeLobby_Text_RulesAreListed: @ 824AE63 .string "The Battle Tournament rules\n" .string "are listed.$" -BattleFrontier_BattleDomeLobby_Text_24AE8B: @ 824AE8B +BattleFrontier_BattleDomeLobby_Text_ReadWhichHeading: @ 824AE8B .string "Which heading do you want to read?$" -BattleFrontier_BattleDomeLobby_Text_24AEAE: @ 824AEAE +BattleFrontier_BattleDomeLobby_Text_ExplainMatchupRules: @ 824AEAE .string "The tournament matchups are drawn up\n" .string "based on the toughness of POKéMON\l" .string "held by TRAINERS.\p" .string "The matchups avoid having tough\n" .string "TRAINERS face each other right away.$" -BattleFrontier_BattleDomeLobby_Text_24AF4C: @ 824AF4C +BattleFrontier_BattleDomeLobby_Text_ExplainTourneyTree: @ 824AF4C .string "The tournament chart, or as we call it,\n" .string "the “Tree,” is available for viewing\l" .string "in the Waiting Room from any guide.\p" @@ -693,7 +694,7 @@ BattleFrontier_BattleDomeLobby_Text_24AF4C: @ 824AF4C .string "by TRAINERS, and the battle styles of\l" .string "TRAINERS.$" -BattleFrontier_BattleDomeLobby_Text_24B073: @ 824B073 +BattleFrontier_BattleDomeLobby_Text_ExplainDoubleKORules: @ 824B073 .string "If battling POKéMON faint at the same\n" .string "time--a double KO--in a tournament\l" .string "match, the REFEREES will review\l" diff --git a/data/maps/BattleFrontier_BattleDomePreBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleDomePreBattleRoom/scripts.inc index c554922d6..55a5fb48a 100644 --- a/data/maps/BattleFrontier_BattleDomePreBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattleDomePreBattleRoom/scripts.inc @@ -1,92 +1,91 @@ BattleFrontier_BattleDomePreBattleRoom_MapScripts:: @ 824B1F9 - map_script MAP_SCRIPT_ON_FRAME_TABLE, BattleFrontier_BattleDomePreBattleRoom_MapScript2_24B218 - map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, BattleFrontier_BattleDomePreBattleRoom_MapScript2_24B204 + map_script MAP_SCRIPT_ON_FRAME_TABLE, BattleFrontier_BattleDomePreBattleRoom_OnFrame + map_script MAP_SCRIPT_ON_WARP_INTO_MAP_TABLE, BattleFrontier_BattleDomePreBattleRoom_OnWarp .byte 0 -BattleFrontier_BattleDomePreBattleRoom_MapScript2_24B204: @ 824B204 - map_script_2 VAR_TEMP_1, 0, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B20E +BattleFrontier_BattleDomePreBattleRoom_OnWarp: @ 824B204 + map_script_2 VAR_TEMP_1, 0, BattleFrontier_BattleDomePreBattleRoom_EventScript_TurnPlayerNorth .2byte 0 -BattleFrontier_BattleDomePreBattleRoom_EventScript_24B20E:: @ 824B20E +BattleFrontier_BattleDomePreBattleRoom_EventScript_TurnPlayerNorth:: @ 824B20E setvar VAR_TEMP_1, 1 turnobject EVENT_OBJ_ID_PLAYER, DIR_NORTH end -BattleFrontier_BattleDomePreBattleRoom_MapScript2_24B218: @ 824B218 - map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B222 +BattleFrontier_BattleDomePreBattleRoom_OnFrame: @ 824B218 + map_script_2 VAR_TEMP_0, 0, BattleFrontier_BattleDomePreBattleRoom_EventScript_EnterRoom .2byte 0 -BattleFrontier_BattleDomePreBattleRoom_EventScript_24B222:: @ 824B222 +BattleFrontier_BattleDomePreBattleRoom_EventScript_EnterRoom:: @ 824B222 compare VAR_0x8006, 1 - goto_if_eq BattleFrontier_BattleDomePreBattleRoom_EventScript_24B5C7 + goto_if_eq BattleFrontier_BattleDomePreBattleRoom_EventScript_ReturnFromBattle frontier_set FRONTIER_DATA_6, 1 setvar VAR_TEMP_0, 1 - applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleDomePreBattleRoom_Movement_24B652 + applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleDomePreBattleRoom_Movement_PlayerEnter waitmovement 0 lockall - -BattleFrontier_BattleDomePreBattleRoom_EventScript_24B24F:: @ 824B24F - call BattleFrontier_BattleDomePreBattleRoom_EventScript_24B4FB +BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRound:: @ 824B24F + call BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForNextRoundMessage waitmessage - switch VAR_RESULT + switch VAR_RESULT @ No case? call BattleFrontier_BattleDomePreBattleRoom_EventScript_23E8E0 - compare VAR_RESULT, 1 - goto_if_eq BattleFrontier_BattleDomePreBattleRoom_EventScript_24B2C1 + compare VAR_RESULT, TRUE + goto_if_eq BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRoundNoRecord multichoice 16, 0, MULTI_TOURNEY_WITH_RECORD, 1 switch VAR_RESULT - case 0, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B3DD - case 1, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B3F5 - case 2, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B46D - case 3, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B30D - case 4, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B349 - case 5, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B377 - case MULTI_B_PRESSED, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B24F - -BattleFrontier_BattleDomePreBattleRoom_EventScript_24B2C1:: @ 824B2C1 + case 0, BattleFrontier_BattleDomePreBattleRoom_EventScript_ShowOpponentInfo + case 1, BattleFrontier_BattleDomePreBattleRoom_EventScript_ShowTourneyTree + case 2, BattleFrontier_BattleDomePreBattleRoom_EventScript_ContinueChallenge + case 3, BattleFrontier_BattleDomePreBattleRoom_EventScript_AskRecordBattle + case 4, BattleFrontier_BattleDomePreBattleRoom_EventScript_AskPauseChallenge + case 5, BattleFrontier_BattleDomePreBattleRoom_EventScript_AskRetireChallenge + case MULTI_B_PRESSED, BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRound + +BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRoundNoRecord:: @ 824B2C1 multichoice 16, 2, MULTI_TOURNEY_NO_RECORD, 1 switch VAR_RESULT - case 0, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B3DD - case 1, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B3F5 - case 2, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B46D - case 3, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B349 - case 4, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B377 - case MULTI_B_PRESSED, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B24F - -BattleFrontier_BattleDomePreBattleRoom_EventScript_24B30D:: @ 824B30D - message BattleFrontier_BattleDomePreBattleRoom_Text_24BAF7 + case 0, BattleFrontier_BattleDomePreBattleRoom_EventScript_ShowOpponentInfo + case 1, BattleFrontier_BattleDomePreBattleRoom_EventScript_ShowTourneyTree + case 2, BattleFrontier_BattleDomePreBattleRoom_EventScript_ContinueChallenge + case 3, BattleFrontier_BattleDomePreBattleRoom_EventScript_AskPauseChallenge + case 4, BattleFrontier_BattleDomePreBattleRoom_EventScript_AskRetireChallenge + case MULTI_B_PRESSED, BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRound + +BattleFrontier_BattleDomePreBattleRoom_EventScript_AskRecordBattle:: @ 824B30D + message BattleFrontier_BattleDomePreBattleRoom_Text_RecordLastMatch waitmessage multichoicedefault 20, 8, MULTI_YESNO, 1, 0 switch VAR_RESULT - case 1, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B24F - case 0, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B33F - case MULTI_B_PRESSED, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B24F + case 1, BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRound + case 0, BattleFrontier_BattleDomePreBattleRoom_EventScript_RecordBattle + case MULTI_B_PRESSED, BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRound -BattleFrontier_BattleDomePreBattleRoom_EventScript_24B33F:: @ 824B33F +BattleFrontier_BattleDomePreBattleRoom_EventScript_RecordBattle:: @ 824B33F call BattleFrontier_EventScript_SaveBattle - goto BattleFrontier_BattleDomePreBattleRoom_EventScript_24B24F + goto BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRound -BattleFrontier_BattleDomePreBattleRoom_EventScript_24B349:: @ 824B349 - msgbox BattleFrontier_BattleDomePreBattleRoom_Text_24BA69, MSGBOX_YESNO +BattleFrontier_BattleDomePreBattleRoom_EventScript_AskPauseChallenge:: @ 824B349 + msgbox BattleFrontier_BattleDomePreBattleRoom_Text_SaveAndQuitGame, MSGBOX_YESNO switch VAR_RESULT - case NO, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B24F - case YES, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B3BB - case MULTI_B_PRESSED, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B24F + case NO, BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRound + case YES, BattleFrontier_BattleDomePreBattleRoom_EventScript_PauseChallenge + case MULTI_B_PRESSED, BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRound -BattleFrontier_BattleDomePreBattleRoom_EventScript_24B377:: @ 824B377 - message BattleFrontier_BattleDomePreBattleRoom_Text_24BA93 +BattleFrontier_BattleDomePreBattleRoom_EventScript_AskRetireChallenge:: @ 824B377 + message BattleFrontier_BattleDomePreBattleRoom_Text_RetireYourChallenge waitmessage multichoicedefault 20, 8, MULTI_YESNO, 1, 0 switch VAR_RESULT - case 1, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B24F - case 0, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B3A9 - case MULTI_B_PRESSED, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B24F + case 1, BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRound + case 0, BattleFrontier_BattleDomePreBattleRoom_EventScript_RetireChallenge + case MULTI_B_PRESSED, BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRound -BattleFrontier_BattleDomePreBattleRoom_EventScript_24B3A9:: @ 824B3A9 - dome_resolvewinners 9 - goto BattleFrontier_BattleDomePreBattleRoom_EventScript_24BE9A +BattleFrontier_BattleDomePreBattleRoom_EventScript_RetireChallenge:: @ 824B3A9 + dome_resolvewinners DOME_PLAYER_RETIRED + goto BattleFrontier_BattleDomeBattleRoom_EventScript_WarpToLobbyLost -BattleFrontier_BattleDomePreBattleRoom_EventScript_24B3BB:: @ 824B3BB - message BattleFrontier_BattleDomePreBattleRoom_Text_24BAD3 +BattleFrontier_BattleDomePreBattleRoom_EventScript_PauseChallenge:: @ 824B3BB + message BattleFrontier_BattleDomePreBattleRoom_Text_SavingDataPleaseWait waitmessage dome_save CHALLENGE_STATUS_PAUSED playse SE_SAVE @@ -95,70 +94,70 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_24B3BB:: @ 824B3BB frontier_reset end -BattleFrontier_BattleDomePreBattleRoom_EventScript_24B3DD:: @ 824B3DD - msgbox BattleFrontier_BattleDomePreBattleRoom_Text_24B9B5, MSGBOX_DEFAULT +BattleFrontier_BattleDomePreBattleRoom_EventScript_ShowOpponentInfo:: @ 824B3DD + msgbox BattleFrontier_BattleDomePreBattleRoom_Text_PlayersNextOpponentIsTrainer, MSGBOX_DEFAULT fadescreen FADE_TO_BLACK dome_showopponentinfo waitstate - goto BattleFrontier_BattleDomePreBattleRoom_EventScript_24B24F + goto BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRound -BattleFrontier_BattleDomePreBattleRoom_EventScript_24B3F5:: @ 824B3F5 - call BattleFrontier_BattleDomePreBattleRoom_EventScript_24B40A +BattleFrontier_BattleDomePreBattleRoom_EventScript_ShowTourneyTree:: @ 824B3F5 + call BattleFrontier_BattleDomePreBattleRoom_EventScript_ShowRoundMessage fadescreen FADE_TO_BLACK dome_showtourneytree waitstate - goto BattleFrontier_BattleDomePreBattleRoom_EventScript_24B24F + goto BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRound -BattleFrontier_BattleDomePreBattleRoom_EventScript_24B40A:: @ 824B40A +BattleFrontier_BattleDomePreBattleRoom_EventScript_ShowRoundMessage:: @ 824B40A frontier_get FRONTIER_DATA_BATTLE_NUM switch VAR_RESULT - case 0, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B449 - case 1, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B452 - case 2, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B45B - case 3, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B464 + case DOME_ROUND1, BattleFrontier_BattleDomePreBattleRoom_EventScript_TourneyInRound1 + case DOME_ROUND2, BattleFrontier_BattleDomePreBattleRoom_EventScript_TourneyInRound2 + case DOME_SEMIFINAL, BattleFrontier_BattleDomePreBattleRoom_EventScript_TourneyInSemifinals + case DOME_FINAL, BattleFrontier_BattleDomePreBattleRoom_EventScript_TourneyInFinals return -BattleFrontier_BattleDomePreBattleRoom_EventScript_24B449:: @ 824B449 - msgbox BattleFrontier_BattleDomePreBattleRoom_Text_24B9D9, MSGBOX_DEFAULT +BattleFrontier_BattleDomePreBattleRoom_EventScript_TourneyInRound1:: @ 824B449 + msgbox BattleFrontier_BattleDomePreBattleRoom_Text_TourneyInRound1, MSGBOX_DEFAULT return -BattleFrontier_BattleDomePreBattleRoom_EventScript_24B452:: @ 824B452 - msgbox BattleFrontier_BattleDomePreBattleRoom_Text_24B9FD, MSGBOX_DEFAULT +BattleFrontier_BattleDomePreBattleRoom_EventScript_TourneyInRound2:: @ 824B452 + msgbox BattleFrontier_BattleDomePreBattleRoom_Text_TourneyInRound2, MSGBOX_DEFAULT return -BattleFrontier_BattleDomePreBattleRoom_EventScript_24B45B:: @ 824B45B - msgbox BattleFrontier_BattleDomePreBattleRoom_Text_24BA21, MSGBOX_DEFAULT +BattleFrontier_BattleDomePreBattleRoom_EventScript_TourneyInSemifinals:: @ 824B45B + msgbox BattleFrontier_BattleDomePreBattleRoom_Text_TourneyInSemifinals, MSGBOX_DEFAULT return -BattleFrontier_BattleDomePreBattleRoom_EventScript_24B464:: @ 824B464 - msgbox BattleFrontier_BattleDomePreBattleRoom_Text_24BA46, MSGBOX_DEFAULT +BattleFrontier_BattleDomePreBattleRoom_EventScript_TourneyInFinals:: @ 824B464 + msgbox BattleFrontier_BattleDomePreBattleRoom_Text_TourneyInFinals, MSGBOX_DEFAULT return -BattleFrontier_BattleDomePreBattleRoom_EventScript_24B46D:: @ 824B46D - message BattleFrontier_BattleDomePreBattleRoom_Text_24B70C +BattleFrontier_BattleDomePreBattleRoom_EventScript_ContinueChallenge:: @ 824B46D + message BattleFrontier_BattleDomePreBattleRoom_Text_ChooseTwoMons waitmessage waitbuttonpress fadescreen FADE_TO_BLACK call BattleFrontier_EventScript_GetLvlMode copyvar VAR_0x8004, VAR_RESULT - setvar VAR_0x8005, 2 @ 2 of the 3 party mons are selected for battle + setvar VAR_0x8005, DOME_BATTLE_PARTY_SIZE @ 2 of the 3 party mons are selected for battle special ChoosePartyForBattleFrontier waitstate frontier_resetsketch compare VAR_RESULT, 0 - goto_if_eq BattleFrontier_BattleDomePreBattleRoom_EventScript_24B24F - dome_set DOME_DATA_8 + goto_if_eq BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRound + dome_set DOME_DATA_SELECTED_MONS dome_reduceparty dome_setopponent - msgbox BattleFrontier_BattleDomePreBattleRoom_Text_24B748, MSGBOX_DEFAULT + msgbox BattleFrontier_BattleDomePreBattleRoom_Text_RightThisWay, MSGBOX_DEFAULT closemessage - applymovement 1, BattleFrontier_BattleDomePreBattleRoom_Movement_24B64F + applymovement 1, BattleFrontier_BattleDomePreBattleRoom_Movement_AttendantMoveAside waitmovement 0 - applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleDomePreBattleRoom_Movement_24B657 + applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleDomePreBattleRoom_Movement_PlayerWalkToDoor waitmovement 0 opendoor 5, 1 waitdooranim - applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleDomePreBattleRoom_Movement_24B659 + applymovement EVENT_OBJ_ID_PLAYER, BattleFrontier_BattleDomePreBattleRoom_Movement_PlayerEnterDoor waitmovement 0 closedoor 5, 1 waitdooranim @@ -167,224 +166,229 @@ BattleFrontier_BattleDomePreBattleRoom_EventScript_24B46D:: @ 824B46D waitstate end -BattleFrontier_BattleDomePreBattleRoom_EventScript_24B4FB:: @ 824B4FB +BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForNextRoundMessage:: @ 824B4FB frontier_get FRONTIER_DATA_BATTLE_NUM switch VAR_RESULT - case 0, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B53A - case 1, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B540 - case 2, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B546 - case 3, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B54C + case DOME_ROUND1, BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForRound1 + case DOME_ROUND2, BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForRound2 + case DOME_SEMIFINAL, BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForSemifinals + case DOME_FINAL, BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForFinals return -BattleFrontier_BattleDomePreBattleRoom_EventScript_24B53A:: @ 824B53A - message BattleFrontier_BattleDomePreBattleRoom_Text_24B65C +BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForRound1:: @ 824B53A + message BattleFrontier_BattleDomePreBattleRoom_Text_ReadyForRound1 return -BattleFrontier_BattleDomePreBattleRoom_EventScript_24B540:: @ 824B540 - message BattleFrontier_BattleDomePreBattleRoom_Text_24B689 +BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForRound2:: @ 824B540 + message BattleFrontier_BattleDomePreBattleRoom_Text_ReadyForRound2 return -BattleFrontier_BattleDomePreBattleRoom_EventScript_24B546:: @ 824B546 - message BattleFrontier_BattleDomePreBattleRoom_Text_24B6B6 +BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForSemifinals:: @ 824B546 + message BattleFrontier_BattleDomePreBattleRoom_Text_ReadyForSemifinals return -BattleFrontier_BattleDomePreBattleRoom_EventScript_24B54C:: @ 824B54C +BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForFinals:: @ 824B54C frontier_getbrainstatus switch VAR_RESULT - case FRONTIER_BRAIN_SILVER, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B58B - case FRONTIER_BRAIN_GOLD, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B5A0 - case FRONTIER_BRAIN_STREAK, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B58B - case FRONTIER_BRAIN_STREAK_LONG, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B5A0 - message BattleFrontier_BattleDomePreBattleRoom_Text_24B6E3 + case FRONTIER_BRAIN_SILVER, BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForTuckerSilver + case FRONTIER_BRAIN_GOLD, BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForTuckerGold + case FRONTIER_BRAIN_STREAK, BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForTuckerSilver + case FRONTIER_BRAIN_STREAK_LONG, BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForTuckerGold + message BattleFrontier_BattleDomePreBattleRoom_Text_ReadyForFinals return -BattleFrontier_BattleDomePreBattleRoom_EventScript_24B58B:: @ 824B58B - goto_if_set FLAG_TEMP_1, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B5B5 - msgbox BattleFrontier_BattleDomePreBattleRoom_Text_24BB2E, MSGBOX_DEFAULT +BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForTuckerSilver:: @ 824B58B + goto_if_set FLAG_TEMP_1, BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForTuckerSilverShort + msgbox BattleFrontier_BattleDomePreBattleRoom_Text_ReadyForTuckerSilver, MSGBOX_DEFAULT setflag FLAG_TEMP_1 return -BattleFrontier_BattleDomePreBattleRoom_EventScript_24B5A0:: @ 824B5A0 - goto_if_set FLAG_TEMP_1, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B5BE - msgbox BattleFrontier_BattleDomePreBattleRoom_Text_24BBAC, MSGBOX_DEFAULT +BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForTuckerGold:: @ 824B5A0 + goto_if_set FLAG_TEMP_1, BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForTuckerGoldShort + msgbox BattleFrontier_BattleDomePreBattleRoom_Text_ReadyForTuckerGold, MSGBOX_DEFAULT setflag FLAG_TEMP_1 return -BattleFrontier_BattleDomePreBattleRoom_EventScript_24B5B5:: @ 824B5B5 - msgbox BattleFrontier_BattleDomePreBattleRoom_Text_24BC2A, MSGBOX_DEFAULT +BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForTuckerSilverShort:: @ 824B5B5 + msgbox BattleFrontier_BattleDomePreBattleRoom_Text_ReadyForTuckerSilverShort, MSGBOX_DEFAULT return -BattleFrontier_BattleDomePreBattleRoom_EventScript_24B5BE:: @ 824B5BE - msgbox BattleFrontier_BattleDomePreBattleRoom_Text_24BC63, MSGBOX_DEFAULT +BattleFrontier_BattleDomePreBattleRoom_EventScript_ReadyForTuckerGoldShort:: @ 824B5BE + msgbox BattleFrontier_BattleDomePreBattleRoom_Text_ReadyForTuckerGoldShort, MSGBOX_DEFAULT return -BattleFrontier_BattleDomePreBattleRoom_EventScript_24B5C7:: @ 824B5C7 +BattleFrontier_BattleDomePreBattleRoom_EventScript_ReturnFromBattle:: @ 824B5C7 setvar VAR_TEMP_0, 1 - msgbox BattleFrontier_BattleDomePreBattleRoom_Text_24B760, MSGBOX_DEFAULT + msgbox BattleFrontier_BattleDomePreBattleRoom_Text_RestoreMonsToFullHealth, MSGBOX_DEFAULT special LoadPlayerParty frontier_setpartyorder FRONTIER_PARTY_SIZE playfanfare MUS_ME_ASA waitfanfare special HealPlayerParty - call BattleFrontier_BattleDomePreBattleRoom_EventScript_24B600 + call BattleFrontier_BattleDomePreBattleRoom_EventScript_RoundCompleteMessage fadescreen FADE_TO_BLACK dome_showstatictourneytree waitstate - goto BattleFrontier_BattleDomePreBattleRoom_EventScript_24B24F + goto BattleFrontier_BattleDomePreBattleRoom_EventScript_AskReadyForNextRound -BattleFrontier_BattleDomePreBattleRoom_EventScript_24B600:: @ 824B600 +BattleFrontier_BattleDomePreBattleRoom_EventScript_RoundCompleteMessage:: @ 824B600 frontier_get FRONTIER_DATA_BATTLE_NUM switch VAR_RESULT - case 1, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B634 - case 2, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B63D - case 3, BattleFrontier_BattleDomePreBattleRoom_EventScript_24B646 + case DOME_ROUND2, BattleFrontier_BattleDomePreBattleRoom_EventScript_Round1Complete + case DOME_SEMIFINAL, BattleFrontier_BattleDomePreBattleRoom_EventScript_Round2Complete + case DOME_FINAL, BattleFrontier_BattleDomePreBattleRoom_EventScript_SemifinalsComplete return -BattleFrontier_BattleDomePreBattleRoom_EventScript_24B634:: @ 824B634 - msgbox BattleFrontier_BattleDomePreBattleRoom_Text_24B7A3, MSGBOX_DEFAULT +BattleFrontier_BattleDomePreBattleRoom_EventScript_Round1Complete:: @ 824B634 + msgbox BattleFrontier_BattleDomePreBattleRoom_Text_Round1Complete, MSGBOX_DEFAULT return -BattleFrontier_BattleDomePreBattleRoom_EventScript_24B63D:: @ 824B63D - msgbox BattleFrontier_BattleDomePreBattleRoom_Text_24B7F1, MSGBOX_DEFAULT +BattleFrontier_BattleDomePreBattleRoom_EventScript_Round2Complete:: @ 824B63D + msgbox BattleFrontier_BattleDomePreBattleRoom_Text_Round2Complete, MSGBOX_DEFAULT return -BattleFrontier_BattleDomePreBattleRoom_EventScript_24B646:: @ 824B646 - msgbox BattleFrontier_BattleDomePreBattleRoom_Text_24B83F, MSGBOX_DEFAULT +BattleFrontier_BattleDomePreBattleRoom_EventScript_SemifinalsComplete:: @ 824B646 + msgbox BattleFrontier_BattleDomePreBattleRoom_Text_SemifinalsComplete, MSGBOX_DEFAULT return -BattleFrontier_BattleDomePreBattleRoom_Movement_24B64F: @ 824B64F +BattleFrontier_BattleDomePreBattleRoom_Movement_AttendantMoveAside: @ 824B64F walk_right face_left step_end -BattleFrontier_BattleDomePreBattleRoom_Movement_24B652: @ 824B652 +BattleFrontier_BattleDomePreBattleRoom_Movement_PlayerEnter: @ 824B652 walk_up walk_up walk_up walk_up step_end -BattleFrontier_BattleDomePreBattleRoom_Movement_24B657: @ 824B657 +BattleFrontier_BattleDomePreBattleRoom_Movement_PlayerWalkToDoor: @ 824B657 walk_up step_end -BattleFrontier_BattleDomePreBattleRoom_Movement_24B659: @ 824B659 +BattleFrontier_BattleDomePreBattleRoom_Movement_PlayerEnterDoor: @ 824B659 walk_up set_invisible step_end -BattleFrontier_BattleDomePreBattleRoom_Text_24B65C: @ 824B65C +BattleFrontier_BattleDomePreBattleRoom_Text_ReadyForRound1: @ 824B65C .string "Your 1st-round match is next.\n" .string "Are you ready?$" -BattleFrontier_BattleDomePreBattleRoom_Text_24B689: @ 824B689 +BattleFrontier_BattleDomePreBattleRoom_Text_ReadyForRound2: @ 824B689 .string "Your 2nd-round match is next.\n" .string "Are you ready?$" -BattleFrontier_BattleDomePreBattleRoom_Text_24B6B6: @ 824B6B6 +BattleFrontier_BattleDomePreBattleRoom_Text_ReadyForSemifinals: @ 824B6B6 .string "Your semifinal match is next.\n" .string "Are you ready?$" -BattleFrontier_BattleDomePreBattleRoom_Text_24B6E3: @ 824B6E3 +BattleFrontier_BattleDomePreBattleRoom_Text_ReadyForFinals: @ 824B6E3 .string "Your final match is next.\n" .string "Are you ready?$" -BattleFrontier_BattleDomePreBattleRoom_Text_24B70C: @ 824B70C +BattleFrontier_BattleDomePreBattleRoom_Text_ChooseTwoMons: @ 824B70C .string "Please choose the two POKéMON\n" .string "that are to appear in battle.$" -BattleFrontier_BattleDomePreBattleRoom_Text_24B748: @ 824B748 +BattleFrontier_BattleDomePreBattleRoom_Text_RightThisWay: @ 824B748 .string "Right this way, please.$" -BattleFrontier_BattleDomePreBattleRoom_Text_24B760: @ 824B760 +BattleFrontier_BattleDomePreBattleRoom_Text_RestoreMonsToFullHealth: @ 824B760 .string "Thank you for competing!\p" .string "I'll restore your POKéMON to\n" .string "full health.$" -BattleFrontier_BattleDomePreBattleRoom_Text_24B7A3: @ 824B7A3 +BattleFrontier_BattleDomePreBattleRoom_Text_Round1Complete: @ 824B7A3 .string "All 1st-round matches have been\n" .string "completed.\p" .string "These are the teams that advanced!$" -BattleFrontier_BattleDomePreBattleRoom_Text_24B7F1: @ 824B7F1 +BattleFrontier_BattleDomePreBattleRoom_Text_Round2Complete: @ 824B7F1 .string "All 2nd-round matches have been\n" .string "completed.\p" .string "These are the teams that advanced!$" -BattleFrontier_BattleDomePreBattleRoom_Text_24B83F: @ 824B83F +BattleFrontier_BattleDomePreBattleRoom_Text_SemifinalsComplete: @ 824B83F .string "All semifinal matches have been\n" .string "completed.\p" .string "These are the teams that advanced!$" -BattleFrontier_BattleDomePreBattleRoom_Text_24B88D: @ 824B88D +@ Unused +BattleFrontier_BattleDomePreBattleRoom_Text_CongratsReadyForRound2: @ 824B88D .string "Congratulations for getting through\n" .string "the 1st round.\p" .string "The 2nd round is next.\n" .string "Are you ready?$" -BattleFrontier_BattleDomePreBattleRoom_Text_24B8E6: @ 824B8E6 +@ Unused +BattleFrontier_BattleDomePreBattleRoom_Text_CongratsReadyForSemifinals: @ 824B8E6 .string "Congratulations for advancing\n" .string "to the semifinals.\p" .string "The best four teams meet in this round.\n" .string "Are you ready?$" -BattleFrontier_BattleDomePreBattleRoom_Text_24B94E: @ 824B94E +@ Unused +BattleFrontier_BattleDomePreBattleRoom_Text_CongratsReadyForFinals: @ 824B94E .string "Congratulations for advancing\n" .string "to the final match.\p" .string "You're one win from the championship.\n" .string "Are you ready?$" -BattleFrontier_BattleDomePreBattleRoom_Text_24B9B5: @ 824B9B5 +BattleFrontier_BattleDomePreBattleRoom_Text_PlayersNextOpponentIsTrainer: @ 824B9B5 .string "{PLAYER}'s next opponent\n" .string "is this TRAINER.$" -BattleFrontier_BattleDomePreBattleRoom_Text_24B9D9: @ 824B9D9 +BattleFrontier_BattleDomePreBattleRoom_Text_TourneyInRound1: @ 824B9D9 .string "The tournament is in the 1st round.$" -BattleFrontier_BattleDomePreBattleRoom_Text_24B9FD: @ 824B9FD +BattleFrontier_BattleDomePreBattleRoom_Text_TourneyInRound2: @ 824B9FD .string "The tournament is in the 2nd round.$" -BattleFrontier_BattleDomePreBattleRoom_Text_24BA21: @ 824BA21 +BattleFrontier_BattleDomePreBattleRoom_Text_TourneyInSemifinals: @ 824BA21 .string "The tournament is in the semifinals.$" -BattleFrontier_BattleDomePreBattleRoom_Text_24BA46: @ 824BA46 +BattleFrontier_BattleDomePreBattleRoom_Text_TourneyInFinals: @ 824BA46 .string "The tournament is up to the final.$" -BattleFrontier_BattleDomePreBattleRoom_Text_24BA69: @ 824BA69 +BattleFrontier_BattleDomePreBattleRoom_Text_SaveAndQuitGame: @ 824BA69 .string "Would you like to save and\n" .string "quit the game?$" -BattleFrontier_BattleDomePreBattleRoom_Text_24BA93: @ 824BA93 +BattleFrontier_BattleDomePreBattleRoom_Text_RetireYourChallenge: @ 824BA93 .string "Would you like to retire from your\n" .string "Battle Tournament challenge?$" -BattleFrontier_BattleDomePreBattleRoom_Text_24BAD3: @ 824BAD3 +BattleFrontier_BattleDomePreBattleRoom_Text_SavingDataPleaseWait: @ 824BAD3 .string "I am saving your data.\n" .string "Please wait.$" -BattleFrontier_BattleDomePreBattleRoom_Text_24BAF7: @ 824BAF7 +BattleFrontier_BattleDomePreBattleRoom_Text_RecordLastMatch: @ 824BAF7 .string "Should I record your last match\n" .string "on your FRONTIER PASS?$" -BattleFrontier_BattleDomePreBattleRoom_Text_24BB2E: @ 824BB2E +BattleFrontier_BattleDomePreBattleRoom_Text_ReadyForTuckerSilver: @ 824BB2E .string "Congratulations for advancing\n" .string "to the final match.\p" .string "For the final match, you will challenge\n" .string "the DOME ACE TUCKER.\p" .string "Are you ready?$" -BattleFrontier_BattleDomePreBattleRoom_Text_24BBAC: @ 824BBAC +@ Identical to ReadyForTuckerSilver +BattleFrontier_BattleDomePreBattleRoom_Text_ReadyForTuckerGold: @ 824BBAC .string "Congratulations for advancing\n" .string "to the final match.\p" .string "For the final match, you will challenge\n" .string "the DOME ACE TUCKER.\p" .string "Are you ready?$" -BattleFrontier_BattleDomePreBattleRoom_Text_24BC2A: @ 824BC2A +BattleFrontier_BattleDomePreBattleRoom_Text_ReadyForTuckerSilverShort: @ 824BC2A .string "Your final battle against TUCKER is\n" .string "next. Are you ready?$" -BattleFrontier_BattleDomePreBattleRoom_Text_24BC63: @ 824BC63 +@ Identical again +BattleFrontier_BattleDomePreBattleRoom_Text_ReadyForTuckerGoldShort: @ 824BC63 .string "Your final battle against TUCKER is\n" .string "next. Are you ready?$" diff --git a/data/specials.inc b/data/specials.inc index fef21fe99..6922b46a5 100644 --- a/data/specials.inc +++ b/data/specials.inc @@ -498,7 +498,7 @@ gSpecials:: @ 81DBA64 def_special GetPCBoxToSendMon def_special ShouldShowBoxWasFullMessage def_special SetMatchCallRegisteredFlag - def_special sub_8175280 + def_special DoConfettiEffect def_special CreateAbnormalWeatherEvent def_special GetAbnormalWeatherMapNameAndType def_special GetMartEmployeeObjectEventId diff --git a/graphics/unknown/unknown_D83900.bin b/graphics/battle_frontier/unknown_D83900.bin Binary files differindex 7f3e36737..7f3e36737 100644 --- a/graphics/unknown/unknown_D83900.bin +++ b/graphics/battle_frontier/unknown_D83900.bin diff --git a/graphics/unknown/unknown_D83B2C.bin b/graphics/battle_frontier/unknown_D83B2C.bin Binary files differindex 34175237e..34175237e 100644 --- a/graphics/unknown/unknown_D83B2C.bin +++ b/graphics/battle_frontier/unknown_D83B2C.bin diff --git a/graphics/unknown/unknown_D83C3C.bin b/graphics/battle_frontier/unknown_D83C3C.bin Binary files differindex acf7cf6ad..acf7cf6ad 100644 --- a/graphics/unknown/unknown_D83C3C.bin +++ b/graphics/battle_frontier/unknown_D83C3C.bin diff --git a/graphics/unknown/unknown_D84970.bin b/graphics/battle_frontier/unknown_D84970.bin Binary files differindex d102290e4..d102290e4 100644 --- a/graphics/unknown/unknown_D84970.bin +++ b/graphics/battle_frontier/unknown_D84970.bin diff --git a/graphics/unknown/unknown_D84F00.bin b/graphics/battle_frontier/unknown_D84F00.bin index c38088d34..c38088d34 100644 --- a/graphics/unknown/unknown_D84F00.bin +++ b/graphics/battle_frontier/unknown_D84F00.bin diff --git a/include/battle_dome.h b/include/battle_dome.h index d1dfdb100..900508c4b 100644 --- a/include/battle_dome.h +++ b/include/battle_dome.h @@ -1,9 +1,9 @@ #ifndef GUARD_BATTLE_DOME_H #define GUARD_BATTLE_DOME_H -extern u32 gUnknown_0203CD70; +extern u32 gPlayerPartyLostHP; -int GetDomeTrainerMonCountInBits(u16 tournamentTrainerId); +int GetDomeTrainerSelectedMons(u16 tournamentTrainerId); int TrainerIdToDomeTournamentId(u16 trainerId); #endif // GUARD_BATTLE_DOME_H diff --git a/include/constants/battle_dome.h b/include/constants/battle_dome.h index 48152cdbb..96542c596 100644 --- a/include/constants/battle_dome.h +++ b/include/constants/battle_dome.h @@ -1,6 +1,21 @@ #ifndef GUARD_CONSTANTS_BATTLE_DOME_H #define GUARD_CONSTANTS_BATTLE_DOME_H +#define DOME_ROUND1 0 +#define DOME_ROUND2 1 +#define DOME_SEMIFINAL 2 +#define DOME_FINAL 3 +#define DOME_ROUNDS_COUNT 4 + +//#define DOME_TOURNAMENT_TRAINERS_COUNT 16 : defined in global +#define DOME_TOURNAMENT_MATCHES_COUNT DOME_TOURNAMENT_TRAINERS_COUNT - 1 + +#define DOME_BATTLE_PARTY_SIZE 2 + +#define DOME_PLAYER_WON_MATCH 1 +#define DOME_PLAYER_LOST_MATCH 2 +#define DOME_PLAYER_RETIRED 9 + #define BATTLE_DOME_FUNC_INIT 0 #define BATTLE_DOME_FUNC_GET_DATA 1 #define BATTLE_DOME_FUNC_SET_DATA 2 @@ -22,24 +37,18 @@ #define BATTLE_DOME_FUNC_REDUCE_PARTY 18 #define BATTLE_DOME_FUNC_COMPARE_SEEDS 19 #define BATTLE_DOME_FUNC_GET_WINNER_NAME 20 -#define BATTLE_DOME_FUNC_21 21 +#define BATTLE_DOME_FUNC_INIT_RESULTS_TREE 21 #define BATTLE_DOME_FUNC_INIT_TRAINERS 22 -#define DOME_DATA_WIN_STREAK 0 -#define DOME_DATA_WIN_STREAK_ACTIVE 1 -#define DOME_DATA_2 2 -#define DOME_DATA_3 3 -#define DOME_DATA_4 4 -#define DOME_DATA_5 5 -#define DOME_DATA_6 6 -#define DOME_DATA_7 7 -#define DOME_DATA_8 8 -#define DOME_DATA_9 9 - -#define DOME_ROUND1 0 -#define DOME_ROUND2 1 -#define DOME_SEMIFINAL 2 -#define DOME_FINAL 3 -#define DOME_ROUNDS_COUNT 4 +#define DOME_DATA_WIN_STREAK 0 +#define DOME_DATA_WIN_STREAK_ACTIVE 1 +#define DOME_DATA_ATTEMPTED_SINGLES_50 2 +#define DOME_DATA_ATTEMPTED_SINGLES_OPEN 3 +#define DOME_DATA_HAS_WON_SINGLES_50 4 +#define DOME_DATA_HAS_WON_SINGLES_OPEN 5 +#define DOME_DATA_ATTEMPTED_CHALLENGE 6 +#define DOME_DATA_HAS_WON_CHALLENGE 7 +#define DOME_DATA_SELECTED_MONS 8 +#define DOME_DATA_LAST_TOURNEY_TYPE 9 #endif //GUARD_CONSTANTS_BATTLE_DOME_H diff --git a/include/constants/battle_frontier.h b/include/constants/battle_frontier.h index 0bf1ba02b..1a60714e8 100644 --- a/include/constants/battle_frontier.h +++ b/include/constants/battle_frontier.h @@ -6,9 +6,9 @@ // Battle Frontier facility ids. #define FRONTIER_FACILITY_TOWER 0 #define FRONTIER_FACILITY_DOME 1 -#define FRONTIER_FACILITY_PALACE 2 -#define FRONTIER_FACILITY_ARENA 3 -#define FRONTIER_FACILITY_FACTORY 4 +#define FRONTIER_FACILITY_PALACE 2 // also Verdanturf Tent +#define FRONTIER_FACILITY_ARENA 3 // also Fallarbor Tent +#define FRONTIER_FACILITY_FACTORY 4 // also Slateport Tent #define FRONTIER_FACILITY_PIKE 5 #define FRONTIER_FACILITY_PYRAMID 6 #define NUM_FRONTIER_FACILITIES 7 @@ -17,10 +17,6 @@ #define FACILITY_UNION_ROOM 8 #define FACILITY_MULTI_OR_EREADER 9 // Direct Corner multi battles, multi battle with Steven, and e-Reader battles -#define TENT_VERDANTURF 2 -#define TENT_FALLARBOR 3 -#define TENT_SLATEPORT 4 - // Battle Frontier lvl modes. #define FRONTIER_LVL_50 0 #define FRONTIER_LVL_OPEN 1 diff --git a/include/constants/global.h b/include/constants/global.h index f4d81e563..d57307d9c 100644 --- a/include/constants/global.h +++ b/include/constants/global.h @@ -58,6 +58,7 @@ #define TRAINER_ID_LENGTH 4 #define MAX_MON_MOVES 4 +#define NUM_STATS 6 // party sizes #define PARTY_SIZE 6 diff --git a/include/constants/pokemon.h b/include/constants/pokemon.h index 5610a470c..181a84023 100644 --- a/include/constants/pokemon.h +++ b/include/constants/pokemon.h @@ -80,7 +80,6 @@ #define STAT_ACC 6 // Only in battles. #define STAT_EVASION 7 // Only in battles. -#define NUM_STATS 6 #define NUM_BATTLE_STATS 8 // Shiny odds @@ -213,6 +212,8 @@ #define FRIENDSHIP_EVENT_FAINT_OUTSIDE_BATTLE 7 #define FRIENDSHIP_EVENT_FAINT_LARGE 8 +#define MAX_FRIENDSHIP 0xFF + #define STATUS_PRIMARY_NONE 0 #define STATUS_PRIMARY_POISON 1 #define STATUS_PRIMARY_PARALYSIS 2 diff --git a/include/global.h b/include/global.h index 16fbb14e2..2b2860d64 100644 --- a/include/global.h +++ b/include/global.h @@ -300,7 +300,7 @@ struct BattleTowerEReaderTrainer struct FrontierMonData { u16 moves[MAX_MON_MOVES]; - u8 evs[6]; + u8 evs[NUM_STATS]; u8 nature; }; @@ -317,7 +317,7 @@ struct BattleDomeTrainer u16 trainerId:10; u16 isEliminated:1; u16 eliminatedAt:2; - u16 unk3:3; + u16 forfeited:3; }; #define DOME_TOURNAMENT_TRAINERS_COUNT 16 @@ -332,10 +332,6 @@ struct BattleFrontier /*0xCA9*/ u8 lvlMode:2; /*0xCA9*/ u8 challengePaused:1; /*0xCA9*/ u8 field_CA9_b:1; - /*0xCA9*/ u8 unused_CA9_c:1; - /*0xCA9*/ u8 unused_CA9_d:1; - /*0xCA9*/ u8 unused_CA9_e:1; - /*0xCA9*/ u8 unused_CA9_f:1; /*0xCAA*/ u16 selectedPartyMons[MAX_FRONTIER_PARTY_SIZE]; /*0xCB2*/ u16 curChallengeBattleNum; // Battle number / room number (Pike) / floor number (Pyramid) /*0xCB4*/ u16 trainerIds[20]; @@ -347,17 +343,17 @@ struct BattleFrontier /*0xD04*/ u16 towerNumWins; // Increments to MAX_STREAK but never read otherwise /*0xD06*/ u8 towerBattleOutcome; /*0xD07*/ u8 towerLvlMode; - /*0xD08*/ u8 field_D08_0:1; - /*0xD08*/ u8 field_D08_1:1; - /*0xD08*/ u8 field_D08_2:1; - /*0xD08*/ u8 field_D08_3:1; - /*0xD08*/ u8 field_D08_4:1; - /*0xD08*/ u8 field_D08_5:1; - /*0xD08*/ u8 field_D08_6:1; - /*0xD08*/ u8 field_D08_7:1; - /*0xD09*/ u8 filler_D09; - /*0xD0A*/ u8 field_D0A; - /*0xD0B*/ u8 field_D0B; + /*0xD08*/ u8 domeAttemptedSingles50:1; + /*0xD08*/ u8 domeAttemptedSinglesOpen:1; + /*0xD08*/ u8 domeHasWonSingles50:1; + /*0xD08*/ u8 domeHasWonSinglesOpen:1; + /*0xD08*/ u8 domeAttemptedDoubles50:1; + /*0xD08*/ u8 domeAttemptedDoublesOpen:1; + /*0xD08*/ u8 domeHasWonDoubles50:1; + /*0xD08*/ u8 domeHasWonDoublesOpen:1; + /*0xD09*/ u8 domeUnused; + /*0xD0A*/ u8 domeLvlMode; + /*0xD0B*/ u8 domeBattleMode; /*0xD0C*/ u16 domeWinStreaks[2][2]; /*0xD14*/ u16 domeRecordWinStreaks[2][2]; /*0xD1C*/ u16 domeTotalChampionships[2][2]; @@ -396,7 +392,7 @@ struct BattleFrontier /*0xEB8*/ u16 battlePoints; /*0xEBA*/ u16 cardBattlePoints; /*0xEBC*/ u32 battlesCount; - /*0xEC0*/ u16 field_EC0[16]; + /*0xEC0*/ u16 domeWinningMoves[DOME_TOURNAMENT_TRAINERS_COUNT]; /*0xEE0*/ u8 trainerFlags; /*0xEE1*/ u8 opponentNames[2][PLAYER_NAME_LENGTH + 1]; /*0xEF1*/ u8 opponentTrainerIds[2][TRAINER_ID_LENGTH]; diff --git a/include/hall_of_fame.h b/include/hall_of_fame.h index 5c8a01bcb..a83fad2fc 100644 --- a/include/hall_of_fame.h +++ b/include/hall_of_fame.h @@ -4,7 +4,7 @@ void CB2_DoHallOfFameScreen(void); void CB2_DoHallOfFameScreenDontSaveData(void); void CB2_DoHallOfFamePC(void); -void sub_8175280(void); +void DoConfettiEffect(void); // hof_pc.c void ReturnFromHallOfFamePC(void); diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c index 0bd1ea363..6e6276684 100644 --- a/src/battle_controller_player.c +++ b/src/battle_controller_player.c @@ -2676,8 +2676,9 @@ static void PlayerHandleHealthBarUpdate(void) LoadBattleBarGfx(0); hpVal = gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8); + // gPlayerPartyLostHP used by Battle Dome, but never read if (hpVal > 0) - gUnknown_0203CD70 += hpVal; + gPlayerPartyLostHP += hpVal; if (hpVal != INSTANT_HP_BAR_DROP) { diff --git a/src/battle_dome.c b/src/battle_dome.c index 7ff83f328..e49bada67 100644 --- a/src/battle_dome.c +++ b/src/battle_dome.c @@ -1,6 +1,7 @@ #include "global.h" #include "battle_dome.h" #include "battle.h" +#include "battle_main.h" #include "battle_setup.h" #include "battle_tower.h" #include "frontier_util.h" @@ -34,6 +35,7 @@ #include "constants/frontier_util.h" #include "constants/species.h" #include "constants/moves.h" +#include "constants/pokemon.h" #include "constants/trainers.h" #include "constants/abilities.h" #include "constants/songs.h" @@ -54,6 +56,9 @@ struct UnkStruct_860DD10 u16 src; }; +#define DOME_TRAINERS gSaveBlock2Ptr->frontier.domeTrainers +#define DOME_MONS gSaveBlock2Ptr->frontier.domeMonIds + // This file's functions. static u8 GetDomeTrainerMonIvs(u16 trainerId); static void SwapDomeTrainers(int id1, int id2, u16 *statsArray); @@ -62,7 +67,7 @@ static void CreateDomeOpponentMons(u16 tournamentTrainerId); static int sub_818FCBC(u16 tournamentTrainerId, bool8 arg1); static int sub_818FDB8(u16 tournamentTrainerId, bool8 arg1); static int GetTypeEffectivenessPoints(int move, int species, int arg2); -static int sub_818FEB4(int *arr, bool8 arg1); +static int SelectOpponentMonsFromParty(int *arr, bool8 arg1); static void Task_ShowOpponentInfo(u8 taskId); static void sub_8190CD4(u8 taskId); static u8 sub_819221C(u8 taskId); @@ -105,15 +110,15 @@ static void SaveDomeChallenge(void); static void IncrementDomeStreaks(void); static void ResetSketchedMoves(void); static void RestoreDomePlayerPartyHeldItems(void); -static void ReduceDomePlayerPartyTo3Mons(void); +static void ReduceDomePlayerPartyToSelectedMons(void); static void GetPlayerSeededBeforeOpponent(void); static void BufferLastDomeWinnerName(void); -static void sub_8194F58(void); +static void InitRandomTourneyTreeResults(void); static void InitDomeTrainers(void); // EWRAM variables. -EWRAM_DATA u32 gUnknown_0203CD70 = 0; -static EWRAM_DATA u32 gUnknown_0203CD74 = 0; +EWRAM_DATA u32 gPlayerPartyLostHP = 0; // never read +static EWRAM_DATA u32 sPlayerPartyMaxHP = 0; // never read static EWRAM_DATA struct BattleDomeStruct *sBattleDomeStruct = {0}; static EWRAM_DATA u8 *sTilemapBuffer = NULL; @@ -599,7 +604,7 @@ static const struct BgTemplate gUnknown_0860CE74[4] = }, }; -static const struct BgTemplate gUnknown_0860CE84[4] = +static const struct BgTemplate sOpponentInfoBgTemplates[4] = { { .bg = 0, @@ -671,7 +676,7 @@ static const struct WindowTemplate gUnknown_0860CE94[] = DUMMY_WIN_TEMPLATE, }; -static const struct WindowTemplate gUnknown_0860CEB4[] = +static const struct WindowTemplate sOpponentInfoWindowTemplates[] = { { .bg = 0, @@ -1091,10 +1096,10 @@ static void (* const sBattleDomeFunctions[])(void) = [BATTLE_DOME_FUNC_SET_TRAINERS] = InitDomeFacilityTrainersAndMons, [BATTLE_DOME_FUNC_RESET_SKETCH] = ResetSketchedMoves, [BATTLE_DOME_FUNC_RESTORE_HELD_ITEMS] = RestoreDomePlayerPartyHeldItems, - [BATTLE_DOME_FUNC_REDUCE_PARTY] = ReduceDomePlayerPartyTo3Mons, + [BATTLE_DOME_FUNC_REDUCE_PARTY] = ReduceDomePlayerPartyToSelectedMons, [BATTLE_DOME_FUNC_COMPARE_SEEDS] = GetPlayerSeededBeforeOpponent, [BATTLE_DOME_FUNC_GET_WINNER_NAME] = BufferLastDomeWinnerName, - [BATTLE_DOME_FUNC_21] = sub_8194F58, + [BATTLE_DOME_FUNC_INIT_RESULTS_TREE] = InitRandomTourneyTreeResults, [BATTLE_DOME_FUNC_INIT_TRAINERS] = InitDomeTrainers, }; @@ -1152,7 +1157,13 @@ static const u8 gUnknown_0860D15C[][4] = {0x07, 0x0b, 0x0d, 0x0e}, }; -static const u8 gUnknown_0860D19C[] = {0x17, 0x1b, 0x1d, 0x1e}; +static const u8 gUnknown_0860D19C[DOME_ROUNDS_COUNT] = +{ + [DOME_ROUND1] = 23, + [DOME_ROUND2] = 27, + [DOME_SEMIFINAL] = 29, + [DOME_FINAL] = 30 +}; static const u8 gUnknown_0860D1A0[][4] = { @@ -1274,7 +1285,7 @@ static const u8 *const sBattleDomeOpponentStatsTexts[] = static const u8 sInfoTrainerMonX[] = {0x68, 0x88, 0x68}; static const u8 sInfoTrainerMonY[] = {0x26, 0x3e, 0x4e}; -static const u8 gUnknown_0860D346[] = {0x00, 0x04, 0x00}; +static const u8 sSpeciesNameTextYCoords[] = {0, 4, 0}; static const u8 gUnknown_0860D349[] = {0x00, 0x05, 0x09, 0x0c, 0x0e, 0x00, 0x00}; @@ -1313,28 +1324,28 @@ static const u8 sFirstTrainerMonY[] = {0x38, 0x50, 0x68}; static const u8 sSecondTrainerMonX[] = {0x90, 0x90, 0x90}; static const u8 sSecondTrainerMonY[] = {0x38, 0x50, 0x68}; -static const u8 gUnknown_0860D3B4[] = {0x00, 0x08, 0x0c, 0x04, 0x07, 0x0f, 0x0b, 0x03, 0x02, 0x0a, 0x0e, 0x06, 0x05, 0x0d, 0x09, 0x01}; - -static const u8 gUnknown_0860D3C4[][3] = -{ - {0x00, 0x02, 0x00}, - {0x02, 0x02, 0x00}, - {0x04, 0x02, 0x00}, - {0x06, 0x02, 0x00}, - {0x08, 0x02, 0x00}, - {0x0a, 0x02, 0x00}, - {0x0c, 0x02, 0x00}, - {0x0e, 0x02, 0x00}, - {0x00, 0x04, 0x01}, - {0x04, 0x04, 0x01}, - {0x08, 0x04, 0x01}, - {0x0c, 0x04, 0x01}, - {0x00, 0x08, 0x02}, - {0x08, 0x08, 0x02}, - {0x00, 0x10, 0x03}, +static const u8 gUnknown_0860D3B4[] = {0, 8, 12, 4, 7, 15, 11, 3, 2, 10, 14, 6, 5, 13, 9, 1}; + +static const u8 gUnknown_0860D3C4[DOME_TOURNAMENT_MATCHES_COUNT][3] = +{ + { 0, 2, DOME_ROUND1}, + { 2, 2, DOME_ROUND1}, + { 4, 2, DOME_ROUND1}, + { 6, 2, DOME_ROUND1}, + { 8, 2, DOME_ROUND1}, + {10, 2, DOME_ROUND1}, + {12, 2, DOME_ROUND1}, + {14, 2, DOME_ROUND1}, + { 0, 4, DOME_ROUND2}, + { 4, 4, DOME_ROUND2}, + { 8, 4, DOME_ROUND2}, + {12, 4, DOME_ROUND2}, + { 0, 8, DOME_SEMIFINAL}, + { 8, 8, DOME_SEMIFINAL}, + { 0, 16, DOME_FINAL}, }; -static const u8 gUnknown_0860D3F1[][2] = +static const u8 gUnknown_0860D3F1[DOME_TOURNAMENT_TRAINERS_COUNT][2] = { {0x00, 0x00}, {0x01, 0x70}, @@ -2280,57 +2291,57 @@ static void GetDomeData(void) case DOME_DATA_WIN_STREAK_ACTIVE: gSpecialVar_Result = ((gSaveBlock2Ptr->frontier.winStreakActiveFlags & sWinStreakFlags[battleMode][lvlMode]) != 0); break; - case DOME_DATA_2: - gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D08_0; + case DOME_DATA_ATTEMPTED_SINGLES_50: + gSpecialVar_Result = gSaveBlock2Ptr->frontier.domeAttemptedSingles50; break; - case DOME_DATA_3: - gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D08_1; + case DOME_DATA_ATTEMPTED_SINGLES_OPEN: + gSpecialVar_Result = gSaveBlock2Ptr->frontier.domeAttemptedSinglesOpen; break; - case DOME_DATA_4: - gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D08_2; + case DOME_DATA_HAS_WON_SINGLES_50: + gSpecialVar_Result = gSaveBlock2Ptr->frontier.domeHasWonSingles50; break; - case DOME_DATA_5: - gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D08_3; + case DOME_DATA_HAS_WON_SINGLES_OPEN: + gSpecialVar_Result = gSaveBlock2Ptr->frontier.domeHasWonSinglesOpen; break; - case DOME_DATA_6: + case DOME_DATA_ATTEMPTED_CHALLENGE: if (VarGet(VAR_FRONTIER_BATTLE_MODE) == FRONTIER_MODE_DOUBLES) { - if (lvlMode) - gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D08_5; + if (lvlMode != FRONTIER_LVL_50) + gSpecialVar_Result = gSaveBlock2Ptr->frontier.domeAttemptedDoublesOpen; else - gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D08_4; + gSpecialVar_Result = gSaveBlock2Ptr->frontier.domeAttemptedDoubles50; } else { - if (lvlMode) - gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D08_1; + if (lvlMode != FRONTIER_LVL_50) + gSpecialVar_Result = gSaveBlock2Ptr->frontier.domeAttemptedSinglesOpen; else - gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D08_0; + gSpecialVar_Result = gSaveBlock2Ptr->frontier.domeAttemptedSingles50; } break; - case DOME_DATA_7: + case DOME_DATA_HAS_WON_CHALLENGE: if (VarGet(VAR_FRONTIER_BATTLE_MODE) == FRONTIER_MODE_DOUBLES) { - if (lvlMode) - gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D08_7; + if (lvlMode != FRONTIER_LVL_50) + gSpecialVar_Result = gSaveBlock2Ptr->frontier.domeHasWonDoublesOpen; else - gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D08_6; + gSpecialVar_Result = gSaveBlock2Ptr->frontier.domeHasWonDoubles50; } else { - if (lvlMode) - gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D08_3; + if (lvlMode != FRONTIER_LVL_50) + gSpecialVar_Result = gSaveBlock2Ptr->frontier.domeHasWonSinglesOpen; else - gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D08_2; + gSpecialVar_Result = gSaveBlock2Ptr->frontier.domeHasWonSingles50; } break; - case DOME_DATA_8: + case DOME_DATA_SELECTED_MONS: ClearSelectedPartyOrder(); gSelectedOrderFromParty[0] = gSaveBlock2Ptr->frontier.selectedPartyMons[3]; gSelectedOrderFromParty[1] = gSaveBlock2Ptr->frontier.selectedPartyMons[3] >> 8; break; - case DOME_DATA_9: - gSpecialVar_Result = (gSaveBlock2Ptr->frontier.field_D0A * 2) - 3 + gSaveBlock2Ptr->frontier.field_D0B; + case DOME_DATA_LAST_TOURNEY_TYPE: + gSpecialVar_Result = (gSaveBlock2Ptr->frontier.domeLvlMode * 2) - 3 + gSaveBlock2Ptr->frontier.domeBattleMode; break; } } @@ -2351,51 +2362,51 @@ static void SetDomeData(void) else gSaveBlock2Ptr->frontier.winStreakActiveFlags &= sWinStreakMasks[battleMode][lvlMode]; break; - case DOME_DATA_2: - gSaveBlock2Ptr->frontier.field_D08_0 = gSpecialVar_0x8006; + case DOME_DATA_ATTEMPTED_SINGLES_50: + gSaveBlock2Ptr->frontier.domeAttemptedSingles50 = gSpecialVar_0x8006; break; - case DOME_DATA_3: - gSaveBlock2Ptr->frontier.field_D08_1 = gSpecialVar_0x8006; + case DOME_DATA_ATTEMPTED_SINGLES_OPEN: + gSaveBlock2Ptr->frontier.domeAttemptedSinglesOpen = gSpecialVar_0x8006; break; - case DOME_DATA_4: - gSaveBlock2Ptr->frontier.field_D08_2 = gSpecialVar_0x8006; + case DOME_DATA_HAS_WON_SINGLES_50: + gSaveBlock2Ptr->frontier.domeHasWonSingles50 = gSpecialVar_0x8006; break; - case DOME_DATA_5: - gSaveBlock2Ptr->frontier.field_D08_3 = gSpecialVar_0x8006; + case DOME_DATA_HAS_WON_SINGLES_OPEN: + gSaveBlock2Ptr->frontier.domeHasWonSinglesOpen = gSpecialVar_0x8006; break; - case DOME_DATA_6: + case DOME_DATA_ATTEMPTED_CHALLENGE: if (VarGet(VAR_FRONTIER_BATTLE_MODE) == FRONTIER_MODE_DOUBLES) { - if (lvlMode) - gSaveBlock2Ptr->frontier.field_D08_5 = gSpecialVar_0x8006; + if (lvlMode != FRONTIER_LVL_50) + gSaveBlock2Ptr->frontier.domeAttemptedDoublesOpen = gSpecialVar_0x8006; else - gSaveBlock2Ptr->frontier.field_D08_4 = gSpecialVar_0x8006; + gSaveBlock2Ptr->frontier.domeAttemptedDoubles50 = gSpecialVar_0x8006; } else { - if (lvlMode) - gSaveBlock2Ptr->frontier.field_D08_1 = gSpecialVar_0x8006; + if (lvlMode != FRONTIER_LVL_50) + gSaveBlock2Ptr->frontier.domeAttemptedSinglesOpen = gSpecialVar_0x8006; else - gSaveBlock2Ptr->frontier.field_D08_0 = gSpecialVar_0x8006; + gSaveBlock2Ptr->frontier.domeAttemptedSingles50 = gSpecialVar_0x8006; } break; - case DOME_DATA_7: + case DOME_DATA_HAS_WON_CHALLENGE: if (VarGet(VAR_FRONTIER_BATTLE_MODE) == FRONTIER_MODE_DOUBLES) { - if (lvlMode) - gSaveBlock2Ptr->frontier.field_D08_7 = gSpecialVar_0x8006; + if (lvlMode != FRONTIER_LVL_50) + gSaveBlock2Ptr->frontier.domeHasWonDoublesOpen = gSpecialVar_0x8006; else - gSaveBlock2Ptr->frontier.field_D08_6 = gSpecialVar_0x8006; + gSaveBlock2Ptr->frontier.domeHasWonDoubles50 = gSpecialVar_0x8006; } else { - if (lvlMode) - gSaveBlock2Ptr->frontier.field_D08_3 = gSpecialVar_0x8006; + if (lvlMode != FRONTIER_LVL_50) + gSaveBlock2Ptr->frontier.domeHasWonSinglesOpen = gSpecialVar_0x8006; else - gSaveBlock2Ptr->frontier.field_D08_2 = gSpecialVar_0x8006; + gSaveBlock2Ptr->frontier.domeHasWonSingles50 = gSpecialVar_0x8006; } break; - case DOME_DATA_8: + case DOME_DATA_SELECTED_MONS: gSaveBlock2Ptr->frontier.selectedPartyMons[3] = T1_READ_16(gSelectedOrderFromParty); break; } @@ -2417,18 +2428,18 @@ static void InitDomeTrainers(void) species[1] = 0; species[2] = 0; statSums = AllocZeroed(sizeof(u16) * DOME_TOURNAMENT_TRAINERS_COUNT); - statValues = AllocZeroed(sizeof(int) * 6); + statValues = AllocZeroed(sizeof(int) * NUM_STATS); - gSaveBlock2Ptr->frontier.field_D0A = gSaveBlock2Ptr->frontier.lvlMode + 1; - gSaveBlock2Ptr->frontier.field_D0B = VarGet(VAR_FRONTIER_BATTLE_MODE) + 1; - gSaveBlock2Ptr->frontier.domeTrainers[0].trainerId = TRAINER_PLAYER; - gSaveBlock2Ptr->frontier.domeTrainers[0].isEliminated = 0; - gSaveBlock2Ptr->frontier.domeTrainers[0].eliminatedAt = 0; - gSaveBlock2Ptr->frontier.domeTrainers[0].unk3 = 0; + gSaveBlock2Ptr->frontier.domeLvlMode = gSaveBlock2Ptr->frontier.lvlMode + 1; + gSaveBlock2Ptr->frontier.domeBattleMode = VarGet(VAR_FRONTIER_BATTLE_MODE) + 1; + DOME_TRAINERS[0].trainerId = TRAINER_PLAYER; + DOME_TRAINERS[0].isEliminated = FALSE; + DOME_TRAINERS[0].eliminatedAt = 0; + DOME_TRAINERS[0].forfeited = FALSE; for (i = 0; i < FRONTIER_PARTY_SIZE; i++) { - gSaveBlock2Ptr->frontier.domeMonIds[0][i] = GetMonData(&gPlayerParty[gSaveBlock2Ptr->frontier.selectedPartyMons[i] - 1], MON_DATA_SPECIES, NULL); + DOME_MONS[0][i] = GetMonData(&gPlayerParty[gSaveBlock2Ptr->frontier.selectedPartyMons[i] - 1], MON_DATA_SPECIES, NULL); for (j = 0; j < MAX_MON_MOVES; j++) gSaveBlock2Ptr->frontier.field_EFC[i].moves[j] = GetMonData(&gPlayerParty[gSaveBlock2Ptr->frontier.selectedPartyMons[i] - 1], MON_DATA_MOVE1 + j, NULL); for (j = 0; j < NUM_STATS; j++) @@ -2446,11 +2457,11 @@ static void InitDomeTrainers(void) trainerId = sub_8162548(GetCurrentFacilityWinStreak(), 0); for (j = 1; j < i; j++) { - if (gSaveBlock2Ptr->frontier.domeTrainers[j].trainerId == trainerId) + if (DOME_TRAINERS[j].trainerId == trainerId) break; } } while (j != i); - gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId = trainerId; + DOME_TRAINERS[i].trainerId = trainerId; } else { @@ -2459,11 +2470,11 @@ static void InitDomeTrainers(void) trainerId = sub_8162548(GetCurrentFacilityWinStreak() + 1, 0); for (j = 1; j < i; j++) { - if (gSaveBlock2Ptr->frontier.domeTrainers[j].trainerId == trainerId) + if (DOME_TRAINERS[j].trainerId == trainerId) break; } } while (j != i); - gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId = trainerId; + DOME_TRAINERS[i].trainerId = trainerId; } for (j = 0; j < FRONTIER_PARTY_SIZE; j++) @@ -2474,7 +2485,7 @@ static void InitDomeTrainers(void) monSetId = RandomizeFacilityTrainerMonSet(trainerId); for (k = 0; k < j; k++) { - int checkingMonSetId = gSaveBlock2Ptr->frontier.domeMonIds[i][k]; + int checkingMonSetId = DOME_MONS[i][k]; if (checkingMonSetId == monSetId || species[0] == gFacilityTrainerMons[monSetId].species || species[1] == gFacilityTrainerMons[monSetId].species @@ -2483,13 +2494,13 @@ static void InitDomeTrainers(void) } } while (k != j); - gSaveBlock2Ptr->frontier.domeMonIds[i][j] = monSetId; + DOME_MONS[i][j] = monSetId; species[j] = gFacilityTrainerMons[monSetId].species; } - gSaveBlock2Ptr->frontier.domeTrainers[i].isEliminated = 0; - gSaveBlock2Ptr->frontier.domeTrainers[i].eliminatedAt = 0; - gSaveBlock2Ptr->frontier.domeTrainers[i].unk3 = 0; + DOME_TRAINERS[i].isEliminated = FALSE; + DOME_TRAINERS[i].eliminatedAt = 0; + DOME_TRAINERS[i].forfeited = FALSE; } monTypesBits = 0; @@ -2521,13 +2532,13 @@ static void InitDomeTrainers(void) { monTypesBits = 0; statSums[i] = 0; - ivs = GetDomeTrainerMonIvs(gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId); + ivs = GetDomeTrainerMonIvs(DOME_TRAINERS[i].trainerId); for (j = 0; j < FRONTIER_PARTY_SIZE; j++) { - CalcDomeMonStats(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[i][j]].species, + CalcDomeMonStats(gFacilityTrainerMons[DOME_MONS[i][j]].species, monLevel, ivs, - gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[i][j]].evSpread, - gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[i][j]].nature, + gFacilityTrainerMons[DOME_MONS[i][j]].evSpread, + gFacilityTrainerMons[DOME_MONS[i][j]].nature, statValues); statSums[i] += statValues[STAT_ATK]; @@ -2536,8 +2547,8 @@ static void InitDomeTrainers(void) statSums[i] += statValues[STAT_SPDEF]; statSums[i] += statValues[STAT_SPEED]; statSums[i] += statValues[STAT_HP]; - monTypesBits |= gBitTable[gBaseStats[gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[i][j]].species].type1]; - monTypesBits |= gBitTable[gBaseStats[gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[i][j]].species].type2]; + monTypesBits |= gBitTable[gBaseStats[gFacilityTrainerMons[DOME_MONS[i][j]].species].type1]; + monTypesBits |= gBitTable[gBaseStats[gFacilityTrainerMons[DOME_MONS[i][j]].species].type2]; } for (monTypesCount = 0, j = 0; j < 32; j++) @@ -2561,9 +2572,9 @@ static void InitDomeTrainers(void) { if (statSums[i] == statSums[j]) { - if (gSaveBlock2Ptr->frontier.domeTrainers[j].trainerId == TRAINER_PLAYER) + if (DOME_TRAINERS[j].trainerId == TRAINER_PLAYER) SwapDomeTrainers(i, j, statSums); - else if (gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId > gSaveBlock2Ptr->frontier.domeTrainers[j].trainerId) + else if (DOME_TRAINERS[i].trainerId > DOME_TRAINERS[j].trainerId) SwapDomeTrainers(i, j, statSums); } } @@ -2574,23 +2585,23 @@ static void InitDomeTrainers(void) { for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++) { - if (gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId == TRAINER_PLAYER) + if (DOME_TRAINERS[i].trainerId == TRAINER_PLAYER) break; } if (gUnknown_0860D3F1[i][0] != 0) { j = 0; - gSaveBlock2Ptr->frontier.domeTrainers[j].trainerId = TRAINER_FRONTIER_BRAIN; + DOME_TRAINERS[j].trainerId = TRAINER_FRONTIER_BRAIN; } else { j = 1; - gSaveBlock2Ptr->frontier.domeTrainers[j].trainerId = TRAINER_FRONTIER_BRAIN; + DOME_TRAINERS[j].trainerId = TRAINER_FRONTIER_BRAIN; } for (i = 0; i < FRONTIER_PARTY_SIZE; i++) - gSaveBlock2Ptr->frontier.domeMonIds[j][i] = GetFrontierBrainMonSpecies(i); + DOME_MONS[j][i] = GetFrontierBrainMonSpecies(i); } Free(statSums); @@ -2649,10 +2660,10 @@ static void SwapDomeTrainers(int id1, int id2, u16 *statsArray) u16 temp; SWAP(statsArray[id1], statsArray[id2], temp); - SWAP(gSaveBlock2Ptr->frontier.domeTrainers[id1].trainerId, gSaveBlock2Ptr->frontier.domeTrainers[id2].trainerId, temp); + SWAP(DOME_TRAINERS[id1].trainerId, DOME_TRAINERS[id2].trainerId, temp); - for (i = 0; i < 3; i++) - SWAP(gSaveBlock2Ptr->frontier.domeMonIds[id1][i], gSaveBlock2Ptr->frontier.domeMonIds[id2][i], temp); + for (i = 0; i < FRONTIER_PARTY_SIZE; i++) + SWAP(DOME_MONS[id1][i], DOME_MONS[id2][i], temp); } static void BufferDomeRoundText(void) @@ -2668,9 +2679,9 @@ static void BufferDomeOpponentName(void) static void InitDomeOpponentParty(void) { - gUnknown_0203CD70 = 0; - gUnknown_0203CD74 = GetMonData(&gPlayerParty[0], MON_DATA_MAX_HP, NULL); - gUnknown_0203CD74 += GetMonData(&gPlayerParty[1], MON_DATA_MAX_HP, NULL); + gPlayerPartyLostHP = 0; + sPlayerPartyMaxHP = GetMonData(&gPlayerParty[0], MON_DATA_MAX_HP, NULL); + sPlayerPartyMaxHP += GetMonData(&gPlayerParty[1], MON_DATA_MAX_HP, NULL); CalculatePlayerPartyCount(); CreateDomeOpponentMons(TrainerIdToTournamentId(gTrainerBattleOpponent_A)); } @@ -2678,160 +2689,165 @@ static void InitDomeOpponentParty(void) static void CreateDomeOpponentMon(u8 monPartyId, u16 tournamentTrainerId, u8 tournamentMonId, u32 otId) { int i; - u8 happiness = 0xFF; - u8 fixedIv = GetDomeTrainerMonIvs(tournamentTrainerId); // BUG: Should be using trainerId instead of tournamentTrainerId. As a result, all Pokemon have ivs of 3. + u8 friendship = MAX_FRIENDSHIP; + u8 fixedIv = GetDomeTrainerMonIvs(tournamentTrainerId); // BUG: Should be using DOME_TRAINERS[tournamentTrainerId].trainerId instead of tournamentTrainerId. As a result, all Pokemon have ivs of 3. u8 level = SetFacilityPtrsGetLevel(); CreateMonWithEVSpreadNatureOTID(&gEnemyParty[monPartyId], - gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[tournamentTrainerId][tournamentMonId]].species, + gFacilityTrainerMons[DOME_MONS[tournamentTrainerId][tournamentMonId]].species, level, - gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[tournamentTrainerId][tournamentMonId]].nature, + gFacilityTrainerMons[DOME_MONS[tournamentTrainerId][tournamentMonId]].nature, fixedIv, - gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[tournamentTrainerId][tournamentMonId]].evSpread, otId); + gFacilityTrainerMons[DOME_MONS[tournamentTrainerId][tournamentMonId]].evSpread, otId); - happiness = 0xFF; + friendship = MAX_FRIENDSHIP; for (i = 0; i < MAX_MON_MOVES; i++) { SetMonMoveSlot(&gEnemyParty[monPartyId], - gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[tournamentTrainerId][tournamentMonId]].moves[i], i); - if (gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[tournamentTrainerId][tournamentMonId]].moves[i] == MOVE_FRUSTRATION) - happiness = 0; + gFacilityTrainerMons[DOME_MONS[tournamentTrainerId][tournamentMonId]].moves[i], i); + if (gFacilityTrainerMons[DOME_MONS[tournamentTrainerId][tournamentMonId]].moves[i] == MOVE_FRUSTRATION) + friendship = 0; } - SetMonData(&gEnemyParty[monPartyId], MON_DATA_FRIENDSHIP, &happiness); + SetMonData(&gEnemyParty[monPartyId], MON_DATA_FRIENDSHIP, &friendship); SetMonData(&gEnemyParty[monPartyId], MON_DATA_HELD_ITEM, - &gBattleFrontierHeldItems[gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[tournamentTrainerId][tournamentMonId]].itemTableId]); + &gBattleFrontierHeldItems[gFacilityTrainerMons[DOME_MONS[tournamentTrainerId][tournamentMonId]].itemTableId]); } static void CreateDomeOpponentMons(u16 tournamentTrainerId) { u8 monsCount = 0; u32 otId = 0; - int i, bits; + int i, selectedMonBits; ZeroEnemyPartyMons(); - bits = GetDomeTrainerMonCountInBits(tournamentTrainerId); + selectedMonBits = GetDomeTrainerSelectedMons(tournamentTrainerId); otId = Random32(); + if (Random() % 10 > 5) { - for (i = 0; i < 3; i++) + // Create mon if it was selected, starting from front + for (i = 0; i < FRONTIER_PARTY_SIZE; i++) { - if (bits & 1) + if (selectedMonBits & 1) { CreateDomeOpponentMon(monsCount, tournamentTrainerId, i, otId); monsCount++; } - bits >>= 1; + selectedMonBits >>= 1; } } else { - for (i = 2; i >= 0; i--) + // Create mon if it was selected, starting from back + for (i = FRONTIER_PARTY_SIZE - 1; i >= 0; i--) { - if (bits & 4) + if (selectedMonBits & 4) { CreateDomeOpponentMon(monsCount, tournamentTrainerId, i, otId); monsCount++; } - bits <<= 1; + selectedMonBits <<= 1; } } } -int GetDomeTrainerMonCountInBits(u16 tournamentTrainerId) +int GetDomeTrainerSelectedMons(u16 tournamentTrainerId) { - int bits; + int selectedMonBits; if (Random() & 1) { - bits = sub_818FCBC(tournamentTrainerId, FALSE); - if (bits == 0) - bits = sub_818FDB8(tournamentTrainerId, TRUE); + selectedMonBits = sub_818FCBC(tournamentTrainerId, FALSE); + if (selectedMonBits == 0) + selectedMonBits = sub_818FDB8(tournamentTrainerId, TRUE); } else { - bits = sub_818FDB8(tournamentTrainerId, FALSE); - if (bits == 0) - bits = sub_818FCBC(tournamentTrainerId, TRUE); + selectedMonBits = sub_818FDB8(tournamentTrainerId, FALSE); + if (selectedMonBits == 0) + selectedMonBits = sub_818FCBC(tournamentTrainerId, TRUE); } - return bits; + return selectedMonBits; } -static int sub_818FCBC(u16 tournamentTrainerId, bool8 arg1) +static int sub_818FCBC(u16 tournamentTrainerId, bool8 allowRandom) { int i, moveId, playerMonId; - int array[FRONTIER_PARTY_SIZE]; + int partyMovePoints[FRONTIER_PARTY_SIZE]; for (i = 0; i < FRONTIER_PARTY_SIZE; i++) { - array[i] = 0; + partyMovePoints[i] = 0; for (moveId = 0; moveId < MAX_MON_MOVES; moveId++) { for (playerMonId = 0; playerMonId < FRONTIER_PARTY_SIZE; playerMonId++) { - if (gSaveBlock2Ptr->frontier.domeTrainers[tournamentTrainerId].trainerId == TRAINER_FRONTIER_BRAIN) + if (DOME_TRAINERS[tournamentTrainerId].trainerId == TRAINER_FRONTIER_BRAIN) { - array[i] += GetTypeEffectivenessPoints(GetFrontierBrainMonMove(i, moveId), - GetMonData(&gPlayerParty[playerMonId], MON_DATA_SPECIES, NULL), 0); + partyMovePoints[i] += GetTypeEffectivenessPoints(GetFrontierBrainMonMove(i, moveId), + GetMonData(&gPlayerParty[playerMonId], MON_DATA_SPECIES, NULL), MON_DATA_PERSONALITY); } else { - array[i] += GetTypeEffectivenessPoints(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[tournamentTrainerId][i]].moves[moveId], - GetMonData(&gPlayerParty[playerMonId], MON_DATA_SPECIES, NULL), 0); + partyMovePoints[i] += GetTypeEffectivenessPoints(gFacilityTrainerMons[DOME_MONS[tournamentTrainerId][i]].moves[moveId], + GetMonData(&gPlayerParty[playerMonId], MON_DATA_SPECIES, NULL), MON_DATA_PERSONALITY); } } } } - return sub_818FEB4(array, arg1); + return SelectOpponentMonsFromParty(partyMovePoints, allowRandom); } -static int sub_818FDB8(u16 tournamentTrainerId, bool8 arg1) +static int sub_818FDB8(u16 tournamentTrainerId, bool8 allowRandom) { int i, moveId, playerMonId; - int array[FRONTIER_PARTY_SIZE]; + int partyMovePoints[FRONTIER_PARTY_SIZE]; for (i = 0; i < FRONTIER_PARTY_SIZE; i++) { - array[i] = 0; + partyMovePoints[i] = 0; for (moveId = 0; moveId < MAX_MON_MOVES; moveId++) { for (playerMonId = 0; playerMonId < FRONTIER_PARTY_SIZE; playerMonId++) { - if (gSaveBlock2Ptr->frontier.domeTrainers[tournamentTrainerId].trainerId == TRAINER_FRONTIER_BRAIN) + if (DOME_TRAINERS[tournamentTrainerId].trainerId == TRAINER_FRONTIER_BRAIN) { - array[i] += GetTypeEffectivenessPoints(GetFrontierBrainMonMove(i, moveId), - GetMonData(&gPlayerParty[playerMonId], MON_DATA_SPECIES, NULL), 1); + partyMovePoints[i] += GetTypeEffectivenessPoints(GetFrontierBrainMonMove(i, moveId), + GetMonData(&gPlayerParty[playerMonId], MON_DATA_SPECIES, NULL), MON_DATA_OT_ID); } else { - array[i] += GetTypeEffectivenessPoints(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[tournamentTrainerId][i]].moves[moveId], - GetMonData(&gPlayerParty[playerMonId], MON_DATA_SPECIES, NULL), 1); + partyMovePoints[i] += GetTypeEffectivenessPoints(gFacilityTrainerMons[DOME_MONS[tournamentTrainerId][i]].moves[moveId], + GetMonData(&gPlayerParty[playerMonId], MON_DATA_SPECIES, NULL), MON_DATA_OT_ID); } } } } - return sub_818FEB4(array, arg1); + return SelectOpponentMonsFromParty(partyMovePoints, allowRandom); } -static int sub_818FEB4(int *arr, bool8 arg1) +static int SelectOpponentMonsFromParty(int *partyMovePoints, bool8 allowRandom) { int i, j; - int bits = 0; - int array[3]; + int selectedMonBits = 0; + int partyPositions[FRONTIER_PARTY_SIZE]; - for (i = 0; i < 3; i++) - array[i] = i; + for (i = 0; i < FRONTIER_PARTY_SIZE; i++) + partyPositions[i] = i; - if (arr[0] == arr[1] && arr[0] == arr[2]) + // All party mons have equal move score totals, choose randomly + if (partyMovePoints[0] == partyMovePoints[1] + && partyMovePoints[0] == partyMovePoints[2]) { - if (arg1) + if (allowRandom) { i = 0; - while (i != 2) + while (i != DOME_BATTLE_PARTY_SIZE) { - u32 rand = Random() & 3; - if (rand != 3 && !(bits & gBitTable[rand])) + u32 rand = Random() & FRONTIER_PARTY_SIZE; + if (rand != FRONTIER_PARTY_SIZE && !(selectedMonBits & gBitTable[rand])) { - bits |= gBitTable[rand]; + selectedMonBits |= gBitTable[rand]; i++; } } @@ -2839,43 +2855,33 @@ static int sub_818FEB4(int *arr, bool8 arg1) } else { - for (i = 0; i < 2; i++) + for (i = 0; i < DOME_BATTLE_PARTY_SIZE; i++) { - for (j = i + 1; j < 3; j++) + for (j = i + 1; j < FRONTIER_PARTY_SIZE; j++) { int temp; - if (arr[i] < arr[j]) + if (partyMovePoints[i] < partyMovePoints[j]) { - temp = arr[i]; - arr[i] = arr[j]; - arr[j] = temp; - - temp = array[i]; - array[i] = array[j]; - array[j] = temp; + SWAP(partyMovePoints[i], partyMovePoints[j],temp) + SWAP(partyPositions[i], partyPositions[j], temp) } - if (arr[i] == arr[j] && (Random() & 1)) + if (partyMovePoints[i] == partyMovePoints[j] && (Random() & 1)) { - temp = arr[i]; - arr[i] = arr[j]; - arr[j] = temp; - - temp = array[i]; - array[i] = array[j]; - array[j] = temp; + SWAP(partyMovePoints[i], partyMovePoints[j],temp) + SWAP(partyPositions[i], partyPositions[j], temp) } } } - for (i = 0; i < 2; i++) + for (i = 0; i < DOME_BATTLE_PARTY_SIZE; i++) { - bits |= gBitTable[array[i]]; + selectedMonBits |= gBitTable[partyPositions[i]]; } } - return bits; + return selectedMonBits; } #define TYPE_x0 0 @@ -2886,6 +2892,7 @@ static int sub_818FEB4(int *arr, bool8 arg1) #define TYPE_x4 80 // Functionally equivalent, while loop is impossible to match. +// arg2 is either 2, a personality, or an OTID #ifdef NONMATCHING static int GetTypeEffectivenessPoints(int move, int targetSpecies, int arg2) { @@ -2908,25 +2915,22 @@ static int GetTypeEffectivenessPoints(int move, int targetSpecies, int arg2) } else { - while (gTypeEffectiveness[i + 0] != TYPE_ENDTABLE) + while (TYPE_EFFECT_ATK_TYPE(i) != TYPE_ENDTABLE) { - if (gTypeEffectiveness[i + 0] == TYPE_FORESIGHT) + if (TYPE_EFFECT_ATK_TYPE(i) == TYPE_FORESIGHT) { i += 3; + continue; } - else + else if (TYPE_EFFECT_ATK_TYPE(i) == moveType) { - u8 val = gTypeEffectiveness[i + 0]; - if (val == moveType) - { - // BUG: * 2 is not necessary and makes the condition always false if the ability is wonder guard. - if (gTypeEffectiveness[i + 1] == defType1 && (defAbility != ABILITY_WONDER_GUARD || gTypeEffectiveness[i + 2] == TYPE_MUL_SUPER_EFFECTIVE * 2)) - typePower = (gTypeEffectiveness[i + 2] * typePower) / 10; - if (gTypeEffectiveness[i + 1] == defType2 && defType1 != defType2 && (defAbility != ABILITY_WONDER_GUARD || gTypeEffectiveness[i + 2] == TYPE_MUL_SUPER_EFFECTIVE * 2)) - typePower = (gTypeEffectiveness[i + 2] * typePower) / 10; - } - i += 3; + // BUG: * 2 is not necessary and makes the condition always false if the ability is wonder guard. + if (TYPE_EFFECT_DEF_TYPE(i) == defType1 && (defAbility != ABILITY_WONDER_GUARD || TYPE_EFFECT_MULTIPLIER(i) == TYPE_MUL_SUPER_EFFECTIVE * 2)) + typePower = (typePower * TYPE_EFFECT_MULTIPLIER(i)) / 10; + if (TYPE_EFFECT_DEF_TYPE(i) == defType2 && defType1 != defType2 && (defAbility != ABILITY_WONDER_GUARD || TYPE_EFFECT_MULTIPLIER(i) == TYPE_MUL_SUPER_EFFECTIVE * 2)) + typePower = (typePower * TYPE_EFFECT_MULTIPLIER(i)) / 10; } + i += 3; } } @@ -2935,19 +2939,19 @@ static int GetTypeEffectivenessPoints(int move, int targetSpecies, int arg2) case 0: switch (typePower) { - case 10: - case 5: - case 0: + case TYPE_x0_50: + case TYPE_x0_25: + case TYPE_x0: default: typePower = 0; break; - case 20: + case TYPE_x1: typePower = 2; break; - case 40: + case TYPE_x2: typePower = 4; break; - case 80: + case TYPE_x4: typePower = 8; break; } @@ -2956,22 +2960,22 @@ static int GetTypeEffectivenessPoints(int move, int targetSpecies, int arg2) switch (typePower) { default: - case 20: + case TYPE_x1: typePower = 0; break; - case 5: + case TYPE_x0_25: typePower = 4; break; - case 0: + case TYPE_x0: typePower = 8; break; - case 10: + case TYPE_x0_50: typePower = 2; break; - case 40: + case TYPE_x2: typePower = -2; break; - case 80: + case TYPE_x4: typePower = -4; break; } @@ -3275,7 +3279,7 @@ static int TournamentIdOfOpponent(int roundId, int trainerId) for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++) { - if (gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId == trainerId) + if (DOME_TRAINERS[i].trainerId == trainerId) break; } @@ -3288,7 +3292,7 @@ static int TournamentIdOfOpponent(int roundId, int trainerId) for (j = sIdToOpponentId[i][roundId]; j < val; j++) { - if (gUnknown_0860D14C[j] != i && !gSaveBlock2Ptr->frontier.domeTrainers[gUnknown_0860D14C[j]].isEliminated) + if (gUnknown_0860D14C[j] != i && !DOME_TRAINERS[gUnknown_0860D14C[j]].isEliminated) break; } @@ -3299,7 +3303,7 @@ static int TournamentIdOfOpponent(int roundId, int trainerId) } else { - if (!gSaveBlock2Ptr->frontier.domeTrainers[sIdToOpponentId[i][roundId]].isEliminated) + if (!DOME_TRAINERS[sIdToOpponentId[i][roundId]].isEliminated) return sIdToOpponentId[i][roundId]; else return 0xFF; @@ -3313,7 +3317,7 @@ static void SetDomeOpponentId(void) static u16 TrainerIdOfPlayerOpponent(void) { - return gSaveBlock2Ptr->frontier.domeTrainers[TournamentIdOfOpponent(gSaveBlock2Ptr->frontier.curChallengeBattleNum, TRAINER_PLAYER)].trainerId; + return DOME_TRAINERS[TournamentIdOfOpponent(gSaveBlock2Ptr->frontier.curChallengeBattleNum, TRAINER_PLAYER)].trainerId; } static void SetDomeOpponentGraphicsId(void) @@ -3369,8 +3373,8 @@ static void Task_ShowOpponentInfo(u8 taskId) EnableInterrupts(INTR_FLAG_VBLANK); CpuFill32(0, (void *)VRAM, VRAM_SIZE); ResetBgsAndClearDma3BusyFlags(0); - InitBgsFromTemplates(0, gUnknown_0860CE84, ARRAY_COUNT(gUnknown_0860CE84)); - InitWindows(gUnknown_0860CEB4); + InitBgsFromTemplates(0, sOpponentInfoBgTemplates, ARRAY_COUNT(sOpponentInfoBgTemplates)); + InitWindows(sOpponentInfoWindowTemplates); DeactivateAllTextPrinters(); gBattle_BG0_X = 0; gBattle_BG0_Y = 0; @@ -3395,7 +3399,7 @@ static void Task_ShowOpponentInfo(u8 taskId) SetGpuReg(REG_OFFSET_WIN1H, 0); SetGpuReg(REG_OFFSET_WIN1V, 0); SetGpuReg(REG_OFFSET_WININ, 0); - SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG0 | WINOUT_WIN01_BG1 | WINOUT_WIN01_BG2 | WINOUT_WIN01_BG3 | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR); + SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG_ALL | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR); ResetPaletteFade(); ResetSpriteData(); FreeAllSpritePalettes(); @@ -3658,12 +3662,12 @@ static void sub_8190B40(struct Sprite *sprite) { if (sprite->data[1]) { - if ((gSaveBlock2Ptr->frontier.domeTrainers[tournmanetTrainerId].isEliminated - && sBattleDomeStruct->unk_10 - 1 < gSaveBlock2Ptr->frontier.domeTrainers[tournmanetTrainerId].eliminatedAt)) + if ((DOME_TRAINERS[tournmanetTrainerId].isEliminated + && sBattleDomeStruct->unk_10 - 1 < DOME_TRAINERS[tournmanetTrainerId].eliminatedAt)) { sprite->invisible = FALSE; } - else if (!gSaveBlock2Ptr->frontier.domeTrainers[tournmanetTrainerId].isEliminated + else if (!DOME_TRAINERS[tournmanetTrainerId].isEliminated && sBattleDomeStruct->unk_10 - 1 < roundId) { sprite->invisible = FALSE; @@ -4501,12 +4505,12 @@ static u8 sub_819221C(u8 taskId) } else if (gMain.newKeys & DPAD_RIGHT) { - if (gSaveBlock2Ptr->frontier.domeTrainers[r10].isEliminated && sBattleDomeStruct->unk_10 - 1 < gSaveBlock2Ptr->frontier.domeTrainers[r10].eliminatedAt) + if (DOME_TRAINERS[r10].isEliminated && sBattleDomeStruct->unk_10 - 1 < DOME_TRAINERS[r10].eliminatedAt) { sBattleDomeStruct->unk_10++; retVal = 4; } - if (!gSaveBlock2Ptr->frontier.domeTrainers[r10].isEliminated && sBattleDomeStruct->unk_10 - 1 < roundId) + if (!DOME_TRAINERS[r10].isEliminated && sBattleDomeStruct->unk_10 - 1 < roundId) { sBattleDomeStruct->unk_10++; retVal = 4; @@ -4582,7 +4586,7 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId) int x = 0, y = 0; u8 palSlot = 0; s16 *allocatedArray = AllocZeroed(sizeof(s16) * 18); - trainerId = gSaveBlock2Ptr->frontier.domeTrainers[trainerTournamentId].trainerId; + trainerId = DOME_TRAINERS[trainerTournamentId].trainerId; if (flags & 1) arrId = 8, windowId = 9, palSlot = 2; @@ -4609,7 +4613,7 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId) { if (trainerId == TRAINER_PLAYER) { - sBattleDomeStruct->arr[2 + i + arrId] = CreateMonIcon(gSaveBlock2Ptr->frontier.domeMonIds[trainerTournamentId][i], + sBattleDomeStruct->arr[2 + i + arrId] = CreateMonIcon(DOME_MONS[trainerTournamentId][i], SpriteCb_MonIcon, x | sInfoTrainerMonX[i], y + sInfoTrainerMonY[i], @@ -4618,7 +4622,7 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId) } else if (trainerId == TRAINER_FRONTIER_BRAIN) { - sBattleDomeStruct->arr[2 + i + arrId] = CreateMonIcon(gSaveBlock2Ptr->frontier.domeMonIds[trainerTournamentId][i], + sBattleDomeStruct->arr[2 + i + arrId] = CreateMonIcon(DOME_MONS[trainerTournamentId][i], SpriteCb_MonIcon, x | sInfoTrainerMonX[i], y + sInfoTrainerMonY[i], @@ -4627,7 +4631,7 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId) } else { - sBattleDomeStruct->arr[2 + i + arrId] = CreateMonIcon(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[trainerTournamentId][i]].species, + sBattleDomeStruct->arr[2 + i + arrId] = CreateMonIcon(gFacilityTrainerMons[DOME_MONS[trainerTournamentId][i]].species, SpriteCb_MonIcon, x | sInfoTrainerMonX[i], y + sInfoTrainerMonY[i], @@ -4646,9 +4650,9 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId) textPrinter.letterSpacing = 2; textPrinter.lineSpacing = 0; textPrinter.unk = 0; - textPrinter.fgColor = 14; - textPrinter.bgColor = 0; - textPrinter.shadowColor = 13; + textPrinter.fgColor = TEXT_DYNAMIC_COLOR_5; + textPrinter.bgColor = TEXT_COLOR_TRANSPARENT; + textPrinter.shadowColor = TEXT_DYNAMIC_COLOR_4; i = 0; if (trainerId == TRAINER_PLAYER) @@ -4688,13 +4692,13 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId) for (i = 0; i < 3; i++) { - textPrinter.currentY = gUnknown_0860D346[i]; + textPrinter.currentY = sSpeciesNameTextYCoords[i]; if (trainerId == TRAINER_PLAYER) - textPrinter.currentChar = gSpeciesNames[gSaveBlock2Ptr->frontier.domeMonIds[trainerTournamentId][i]]; + textPrinter.currentChar = gSpeciesNames[DOME_MONS[trainerTournamentId][i]]; else if (trainerId == TRAINER_FRONTIER_BRAIN) - textPrinter.currentChar = gSpeciesNames[gSaveBlock2Ptr->frontier.domeMonIds[trainerTournamentId][i]]; + textPrinter.currentChar = gSpeciesNames[DOME_MONS[trainerTournamentId][i]]; else - textPrinter.currentChar = gSpeciesNames[gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[trainerTournamentId][i]].species]; + textPrinter.currentChar = gSpeciesNames[gFacilityTrainerMons[DOME_MONS[trainerTournamentId][i]].species]; textPrinter.windowId = 1 + i + windowId; if (i == 1) @@ -4721,7 +4725,7 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId) textPrinter.currentY = 4; AddTextPrinter(&textPrinter, 0, NULL); - for (i = 0; i < 3; i++) + for (i = 0; i < FRONTIER_PARTY_SIZE; i++) { for (j = 0; j < MAX_MON_MOVES; j++) { @@ -4732,7 +4736,7 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId) else if (trainerId == TRAINER_PLAYER) allocatedArray[k] += sMovePointsForDomeTrainers[gSaveBlock2Ptr->frontier.field_EFC[i].moves[j]][k]; else - allocatedArray[k] += sMovePointsForDomeTrainers[gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[trainerTournamentId][i]].moves[j]][k]; + allocatedArray[k] += sMovePointsForDomeTrainers[gFacilityTrainerMons[DOME_MONS[trainerTournamentId][i]].moves[j]][k]; } } } @@ -4764,9 +4768,9 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId) if (trainerId == TRAINER_FRONTIER_BRAIN || trainerId == TRAINER_PLAYER) { - for (i = 0; i < 3; i++) + for (i = 0; i < FRONTIER_PARTY_SIZE; i++) { - for (j = 0; j < 6; j++) + for (j = 0; j < NUM_STATS; j++) { if (trainerId == TRAINER_FRONTIER_BRAIN) allocatedArray[j] = GetFrontierBrainMonEvs(i, j); @@ -4805,7 +4809,7 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId) { for (i = 0; i < 3; i++) { - int evBits = gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[trainerTournamentId][i]].evSpread; + int evBits = gFacilityTrainerMons[DOME_MONS[trainerTournamentId][i]].evSpread; for (k = 0, j = 0; j < NUM_STATS; j++) { allocatedArray[j] = 0; @@ -4814,7 +4818,7 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId) evBits >>= 1; } k = MAX_TOTAL_EVS / k; - evBits = gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[trainerTournamentId][i]].evSpread; + evBits = gFacilityTrainerMons[DOME_MONS[trainerTournamentId][i]].evSpread; for (j = 0; j < NUM_STATS; j++) { if (evBits & 1) @@ -4825,7 +4829,7 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId) allocatedArray[6] += allocatedArray[0]; for (j = 0; j < 5; j++) { - nature = gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[trainerTournamentId][i]].nature; + nature = gFacilityTrainerMons[DOME_MONS[trainerTournamentId][i]].nature; if (gNatureStatTable[nature][j] > 0) { allocatedArray[j + 7] += (allocatedArray[j + 1] * 110) / 100; @@ -4933,25 +4937,25 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTournamentId) Free(allocatedArray); } -static int sub_8192F08(u8 arg0, u8 *arg1) +static int sub_8192F08(u8 matchNum, u8 *arg1) { int i; u8 tournamentId; int retVal = 0; int count = 0; - for (i = gUnknown_0860D3C4[arg0][0]; i < gUnknown_0860D3C4[arg0][0] + gUnknown_0860D3C4[arg0][1]; i++) + for (i = gUnknown_0860D3C4[matchNum][0]; i < gUnknown_0860D3C4[matchNum][0] + gUnknown_0860D3C4[matchNum][1]; i++) { tournamentId = gUnknown_0860D3B4[i]; - if (!gSaveBlock2Ptr->frontier.domeTrainers[tournamentId].isEliminated) + if (!DOME_TRAINERS[tournamentId].isEliminated) { arg1[count] = tournamentId; - if (gSaveBlock2Ptr->frontier.domeTrainers[tournamentId].trainerId == TRAINER_PLAYER) + if (DOME_TRAINERS[tournamentId].trainerId == TRAINER_PLAYER) StringCopy(gStringVar1, gSaveBlock2Ptr->playerName); - else if (gSaveBlock2Ptr->frontier.domeTrainers[tournamentId].trainerId == TRAINER_FRONTIER_BRAIN) + else if (DOME_TRAINERS[tournamentId].trainerId == TRAINER_FRONTIER_BRAIN) CopyDomeBrainTrainerName(gStringVar1); else - CopyDomeTrainerName(gStringVar1, gSaveBlock2Ptr->frontier.domeTrainers[tournamentId].trainerId); + CopyDomeTrainerName(gStringVar1, DOME_TRAINERS[tournamentId].trainerId); count++; } } @@ -4959,29 +4963,29 @@ static int sub_8192F08(u8 arg0, u8 *arg1) if (count == 2) return 0; - for (i = gUnknown_0860D3C4[arg0][0]; i < gUnknown_0860D3C4[arg0][0] + gUnknown_0860D3C4[arg0][1]; i++) + for (i = gUnknown_0860D3C4[matchNum][0]; i < gUnknown_0860D3C4[matchNum][0] + gUnknown_0860D3C4[matchNum][1]; i++) { tournamentId = gUnknown_0860D3B4[i]; - if (gSaveBlock2Ptr->frontier.domeTrainers[tournamentId].isEliminated - && gSaveBlock2Ptr->frontier.domeTrainers[tournamentId].eliminatedAt >= gUnknown_0860D3C4[arg0][2]) + if (DOME_TRAINERS[tournamentId].isEliminated + && DOME_TRAINERS[tournamentId].eliminatedAt >= gUnknown_0860D3C4[matchNum][2]) { arg1[count] = tournamentId; count++; - if (gSaveBlock2Ptr->frontier.domeTrainers[tournamentId].eliminatedAt == gUnknown_0860D3C4[arg0][2]) + if (DOME_TRAINERS[tournamentId].eliminatedAt == gUnknown_0860D3C4[matchNum][2]) { - StringCopy(gStringVar2, gMoveNames[gSaveBlock2Ptr->frontier.field_EC0[tournamentId]]); - retVal = gSaveBlock2Ptr->frontier.domeTrainers[tournamentId].unk3 * 2; - if (gSaveBlock2Ptr->frontier.field_EC0[tournamentId] == 0 && gSaveBlock2Ptr->frontier.domeTrainers[tournamentId].unk3 == 0) + StringCopy(gStringVar2, gMoveNames[gSaveBlock2Ptr->frontier.domeWinningMoves[tournamentId]]); + retVal = DOME_TRAINERS[tournamentId].forfeited * 2; + if (gSaveBlock2Ptr->frontier.domeWinningMoves[tournamentId] == MOVE_NONE && DOME_TRAINERS[tournamentId].forfeited == FALSE) retVal = 4; } else { - if (gSaveBlock2Ptr->frontier.domeTrainers[tournamentId].trainerId == TRAINER_PLAYER) + if (DOME_TRAINERS[tournamentId].trainerId == TRAINER_PLAYER) StringCopy(gStringVar1, gSaveBlock2Ptr->playerName); - else if (gSaveBlock2Ptr->frontier.domeTrainers[tournamentId].trainerId == TRAINER_FRONTIER_BRAIN) + else if (DOME_TRAINERS[tournamentId].trainerId == TRAINER_FRONTIER_BRAIN) CopyDomeBrainTrainerName(gStringVar1); else - CopyDomeTrainerName(gStringVar1, gSaveBlock2Ptr->frontier.domeTrainers[tournamentId].trainerId); + CopyDomeTrainerName(gStringVar1, DOME_TRAINERS[tournamentId].trainerId); } } @@ -4989,7 +4993,7 @@ static int sub_8192F08(u8 arg0, u8 *arg1) break; } - if (arg0 == 14) + if (matchNum == 14) return retVal + 2; else return retVal + 1; @@ -5024,9 +5028,9 @@ static void DisplayMatchInfoOnCard(u8 flags, u8 matchNo) for (i = 0; i < 2; i++) { tournamentIds[i] = sBattleDomeStruct->unk_11[i]; - trainerIds[i] = gSaveBlock2Ptr->frontier.domeTrainers[tournamentIds[i]].trainerId; - if (gSaveBlock2Ptr->frontier.domeTrainers[tournamentIds[i]].eliminatedAt <= gUnknown_0860D3C4[matchNo][2] - && gSaveBlock2Ptr->frontier.domeTrainers[tournamentIds[i]].isEliminated) + trainerIds[i] = DOME_TRAINERS[tournamentIds[i]].trainerId; + if (DOME_TRAINERS[tournamentIds[i]].eliminatedAt <= gUnknown_0860D3C4[matchNo][2] + && DOME_TRAINERS[tournamentIds[i]].isEliminated) lost[i] = TRUE; else lost[i] = FALSE; @@ -5063,7 +5067,7 @@ static void DisplayMatchInfoOnCard(u8 flags, u8 matchNo) { if (trainerIds[0] == TRAINER_PLAYER) { - sBattleDomeStruct->arr[2 + i + arrId] = CreateMonIcon(gSaveBlock2Ptr->frontier.domeMonIds[tournamentIds[0]][i], + sBattleDomeStruct->arr[2 + i + arrId] = CreateMonIcon(DOME_MONS[tournamentIds[0]][i], SpriteCb_MonIcon, x | sFirstTrainerMonX[i], y + sFirstTrainerMonY[i], @@ -5072,7 +5076,7 @@ static void DisplayMatchInfoOnCard(u8 flags, u8 matchNo) } else if (trainerIds[0] == TRAINER_FRONTIER_BRAIN) { - sBattleDomeStruct->arr[2 + i + arrId] = CreateMonIcon(gSaveBlock2Ptr->frontier.domeMonIds[tournamentIds[0]][i], + sBattleDomeStruct->arr[2 + i + arrId] = CreateMonIcon(DOME_MONS[tournamentIds[0]][i], SpriteCb_MonIcon, x | sFirstTrainerMonX[i], y + sFirstTrainerMonY[i], @@ -5081,7 +5085,7 @@ static void DisplayMatchInfoOnCard(u8 flags, u8 matchNo) } else { - sBattleDomeStruct->arr[2 + i + arrId] = CreateMonIcon(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[tournamentIds[0]][i]].species, + sBattleDomeStruct->arr[2 + i + arrId] = CreateMonIcon(gFacilityTrainerMons[DOME_MONS[tournamentIds[0]][i]].species, SpriteCb_MonIcon, x | sFirstTrainerMonX[i], y + sFirstTrainerMonY[i], @@ -5103,7 +5107,7 @@ static void DisplayMatchInfoOnCard(u8 flags, u8 matchNo) { if (trainerIds[1] == TRAINER_PLAYER) { - sBattleDomeStruct->arr[5 + i + arrId] = CreateMonIcon(gSaveBlock2Ptr->frontier.domeMonIds[tournamentIds[1]][i], + sBattleDomeStruct->arr[5 + i + arrId] = CreateMonIcon(DOME_MONS[tournamentIds[1]][i], SpriteCb_MonIcon, x | sSecondTrainerMonX[i], y + sSecondTrainerMonY[i], @@ -5112,7 +5116,7 @@ static void DisplayMatchInfoOnCard(u8 flags, u8 matchNo) } else if (trainerIds[1] == TRAINER_FRONTIER_BRAIN) { - sBattleDomeStruct->arr[5 + i + arrId] = CreateMonIcon(gSaveBlock2Ptr->frontier.domeMonIds[tournamentIds[1]][i], + sBattleDomeStruct->arr[5 + i + arrId] = CreateMonIcon(DOME_MONS[tournamentIds[1]][i], SpriteCb_MonIcon, x | sSecondTrainerMonX[i], y + sSecondTrainerMonY[i], @@ -5121,7 +5125,7 @@ static void DisplayMatchInfoOnCard(u8 flags, u8 matchNo) } else { - sBattleDomeStruct->arr[5 + i + arrId] = CreateMonIcon(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[tournamentIds[1]][i]].species, + sBattleDomeStruct->arr[5 + i + arrId] = CreateMonIcon(gFacilityTrainerMons[DOME_MONS[tournamentIds[1]][i]].species, SpriteCb_MonIcon, x | sSecondTrainerMonX[i], y + sSecondTrainerMonY[i], @@ -5219,8 +5223,8 @@ static void ShowPreviousDomeResultsTourneyTree(void) u8 taskId; InitDomeFacilityTrainersAndMons(); - gSaveBlock2Ptr->frontier.lvlMode = gSaveBlock2Ptr->frontier.field_D0A - 1; - gSaveBlock2Ptr->frontier.curChallengeBattleNum = 3; + gSaveBlock2Ptr->frontier.lvlMode = gSaveBlock2Ptr->frontier.domeLvlMode - 1; + gSaveBlock2Ptr->frontier.curChallengeBattleNum = DOME_FINAL; taskId = CreateTask(Task_ShowTourneyTree, 0); gTasks[taskId].data[0] = 0; gTasks[taskId].data[1] = 0; @@ -5331,7 +5335,7 @@ static u8 UpdateTourneyTreeCursor(u8 taskId) } else if (gMain.newKeys & A_BUTTON) { - if (tourneyTreeCursorSpriteId < 16) + if (tourneyTreeCursorSpriteId < DOME_TOURNAMENT_TRAINERS_COUNT) { PlaySE(SE_SELECT); retVal = 2; @@ -5380,21 +5384,21 @@ static void ResolveDomeRoundWinners(void) { int i; - if (gSpecialVar_0x8005 == 1) + if (gSpecialVar_0x8005 == DOME_PLAYER_WON_MATCH) { - gSaveBlock2Ptr->frontier.domeTrainers[TrainerIdToTournamentId(gTrainerBattleOpponent_A)].isEliminated = 1; - gSaveBlock2Ptr->frontier.domeTrainers[TrainerIdToTournamentId(gTrainerBattleOpponent_A)].eliminatedAt = gSaveBlock2Ptr->frontier.curChallengeBattleNum; - gSaveBlock2Ptr->frontier.field_EC0[TrainerIdToTournamentId(gTrainerBattleOpponent_A)] = gBattleResults.lastUsedMovePlayer; + DOME_TRAINERS[TrainerIdToTournamentId(gTrainerBattleOpponent_A)].isEliminated = TRUE; + DOME_TRAINERS[TrainerIdToTournamentId(gTrainerBattleOpponent_A)].eliminatedAt = gSaveBlock2Ptr->frontier.curChallengeBattleNum; + gSaveBlock2Ptr->frontier.domeWinningMoves[TrainerIdToTournamentId(gTrainerBattleOpponent_A)] = gBattleResults.lastUsedMovePlayer; if (gSaveBlock2Ptr->frontier.curChallengeBattleNum < DOME_FINAL) DecideRoundWinners(gSaveBlock2Ptr->frontier.curChallengeBattleNum); } - else + else // DOME_PLAYER_LOST_MATCH or DOME_PLAYER_RETIRED { - gSaveBlock2Ptr->frontier.domeTrainers[TrainerIdToTournamentId(TRAINER_PLAYER)].isEliminated = 1; - gSaveBlock2Ptr->frontier.domeTrainers[TrainerIdToTournamentId(TRAINER_PLAYER)].eliminatedAt = gSaveBlock2Ptr->frontier.curChallengeBattleNum; - gSaveBlock2Ptr->frontier.field_EC0[TrainerIdToTournamentId(TRAINER_PLAYER)] = gBattleResults.lastUsedMoveOpponent; - if (gBattleOutcome == B_OUTCOME_FORFEITED || gSpecialVar_0x8005 == 9) - gSaveBlock2Ptr->frontier.domeTrainers[TrainerIdToTournamentId(TRAINER_PLAYER)].unk3 = 1; + DOME_TRAINERS[TrainerIdToTournamentId(TRAINER_PLAYER)].isEliminated = TRUE; + DOME_TRAINERS[TrainerIdToTournamentId(TRAINER_PLAYER)].eliminatedAt = gSaveBlock2Ptr->frontier.curChallengeBattleNum; + gSaveBlock2Ptr->frontier.domeWinningMoves[TrainerIdToTournamentId(TRAINER_PLAYER)] = gBattleResults.lastUsedMoveOpponent; + if (gBattleOutcome == B_OUTCOME_FORFEITED || gSpecialVar_0x8005 == DOME_PLAYER_RETIRED) + DOME_TRAINERS[TrainerIdToTournamentId(TRAINER_PLAYER)].forfeited = TRUE; for (i = gSaveBlock2Ptr->frontier.curChallengeBattleNum; i < DOME_ROUNDS_COUNT; i++) DecideRoundWinners(i); } @@ -5403,71 +5407,72 @@ static void ResolveDomeRoundWinners(void) static u16 GetWinningMove(int winnerTournamentId, int loserTournamentId, u8 roundId) { int i, j, k; - int moveScores[4 * 3]; - u16 moveIds[4 * 3]; + int moveScores[MAX_MON_MOVES * FRONTIER_PARTY_SIZE]; + u16 moveIds[MAX_MON_MOVES * FRONTIER_PARTY_SIZE]; u16 bestScore = 0; u16 bestId = 0; int movePower = 0; SetFacilityPtrsGetLevel(); // Calc move points of all 4 moves for all 3 pokemon hitting all 3 target mons. - for (i = 0; i < 3; i++) + for (i = 0; i < FRONTIER_PARTY_SIZE; i++) { for (j = 0; j < MAX_MON_MOVES; j++) { - // TODO: Clean this up, looks like a different data structure - moveScores[i * 4 + j] = 0; - if (gSaveBlock2Ptr->frontier.domeTrainers[winnerTournamentId].trainerId == TRAINER_FRONTIER_BRAIN) - moveIds[i * 4 + j] = GetFrontierBrainMonMove(i, j); + // TODO: Clean this up, looks like a different data structure (2D array) + moveScores[i * MAX_MON_MOVES + j] = 0; + if (DOME_TRAINERS[winnerTournamentId].trainerId == TRAINER_FRONTIER_BRAIN) + moveIds[i * MAX_MON_MOVES + j] = GetFrontierBrainMonMove(i, j); else - moveIds[i * 4 + j] = gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[winnerTournamentId][i]].moves[j]; + moveIds[i * MAX_MON_MOVES + j] = gFacilityTrainerMons[DOME_MONS[winnerTournamentId][i]].moves[j]; - movePower = gBattleMoves[moveIds[i * 4 + j]].power; + movePower = gBattleMoves[moveIds[i * MAX_MON_MOVES + j]].power; if (movePower == 0) movePower = 40; else if (movePower == 1) movePower = 60; - else if (moveIds[i * 4 + j] == MOVE_SELF_DESTRUCT || moveIds[i * 4 + j] == MOVE_EXPLOSION) + else if (moveIds[i * MAX_MON_MOVES + j] == MOVE_SELF_DESTRUCT + || moveIds[i * MAX_MON_MOVES + j] == MOVE_EXPLOSION) movePower /= 2; - for (k = 0; k < 3; k++) + for (k = 0; k < FRONTIER_PARTY_SIZE; k++) { u32 var = 0; - u32 targetSpecies = 0; - u32 targetAbility = 0; + u16 targetSpecies = SPECIES_NONE; + u16 targetAbility = ABILITY_NONE; do { var = Random32(); - } while (gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[loserTournamentId][k]].nature != GetNatureFromPersonality(var)); + } while (gFacilityTrainerMons[DOME_MONS[loserTournamentId][k]].nature != GetNatureFromPersonality(var)); - targetSpecies = gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[loserTournamentId][k]].species; + targetSpecies = gFacilityTrainerMons[DOME_MONS[loserTournamentId][k]].species; if (var & 1) targetAbility = gBaseStats[targetSpecies].abilities[1]; else targetAbility = gBaseStats[targetSpecies].abilities[0]; - var = AI_TypeCalc(moveIds[i * 4 + j], targetSpecies, targetAbility); + var = AI_TypeCalc(moveIds[i * MAX_MON_MOVES + j], targetSpecies, targetAbility); if (var & MOVE_RESULT_NOT_VERY_EFFECTIVE && var & MOVE_RESULT_SUPER_EFFECTIVE) - moveScores[i * 4 + j] += movePower; + moveScores[i * MAX_MON_MOVES + j] += movePower; else if (var & MOVE_RESULT_NO_EFFECT) - moveScores[i * 4 + j] += 0; + moveScores[i * MAX_MON_MOVES + j] += 0; else if (var & MOVE_RESULT_SUPER_EFFECTIVE) - moveScores[i * 4 + j] += movePower * 2; + moveScores[i * MAX_MON_MOVES + j] += movePower * 2; else if (var & MOVE_RESULT_NOT_VERY_EFFECTIVE) - moveScores[i * 4 + j] += movePower / 2; + moveScores[i * MAX_MON_MOVES + j] += movePower / 2; else - moveScores[i * 4 + j] += movePower; + moveScores[i * MAX_MON_MOVES + j] += movePower; } - if (bestScore < moveScores[i * 4 + j]) + if (bestScore < moveScores[i * MAX_MON_MOVES + j]) { - bestId = i * 4 + j; - bestScore = moveScores[i * 4 + j]; + bestId = i * MAX_MON_MOVES + j; + bestScore = moveScores[i * MAX_MON_MOVES + j]; } - else if (bestScore == moveScores[i * 4 + j]) + else if (bestScore == moveScores[i * MAX_MON_MOVES + j]) { - if (moveIds[bestId] < moveIds[i * 4 + j]) // Why not use (Random() & 1) instead of promoting moves with a higher id? - bestId = i * 4 + j; + if (moveIds[bestId] < moveIds[i * MAX_MON_MOVES + j]) // Why not use (Random() & 1) instead of promoting moves with a higher id? + bestId = i * MAX_MON_MOVES + j; } } } @@ -5476,7 +5481,7 @@ static u16 GetWinningMove(int winnerTournamentId, int loserTournamentId, u8 roun goto LABEL; while (j != 0) { - for (j = 0, k = 0; k < MAX_MON_MOVES * 3; k++) + for (j = 0, k = 0; k < MAX_MON_MOVES * FRONTIER_PARTY_SIZE; k++) { if (bestScore < moveScores[k]) { @@ -5494,7 +5499,7 @@ static u16 GetWinningMove(int winnerTournamentId, int loserTournamentId, u8 roun { for (i = 0; i < roundId - 1; i++) { - if (gSaveBlock2Ptr->frontier.field_EC0[sub_81953E8(winnerTournamentId, i)] == moveIds[j]) + if (gSaveBlock2Ptr->frontier.domeWinningMoves[sub_81953E8(winnerTournamentId, i)] == moveIds[j]) break; } if (i == roundId - 1) @@ -5503,7 +5508,7 @@ static u16 GetWinningMove(int winnerTournamentId, int loserTournamentId, u8 roun moveScores[j] = 0; bestScore = 0; j = 0; - for (k = 0; k < MAX_MON_MOVES * 3; k++) + for (k = 0; k < MAX_MON_MOVES * FRONTIER_PARTY_SIZE; k++) j += moveScores[k]; } } @@ -5552,7 +5557,7 @@ static void Task_ShowTourneyTree(u8 taskId) SetGpuReg(REG_OFFSET_WIN1H, 0x9098); SetGpuReg(REG_OFFSET_WIN1V, 0x9F); SetGpuReg(REG_OFFSET_WININ, 0); - SetGpuReg(REG_OFFSET_WINOUT, 0x3F); + SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG_ALL | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR); ResetPaletteFade(); ResetSpriteData(); FreeAllSpritePalettes(); @@ -5611,14 +5616,14 @@ static void Task_ShowTourneyTree(u8 taskId) { int roundId, var2; - CopyDomeTrainerName(gDisplayedStringBattle, gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId); + CopyDomeTrainerName(gDisplayedStringBattle, DOME_TRAINERS[i].trainerId); if (r10 == 1) { - if (gSaveBlock2Ptr->frontier.domeTrainers[i].isEliminated) + if (DOME_TRAINERS[i].isEliminated) { - if (gSaveBlock2Ptr->frontier.domeTrainers[i].eliminatedAt != 0) + if (DOME_TRAINERS[i].eliminatedAt != 0) { - var2 = gSaveBlock2Ptr->frontier.domeTrainers[i].eliminatedAt - 1; + var2 = DOME_TRAINERS[i].eliminatedAt - 1; sub_81948EC(i, var2); } } @@ -5629,11 +5634,11 @@ static void Task_ShowTourneyTree(u8 taskId) } else if (r10 == 0) { - if (gSaveBlock2Ptr->frontier.domeTrainers[i].isEliminated) + if (DOME_TRAINERS[i].isEliminated) { - if (gSaveBlock2Ptr->frontier.domeTrainers[i].eliminatedAt != 0) + if (DOME_TRAINERS[i].eliminatedAt != 0) { - var2 = gSaveBlock2Ptr->frontier.domeTrainers[i].eliminatedAt - 1; + var2 = DOME_TRAINERS[i].eliminatedAt - 1; sub_81948EC(i, var2); } } @@ -5652,11 +5657,11 @@ static void Task_ShowTourneyTree(u8 taskId) else roundId = gSaveBlock2Ptr->frontier.curChallengeBattleNum - 1; - if ( ((r10 == 1 && gSaveBlock2Ptr->frontier.domeTrainers[i].eliminatedAt < gSaveBlock2Ptr->frontier.curChallengeBattleNum - 1) - || (r10 == 0 && gSaveBlock2Ptr->frontier.domeTrainers[i].eliminatedAt <= roundId)) - && gSaveBlock2Ptr->frontier.domeTrainers[i].isEliminated) + if ( ((r10 == 1 && DOME_TRAINERS[i].eliminatedAt < gSaveBlock2Ptr->frontier.curChallengeBattleNum - 1) + || (r10 == 0 && DOME_TRAINERS[i].eliminatedAt <= roundId)) + && DOME_TRAINERS[i].isEliminated) { - if (gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId == TRAINER_PLAYER) + if (DOME_TRAINERS[i].trainerId == TRAINER_PLAYER) { textPrinter.fgColor = 3; textPrinter.shadowColor = 4; @@ -5669,7 +5674,7 @@ static void Task_ShowTourneyTree(u8 taskId) } else { - if (gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId == TRAINER_PLAYER) + if (DOME_TRAINERS[i].trainerId == TRAINER_PLAYER) { textPrinter.fgColor = 3; textPrinter.shadowColor = 4; @@ -5782,9 +5787,9 @@ static void sub_8194950(u8 taskId) textPrinter.shadowColor = 13; for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++) { - CopyDomeTrainerName(gDisplayedStringBattle, gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId); - if (gSaveBlock2Ptr->frontier.domeTrainers[i].eliminatedAt == gSaveBlock2Ptr->frontier.curChallengeBattleNum - 1 - && gSaveBlock2Ptr->frontier.domeTrainers[i].isEliminated) + CopyDomeTrainerName(gDisplayedStringBattle, DOME_TRAINERS[i].trainerId); + if (DOME_TRAINERS[i].eliminatedAt == gSaveBlock2Ptr->frontier.curChallengeBattleNum - 1 + && DOME_TRAINERS[i].isEliminated) { if (gUnknown_0860D3F1[i][0] == 0) textPrinter.currentX = GetStringWidthDifference(textPrinter.fontId, gDisplayedStringBattle, 0x3D, textPrinter.letterSpacing); @@ -5796,7 +5801,7 @@ static void sub_8194950(u8 taskId) textPrinter.currentY = gUnknown_0860D3F1[i][1]; AddTextPrinter(&textPrinter, 0, NULL); } - if (!gSaveBlock2Ptr->frontier.domeTrainers[i].isEliminated) + if (!DOME_TRAINERS[i].isEliminated) { int roundId = gSaveBlock2Ptr->frontier.curChallengeBattleNum - 1; sub_81948EC(i, roundId); @@ -5862,7 +5867,8 @@ static void HblankCb_BattleDome(void) { if (vCount < 50) { - REG_WININ = WININ_WIN0_BG0 | WININ_WIN0_BG1 | WININ_WIN0_BG3 | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG0 | WININ_WIN1_BG1 | WININ_WIN1_BG3 | WININ_WIN1_OBJ | WININ_WIN1_CLR; + REG_WININ = WININ_WIN0_BG0 | WININ_WIN0_BG1 | WININ_WIN0_BG3 | WININ_WIN0_OBJ | WININ_WIN0_CLR + | WININ_WIN1_BG0 | WININ_WIN1_BG1 | WININ_WIN1_BG3 | WININ_WIN1_OBJ | WININ_WIN1_CLR; SET_WIN0H_WIN1H(WIN_RANGE(152, 155), WIN_RANGE(85, 88)); return; } @@ -5870,13 +5876,15 @@ static void HblankCb_BattleDome(void) { if (vCount < 75) { - REG_WININ = WININ_WIN0_BG0 | WININ_WIN0_BG1 | WININ_WIN0_BG3 | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG0 | WININ_WIN1_BG1 | WININ_WIN1_BG3 | WININ_WIN1_OBJ | WININ_WIN1_CLR; + REG_WININ = WININ_WIN0_BG0 | WININ_WIN0_BG1 | WININ_WIN0_BG3 | WININ_WIN0_OBJ | WININ_WIN0_CLR + | WININ_WIN1_BG0 | WININ_WIN1_BG1 | WININ_WIN1_BG3 | WININ_WIN1_OBJ | WININ_WIN1_CLR; SET_WIN0H_WIN1H(WIN_RANGE(144, 152), WIN_RANGE(88, 96)); return; } else if (vCount < 82) { - REG_WININ = WININ_WIN0_BG0 | WININ_WIN0_BG1 | WININ_WIN0_BG3 | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG0 | WININ_WIN1_BG1 | WININ_WIN1_BG3 | WININ_WIN1_OBJ | WININ_WIN1_CLR; + REG_WININ = WININ_WIN0_BG0 | WININ_WIN0_BG1 | WININ_WIN0_BG3 | WININ_WIN0_OBJ | WININ_WIN0_CLR + | WININ_WIN1_BG0 | WININ_WIN1_BG1 | WININ_WIN1_BG3 | WININ_WIN1_OBJ | WININ_WIN1_CLR; SET_WIN0H_WIN1H(WIN_RANGE(152, 155), WIN_RANGE(85, 88)); return; } @@ -5884,13 +5892,15 @@ static void HblankCb_BattleDome(void) { if (vCount < 103) { - REG_WININ = WININ_WIN0_BG0 | WININ_WIN0_BG1 | WININ_WIN0_BG2 | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG0 | WININ_WIN1_BG1 | WININ_WIN1_BG2 | WININ_WIN1_OBJ | WININ_WIN1_CLR; + REG_WININ = WININ_WIN0_BG0 | WININ_WIN0_BG1 | WININ_WIN0_BG2 | WININ_WIN0_OBJ | WININ_WIN0_CLR + | WININ_WIN1_BG0 | WININ_WIN1_BG1 | WININ_WIN1_BG2 | WININ_WIN1_OBJ | WININ_WIN1_CLR; SET_WIN0H_WIN1H(WIN_RANGE(152, 155), WIN_RANGE(85, 88)); return; } else if (vCount < 119) { - REG_WININ = WININ_WIN0_BG0 | WININ_WIN0_BG1 | WININ_WIN0_BG2 | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG0 | WININ_WIN1_BG1 | WININ_WIN1_BG2 | WININ_WIN1_OBJ | WININ_WIN1_CLR; + REG_WININ = WININ_WIN0_BG0 | WININ_WIN0_BG1 | WININ_WIN0_BG2 | WININ_WIN0_OBJ | WININ_WIN0_CLR + | WININ_WIN1_BG0 | WININ_WIN1_BG1 | WININ_WIN1_BG2 | WININ_WIN1_OBJ | WININ_WIN1_CLR; SET_WIN0H_WIN1H(WIN_RANGE(144, 152), WIN_RANGE(88, 96)); return; } @@ -5898,7 +5908,8 @@ static void HblankCb_BattleDome(void) { if (vCount_ < 135) { - REG_WININ = WININ_WIN0_BG0 | WININ_WIN0_BG1 | WININ_WIN0_BG2 | WININ_WIN0_OBJ | WININ_WIN0_CLR | WININ_WIN1_BG0 | WININ_WIN1_BG1 | WININ_WIN1_BG2 | WININ_WIN1_OBJ | WININ_WIN1_CLR; + REG_WININ = WININ_WIN0_BG0 | WININ_WIN0_BG1 | WININ_WIN0_BG2 | WININ_WIN0_OBJ | WININ_WIN0_CLR + | WININ_WIN1_BG0 | WININ_WIN1_BG1 | WININ_WIN1_BG2 | WININ_WIN1_OBJ | WININ_WIN1_CLR; SET_WIN0H_WIN1H(WIN_RANGE(152, 155), WIN_RANGE(85, 88)); return; } @@ -5907,7 +5918,8 @@ static void HblankCb_BattleDome(void) } } - REG_WININ = WININ_WIN0_BG_ALL | WININ_WIN0_CLR | WININ_WIN0_OBJ | WININ_WIN1_BG_ALL | WININ_WIN1_CLR | WININ_WIN1_OBJ; + REG_WININ = WININ_WIN0_BG_ALL | WININ_WIN0_CLR | WININ_WIN0_OBJ + | WININ_WIN1_BG_ALL | WININ_WIN1_CLR | WININ_WIN1_OBJ; SET_WIN0H_WIN1H(0, 0); } @@ -5961,7 +5973,7 @@ static void RestoreDomePlayerPartyHeldItems(void) { int i; - for (i = 0; i < 2; i++) + for (i = 0; i < DOME_BATTLE_PARTY_SIZE; i++) { int playerMonId = gSaveBlock2Ptr->frontier.selectedPartyMons[gSelectedOrderFromParty[i] - 1] - 1; u16 item = GetMonData(&gSaveBlock1Ptr->playerParty[playerMonId], MON_DATA_HELD_ITEM, NULL); @@ -5969,7 +5981,7 @@ static void RestoreDomePlayerPartyHeldItems(void) } } -static void ReduceDomePlayerPartyTo3Mons(void) +static void ReduceDomePlayerPartyToSelectedMons(void) { ReducePlayerPartyToSelectedMons(); } @@ -5989,13 +6001,14 @@ static void BufferLastDomeWinnerName(void) InitDomeFacilityTrainersAndMons(); for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++) { - if (!gSaveBlock2Ptr->frontier.domeTrainers[i].isEliminated) + if (!DOME_TRAINERS[i].isEliminated) break; } - CopyDomeTrainerName(gStringVar1, gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId); + CopyDomeTrainerName(gStringVar1, DOME_TRAINERS[i].trainerId); } -static void sub_8194F58(void) +// For showing the previous tourney results before the player has entered a challenge +static void InitRandomTourneyTreeResults(void) { int i, j, k; int monLevel; @@ -6011,18 +6024,18 @@ static void sub_8194F58(void) species[0] = 0; species[1] = 0; species[2] = 0; - if ((gSaveBlock2Ptr->frontier.field_D0A != -gSaveBlock2Ptr->frontier.field_D0B) && gSaveBlock2Ptr->frontier.challengeStatus != CHALLENGE_STATUS_SAVING) + if ((gSaveBlock2Ptr->frontier.domeLvlMode != -gSaveBlock2Ptr->frontier.domeBattleMode) && gSaveBlock2Ptr->frontier.challengeStatus != CHALLENGE_STATUS_SAVING) return; statSums = AllocZeroed(sizeof(u16) * DOME_TOURNAMENT_TRAINERS_COUNT); statValues = AllocZeroed(sizeof(int) * NUM_STATS); lvlMode = gSaveBlock2Ptr->frontier.lvlMode; - gSaveBlock2Ptr->frontier.lvlMode = 0; + gSaveBlock2Ptr->frontier.lvlMode = FRONTIER_LVL_50; // This one, I'd like to call a 'C fakematching'. { u8 one; - gSaveBlock2Ptr->frontier.field_D0A = (one = 1); - gSaveBlock2Ptr->frontier.field_D0B = one; + gSaveBlock2Ptr->frontier.domeLvlMode = (one = 1); + gSaveBlock2Ptr->frontier.domeBattleMode = one; } for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++) @@ -6038,12 +6051,12 @@ static void sub_8194F58(void) for (j = 0; j < i; j++) { - if (gSaveBlock2Ptr->frontier.domeTrainers[j].trainerId == trainerId) + if (DOME_TRAINERS[j].trainerId == trainerId) break; } } while (j != i); - gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId = trainerId; + DOME_TRAINERS[i].trainerId = trainerId; for (j = 0; j < FRONTIER_PARTY_SIZE; j++) { // Make sure the mon is valid. @@ -6052,7 +6065,7 @@ static void sub_8194F58(void) monSetId = RandomizeFacilityTrainerMonSet(trainerId); for (k = 0; k < j; k++) { - int checkingMonId = gSaveBlock2Ptr->frontier.domeMonIds[i][k]; + int checkingMonId = DOME_MONS[i][k]; if (checkingMonId == monSetId || species[0] == gFacilityTrainerMons[monSetId].species || species[1] == gFacilityTrainerMons[monSetId].species @@ -6061,12 +6074,12 @@ static void sub_8194F58(void) } } while (k != j); - gSaveBlock2Ptr->frontier.domeMonIds[i][j] = monSetId; + DOME_MONS[i][j] = monSetId; species[j] = gFacilityTrainerMons[monSetId].species; } - gSaveBlock2Ptr->frontier.domeTrainers[i].isEliminated = 0; - gSaveBlock2Ptr->frontier.domeTrainers[i].eliminatedAt = 0; - gSaveBlock2Ptr->frontier.domeTrainers[i].unk3 = 0; + DOME_TRAINERS[i].isEliminated = FALSE; + DOME_TRAINERS[i].eliminatedAt = 0; + DOME_TRAINERS[i].forfeited = FALSE; } monLevel = 50; @@ -6074,13 +6087,13 @@ static void sub_8194F58(void) { monTypesBits = 0; statSums[i] = 0; - ivs = GetDomeTrainerMonIvs(gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId); + ivs = GetDomeTrainerMonIvs(DOME_TRAINERS[i].trainerId); for (j = 0; j < FRONTIER_PARTY_SIZE; j++) { - CalcDomeMonStats(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[i][j]].species, + CalcDomeMonStats(gFacilityTrainerMons[DOME_MONS[i][j]].species, monLevel, ivs, - gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[i][j]].evSpread, - gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[i][j]].nature, + gFacilityTrainerMons[DOME_MONS[i][j]].evSpread, + gFacilityTrainerMons[DOME_MONS[i][j]].nature, statValues); statSums[i] += statValues[STAT_ATK]; @@ -6089,8 +6102,8 @@ static void sub_8194F58(void) statSums[i] += statValues[STAT_SPDEF]; statSums[i] += statValues[STAT_SPEED]; statSums[i] += statValues[STAT_HP]; - monTypesBits |= gBitTable[gBaseStats[gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[i][j]].species].type1]; - monTypesBits |= gBitTable[gBaseStats[gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[i][j]].species].type2]; + monTypesBits |= gBitTable[gBaseStats[gFacilityTrainerMons[DOME_MONS[i][j]].species].type1]; + monTypesBits |= gBitTable[gBaseStats[gFacilityTrainerMons[DOME_MONS[i][j]].species].type2]; } // Because GF hates temporary vars, trainerId acts like monTypesCount here. @@ -6113,7 +6126,7 @@ static void sub_8194F58(void) } else if (statSums[i] == statSums[j]) { - if (gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId > gSaveBlock2Ptr->frontier.domeTrainers[j].trainerId) + if (DOME_TRAINERS[i].trainerId > DOME_TRAINERS[j].trainerId) SwapDomeTrainers(i, j, statSums); } } @@ -6122,7 +6135,7 @@ static void sub_8194F58(void) Free(statSums); Free(statValues); - for (i = 0; i < 4; i++) + for (i = 0; i < DOME_ROUNDS_COUNT; i++) DecideRoundWinners(i); gSaveBlock2Ptr->frontier.lvlMode = lvlMode; @@ -6134,7 +6147,7 @@ static int TrainerIdToTournamentId(u16 trainerId) for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++) { - if (gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId == trainerId) + if (DOME_TRAINERS[i].trainerId == trainerId) break; } @@ -6148,7 +6161,7 @@ int TrainerIdToDomeTournamentId(u16 trainerId) for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++) { - if (gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId == trainerId) + if (DOME_TRAINERS[i].trainerId == trainerId) break; } @@ -6175,24 +6188,24 @@ static void DecideRoundWinners(u8 roundId) for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++) { - if (gSaveBlock2Ptr->frontier.domeTrainers[i].isEliminated || gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId == TRAINER_PLAYER) + if (DOME_TRAINERS[i].isEliminated || DOME_TRAINERS[i].trainerId == TRAINER_PLAYER) continue; tournamentId1 = i; - tournamentId2 = TournamentIdOfOpponent(roundId, gSaveBlock2Ptr->frontier.domeTrainers[tournamentId1].trainerId); + tournamentId2 = TournamentIdOfOpponent(roundId, DOME_TRAINERS[tournamentId1].trainerId); // Frontier Brain always wins, check tournamentId1. - if (gSaveBlock2Ptr->frontier.domeTrainers[tournamentId1].trainerId == TRAINER_FRONTIER_BRAIN && tournamentId2 != 0xFF) + if (DOME_TRAINERS[tournamentId1].trainerId == TRAINER_FRONTIER_BRAIN && tournamentId2 != 0xFF) { - gSaveBlock2Ptr->frontier.domeTrainers[tournamentId2].isEliminated = 1; - gSaveBlock2Ptr->frontier.domeTrainers[tournamentId2].eliminatedAt = roundId; - gSaveBlock2Ptr->frontier.field_EC0[tournamentId2] = GetWinningMove(tournamentId1, tournamentId2, roundId); + DOME_TRAINERS[tournamentId2].isEliminated = TRUE; + DOME_TRAINERS[tournamentId2].eliminatedAt = roundId; + gSaveBlock2Ptr->frontier.domeWinningMoves[tournamentId2] = GetWinningMove(tournamentId1, tournamentId2, roundId); } // Frontier Brain always wins, check tournamentId2. - else if (gSaveBlock2Ptr->frontier.domeTrainers[tournamentId2].trainerId == TRAINER_FRONTIER_BRAIN && tournamentId1 != 0xFF) + else if (DOME_TRAINERS[tournamentId2].trainerId == TRAINER_FRONTIER_BRAIN && tournamentId1 != 0xFF) { - gSaveBlock2Ptr->frontier.domeTrainers[tournamentId1].isEliminated = 1; - gSaveBlock2Ptr->frontier.domeTrainers[tournamentId1].eliminatedAt = roundId; - gSaveBlock2Ptr->frontier.field_EC0[tournamentId1] = GetWinningMove(tournamentId2, tournamentId1, roundId); + DOME_TRAINERS[tournamentId1].isEliminated = TRUE; + DOME_TRAINERS[tournamentId1].eliminatedAt = roundId; + gSaveBlock2Ptr->frontier.domeWinningMoves[tournamentId1] = GetWinningMove(tournamentId2, tournamentId1, roundId); } // Decide which one of two trainers wins! else if (tournamentId2 != 0xFF) @@ -6200,17 +6213,17 @@ static void DecideRoundWinners(u8 roundId) // BUG: points1 and points2 are not cleared at the beginning of the loop resulting in not fair results. // Calculate points for both trainers. - for (monId1 = 0; monId1 < 3; monId1++) + for (monId1 = 0; monId1 < FRONTIER_PARTY_SIZE; monId1++) { for (moveSlot = 0; moveSlot < MAX_MON_MOVES; moveSlot++) { - for (monId2 = 0; monId2 < 3; monId2++) + for (monId2 = 0; monId2 < FRONTIER_PARTY_SIZE; monId2++) { - points1 += GetTypeEffectivenessPoints(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[tournamentId1][monId1]].moves[moveSlot], - gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[tournamentId2][monId2]].species, 2); + points1 += GetTypeEffectivenessPoints(gFacilityTrainerMons[DOME_MONS[tournamentId1][monId1]].moves[moveSlot], + gFacilityTrainerMons[DOME_MONS[tournamentId2][monId2]].species, 2); } } - species = gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[tournamentId1][monId1]].species; + species = gFacilityTrainerMons[DOME_MONS[tournamentId1][monId1]].species; points1 += ( gBaseStats[species].baseHP + gBaseStats[species].baseAttack + gBaseStats[species].baseDefense @@ -6223,17 +6236,17 @@ static void DecideRoundWinners(u8 roundId) // Favor trainers with higher id; points1 += tournamentId1; - for (monId1 = 0; monId1 < 3; monId1++) + for (monId1 = 0; monId1 < FRONTIER_PARTY_SIZE; monId1++) { for (moveSlot = 0; moveSlot < MAX_MON_MOVES; moveSlot++) { - for (monId2 = 0; monId2 < 3; monId2++) + for (monId2 = 0; monId2 < FRONTIER_PARTY_SIZE; monId2++) { - points2 += GetTypeEffectivenessPoints(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[tournamentId2][monId1]].moves[moveSlot], - gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[tournamentId1][monId2]].species, 2); + points2 += GetTypeEffectivenessPoints(gFacilityTrainerMons[DOME_MONS[tournamentId2][monId1]].moves[moveSlot], + gFacilityTrainerMons[DOME_MONS[tournamentId1][monId2]].species, 2); } } - species = gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[tournamentId2][monId1]].species; + species = gFacilityTrainerMons[DOME_MONS[tournamentId2][monId1]].species; points2 += ( gBaseStats[species].baseHP + gBaseStats[species].baseAttack + gBaseStats[species].baseDefense @@ -6248,28 +6261,28 @@ static void DecideRoundWinners(u8 roundId) if (points1 > points2) { - gSaveBlock2Ptr->frontier.domeTrainers[tournamentId2].isEliminated = 1; - gSaveBlock2Ptr->frontier.domeTrainers[tournamentId2].eliminatedAt = roundId; - gSaveBlock2Ptr->frontier.field_EC0[tournamentId2] = GetWinningMove(tournamentId1, tournamentId2, roundId); + DOME_TRAINERS[tournamentId2].isEliminated = TRUE; + DOME_TRAINERS[tournamentId2].eliminatedAt = roundId; + gSaveBlock2Ptr->frontier.domeWinningMoves[tournamentId2] = GetWinningMove(tournamentId1, tournamentId2, roundId); } else if (points1 < points2) { - gSaveBlock2Ptr->frontier.domeTrainers[tournamentId1].isEliminated = 1; - gSaveBlock2Ptr->frontier.domeTrainers[tournamentId1].eliminatedAt = roundId; - gSaveBlock2Ptr->frontier.field_EC0[tournamentId1] = GetWinningMove(tournamentId2, tournamentId1, roundId); + DOME_TRAINERS[tournamentId1].isEliminated = TRUE; + DOME_TRAINERS[tournamentId1].eliminatedAt = roundId; + gSaveBlock2Ptr->frontier.domeWinningMoves[tournamentId1] = GetWinningMove(tournamentId2, tournamentId1, roundId); } // Points are the same, so we favor the one with the higher id. else if (tournamentId1 > tournamentId2) { - gSaveBlock2Ptr->frontier.domeTrainers[tournamentId2].isEliminated = 1; - gSaveBlock2Ptr->frontier.domeTrainers[tournamentId2].eliminatedAt = roundId; - gSaveBlock2Ptr->frontier.field_EC0[tournamentId2] = GetWinningMove(tournamentId1, tournamentId2, roundId); + DOME_TRAINERS[tournamentId2].isEliminated = TRUE; + DOME_TRAINERS[tournamentId2].eliminatedAt = roundId; + gSaveBlock2Ptr->frontier.domeWinningMoves[tournamentId2] = GetWinningMove(tournamentId1, tournamentId2, roundId); } else { - gSaveBlock2Ptr->frontier.domeTrainers[tournamentId1].isEliminated = 1; - gSaveBlock2Ptr->frontier.domeTrainers[tournamentId1].eliminatedAt = roundId; - gSaveBlock2Ptr->frontier.field_EC0[tournamentId1] = GetWinningMove(tournamentId2, tournamentId1, roundId); + DOME_TRAINERS[tournamentId1].isEliminated = TRUE; + DOME_TRAINERS[tournamentId1].eliminatedAt = roundId; + gSaveBlock2Ptr->frontier.domeWinningMoves[tournamentId1] = GetWinningMove(tournamentId2, tournamentId1, roundId); } } } @@ -6291,7 +6304,7 @@ static void CopyDomeTrainerName(u8 *str, u16 trainerId) for (i = 0; i < PLAYER_NAME_LENGTH; i++) str[i] = gSaveBlock2Ptr->playerName[i]; } - else if (trainerId < 300) + else if (trainerId < TRAINER_RECORD_MIXING_FRIEND) { for (i = 0; i < PLAYER_NAME_LENGTH; i++) str[i] = gFacilityTrainers[trainerId].trainerName[i]; diff --git a/src/battle_tower.c b/src/battle_tower.c index 49dd6d32a..b08a09ff5 100644 --- a/src/battle_tower.c +++ b/src/battle_tower.c @@ -1104,6 +1104,7 @@ static const u8 sBattleTowerPartySizes2[] = [FRONTIER_MODE_LINK_MULTIS] = FRONTIER_MULTI_PARTY_SIZE, }; +// min/max trainer id static const u16 gUnknown_085DF9FA[][2] = { {0x0000, 0x0063}, @@ -1116,6 +1117,7 @@ static const u16 gUnknown_085DF9FA[][2] = {0x00c8, 0x012b}, }; +// min/max trainer id static const u16 gUnknown_085DFA1A[][2] = { {0x0064, 0x0077}, @@ -1878,7 +1880,7 @@ static void FillTrainerParty(u16 trainerId, u8 firstMonId, u8 monCount) { s32 i, j; u16 chosenMonIndices[4]; - u8 friendship = 0xFF; + u8 friendship = MAX_FRIENDSHIP; u8 level = SetFacilityPtrsGetLevel(); u8 fixedIV = 0; u8 bfMonCount; @@ -1977,7 +1979,7 @@ static void FillTrainerParty(u16 trainerId, u8 firstMonId, u8 monCount) gFacilityTrainerMons[monSetId].evSpread, otID); - friendship = 255; + friendship = MAX_FRIENDSHIP; // Give the chosen pokemon its specified moves. for (j = 0; j < MAX_MON_MOVES; j++) { @@ -1999,7 +2001,7 @@ static void FillTrainerParty(u16 trainerId, u8 firstMonId, u8 monCount) static void Unused_CreateApprenticeMons(u16 trainerId, u8 firstMonId) { s32 i, j; - u8 friendship = 0xFF; + u8 friendship = MAX_FRIENDSHIP; u8 level = 0; u8 fixedIV = 0; struct Apprentice *apprentice = &gSaveBlock2Ptr->apprentices[0]; @@ -2017,7 +2019,7 @@ static void Unused_CreateApprenticeMons(u16 trainerId, u8 firstMonId) for (i = 0; i != 3; i++) { CreateMonWithEVSpread(&gEnemyParty[firstMonId + i], apprentice->party[i].species, level, fixedIV, 8); - friendship = 0xFF; + friendship = MAX_FRIENDSHIP; for (j = 0; j < MAX_MON_MOVES; j++) { if (apprentice->party[i].moves[j] == MOVE_FRUSTRATION) @@ -3227,7 +3229,7 @@ static void FillPartnerParty(u16 trainerId) ivs, gFacilityTrainerMons[monSetId].evSpread, otID); - friendship = 0xFF; + friendship = MAX_FRIENDSHIP; for (j = 0; j < MAX_MON_MOVES; j++) { SetMonMoveSlot(&gPlayerParty[3 + i], gFacilityTrainerMons[monSetId].moves[j], j); @@ -3532,19 +3534,19 @@ static u16 sub_8165D40(void) static u8 SetTentPtrsGetLevel(void) { u8 level = 30; - u32 tentFacility = VarGet(VAR_FRONTIER_FACILITY); + u32 facility = VarGet(VAR_FRONTIER_FACILITY); - if (tentFacility == TENT_SLATEPORT) + if (facility == FRONTIER_FACILITY_FACTORY) { gFacilityTrainers = gSlateportBattleTentTrainers; gFacilityTrainerMons = gSlateportBattleTentMons; } - else if (tentFacility == TENT_VERDANTURF) + else if (facility == FRONTIER_FACILITY_PALACE) { gFacilityTrainers = gVerdanturfBattleTentTrainers; gFacilityTrainerMons = gVerdanturfBattleTentMons; } - else if (tentFacility == TENT_FALLARBOR) + else if (facility == FRONTIER_FACILITY_ARENA) { gFacilityTrainers = gFallarborBattleTentTrainers; gFacilityTrainerMons = gFallarborBattleTentMons; @@ -3653,7 +3655,7 @@ static void FillTentTrainerParty_(u16 trainerId, u8 firstMonId, u8 monCount) gFacilityTrainerMons[monSetId].evSpread, otID); - friendship = 255; + friendship = MAX_FRIENDSHIP; // Give the chosen pokemon its specified moves. for (j = 0; j < MAX_MON_MOVES; j++) { diff --git a/src/contest.c b/src/contest.c index e538b5ae0..66dbdb6f1 100644 --- a/src/contest.c +++ b/src/contest.c @@ -5093,7 +5093,7 @@ static void sub_80DE864(u8 a) gContestResources->field_18->unk4_0 = 1; break; case MOVE_RETURN: - gAnimFriendship = 0xFF; + gAnimFriendship = MAX_FRIENDSHIP; break; case MOVE_FRUSTRATION: gAnimFriendship = 0; diff --git a/src/field_specials.c b/src/field_specials.c index bffb9f591..4ed4ebc02 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -994,7 +994,7 @@ u16 GetWeekCount(void) u8 GetLeadMonFriendshipScore(void) { struct Pokemon *pokemon = &gPlayerParty[GetLeadMonIndex()]; - if (GetMonData(pokemon, MON_DATA_FRIENDSHIP) == 255) + if (GetMonData(pokemon, MON_DATA_FRIENDSHIP) == MAX_FRIENDSHIP) { return 6; } diff --git a/src/frontier_util.c b/src/frontier_util.c index 084be4fe2..f59ed14ed 100644 --- a/src/frontier_util.c +++ b/src/frontier_util.c @@ -2490,7 +2490,7 @@ void SetFrontierBrainEventObjGfx_2(void) void CreateFrontierBrainPokemon(void) { s32 i, j; - s32 monCountInBits; + s32 selectedMonBits; s32 monPartyId; s32 monLevel = 0; u8 friendship; @@ -2498,16 +2498,16 @@ void CreateFrontierBrainPokemon(void) s32 symbol = GetFronterBrainSymbol(); if (facility == FRONTIER_FACILITY_DOME) - monCountInBits = GetDomeTrainerMonCountInBits(TrainerIdToDomeTournamentId(TRAINER_FRONTIER_BRAIN)); + selectedMonBits = GetDomeTrainerSelectedMons(TrainerIdToDomeTournamentId(TRAINER_FRONTIER_BRAIN)); else - monCountInBits = 7; + selectedMonBits = (1 << FRONTIER_PARTY_SIZE) - 1; // all 3 mons selected ZeroEnemyPartyMons(); monPartyId = 0; monLevel = SetFacilityPtrsGetLevel(); - for (i = 0; i < 3; monCountInBits >>= 1, i++) + for (i = 0; i < FRONTIER_PARTY_SIZE; selectedMonBits >>= 1, i++) { - if (!(monCountInBits & 1)) + if (!(selectedMonBits & 1)) continue; do @@ -2523,7 +2523,7 @@ void CreateFrontierBrainPokemon(void) SetMonData(&gEnemyParty[monPartyId], MON_DATA_HELD_ITEM, &sFrontierBrainsMons[facility][symbol][i].heldItem); for (j = 0; j < NUM_STATS; j++) SetMonData(&gEnemyParty[monPartyId], MON_DATA_HP_EV + j, &sFrontierBrainsMons[facility][symbol][i].evs[j]); - friendship = 0xFF; + friendship = MAX_FRIENDSHIP; for (j = 0; j < MAX_MON_MOVES; j++) { SetMonMoveSlot(&gEnemyParty[monPartyId], sFrontierBrainsMons[facility][symbol][i].moves[j], j); @@ -2560,7 +2560,7 @@ void CreateFrontierBrainPokemon(void) bl TrainerIdToDomeTournamentId\n\ lsls r0, 16\n\ lsrs r0, 16\n\ - bl GetDomeTrainerMonCountInBits\n\ + bl GetDomeTrainerSelectedMons\n\ adds r4, r0, 0\n\ b _081A4E46\n\ .pool\n\ diff --git a/src/graphics.c b/src/graphics.c index 82765e913..30e5a8121 100644 --- a/src/graphics.c +++ b/src/graphics.c @@ -967,17 +967,17 @@ const u32 gVsLettersGfx[] = INCBIN_U32("graphics/battle_transitions/vs.4bpp.lz") const u32 gUnknown_08D82F10[] = INCBIN_U32("graphics/battle_frontier/tourney_bg.4bpp.lz"); const u32 gUnknown_08D834FC[] = INCBIN_U32("graphics/battle_frontier/tourney_line.4bpp.lz"); // the red glow mask for the tourney advancement lines -const u32 gUnknown_08D83900[] = INCBIN_U32("graphics/unknown/unknown_D83900.bin.lz"); // tilemaps likely +const u32 gUnknown_08D83900[] = INCBIN_U32("graphics/battle_frontier/unknown_D83900.bin.lz"); // tilemaps likely -const u32 gUnknown_08D83B2C[] = INCBIN_U32("graphics/unknown/unknown_D83B2C.bin.lz"); +const u32 gUnknown_08D83B2C[] = INCBIN_U32("graphics/battle_frontier/unknown_D83B2C.bin.lz"); -const u32 gUnknown_08D83C3C[] = INCBIN_U32("graphics/unknown/unknown_D83C3C.bin.lz"); +const u32 gUnknown_08D83C3C[] = INCBIN_U32("graphics/battle_frontier/unknown_D83C3C.bin.lz"); const u32 gUnknown_08D83D50[] = INCBIN_U32("graphics/battle_frontier/misc1.4bpp.lz"); -const u32 gUnknown_08D84970[] = INCBIN_U32("graphics/unknown/unknown_D84970.bin.lz"); +const u32 gUnknown_08D84970[] = INCBIN_U32("graphics/battle_frontier/unknown_D84970.bin.lz"); -const u32 gUnknown_08D84F00[] = INCBIN_U32("graphics/unknown/unknown_D84F00.bin.lz"); +const u32 gUnknown_08D84F00[] = INCBIN_U32("graphics/battle_frontier/unknown_D84F00.bin.lz"); const u32 gBattleFrontierGfx_DomeOptions[] = INCBIN_U32("graphics/battle_frontier/options.4bpp.lz"); const u32 gUnknown_08D85358[] = INCBIN_U32("graphics/battle_frontier/options_pal1.gbapal.lz"); diff --git a/src/hall_of_fame.c b/src/hall_of_fame.c index 95cbc11ef..0a1862b2d 100644 --- a/src/hall_of_fame.c +++ b/src/hall_of_fame.c @@ -101,7 +101,7 @@ static void SpriteCB_GetOnScreenAndAnimate(struct Sprite *sprite); static void HallOfFame_PrintMonInfo(struct HallofFameMon* currMon, u8 unused1, u8 unused2); static void HallOfFame_PrintWelcomeText(u8 unusedPossiblyWindowId, u8 unused2); static void HallOfFame_PrintPlayerInfo(u8 unused1, u8 unused2); -static void sub_8175364(u8 taskId); +static void Task_DoConfettiEffect(u8 taskId); static void sub_81751A4(struct Sprite* sprite); // const rom data @@ -1387,12 +1387,13 @@ static bool8 sub_81751FC(void) return FALSE; } -void sub_8175280(void) +// Used when a Battle Dome tourney is won +void DoConfettiEffect(void) { u8 taskId; gSpecialVar_0x8004 = 180; - taskId = CreateTask(sub_8175364, 0); + taskId = CreateTask(Task_DoConfettiEffect, 0); if (taskId != 0xFF) { gTasks[taskId].data[1] = gSpecialVar_0x8004; @@ -1400,11 +1401,11 @@ void sub_8175280(void) } } -static void sub_81752C0(void) +static void StopConfettiEffect(void) { u8 taskId; - if ((taskId = FindTaskIdByFunc(sub_8175364)) != 0xFF) + if ((taskId = FindTaskIdByFunc(Task_DoConfettiEffect)) != 0xFF) DestroyTask(taskId); sub_8152254(); @@ -1437,7 +1438,7 @@ static void sub_81752F4(struct UnkStruct_81520A8 *structPtr) } } -static void sub_8175364(u8 taskId) +static void Task_DoConfettiEffect(u8 taskId) { u32 var = 0; u16 *data = gTasks[taskId].data; @@ -1475,7 +1476,7 @@ static void sub_8175364(u8 taskId) data[0] = 0xFF; break; case 0xFF: - sub_81752C0(); + StopConfettiEffect(); gSpecialVar_0x8004 = var; gSpecialVar_0x8005 = 0xFFFF; break; diff --git a/src/pokemon.c b/src/pokemon.c index 12820aa76..82da96f7d 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -5085,8 +5085,8 @@ bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 mov } if (friendship < 0) friendship = 0; - if (friendship > 255) - friendship = 255; + if (friendship > MAX_FRIENDSHIP) + friendship = MAX_FRIENDSHIP; SetMonData(mon, MON_DATA_FRIENDSHIP, &friendship); retVal = FALSE; } @@ -5111,8 +5111,8 @@ bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 mov } if (friendship < 0) friendship = 0; - if (friendship > 255) - friendship = 255; + if (friendship > MAX_FRIENDSHIP) + friendship = MAX_FRIENDSHIP; SetMonData(mon, MON_DATA_FRIENDSHIP, &friendship); retVal = FALSE; } @@ -5136,8 +5136,8 @@ bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 mov } if (friendship < 0) friendship = 0; - if (friendship > 255) - friendship = 255; + if (friendship > MAX_FRIENDSHIP) + friendship = MAX_FRIENDSHIP; SetMonData(mon, MON_DATA_FRIENDSHIP, &friendship); retVal = FALSE; } @@ -5786,8 +5786,8 @@ void AdjustFriendship(struct Pokemon *mon, u8 event) } if (friendship < 0) friendship = 0; - if (friendship > 255) - friendship = 255; + if (friendship > MAX_FRIENDSHIP) + friendship = MAX_FRIENDSHIP; SetMonData(mon, MON_DATA_FRIENDSHIP, &friendship); } } diff --git a/src/script_pokemon_util_80F87D8.c b/src/script_pokemon_util_80F87D8.c index 0e191d652..de15bc360 100755 --- a/src/script_pokemon_util_80F87D8.c +++ b/src/script_pokemon_util_80F87D8.c @@ -704,20 +704,20 @@ static void CB2_ReturnFromChooseBattleFrontierParty(void) void ReducePlayerPartyToSelectedMons(void) { - struct Pokemon party[4]; + struct Pokemon party[MAX_FRONTIER_PARTY_SIZE]; int i; CpuFill32(0, party, sizeof party); // copy the selected pokemon according to the order. - for (i = 0; i < 4; i++) + for (i = 0; i < MAX_FRONTIER_PARTY_SIZE; i++) if (gSelectedOrderFromParty[i]) // as long as the order keeps going (did the player select 1 mon? 2? 3?), do not stop party[i] = gPlayerParty[gSelectedOrderFromParty[i] - 1]; // index is 0 based, not literal CpuFill32(0, gPlayerParty, sizeof gPlayerParty); // overwrite the first 4 with the order copied to. - for (i = 0; i < 4; i++) + for (i = 0; i < MAX_FRONTIER_PARTY_SIZE; i++) gPlayerParty[i] = party[i]; CalculatePlayerPartyCount(); |