Merge pull request #2073 from AsparagusEduardo/_pret/pr/pyramidLocation

Improve Pyramid location documentaion
This commit is contained in:
GriffinR
2025-06-30 13:30:14 -04:00
committed by GitHub
21 changed files with 79 additions and 73 deletions

View File

@@ -69,8 +69,8 @@
.endm .endm
@ VAR_RESULT is 1 if player is on a Pyramid floor, 2 if on the Pyramid peak, 0 otherwise @ VAR_RESULT is 1 if player is on a Pyramid floor, 2 if on the Pyramid peak, 0 otherwise
.macro pyramid_inchallenge .macro pyramid_getlocation
setvar VAR_0x8004, BATTLE_PYRAMID_FUNC_IS_IN setvar VAR_0x8004, BATTLE_PYRAMID_FUNC_CURRENT_LOCATION
special CallBattlePyramidFunction special CallBattlePyramidFunction
.endm .endm

View File

@@ -29,9 +29,9 @@ EventScript_FrontierFieldWhiteOut::
waitbuttonpress waitbuttonpress
pike_inchallenge pike_inchallenge
goto_if_eq VAR_RESULT, TRUE, BattleFrontier_BattlePike_EventScript_Retire goto_if_eq VAR_RESULT, TRUE, BattleFrontier_BattlePike_EventScript_Retire
pyramid_inchallenge pyramid_getlocation
goto_if_eq VAR_RESULT, 1, BattleFrontier_BattlePyramid_EventScript_WarpToLobbyLost @ On Pyramid floor goto_if_eq VAR_RESULT, PYRAMID_LOCATION_FLOOR, BattleFrontier_BattlePyramid_EventScript_WarpToLobbyLost
goto_if_eq VAR_RESULT, 2, BattleFrontier_BattlePyramid_EventScript_WarpToLobbyLost @ On Pyramid peak goto_if_eq VAR_RESULT, PYRAMID_LOCATION_TOP, BattleFrontier_BattlePyramid_EventScript_WarpToLobbyLost
trainerhill_inchallenge trainerhill_inchallenge
goto_if_eq VAR_RESULT, TRUE, TrainerHill_1F_EventScript_Lost goto_if_eq VAR_RESULT, TRUE, TrainerHill_1F_EventScript_Lost
special Script_FadeOutMapMusic special Script_FadeOutMapMusic

View File

@@ -118,8 +118,8 @@ EventScript_PickUpItem::
waitfanfare waitfanfare
waitmessage waitmessage
bufferitemnameplural STR_VAR_2, VAR_0x8004, VAR_0x8005 bufferitemnameplural STR_VAR_2, VAR_0x8004, VAR_0x8005
pyramid_inchallenge pyramid_getlocation
goto_if_eq VAR_RESULT, TRUE, EventScript_PutBattlePyramidItemInBag goto_if_eq VAR_RESULT, PYRAMID_LOCATION_FLOOR, EventScript_PutBattlePyramidItemInBag
msgbox gText_PutItemInPocket, MSGBOX_DEFAULT msgbox gText_PutItemInPocket, MSGBOX_DEFAULT
return return

View File

@@ -1,13 +1,15 @@
#ifndef GUARD_BATTLE_PYRAMID_H #ifndef GUARD_BATTLE_PYRAMID_H
#define GUARD_BATTLE_PYRAMID_H #define GUARD_BATTLE_PYRAMID_H
#include "constants/battle_pyramid.h"
void CallBattlePyramidFunction(void); void CallBattlePyramidFunction(void);
u16 LocalIdToPyramidTrainerId(u8 localId); u16 LocalIdToPyramidTrainerId(u8 localId);
bool8 GetBattlePyramidTrainerFlag(u8 eventId); bool8 GetBattlePyramidTrainerFlag(u8 eventId);
void MarkApproachingPyramidTrainersAsBattled(void); void MarkApproachingPyramidTrainersAsBattled(void);
void GenerateBattlePyramidWildMon(void); void GenerateBattlePyramidWildMon(void);
u8 GetPyramidRunMultiplier(void); u8 GetPyramidRunMultiplier(void);
u8 InBattlePyramid(void); u8 CurrentBattlePyramidLocation(void);
bool8 InBattlePyramid_(void); bool8 InBattlePyramid_(void);
void PausePyramidChallenge(void); void PausePyramidChallenge(void);
void SoftResetInBattlePyramid(void); void SoftResetInBattlePyramid(void);

View File

@@ -43,7 +43,7 @@
#define BATTLE_PYRAMID_FUNC_SET_TRAINERS 9 #define BATTLE_PYRAMID_FUNC_SET_TRAINERS 9
#define BATTLE_PYRAMID_FUNC_SHOW_HINT_TEXT 10 #define BATTLE_PYRAMID_FUNC_SHOW_HINT_TEXT 10
#define BATTLE_PYRAMID_FUNC_UPDATE_STREAK 11 // unused #define BATTLE_PYRAMID_FUNC_UPDATE_STREAK 11 // unused
#define BATTLE_PYRAMID_FUNC_IS_IN 12 #define BATTLE_PYRAMID_FUNC_CURRENT_LOCATION 12
#define BATTLE_PYRAMID_FUNC_UPDATE_LIGHT 13 #define BATTLE_PYRAMID_FUNC_UPDATE_LIGHT 13
#define BATTLE_PYRAMID_FUNC_CLEAR_HELD_ITEMS 14 #define BATTLE_PYRAMID_FUNC_CLEAR_HELD_ITEMS 14
#define BATTLE_PYRAMID_FUNC_SET_FLOOR_PALETTE 15 #define BATTLE_PYRAMID_FUNC_SET_FLOOR_PALETTE 15
@@ -62,4 +62,8 @@
#define PYRAMID_LIGHT_SET_RADIUS 0 #define PYRAMID_LIGHT_SET_RADIUS 0
#define PYRAMID_LIGHT_INCR_RADIUS 1 #define PYRAMID_LIGHT_INCR_RADIUS 1
#define PYRAMID_LOCATION_NONE 0 // Not in the Pyramid
#define PYRAMID_LOCATION_FLOOR 1
#define PYRAMID_LOCATION_TOP 2
#endif // GUARD_CONSTANTS_BATTLE_PYRAMID_H #endif // GUARD_CONSTANTS_BATTLE_PYRAMID_H

