Improve Pyramid location documentaion
This commit is contained in:
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user