From be17c1602d31d6f7d6601f27f2808b79a5644f7f Mon Sep 17 00:00:00 2001 From: GriffinR Date: Thu, 28 Nov 2019 21:09:35 -0500 Subject: Set up remaining facility script doc, use Palace macros --- src/battle_tent.c | 177 +++++++++++++++++++++++++++--------------------------- 1 file changed, 89 insertions(+), 88 deletions(-) (limited to 'src/battle_tent.c') diff --git a/src/battle_tent.c b/src/battle_tent.c index 6e3df49a9..89bb332a6 100644 --- a/src/battle_tent.c +++ b/src/battle_tent.c @@ -15,31 +15,32 @@ #include "constants/layouts.h" #include "constants/region_map_sections.h" #include "constants/species.h" +#include "constants/trainers.h" // This file's functions. -static void sub_81B99D4(void); -static void sub_81B9A28(void); -static void sub_81B9A44(void); -static void sub_81B9A60(void); -static void sub_81B9A90(void); -static void sub_81B9ABC(void); -static void sub_81B9B00(void); -static void sub_81B9B28(void); -static void sub_81B9BA0(void); -static void sub_81B9BF4(void); -static void sub_81B9C10(void); -static void sub_81B9C2C(void); -static void sub_81B9C70(void); -static void sub_81B9C98(void); -static void sub_81B9CF0(void); -static void sub_81B9D28(void); -static void sub_81B9D7C(void); -static void sub_81B9D98(void); -static void sub_81B9DB4(void); -static void sub_81B9DF8(void); -static void sub_81B9E20(void); -static void sub_81B9E78(void); -static void sub_81B9E88(void); +static void InitVerdanturfTentChallenge(void); +static void GetVerdanturfTentPrize(void); +static void SetVerdanturfTentPrize(void); +static void SetVerdanturfTentTrainerGfx(void); +static void BufferVerdanturfTentTrainerIntro(void); +static void SaveVerdanturfTentChallenge(void); +static void SetRandomVerdanturfTentPrize(void); +static void GiveVerdanturfTentPrize(void); +static void InitFallarborTentChallenge(void); +static void GetFallarborTentPrize(void); +static void SetFallarborTentPrize(void); +static void SaveFallarborTentChallenge(void); +static void SetRandomFallarborTentPrize(void); +static void GiveFallarborTentPrize(void); +static void BufferFallarborTentTrainerName(void); +static void InitSlateportTentChallenge(void); +static void GetSlateportTentPrize(void); +static void SetSlateportTentPrize(void); +static void SaveSlateportTentChallenge(void); +static void SetRandomSlateportTentPrize(void); +static void GiveSlateportTentPrize(void); +static void SelectInitialRentalMons(void); +static void SwapRentalMons(void); static void sub_81BA040(void); static void sub_81B9EC0(void); @@ -49,41 +50,41 @@ static u16 sRandMonSetId; // const rom data void static (*const sVerdanturfTentFuncs[])(void) = { - sub_81B99D4, - sub_81B9A28, - sub_81B9A44, - sub_81B9A60, - sub_81B9A90, - sub_81B9ABC, - sub_81B9B00, - sub_81B9B28 + InitVerdanturfTentChallenge, + GetVerdanturfTentPrize, + SetVerdanturfTentPrize, + SetVerdanturfTentTrainerGfx, + BufferVerdanturfTentTrainerIntro, + SaveVerdanturfTentChallenge, + SetRandomVerdanturfTentPrize, + GiveVerdanturfTentPrize }; static const u16 sVerdanturfTentRewards[] = {ITEM_NEST_BALL}; void static (*const sFallarborTentFuncs[])(void) = { - sub_81B9BA0, - sub_81B9BF4, - sub_81B9C10, - sub_81B9C2C, - sub_81B9C70, - sub_81B9C98, - sub_81B9CF0 + InitFallarborTentChallenge, + GetFallarborTentPrize, + SetFallarborTentPrize, + SaveFallarborTentChallenge, + SetRandomFallarborTentPrize, + GiveFallarborTentPrize, + BufferFallarborTentTrainerName }; static const u16 sFallarborTentRewards[] = {ITEM_HYPER_POTION}; void static (*const sSlateportTentFuncs[])(void) = { - sub_81B9D28, - sub_81B9D7C, - sub_81B9D98, - sub_81B9DB4, - sub_81B9DF8, - sub_81B9E20, - sub_81B9E78, - sub_81B9E88, + InitSlateportTentChallenge, + GetSlateportTentPrize, + SetSlateportTentPrize, + SaveSlateportTentChallenge, + SetRandomSlateportTentPrize, + GiveSlateportTentPrize, + SelectInitialRentalMons, + SwapRentalMons, sub_81BA040, sub_81B9EC0 }; @@ -96,7 +97,7 @@ void CallVerdanturfTentFunction(void) sVerdanturfTentFuncs[gSpecialVar_0x8004](); } -static void sub_81B99D4(void) +static void InitVerdanturfTentChallenge(void) { gSaveBlock2Ptr->frontier.challengeStatus = 0; gSaveBlock2Ptr->frontier.curChallengeBattleNum = 0; @@ -104,29 +105,29 @@ static void sub_81B99D4(void) SetDynamicWarp(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1); } -static void sub_81B9A28(void) +static void GetVerdanturfTentPrize(void) { - gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_E6A; + gSpecialVar_Result = gSaveBlock2Ptr->frontier.verdanturfTentPrize; } -static void sub_81B9A44(void) +static void SetVerdanturfTentPrize(void) { - gSaveBlock2Ptr->frontier.field_E6A = gSpecialVar_0x8006; + gSaveBlock2Ptr->frontier.verdanturfTentPrize = gSpecialVar_0x8006; } -static void sub_81B9A60(void) +static void SetVerdanturfTentTrainerGfx(void) { gTrainerBattleOpponent_A = (u32)((Random() % 255) * 5) / 64; SetBattleFacilityTrainerGfxId(gTrainerBattleOpponent_A, 0); } -static void sub_81B9A90(void) +static void BufferVerdanturfTentTrainerIntro(void) { - if (gTrainerBattleOpponent_A < 300) + if (gTrainerBattleOpponent_A < TRAINER_RECORD_MIXING_FRIEND) FrontierSpeechToString(gFacilityTrainers[gTrainerBattleOpponent_A].speechBefore); } -static void sub_81B9ABC(void) +static void SaveVerdanturfTentChallenge(void) { gSaveBlock2Ptr->frontier.challengeStatus = gSpecialVar_0x8005; VarSet(VAR_TEMP_0, 0); @@ -134,17 +135,17 @@ static void sub_81B9ABC(void) SaveGameFrontier(); } -static void sub_81B9B00(void) +static void SetRandomVerdanturfTentPrize(void) { - gSaveBlock2Ptr->frontier.field_E6A = sVerdanturfTentRewards[Random() % ARRAY_COUNT(sVerdanturfTentRewards)]; + gSaveBlock2Ptr->frontier.verdanturfTentPrize = sVerdanturfTentRewards[Random() % ARRAY_COUNT(sVerdanturfTentRewards)]; } -static void sub_81B9B28(void) +static void GiveVerdanturfTentPrize(void) { - if (AddBagItem(gSaveBlock2Ptr->frontier.field_E6A, 1) == TRUE) + if (AddBagItem(gSaveBlock2Ptr->frontier.verdanturfTentPrize, 1) == TRUE) { - CopyItemName(gSaveBlock2Ptr->frontier.field_E6A, gStringVar1); - gSaveBlock2Ptr->frontier.field_E6A = ITEM_NONE; + CopyItemName(gSaveBlock2Ptr->frontier.verdanturfTentPrize, gStringVar1); + gSaveBlock2Ptr->frontier.verdanturfTentPrize = ITEM_NONE; gSpecialVar_Result = TRUE; } else @@ -158,7 +159,7 @@ void CallFallarborTentFunction(void) sFallarborTentFuncs[gSpecialVar_0x8004](); } -static void sub_81B9BA0(void) +static void InitFallarborTentChallenge(void) { gSaveBlock2Ptr->frontier.challengeStatus = 0; gSaveBlock2Ptr->frontier.curChallengeBattleNum = 0; @@ -166,17 +167,17 @@ static void sub_81B9BA0(void) SetDynamicWarp(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1); } -static void sub_81B9BF4(void) +static void GetFallarborTentPrize(void) { - gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_E6C; + gSpecialVar_Result = gSaveBlock2Ptr->frontier.fallarborTentPrize; } -static void sub_81B9C10(void) +static void SetFallarborTentPrize(void) { - gSaveBlock2Ptr->frontier.field_E6C = gSpecialVar_0x8006; + gSaveBlock2Ptr->frontier.fallarborTentPrize = gSpecialVar_0x8006; } -static void sub_81B9C2C(void) +static void SaveFallarborTentChallenge(void) { gSaveBlock2Ptr->frontier.challengeStatus = gSpecialVar_0x8005; VarSet(VAR_TEMP_0, 0); @@ -184,17 +185,17 @@ static void sub_81B9C2C(void) SaveGameFrontier(); } -static void sub_81B9C70(void) +static void SetRandomFallarborTentPrize(void) { - gSaveBlock2Ptr->frontier.field_E6C = sFallarborTentRewards[Random() % ARRAY_COUNT(sFallarborTentRewards)]; + gSaveBlock2Ptr->frontier.fallarborTentPrize = sFallarborTentRewards[Random() % ARRAY_COUNT(sFallarborTentRewards)]; } -static void sub_81B9C98(void) +static void GiveFallarborTentPrize(void) { - if (AddBagItem(gSaveBlock2Ptr->frontier.field_E6C, 1) == TRUE) + if (AddBagItem(gSaveBlock2Ptr->frontier.fallarborTentPrize, 1) == TRUE) { - CopyItemName(gSaveBlock2Ptr->frontier.field_E6C, gStringVar1); - gSaveBlock2Ptr->frontier.field_E6C = ITEM_NONE; + CopyItemName(gSaveBlock2Ptr->frontier.fallarborTentPrize, gStringVar1); + gSaveBlock2Ptr->frontier.fallarborTentPrize = ITEM_NONE; gSpecialVar_Result = TRUE; } else @@ -203,7 +204,7 @@ static void sub_81B9C98(void) } } -static void sub_81B9CF0(void) +static void BufferFallarborTentTrainerName(void) { GetFrontierTrainerName(gStringVar1, gTrainerBattleOpponent_A); } @@ -213,7 +214,7 @@ void CallSlateportTentFunction(void) sSlateportTentFuncs[gSpecialVar_0x8004](); } -static void sub_81B9D28(void) +static void InitSlateportTentChallenge(void) { gSaveBlock2Ptr->frontier.challengeStatus = 0; gSaveBlock2Ptr->frontier.curChallengeBattleNum = 0; @@ -221,17 +222,17 @@ static void sub_81B9D28(void) SetDynamicWarp(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1); } -static void sub_81B9D7C(void) +static void GetSlateportTentPrize(void) { - gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_E6E; + gSpecialVar_Result = gSaveBlock2Ptr->frontier.slateportTentPrize; } -static void sub_81B9D98(void) +static void SetSlateportTentPrize(void) { - gSaveBlock2Ptr->frontier.field_E6E = gSpecialVar_0x8006; + gSaveBlock2Ptr->frontier.slateportTentPrize = gSpecialVar_0x8006; } -static void sub_81B9DB4(void) +static void SaveSlateportTentChallenge(void) { gSaveBlock2Ptr->frontier.challengeStatus = gSpecialVar_0x8005; VarSet(VAR_TEMP_0, 0); @@ -239,17 +240,17 @@ static void sub_81B9DB4(void) SaveGameFrontier(); } -static void sub_81B9DF8(void) +static void SetRandomSlateportTentPrize(void) { - gSaveBlock2Ptr->frontier.field_E6E = sSlateportTentRewards[Random() % ARRAY_COUNT(sSlateportTentRewards)]; + gSaveBlock2Ptr->frontier.slateportTentPrize = sSlateportTentRewards[Random() % ARRAY_COUNT(sSlateportTentRewards)]; } -static void sub_81B9E20(void) +static void GiveSlateportTentPrize(void) { - if (AddBagItem(gSaveBlock2Ptr->frontier.field_E6E, 1) == TRUE) + if (AddBagItem(gSaveBlock2Ptr->frontier.slateportTentPrize, 1) == TRUE) { - CopyItemName(gSaveBlock2Ptr->frontier.field_E6E, gStringVar1); - gSaveBlock2Ptr->frontier.field_E6E = ITEM_NONE; + CopyItemName(gSaveBlock2Ptr->frontier.slateportTentPrize, gStringVar1); + gSaveBlock2Ptr->frontier.slateportTentPrize = ITEM_NONE; gSpecialVar_Result = TRUE; } else @@ -258,13 +259,13 @@ static void sub_81B9E20(void) } } -static void sub_81B9E78(void) +static void SelectInitialRentalMons(void) { ZeroPlayerPartyMons(); DoBattleFactorySelectScreen(); } -static void sub_81B9E88(void) +static void SwapRentalMons(void) { DoBattleFactorySwapScreen(); } -- cgit v1.2.3 From 467a103bcccbb0a072f7fbbb5e31329f7d17fe6a Mon Sep 17 00:00:00 2001 From: GriffinR Date: Mon, 2 Dec 2019 14:49:22 -0500 Subject: Set up Battle Tent macros --- src/battle_tent.c | 75 +++++++++++++++++++++++++++++++------------------------ 1 file changed, 43 insertions(+), 32 deletions(-) (limited to 'src/battle_tent.c') diff --git a/src/battle_tent.c b/src/battle_tent.c index 89bb332a6..860c07a53 100644 --- a/src/battle_tent.c +++ b/src/battle_tent.c @@ -11,6 +11,7 @@ #include "battle_factory_screen.h" #include "frontier_util.h" #include "string_util.h" +#include "constants/battle_tent.h" #include "constants/items.h" #include "constants/layouts.h" #include "constants/region_map_sections.h" @@ -41,8 +42,18 @@ static void SetRandomSlateportTentPrize(void); static void GiveSlateportTentPrize(void); static void SelectInitialRentalMons(void); static void SwapRentalMons(void); -static void sub_81BA040(void); -static void sub_81B9EC0(void); +static void GenerateOpponentMons(void); +static void GenerateInitialRentalMons(void); + +/* + * Battle Tents are mini versions of particular Battle Frontier facilities + * As such they each share some scripts and functions with their counterpart + * + * Verdanturf Battle Tent: Battle Palace + * Fallarbor Battle Tent: Battle Arena + * Slateport Battle Tent: Battle Factory + * + */ // IWRAM bss static u16 sRandMonSetId; @@ -50,43 +61,43 @@ static u16 sRandMonSetId; // const rom data void static (*const sVerdanturfTentFuncs[])(void) = { - InitVerdanturfTentChallenge, - GetVerdanturfTentPrize, - SetVerdanturfTentPrize, - SetVerdanturfTentTrainerGfx, - BufferVerdanturfTentTrainerIntro, - SaveVerdanturfTentChallenge, - SetRandomVerdanturfTentPrize, - GiveVerdanturfTentPrize + [VERDANTURF_TENT_FUNC_INIT] = InitVerdanturfTentChallenge, + [VERDANTURF_TENT_FUNC_GET_PRIZE] = GetVerdanturfTentPrize, + [VERDANTURF_TENT_FUNC_SET_PRIZE] = SetVerdanturfTentPrize, + [VERDANTURF_TENT_FUNC_SET_OPPONENT_GFX] = SetVerdanturfTentTrainerGfx, + [VERDANTURF_TENT_FUNC_GET_OPPONENT_INTRO] = BufferVerdanturfTentTrainerIntro, + [VERDANTURF_TENT_FUNC_SAVE] = SaveVerdanturfTentChallenge, + [VERDANTURF_TENT_FUNC_SET_RANDOM_PRIZE] = SetRandomVerdanturfTentPrize, + [VERDANTURF_TENT_FUNC_GIVE_PRIZE] = GiveVerdanturfTentPrize }; static const u16 sVerdanturfTentRewards[] = {ITEM_NEST_BALL}; void static (*const sFallarborTentFuncs[])(void) = { - InitFallarborTentChallenge, - GetFallarborTentPrize, - SetFallarborTentPrize, - SaveFallarborTentChallenge, - SetRandomFallarborTentPrize, - GiveFallarborTentPrize, - BufferFallarborTentTrainerName + [FALLARBOR_TENT_FUNC_INIT] = InitFallarborTentChallenge, + [FALLARBOR_TENT_FUNC_GET_PRIZE] = GetFallarborTentPrize, + [FALLARBOR_TENT_FUNC_SET_PRIZE] = SetFallarborTentPrize, + [FALLARBOR_TENT_FUNC_SAVE] = SaveFallarborTentChallenge, + [FALLARBOR_TENT_FUNC_SET_RANDOM_PRIZE] = SetRandomFallarborTentPrize, + [FALLARBOR_TENT_FUNC_GIVE_PRIZE] = GiveFallarborTentPrize, + [FALLARBOR_TENT_FUNC_GET_OPPONENT_NAME] = BufferFallarborTentTrainerName }; static const u16 sFallarborTentRewards[] = {ITEM_HYPER_POTION}; void static (*const sSlateportTentFuncs[])(void) = { - InitSlateportTentChallenge, - GetSlateportTentPrize, - SetSlateportTentPrize, - SaveSlateportTentChallenge, - SetRandomSlateportTentPrize, - GiveSlateportTentPrize, - SelectInitialRentalMons, - SwapRentalMons, - sub_81BA040, - sub_81B9EC0 + [SLATEPORT_TENT_FUNC_INIT] = InitSlateportTentChallenge, + [SLATEPORT_TENT_FUNC_GET_PRIZE] = GetSlateportTentPrize, + [SLATEPORT_TENT_FUNC_SET_PRIZE] = SetSlateportTentPrize, + [SLATEPORT_TENT_FUNC_SAVE] = SaveSlateportTentChallenge, + [SLATEPORT_TENT_FUNC_SET_RANDOM_PRIZE] = SetRandomSlateportTentPrize, + [SLATEPORT_TENT_FUNC_GIVE_PRIZE] = GiveSlateportTentPrize, + [SLATEPORT_TENT_FUNC_SELECT_RENT_MONS] = SelectInitialRentalMons, + [SLATEPORT_TENT_FUNC_SWAP_RENT_MONS] = SwapRentalMons, + [SLATEPORT_TENT_FUNC_GENERATE_OPPONENT_MONS] = GenerateOpponentMons, + [SLATEPORT_TENT_FUNC_GENERATE_RENTAL_MONS] = GenerateInitialRentalMons }; static const u16 sSlateportTentRewards[] = {ITEM_FULL_HEAL}; @@ -276,7 +287,7 @@ bool8 InSlateportBattleTent(void) && (gMapHeader.mapLayoutId == LAYOUT_BATTLE_TENT_CORRIDOR || gMapHeader.mapLayoutId == LAYOUT_BATTLE_TENT_BATTLE_ROOM); } -static void sub_81B9EC0(void) +static void GenerateInitialRentalMons(void) { s32 i, j; u8 firstMonId; @@ -338,13 +349,13 @@ static void sub_81B9EC0(void) } } -static void sub_81BA040(void) +static void GenerateOpponentMons(void) { u16 trainerId; s32 i, j, k; register const u16 *monSets asm("r9"); // Fix me. Compiler insists on moving that variable into stack. - u16 species[3]; - u16 heldItems[3]; + u16 species[FRONTIER_PARTY_SIZE]; + u16 heldItems[FRONTIER_PARTY_SIZE]; s32 setsCount = 0; gFacilityTrainers = gSlateportBattleTentTrainers; @@ -375,7 +386,7 @@ static void sub_81BA040(void) monSets = gFacilityTrainers[gTrainerBattleOpponent_A].monSets; i = 0; - while (i != 3) + while (i != FRONTIER_PARTY_SIZE) { sRandMonSetId = monSets[Random() % setsCount]; for (j = 0; j < 6; j++) -- cgit v1.2.3