diff options
Diffstat (limited to 'src/battle_pyramid.c')
-rw-r--r-- | src/battle_pyramid.c | 89 |
1 files changed, 45 insertions, 44 deletions
diff --git a/src/battle_pyramid.c b/src/battle_pyramid.c index de53c9a47..e876b6e17 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: |