diff options
author | GriffinR <griffin.richards@comcast.net> | 2019-12-06 02:34:54 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-12-06 02:34:54 -0500 |
commit | c51e0f3bae824a4c099bdcb0f938e298ef49fdcb (patch) | |
tree | 8825791d67d44b905e63ea59311c3d85711ac140 /src | |
parent | cb90f22c5e632cf8161ae2c3246d8d1f205ce39f (diff) | |
parent | 7beddd16dd81d79ee886183053037e68910e01d5 (diff) |
Merge branch 'master' into fix-eventobj
Diffstat (limited to 'src')
-rw-r--r-- | src/battle_arena.c | 34 | ||||
-rw-r--r-- | src/battle_dome.c | 132 | ||||
-rw-r--r-- | src/battle_factory.c | 121 | ||||
-rw-r--r-- | src/battle_palace.c | 104 | ||||
-rw-r--r-- | src/battle_pike.c | 134 | ||||
-rw-r--r-- | src/battle_pyramid.c | 89 | ||||
-rw-r--r-- | src/battle_tent.c | 206 | ||||
-rw-r--r-- | src/battle_tower.c | 74 | ||||
-rw-r--r-- | src/data/pokemon/item_effects.h | 4 | ||||
-rwxr-xr-x | src/item_use.c | 6 |
10 files changed, 467 insertions, 437 deletions
diff --git a/src/battle_arena.c b/src/battle_arena.c index e9af29622..7202cf7b5 100644 --- a/src/battle_arena.c +++ b/src/battle_arena.c @@ -33,8 +33,8 @@ static void InitArenaChallenge(void); static void GetArenaData(void); static void SetArenaData(void); static void SaveArenaChallenge(void); -static void SetArenaRewardItem(void); -static void GiveArenaRewardItem(void); +static void SetArenaPrize(void); +static void GiveArenaPrize(void); static void BufferArenaOpponentName(void); static void SpriteCb_JudgmentIcon(struct Sprite *sprite); static void ShowJudgmentSprite(u8 x, u8 y, u8 category, u8 battler); @@ -473,12 +473,12 @@ static void (* const sArenaFunctions[])(void) = [BATTLE_ARENA_FUNC_GET_DATA] = GetArenaData, [BATTLE_ARENA_FUNC_SET_DATA] = SetArenaData, [BATTLE_ARENA_FUNC_SAVE] = SaveArenaChallenge, - [BATTLE_ARENA_FUNC_SET_REWARD] = SetArenaRewardItem, - [BATTLE_ARENA_FUNC_GIVE_REWARD] = GiveArenaRewardItem, + [BATTLE_ARENA_FUNC_SET_PRIZE] = SetArenaPrize, + [BATTLE_ARENA_FUNC_GIVE_PRIZE] = GiveArenaPrize, [BATTLE_ARENA_FUNC_GET_TRAINER_NAME] = BufferArenaOpponentName, }; -static const u16 sShortStreakRewardItems[] = +static const u16 sShortStreakPrizeItems[] = { ITEM_HP_UP, ITEM_PROTEIN, @@ -488,7 +488,7 @@ static const u16 sShortStreakRewardItems[] = ITEM_ZINC, }; -static const u16 sLongStreakRewardItems[] = +static const u16 sLongStreakPrizeItems[] = { ITEM_BRIGHT_POWDER, ITEM_WHITE_HERB, @@ -810,8 +810,8 @@ static void GetArenaData(void) switch (gSpecialVar_0x8005) { - case ARENA_DATA_REWARD: - gSpecialVar_Result = gSaveBlock2Ptr->frontier.arenaRewardItem; + case ARENA_DATA_PRIZE: + gSpecialVar_Result = gSaveBlock2Ptr->frontier.arenaPrize; break; case ARENA_DATA_WIN_STREAK: gSpecialVar_Result = gSaveBlock2Ptr->frontier.arenaWinStreaks[lvlMode]; @@ -831,8 +831,8 @@ static void SetArenaData(void) switch (gSpecialVar_0x8005) { - case ARENA_DATA_REWARD: - gSaveBlock2Ptr->frontier.arenaRewardItem = gSpecialVar_0x8006; + case ARENA_DATA_PRIZE: + gSaveBlock2Ptr->frontier.arenaPrize = gSpecialVar_0x8006; break; case ARENA_DATA_WIN_STREAK: gSaveBlock2Ptr->frontier.arenaWinStreaks[lvlMode] = gSpecialVar_0x8006; @@ -864,22 +864,22 @@ static void SaveArenaChallenge(void) SaveGameFrontier(); } -static void SetArenaRewardItem(void) +static void SetArenaPrize(void) { u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; if (gSaveBlock2Ptr->frontier.arenaWinStreaks[lvlMode] > 41) - gSaveBlock2Ptr->frontier.arenaRewardItem = sLongStreakRewardItems[Random() % ARRAY_COUNT(sLongStreakRewardItems)]; + gSaveBlock2Ptr->frontier.arenaPrize = sLongStreakPrizeItems[Random() % ARRAY_COUNT(sLongStreakPrizeItems)]; else - gSaveBlock2Ptr->frontier.arenaRewardItem = sShortStreakRewardItems[Random() % ARRAY_COUNT(sShortStreakRewardItems)]; + gSaveBlock2Ptr->frontier.arenaPrize = sShortStreakPrizeItems[Random() % ARRAY_COUNT(sShortStreakPrizeItems)]; } -static void GiveArenaRewardItem(void) +static void GiveArenaPrize(void) { - if (AddBagItem(gSaveBlock2Ptr->frontier.arenaRewardItem, 1) == TRUE) + if (AddBagItem(gSaveBlock2Ptr->frontier.arenaPrize, 1) == TRUE) { - CopyItemName(gSaveBlock2Ptr->frontier.arenaRewardItem, gStringVar1); - gSaveBlock2Ptr->frontier.arenaRewardItem = ITEM_NONE; + CopyItemName(gSaveBlock2Ptr->frontier.arenaPrize, gStringVar1); + gSaveBlock2Ptr->frontier.arenaPrize = ITEM_NONE; gSpecialVar_Result = TRUE; } else diff --git a/src/battle_dome.c b/src/battle_dome.c index fc254e74d..eca6eb466 100644 --- a/src/battle_dome.c +++ b/src/battle_dome.c @@ -30,6 +30,7 @@ #include "scanline_effect.h" #include "script_pokemon_util_80F87D8.h" #include "graphics.h" +#include "constants/battle_dome.h" #include "constants/frontier_util.h" #include "constants/species.h" #include "constants/moves.h" @@ -39,13 +40,6 @@ #include "constants/battle_frontier.h" #include "constants/rgb.h" -#define DOME_ROUND1 0 -#define DOME_ROUND2 1 -#define DOME_QUARTERFINAL 1 // Different name for the same round. -#define DOME_SEMIFINAL 2 -#define DOME_FINAL 3 -#define DOME_ROUNDS_COUNT 4 - struct BattleDomeStruct { u8 arr[DOME_TOURNAMENT_TRAINERS_COUNT]; @@ -107,9 +101,9 @@ static void SetDomeOpponentId(void); static void SetDomeOpponentGraphicsId(void); static void ShowNonInteractiveDomeTourneyTree(void); static void ResolveDomeRoundWinners(void); -static void sub_81902F8(void); -static void UpdateDomeStreaks(void); -static void RestoreDomePlayerParty(void); +static void SaveDomeChallenge(void); +static void IncrementDomeStreaks(void); +static void ResetSketchedMoves(void); static void RestoreDomePlayerPartyHeldItems(void); static void ReduceDomePlayerPartyTo3Mons(void); static void GetPlayerSeededBeforeOpponent(void); @@ -1079,29 +1073,29 @@ static const u8 sTourneyTreeTrainerIds[] = {0, 8, 12, 4, 7, 15, 11, 3, 2, 10, 14 static void (* const sBattleDomeFunctions[])(void) = { - InitDomeChallenge, - GetDomeData, - SetDomeData, - BufferDomeRoundText, - BufferDomeOpponentName, - InitDomeOpponentParty, - ShowDomeOpponentInfo, - ShowDomeTourneyTree, - ShowPreviousDomeResultsTourneyTree, - SetDomeOpponentId, - SetDomeOpponentGraphicsId, - ShowNonInteractiveDomeTourneyTree, - ResolveDomeRoundWinners, - sub_81902F8, - UpdateDomeStreaks, - InitDomeFacilityTrainersAndMons, - RestoreDomePlayerParty, - RestoreDomePlayerPartyHeldItems, - ReduceDomePlayerPartyTo3Mons, - GetPlayerSeededBeforeOpponent, - BufferLastDomeWinnerName, - sub_8194F58, - InitDomeTrainers, + [BATTLE_DOME_FUNC_INIT] = InitDomeChallenge, + [BATTLE_DOME_FUNC_GET_DATA] = GetDomeData, + [BATTLE_DOME_FUNC_SET_DATA] = SetDomeData, + [BATTLE_DOME_FUNC_GET_ROUND_TEXT] = BufferDomeRoundText, + [BATTLE_DOME_FUNC_GET_OPPONENT_NAME] = BufferDomeOpponentName, + [BATTLE_DOME_FUNC_INIT_OPPONENT_PARTY] = InitDomeOpponentParty, + [BATTLE_DOME_FUNC_SHOW_OPPONENT_INFO] = ShowDomeOpponentInfo, + [BATTLE_DOME_FUNC_SHOW_TOURNEY_TREE] = ShowDomeTourneyTree, + [BATTLE_DOME_FUNC_SHOW_PREV_RESULTS_TREE] = ShowPreviousDomeResultsTourneyTree, + [BATTLE_DOME_FUNC_SET_OPPONENT_ID] = SetDomeOpponentId, + [BATTLE_DOME_FUNC_SET_OPPONENT_GFX] = SetDomeOpponentGraphicsId, + [BATTLE_DOME_FUNC_SHOW_STATIC_TOURNEY_TREE] = ShowNonInteractiveDomeTourneyTree, + [BATTLE_DOME_FUNC_RESOLVE_WINNERS] = ResolveDomeRoundWinners, + [BATTLE_DOME_FUNC_SAVE] = SaveDomeChallenge, + [BATTLE_DOME_FUNC_INCREMENT_STREAK] = IncrementDomeStreaks, + [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_COMPARE_SEEDS] = GetPlayerSeededBeforeOpponent, + [BATTLE_DOME_FUNC_GET_WINNER_NAME] = BufferLastDomeWinnerName, + [BATTLE_DOME_FUNC_21] = sub_8194F58, + [BATTLE_DOME_FUNC_INIT_TRAINERS] = InitDomeTrainers, }; static const u32 sWinStreakFlags[][2] = @@ -2280,25 +2274,25 @@ static void GetDomeData(void) switch (gSpecialVar_0x8005) { - case 0: + case DOME_DATA_WIN_STREAK: gSpecialVar_Result = gSaveBlock2Ptr->frontier.domeWinStreaks[battleMode][lvlMode]; break; - case 1: + case DOME_DATA_WIN_STREAK_ACTIVE: gSpecialVar_Result = ((gSaveBlock2Ptr->frontier.winStreakActiveFlags & sWinStreakFlags[battleMode][lvlMode]) != 0); break; - case 2: + case DOME_DATA_2: gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D08_0; break; - case 3: + case DOME_DATA_3: gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D08_1; break; - case 4: + case DOME_DATA_4: gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D08_2; break; - case 5: + case DOME_DATA_5: gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D08_3; break; - case 6: + case DOME_DATA_6: if (VarGet(VAR_FRONTIER_BATTLE_MODE) == FRONTIER_MODE_DOUBLES) { if (lvlMode) @@ -2314,7 +2308,7 @@ static void GetDomeData(void) gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D08_0; } break; - case 7: + case DOME_DATA_7: if (VarGet(VAR_FRONTIER_BATTLE_MODE) == FRONTIER_MODE_DOUBLES) { if (lvlMode) @@ -2330,12 +2324,12 @@ static void GetDomeData(void) gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_D08_2; } break; - case 8: + case DOME_DATA_8: ClearSelectedPartyOrder(); gSelectedOrderFromParty[0] = gSaveBlock2Ptr->frontier.selectedPartyMons[3]; gSelectedOrderFromParty[1] = gSaveBlock2Ptr->frontier.selectedPartyMons[3] >> 8; break; - case 9: + case DOME_DATA_9: gSpecialVar_Result = (gSaveBlock2Ptr->frontier.field_D0A * 2) - 3 + gSaveBlock2Ptr->frontier.field_D0B; break; } @@ -2348,28 +2342,28 @@ static void SetDomeData(void) switch (gSpecialVar_0x8005) { - case 0: + case DOME_DATA_WIN_STREAK: gSaveBlock2Ptr->frontier.domeWinStreaks[battleMode][lvlMode] = gSpecialVar_0x8006; break; - case 1: + case DOME_DATA_WIN_STREAK_ACTIVE: if (gSpecialVar_0x8006) gSaveBlock2Ptr->frontier.winStreakActiveFlags |= sWinStreakFlags[battleMode][lvlMode]; else gSaveBlock2Ptr->frontier.winStreakActiveFlags &= sWinStreakMasks[battleMode][lvlMode]; break; - case 2: + case DOME_DATA_2: gSaveBlock2Ptr->frontier.field_D08_0 = gSpecialVar_0x8006; break; - case 3: + case DOME_DATA_3: gSaveBlock2Ptr->frontier.field_D08_1 = gSpecialVar_0x8006; break; - case 4: + case DOME_DATA_4: gSaveBlock2Ptr->frontier.field_D08_2 = gSpecialVar_0x8006; break; - case 5: + case DOME_DATA_5: gSaveBlock2Ptr->frontier.field_D08_3 = gSpecialVar_0x8006; break; - case 6: + case DOME_DATA_6: if (VarGet(VAR_FRONTIER_BATTLE_MODE) == FRONTIER_MODE_DOUBLES) { if (lvlMode) @@ -2385,7 +2379,7 @@ static void SetDomeData(void) gSaveBlock2Ptr->frontier.field_D08_0 = gSpecialVar_0x8006; } break; - case 7: + case DOME_DATA_7: if (VarGet(VAR_FRONTIER_BATTLE_MODE) == FRONTIER_MODE_DOUBLES) { if (lvlMode) @@ -2401,7 +2395,7 @@ static void SetDomeData(void) gSaveBlock2Ptr->frontier.field_D08_2 = gSpecialVar_0x8006; } break; - case 8: + case DOME_DATA_8: gSaveBlock2Ptr->frontier.selectedPartyMons[3] = T1_READ_16(gSelectedOrderFromParty); break; } @@ -2411,7 +2405,7 @@ static void InitDomeTrainers(void) { int i, j, k; int monLevel; - int species[3]; + int species[FRONTIER_PARTY_SIZE]; int monTypesBits, monTypesCount; int trainerId; int monSetId; @@ -2472,7 +2466,7 @@ static void InitDomeTrainers(void) gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId = trainerId; } - for (j = 0; j < 3; j++) + for (j = 0; j < FRONTIER_PARTY_SIZE; j++) { // Make sure the mon is valid. do @@ -2528,7 +2522,7 @@ static void InitDomeTrainers(void) monTypesBits = 0; statSums[i] = 0; ivs = GetDomeTrainerMonIvs(gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId); - for (j = 0; j < 3; j++) + for (j = 0; j < FRONTIER_PARTY_SIZE; j++) { CalcDomeMonStats(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[i][j]].species, monLevel, ivs, @@ -2595,7 +2589,7 @@ static void InitDomeTrainers(void) gSaveBlock2Ptr->frontier.domeTrainers[j].trainerId = TRAINER_FRONTIER_BRAIN; } - for (i = 0; i < 3; i++) + for (i = 0; i < FRONTIER_PARTY_SIZE; i++) gSaveBlock2Ptr->frontier.domeMonIds[j][i] = GetFrontierBrainMonSpecies(i); } @@ -2765,14 +2759,14 @@ int GetDomeTrainerMonCountInBits(u16 tournamentTrainerId) static int sub_818FCBC(u16 tournamentTrainerId, bool8 arg1) { int i, moveId, playerMonId; - int array[3]; + int array[FRONTIER_PARTY_SIZE]; - for (i = 0; i < 3; i++) + for (i = 0; i < FRONTIER_PARTY_SIZE; i++) { array[i] = 0; for (moveId = 0; moveId < MAX_MON_MOVES; moveId++) { - for (playerMonId = 0; playerMonId < 3; playerMonId++) + for (playerMonId = 0; playerMonId < FRONTIER_PARTY_SIZE; playerMonId++) { if (gSaveBlock2Ptr->frontier.domeTrainers[tournamentTrainerId].trainerId == TRAINER_FRONTIER_BRAIN) { @@ -2793,14 +2787,14 @@ static int sub_818FCBC(u16 tournamentTrainerId, bool8 arg1) static int sub_818FDB8(u16 tournamentTrainerId, bool8 arg1) { int i, moveId, playerMonId; - int array[3]; + int array[FRONTIER_PARTY_SIZE]; - for (i = 0; i < 3; i++) + for (i = 0; i < FRONTIER_PARTY_SIZE; i++) { array[i] = 0; for (moveId = 0; moveId < MAX_MON_MOVES; moveId++) { - for (playerMonId = 0; playerMonId < 3; playerMonId++) + for (playerMonId = 0; playerMonId < FRONTIER_PARTY_SIZE; playerMonId++) { if (gSaveBlock2Ptr->frontier.domeTrainers[tournamentTrainerId].trainerId == TRAINER_FRONTIER_BRAIN) { @@ -3327,7 +3321,7 @@ static void SetDomeOpponentGraphicsId(void) SetBattleFacilityTrainerGfxId(gTrainerBattleOpponent_A, 0); } -static void sub_81902F8(void) +static void SaveDomeChallenge(void) { gSaveBlock2Ptr->frontier.challengeStatus = gSpecialVar_0x8005; VarSet(VAR_TEMP_0, 0); @@ -3335,7 +3329,7 @@ static void sub_81902F8(void) SaveGameFrontier(); } -static void UpdateDomeStreaks(void) +static void IncrementDomeStreaks(void) { u8 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; u8 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE); @@ -5937,7 +5931,7 @@ static void InitDomeFacilityTrainersAndMons(void) gFacilityTrainers = gBattleFrontierTrainers; } -static void RestoreDomePlayerParty(void) +static void ResetSketchedMoves(void) { int i, moveSlot; @@ -6005,7 +5999,7 @@ static void sub_8194F58(void) { int i, j, k; int monLevel; - int species[3]; + int species[FRONTIER_PARTY_SIZE]; int monTypesBits; int trainerId; int monSetId; @@ -6021,7 +6015,7 @@ static void sub_8194F58(void) return; statSums = AllocZeroed(sizeof(u16) * DOME_TOURNAMENT_TRAINERS_COUNT); - statValues = AllocZeroed(sizeof(int) * 6); + statValues = AllocZeroed(sizeof(int) * NUM_STATS); lvlMode = gSaveBlock2Ptr->frontier.lvlMode; gSaveBlock2Ptr->frontier.lvlMode = 0; // This one, I'd like to call a 'C fakematching'. @@ -6050,7 +6044,7 @@ static void sub_8194F58(void) } while (j != i); gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId = trainerId; - for (j = 0; j < 3; j++) + for (j = 0; j < FRONTIER_PARTY_SIZE; j++) { // Make sure the mon is valid. do @@ -6081,7 +6075,7 @@ static void sub_8194F58(void) monTypesBits = 0; statSums[i] = 0; ivs = GetDomeTrainerMonIvs(gSaveBlock2Ptr->frontier.domeTrainers[i].trainerId); - for (j = 0; j < 3; j++) + for (j = 0; j < FRONTIER_PARTY_SIZE; j++) { CalcDomeMonStats(gFacilityTrainerMons[gSaveBlock2Ptr->frontier.domeMonIds[i][j]].species, monLevel, ivs, diff --git a/src/battle_factory.c b/src/battle_factory.c index cc1fd12b7..b412af237 100644 --- a/src/battle_factory.c +++ b/src/battle_factory.c @@ -10,6 +10,7 @@ #include "random.h" #include "constants/species.h" #include "constants/battle_ai.h" +#include "constants/battle_factory.h" #include "constants/battle_frontier.h" #include "constants/frontier_util.h" #include "constants/layouts.h" @@ -23,7 +24,7 @@ static bool8 sPerformedRentalSwap; static void InitFactoryChallenge(void); static void GetBattleFactoryData(void); static void SetBattleFactoryData(void); -static void sub_81A613C(void); +static void SaveFactoryChallenge(void); static void nullsub_75(void); static void nullsub_123(void); static void SelectInitialRentalMons(void); @@ -49,14 +50,14 @@ static const u16 sMoves_TotalPreparation[] = MOVE_MINIMIZE, MOVE_WITHDRAW, MOVE_DEFENSE_CURL, MOVE_BARRIER, MOVE_FOCUS_ENERGY, MOVE_AMNESIA, MOVE_ACID_ARMOR, MOVE_SHARPEN, MOVE_CONVERSION, MOVE_CONVERSION_2, MOVE_BELLY_DRUM, MOVE_PSYCH_UP, MOVE_CHARGE, MOVE_SNATCH, MOVE_TAIL_GLOW, MOVE_COSMIC_POWER, MOVE_IRON_DEFENSE, MOVE_HOWL, MOVE_BULK_UP, MOVE_CALM_MIND, MOVE_DRAGON_DANCE, - 0 + MOVE_NONE }; static const u16 sMoves_ImpossibleToPredict[] = { MOVE_MIMIC, MOVE_METRONOME, MOVE_MIRROR_MOVE, MOVE_TRANSFORM, MOVE_SUBSTITUTE, MOVE_SKETCH, MOVE_CURSE, MOVE_PRESENT, MOVE_FOLLOW_ME, MOVE_TRICK, MOVE_ROLE_PLAY, MOVE_ASSIST, MOVE_SKILL_SWAP, MOVE_CAMOUFLAGE, - 0 + MOVE_NONE }; static const u16 sMoves_WeakeningTheFoe[] = @@ -64,7 +65,7 @@ static const u16 sMoves_WeakeningTheFoe[] = MOVE_SAND_ATTACK, MOVE_TAIL_WHIP, MOVE_LEER, MOVE_GROWL, MOVE_STRING_SHOT, MOVE_SCREECH, MOVE_SMOKESCREEN, MOVE_KINESIS, MOVE_FLASH, MOVE_COTTON_SPORE, MOVE_SPITE, MOVE_SCARY_FACE, MOVE_CHARM, MOVE_KNOCK_OFF, MOVE_SWEET_SCENT, MOVE_FEATHER_DANCE, MOVE_FAKE_TEARS, MOVE_METAL_SOUND, MOVE_TICKLE, - 0 + MOVE_NONE }; static const u16 sMoves_HighRiskHighReturn[] = @@ -73,7 +74,7 @@ static const u16 sMoves_HighRiskHighReturn[] = MOVE_BIDE, MOVE_SELF_DESTRUCT, MOVE_SKY_ATTACK, MOVE_EXPLOSION, MOVE_FLAIL, MOVE_REVERSAL, MOVE_DESTINY_BOND, MOVE_PERISH_SONG, MOVE_PAIN_SPLIT, MOVE_MIRROR_COAT, MOVE_MEMENTO, MOVE_GRUDGE, MOVE_FACADE, MOVE_FOCUS_PUNCH, MOVE_BLAST_BURN, MOVE_HYDRO_CANNON, MOVE_OVERHEAT, MOVE_FRENZY_PLANT, MOVE_PSYCHO_BOOST, MOVE_VOLT_TACKLE, - 0 + MOVE_NONE }; static const u16 sMoves_Endurance[] = @@ -82,7 +83,7 @@ static const u16 sMoves_Endurance[] = MOVE_DETECT, MOVE_ENDURE, MOVE_MILK_DRINK, MOVE_HEAL_BELL, MOVE_SAFEGUARD, MOVE_BATON_PASS, MOVE_MORNING_SUN, MOVE_SYNTHESIS, MOVE_MOONLIGHT, MOVE_SWALLOW, MOVE_WISH, MOVE_INGRAIN, MOVE_MAGIC_COAT, MOVE_RECYCLE, MOVE_REFRESH, MOVE_MUD_SPORT, MOVE_SLACK_OFF, MOVE_AROMATHERAPY, MOVE_WATER_SPORT, - 0 + MOVE_NONE }; static const u16 sMoves_SlowAndSteady[] = @@ -91,45 +92,46 @@ static const u16 sMoves_SlowAndSteady[] = MOVE_THUNDER_WAVE, MOVE_TOXIC, MOVE_HYPNOSIS, MOVE_CONFUSE_RAY, MOVE_GLARE, MOVE_POISON_GAS, MOVE_LOVELY_KISS, MOVE_SPORE, MOVE_SPIDER_WEB, MOVE_SWEET_KISS, MOVE_SPIKES, MOVE_SWAGGER, MOVE_MEAN_LOOK, MOVE_ATTRACT, MOVE_ENCORE, MOVE_TORMENT, MOVE_FLATTER, MOVE_WILL_O_WISP, MOVE_TAUNT, MOVE_YAWN, MOVE_IMPRISON, MOVE_SNATCH, MOVE_TEETER_DANCE, MOVE_GRASS_WHISTLE, MOVE_BLOCK, - 0 + MOVE_NONE }; static const u16 sMoves_DependsOnTheBattlesFlow[] = { MOVE_SANDSTORM, MOVE_RAIN_DANCE, MOVE_SUNNY_DAY, MOVE_HAIL, MOVE_WEATHER_BALL, - 0 + MOVE_NONE }; -static const u16 *const sMoveStyles[] = +// Excludes FACTORY_STYLE_NONE +static const u16 *const sMoveStyles[FACTORY_NUM_STYLES - 1] = { - sMoves_TotalPreparation, - sMoves_SlowAndSteady, - sMoves_Endurance, - sMoves_HighRiskHighReturn, - sMoves_WeakeningTheFoe, - sMoves_ImpossibleToPredict, - sMoves_DependsOnTheBattlesFlow, + [FACTORY_STYLE_PREPARATION - 1] = sMoves_TotalPreparation, + [FACTORY_STYLE_SLOW_STEADY - 1] = sMoves_SlowAndSteady, + [FACTORY_STYLE_ENDURANCE - 1] = sMoves_Endurance, + [FACTORY_STYLE_HIGH_RISK - 1] = sMoves_HighRiskHighReturn, + [FACTORY_STYLE_WEAKENING - 1] = sMoves_WeakeningTheFoe, + [FACTORY_STYLE_UNPREDICTABLE - 1] = sMoves_ImpossibleToPredict, + [FACTORY_STYLE_WEATHER - 1] = sMoves_DependsOnTheBattlesFlow, }; static void (* const sBattleFactoryFunctions[])(void) = { - InitFactoryChallenge, - GetBattleFactoryData, - SetBattleFactoryData, - sub_81A613C, - nullsub_75, - nullsub_123, - SelectInitialRentalMons, - SwapRentalMons, - SetPerformedRentalSwap, - SetRentalsToOpponentParty, - SetPlayerAndOpponentParties, - SetOpponentGfxVar, - GenerateOpponentMons, - GenerateInitialRentalMons, - GetOpponentMostCommonMonType, - GetOpponentBattleStyle, - RestorePlayerPartyHeldItems, + [BATTLE_FACTORY_FUNC_INIT] = InitFactoryChallenge, + [BATTLE_FACTORY_FUNC_GET_DATA] = GetBattleFactoryData, + [BATTLE_FACTORY_FUNC_SET_DATA] = SetBattleFactoryData, + [BATTLE_FACTORY_FUNC_SAVE] = SaveFactoryChallenge, + [BATTLE_FACTORY_FUNC_NULL] = nullsub_75, + [BATTLE_FACTORY_FUNC_NULL2] = nullsub_123, + [BATTLE_FACTORY_FUNC_SELECT_RENT_MONS] = SelectInitialRentalMons, + [BATTLE_FACTORY_FUNC_SWAP_RENT_MONS] = SwapRentalMons, + [BATTLE_FACTORY_FUNC_SET_SWAPPED] = SetPerformedRentalSwap, + [BATTLE_FACTORY_FUNC_SET_OPPONENT_MONS] = SetRentalsToOpponentParty, + [BATTLE_FACTORY_FUNC_SET_PARTIES] = SetPlayerAndOpponentParties, + [BATTLE_FACTORY_FUNC_SET_OPPONENT_GFX] = SetOpponentGfxVar, + [BATTLE_FACTORY_FUNC_GENERATE_OPPONENT_MONS] = GenerateOpponentMons, + [BATTLE_FACTORY_FUNC_GENERATE_RENTAL_MONS] = GenerateInitialRentalMons, + [BATTLE_FACTORY_FUNC_GET_OPPONENT_MON_TYPE] = GetOpponentMostCommonMonType, + [BATTLE_FACTORY_FUNC_GET_OPPONENT_STYLE] = GetOpponentBattleStyle, + [BATTLE_FACTORY_FUNC_RESET_HELD_ITEMS] = RestorePlayerPartyHeldItems, }; static const u32 sWinStreakFlags[][2] = @@ -201,7 +203,7 @@ static void InitFactoryChallenge(void) sPerformedRentalSwap = FALSE; for (i = 0; i < 6; i++) gSaveBlock2Ptr->frontier.rentalMons[i].monId = 0xFFFF; - for (i = 0; i < 3; i++) + for (i = 0; i < FRONTIER_PARTY_SIZE; i++) gUnknown_03006298[i] = 0xFFFF; SetDynamicWarp(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1); @@ -215,13 +217,13 @@ static void GetBattleFactoryData(void) switch (gSpecialVar_0x8005) { - case 1: + case FACTORY_DATA_WIN_STREAK: gSpecialVar_Result = gSaveBlock2Ptr->frontier.factoryWinStreaks[battleMode][lvlMode]; break; - case 2: + case FACTORY_DATA_WIN_STREAK_ACTIVE: gSpecialVar_Result = ((gSaveBlock2Ptr->frontier.winStreakActiveFlags & sWinStreakFlags[battleMode][lvlMode]) != 0); break; - case 3: + case FACTORY_DATA_WIN_STREAK_SWAPS: gSpecialVar_Result = gSaveBlock2Ptr->frontier.factoryRentsCount[battleMode][lvlMode]; break; } @@ -234,16 +236,16 @@ static void SetBattleFactoryData(void) switch (gSpecialVar_0x8005) { - case 1: + case FACTORY_DATA_WIN_STREAK: gSaveBlock2Ptr->frontier.factoryWinStreaks[battleMode][lvlMode] = gSpecialVar_0x8006; break; - case 2: + case FACTORY_DATA_WIN_STREAK_ACTIVE: if (gSpecialVar_0x8006) gSaveBlock2Ptr->frontier.winStreakActiveFlags |= sWinStreakFlags[battleMode][lvlMode]; else gSaveBlock2Ptr->frontier.winStreakActiveFlags &= sWinStreakMasks[battleMode][lvlMode]; break; - case 3: + case FACTORY_DATA_WIN_STREAK_SWAPS: if (sPerformedRentalSwap == TRUE) { gSaveBlock2Ptr->frontier.factoryRentsCount[battleMode][lvlMode] = gSpecialVar_0x8006; @@ -253,7 +255,7 @@ static void SetBattleFactoryData(void) } } -static void sub_81A613C(void) +static void SaveFactoryChallenge(void) { gSaveBlock2Ptr->frontier.challengeStatus = gSpecialVar_0x8005; VarSet(VAR_TEMP_0, 0); @@ -290,8 +292,8 @@ static void SetPerformedRentalSwap(void) static void GenerateOpponentMons(void) { int i, j, k; - u16 species[3]; - u16 heldItems[3]; + u16 species[FRONTIER_PARTY_SIZE]; + u16 heldItems[FRONTIER_PARTY_SIZE]; int firstMonId = 0; u16 trainerId = 0; u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; @@ -315,7 +317,7 @@ static void GenerateOpponentMons(void) gSaveBlock2Ptr->frontier.trainerIds[gSaveBlock2Ptr->frontier.curChallengeBattleNum] = trainerId; i = 0; - while (i != 3) + while (i != FRONTIER_PARTY_SIZE) { u16 monSetId = GetMonSetId(lvlMode, challengeNum, FALSE); if (gFacilityTrainerMons[monSetId].species == SPECIES_UNOWN) @@ -369,7 +371,7 @@ static void SetRentalsToOpponentParty(void) else gFacilityTrainerMons = gSlateportBattleTentMons; - for (i = 0; i < 3; i++) + for (i = 0; i < FRONTIER_PARTY_SIZE; i++) { gSaveBlock2Ptr->frontier.rentalMons[i + 3].monId = gUnknown_03006298[i]; gSaveBlock2Ptr->frontier.rentalMons[i + 3].ivs = GetBoxMonData(&gEnemyParty[i].box, MON_DATA_ATK_IV, NULL); @@ -407,7 +409,7 @@ static void SetPlayerAndOpponentParties(void) if (gSpecialVar_0x8005 < 2) { ZeroPlayerPartyMons(); - for (i = 0; i < 3; i++) + for (i = 0; i < FRONTIER_PARTY_SIZE; i++) { monSetId = gSaveBlock2Ptr->frontier.rentalMons[i].monId; ivs = gSaveBlock2Ptr->frontier.rentalMons[i].ivs; @@ -448,7 +450,7 @@ static void SetPlayerAndOpponentParties(void) { case 0: case 2: - for (i = 0; i < 3; i++) + for (i = 0; i < FRONTIER_PARTY_SIZE; i++) { monSetId = gSaveBlock2Ptr->frontier.rentalMons[i + 3].monId; ivs = gSaveBlock2Ptr->frontier.rentalMons[i + 3].ivs; @@ -588,7 +590,7 @@ static void GetOpponentMostCommonMonType(void) gFacilityTrainerMons = gBattleFrontierMons; for (i = 0; i < NUMBER_OF_MON_TYPES; i++) typesCount[i] = 0; - for (i = 0; i < 3; i++) + for (i = 0; i < FRONTIER_PARTY_SIZE; i++) { u32 species = gFacilityTrainerMons[gUnknown_03006298[i]].species; @@ -617,14 +619,14 @@ static void GetOpponentMostCommonMonType(void) static void GetOpponentBattleStyle(void) { u8 i, j, count; - u8 stylePoints[8]; + u8 stylePoints[FACTORY_NUM_STYLES]; count = 0; gFacilityTrainerMons = gBattleFrontierMons; - for (i = 0; i < 8; i++) + for (i = 0; i < FACTORY_NUM_STYLES; i++) stylePoints[i] = 0; - for (i = 0; i < 3; i++) + for (i = 0; i < FRONTIER_PARTY_SIZE; i++) { u16 monSetId = gUnknown_03006298[i]; for (j = 0; j < MAX_MON_MOVES; j++) @@ -635,7 +637,7 @@ static void GetOpponentBattleStyle(void) } gSpecialVar_Result = 0; - for (i = 1; i < 8; i++) + for (i = 1; i < FACTORY_NUM_STYLES; i++) { if (stylePoints[i] >= sRequiredMoveCounts[i - 1]) { @@ -644,8 +646,9 @@ static void GetOpponentBattleStyle(void) } } + // Has no singular style if (count > 2) - gSpecialVar_Result = 8; + gSpecialVar_Result = FACTORY_NUM_STYLES; } static u8 GetMoveBattleStyle(u16 move) @@ -655,13 +658,13 @@ static u8 GetMoveBattleStyle(u16 move) for (i = 0; i < ARRAY_COUNT(sMoveStyles); i++) { - for (j = 0, moves = sMoveStyles[i]; moves[j] != 0; j++) + for (j = 0, moves = sMoveStyles[i]; moves[j] != MOVE_NONE; j++) { if (moves[j] == move) return i + 1; } } - return 0; + return FACTORY_STYLE_NONE; } bool8 InBattleFactory(void) @@ -679,7 +682,7 @@ static void RestorePlayerPartyHeldItems(void) else gFacilityTrainerMons = gSlateportBattleTentMons; - for (i = 0; i < 3; i++) + for (i = 0; i < FRONTIER_PARTY_SIZE; i++) { SetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM, @@ -703,8 +706,8 @@ u8 GetFactoryMonFixedIV(u8 arg0, u8 arg1) void FillFactoryBrainParty(void) { int i, j, k; - u16 species[3]; - u16 heldItems[3]; + u16 species[FRONTIER_PARTY_SIZE]; + u16 heldItems[FRONTIER_PARTY_SIZE]; u8 friendship; int monLevel; u8 fixedIV; @@ -718,7 +721,7 @@ void FillFactoryBrainParty(void) i = 0; otId = T1_READ_32(gSaveBlock2Ptr->playerTrainerId); - while (i != 3) + while (i != FRONTIER_PARTY_SIZE) { u16 monSetId = GetMonSetId(lvlMode, challengeNum, FALSE); diff --git a/src/battle_palace.c b/src/battle_palace.c index ec909e442..b5da77e35 100644 --- a/src/battle_palace.c +++ b/src/battle_palace.c @@ -14,34 +14,54 @@ #include "constants/trainers.h" // This file's functions. -static void sub_8195980(void); -static void sub_8195A38(void); -static void sub_8195AE4(void); -static void sub_8195BB0(void); -static void sub_8195C20(void); +static void InitPalaceChallenge(void); +static void GetPalaceData(void); +static void SetPalaceData(void); +static void GetPalaceCommentId(void); +static void SetPalaceOpponent(void); static void BufferOpponentIntroSpeech(void); -static void sub_8195C7C(void); -static void sub_8195CE4(void); -static void sub_8195D28(void); -static void sub_8195DB8(void); +static void IncrementPalaceStreak(void); +static void SavePalaceChallenge(void); +static void SetRandomPalacePrize(void); +static void GivePalacePrize(void); // Const rom data. static void (* const sBattlePalaceFunctions[])(void) = { - [BATTLE_PALACE_FUNC_0] = sub_8195980, - [BATTLE_PALACE_FUNC_1] = sub_8195A38, - [BATTLE_PALACE_FUNC_2] = sub_8195AE4, - [BATTLE_PALACE_FUNC_3] = sub_8195BB0, - [BATTLE_PALACE_FUNC_4] = sub_8195C20, + [BATTLE_PALACE_FUNC_INIT] = InitPalaceChallenge, + [BATTLE_PALACE_FUNC_GET_DATA] = GetPalaceData, + [BATTLE_PALACE_FUNC_SET_DATA] = SetPalaceData, + [BATTLE_PALACE_FUNC_GET_COMMENT_ID] = GetPalaceCommentId, + [BATTLE_PALACE_FUNC_SET_OPPONENT] = SetPalaceOpponent, [BATTLE_PALACE_FUNC_GET_OPPONENT_INTRO] = BufferOpponentIntroSpeech, - [BATTLE_PALACE_FUNC_6] = sub_8195C7C, - [BATTLE_PALACE_FUNC_7] = sub_8195CE4, - [BATTLE_PALACE_FUNC_8] = sub_8195D28, - [BATTLE_PALACE_FUNC_9] = sub_8195DB8, + [BATTLE_PALACE_FUNC_INCREMENT_STREAK] = IncrementPalaceStreak, + [BATTLE_PALACE_FUNC_SAVE] = SavePalaceChallenge, + [BATTLE_PALACE_FUNC_SET_PRIZE] = SetRandomPalacePrize, + [BATTLE_PALACE_FUNC_GIVE_PRIZE] = GivePalacePrize, }; -static const u16 gUnknown_0860DE78[] = {ITEM_HP_UP, ITEM_PROTEIN, ITEM_IRON, ITEM_CALCIUM, ITEM_CARBOS, ITEM_ZINC}; -static const u16 gUnknown_0860DE84[] = {ITEM_BRIGHT_POWDER, ITEM_WHITE_HERB, ITEM_QUICK_CLAW, ITEM_LEFTOVERS, ITEM_MENTAL_HERB, ITEM_KINGS_ROCK, ITEM_FOCUS_BAND, ITEM_SCOPE_LENS, ITEM_CHOICE_BAND}; +static const u16 sBattlePalaceEarlyPrizes[] = +{ + ITEM_HP_UP, + ITEM_PROTEIN, + ITEM_IRON, + ITEM_CALCIUM, + ITEM_CARBOS, + ITEM_ZINC +}; + +static const u16 sBattlePalaceLatePrizes[] = +{ + ITEM_BRIGHT_POWDER, + ITEM_WHITE_HERB, + ITEM_QUICK_CLAW, + ITEM_LEFTOVERS, + ITEM_MENTAL_HERB, + ITEM_KINGS_ROCK, + ITEM_FOCUS_BAND, + ITEM_SCOPE_LENS, + ITEM_CHOICE_BAND +}; static const u32 sWinStreakFlags[][2] = { @@ -61,7 +81,7 @@ void CallBattlePalaceFunction(void) sBattlePalaceFunctions[gSpecialVar_0x8004](); } -static void sub_8195980(void) +static void InitPalaceChallenge(void) { u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; u32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE); @@ -77,39 +97,39 @@ static void sub_8195980(void) gTrainerBattleOpponent_A = 0; } -static void sub_8195A38(void) +static void GetPalaceData(void) { u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; u32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE); switch (gSpecialVar_0x8005) { - case 0: - gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_DC6; + case PALACE_DATA_PRIZE: + gSpecialVar_Result = gSaveBlock2Ptr->frontier.palacePrize; break; - case 1: + case PALACE_DATA_WIN_STREAK: gSpecialVar_Result = gSaveBlock2Ptr->frontier.palaceWinStreaks[battleMode][lvlMode]; break; - case 2: + case PALACE_DATA_WIN_STREAK_ACTIVE: gSpecialVar_Result = ((gSaveBlock2Ptr->frontier.winStreakActiveFlags & sWinStreakFlags[battleMode][lvlMode]) != 0); break; } } -static void sub_8195AE4(void) +static void SetPalaceData(void) { u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; u32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE); switch (gSpecialVar_0x8005) { - case 0: - gSaveBlock2Ptr->frontier.field_DC6 = gSpecialVar_0x8006; + case PALACE_DATA_PRIZE: + gSaveBlock2Ptr->frontier.palacePrize = gSpecialVar_0x8006; break; - case 1: + case PALACE_DATA_WIN_STREAK: gSaveBlock2Ptr->frontier.palaceWinStreaks[battleMode][lvlMode] = gSpecialVar_0x8006; break; - case 2: + case PALACE_DATA_WIN_STREAK_ACTIVE: if (gSpecialVar_0x8006) gSaveBlock2Ptr->frontier.winStreakActiveFlags |= sWinStreakFlags[battleMode][lvlMode]; else @@ -118,7 +138,7 @@ static void sub_8195AE4(void) } } -static void sub_8195BB0(void) +static void GetPalaceCommentId(void) { u32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE); u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; @@ -131,7 +151,7 @@ static void sub_8195BB0(void) gSpecialVar_Result = 4; } -static void sub_8195C20(void) +static void SetPalaceOpponent(void) { gTrainerBattleOpponent_A = 5 *(Random() % 255) / 64u; SetBattleFacilityTrainerGfxId(gTrainerBattleOpponent_A, 0); @@ -143,7 +163,7 @@ static void BufferOpponentIntroSpeech(void) FrontierSpeechToString(gFacilityTrainers[gTrainerBattleOpponent_A].speechBefore); } -static void sub_8195C7C(void) +static void IncrementPalaceStreak(void) { u8 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; u8 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE); @@ -158,7 +178,7 @@ static void sub_8195C7C(void) } } -static void sub_8195CE4(void) +static void SavePalaceChallenge(void) { gSaveBlock2Ptr->frontier.challengeStatus = gSpecialVar_0x8005; VarSet(VAR_TEMP_0, 0); @@ -166,23 +186,23 @@ static void sub_8195CE4(void) SaveGameFrontier(); } -static void sub_8195D28(void) +static void SetRandomPalacePrize(void) { u32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE); u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; if (gSaveBlock2Ptr->frontier.palaceWinStreaks[battleMode][lvlMode] > 41) - gSaveBlock2Ptr->frontier.field_DC6 = gUnknown_0860DE84[Random() % ARRAY_COUNT(gUnknown_0860DE84)]; + gSaveBlock2Ptr->frontier.palacePrize = sBattlePalaceLatePrizes[Random() % ARRAY_COUNT(sBattlePalaceLatePrizes)]; else - gSaveBlock2Ptr->frontier.field_DC6 = gUnknown_0860DE78[Random() % ARRAY_COUNT(gUnknown_0860DE78)]; + gSaveBlock2Ptr->frontier.palacePrize = sBattlePalaceEarlyPrizes[Random() % ARRAY_COUNT(sBattlePalaceEarlyPrizes)]; } -static void sub_8195DB8(void) +static void GivePalacePrize(void) { - if (AddBagItem(gSaveBlock2Ptr->frontier.field_DC6, 1) == TRUE) + if (AddBagItem(gSaveBlock2Ptr->frontier.palacePrize, 1) == TRUE) { - CopyItemName(gSaveBlock2Ptr->frontier.field_DC6, gStringVar1); - gSaveBlock2Ptr->frontier.field_DC6 = 0; + CopyItemName(gSaveBlock2Ptr->frontier.palacePrize, gStringVar1); + gSaveBlock2Ptr->frontier.palacePrize = 0; gSpecialVar_Result = TRUE; } else diff --git a/src/battle_pike.c b/src/battle_pike.c index e3651b71d..f6745e8c9 100644 --- a/src/battle_pike.c +++ b/src/battle_pike.c @@ -44,7 +44,7 @@ struct PikeWildMon // IWRAM bss static u8 sRoomType; static u8 sStatusMon; -static bool8 sUnknown_0300128E; +static bool8 sInWildMonRoom; static u32 sStatusFlags; static u8 sNpcId; @@ -55,9 +55,9 @@ static void SetBattlePikeData(void); static void IsNextRoomFinal(void); static void SetupRoomObjectEvents(void); static void GetRoomType(void); -static void sub_81A7400(void); -static void sub_81A740C(void); -static void sub_81A7418(void); +static void SetInWildMonRoom(void); +static void ClearInWildMonRoom(void); +static void SavePikeChallenge(void); static void nullsub_76(void); static void nullsub_124(void); static void GetRoomInflictedStatus(void); @@ -70,12 +70,12 @@ static void SetHintedRoom(void); static void GetHintedRoomIndex(void); static void GetRoomTypeHint(void); static void ClearPikeTrainerIds(void); -static void BufferRecordMixingTrainerMessage(void); +static void BufferTrainerIntro(void); static void GetCurrentRoomPikeQueenFightType(void); static void HealSomeMonsBeforePikeQueen(void); static void SetHealingroomTypesDisabled(void); static void IsPartyFullHealed(void); -static void BackupMonHeldItems(void); +static void SaveMonHeldItems(void); static void RestoreMonHeldItems(void); static void InitPikeChallenge(void); static u8 GetNextRoomType(void); @@ -480,35 +480,35 @@ static const u8 sFrontierBrainStreakAppearances[NUM_FRONTIER_FACILITIES][4] = static void (* const sBattlePikeFunctions[])(void) = { - [BATTLE_PIKE_FUNC_SET_ROOM_TYPE] = SetRoomType, - [BATTLE_PIKE_FUNC_GET_DATA] = GetBattlePikeData, - [BATTLE_PIKE_FUNC_SET_DATA] = SetBattlePikeData, - [BATTLE_PIKE_FUNC_IS_FINAL_ROOM] = IsNextRoomFinal, - [BATTLE_PIKE_FUNC_SET_ROOM_OBJECTS] = SetupRoomObjectEvents, - [BATTLE_PIKE_FUNC_GET_ROOM_TYPE] = GetRoomType, - [BATTLE_PIKE_FUNC_6] = sub_81A7400, - [BATTLE_PIKE_FUNC_7] = sub_81A740C, - [BATTLE_PIKE_FUNC_8] = sub_81A7418, - [BATTLE_PIKE_FUNC_NULL_9] = nullsub_76, - [BATTLE_PIKE_FUNC_NULL_10] = nullsub_124, - [BATTLE_PIKE_FUNC_GET_ROOM_STATUS] = GetRoomInflictedStatus, - [BATTLE_PIKE_FUNC_GET_ROOM_STATUS_MON] = GetRoomInflictedStatusMon, - [BATTLE_PIKE_FUNC_HEAL_ONE_TWO_MONS] = HealOneOrTwoMons, - [BATTLE_PIKE_FUNC_BUFFER_NPC_MSG] = BufferNPCMessage, - [BATTLE_PIKE_FUNC_STATUS_SCREEN_FADE] = StatusInflictionScreenFade, - [BATTLE_PIKE_FUNC_IS_IN] = GetInBattlePike, - [BATTLE_PIKE_FUNC_SET_HINT_ROOM] = SetHintedRoom, - [BATTLE_PIKE_FUNC_GET_HINT_ROOM_ID] = GetHintedRoomIndex, - [BATTLE_PIKE_FUNC_GET_ROOM_TYPE_HINT] = GetRoomTypeHint, - [BATTLE_PIKE_FUNC_CLEAR_TRAINER_IDS] = ClearPikeTrainerIds, - [BATTLE_PIKE_FUNC_BUFFER_RECORD_MIX_MSG] = BufferRecordMixingTrainerMessage, - [BATTLE_PIKE_FUNC_GET_QUEEN_FIGHT_TYPE] = GetCurrentRoomPikeQueenFightType, - [BATTLE_PIKE_FUNC_HEAL_MONS_BEFORE_QUEEN] = HealSomeMonsBeforePikeQueen, - [BATTLE_PIKE_FUNC_SET_HEALING_ROOMS_DISABLED] = SetHealingroomTypesDisabled, - [BATTLE_PIKE_FUNC_IS_PARTY_FULL_HEALTH] = IsPartyFullHealed, - [BATTLE_PIKE_FUNC_SAVE_MON_HELD_ITEMS] = BackupMonHeldItems, - [BATTLE_PIKE_FUNC_LOAD_MON_HELD_ITEMS] = RestoreMonHeldItems, - [BATTLE_PIKE_FUNC_INIT_CHALLENGE] = InitPikeChallenge + [BATTLE_PIKE_FUNC_SET_ROOM_TYPE] = SetRoomType, + [BATTLE_PIKE_FUNC_GET_DATA] = GetBattlePikeData, + [BATTLE_PIKE_FUNC_SET_DATA] = SetBattlePikeData, + [BATTLE_PIKE_FUNC_IS_FINAL_ROOM] = IsNextRoomFinal, + [BATTLE_PIKE_FUNC_SET_ROOM_OBJECTS] = SetupRoomObjectEvents, + [BATTLE_PIKE_FUNC_GET_ROOM_TYPE] = GetRoomType, + [BATTLE_PIKE_FUNC_SET_IN_WILD_MON_ROOM] = SetInWildMonRoom, + [BATTLE_PIKE_FUNC_CLEAR_IN_WILD_MON_ROOM] = ClearInWildMonRoom, + [BATTLE_PIKE_FUNC_SAVE] = SavePikeChallenge, + [BATTLE_PIKE_FUNC_NULL_9] = nullsub_76, + [BATTLE_PIKE_FUNC_NULL_10] = nullsub_124, + [BATTLE_PIKE_FUNC_GET_ROOM_STATUS] = GetRoomInflictedStatus, + [BATTLE_PIKE_FUNC_GET_ROOM_STATUS_MON] = GetRoomInflictedStatusMon, + [BATTLE_PIKE_FUNC_HEAL_ONE_TWO_MONS] = HealOneOrTwoMons, + [BATTLE_PIKE_FUNC_BUFFER_NPC_MSG] = BufferNPCMessage, + [BATTLE_PIKE_FUNC_STATUS_SCREEN_FADE] = StatusInflictionScreenFade, + [BATTLE_PIKE_FUNC_IS_IN] = GetInBattlePike, + [BATTLE_PIKE_FUNC_SET_HINT_ROOM] = SetHintedRoom, + [BATTLE_PIKE_FUNC_GET_HINT_ROOM_ID] = GetHintedRoomIndex, + [BATTLE_PIKE_FUNC_GET_ROOM_TYPE_HINT] = GetRoomTypeHint, + [BATTLE_PIKE_FUNC_CLEAR_TRAINER_IDS] = ClearPikeTrainerIds, + [BATTLE_PIKE_FUNC_GET_TRAINER_INTRO] = BufferTrainerIntro, + [BATTLE_PIKE_FUNC_GET_QUEEN_FIGHT_TYPE] = GetCurrentRoomPikeQueenFightType, + [BATTLE_PIKE_FUNC_HEAL_MONS_BEFORE_QUEEN] = HealSomeMonsBeforePikeQueen, + [BATTLE_PIKE_FUNC_SET_HEAL_ROOMS_DISABLED] = SetHealingroomTypesDisabled, + [BATTLE_PIKE_FUNC_IS_PARTY_FULL_HEALTH] = IsPartyFullHealed, + [BATTLE_PIKE_FUNC_SAVE_HELD_ITEMS] = SaveMonHeldItems, + [BATTLE_PIKE_FUNC_RESET_HELD_ITEMS] = RestoreMonHeldItems, + [BATTLE_PIKE_FUNC_INIT] = InitPikeChallenge }; static const u8 sRoomTypeHints[] = { @@ -623,19 +623,19 @@ static void GetBattlePikeData(void) switch (gSpecialVar_0x8005) { - case 0: - gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_E02; + case PIKE_DATA_PRIZE: + gSpecialVar_Result = gSaveBlock2Ptr->frontier.pikePrize; break; - case 1: + case PIKE_DATA_WIN_STREAK: gSpecialVar_Result = gSaveBlock2Ptr->frontier.pikeWinStreaks[gSaveBlock2Ptr->frontier.lvlMode]; break; - case 2: + case PIKE_DATA_RECORD_STREAK: gSpecialVar_Result = gSaveBlock2Ptr->frontier.pikeRecordStreaks[gSaveBlock2Ptr->frontier.lvlMode]; break; - case 3: + case PIKE_DATA_TOTAL_STREAKS: gSpecialVar_Result = gSaveBlock2Ptr->frontier.pikeTotalStreaks[gSaveBlock2Ptr->frontier.lvlMode]; break; - case 4: + case PIKE_DATA_WIN_STREAK_ACTIVE: if (lvlMode != FRONTIER_LVL_50) gSpecialVar_Result = gSaveBlock2Ptr->frontier.winStreakActiveFlags & STREAK_PIKE_OPEN; else @@ -650,22 +650,22 @@ static void SetBattlePikeData(void) switch (gSpecialVar_0x8005) { - case 0: - gSaveBlock2Ptr->frontier.field_E02 = gSpecialVar_0x8006; + case PIKE_DATA_PRIZE: + gSaveBlock2Ptr->frontier.pikePrize = gSpecialVar_0x8006; break; - case 1: + case PIKE_DATA_WIN_STREAK: if (gSpecialVar_0x8006 <= MAX_STREAK) gSaveBlock2Ptr->frontier.pikeWinStreaks[gSaveBlock2Ptr->frontier.lvlMode] = gSpecialVar_0x8006; break; - case 2: + case PIKE_DATA_RECORD_STREAK: if (gSpecialVar_0x8006 <= MAX_STREAK && gSaveBlock2Ptr->frontier.pikeRecordStreaks[gSaveBlock2Ptr->frontier.lvlMode] < gSpecialVar_0x8006) gSaveBlock2Ptr->frontier.pikeRecordStreaks[gSaveBlock2Ptr->frontier.lvlMode] = gSpecialVar_0x8006; break; - case 3: + case PIKE_DATA_TOTAL_STREAKS: if (gSpecialVar_0x8006 <= MAX_STREAK) gSaveBlock2Ptr->frontier.pikeTotalStreaks[gSaveBlock2Ptr->frontier.lvlMode] = gSpecialVar_0x8006; break; - case 4: + case PIKE_DATA_WIN_STREAK_ACTIVE: if (lvlMode != FRONTIER_LVL_50) { if (gSpecialVar_0x8006) @@ -697,17 +697,17 @@ static void GetRoomType(void) gSpecialVar_Result = sRoomType; } -static void sub_81A7400(void) +static void SetInWildMonRoom(void) { - sUnknown_0300128E = TRUE; + sInWildMonRoom = TRUE; } -static void sub_81A740C(void) +static void ClearInWildMonRoom(void) { - sUnknown_0300128E = FALSE; + sInWildMonRoom = FALSE; } -static void sub_81A7418(void) +static void SavePikeChallenge(void) { gSaveBlock2Ptr->frontier.challengeStatus = gSpecialVar_0x8005; VarSet(VAR_TEMP_0, 0); @@ -731,19 +731,19 @@ static void GetRoomInflictedStatus(void) switch (sStatusFlags) { case STATUS1_FREEZE: - gSpecialVar_Result = 0; + gSpecialVar_Result = PIKE_STATUS_FREEZE; break; case STATUS1_BURN: - gSpecialVar_Result = 1; + gSpecialVar_Result = PIKE_STATUS_BURN; break; case STATUS1_TOXIC_POISON: - gSpecialVar_Result = 2; + gSpecialVar_Result = PIKE_STATUS_TOXIC; break; case STATUS1_PARALYSIS: - gSpecialVar_Result = 3; + gSpecialVar_Result = PIKE_STATUS_PARALYSIS; break; case STATUS1_SLEEP: - gSpecialVar_Result = 4; + gSpecialVar_Result = PIKE_STATUS_SLEEP; break; } } @@ -1100,9 +1100,9 @@ static u16 GetNPCRoomGraphicsId(void) } // Unused -static u8 sub_81A7B84(void) +static u8 GetInWildMonRoom(void) { - return sUnknown_0300128E; + return sInWildMonRoom; } bool32 TryGenerateBattlePikeWildMon(bool8 checkKeenEyeIntimidate) @@ -1335,10 +1335,10 @@ static void SetHintedRoom(void) u8 i, count, id; u8 *roomCandidates; - gSpecialVar_Result = 0; + gSpecialVar_Result = FALSE; if (GetPikeQueenFightType(1)) { - gSpecialVar_Result = 1; + gSpecialVar_Result = TRUE; gSaveBlock2Ptr->frontier.pikeHintedRoomIndex = Random() % 6; gSaveBlock2Ptr->frontier.pikeHintedRoomType = PIKE_ROOM_BRAIN; } @@ -1462,7 +1462,7 @@ static void ClearPikeTrainerIds(void) gSaveBlock2Ptr->frontier.trainerIds[i] = 0xFFFF; } -static void BufferRecordMixingTrainerMessage(void) +static void BufferTrainerIntro(void) { if (gSpecialVar_0x8005 == 0) { @@ -1500,7 +1500,7 @@ static u8 GetPikeQueenFightType(u8 nextRoom) u8 numPikeSymbols; u8 facility = FRONTIER_FACILITY_PIKE; - u8 ret = 0; + u8 ret = FRONTIER_BRAIN_NOT_READY; u8 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; u16 winStreak = gSaveBlock2Ptr->frontier.pikeWinStreaks[lvlMode]; winStreak += nextRoom; @@ -1511,16 +1511,16 @@ static u8 GetPikeQueenFightType(u8 nextRoom) case 0: case 1: if (winStreak == sFrontierBrainStreakAppearances[facility][numPikeSymbols] - sFrontierBrainStreakAppearances[facility][3]) - ret = numPikeSymbols + 1; + ret = numPikeSymbols + 1; // FRONTIER_BRAIN_SILVER and FRONTIER_BRAIN_GOLD break; case 2: default: if (winStreak == sFrontierBrainStreakAppearances[facility][0] - sFrontierBrainStreakAppearances[facility][3]) - ret = 3; + ret = FRONTIER_BRAIN_STREAK; else if (winStreak == sFrontierBrainStreakAppearances[facility][1] - sFrontierBrainStreakAppearances[facility][3] || (winStreak > sFrontierBrainStreakAppearances[facility][1] && (winStreak - sFrontierBrainStreakAppearances[facility][1] + sFrontierBrainStreakAppearances[facility][3]) % sFrontierBrainStreakAppearances[facility][2] == 0)) - ret = 4; + ret = FRONTIER_BRAIN_STREAK_LONG; break; } @@ -1584,7 +1584,7 @@ static void IsPartyFullHealed(void) } } -static void BackupMonHeldItems(void) +static void SaveMonHeldItems(void) { u8 i; diff --git a/src/battle_pyramid.c b/src/battle_pyramid.c index e234ed411..b189fd635 100644 --- a/src/battle_pyramid.c +++ b/src/battle_pyramid.c @@ -71,9 +71,9 @@ struct PyramidTrainerEncounterMusic static void InitPyramidChallenge(void); static void GetBattlePyramidData(void); static void SetBattlePyramidData(void); -static void sub_81A9134(void); -static void SetBattlePyramidRewardItem(void); -static void GiveBattlePyramidRewardItem(void); +static void SavePyramidChallenge(void); +static void SetBattlePyramidPrize(void); +static void GiveBattlePyramidPrize(void); static void SeedPyramidFloor(void); static void SetPickupItem(void); static void HidePyramidItem(void); @@ -787,24 +787,24 @@ static const u8 sHintTextTypes[] = static void (* const sBattlePyramidFunctions[])(void) = { - InitPyramidChallenge, - GetBattlePyramidData, - SetBattlePyramidData, - sub_81A9134, - SetBattlePyramidRewardItem, - GiveBattlePyramidRewardItem, - SeedPyramidFloor, - SetPickupItem, - HidePyramidItem, - InitPyramidFacilityTrainers, - ShowPostBattleHintText, - UpdatePyramidWinStreak, - GetInBattlePyramid, - UpdatePyramidLightRadius, - ClearPyramidPartyHeldItems, - SetPyramidFloorPalette, - sub_81A9828, - RestorePyramidPlayerParty, + [BATTLE_PYRAMID_FUNC_INIT] = InitPyramidChallenge, + [BATTLE_PYRAMID_FUNC_GET_DATA] = GetBattlePyramidData, + [BATTLE_PYRAMID_FUNC_SET_DATA] = SetBattlePyramidData, + [BATTLE_PYRAMID_FUNC_SAVE] = SavePyramidChallenge, + [BATTLE_PYRAMID_FUNC_SET_PRIZE] = SetBattlePyramidPrize, + [BATTLE_PYRAMID_FUNC_GIVE_PRIZE] = GiveBattlePyramidPrize, + [BATTLE_PYRAMID_FUNC_SEED_FLOOR] = SeedPyramidFloor, + [BATTLE_PYRAMID_FUNC_SET_ITEM] = SetPickupItem, + [BATTLE_PYRAMID_FUNC_HIDE_ITEM] = HidePyramidItem, + [BATTLE_PYRAMID_FUNC_INIT_TRAINERS] = InitPyramidFacilityTrainers, + [BATTLE_PYRAMID_FUNC_SHOW_HINT_TEXT] = ShowPostBattleHintText, + [BATTLE_PYRAMID_FUNC_UPDATE_STREAK] = UpdatePyramidWinStreak, + [BATTLE_PYRAMID_FUNC_IS_IN] = GetInBattlePyramid, + [BATTLE_PYRAMID_FUNC_UPDATE_LIGHT] = UpdatePyramidLightRadius, + [BATTLE_PYRAMID_FUNC_CLEAR_HELD_ITEMS] = ClearPyramidPartyHeldItems, + [BATTLE_PYRAMID_FUNC_SET_FLOOR_PALETTE] = SetPyramidFloorPalette, + [BATTLE_PYRAMID_FUNC_16] = sub_81A9828, + [BATTLE_PYRAMID_FUNC_RESTORE_PARTY] = RestorePyramidPlayerParty, }; static const u16 sShortStreakRewardItems[] = {ITEM_HP_UP, ITEM_PROTEIN, ITEM_IRON, ITEM_CALCIUM, ITEM_CARBOS, ITEM_ZINC}; @@ -868,28 +868,28 @@ static void GetBattlePyramidData(void) switch (gSpecialVar_0x8005) { - case 0: - gSpecialVar_Result = gSaveBlock2Ptr->frontier.pyramidRewardItem; + case PYRAMID_DATA_PRIZE: + gSpecialVar_Result = gSaveBlock2Ptr->frontier.pyramidPrize; break; - case 1: + case PYRAMID_DATA_WIN_STREAK: gSpecialVar_Result = gSaveBlock2Ptr->frontier.pyramidWinStreaks[lvlMode]; break; - case 2: + case PYRAMID_DATA_WIN_STREAK_ACTIVE: if (lvlMode != FRONTIER_LVL_50) gSpecialVar_Result = gSaveBlock2Ptr->frontier.winStreakActiveFlags & STREAK_PYRAMID_OPEN; else gSpecialVar_Result = gSaveBlock2Ptr->frontier.winStreakActiveFlags & STREAK_PYRAMID_50; break; - case 3: + case PYRAMID_DATA_WIN_STREAK_50: gSpecialVar_Result = gSaveBlock2Ptr->frontier.pyramidWinStreaks[FRONTIER_LVL_50]; break; - case 4: + case PYRAMID_DATA_WIN_STREAK_OPEN: gSpecialVar_Result = gSaveBlock2Ptr->frontier.pyramidWinStreaks[FRONTIER_LVL_OPEN]; break; - case 5: + case PYRAMID_DATA_WIN_STREAK_ACTIVE_50: gSpecialVar_Result = gSaveBlock2Ptr->frontier.winStreakActiveFlags & STREAK_PYRAMID_50; break; - case 6: + case PYRAMID_DATA_WIN_STREAK_ACTIVE_OPEN: gSpecialVar_Result = gSaveBlock2Ptr->frontier.winStreakActiveFlags & STREAK_PYRAMID_OPEN; break; } @@ -901,13 +901,13 @@ static void SetBattlePyramidData(void) switch (gSpecialVar_0x8005) { - case 0: - gSaveBlock2Ptr->frontier.pyramidRewardItem = gSpecialVar_0x8006; + case PYRAMID_DATA_PRIZE: + gSaveBlock2Ptr->frontier.pyramidPrize = gSpecialVar_0x8006; break; - case 1: + case PYRAMID_DATA_WIN_STREAK: gSaveBlock2Ptr->frontier.pyramidWinStreaks[lvlMode] = gSpecialVar_0x8006; break; - case 2: + case PYRAMID_DATA_WIN_STREAK_ACTIVE: if (lvlMode != FRONTIER_LVL_50) { if (gSpecialVar_0x8006) @@ -923,13 +923,13 @@ static void SetBattlePyramidData(void) gSaveBlock2Ptr->frontier.winStreakActiveFlags &= ~(STREAK_PYRAMID_50); } break; - case 7: + case PYRAMID_DATA_TRAINER_FLAGS: gSaveBlock2Ptr->frontier.pyramidTrainerFlags = gSpecialVar_0x8006; break; } } -static void sub_81A9134(void) +static void SavePyramidChallenge(void) { gSaveBlock2Ptr->frontier.challengeStatus = gSpecialVar_0x8005; VarSet(VAR_TEMP_0, 0); @@ -938,22 +938,22 @@ static void sub_81A9134(void) TrySavingData(SAVE_LINK); } -static void SetBattlePyramidRewardItem(void) +static void SetBattlePyramidPrize(void) { u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; if (gSaveBlock2Ptr->frontier.pyramidWinStreaks[lvlMode] > 41) - gSaveBlock2Ptr->frontier.pyramidRewardItem = sLongStreakRewardItems[Random() % ARRAY_COUNT(sLongStreakRewardItems)]; + gSaveBlock2Ptr->frontier.pyramidPrize = sLongStreakRewardItems[Random() % ARRAY_COUNT(sLongStreakRewardItems)]; else - gSaveBlock2Ptr->frontier.pyramidRewardItem = sShortStreakRewardItems[Random() % ARRAY_COUNT(sShortStreakRewardItems)]; + gSaveBlock2Ptr->frontier.pyramidPrize = sShortStreakRewardItems[Random() % ARRAY_COUNT(sShortStreakRewardItems)]; } -static void GiveBattlePyramidRewardItem(void) +static void GiveBattlePyramidPrize(void) { - if (AddBagItem(gSaveBlock2Ptr->frontier.pyramidRewardItem, 1) == TRUE) + if (AddBagItem(gSaveBlock2Ptr->frontier.pyramidPrize, 1) == TRUE) { - CopyItemName(gSaveBlock2Ptr->frontier.pyramidRewardItem, gStringVar1); - gSaveBlock2Ptr->frontier.pyramidRewardItem = 0; + CopyItemName(gSaveBlock2Ptr->frontier.pyramidPrize, gStringVar1); + gSaveBlock2Ptr->frontier.pyramidPrize = 0; gSpecialVar_Result = TRUE; } else @@ -1004,6 +1004,7 @@ static void SetPickupItem(void) else gSpecialVar_0x8000 = sPickupItemsLvl50[round][sPickupItemSlots[i][1]]; + // Quantity of item to give gSpecialVar_0x8001 = 1; } @@ -1122,10 +1123,10 @@ static void UpdatePyramidLightRadius(void) { switch (gSpecialVar_0x8006) { - case 0: + case PYRAMID_LIGHT_SET_RADIUS: gSaveBlock2Ptr->frontier.pyramidLightRadius = gSpecialVar_0x8005; break; - case 1: + case PYRAMID_LIGHT_INCR_RADIUS: switch (gSpecialVar_Result) { case 0: diff --git a/src/battle_tent.c b/src/battle_tent.c index 6e3df49a9..860c07a53 100644 --- a/src/battle_tent.c +++ b/src/battle_tent.c @@ -11,37 +11,49 @@ #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" #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 sub_81BA040(void); -static void sub_81B9EC0(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 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; @@ -49,43 +61,43 @@ 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 + [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) = { - sub_81B9BA0, - sub_81B9BF4, - sub_81B9C10, - sub_81B9C2C, - sub_81B9C70, - sub_81B9C98, - sub_81B9CF0 + [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) = { - sub_81B9D28, - sub_81B9D7C, - sub_81B9D98, - sub_81B9DB4, - sub_81B9DF8, - sub_81B9E20, - sub_81B9E78, - sub_81B9E88, - 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}; @@ -96,7 +108,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 +116,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 +146,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 +170,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 +178,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 +196,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 +215,7 @@ static void sub_81B9C98(void) } } -static void sub_81B9CF0(void) +static void BufferFallarborTentTrainerName(void) { GetFrontierTrainerName(gStringVar1, gTrainerBattleOpponent_A); } @@ -213,7 +225,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 +233,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 +251,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 +270,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(); } @@ -275,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; @@ -337,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; @@ -374,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++) diff --git a/src/battle_tower.c b/src/battle_tower.c index 43ffb12da..20c10bc15 100644 --- a/src/battle_tower.c +++ b/src/battle_tower.c @@ -42,17 +42,17 @@ EWRAM_DATA const struct BattleFrontierTrainer *gFacilityTrainers = NULL; EWRAM_DATA const struct FacilityMon *gFacilityTrainerMons = NULL; // IWRAM common -u16 gUnknown_03006298[4]; +u16 gUnknown_03006298[MAX_FRONTIER_PARTY_SIZE]; // This file's functions. -static void sub_8161F94(void); -static void sub_8162054(void); -static void sub_81620F4(void); -static void ChooseNextBattleTowerTrainer(void); -static void sub_81621C0(void); +static void InitTowerChallenge(void); +static void GetTowerData(void); +static void SetTowerData(void); +static void SetNextFacilityOpponent(void); +static void SetTowerBattleWon(void); static void AwardBattleTowerRibbons(void); -static void SaveBattleTowerProgress(void); -static void sub_8163914(void); +static void SaveTowerChallenge(void); +static void GetOpponentIntroSpeech(void); static void nullsub_61(void); static void nullsub_116(void); static void sub_81642A0(void); @@ -60,11 +60,11 @@ static void sub_8164828(void); static void sub_8164B74(void); static void sub_8164DCC(void); static void sub_8164DE4(void); -static void sub_8164E04(void); +static void SetTowerInterviewData(void); static void ValidateBattleTowerRecordChecksums(void); static void SaveCurrentWinStreak(void); static void ValidateApprenticesChecksums(void); -static void sub_8165E18(void); +static void SetNextBattleTentOpponent(void); static void CopyEReaderTrainerFarewellMessage(void); static void ClearBattleTowerRecord(struct EmeraldBattleTowerRecord *record); static void FillTrainerParty(u16 trainerId, u8 firstMonId, u8 monCount); @@ -1056,14 +1056,14 @@ struct static void (* const sBattleTowerFuncs[])(void) = { - [BATTLE_TOWER_FUNC_0] = sub_8161F94, - [BATTLE_TOWER_FUNC_1] = sub_8162054, - [BATTLE_TOWER_FUNC_2] = sub_81620F4, - [BATTLE_TOWER_FUNC_CHOOSE_TRAINER] = ChooseNextBattleTowerTrainer, - [BATTLE_TOWER_FUNC_4] = sub_81621C0, + [BATTLE_TOWER_FUNC_INIT] = InitTowerChallenge, + [BATTLE_TOWER_FUNC_GET_DATA] = GetTowerData, + [BATTLE_TOWER_FUNC_SET_DATA] = SetTowerData, + [BATTLE_TOWER_FUNC_SET_OPPONENT] = SetNextFacilityOpponent, + [BATTLE_TOWER_FUNC_SET_BATTLE_WON] = SetTowerBattleWon, [BATTLE_TOWER_FUNC_GIVE_RIBBONS] = AwardBattleTowerRibbons, - [BATTLE_TOWER_FUNC_SAVE] = SaveBattleTowerProgress, - [BATTLE_TOWER_FUNC_7] = sub_8163914, + [BATTLE_TOWER_FUNC_SAVE] = SaveTowerChallenge, + [BATTLE_TOWER_FUNC_GET_OPPONENT_INTRO] = GetOpponentIntroSpeech, [BATTLE_TOWER_FUNC_NOP] = nullsub_61, [BATTLE_TOWER_FUNC_NOP2] = nullsub_116, [BATTLE_TOWER_FUNC_10] = sub_81642A0, @@ -1071,7 +1071,7 @@ static void (* const sBattleTowerFuncs[])(void) = [BATTLE_TOWER_FUNC_12] = sub_8164B74, [BATTLE_TOWER_FUNC_13] = sub_8164DCC, [BATTLE_TOWER_FUNC_14] = sub_8164DE4, - [BATTLE_TOWER_FUNC_15] = sub_8164E04, + [BATTLE_TOWER_FUNC_SET_INTERVIEW_DATA] = SetTowerInterviewData, }; static const u32 sWinStreakFlags[][2] = @@ -1154,7 +1154,7 @@ void CallBattleTowerFunc(void) sBattleTowerFuncs[gSpecialVar_0x8004](); } -static void sub_8161F94(void) +static void InitTowerChallenge(void) { u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; u32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE); @@ -1172,7 +1172,7 @@ static void sub_8161F94(void) gTrainerBattleOpponent_A = 0; } -static void sub_8162054(void) +static void GetTowerData(void) { u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; u32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE); @@ -1181,19 +1181,19 @@ static void sub_8162054(void) { case 0: break; - case 1: + case TOWER_DATA_WIN_STREAK: gSpecialVar_Result = GetCurrentBattleTowerWinStreak(lvlMode, battleMode); break; - case 2: + case TOWER_DATA_WIN_STREAK_ACTIVE: gSpecialVar_Result = ((gSaveBlock2Ptr->frontier.winStreakActiveFlags & sWinStreakFlags[battleMode][lvlMode]) != 0); break; - case 3: + case TOWER_DATA_LVL_MODE: gSaveBlock2Ptr->frontier.towerLvlMode = gSaveBlock2Ptr->frontier.lvlMode; break; } } -static void sub_81620F4(void) +static void SetTowerData(void) { u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; u32 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE); @@ -1202,27 +1202,27 @@ static void sub_81620F4(void) { case 0: break; - case 1: + case TOWER_DATA_WIN_STREAK: gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode] = gSpecialVar_0x8006; break; - case 2: + case TOWER_DATA_WIN_STREAK_ACTIVE: if (gSpecialVar_0x8006) gSaveBlock2Ptr->frontier.winStreakActiveFlags |= sWinStreakFlags[battleMode][lvlMode]; else gSaveBlock2Ptr->frontier.winStreakActiveFlags &= sWinStreakMasks[battleMode][lvlMode]; break; - case 3: + case TOWER_DATA_LVL_MODE: gSaveBlock2Ptr->frontier.towerLvlMode = gSaveBlock2Ptr->frontier.lvlMode; break; } } -static void sub_81621C0(void) +static void SetTowerBattleWon(void) { if (gTrainerBattleOpponent_A == TRAINER_EREADER) ClearEReaderTrainer(&gSaveBlock2Ptr->frontier.ereaderTrainer); - // below field is never read outside this conditional + // towerNumWins is never read outside this conditional if (gSaveBlock2Ptr->frontier.towerNumWins < MAX_STREAK) gSaveBlock2Ptr->frontier.towerNumWins++; @@ -1299,12 +1299,12 @@ static bool8 ChooseSpecialBattleTowerTrainer(void) } } -static void ChooseNextBattleTowerTrainer(void) +static void SetNextFacilityOpponent(void) { u32 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; if (lvlMode == FRONTIER_LVL_TENT) { - sub_8165E18(); + SetNextBattleTentOpponent(); } else { @@ -2096,7 +2096,7 @@ static void FillFactoryFrontierTrainerParty(u16 trainerId, u8 firstMonId) level = SetFacilityPtrsGetLevel(); otID = T1_READ_32(gSaveBlock2Ptr->playerTrainerId); - for (i = 0; i < 3; i++) + for (i = 0; i < FRONTIER_PARTY_SIZE; i++) { u16 monSetId = gUnknown_03006298[i]; CreateMonWithEVSpreadNatureOTID(&gEnemyParty[firstMonId + i], @@ -2124,7 +2124,7 @@ static void FillFactoryTentTrainerParty(u16 trainerId, u8 firstMonId) u8 fixedIV = 0; u32 otID = T1_READ_32(gSaveBlock2Ptr->playerTrainerId); - for (i = 0; i < 3; i++) + for (i = 0; i < FRONTIER_PARTY_SIZE; i++) { u16 monSetId = gUnknown_03006298[i]; CreateMonWithEVSpreadNatureOTID(&gEnemyParty[firstMonId + i], @@ -2165,7 +2165,7 @@ void FrontierSpeechToString(const u16 *words) } } -static void sub_8163914(void) +static void GetOpponentIntroSpeech(void) { u16 trainerId; SetFacilityPtrsGetLevel(); @@ -2423,7 +2423,7 @@ static void sub_8163EE4(void) SaveCurrentWinStreak(); } -static void SaveBattleTowerProgress(void) +static void SaveTowerChallenge(void) { u16 lvlMode = gSaveBlock2Ptr->frontier.lvlMode; u16 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE); @@ -2889,7 +2889,7 @@ static void sub_8164DE4(void) SetBattleFacilityTrainerGfxId(gSaveBlock2Ptr->frontier.trainerIds[17], 0xF); } -static void sub_8164E04(void) +static void SetTowerInterviewData(void) { s32 i; u8 text[32]; @@ -3562,7 +3562,7 @@ static u8 SetTentPtrsGetLevel(void) return level; } -static void sub_8165E18(void) +static void SetNextBattleTentOpponent(void) { s32 i; u16 trainerId; diff --git a/src/data/pokemon/item_effects.h b/src/data/pokemon/item_effects.h index 1697a1e7e..2c153b0ef 100644 --- a/src/data/pokemon/item_effects.h +++ b/src/data/pokemon/item_effects.h @@ -377,7 +377,7 @@ const u8 gItemEffect_QualotBerry[10] = { [9] = 2, }; -const u8 gItemEffect_HondrewBerry[10] = { +const u8 gItemEffect_HondewBerry[10] = { [5] = ITEM5_EV_SPATK | ITEM5_FRIENDSHIP_ALL, [6] = -10, [7] = 10, @@ -469,7 +469,7 @@ const u8 *const gItemEffectTable[] = [ITEM_POMEG_BERRY - ITEM_POTION] = gItemEffect_PomegBerry, [ITEM_KELPSY_BERRY - ITEM_POTION] = gItemEffect_KelpsyBerry, [ITEM_QUALOT_BERRY - ITEM_POTION] = gItemEffect_QualotBerry, - [ITEM_HONDEW_BERRY - ITEM_POTION] = gItemEffect_HondrewBerry, + [ITEM_HONDEW_BERRY - ITEM_POTION] = gItemEffect_HondewBerry, [ITEM_GREPA_BERRY - ITEM_POTION] = gItemEffect_GrepaBerry, [ITEM_TAMATO_BERRY - ITEM_POTION] = gItemEffect_TamatoBerry, [LAST_BERRY_INDEX - ITEM_POTION] = NULL diff --git a/src/item_use.c b/src/item_use.c index e7f0f4fb3..2211e1c70 100755 --- a/src/item_use.c +++ b/src/item_use.c @@ -89,7 +89,7 @@ EWRAM_DATA static void(*gUnknown_0203A0F4)(u8 taskId) = NULL; // .rodata -static const MainCallback gUnknown_085920D8[] = +static const MainCallback sItemUseCallbacks[] = { CB2_ShowPartyMenuForItemUse, CB2_ReturnToField, @@ -115,12 +115,12 @@ void SetUpItemUseCallback(u8 taskId) type = ItemId_GetType(gSpecialVar_ItemId) - 1; if (!InBattlePyramid()) { - gBagMenu->mainCallback2 = gUnknown_085920D8[type]; + gBagMenu->mainCallback2 = sItemUseCallbacks[type]; unknown_ItemMenu_Confirm(taskId); } else { - gPyramidBagResources->callback2 = gUnknown_085920D8[type]; + gPyramidBagResources->callback2 = sItemUseCallbacks[type]; sub_81C5B14(taskId); } } |