summaryrefslogtreecommitdiff
path: root/src/battle_pyramid.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/battle_pyramid.c')
-rw-r--r--src/battle_pyramid.c89
1 files changed, 45 insertions, 44 deletions
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: