diff --git a/asm/macros/battle_frontier.inc b/asm/macros/battle_frontier.inc index 2382d3ed2..4e04043d8 100644 --- a/asm/macros/battle_frontier.inc +++ b/asm/macros/battle_frontier.inc @@ -166,12 +166,107 @@ setvar VAR_0x8004, BATTLE_PIKE_FUNC_IS_PARTY_FULL_HEALTH special CallBattlePikeFunction .endm + @ Battle Pyramid + @ Battle Tent + @ Trainer Hill +.macro trainerhill_start +setvar VAR_0x8004, TRAINER_HILL_FUNC_START +special CallTrainerHillFunction +.endm + +.macro trainerhill_getownerstate +setvar VAR_0x8004, TRAINER_HILL_FUNC_GET_OWNER_STATE +special CallTrainerHillFunction +.endm + +.macro trainerhill_giveprize +setvar VAR_0x8004, TRAINER_HILL_FUNC_GIVE_PRIZE +special CallTrainerHillFunction +.endm + +.macro trainerhill_finaltime +setvar VAR_0x8004, TRAINER_HILL_FUNC_CHECK_FINAL_TIME +special CallTrainerHillFunction +.endm + +.macro trainerhill_resumetimer +setvar VAR_0x8004, TRAINER_HILL_FUNC_RESUME_TIMER +special CallTrainerHillFunction +.endm + +.macro trainerhill_lost +setvar VAR_0x8004, TRAINER_HILL_FUNC_SET_LOST +special CallTrainerHillFunction +.endm + +.macro trainerhill_getstatus +setvar VAR_0x8004, TRAINER_HILL_FUNC_GET_CHALLENGE_STATUS +special CallTrainerHillFunction +.endm + +.macro trainerhill_gettime +setvar VAR_0x8004, TRAINER_HILL_FUNC_GET_CHALLENGE_TIME +special CallTrainerHillFunction +.endm + +.macro trainerhill_allfloorsused +setvar VAR_0x8004, TRAINER_HILL_FUNC_GET_ALL_FLOORS_USED +special CallTrainerHillFunction +.endm + +.macro trainerhill_clearresult +setvar VAR_0x8004, TRAINER_HILL_FUNC_CLEAR_RESULT +special CallTrainerHillFunction +.endm + +.macro trainerhill_inchallenge +setvar VAR_0x8004, TRAINER_HILL_FUNC_IN_CHALLENGE +special CallTrainerHillFunction +.endm + +.macro trainerhill_postbattletext +setvar VAR_0x8004, TRAINER_HILL_FUNC_POST_BATTLE_TEXT +special CallTrainerHillFunction +.endm + +.macro trainerhill_settrainerflags +setvar VAR_0x8004, TRAINER_HILL_FUNC_SET_ALL_TRAINER_FLAGS +special CallTrainerHillFunction +.endm + +.macro trainerhill_getsaved +setvar VAR_0x8004, TRAINER_HILL_FUNC_GET_GAME_SAVED +special CallTrainerHillFunction +.endm + +.macro trainerhill_setsaved +setvar VAR_0x8004, TRAINER_HILL_FUNC_SET_GAME_SAVED +special CallTrainerHillFunction +.endm + +.macro trainerhill_clearsaved +setvar VAR_0x8004, TRAINER_HILL_FUNC_CLEAR_GAME_SAVED +special CallTrainerHillFunction +.endm + +.macro trainerhill_getwon +setvar VAR_0x8004, TRAINER_HILL_FUNC_GET_WON +special CallTrainerHillFunction +.endm + +.macro trainerhill_settag tag:req +setvar VAR_0x8004, TRAINER_HILL_FUNC_SET_TAG +copyvar VAR_0x8005, \tag +special CallTrainerHillFunction +.endm + + @ Apprentice .macro apprentice_gavelvlmode diff --git a/data/maps/TrainerHill_Entrance/scripts.inc b/data/maps/TrainerHill_Entrance/scripts.inc index 909aaaf9f..0e8d28c1d 100644 --- a/data/maps/TrainerHill_Entrance/scripts.inc +++ b/data/maps/TrainerHill_Entrance/scripts.inc @@ -16,11 +16,9 @@ TrainerHill_Entrance_OnWarp: @ 82680CF end TrainerHill_Entrance_OnResume: @ 82680D0 - setvar VAR_0x8004, TRAINER_HILL_FUNC_RESUME_TIMER - special CallTrainerHillFunction + trainerhill_resumetimer setvar VAR_TEMP_0, 0 - setvar VAR_0x8004, TRAINER_HILL_FUNC_CLEAR_RESULT - special CallTrainerHillFunction + trainerhill_clearresult compare VAR_RESULT, 0 @ VAR_RESULT always 0 here goto_if_eq TrainerHill_Entrance_EventScript_TryFaceAttendant setobjectxy EVENT_OBJ_ID_PLAYER, 9, 6 @@ -28,8 +26,7 @@ TrainerHill_Entrance_OnResume: @ 82680D0 end TrainerHill_Entrance_EventScript_TryFaceAttendant:: @ 82680FF - setvar VAR_0x8004, TRAINER_HILL_FUNC_GET_WON - special CallTrainerHillFunction + trainerhill_getwon compare VAR_RESULT, TRUE goto_if_eq TrainerHill_Entrance_EventScript_PlayerDontFaceAttendant applymovement EVENT_OBJ_ID_PLAYER, TrainerHill_Entrance_Movement_PlayerFaceAttendant @@ -75,8 +72,7 @@ TrainerHill_Entrance_EventScript_ExitElevator:: @ 8268160 TrainerHill_Entrance_EventScript_ExitChallenge:: @ 8268182 setvar VAR_TEMP_0, 1 - setvar VAR_0x8004, TRAINER_HILL_FUNC_GET_CHALLENGE_STATUS - special CallTrainerHillFunction + trainerhill_getstatus switch VAR_RESULT case TRAINER_HILL_PLAYER_STATUS_LOST, TrainerHill_Entrance_EventScript_ExitChallengeLost case TRAINER_HILL_PLAYER_STATUS_ECARD_SCANNED, TrainerHill_Entrance_EventScript_ExitChallengeECard @@ -113,8 +109,7 @@ TrainerHill_Entrance_EventScript_Nurse:: @ 82681EF TrainerHill_Entrance_EventScript_Attendant:: @ 82681FD lock faceplayer - setvar VAR_0x8004, TRAINER_HILL_FUNC_IN_CHALLENGE - special CallTrainerHillFunction + trainerhill_inchallenge compare VAR_RESULT, FALSE goto_if_eq TrainerHill_Entrance_EventScript_ThanksForPlaying msgbox TrainerHill_Entrance_Text_HopeYouGiveItYourBest, MSGBOX_DEFAULT @@ -131,12 +126,10 @@ TrainerHill_Entrance_EventScript_EntryTrigger:: @ 8268229 applymovement EVENT_OBJ_ID_PLAYER, TrainerHill_Entrance_Movement_PlayerFaceAttendant goto_if_unset FLAG_SYS_GAME_CLEAR, TrainerHill_Entrance_EventScript_Closed msgbox TrainerHill_Entrance_Text_WelcomeToTrainerHill, MSGBOX_DEFAULT - setvar VAR_0x8004, TRAINER_HILL_FUNC_GET_GAME_SAVED - special CallTrainerHillFunction + trainerhill_getsaved compare VAR_RESULT, FALSE call_if_eq TrainerHill_Entrance_EventScript_SaveGame - setvar VAR_0x8004, TRAINER_HILL_FUNC_GET_ALL_FLOORS_USED - special CallTrainerHillFunction + trainerhill_allfloorsused compare VAR_RESULT, TRUE goto_if_eq TrainerHill_Entrance_EventScript_AllFloorsUsed msgbox TrainerHill_Entrance_Text_TrainersUpToFloorX, MSGBOX_DEFAULT @@ -165,15 +158,12 @@ TrainerHill_Entrance_EventScript_ChooseChallenge:: @ 82682C8 switch VAR_RESULT case 4, TrainerHill_Entrance_EventScript_CancelEntry case MULTI_B_PRESSED, TrainerHill_Entrance_EventScript_CancelEntry - setvar VAR_0x8004, TRAINER_HILL_FUNC_SET_TAG - copyvar VAR_0x8005, VAR_RESULT - special CallTrainerHillFunction + trainerhill_settag VAR_RESULT setvar VAR_TRAINER_HILL_IS_ACTIVE, 1 setvar VAR_TEMP_5, 0 special HealPlayerParty msgbox TrainerHill_Entrance_Text_TimeProgessGetSetGo, MSGBOX_DEFAULT - setvar VAR_0x8004, TRAINER_HILL_FUNC_START - special CallTrainerHillFunction + trainerhill_start releaseall end @@ -188,19 +178,16 @@ TrainerHill_Entrance_EventScript_CancelEntry:: @ 8268314 TrainerHill_Entrance_EventScript_SaveGame:: @ 826832E msgbox TrainerHill_Entrance_Text_SaveGameBeforeEnter, MSGBOX_DEFAULT - setvar VAR_0x8004, TRAINER_HILL_FUNC_SET_GAME_SAVED - special CallTrainerHillFunction + trainerhill_setsaved setvar VAR_TEMP_5, 1 call Common_EventScript_SaveGame compare VAR_RESULT, FALSE goto_if_eq TrainerHill_Entrance_EventScript_SaveFailed - setvar VAR_0x8004, TRAINER_HILL_FUNC_SET_GAME_SAVED - special CallTrainerHillFunction + trainerhill_setsaved return TrainerHill_Entrance_EventScript_SaveFailed:: @ 826835C - setvar VAR_0x8004, TRAINER_HILL_FUNC_CLEAR_GAME_SAVED - special CallTrainerHillFunction + trainerhill_clearsaved goto TrainerHill_Entrance_EventScript_CancelEntry end diff --git a/data/maps/TrainerHill_Roof/scripts.inc b/data/maps/TrainerHill_Roof/scripts.inc index af4c9ea5a..e4e2cbb49 100644 --- a/data/maps/TrainerHill_Roof/scripts.inc +++ b/data/maps/TrainerHill_Roof/scripts.inc @@ -4,12 +4,10 @@ TrainerHill_Roof_MapScripts:: @ 8268FA7 .byte 0 TrainerHill_Roof_EventScript_Owner:: @ 8268FB2 - setvar VAR_0x8004, TRAINER_HILL_FUNC_SET_ALL_TRAINER_FLAGS - special CallTrainerHillFunction + trainerhill_settrainerflags lock faceplayer - setvar VAR_0x8004, TRAINER_HILL_FUNC_GET_OWNER_STATE - special CallTrainerHillFunction + trainerhill_getownerstate switch VAR_RESULT case 0, TrainerHill_Roof_EventScript_Arrived case 1, TrainerHill_Roof_EventScript_GivePrize @@ -17,8 +15,7 @@ TrainerHill_Roof_EventScript_Owner:: @ 8268FB2 TrainerHill_Roof_EventScript_Arrived:: @ 8268FEA msgbox TrainerHill_Roof_Text_YouFinallyCameBravo, MSGBOX_DEFAULT TrainerHill_Roof_EventScript_GivePrize:: @ 8268FF2 - setvar VAR_0x8004, TRAINER_HILL_FUNC_GIVE_PRIZE - special CallTrainerHillFunction + trainerhill_giveprize switch VAR_RESULT case 0, TrainerHill_Roof_EventScript_ReceivePrize case 1, TrainerHill_Roof_EventScript_NoRoomForPrize @@ -38,8 +35,7 @@ TrainerHill_Roof_EventScript_NoRoomForPrize:: @ 8269037 goto TrainerHill_Roof_EventScript_CheckFinalTime TrainerHill_Roof_EventScript_CheckFinalTime:: @ 8269054 - setvar VAR_0x8004, TRAINER_HILL_FUNC_CHECK_FINAL_TIME - special CallTrainerHillFunction + trainerhill_finaltime switch VAR_RESULT case 0, TrainerHill_Roof_EventScript_NewRecord case 1, TrainerHill_Roof_EventScript_NoNewRecord diff --git a/data/scripts/field_poison.inc b/data/scripts/field_poison.inc index d45b480d1..f33292fe6 100644 --- a/data/scripts/field_poison.inc +++ b/data/scripts/field_poison.inc @@ -39,9 +39,8 @@ EventScript_FrontierFieldWhiteOut:: @ 82736F8 goto_if_eq BattleFrontier_BattlePyramidTop_EventScript_252B42 compare VAR_RESULT, 2 goto_if_eq BattleFrontier_BattlePyramidTop_EventScript_252B42 - setvar VAR_0x8004, TRAINER_HILL_FUNC_IN_CHALLENGE - special CallTrainerHillFunction - compare VAR_RESULT, 1 + trainerhill_inchallenge + compare VAR_RESULT, TRUE goto_if_eq TrainerHill_1F_EventScript_Lost special Script_FadeOutMapMusic waitstate diff --git a/data/scripts/trainer_hill.inc b/data/scripts/trainer_hill.inc index c655a3c9c..e57cf923b 100644 --- a/data/scripts/trainer_hill.inc +++ b/data/scripts/trainer_hill.inc @@ -1,7 +1,6 @@ TrainerHill_OnResume: @ 82C8336 setvar VAR_TEMP_2, 0 - setvar VAR_0x8004, TRAINER_HILL_FUNC_RESUME_TIMER - special CallTrainerHillFunction + trainerhill_resumetimer frontier_getbattleoutcome compare VAR_RESULT, B_OUTCOME_LOST goto_if_eq TrainerHill_1F_EventScript_Lost @@ -26,16 +25,14 @@ TrainerHill_OnFrame: @ 82C8381 EventScript_TrainerHillTimer:: @ 82C8393 lockall - setvar VAR_0x8004, TRAINER_HILL_FUNC_GET_CHALLENGE_TIME - special CallTrainerHillFunction + trainerhill_gettime msgbox TrainerHill_Entrance_Text_ChallengeTime, MSGBOX_DEFAULT releaseall end TrainerHill_1F_EventScript_DummyWarpToEntranceCounter:: @ 82C83A6 setvar VAR_TEMP_2, 1 - setvar VAR_0x8004, TRAINER_HILL_FUNC_CLEAR_RESULT - special CallTrainerHillFunction + trainerhill_clearresult compare VAR_RESULT, 1 @ VAR_RESULT always 0 here goto_if_eq TrainerHill_1F_EventScript_WarpSilentToEntranceCounter end @@ -47,10 +44,8 @@ TrainerHill_1F_EventScript_WarpSilentToEntranceCounter:: @ 82C83BF end TrainerHill_1F_EventScript_Lost:: @ 82C83C9 - setvar VAR_0x8004, TRAINER_HILL_FUNC_SET_ALL_TRAINER_FLAGS - special CallTrainerHillFunction - setvar VAR_0x8004, TRAINER_HILL_FUNC_SET_LOST - special CallTrainerHillFunction + trainerhill_settrainerflags + trainerhill_lost setvar VAR_TEMP_1, 1 end @@ -68,8 +63,7 @@ TrainerHill_1F_Movement_SetInvisible:: @ 82C83EE @ TRAINER_PHILLIP is an actual Trainer on the SS Tidal, but is used as a placeholder here TrainerHill_EventScript_TrainerBattle:: @ 82C83F0 trainerbattle TRAINER_BATTLE_HILL, TRAINER_PHILLIP, 0, BattleFacility_TrainerBattle_PlaceholderText, BattleFacility_TrainerBattle_PlaceholderText - setvar VAR_0x8004, TRAINER_HILL_FUNC_POST_BATTLE_TEXT - special CallTrainerHillFunction + trainerhill_postbattletext waitmessage waitbuttonpress closemessage diff --git a/include/constants/trainer_hill.h b/include/constants/trainer_hill.h index f7a270428..afbcd4ace 100644 --- a/include/constants/trainer_hill.h +++ b/include/constants/trainer_hill.h @@ -13,24 +13,24 @@ #define NUM_TRAINER_HILL_PRIZE_LISTS 10 -#define TRAINER_HILL_FUNC_START 0 -#define TRAINER_HILL_FUNC_GET_OWNER_STATE 1 -#define TRAINER_HILL_FUNC_GIVE_PRIZE 2 -#define TRAINER_HILL_FUNC_CHECK_FINAL_TIME 3 -#define TRAINER_HILL_FUNC_RESUME_TIMER 4 -#define TRAINER_HILL_FUNC_SET_LOST 5 -#define TRAINER_HILL_FUNC_GET_CHALLENGE_STATUS 6 -#define TRAINER_HILL_FUNC_GET_CHALLENGE_TIME 7 -#define TRAINER_HILL_FUNC_GET_ALL_FLOORS_USED 8 -#define TRAINER_HILL_FUNC_CLEAR_RESULT 9 -#define TRAINER_HILL_FUNC_IN_CHALLENGE 10 -#define TRAINER_HILL_FUNC_POST_BATTLE_TEXT 11 +#define TRAINER_HILL_FUNC_START 0 +#define TRAINER_HILL_FUNC_GET_OWNER_STATE 1 +#define TRAINER_HILL_FUNC_GIVE_PRIZE 2 +#define TRAINER_HILL_FUNC_CHECK_FINAL_TIME 3 +#define TRAINER_HILL_FUNC_RESUME_TIMER 4 +#define TRAINER_HILL_FUNC_SET_LOST 5 +#define TRAINER_HILL_FUNC_GET_CHALLENGE_STATUS 6 +#define TRAINER_HILL_FUNC_GET_CHALLENGE_TIME 7 +#define TRAINER_HILL_FUNC_GET_ALL_FLOORS_USED 8 +#define TRAINER_HILL_FUNC_CLEAR_RESULT 9 +#define TRAINER_HILL_FUNC_IN_CHALLENGE 10 +#define TRAINER_HILL_FUNC_POST_BATTLE_TEXT 11 #define TRAINER_HILL_FUNC_SET_ALL_TRAINER_FLAGS 12 -#define TRAINER_HILL_FUNC_GET_GAME_SAVED 13 -#define TRAINER_HILL_FUNC_SET_GAME_SAVED 14 -#define TRAINER_HILL_FUNC_CLEAR_GAME_SAVED 15 -#define TRAINER_HILL_FUNC_GET_WON 16 -#define TRAINER_HILL_FUNC_SET_TAG 17 +#define TRAINER_HILL_FUNC_GET_GAME_SAVED 13 +#define TRAINER_HILL_FUNC_SET_GAME_SAVED 14 +#define TRAINER_HILL_FUNC_CLEAR_GAME_SAVED 15 +#define TRAINER_HILL_FUNC_GET_WON 16 +#define TRAINER_HILL_FUNC_SET_TAG 17 #define TRAINER_HILL_TEXT_INTRO 2 #define TRAINER_HILL_TEXT_PLAYER_LOST 3 diff --git a/src/trainer_hill.c b/src/trainer_hill.c index b84920a62..c339a56e0 100644 --- a/src/trainer_hill.c +++ b/src/trainer_hill.c @@ -223,24 +223,24 @@ static const u8 *const sFloorStrings[] = static void (* const sHillFunctions[])(void) = { - [TRAINER_HILL_FUNC_START] = TrainerHillStartChallenge, - [TRAINER_HILL_FUNC_GET_OWNER_STATE] = GetOwnerState, - [TRAINER_HILL_FUNC_GIVE_PRIZE] = GiveChallengePrize, - [TRAINER_HILL_FUNC_CHECK_FINAL_TIME] = CheckFinalTime, - [TRAINER_HILL_FUNC_RESUME_TIMER] = TrainerHillResumeTimer, - [TRAINER_HILL_FUNC_SET_LOST] = TrainerHillSetPlayerLost, - [TRAINER_HILL_FUNC_GET_CHALLENGE_STATUS] = TrainerHillGetChallengeStatus, - [TRAINER_HILL_FUNC_GET_CHALLENGE_TIME] = BufferChallengeTime, - [TRAINER_HILL_FUNC_GET_ALL_FLOORS_USED] = GetAllFloorsUsed, - [TRAINER_HILL_FUNC_CLEAR_RESULT] = ClearVarResult, - [TRAINER_HILL_FUNC_IN_CHALLENGE] = IsTrainerHillChallengeActive, - [TRAINER_HILL_FUNC_POST_BATTLE_TEXT] = ShowTrainerHillPostBattleText, + [TRAINER_HILL_FUNC_START] = TrainerHillStartChallenge, + [TRAINER_HILL_FUNC_GET_OWNER_STATE] = GetOwnerState, + [TRAINER_HILL_FUNC_GIVE_PRIZE] = GiveChallengePrize, + [TRAINER_HILL_FUNC_CHECK_FINAL_TIME] = CheckFinalTime, + [TRAINER_HILL_FUNC_RESUME_TIMER] = TrainerHillResumeTimer, + [TRAINER_HILL_FUNC_SET_LOST] = TrainerHillSetPlayerLost, + [TRAINER_HILL_FUNC_GET_CHALLENGE_STATUS] = TrainerHillGetChallengeStatus, + [TRAINER_HILL_FUNC_GET_CHALLENGE_TIME] = BufferChallengeTime, + [TRAINER_HILL_FUNC_GET_ALL_FLOORS_USED] = GetAllFloorsUsed, + [TRAINER_HILL_FUNC_CLEAR_RESULT] = ClearVarResult, + [TRAINER_HILL_FUNC_IN_CHALLENGE] = IsTrainerHillChallengeActive, + [TRAINER_HILL_FUNC_POST_BATTLE_TEXT] = ShowTrainerHillPostBattleText, [TRAINER_HILL_FUNC_SET_ALL_TRAINER_FLAGS] = SetAllTrainerFlags, - [TRAINER_HILL_FUNC_GET_GAME_SAVED] = GetGameSaved, - [TRAINER_HILL_FUNC_SET_GAME_SAVED] = SetGameSaved, - [TRAINER_HILL_FUNC_CLEAR_GAME_SAVED] = ClearGameSaved, - [TRAINER_HILL_FUNC_GET_WON] = GetChallengeWon, - [TRAINER_HILL_FUNC_SET_TAG] = TrainerHillSetTag, + [TRAINER_HILL_FUNC_GET_GAME_SAVED] = GetGameSaved, + [TRAINER_HILL_FUNC_SET_GAME_SAVED] = SetGameSaved, + [TRAINER_HILL_FUNC_CLEAR_GAME_SAVED] = ClearGameSaved, + [TRAINER_HILL_FUNC_GET_WON] = GetChallengeWon, + [TRAINER_HILL_FUNC_SET_TAG] = TrainerHillSetTag, }; static const u8 *const sTagMatchStrings[] =