Improve Pyramid location documentaion

This commit is contained in:
Eduardo Quezada
2024-12-05 18:25:27 -03:00
parent 404818e441
commit 720b2daecc
10 changed files with 34 additions and 23 deletions
@@ -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
+3 -3
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
+2 -2
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
+8 -1
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);
@@ -21,4 +23,9 @@ void LoadBattlePyramidFloorObjectEventScripts(void);
u8 GetNumBattlePyramidObjectEvents(void); u8 GetNumBattlePyramidObjectEvents(void);
u16 GetBattlePyramidPickupItemId(void); u16 GetBattlePyramidPickupItemId(void);
static inline bool8 InBattlePyramid()
{
return (CurrentBattlePyramidLocation() != PYRAMID_LOCATION_NONE);
}
#endif // GUARD_BATTLE_PYRAMID_H #endif // GUARD_BATTLE_PYRAMID_H
+5 -1
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
+8 -8
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)
+1 -1
View File
@@ -92,7 +92,7 @@ static void Task_TryFieldPoisonWhiteOut(u8 taskId)
#ifdef BUGFIX #ifdef BUGFIX
if (InBattlePyramid() || InBattlePike() || InTrainerHillChallenge()) if (InBattlePyramid() || 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
+3 -3
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:
+1 -1
View File
@@ -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) // !InBattlePyramid() doesn't match
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);
+1 -1
View File
@@ -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 = (!InBattlePyramid()) ? 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;
} }