View File

@@ -79,7 +79,7 @@ static void HidePyramidItem(void);
static void SetPyramidFacilityTrainers(void); static void SetPyramidFacilityTrainers(void);
static void ShowPostBattleHintText(void); static void ShowPostBattleHintText(void);
static void UpdatePyramidWinStreak(void); static void UpdatePyramidWinStreak(void);
static void GetInBattlePyramid(void); static void GetCurrentBattlePyramidLocation(void);
static void UpdatePyramidLightRadius(void); static void UpdatePyramidLightRadius(void);
static void ClearPyramidPartyHeldItems(void); static void ClearPyramidPartyHeldItems(void);
static void SetPyramidFloorPalette(void); static void SetPyramidFloorPalette(void);
@@ -798,7 +798,7 @@ static void (*const sBattlePyramidFunctions[])(void) =
[BATTLE_PYRAMID_FUNC_SET_TRAINERS] = SetPyramidFacilityTrainers, [BATTLE_PYRAMID_FUNC_SET_TRAINERS] = SetPyramidFacilityTrainers,
[BATTLE_PYRAMID_FUNC_SHOW_HINT_TEXT] = ShowPostBattleHintText, [BATTLE_PYRAMID_FUNC_SHOW_HINT_TEXT] = ShowPostBattleHintText,
[BATTLE_PYRAMID_FUNC_UPDATE_STREAK] = UpdatePyramidWinStreak, [BATTLE_PYRAMID_FUNC_UPDATE_STREAK] = UpdatePyramidWinStreak,
[BATTLE_PYRAMID_FUNC_IS_IN] = GetInBattlePyramid, [BATTLE_PYRAMID_FUNC_CURRENT_LOCATION] = GetCurrentBattlePyramidLocation,
[BATTLE_PYRAMID_FUNC_UPDATE_LIGHT] = UpdatePyramidLightRadius, [BATTLE_PYRAMID_FUNC_UPDATE_LIGHT] = UpdatePyramidLightRadius,
[BATTLE_PYRAMID_FUNC_CLEAR_HELD_ITEMS] = ClearPyramidPartyHeldItems, [BATTLE_PYRAMID_FUNC_CLEAR_HELD_ITEMS] = ClearPyramidPartyHeldItems,
[BATTLE_PYRAMID_FUNC_SET_FLOOR_PALETTE] = SetPyramidFloorPalette, [BATTLE_PYRAMID_FUNC_SET_FLOOR_PALETTE] = SetPyramidFloorPalette,
@@ -1113,9 +1113,9 @@ static void UpdatePyramidWinStreak(void)
gSaveBlock2Ptr->frontier.pyramidRecordStreaks[lvlMode] = gSaveBlock2Ptr->frontier.pyramidWinStreaks[lvlMode]; gSaveBlock2Ptr->frontier.pyramidRecordStreaks[lvlMode] = gSaveBlock2Ptr->frontier.pyramidWinStreaks[lvlMode];
} }
static void GetInBattlePyramid(void) static void GetCurrentBattlePyramidLocation(void)
{ {
gSpecialVar_Result = InBattlePyramid(); gSpecialVar_Result = CurrentBattlePyramidLocation();
} }
static void UpdatePyramidLightRadius(void) static void UpdatePyramidLightRadius(void)
@@ -1419,14 +1419,14 @@ u8 GetPyramidRunMultiplier(void)
return sPyramidFloorTemplates[id].runMultiplier; return sPyramidFloorTemplates[id].runMultiplier;
} }
u8 InBattlePyramid(void) u8 CurrentBattlePyramidLocation(void)
{ {
if (gMapHeader.mapLayoutId == LAYOUT_BATTLE_FRONTIER_BATTLE_PYRAMID_FLOOR) if (gMapHeader.mapLayoutId == LAYOUT_BATTLE_FRONTIER_BATTLE_PYRAMID_FLOOR)
return 1; return PYRAMID_LOCATION_FLOOR;
else if (gMapHeader.mapLayoutId == LAYOUT_BATTLE_FRONTIER_BATTLE_PYRAMID_TOP) else if (gMapHeader.mapLayoutId == LAYOUT_BATTLE_FRONTIER_BATTLE_PYRAMID_TOP)
return 2; return PYRAMID_LOCATION_TOP;
else else
return FALSE; return PYRAMID_LOCATION_NONE;
} }
bool8 InBattlePyramid_(void) bool8 InBattlePyramid_(void)
@@ -1437,7 +1437,7 @@ bool8 InBattlePyramid_(void)
void PausePyramidChallenge(void) void PausePyramidChallenge(void)
{ {
if (InBattlePyramid()) if (CurrentBattlePyramidLocation() != PYRAMID_LOCATION_NONE)
{ {
RestorePyramidPlayerParty(); RestorePyramidPlayerParty();
gSaveBlock2Ptr->frontier.challengeStatus = CHALLENGE_STATUS_PAUSED; gSaveBlock2Ptr->frontier.challengeStatus = CHALLENGE_STATUS_PAUSED;
@@ -1448,7 +1448,7 @@ void PausePyramidChallenge(void)
void SoftResetInBattlePyramid(void) void SoftResetInBattlePyramid(void)
{ {
if (InBattlePyramid()) if (CurrentBattlePyramidLocation() != PYRAMID_LOCATION_NONE)
DoSoftReset(); DoSoftReset();
} }

View File

@@ -9684,7 +9684,7 @@ static void Cmd_pickup(void)
{ {
} }
else if (InBattlePyramid()) else if (CurrentBattlePyramidLocation() != PYRAMID_LOCATION_NONE)
{ {
for (i = 0; i < PARTY_SIZE; i++) for (i = 0; i < PARTY_SIZE; i++)
{ {

View File

@@ -406,7 +406,7 @@ static void DoStandardWildBattle(void)
StopPlayerAvatar(); StopPlayerAvatar();
gMain.savedCallback = CB2_EndWildBattle; gMain.savedCallback = CB2_EndWildBattle;
gBattleTypeFlags = 0; gBattleTypeFlags = 0;
if (InBattlePyramid()) if (CurrentBattlePyramidLocation() != PYRAMID_LOCATION_NONE)
{ {
VarSet(VAR_TEMP_PLAYING_PYRAMID_MUSIC, 0); VarSet(VAR_TEMP_PLAYING_PYRAMID_MUSIC, 0);
gBattleTypeFlags |= BATTLE_TYPE_PYRAMID; gBattleTypeFlags |= BATTLE_TYPE_PYRAMID;
@@ -466,7 +466,7 @@ static void DoTrainerBattle(void)
static void DoBattlePyramidTrainerHillBattle(void) static void DoBattlePyramidTrainerHillBattle(void)
{ {
if (InBattlePyramid()) if (CurrentBattlePyramidLocation() != PYRAMID_LOCATION_NONE)
CreateBattleStartTask(GetSpecialBattleTransition(B_TRANSITION_GROUP_B_PYRAMID), 0); CreateBattleStartTask(GetSpecialBattleTransition(B_TRANSITION_GROUP_B_PYRAMID), 0);
else else
CreateBattleStartTask(GetSpecialBattleTransition(B_TRANSITION_GROUP_TRAINER_HILL), 0); CreateBattleStartTask(GetSpecialBattleTransition(B_TRANSITION_GROUP_TRAINER_HILL), 0);
@@ -604,7 +604,7 @@ static void CB2_EndWildBattle(void)
CpuFill16(0, (void *)(BG_PLTT), BG_PLTT_SIZE); CpuFill16(0, (void *)(BG_PLTT), BG_PLTT_SIZE);
ResetOamRange(0, 128); ResetOamRange(0, 128);
if (IsPlayerDefeated(gBattleOutcome) == TRUE && !InBattlePyramid() && !InBattlePike()) if (IsPlayerDefeated(gBattleOutcome) == TRUE && CurrentBattlePyramidLocation() == PYRAMID_LOCATION_NONE && !InBattlePike())
{ {
SetMainCallback2(CB2_WhiteOut); SetMainCallback2(CB2_WhiteOut);
} }
@@ -622,7 +622,7 @@ static void CB2_EndScriptedWildBattle(void)
if (IsPlayerDefeated(gBattleOutcome) == TRUE) if (IsPlayerDefeated(gBattleOutcome) == TRUE)
{ {
if (InBattlePyramid()) if (CurrentBattlePyramidLocation() != PYRAMID_LOCATION_NONE)
SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic); SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic);
else else
SetMainCallback2(CB2_WhiteOut); SetMainCallback2(CB2_WhiteOut);
@@ -795,14 +795,14 @@ static u8 GetWildBattleTransition(void)
if (enemyLevel < playerLevel) if (enemyLevel < playerLevel)
{ {
if (InBattlePyramid()) if (CurrentBattlePyramidLocation() != PYRAMID_LOCATION_NONE)
return B_TRANSITION_BLUR; return B_TRANSITION_BLUR;
else else
return sBattleTransitionTable_Wild[transitionType][0]; return sBattleTransitionTable_Wild[transitionType][0];
} }
else else
{ {
if (InBattlePyramid()) if (CurrentBattlePyramidLocation() != PYRAMID_LOCATION_NONE)
return B_TRANSITION_GRID_SQUARES; return B_TRANSITION_GRID_SQUARES;
else else
return sBattleTransitionTable_Wild[transitionType][1]; return sBattleTransitionTable_Wild[transitionType][1];
@@ -1234,7 +1234,7 @@ u8 GetTrainerBattleMode(void)
bool8 GetTrainerFlag(void) bool8 GetTrainerFlag(void)
{ {
if (InBattlePyramid()) if (CurrentBattlePyramidLocation() != PYRAMID_LOCATION_NONE)
return GetBattlePyramidTrainerFlag(gSelectedObjectEvent); return GetBattlePyramidTrainerFlag(gSelectedObjectEvent);
else if (InTrainerHill()) else if (InTrainerHill())
return GetHillTrainerFlag(gSelectedObjectEvent); return GetHillTrainerFlag(gSelectedObjectEvent);
@@ -1276,7 +1276,7 @@ void BattleSetup_StartTrainerBattle(void)
else else
gBattleTypeFlags = (BATTLE_TYPE_TRAINER); gBattleTypeFlags = (BATTLE_TYPE_TRAINER);
if (InBattlePyramid()) if (CurrentBattlePyramidLocation() != PYRAMID_LOCATION_NONE)
{ {
VarSet(VAR_TEMP_PLAYING_PYRAMID_MUSIC, 0); VarSet(VAR_TEMP_PLAYING_PYRAMID_MUSIC, 0);
gBattleTypeFlags |= BATTLE_TYPE_PYRAMID; gBattleTypeFlags |= BATTLE_TYPE_PYRAMID;
@@ -1316,7 +1316,7 @@ void BattleSetup_StartTrainerBattle(void)
gWhichTrainerToFaceAfterBattle = 0; gWhichTrainerToFaceAfterBattle = 0;
gMain.savedCallback = CB2_EndTrainerBattle; gMain.savedCallback = CB2_EndTrainerBattle;
if (InBattlePyramid() || InTrainerHillChallenge()) if (CurrentBattlePyramidLocation() != PYRAMID_LOCATION_NONE || InTrainerHillChallenge())
DoBattlePyramidTrainerHillBattle(); DoBattlePyramidTrainerHillBattle();
else else
DoTrainerBattle(); DoTrainerBattle();
@@ -1332,7 +1332,7 @@ static void CB2_EndTrainerBattle(void)
} }
else if (IsPlayerDefeated(gBattleOutcome) == TRUE) else if (IsPlayerDefeated(gBattleOutcome) == TRUE)
{ {
if (InBattlePyramid() || InTrainerHillChallenge()) if (CurrentBattlePyramidLocation() != PYRAMID_LOCATION_NONE || InTrainerHillChallenge())
SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic); SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic);
else else
SetMainCallback2(CB2_WhiteOut); SetMainCallback2(CB2_WhiteOut);
@@ -1340,7 +1340,7 @@ static void CB2_EndTrainerBattle(void)
else else
{ {
SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic); SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic);
if (!InBattlePyramid() && !InTrainerHillChallenge()) if (CurrentBattlePyramidLocation() == PYRAMID_LOCATION_NONE && !InTrainerHillChallenge())
{ {
RegisterTrainerInMatchCall(); RegisterTrainerInMatchCall();
SetBattledTrainersFlags(); SetBattledTrainersFlags();
@@ -1377,7 +1377,7 @@ void BattleSetup_StartRematchBattle(void)
void ShowTrainerIntroSpeech(void) void ShowTrainerIntroSpeech(void)
{ {
if (InBattlePyramid()) if (CurrentBattlePyramidLocation() != PYRAMID_LOCATION_NONE)
{ {
if (gNoOfApproachingTrainers == 0 || gNoOfApproachingTrainers == 1) if (gNoOfApproachingTrainers == 0 || gNoOfApproachingTrainers == 1)
CopyPyramidTrainerSpeechBefore(LocalIdToPyramidTrainerId(gSpecialVar_LastTalked)); CopyPyramidTrainerSpeechBefore(LocalIdToPyramidTrainerId(gSpecialVar_LastTalked));

View File

@@ -426,7 +426,7 @@ bool8 TryRunFromBattle(u8 battler)
} }
else if (gBattleMons[battler].ability == ABILITY_RUN_AWAY) else if (gBattleMons[battler].ability == ABILITY_RUN_AWAY)
{ {
if (InBattlePyramid()) if (CurrentBattlePyramidLocation() != PYRAMID_LOCATION_NONE)
{ {
gBattleStruct->runTries++; gBattleStruct->runTries++;
pyramidMultiplier = GetPyramidRunMultiplier(); pyramidMultiplier = GetPyramidRunMultiplier();
@@ -453,7 +453,7 @@ bool8 TryRunFromBattle(u8 battler)
{ {
if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE))
{ {
if (InBattlePyramid()) if (CurrentBattlePyramidLocation() != PYRAMID_LOCATION_NONE)
{ {
pyramidMultiplier = GetPyramidRunMultiplier(); pyramidMultiplier = GetPyramidRunMultiplier();
speedVar = (gBattleMons[battler].speed * pyramidMultiplier) / (gBattleMons[BATTLE_OPPOSITE(battler)].speed) + (gBattleStruct->runTries * 30); speedVar = (gBattleMons[battler].speed * pyramidMultiplier) / (gBattleMons[BATTLE_OPPOSITE(battler)].speed) + (gBattleStruct->runTries * 30);

View File

@@ -1338,7 +1338,7 @@ u8 Unref_TryInitLocalObjectEvent(u8 localId)
if (gMapHeader.events != NULL) if (gMapHeader.events != NULL)
{ {
if (InBattlePyramid()) if (CurrentBattlePyramidLocation() != PYRAMID_LOCATION_NONE)
objectEventCount = GetNumBattlePyramidObjectEvents(); objectEventCount = GetNumBattlePyramidObjectEvents();
else if (InTrainerHill()) else if (InTrainerHill())
objectEventCount = HILL_TRAINERS_PER_FLOOR; objectEventCount = HILL_TRAINERS_PER_FLOOR;
@@ -1654,7 +1654,7 @@ void TrySpawnObjectEvents(s16 cameraX, s16 cameraY)
s16 top = gSaveBlock1Ptr->pos.y; s16 top = gSaveBlock1Ptr->pos.y;
s16 bottom = gSaveBlock1Ptr->pos.y + MAP_OFFSET_H + 2; s16 bottom = gSaveBlock1Ptr->pos.y + MAP_OFFSET_H + 2;
if (InBattlePyramid()) if (CurrentBattlePyramidLocation() != PYRAMID_LOCATION_NONE)
objectCount = GetNumBattlePyramidObjectEvents(); objectCount = GetNumBattlePyramidObjectEvents();
else if (InTrainerHill()) else if (InTrainerHill())
objectCount = HILL_TRAINERS_PER_FLOOR; objectCount = HILL_TRAINERS_PER_FLOOR;

View File

@@ -90,9 +90,9 @@ static void Task_TryFieldPoisonWhiteOut(u8 taskId)
{ {
// Battle facilities have their own white out script to handle the challenge loss // Battle facilities have their own white out script to handle the challenge loss
#ifdef BUGFIX #ifdef BUGFIX
if (InBattlePyramid() || InBattlePike() || InTrainerHillChallenge()) if (CurrentBattlePyramidLocation() || InBattlePike() || InTrainerHillChallenge())
#else #else
if (InBattlePyramid() | InBattlePike() || InTrainerHillChallenge()) if (CurrentBattlePyramidLocation() | InBattlePike() || InTrainerHillChallenge())
#endif #endif
gSpecialVar_Result = FLDPSN_FRONTIER_WHITEOUT; gSpecialVar_Result = FLDPSN_FRONTIER_WHITEOUT;
else else

View File

@@ -917,12 +917,12 @@ static void CB2_ReturnFromRecord(void)
sPassData->cursorX = sSavedPassData.cursorX; sPassData->cursorX = sSavedPassData.cursorX;
sPassData->cursorY = sSavedPassData.cursorY; sPassData->cursorY = sSavedPassData.cursorY;
memset(&sSavedPassData, 0, sizeof(sSavedPassData)); memset(&sSavedPassData, 0, sizeof(sSavedPassData));
switch (InBattlePyramid()) switch (CurrentBattlePyramidLocation())
{ {
case 1: case PYRAMID_LOCATION_FLOOR:
PlayBGM(MUS_B_PYRAMID); PlayBGM(MUS_B_PYRAMID);
break; break;
case 2: case PYRAMID_LOCATION_TOP:
PlayBGM(MUS_B_PYRAMID_TOP); PlayBGM(MUS_B_PYRAMID_TOP);
break; break;
default: default:

View File

@@ -133,7 +133,7 @@ bool8 CheckBagHasItem(u16 itemId, u16 count)
if (GetItemPocket(itemId) == 0) if (GetItemPocket(itemId) == 0)
return FALSE; return FALSE;
if (InBattlePyramid() || FlagGet(FLAG_STORING_ITEMS_IN_PYRAMID_BAG) == TRUE) if (CurrentBattlePyramidLocation() != PYRAMID_LOCATION_NONE || FlagGet(FLAG_STORING_ITEMS_IN_PYRAMID_BAG) == TRUE)
return CheckPyramidBagHasItem(itemId, count); return CheckPyramidBagHasItem(itemId, count);
pocket = GetItemPocket(itemId) - 1; pocket = GetItemPocket(itemId) - 1;
// Check for item slots that contain the item // Check for item slots that contain the item
@@ -181,7 +181,7 @@ bool8 CheckBagHasSpace(u16 itemId, u16 count)
if (GetItemPocket(itemId) == POCKET_NONE) if (GetItemPocket(itemId) == POCKET_NONE)
return FALSE; return FALSE;
if (InBattlePyramid() || FlagGet(FLAG_STORING_ITEMS_IN_PYRAMID_BAG) == TRUE) if (CurrentBattlePyramidLocation() != PYRAMID_LOCATION_NONE || FlagGet(FLAG_STORING_ITEMS_IN_PYRAMID_BAG) == TRUE)
{ {
return CheckPyramidBagHasSpace(itemId, count); return CheckPyramidBagHasSpace(itemId, count);
} }
@@ -243,7 +243,7 @@ bool8 AddBagItem(u16 itemId, u16 count)
return FALSE; return FALSE;
// check Battle Pyramid Bag // check Battle Pyramid Bag
if (InBattlePyramid() || FlagGet(FLAG_STORING_ITEMS_IN_PYRAMID_BAG) == TRUE) if (CurrentBattlePyramidLocation() != PYRAMID_LOCATION_NONE || FlagGet(FLAG_STORING_ITEMS_IN_PYRAMID_BAG) == TRUE)
{ {
return AddPyramidBagItem(itemId, count); return AddPyramidBagItem(itemId, count);
} }
@@ -351,7 +351,7 @@ bool8 RemoveBagItem(u16 itemId, u16 count)
return FALSE; return FALSE;
// check Battle Pyramid Bag // check Battle Pyramid Bag
if (InBattlePyramid() || FlagGet(FLAG_STORING_ITEMS_IN_PYRAMID_BAG) == TRUE) if (CurrentBattlePyramidLocation() != PYRAMID_LOCATION_NONE || FlagGet(FLAG_STORING_ITEMS_IN_PYRAMID_BAG) == TRUE)
{ {
return RemovePyramidBagItem(itemId, count); return RemovePyramidBagItem(itemId, count);
} }

View File

@@ -565,7 +565,7 @@ void CB2_BagMenuFromStartMenu(void)
void CB2_BagMenuFromBattle(void) void CB2_BagMenuFromBattle(void)
{ {
if (!InBattlePyramid()) if (CurrentBattlePyramidLocation() == PYRAMID_LOCATION_NONE)
GoToBagMenu(ITEMMENULOCATION_BATTLE, POCKETS_COUNT, CB2_SetUpReshowBattleScreenAfterMenu2); GoToBagMenu(ITEMMENULOCATION_BATTLE, POCKETS_COUNT, CB2_SetUpReshowBattleScreenAfterMenu2);
else else
GoToBattlePyramidBagMenu(PYRAMIDBAG_LOC_BATTLE, CB2_SetUpReshowBattleScreenAfterMenu2); GoToBattlePyramidBagMenu(PYRAMIDBAG_LOC_BATTLE, CB2_SetUpReshowBattleScreenAfterMenu2);
@@ -2036,7 +2036,7 @@ bool8 UseRegisteredKeyItemOnField(void)
{ {
u8 taskId; u8 taskId;
if (InUnionRoom() == TRUE || InBattlePyramid() || InBattlePike() || InMultiPartnerRoom() == TRUE) if (InUnionRoom() == TRUE || CurrentBattlePyramidLocation() != PYRAMID_LOCATION_NONE || InBattlePike() || InMultiPartnerRoom() == TRUE)
return FALSE; return FALSE;
HideMapNamePopUpWindow(); HideMapNamePopUpWindow();
ChangeBgY_ScreenOff(0, 0, BG_COORD_SET); ChangeBgY_ScreenOff(0, 0, BG_COORD_SET);

View File

@@ -102,7 +102,7 @@ static void SetUpItemUseCallback(u8 taskId)
type = gTasks[taskId].tEnigmaBerryType - 1; type = gTasks[taskId].tEnigmaBerryType - 1;
else else
type = GetItemType(gSpecialVar_ItemId) - 1; type = GetItemType(gSpecialVar_ItemId) - 1;
if (!InBattlePyramid()) if (CurrentBattlePyramidLocation() == PYRAMID_LOCATION_NONE)
{ {
gBagMenu->newScreenCallback = sItemUseCallbacks[type]; gBagMenu->newScreenCallback = sItemUseCallbacks[type];
Task_FadeAndCloseBagMenu(taskId); Task_FadeAndCloseBagMenu(taskId);
@@ -144,7 +144,7 @@ static void DisplayCannotUseItemMessage(u8 taskId, bool8 isUsingRegisteredKeyIte
StringExpandPlaceholders(gStringVar4, str); StringExpandPlaceholders(gStringVar4, str);
if (!isUsingRegisteredKeyItemOnField) if (!isUsingRegisteredKeyItemOnField)
{ {
if (!InBattlePyramid()) if (CurrentBattlePyramidLocation() == PYRAMID_LOCATION_NONE)
DisplayItemMessage(taskId, FONT_NORMAL, gStringVar4, CloseItemMessage); DisplayItemMessage(taskId, FONT_NORMAL, gStringVar4, CloseItemMessage);
else else
DisplayItemMessageInBattlePyramid(taskId, gText_DadsAdvice, Task_CloseBattlePyramidBagMessage); DisplayItemMessageInBattlePyramid(taskId, gText_DadsAdvice, Task_CloseBattlePyramidBagMessage);
@@ -826,7 +826,7 @@ static void RemoveUsedItem(void)
RemoveBagItem(gSpecialVar_ItemId, 1); RemoveBagItem(gSpecialVar_ItemId, 1);
CopyItemName(gSpecialVar_ItemId, gStringVar2); CopyItemName(gSpecialVar_ItemId, gStringVar2);
StringExpandPlaceholders(gStringVar4, gText_PlayerUsedVar2); StringExpandPlaceholders(gStringVar4, gText_PlayerUsedVar2);
if (!InBattlePyramid()) if (CurrentBattlePyramidLocation() == PYRAMID_LOCATION_NONE)
{ {
UpdatePocketItemList(GetItemPocket(gSpecialVar_ItemId)); UpdatePocketItemList(GetItemPocket(gSpecialVar_ItemId));
UpdatePocketListPosition(GetItemPocket(gSpecialVar_ItemId)); UpdatePocketListPosition(GetItemPocket(gSpecialVar_ItemId));
@@ -842,7 +842,7 @@ void ItemUseOutOfBattle_Repel(u8 taskId)
{ {
if (VarGet(VAR_REPEL_STEP_COUNT) == 0) if (VarGet(VAR_REPEL_STEP_COUNT) == 0)
gTasks[taskId].func = Task_StartUseRepel; gTasks[taskId].func = Task_StartUseRepel;
else if (!InBattlePyramid()) else if (CurrentBattlePyramidLocation() == PYRAMID_LOCATION_NONE)
DisplayItemMessage(taskId, FONT_NORMAL, gText_RepelEffectsLingered, CloseItemMessage); DisplayItemMessage(taskId, FONT_NORMAL, gText_RepelEffectsLingered, CloseItemMessage);
else else
DisplayItemMessageInBattlePyramid(taskId, gText_RepelEffectsLingered, Task_CloseBattlePyramidBagMessage); DisplayItemMessageInBattlePyramid(taskId, gText_RepelEffectsLingered, Task_CloseBattlePyramidBagMessage);
@@ -866,7 +866,7 @@ static void Task_UseRepel(u8 taskId)
{ {
VarSet(VAR_REPEL_STEP_COUNT, GetItemHoldEffectParam(gSpecialVar_ItemId)); VarSet(VAR_REPEL_STEP_COUNT, GetItemHoldEffectParam(gSpecialVar_ItemId));
RemoveUsedItem(); RemoveUsedItem();
if (!InBattlePyramid()) if (CurrentBattlePyramidLocation() == PYRAMID_LOCATION_NONE)
DisplayItemMessage(taskId, FONT_NORMAL, gStringVar4, CloseItemMessage); DisplayItemMessage(taskId, FONT_NORMAL, gStringVar4, CloseItemMessage);
else else
DisplayItemMessageInBattlePyramid(taskId, gStringVar4, Task_CloseBattlePyramidBagMessage); DisplayItemMessageInBattlePyramid(taskId, gStringVar4, Task_CloseBattlePyramidBagMessage);
@@ -878,7 +878,7 @@ static void Task_UsedBlackWhiteFlute(u8 taskId)
if(++gTasks[taskId].data[8] > 7) if(++gTasks[taskId].data[8] > 7)
{ {
PlaySE(SE_GLASS_FLUTE); PlaySE(SE_GLASS_FLUTE);
if (!InBattlePyramid()) if (CurrentBattlePyramidLocation() == PYRAMID_LOCATION_NONE)
DisplayItemMessage(taskId, FONT_NORMAL, gStringVar4, CloseItemMessage); DisplayItemMessage(taskId, FONT_NORMAL, gStringVar4, CloseItemMessage);
else else
DisplayItemMessageInBattlePyramid(taskId, gStringVar4, Task_CloseBattlePyramidBagMessage); DisplayItemMessageInBattlePyramid(taskId, gStringVar4, Task_CloseBattlePyramidBagMessage);
@@ -951,12 +951,12 @@ void ItemUseInBattle_PokeBall(u8 taskId)
if (IsPlayerPartyAndPokemonStorageFull() == FALSE) // have room for mon? if (IsPlayerPartyAndPokemonStorageFull() == FALSE) // have room for mon?
{ {
RemoveBagItem(gSpecialVar_ItemId, 1); RemoveBagItem(gSpecialVar_ItemId, 1);
if (!InBattlePyramid()) if (CurrentBattlePyramidLocation() == PYRAMID_LOCATION_NONE)
Task_FadeAndCloseBagMenu(taskId); Task_FadeAndCloseBagMenu(taskId);
else else
CloseBattlePyramidBag(taskId); CloseBattlePyramidBag(taskId);
} }
else if (!InBattlePyramid()) else if (CurrentBattlePyramidLocation() == PYRAMID_LOCATION_NONE)
{ {
DisplayItemMessage(taskId, FONT_NORMAL, gText_BoxFull, CloseItemMessage); DisplayItemMessage(taskId, FONT_NORMAL, gText_BoxFull, CloseItemMessage);
} }
@@ -970,7 +970,7 @@ static void Task_CloseStatIncreaseMessage(u8 taskId)
{ {
if (JOY_NEW(A_BUTTON | B_BUTTON)) if (JOY_NEW(A_BUTTON | B_BUTTON))
{ {
if (!InBattlePyramid()) if (CurrentBattlePyramidLocation() == PYRAMID_LOCATION_NONE)
Task_FadeAndCloseBagMenu(taskId); Task_FadeAndCloseBagMenu(taskId);
else else
CloseBattlePyramidBag(taskId); CloseBattlePyramidBag(taskId);
@@ -983,7 +983,7 @@ static void Task_UseStatIncreaseItem(u8 taskId)
{ {
PlaySE(SE_USE_ITEM); PlaySE(SE_USE_ITEM);
RemoveBagItem(gSpecialVar_ItemId, 1); RemoveBagItem(gSpecialVar_ItemId, 1);
if (!InBattlePyramid()) if (CurrentBattlePyramidLocation() == PYRAMID_LOCATION_NONE)
DisplayItemMessage(taskId, FONT_NORMAL, UseStatIncreaseItem(gSpecialVar_ItemId), Task_CloseStatIncreaseMessage); DisplayItemMessage(taskId, FONT_NORMAL, UseStatIncreaseItem(gSpecialVar_ItemId), Task_CloseStatIncreaseMessage);
else else
DisplayItemMessageInBattlePyramid(taskId, UseStatIncreaseItem(gSpecialVar_ItemId), Task_CloseStatIncreaseMessage); DisplayItemMessageInBattlePyramid(taskId, UseStatIncreaseItem(gSpecialVar_ItemId), Task_CloseStatIncreaseMessage);
@@ -997,7 +997,7 @@ void ItemUseInBattle_StatIncrease(u8 taskId)
if (ExecuteTableBasedItemEffect(&gPlayerParty[partyId], gSpecialVar_ItemId, partyId, 0) != FALSE) if (ExecuteTableBasedItemEffect(&gPlayerParty[partyId], gSpecialVar_ItemId, partyId, 0) != FALSE)
{ {
if (!InBattlePyramid()) if (CurrentBattlePyramidLocation() == PYRAMID_LOCATION_NONE)
DisplayItemMessage(taskId, FONT_NORMAL, gText_WontHaveEffect, CloseItemMessage); DisplayItemMessage(taskId, FONT_NORMAL, gText_WontHaveEffect, CloseItemMessage);
else else
DisplayItemMessageInBattlePyramid(taskId, gText_WontHaveEffect, Task_CloseBattlePyramidBagMessage); DisplayItemMessageInBattlePyramid(taskId, gText_WontHaveEffect, Task_CloseBattlePyramidBagMessage);
@@ -1011,7 +1011,7 @@ void ItemUseInBattle_StatIncrease(u8 taskId)
static void ItemUseInBattle_ShowPartyMenu(u8 taskId) static void ItemUseInBattle_ShowPartyMenu(u8 taskId)
{ {
if (!InBattlePyramid()) if (CurrentBattlePyramidLocation() == PYRAMID_LOCATION_NONE)
{ {
gBagMenu->newScreenCallback = ChooseMonForInBattleItem; gBagMenu->newScreenCallback = ChooseMonForInBattleItem;
Task_FadeAndCloseBagMenu(taskId); Task_FadeAndCloseBagMenu(taskId);
@@ -1049,7 +1049,7 @@ void ItemUseInBattle_Escape(u8 taskId)
if((gBattleTypeFlags & BATTLE_TYPE_TRAINER) == FALSE) if((gBattleTypeFlags & BATTLE_TYPE_TRAINER) == FALSE)
{ {
RemoveUsedItem(); RemoveUsedItem();
if (!InBattlePyramid()) if (CurrentBattlePyramidLocation() == PYRAMID_LOCATION_NONE)
DisplayItemMessage(taskId, FONT_NORMAL, gStringVar4, Task_FadeAndCloseBagMenu); DisplayItemMessage(taskId, FONT_NORMAL, gStringVar4, Task_FadeAndCloseBagMenu);
else else
DisplayItemMessageInBattlePyramid(taskId, gStringVar4, CloseBattlePyramidBag); DisplayItemMessageInBattlePyramid(taskId, gStringVar4, CloseBattlePyramidBag);

View File

@@ -339,7 +339,7 @@ static void ShowMapNamePopUpWindow(void)
u8 x; u8 x;
const u8 *mapDisplayHeaderSource; const u8 *mapDisplayHeaderSource;
if (InBattlePyramid()) if (CurrentBattlePyramidLocation() != PYRAMID_LOCATION_NONE)
{ {
if (gMapHeader.mapLayoutId == LAYOUT_BATTLE_FRONTIER_BATTLE_PYRAMID_TOP) if (gMapHeader.mapLayoutId == LAYOUT_BATTLE_FRONTIER_BATTLE_PYRAMID_TOP)
{ {

View File

@@ -3092,7 +3092,7 @@ static void CursorCb_Give(u8 taskId)
static void CB2_SelectBagItemToGive(void) static void CB2_SelectBagItemToGive(void)
{ {
if (InBattlePyramid() == FALSE) if (CurrentBattlePyramidLocation() != PYRAMID_LOCATION_NONE == FALSE)
GoToBagMenu(ITEMMENULOCATION_PARTY, POCKETS_COUNT, CB2_GiveHoldItem); GoToBagMenu(ITEMMENULOCATION_PARTY, POCKETS_COUNT, CB2_GiveHoldItem);
else else
GoToBattlePyramidBagMenu(PYRAMIDBAG_LOC_PARTY, CB2_GiveHoldItem); GoToBattlePyramidBagMenu(PYRAMIDBAG_LOC_PARTY, CB2_GiveHoldItem);
@@ -4275,7 +4275,7 @@ void CB2_ShowPartyMenuForItemUse(void)
static void CB2_ReturnToBagMenu(void) static void CB2_ReturnToBagMenu(void)
{ {
if (InBattlePyramid() == FALSE) if (CurrentBattlePyramidLocation() != PYRAMID_LOCATION_NONE == FALSE)
GoToBagMenu(ITEMMENULOCATION_LAST, POCKETS_COUNT, NULL); GoToBagMenu(ITEMMENULOCATION_LAST, POCKETS_COUNT, NULL);
else else
GoToBattlePyramidBagMenu(PYRAMIDBAG_LOC_PREV, gPyramidBagMenuState.exitCallback); GoToBattlePyramidBagMenu(PYRAMIDBAG_LOC_PREV, gPyramidBagMenuState.exitCallback);
@@ -5358,7 +5358,7 @@ void CB2_PartyMenuFromStartMenu(void)
// As opposted to by selecting Give in the party menu, which is handled by CursorCb_Give // As opposted to by selecting Give in the party menu, which is handled by CursorCb_Give
void CB2_ChooseMonToGiveItem(void) void CB2_ChooseMonToGiveItem(void)
{ {
MainCallback callback = (InBattlePyramid() == FALSE) ? CB2_ReturnToBagMenu : CB2_ReturnToPyramidBagMenu; MainCallback callback = (CurrentBattlePyramidLocation() == PYRAMID_LOCATION_NONE) ? CB2_ReturnToBagMenu : CB2_ReturnToPyramidBagMenu;
InitPartyMenu(PARTY_MENU_TYPE_FIELD, PARTY_LAYOUT_SINGLE, PARTY_ACTION_GIVE_ITEM, FALSE, PARTY_MSG_GIVE_TO_WHICH_MON, Task_HandleChooseMonInput, callback); InitPartyMenu(PARTY_MENU_TYPE_FIELD, PARTY_LAYOUT_SINGLE, PARTY_ACTION_GIVE_ITEM, FALSE, PARTY_MSG_GIVE_TO_WHICH_MON, Task_HandleChooseMonInput, callback);
gPartyMenu.bagItem = gSpecialVar_ItemId; gPartyMenu.bagItem = gSpecialVar_ItemId;
} }

View File

@@ -5840,7 +5840,7 @@ s32 GetBattlerMultiplayerId(u16 id)
u8 GetTrainerEncounterMusicId(u16 trainerOpponentId) u8 GetTrainerEncounterMusicId(u16 trainerOpponentId)
{ {
if (InBattlePyramid()) if (CurrentBattlePyramidLocation() != PYRAMID_LOCATION_NONE)
return GetTrainerEncounterMusicIdInBattlePyramid(trainerOpponentId); return GetTrainerEncounterMusicIdInBattlePyramid(trainerOpponentId);
else if (InTrainerHillChallenge()) else if (InTrainerHillChallenge())
return GetTrainerEncounterMusicIdInTrainerHill(trainerOpponentId); return GetTrainerEncounterMusicIdInTrainerHill(trainerOpponentId);
@@ -6970,7 +6970,7 @@ static bool8 ShouldSkipFriendshipChange(void)
{ {
if (gMain.inBattle && gBattleTypeFlags & (BATTLE_TYPE_FRONTIER)) if (gMain.inBattle && gBattleTypeFlags & (BATTLE_TYPE_FRONTIER))
return TRUE; return TRUE;
if (!gMain.inBattle && (InBattlePike() || InBattlePyramid())) if (!gMain.inBattle && (InBattlePike() || CurrentBattlePyramidLocation() != PYRAMID_LOCATION_NONE))
return TRUE; return TRUE;
return FALSE; return FALSE;
} }

View File

@@ -293,7 +293,7 @@ static void BuildStartMenuActions(void)
{ {
BuildBattlePikeStartMenu(); BuildBattlePikeStartMenu();
} }
else if (InBattlePyramid()) else if (CurrentBattlePyramidLocation() != PYRAMID_LOCATION_NONE)
{ {
BuildBattlePyramidStartMenu(); BuildBattlePyramidStartMenu();
} }
@@ -439,7 +439,7 @@ static void RemoveExtraStartMenuWindows(void)
CopyWindowToVram(sSafariBallsWindowId, COPYWIN_GFX); CopyWindowToVram(sSafariBallsWindowId, COPYWIN_GFX);
RemoveWindow(sSafariBallsWindowId); RemoveWindow(sSafariBallsWindowId);
} }
if (InBattlePyramid()) if (CurrentBattlePyramidLocation() != PYRAMID_LOCATION_NONE)
{ {
ClearStdWindowAndFrameToTransparent(sBattlePyramidFloorWindowId, FALSE); ClearStdWindowAndFrameToTransparent(sBattlePyramidFloorWindowId, FALSE);
RemoveWindow(sBattlePyramidFloorWindowId); RemoveWindow(sBattlePyramidFloorWindowId);
@@ -499,7 +499,7 @@ static bool32 InitStartMenuStep(void)
case 3: case 3:
if (GetSafariZoneFlag()) if (GetSafariZoneFlag())
ShowSafariBallsWindow(); ShowSafariBallsWindow();
if (InBattlePyramid()) if (CurrentBattlePyramidLocation() != PYRAMID_LOCATION_NONE)
ShowPyramidFloorWindow(); ShowPyramidFloorWindow();
sInitStartMenuData[0]++; sInitStartMenuData[0]++;
break; break;
@@ -720,7 +720,7 @@ static bool8 StartMenuPlayerNameCallback(void)
static bool8 StartMenuSaveCallback(void) static bool8 StartMenuSaveCallback(void)
{ {
if (InBattlePyramid()) if (CurrentBattlePyramidLocation() != PYRAMID_LOCATION_NONE)
RemoveExtraStartMenuWindows(); RemoveExtraStartMenuWindows();
gMenuCallback = SaveStartCallback; // Display save menu gMenuCallback = SaveStartCallback; // Display save menu
@@ -981,7 +981,7 @@ static u8 SaveConfirmSaveCallback(void)
RemoveStartMenuWindow(); RemoveStartMenuWindow();
ShowSaveInfoWindow(); ShowSaveInfoWindow();
if (InBattlePyramid()) if (CurrentBattlePyramidLocation() != PYRAMID_LOCATION_NONE)
{ {
ShowSaveMessage(gText_BattlePyramidConfirmRest, SaveYesNoCallback); ShowSaveMessage(gText_BattlePyramidConfirmRest, SaveYesNoCallback);
} }

View File

@@ -256,7 +256,7 @@ static u8 CheckTrainer(u8 objectEventId)
else else
scriptPtr = GetObjectEventScriptPointerByObjectEventId(objectEventId); scriptPtr = GetObjectEventScriptPointerByObjectEventId(objectEventId);
if (InBattlePyramid()) if (CurrentBattlePyramidLocation() != PYRAMID_LOCATION_NONE)
{ {
if (GetBattlePyramidTrainerFlag(objectEventId)) if (GetBattlePyramidTrainerFlag(objectEventId))
return 0; return 0;

View File

@@ -851,7 +851,7 @@ bool8 UpdateRepelCounter(void)
{ {
u16 steps; u16 steps;
if (InBattlePike() || InBattlePyramid()) if (InBattlePike() || CurrentBattlePyramidLocation() != PYRAMID_LOCATION_NONE)
return FALSE; return FALSE;
if (InUnionRoom() == TRUE) if (InUnionRoom() == TRUE)
return FALSE; return FALSE;