Set up Battle Pike macros
This commit is contained in:
@@ -44,7 +44,7 @@ struct PikeWildMon
|
||||
// IWRAM bss
|
||||
static u8 sRoomType;
|
||||
static u8 sStatusMon;
|
||||
static bool8 sUnknown_0300128E;
|
||||
static bool8 sInWildMonRoom;
|
||||
static u32 sStatusFlags;
|
||||
static u8 sNpcId;
|
||||
|
||||
@@ -55,8 +55,8 @@ static void SetBattlePikeData(void);
|
||||
static void IsNextRoomFinal(void);
|
||||
static void SetupRoomEventObjects(void);
|
||||
static void GetRoomType(void);
|
||||
static void sub_81A7400(void);
|
||||
static void sub_81A740C(void);
|
||||
static void SetInWildMonRoom(void);
|
||||
static void ClearInWildMonRoom(void);
|
||||
static void SavePikeChallenge(void);
|
||||
static void nullsub_76(void);
|
||||
static void nullsub_124(void);
|
||||
@@ -70,12 +70,12 @@ static void SetHintedRoom(void);
|
||||
static void GetHintedRoomIndex(void);
|
||||
static void GetRoomTypeHint(void);
|
||||
static void ClearPikeTrainerIds(void);
|
||||
static void BufferRecordMixingTrainerMessage(void);
|
||||
static void BufferTrainerIntro(void);
|
||||
static void GetCurrentRoomPikeQueenFightType(void);
|
||||
static void HealSomeMonsBeforePikeQueen(void);
|
||||
static void SetHealingroomTypesDisabled(void);
|
||||
static void IsPartyFullHealed(void);
|
||||
static void BackupMonHeldItems(void);
|
||||
static void SaveMonHeldItems(void);
|
||||
static void RestoreMonHeldItems(void);
|
||||
static void InitPikeChallenge(void);
|
||||
static u8 GetNextRoomType(void);
|
||||
@@ -480,35 +480,35 @@ static const u8 sFrontierBrainStreakAppearances[NUM_FRONTIER_FACILITIES][4] =
|
||||
|
||||
static void (* const sBattlePikeFunctions[])(void) =
|
||||
{
|
||||
[BATTLE_PIKE_FUNC_SET_ROOM_TYPE] = SetRoomType,
|
||||
[BATTLE_PIKE_FUNC_GET_DATA] = GetBattlePikeData,
|
||||
[BATTLE_PIKE_FUNC_SET_DATA] = SetBattlePikeData,
|
||||
[BATTLE_PIKE_FUNC_IS_FINAL_ROOM] = IsNextRoomFinal,
|
||||
[BATTLE_PIKE_FUNC_SET_ROOM_OBJECTS] = SetupRoomEventObjects,
|
||||
[BATTLE_PIKE_FUNC_GET_ROOM_TYPE] = GetRoomType,
|
||||
[BATTLE_PIKE_FUNC_6] = sub_81A7400,
|
||||
[BATTLE_PIKE_FUNC_7] = sub_81A740C,
|
||||
[BATTLE_PIKE_FUNC_SAVE] = SavePikeChallenge,
|
||||
[BATTLE_PIKE_FUNC_NULL_9] = nullsub_76,
|
||||
[BATTLE_PIKE_FUNC_NULL_10] = nullsub_124,
|
||||
[BATTLE_PIKE_FUNC_GET_ROOM_STATUS] = GetRoomInflictedStatus,
|
||||
[BATTLE_PIKE_FUNC_GET_ROOM_STATUS_MON] = GetRoomInflictedStatusMon,
|
||||
[BATTLE_PIKE_FUNC_HEAL_ONE_TWO_MONS] = HealOneOrTwoMons,
|
||||
[BATTLE_PIKE_FUNC_BUFFER_NPC_MSG] = BufferNPCMessage,
|
||||
[BATTLE_PIKE_FUNC_STATUS_SCREEN_FADE] = StatusInflictionScreenFade,
|
||||
[BATTLE_PIKE_FUNC_IS_IN] = GetInBattlePike,
|
||||
[BATTLE_PIKE_FUNC_SET_HINT_ROOM] = SetHintedRoom,
|
||||
[BATTLE_PIKE_FUNC_GET_HINT_ROOM_ID] = GetHintedRoomIndex,
|
||||
[BATTLE_PIKE_FUNC_GET_ROOM_TYPE_HINT] = GetRoomTypeHint,
|
||||
[BATTLE_PIKE_FUNC_CLEAR_TRAINER_IDS] = ClearPikeTrainerIds,
|
||||
[BATTLE_PIKE_FUNC_BUFFER_RECORD_MIX_MSG] = BufferRecordMixingTrainerMessage,
|
||||
[BATTLE_PIKE_FUNC_GET_QUEEN_FIGHT_TYPE] = GetCurrentRoomPikeQueenFightType,
|
||||
[BATTLE_PIKE_FUNC_HEAL_MONS_BEFORE_QUEEN] = HealSomeMonsBeforePikeQueen,
|
||||
[BATTLE_PIKE_FUNC_SET_HEALING_ROOMS_DISABLED] = SetHealingroomTypesDisabled,
|
||||
[BATTLE_PIKE_FUNC_IS_PARTY_FULL_HEALTH] = IsPartyFullHealed,
|
||||
[BATTLE_PIKE_FUNC_SAVE_MON_HELD_ITEMS] = BackupMonHeldItems,
|
||||
[BATTLE_PIKE_FUNC_LOAD_MON_HELD_ITEMS] = RestoreMonHeldItems,
|
||||
[BATTLE_PIKE_FUNC_INIT_CHALLENGE] = InitPikeChallenge
|
||||
[BATTLE_PIKE_FUNC_SET_ROOM_TYPE] = SetRoomType,
|
||||
[BATTLE_PIKE_FUNC_GET_DATA] = GetBattlePikeData,
|
||||
[BATTLE_PIKE_FUNC_SET_DATA] = SetBattlePikeData,
|
||||
[BATTLE_PIKE_FUNC_IS_FINAL_ROOM] = IsNextRoomFinal,
|
||||
[BATTLE_PIKE_FUNC_SET_ROOM_OBJECTS] = SetupRoomEventObjects,
|
||||
[BATTLE_PIKE_FUNC_GET_ROOM_TYPE] = GetRoomType,
|
||||
[BATTLE_PIKE_FUNC_SET_IN_WILD_MON_ROOM] = SetInWildMonRoom,
|
||||
[BATTLE_PIKE_FUNC_CLEAR_IN_WILD_MON_ROOM] = ClearInWildMonRoom,
|
||||
[BATTLE_PIKE_FUNC_SAVE] = SavePikeChallenge,
|
||||
[BATTLE_PIKE_FUNC_NULL_9] = nullsub_76,
|
||||
[BATTLE_PIKE_FUNC_NULL_10] = nullsub_124,
|
||||
[BATTLE_PIKE_FUNC_GET_ROOM_STATUS] = GetRoomInflictedStatus,
|
||||
[BATTLE_PIKE_FUNC_GET_ROOM_STATUS_MON] = GetRoomInflictedStatusMon,
|
||||
[BATTLE_PIKE_FUNC_HEAL_ONE_TWO_MONS] = HealOneOrTwoMons,
|
||||
[BATTLE_PIKE_FUNC_BUFFER_NPC_MSG] = BufferNPCMessage,
|
||||
[BATTLE_PIKE_FUNC_STATUS_SCREEN_FADE] = StatusInflictionScreenFade,
|
||||
[BATTLE_PIKE_FUNC_IS_IN] = GetInBattlePike,
|
||||
[BATTLE_PIKE_FUNC_SET_HINT_ROOM] = SetHintedRoom,
|
||||
[BATTLE_PIKE_FUNC_GET_HINT_ROOM_ID] = GetHintedRoomIndex,
|
||||
[BATTLE_PIKE_FUNC_GET_ROOM_TYPE_HINT] = GetRoomTypeHint,
|
||||
[BATTLE_PIKE_FUNC_CLEAR_TRAINER_IDS] = ClearPikeTrainerIds,
|
||||
[BATTLE_PIKE_FUNC_GET_TRAINER_INTRO] = BufferTrainerIntro,
|
||||
[BATTLE_PIKE_FUNC_GET_QUEEN_FIGHT_TYPE] = GetCurrentRoomPikeQueenFightType,
|
||||
[BATTLE_PIKE_FUNC_HEAL_MONS_BEFORE_QUEEN] = HealSomeMonsBeforePikeQueen,
|
||||
[BATTLE_PIKE_FUNC_SET_HEAL_ROOMS_DISABLED] = SetHealingroomTypesDisabled,
|
||||
[BATTLE_PIKE_FUNC_IS_PARTY_FULL_HEALTH] = IsPartyFullHealed,
|
||||
[BATTLE_PIKE_FUNC_SAVE_HELD_ITEMS] = SaveMonHeldItems,
|
||||
[BATTLE_PIKE_FUNC_RESET_HELD_ITEMS] = RestoreMonHeldItems,
|
||||
[BATTLE_PIKE_FUNC_INIT] = InitPikeChallenge
|
||||
};
|
||||
|
||||
static const u8 sRoomTypeHints[] = {
|
||||
@@ -623,19 +623,19 @@ static void GetBattlePikeData(void)
|
||||
|
||||
switch (gSpecialVar_0x8005)
|
||||
{
|
||||
case 0:
|
||||
case PIKE_DATA_PRIZE:
|
||||
gSpecialVar_Result = gSaveBlock2Ptr->frontier.pikePrize;
|
||||
break;
|
||||
case 1:
|
||||
case PIKE_DATA_WIN_STREAK:
|
||||
gSpecialVar_Result = gSaveBlock2Ptr->frontier.pikeWinStreaks[gSaveBlock2Ptr->frontier.lvlMode];
|
||||
break;
|
||||
case 2:
|
||||
case PIKE_DATA_RECORD_STREAK:
|
||||
gSpecialVar_Result = gSaveBlock2Ptr->frontier.pikeRecordStreaks[gSaveBlock2Ptr->frontier.lvlMode];
|
||||
break;
|
||||
case 3:
|
||||
case PIKE_DATA_TOTAL_STREAKS:
|
||||
gSpecialVar_Result = gSaveBlock2Ptr->frontier.pikeTotalStreaks[gSaveBlock2Ptr->frontier.lvlMode];
|
||||
break;
|
||||
case 4:
|
||||
case PIKE_DATA_WIN_STREAK_ACTIVE:
|
||||
if (lvlMode != FRONTIER_LVL_50)
|
||||
gSpecialVar_Result = gSaveBlock2Ptr->frontier.winStreakActiveFlags & STREAK_PIKE_OPEN;
|
||||
else
|
||||
@@ -650,22 +650,22 @@ static void SetBattlePikeData(void)
|
||||
|
||||
switch (gSpecialVar_0x8005)
|
||||
{
|
||||
case 0:
|
||||
case PIKE_DATA_PRIZE:
|
||||
gSaveBlock2Ptr->frontier.pikePrize = gSpecialVar_0x8006;
|
||||
break;
|
||||
case 1:
|
||||
case PIKE_DATA_WIN_STREAK:
|
||||
if (gSpecialVar_0x8006 <= MAX_STREAK)
|
||||
gSaveBlock2Ptr->frontier.pikeWinStreaks[gSaveBlock2Ptr->frontier.lvlMode] = gSpecialVar_0x8006;
|
||||
break;
|
||||
case 2:
|
||||
case PIKE_DATA_RECORD_STREAK:
|
||||
if (gSpecialVar_0x8006 <= MAX_STREAK && gSaveBlock2Ptr->frontier.pikeRecordStreaks[gSaveBlock2Ptr->frontier.lvlMode] < gSpecialVar_0x8006)
|
||||
gSaveBlock2Ptr->frontier.pikeRecordStreaks[gSaveBlock2Ptr->frontier.lvlMode] = gSpecialVar_0x8006;
|
||||
break;
|
||||
case 3:
|
||||
case PIKE_DATA_TOTAL_STREAKS:
|
||||
if (gSpecialVar_0x8006 <= MAX_STREAK)
|
||||
gSaveBlock2Ptr->frontier.pikeTotalStreaks[gSaveBlock2Ptr->frontier.lvlMode] = gSpecialVar_0x8006;
|
||||
break;
|
||||
case 4:
|
||||
case PIKE_DATA_WIN_STREAK_ACTIVE:
|
||||
if (lvlMode != FRONTIER_LVL_50)
|
||||
{
|
||||
if (gSpecialVar_0x8006)
|
||||
@@ -697,14 +697,14 @@ static void GetRoomType(void)
|
||||
gSpecialVar_Result = sRoomType;
|
||||
}
|
||||
|
||||
static void sub_81A7400(void)
|
||||
static void SetInWildMonRoom(void)
|
||||
{
|
||||
sUnknown_0300128E = TRUE;
|
||||
sInWildMonRoom = TRUE;
|
||||
}
|
||||
|
||||
static void sub_81A740C(void)
|
||||
static void ClearInWildMonRoom(void)
|
||||
{
|
||||
sUnknown_0300128E = FALSE;
|
||||
sInWildMonRoom = FALSE;
|
||||
}
|
||||
|
||||
static void SavePikeChallenge(void)
|
||||
@@ -731,19 +731,19 @@ static void GetRoomInflictedStatus(void)
|
||||
switch (sStatusFlags)
|
||||
{
|
||||
case STATUS1_FREEZE:
|
||||
gSpecialVar_Result = 0;
|
||||
gSpecialVar_Result = PIKE_STATUS_FREEZE;
|
||||
break;
|
||||
case STATUS1_BURN:
|
||||
gSpecialVar_Result = 1;
|
||||
gSpecialVar_Result = PIKE_STATUS_BURN;
|
||||
break;
|
||||
case STATUS1_TOXIC_POISON:
|
||||
gSpecialVar_Result = 2;
|
||||
gSpecialVar_Result = PIKE_STATUS_TOXIC;
|
||||
break;
|
||||
case STATUS1_PARALYSIS:
|
||||
gSpecialVar_Result = 3;
|
||||
gSpecialVar_Result = PIKE_STATUS_PARALYSIS;
|
||||
break;
|
||||
case STATUS1_SLEEP:
|
||||
gSpecialVar_Result = 4;
|
||||
gSpecialVar_Result = PIKE_STATUS_SLEEP;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -1100,9 +1100,9 @@ static u16 GetNPCRoomGraphicsId(void)
|
||||
}
|
||||
|
||||
// Unused
|
||||
static u8 sub_81A7B84(void)
|
||||
static u8 GetInWildMonRoom(void)
|
||||
{
|
||||
return sUnknown_0300128E;
|
||||
return sInWildMonRoom;
|
||||
}
|
||||
|
||||
bool32 TryGenerateBattlePikeWildMon(bool8 checkKeenEyeIntimidate)
|
||||
@@ -1335,10 +1335,10 @@ static void SetHintedRoom(void)
|
||||
u8 i, count, id;
|
||||
u8 *roomCandidates;
|
||||
|
||||
gSpecialVar_Result = 0;
|
||||
gSpecialVar_Result = FALSE;
|
||||
if (GetPikeQueenFightType(1))
|
||||
{
|
||||
gSpecialVar_Result = 1;
|
||||
gSpecialVar_Result = TRUE;
|
||||
gSaveBlock2Ptr->frontier.pikeHintedRoomIndex = Random() % 6;
|
||||
gSaveBlock2Ptr->frontier.pikeHintedRoomType = PIKE_ROOM_BRAIN;
|
||||
}
|
||||
@@ -1462,7 +1462,7 @@ static void ClearPikeTrainerIds(void)
|
||||
gSaveBlock2Ptr->frontier.trainerIds[i] = 0xFFFF;
|
||||
}
|
||||
|
||||
static void BufferRecordMixingTrainerMessage(void)
|
||||
static void BufferTrainerIntro(void)
|
||||
{
|
||||
if (gSpecialVar_0x8005 == 0)
|
||||
{
|
||||
@@ -1500,7 +1500,7 @@ static u8 GetPikeQueenFightType(u8 nextRoom)
|
||||
u8 numPikeSymbols;
|
||||
|
||||
u8 facility = FRONTIER_FACILITY_PIKE;
|
||||
u8 ret = 0;
|
||||
u8 ret = FRONTIER_BRAIN_NOT_READY;
|
||||
u8 lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
|
||||
u16 winStreak = gSaveBlock2Ptr->frontier.pikeWinStreaks[lvlMode];
|
||||
winStreak += nextRoom;
|
||||
@@ -1511,16 +1511,16 @@ static u8 GetPikeQueenFightType(u8 nextRoom)
|
||||
case 0:
|
||||
case 1:
|
||||
if (winStreak == sFrontierBrainStreakAppearances[facility][numPikeSymbols] - sFrontierBrainStreakAppearances[facility][3])
|
||||
ret = numPikeSymbols + 1;
|
||||
ret = numPikeSymbols + 1; // FRONTIER_BRAIN_SILVER and FRONTIER_BRAIN_GOLD
|
||||
break;
|
||||
case 2:
|
||||
default:
|
||||
if (winStreak == sFrontierBrainStreakAppearances[facility][0] - sFrontierBrainStreakAppearances[facility][3])
|
||||
ret = 3;
|
||||
ret = FRONTIER_BRAIN_STREAK;
|
||||
else if (winStreak == sFrontierBrainStreakAppearances[facility][1] - sFrontierBrainStreakAppearances[facility][3]
|
||||
|| (winStreak > sFrontierBrainStreakAppearances[facility][1]
|
||||
&& (winStreak - sFrontierBrainStreakAppearances[facility][1] + sFrontierBrainStreakAppearances[facility][3]) % sFrontierBrainStreakAppearances[facility][2] == 0))
|
||||
ret = 4;
|
||||
ret = FRONTIER_BRAIN_STREAK_LONG;
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -1584,7 +1584,7 @@ static void IsPartyFullHealed(void)
|
||||
}
|
||||
}
|
||||
|
||||
static void BackupMonHeldItems(void)
|
||||
static void SaveMonHeldItems(void)
|
||||
{
|
||||
u8 i;
|
||||
|
||||
|
||||
@@ -89,7 +89,7 @@ EWRAM_DATA static void(*gUnknown_0203A0F4)(u8 taskId) = NULL;
|
||||
|
||||
// .rodata
|
||||
|
||||
static const MainCallback gUnknown_085920D8[] =
|
||||
static const MainCallback sItemUseCallbacks[] =
|
||||
{
|
||||
CB2_ShowPartyMenuForItemUse,
|
||||
CB2_ReturnToField,
|
||||
@@ -115,12 +115,12 @@ void SetUpItemUseCallback(u8 taskId)
|
||||
type = ItemId_GetType(gSpecialVar_ItemId) - 1;
|
||||
if (!InBattlePyramid())
|
||||
{
|
||||
gBagMenu->mainCallback2 = gUnknown_085920D8[type];
|
||||
gBagMenu->mainCallback2 = sItemUseCallbacks[type];
|
||||
unknown_ItemMenu_Confirm(taskId);
|
||||
}
|
||||
else
|
||||
{
|
||||
gPyramidBagResources->callback2 = gUnknown_085920D8[type];
|
||||
gPyramidBagResources->callback2 = sItemUseCallbacks[type];
|
||||
sub_81C5B14(taskId);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user