summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/battle_ai_switch_items.c6
-rw-r--r--src/battle_arena.c2
-rw-r--r--src/battle_controller_link_opponent.c2
-rw-r--r--src/battle_controller_link_partner.c2
-rw-r--r--src/battle_controller_player.c2
-rw-r--r--src/battle_controllers.c4
-rw-r--r--src/battle_dome.c2
-rw-r--r--src/battle_factory.c2
-rw-r--r--src/battle_main.c12
-rw-r--r--src/battle_palace.c2
-rw-r--r--src/battle_pyramid_bag.c20
-rw-r--r--src/battle_tower.c780
-rw-r--r--src/berry_tag_screen.c2
-rw-r--r--src/bike.c2
-rw-r--r--src/data/battle_frontier/apprentice.h2
-rw-r--r--src/data/pokemon/item_effects.h2
-rw-r--r--src/decoration.c1
-rw-r--r--src/field_door.c14
-rw-r--r--src/field_specials.c42
-rw-r--r--src/fieldmap.c2
-rw-r--r--src/fldeff_dig.c2
-rw-r--r--src/frontier_pass.c2
-rw-r--r--src/frontier_util.c10
-rwxr-xr-xsrc/item_menu.c48
-rwxr-xr-xsrc/item_use.c490
-rw-r--r--src/overworld.c6
-rwxr-xr-xsrc/party_menu.c4
-rw-r--r--src/pokeblock.c2
-rw-r--r--src/pokemon.c26
-rw-r--r--src/region_map.c2
-rw-r--r--src/secret_base.c1
-rw-r--r--src/start_menu.c8
32 files changed, 647 insertions, 857 deletions
diff --git a/src/battle_ai_switch_items.c b/src/battle_ai_switch_items.c
index 6ef359150..32f9620b7 100644
--- a/src/battle_ai_switch_items.c
+++ b/src/battle_ai_switch_items.c
@@ -787,9 +787,9 @@ static u8 GetAI_ItemType(u8 itemId, const u8 *itemEffect) // NOTE: should take u
return AI_ITEM_HEAL_HP;
else if (itemEffect[3] & ITEM3_STATUS_ALL)
return AI_ITEM_CURE_CONDITION;
- else if (itemEffect[0] & (ITEM0_HIGH_CRIT | ITEM0_X_ATTACK) || itemEffect[1] != 0 || itemEffect[2] != 0)
+ else if (itemEffect[0] & (ITEM0_DIRE_HIT | ITEM0_X_ATTACK) || itemEffect[1] != 0 || itemEffect[2] != 0)
return AI_ITEM_X_STAT;
- else if (itemEffect[3] & ITEM3_MIST)
+ else if (itemEffect[3] & ITEM3_GUARD_SPEC)
return AI_ITEM_GUARD_SPECS;
else
return AI_ITEM_NOT_RECOGNIZABLE;
@@ -907,7 +907,7 @@ static bool8 ShouldUseItem(void)
*(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= 0x8;
if (itemEffects[2] & ITEM2_X_ACCURACY)
*(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= 0x20;
- if (itemEffects[0] & ITEM0_HIGH_CRIT)
+ if (itemEffects[0] & ITEM0_DIRE_HIT)
*(gBattleStruct->AI_itemFlags + gActiveBattler / 2) |= 0x80;
shouldUse = TRUE;
break;
diff --git a/src/battle_arena.c b/src/battle_arena.c
index 67f0cc90e..42a967fc6 100644
--- a/src/battle_arena.c
+++ b/src/battle_arena.c
@@ -791,7 +791,7 @@ static void InitArenaChallenge(void)
gSaveBlock2Ptr->frontier.challengeStatus = 0;
gSaveBlock2Ptr->frontier.curChallengeBattleNum = 0;
gSaveBlock2Ptr->frontier.challengePaused = FALSE;
- gSaveBlock2Ptr->frontier.field_CA9_b = 0;
+ gSaveBlock2Ptr->frontier.disableRecordBattle = FALSE;
if (lvlMode != FRONTIER_LVL_50)
isCurrent = gSaveBlock2Ptr->frontier.winStreakActiveFlags & STREAK_ARENA_OPEN;
else
diff --git a/src/battle_controller_link_opponent.c b/src/battle_controller_link_opponent.c
index e888531cb..6604fa142 100644
--- a/src/battle_controller_link_opponent.c
+++ b/src/battle_controller_link_opponent.c
@@ -1846,7 +1846,7 @@ static void LinkOpponentHandleCmd55(void)
else
gBattleOutcome = gBattleBufferA[gActiveBattler][1] ^ B_OUTCOME_DREW;
- gSaveBlock2Ptr->frontier.field_CA9_b = gBattleBufferA[gActiveBattler][2];
+ gSaveBlock2Ptr->frontier.disableRecordBattle = gBattleBufferA[gActiveBattler][2];
FadeOutMapMusic(5);
BeginFastPaletteFade(3);
LinkOpponentBufferExecCompleted();
diff --git a/src/battle_controller_link_partner.c b/src/battle_controller_link_partner.c
index 1382e3a8b..ece4c24bc 100644
--- a/src/battle_controller_link_partner.c
+++ b/src/battle_controller_link_partner.c
@@ -1676,7 +1676,7 @@ static void LinkPartnerHandleCmd55(void)
{
sub_81851A8(&gBattleBufferA[gActiveBattler][4]);
gBattleOutcome = gBattleBufferA[gActiveBattler][1];
- gSaveBlock2Ptr->frontier.field_CA9_b = gBattleBufferA[gActiveBattler][2];
+ gSaveBlock2Ptr->frontier.disableRecordBattle = gBattleBufferA[gActiveBattler][2];
FadeOutMapMusic(5);
BeginFastPaletteFade(3);
LinkPartnerBufferExecCompleted();
diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c
index 0bd1ea363..161df3b82 100644
--- a/src/battle_controller_player.c
+++ b/src/battle_controller_player.c
@@ -3093,7 +3093,7 @@ static void PlayerHandleCmd55(void)
{
sub_81851A8(&gBattleBufferA[gActiveBattler][4]);
gBattleOutcome = gBattleBufferA[gActiveBattler][1];
- gSaveBlock2Ptr->frontier.field_CA9_b = gBattleBufferA[gActiveBattler][2];
+ gSaveBlock2Ptr->frontier.disableRecordBattle = gBattleBufferA[gActiveBattler][2];
FadeOutMapMusic(5);
BeginFastPaletteFade(3);
PlayerBufferExecCompleted();
diff --git a/src/battle_controllers.c b/src/battle_controllers.c
index d0e76ab1b..b411c12f6 100644
--- a/src/battle_controllers.c
+++ b/src/battle_controllers.c
@@ -1509,8 +1509,8 @@ void BtlController_EmitCmd55(u8 bufferId, u8 battleOutcome)
{
sBattleBuffersTransferData[0] = CONTROLLER_55;
sBattleBuffersTransferData[1] = battleOutcome;
- sBattleBuffersTransferData[2] = gSaveBlock2Ptr->frontier.field_CA9_b;
- sBattleBuffersTransferData[3] = gSaveBlock2Ptr->frontier.field_CA9_b;
+ sBattleBuffersTransferData[2] = gSaveBlock2Ptr->frontier.disableRecordBattle;
+ sBattleBuffersTransferData[3] = gSaveBlock2Ptr->frontier.disableRecordBattle;
sBattleBuffersTransferData[5] = sBattleBuffersTransferData[4] = sub_81850DC(&sBattleBuffersTransferData[6]);
PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, sBattleBuffersTransferData[4] + 6);
}
diff --git a/src/battle_dome.c b/src/battle_dome.c
index 7ff83f328..897269a30 100644
--- a/src/battle_dome.c
+++ b/src/battle_dome.c
@@ -2259,7 +2259,7 @@ static void InitDomeChallenge(void)
gSaveBlock2Ptr->frontier.challengeStatus = 0;
gSaveBlock2Ptr->frontier.curChallengeBattleNum = 0;
gSaveBlock2Ptr->frontier.challengePaused = FALSE;
- gSaveBlock2Ptr->frontier.field_CA9_b = 0;
+ gSaveBlock2Ptr->frontier.disableRecordBattle = FALSE;
if (!(gSaveBlock2Ptr->frontier.winStreakActiveFlags & sWinStreakFlags[battleMode][lvlMode]))
gSaveBlock2Ptr->frontier.domeWinStreaks[battleMode][lvlMode] = 0;
diff --git a/src/battle_factory.c b/src/battle_factory.c
index b412af237..b7e43394e 100644
--- a/src/battle_factory.c
+++ b/src/battle_factory.c
@@ -193,7 +193,7 @@ static void InitFactoryChallenge(void)
gSaveBlock2Ptr->frontier.challengeStatus = 0;
gSaveBlock2Ptr->frontier.curChallengeBattleNum = 0;
gSaveBlock2Ptr->frontier.challengePaused = FALSE;
- gSaveBlock2Ptr->frontier.field_CA9_b = 0;
+ gSaveBlock2Ptr->frontier.disableRecordBattle = FALSE;
if (!(gSaveBlock2Ptr->frontier.winStreakActiveFlags & sWinStreakFlags[battleMode][lvlMode]))
{
gSaveBlock2Ptr->frontier.factoryWinStreaks[battleMode][lvlMode] = 0;
diff --git a/src/battle_main.c b/src/battle_main.c
index 196053ad2..bcef3b286 100644
--- a/src/battle_main.c
+++ b/src/battle_main.c
@@ -715,7 +715,7 @@ static void CB2_InitBattleInternal(void)
}
gMain.inBattle = TRUE;
- gSaveBlock2Ptr->frontier.field_CA9_b = 0;
+ gSaveBlock2Ptr->frontier.disableRecordBattle = FALSE;
for (i = 0; i < PARTY_SIZE; i++)
AdjustFriendship(&gPlayerParty[i], 3);
@@ -2315,7 +2315,7 @@ static void sub_8038F34(void)
for (i = 0; i < monsCount && (gLinkPlayers[i].version & 0xFF) == VERSION_EMERALD; i++);
- if (!gSaveBlock2Ptr->frontier.field_CA9_b && i == monsCount)
+ if (!gSaveBlock2Ptr->frontier.disableRecordBattle && i == monsCount)
{
if (FlagGet(FLAG_SYS_FRONTIER_PASS))
{
@@ -2594,7 +2594,7 @@ static void sub_803939C(void)
}
else
{
- BattleStringExpandPlaceholdersToDisplayedString(gText_BattleRecordCouldntBeSaved);
+ BattleStringExpandPlaceholdersToDisplayedString(BattleFrontier_BattleTowerBattleRoom_Text_RecordCouldntBeSaved);
BattlePutTextOnWindow(gDisplayedStringBattle, 0);
gBattleCommunication[1] = 0x80;
gBattleCommunication[MULTIUSE_STATE]++;
@@ -5070,7 +5070,7 @@ static void HandleEndTurn_BattleLost(void)
{
gBattlescriptCurrInstr = BattleScript_PrintPlayerForfeitedLinkBattle;
gBattleOutcome &= ~(B_OUTCOME_LINK_BATTLE_RAN);
- gSaveBlock2Ptr->frontier.field_CA9_b = 1;
+ gSaveBlock2Ptr->frontier.disableRecordBattle = TRUE;
}
else
{
@@ -5102,7 +5102,7 @@ static void HandleEndTurn_RanFromBattle(void)
{
gBattlescriptCurrInstr = BattleScript_PrintPlayerForfeited;
gBattleOutcome = B_OUTCOME_FORFEITED;
- gSaveBlock2Ptr->frontier.field_CA9_b = 1;
+ gSaveBlock2Ptr->frontier.disableRecordBattle = TRUE;
}
else if (gBattleTypeFlags & BATTLE_TYPE_TRAINER_HILL)
{
@@ -5721,7 +5721,7 @@ static void HandleAction_Run(void)
}
gBattleOutcome |= B_OUTCOME_LINK_BATTLE_RAN;
- gSaveBlock2Ptr->frontier.field_CA9_b = 1;
+ gSaveBlock2Ptr->frontier.disableRecordBattle = TRUE;
}
else
{
diff --git a/src/battle_palace.c b/src/battle_palace.c
index b5da77e35..56fd04c68 100644
--- a/src/battle_palace.c
+++ b/src/battle_palace.c
@@ -89,7 +89,7 @@ static void InitPalaceChallenge(void)
gSaveBlock2Ptr->frontier.challengeStatus = 0;
gSaveBlock2Ptr->frontier.curChallengeBattleNum = 0;
gSaveBlock2Ptr->frontier.challengePaused = FALSE;
- gSaveBlock2Ptr->frontier.field_CA9_b = 0;
+ gSaveBlock2Ptr->frontier.disableRecordBattle = FALSE;
if (!(gSaveBlock2Ptr->frontier.winStreakActiveFlags & sWinStreakFlags[battleMode][lvlMode]))
gSaveBlock2Ptr->frontier.palaceWinStreaks[battleMode][lvlMode] = 0;
diff --git a/src/battle_pyramid_bag.c b/src/battle_pyramid_bag.c
index bdd1b1462..7c650800b 100644
--- a/src/battle_pyramid_bag.c
+++ b/src/battle_pyramid_bag.c
@@ -67,7 +67,7 @@ static void sub_81C700C(void);
static void sub_81C6E98(void);
static void sub_81C6F20(void);
static void sub_81C6404(void);
-static void sub_81C6E1C(void);
+static void CloseBattlePyramidBagTextWindow(void);
static bool8 sub_81C5238(void);
static bool8 sub_81C5078(void);
static void ShowItemImage(u16 itemId, u8 itemSpriteArrayId);
@@ -809,7 +809,7 @@ static void sub_81C5AB8(u8 y, u8 arg1)
PrintOnWindow_Font1(0, gText_SelectorArrow2, 0, y, 0, 0, 0, arg1);
}
-void sub_81C5B14(u8 taskId)
+void CloseBattlePyramidBagAndSetCallback(u8 taskId)
{
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK);
gTasks[taskId].func = sub_81C5B4C;
@@ -862,7 +862,7 @@ static void Task_HandlePyramidBagInput(u8 taskId)
case LIST_CANCEL:
PlaySE(SE_SELECT);
gSpecialVar_ItemId = 0;
- sub_81C5B14(taskId);
+ CloseBattlePyramidBagAndSetCallback(taskId);
break;
default:
PlaySE(SE_SELECT);
@@ -1043,7 +1043,7 @@ static void BagAction_UseOnField(u8 taskId)
|| ItemIsMail(gSpecialVar_ItemId) == TRUE)
{
sub_81C61A8();
- DisplayItemMessageInBattlePyramid(taskId, gText_DadsAdvice, sub_81C6714);
+ DisplayItemMessageInBattlePyramid(taskId, gText_DadsAdvice, Task_CloseBattlePyramidBagMessage);
}
else if (ItemId_GetFieldFunc(gSpecialVar_ItemId) != NULL)
{
@@ -1203,7 +1203,7 @@ static void BagAction_Give(u8 taskId)
else if (!ItemId_GetImportance(gSpecialVar_ItemId))
{
gPyramidBagResources->callback2 = CB2_ChooseMonToGiveItem;
- sub_81C5B14(taskId);
+ CloseBattlePyramidBagAndSetCallback(taskId);
}
else
{
@@ -1223,15 +1223,15 @@ static void sub_81C66EC(u8 taskId)
if (gMain.newKeys & A_BUTTON)
{
PlaySE(SE_SELECT);
- sub_81C6714(taskId);
+ Task_CloseBattlePyramidBagMessage(taskId);
}
}
-void sub_81C6714(u8 taskId)
+void Task_CloseBattlePyramidBagMessage(u8 taskId)
{
s16 *data = gTasks[taskId].data;
- sub_81C6E1C();
+ CloseBattlePyramidBagTextWindow();
PrintItemDescription(data[1]);
sub_81C5A98(data[0], 0);
SetTaskToMainPyramidBagInputHandler(taskId);
@@ -1242,7 +1242,7 @@ static void sub_81C674C(u8 taskId)
if (!itemid_80BF6D8_mail_related(gSpecialVar_ItemId))
DisplayItemMessageInBattlePyramid(taskId, gText_CantWriteMail, sub_81C66EC);
else if (!ItemId_GetImportance(gSpecialVar_ItemId))
- sub_81C5B14(taskId);
+ CloseBattlePyramidBagAndSetCallback(taskId);
else
sub_81C66AC(taskId);
}
@@ -1462,7 +1462,7 @@ void DisplayItemMessageInBattlePyramid(u8 taskId, const u8 *str, void (*callback
schedule_bg_copy_tilemap_to_vram(1);
}
-static void sub_81C6E1C(void)
+static void CloseBattlePyramidBagTextWindow(void)
{
ClearDialogWindowAndFrameToTransparent(2, FALSE);
// This ClearWindowTilemap call is redundant, since ClearDialogWindowAndFrameToTransparent already calls it.
diff --git a/src/battle_tower.c b/src/battle_tower.c
index 20c10bc15..8d0a32d16 100644
--- a/src/battle_tower.c
+++ b/src/battle_tower.c
@@ -23,6 +23,7 @@
#include "field_message_box.h"
#include "tv.h"
#include "battle_factory.h"
+#include "constants/apprentice.h"
#include "constants/battle_frontier.h"
#include "constants/battle_tower.h"
#include "constants/frontier_util.h"
@@ -55,11 +56,11 @@ static void SaveTowerChallenge(void);
static void GetOpponentIntroSpeech(void);
static void nullsub_61(void);
static void nullsub_116(void);
-static void sub_81642A0(void);
-static void sub_8164828(void);
-static void sub_8164B74(void);
+static void LoadMultiPartnerCandidatesData(void);
+static void ShowPartnerCandidateMessage(void);
+static void LoadLinkMultiOpponentsData(void);
static void sub_8164DCC(void);
-static void sub_8164DE4(void);
+static void SetMultiPartnerGfx(void);
static void SetTowerInterviewData(void);
static void ValidateBattleTowerRecordChecksums(void);
static void SaveCurrentWinStreak(void);
@@ -344,676 +345,419 @@ static const u8 sRubyFacilityClassToEmerald[RS_FACILITY_CLASSES_COUNT - 2][2] =
{RS_FACILITY_CLASS_SIS_AND_BRO, FACILITY_CLASS_SIS_AND_BRO},
};
-static const u8 *const gUnknown_085DCFD8[] =
+#define PARTNER_TEXTS(name) \
+ BattleFrontier_BattleTowerMultiPartnerRoom_Text_##name##Intro, \
+ BattleFrontier_BattleTowerMultiPartnerRoom_Text_##name##Mon1, \
+ BattleFrontier_BattleTowerMultiPartnerRoom_Text_##name##Mon2Ask, \
+ BattleFrontier_BattleTowerMultiPartnerRoom_Text_##name##Accept, \
+ BattleFrontier_BattleTowerMultiPartnerRoom_Text_##name##Reject
+
+static const u8 *const sPartnerApprenticeTexts1[] =
{
- BattleFrontier_BattleTowerMultiBattleRoom_Text_244383,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_2443E7,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_244413,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_24444B,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_2444D6
+ PARTNER_TEXTS(Apprentice1)
};
-static const u8 *const gUnknown_085DCFEC[] =
+static const u8 *const sPartnerApprenticeTexts2[] =
{
- BattleFrontier_BattleTowerMultiBattleRoom_Text_2444EF,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_24451E,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_244549,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_24459B,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_2445C5
+ PARTNER_TEXTS(Apprentice2)
};
-static const u8 *const gUnknown_085DD000[] =
+static const u8 *const sPartnerApprenticeTexts3[] =
{
- BattleFrontier_BattleTowerMultiBattleRoom_Text_2445E8,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_244618,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_244643,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_24468F,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_2446B4
+ PARTNER_TEXTS(Apprentice3)
};
-static const u8 *const gUnknown_085DD014[] =
+static const u8 *const sPartnerApprenticeTexts4[] =
{
- BattleFrontier_BattleTowerMultiBattleRoom_Text_2446E5,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_24474D,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_24479E,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_24480C,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_2448A7
+ PARTNER_TEXTS(Apprentice4)
};
-static const u8 *const gUnknown_085DD028[] =
+static const u8 *const sPartnerApprenticeTexts5[] =
{
- BattleFrontier_BattleTowerMultiBattleRoom_Text_2448CD,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_2448F5,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_244939,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_244989,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_2449E6
+ PARTNER_TEXTS(Apprentice5)
};
-static const u8 *const gUnknown_085DD03C[] =
+static const u8 *const sPartnerApprenticeTexts6[] =
{
- BattleFrontier_BattleTowerMultiBattleRoom_Text_244A23,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_244AA9,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_244AD6,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_244B52,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_244B93
+ PARTNER_TEXTS(Apprentice6)
};
-static const u8 *const gUnknown_085DD050[] =
+static const u8 *const sPartnerApprenticeTexts7[] =
{
- BattleFrontier_BattleTowerMultiBattleRoom_Text_244BD2,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_244C18,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_244C6E,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_244CD6,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_244D07
+ PARTNER_TEXTS(Apprentice7)
};
-static const u8 *const gUnknown_085DD064[] =
+static const u8 *const sPartnerApprenticeTexts8[] =
{
- BattleFrontier_BattleTowerMultiBattleRoom_Text_244D36,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_244D82,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_244DC6,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_244DFE,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_244E5B
+ PARTNER_TEXTS(Apprentice8)
};
-static const u8 *const gUnknown_085DD078[] =
+static const u8 *const sPartnerApprenticeTexts9[] =
{
- BattleFrontier_BattleTowerMultiBattleRoom_Text_244E7E,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_244ECA,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_244EF4,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_244F4F,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_244F98
+ PARTNER_TEXTS(Apprentice9)
};
-static const u8 *const gUnknown_085DD08C[] =
+static const u8 *const sPartnerApprenticeTexts10[] =
{
- BattleFrontier_BattleTowerMultiBattleRoom_Text_244FD3,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_245013,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_24503D,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_245087,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_2450C0
+ PARTNER_TEXTS(Apprentice10)
};
-static const u8 *const gUnknown_085DD0A0[] =
+static const u8 *const sPartnerApprenticeTexts11[] =
{
- BattleFrontier_BattleTowerMultiBattleRoom_Text_2450E6,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_245196,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_2451BD,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_24522F,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_24529A
+ PARTNER_TEXTS(Apprentice11)
};
-static const u8 *const gUnknown_085DD0B4[] =
+static const u8 *const sPartnerApprenticeTexts12[] =
{
- BattleFrontier_BattleTowerMultiBattleRoom_Text_2452EF,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_2453B4,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_245406,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_245464,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_2454A3
+ PARTNER_TEXTS(Apprentice12)
};
-static const u8 *const gUnknown_085DD0C8[] =
+static const u8 *const sPartnerApprenticeTexts13[] =
{
- BattleFrontier_BattleTowerMultiBattleRoom_Text_2454D6,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_245535,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_24555F,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_2455EC,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_245656
+ PARTNER_TEXTS(Apprentice13)
};
-static const u8 *const gUnknown_085DD0DC[] =
+static const u8 *const sPartnerApprenticeTexts14[] =
{
- BattleFrontier_BattleTowerMultiBattleRoom_Text_24568A,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_2456F5,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_245740,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_2457D9,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_24581F
+ PARTNER_TEXTS(Apprentice14)
};
-static const u8 *const gUnknown_085DD0F0[] =
+static const u8 *const sPartnerApprenticeTexts15[] =
{
- BattleFrontier_BattleTowerMultiBattleRoom_Text_245851,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_24589C,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_2458CE,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_245923,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_24597F
+ PARTNER_TEXTS(Apprentice15)
};
-static const u8 *const gUnknown_085DD104[] =
+static const u8 *const sPartnerApprenticeTexts16[] =
{
- BattleFrontier_BattleTowerMultiBattleRoom_Text_2459BE,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_2459F7,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_245A5F,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_245AB4,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_245B3E
+ PARTNER_TEXTS(Apprentice16)
};
-static const u8 *const gUnknown_085DD118[] =
+static const u8 *const sPartnerTextsLass[] =
{
- BattleFrontier_BattleTowerMultiBattleRoom_Text_245B79,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_245B91,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_245BBD,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_245C05,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_245C2D
+ PARTNER_TEXTS(Lass)
};
-static const u8 *const gUnknown_085DD12C[] =
+static const u8 *const sPartnerTextsYoungster[] =
{
- BattleFrontier_BattleTowerMultiBattleRoom_Text_245C66,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_245C7F,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_245CAC,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_245CE6,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_245D07
+ PARTNER_TEXTS(Youngster)
};
-static const u8 *const gUnknown_085DD140[] =
+static const u8 *const sPartnerTextsHiker[] =
{
- BattleFrontier_BattleTowerMultiBattleRoom_Text_245D4B,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_245D60,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_245D8D,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_245DC7,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_245DF0
+ PARTNER_TEXTS(Hiker)
};
-static const u8 *const gUnknown_085DD154[] =
+static const u8 *const sPartnerTextsBeauty[] =
{
- BattleFrontier_BattleTowerMultiBattleRoom_Text_245E20,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_245E41,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_245E78,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_245EBD,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_245EEC
+ PARTNER_TEXTS(Beauty)
};
-static const u8 *const gUnknown_085DD168[] =
+static const u8 *const sPartnerTextsFisherman[] =
{
- BattleFrontier_BattleTowerMultiBattleRoom_Text_245F2B,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_245F58,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_245F87,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_245FC6,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_246002
+ PARTNER_TEXTS(Fisherman)
};
-static const u8 *const gUnknown_085DD17C[] =
+static const u8 *const sPartnerTextsLady[] =
{
- BattleFrontier_BattleTowerMultiBattleRoom_Text_246020,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_246051,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_246082,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_2460D5,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_24610D
+ PARTNER_TEXTS(Lady)
};
-static const u8 *const gUnknown_085DD190[] =
+static const u8 *const sPartnerTextsCyclingTriathleteF[] =
{
- BattleFrontier_BattleTowerMultiBattleRoom_Text_24614A,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_24615D,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_24617D,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_2461C7,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_2461F5
+ PARTNER_TEXTS(CyclingTriathleteF)
};
-static const u8 *const gUnknown_085DD1A4[] =
+static const u8 *const sPartnerTextsBugCatcher[] =
{
- BattleFrontier_BattleTowerMultiBattleRoom_Text_24622A,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_246244,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_24626E,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_2462AA,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_2462E4
+ PARTNER_TEXTS(BugCatcher)
};
-static const u8 *const gUnknown_085DD1B8[] =
+static const u8 *const sPartnerTextsSchoolKidM[] =
{
- BattleFrontier_BattleTowerMultiBattleRoom_Text_24631F,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_24633C,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_24636B,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_2463C5,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_2463FF
+ PARTNER_TEXTS(SchoolKidM)
};
-static const u8 *const gUnknown_085DD1CC[] =
+static const u8 *const sPartnerTextsRichBoy[] =
{
- BattleFrontier_BattleTowerMultiBattleRoom_Text_246449,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_246478,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_24649D,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_2464EE,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_246529
+ PARTNER_TEXTS(RichBoy)
};
-static const u8 *const gUnknown_085DD1E0[] =
+static const u8 *const sPartnerTextsBlackBelt[] =
{
- BattleFrontier_BattleTowerMultiBattleRoom_Text_246571,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_24658C,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_2465B5,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_246605,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_24662A
+ PARTNER_TEXTS(BlackBelt)
};
-static const u8 *const gUnknown_085DD1F4[] =
+static const u8 *const sPartnerTextsTuberF[] =
{
- BattleFrontier_BattleTowerMultiBattleRoom_Text_246662,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_246686,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_2466B4,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_2466E6,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_24670A
+ PARTNER_TEXTS(TuberF)
};
-static const u8 *const gUnknown_085DD208[] =
+static const u8 *const sPartnerTextsHexManiac[] =
{
- BattleFrontier_BattleTowerMultiBattleRoom_Text_246741,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_246760,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_246791,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_2467C4,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_2467E6
+ PARTNER_TEXTS(HexManiac)
};
-static const u8 *const gUnknown_085DD21C[] =
+static const u8 *const sPartnerTextsPkmnBreederM[] =
{
- BattleFrontier_BattleTowerMultiBattleRoom_Text_2467FF,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_246831,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_246864,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_2468A7,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_2468FE
+ PARTNER_TEXTS(PkmnBreederM)
};
-static const u8 *const gUnknown_085DD230[] =
+static const u8 *const sPartnerTextsRunningTriathleteF[] =
{
- BattleFrontier_BattleTowerMultiBattleRoom_Text_24692B,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_24694B,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_24697C,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_2469B4,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_2469F1
+ PARTNER_TEXTS(RunningTriathleteF)
};
-static const u8 *const gUnknown_085DD244[] =
+static const u8 *const sPartnerTextsRunningTriathleteM[] =
{
- BattleFrontier_BattleTowerMultiBattleRoom_Text_246A22,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_246A4E,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_246A85,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_246ACF,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_246AF7
+ PARTNER_TEXTS(RunningTriathleteM)
};
-static const u8 *const gUnknown_085DD258[] =
+static const u8 *const sPartnerTextsBattleGirl[] =
{
- BattleFrontier_BattleTowerMultiBattleRoom_Text_246B2B,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_246B3F,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_246B6B,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_246BB2,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_246BE9
+ PARTNER_TEXTS(BattleGirl)
};
-static const u8 *const gUnknown_085DD26C[] =
+static const u8 *const sPartnerTextsCyclingTriathleteM[] =
{
- BattleFrontier_BattleTowerMultiBattleRoom_Text_246C22,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_246C35,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_246C6C,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_246CB3,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_246CE9
+ PARTNER_TEXTS(CyclingTriathleteM)
};
-static const u8 *const gUnknown_085DD280[] =
+static const u8 *const sPartnerTextsTuberM[] =
{
- BattleFrontier_BattleTowerMultiBattleRoom_Text_246D2D,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_246D3F,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_246D6A,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_246D9E,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_246DD3
+ PARTNER_TEXTS(TuberM)
};
-static const u8 *const gUnknown_085DD294[] =
+static const u8 *const sPartnerTextsGuitarist[] =
{
- BattleFrontier_BattleTowerMultiBattleRoom_Text_246E1A,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_246E39,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_246E64,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_246EB6,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_246EEE
+ PARTNER_TEXTS(Guitarist)
};
-static const u8 *const gUnknown_085DD2A8[] =
+static const u8 *const sPartnerTextsGentleman[] =
{
- BattleFrontier_BattleTowerMultiBattleRoom_Text_246F21,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_246F4C,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_246F7B,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_246FCC,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_247013
+ PARTNER_TEXTS(Gentleman)
};
-static const u8 *const gUnknown_085DD2BC[] =
+static const u8 *const sPartnerTextsPokefanM[] =
{
- BattleFrontier_BattleTowerMultiBattleRoom_Text_24705B,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_24707D,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_2470B2,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_2470FD,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_24712A
+ PARTNER_TEXTS(PokefanM)
};
-static const u8 *const gUnknown_085DD2D0[] =
+static const u8 *const sPartnerTextsExpertM[] =
{
- BattleFrontier_BattleTowerMultiBattleRoom_Text_24716C,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_24718D,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_2471C7,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_2471FB,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_247238
+ PARTNER_TEXTS(ExpertM)
};
-static const u8 *const gUnknown_085DD2E4[] =
+static const u8 *const sPartnerTextsExpertF[] =
{
- BattleFrontier_BattleTowerMultiBattleRoom_Text_247268,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_247291,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_2472C7,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_247313,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_247348
+ PARTNER_TEXTS(ExpertF)
};
-static const u8 *const gUnknown_085DD2F8[] =
+static const u8 *const sPartnerTextsDragonTamer[] =
{
- BattleFrontier_BattleTowerMultiBattleRoom_Text_24737A,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_24738F,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_2473C6,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_2473FB,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_247438
+ PARTNER_TEXTS(DragonTamer)
};
-static const u8 *const gUnknown_085DD30C[] =
+static const u8 *const sPartnerTextsBirdKeeper[] =
{
- BattleFrontier_BattleTowerMultiBattleRoom_Text_247470,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_247484,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_2474AF,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_2474EC,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_24751D
+ PARTNER_TEXTS(BirdKeeper)
};
-static const u8 *const gUnknown_085DD320[] =
+static const u8 *const sPartnerTextsNinjaBoy[] =
{
- BattleFrontier_BattleTowerMultiBattleRoom_Text_24754A,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_24755C,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_24758B,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_2475BC,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_2475D5
+ PARTNER_TEXTS(NinjaBoy)
};
-static const u8 *const gUnknown_085DD334[] =
+static const u8 *const sPartnerTextsParasolLady[] =
{
- BattleFrontier_BattleTowerMultiBattleRoom_Text_24760D,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_247629,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_247655,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_24769B,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_2476ED
+ PARTNER_TEXTS(ParasolLady)
};
-static const u8 *const gUnknown_085DD348[] =
+static const u8 *const sPartnerTextsBugManiac[] =
{
- BattleFrontier_BattleTowerMultiBattleRoom_Text_247724,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_247749,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_24777A,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_2477CE,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_247807
+ PARTNER_TEXTS(BugManiac)
};
-static const u8 *const gUnknown_085DD35C[] =
+static const u8 *const sPartnerTextsSailor[] =
{
- BattleFrontier_BattleTowerMultiBattleRoom_Text_247838,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_247854,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_247889,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_2478DD,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_24790D
+ PARTNER_TEXTS(Sailor)
};
-static const u8 *const gUnknown_085DD370[] =
+static const u8 *const sPartnerTextsCollector[] =
{
- BattleFrontier_BattleTowerMultiBattleRoom_Text_247942,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_24795F,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_247991,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_2479CE,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_247A18
+ PARTNER_TEXTS(Collector)
};
-static const u8 *const gUnknown_085DD384[] =
+static const u8 *const sPartnerTextsPkmnRangerM[] =
{
- BattleFrontier_BattleTowerMultiBattleRoom_Text_247A51,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_247A76,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_247AA1,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_247AE3,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_247B16
+ PARTNER_TEXTS(PkmnRangerM)
};
-static const u8 *const gUnknown_085DD398[] =
+static const u8 *const sPartnerTextsPkmnRangerF[] =
{
- BattleFrontier_BattleTowerMultiBattleRoom_Text_247B3E,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_247B62,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_247B9B,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_247BE7,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_247C23
+ PARTNER_TEXTS(PkmnRangerF)
};
-static const u8 *const gUnknown_085DD3AC[] =
+static const u8 *const sPartnerTextsAromaLady[] =
{
- BattleFrontier_BattleTowerMultiBattleRoom_Text_247C4E,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_247C8C,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_247CB2,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_247D07,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_247D4E
+ PARTNER_TEXTS(AromaLady)
};
-static const u8 *const gUnknown_085DD3C0[] =
+static const u8 *const sPartnerTextsRuinManiac[] =
{
- BattleFrontier_BattleTowerMultiBattleRoom_Text_247D97,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_247DC7,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_247DFE,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_247E3E,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_247E7E
+ PARTNER_TEXTS(RuinManiac)
};
-static const u8 *const gUnknown_085DD3D4[] =
+static const u8 *const sPartnerTextsCoolTrainerM[] =
{
- BattleFrontier_BattleTowerMultiBattleRoom_Text_247EA1,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_247EB5,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_247EE9,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_247F3F,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_247F6D
+ PARTNER_TEXTS(CoolTrainerM)
};
-static const u8 *const gUnknown_085DD3E8[] =
+static const u8 *const sPartnerTextsCoolTrainerF[] =
{
- BattleFrontier_BattleTowerMultiBattleRoom_Text_247FA3,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_247FB7,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_247FE9,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_248031,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_24805E
+ PARTNER_TEXTS(CoolTrainerF)
};
-static const u8 *const gUnknown_085DD3FC[] =
+static const u8 *const sPartnerTextsPokemaniac[] =
{
- BattleFrontier_BattleTowerMultiBattleRoom_Text_24808D,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_2480AB,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_2480DC,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_248128,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_248151
+ PARTNER_TEXTS(Pokemaniac)
};
-static const u8 *const gUnknown_085DD410[] =
+static const u8 *const sPartnerTextsKindler[] =
{
- BattleFrontier_BattleTowerMultiBattleRoom_Text_24818E,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_2481A9,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_2481E1,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_248221,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_24824F
+ PARTNER_TEXTS(Kindler)
};
-static const u8 *const gUnknown_085DD424[] =
+static const u8 *const sPartnerTextsCamper[] =
{
- BattleFrontier_BattleTowerMultiBattleRoom_Text_248297,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_2482B1,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_2482DC,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_248321,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_24833D
+ PARTNER_TEXTS(Camper)
};
-static const u8 *const gUnknown_085DD438[] =
+static const u8 *const sPartnerTextsPicnicker[] =
{
- BattleFrontier_BattleTowerMultiBattleRoom_Text_248369,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_24838D,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_2483C1,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_248401,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_248431
+ PARTNER_TEXTS(Picnicker)
};
-static const u8 *const gUnknown_085DD44C[] =
+static const u8 *const sPartnerTextsPsychicM[] =
{
- BattleFrontier_BattleTowerMultiBattleRoom_Text_248467,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_248477,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_2484AC,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_2484E7,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_248517
+ PARTNER_TEXTS(PsychicM)
};
-static const u8 *const gUnknown_085DD460[] =
+static const u8 *const sPartnerTextsPsychicF[] =
{
- BattleFrontier_BattleTowerMultiBattleRoom_Text_248553,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_24856A,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_24857D,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_2485E5,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_248614
+ PARTNER_TEXTS(PsychicF)
};
-static const u8 *const gUnknown_085DD474[] =
+static const u8 *const sPartnerTextsSchoolKidF[] =
{
- BattleFrontier_BattleTowerMultiBattleRoom_Text_24864E,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_248661,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_248671,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_2486C6,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_2486FF
+ PARTNER_TEXTS(SchoolKidF)
};
-static const u8 *const gUnknown_085DD488[] =
+static const u8 *const sPartnerTextsPkmnBreederF[] =
{
- BattleFrontier_BattleTowerMultiBattleRoom_Text_248725,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_248751,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_248781,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_2487C9,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_2487F7
+ PARTNER_TEXTS(PkmnBreederF)
};
-static const u8 *const gUnknown_085DD49C[] =
+static const u8 *const sPartnerTextsPokefanF[] =
{
- BattleFrontier_BattleTowerMultiBattleRoom_Text_248829,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_24885B,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_248892,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_2488D8,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_248908
+ PARTNER_TEXTS(PokefanF)
};
-static const u8 *const gUnknown_085DD4B0[] =
+static const u8 *const sPartnerTextsSwimmerF[] =
{
- BattleFrontier_BattleTowerMultiBattleRoom_Text_24894B,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_24895F,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_24896F,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_2489BD,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_2489E7
+ PARTNER_TEXTS(SwimmerF)
};
-static const u8 *const gUnknown_085DD4C4[] =
+static const u8 *const sPartnerTextsSwimmingTriathleteM[] =
{
- BattleFrontier_BattleTowerMultiBattleRoom_Text_248A10,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_248A40,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_248A72,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_248AC0,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_248AEB
+ PARTNER_TEXTS(SwimmingTriathleteM)
};
-static const u8 *const gUnknown_085DD4D8[] =
+static const u8 *const sPartnerTextsSwimmingTriathleteF[] =
{
- BattleFrontier_BattleTowerMultiBattleRoom_Text_248B22,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_248B39,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_248B4C,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_248BB4,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_248BEE
+ PARTNER_TEXTS(SwimmingTriathleteF)
};
-static const u8 *const gUnknown_085DD4EC[] =
+static const u8 *const sPartnerTextsSwimmerM[] =
{
- BattleFrontier_BattleTowerMultiBattleRoom_Text_248C2E,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_248C5B,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_248C90,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_248CCF,
- BattleFrontier_BattleTowerMultiBattleRoom_Text_248D04
+ PARTNER_TEXTS(SwimmerM)
};
struct
{
u32 facilityClass;
const u8 *const *strings;
-} const gUnknown_085DD500[] =
-{
- {FACILITY_CLASS_LASS, gUnknown_085DD118},
- {FACILITY_CLASS_YOUNGSTER, gUnknown_085DD12C},
- {FACILITY_CLASS_HIKER, gUnknown_085DD140},
- {FACILITY_CLASS_BEAUTY, gUnknown_085DD154},
- {FACILITY_CLASS_FISHERMAN, gUnknown_085DD168},
- {FACILITY_CLASS_LADY, gUnknown_085DD17C},
- {FACILITY_CLASS_CYCLING_TRIATHLETE_F, gUnknown_085DD190},
- {FACILITY_CLASS_BUG_CATCHER, gUnknown_085DD1A4},
- {FACILITY_CLASS_SCHOOL_KID_M, gUnknown_085DD1B8},
- {FACILITY_CLASS_RICH_BOY, gUnknown_085DD1CC},
- {FACILITY_CLASS_BLACK_BELT, gUnknown_085DD1E0},
- {FACILITY_CLASS_TUBER_F, gUnknown_085DD1F4},
- {FACILITY_CLASS_HEX_MANIAC, gUnknown_085DD208},
- {FACILITY_CLASS_PKMN_BREEDER_M, gUnknown_085DD21C},
- {FACILITY_CLASS_RUNNING_TRIATHLETE_F, gUnknown_085DD230},
- {FACILITY_CLASS_RUNNING_TRIATHLETE_M, gUnknown_085DD244},
- {FACILITY_CLASS_BATTLE_GIRL, gUnknown_085DD258},
- {FACILITY_CLASS_CYCLING_TRIATHLETE_M, gUnknown_085DD26C},
- {FACILITY_CLASS_TUBER_M, gUnknown_085DD280},
- {FACILITY_CLASS_GUITARIST, gUnknown_085DD294},
- {FACILITY_CLASS_GENTLEMAN, gUnknown_085DD2A8},
- {FACILITY_CLASS_POKEFAN_M, gUnknown_085DD2BC},
- {FACILITY_CLASS_EXPERT_M, gUnknown_085DD2D0},
- {FACILITY_CLASS_EXPERT_F, gUnknown_085DD2E4},
- {FACILITY_CLASS_DRAGON_TAMER, gUnknown_085DD2F8},
- {FACILITY_CLASS_BIRD_KEEPER, gUnknown_085DD30C},
- {FACILITY_CLASS_NINJA_BOY, gUnknown_085DD320},
- {FACILITY_CLASS_PARASOL_LADY, gUnknown_085DD334},
- {FACILITY_CLASS_BUG_MANIAC, gUnknown_085DD348},
- {FACILITY_CLASS_SAILOR, gUnknown_085DD35C},
- {FACILITY_CLASS_COLLECTOR, gUnknown_085DD370},
- {FACILITY_CLASS_PKMN_RANGER_M, gUnknown_085DD384},
- {FACILITY_CLASS_PKMN_RANGER_F, gUnknown_085DD398},
- {FACILITY_CLASS_AROMA_LADY, gUnknown_085DD3AC},
- {FACILITY_CLASS_RUIN_MANIAC, gUnknown_085DD3C0},
- {FACILITY_CLASS_COOLTRAINER_M, gUnknown_085DD3D4},
- {FACILITY_CLASS_COOLTRAINER_F, gUnknown_085DD3E8},
- {FACILITY_CLASS_POKEMANIAC, gUnknown_085DD3FC},
- {FACILITY_CLASS_KINDLER, gUnknown_085DD410},
- {FACILITY_CLASS_CAMPER, gUnknown_085DD424},
- {FACILITY_CLASS_PICNICKER, gUnknown_085DD438},
- {FACILITY_CLASS_PSYCHIC_M, gUnknown_085DD44C},
- {FACILITY_CLASS_PSYCHIC_F, gUnknown_085DD460},
- {FACILITY_CLASS_SCHOOL_KID_F, gUnknown_085DD474},
- {FACILITY_CLASS_PKMN_BREEDER_F, gUnknown_085DD488},
- {FACILITY_CLASS_POKEFAN_F, gUnknown_085DD49C},
- {FACILITY_CLASS_SWIMMER_F, gUnknown_085DD4B0},
- {FACILITY_CLASS_SWIMMING_TRIATHLETE_M, gUnknown_085DD4C4},
- {FACILITY_CLASS_SWIMMING_TRIATHLETE_F, gUnknown_085DD4D8},
- {FACILITY_CLASS_SWIMMER_M, gUnknown_085DD4EC}
-};
-
-static const u8 *const *const gUnknown_085DD690[] =
-{
- gUnknown_085DCFD8,
- gUnknown_085DCFEC,
- gUnknown_085DD000,
- gUnknown_085DD014,
- gUnknown_085DD028,
- gUnknown_085DD03C,
- gUnknown_085DD050,
- gUnknown_085DD064,
- gUnknown_085DD078,
- gUnknown_085DD08C,
- gUnknown_085DD0A0,
- gUnknown_085DD0B4,
- gUnknown_085DD0C8,
- gUnknown_085DD0DC,
- gUnknown_085DD0F0,
- gUnknown_085DD104
+} const sPartnerTrainerTextTables[] =
+{
+ {FACILITY_CLASS_LASS, sPartnerTextsLass},
+ {FACILITY_CLASS_YOUNGSTER, sPartnerTextsYoungster},
+ {FACILITY_CLASS_HIKER, sPartnerTextsHiker},
+ {FACILITY_CLASS_BEAUTY, sPartnerTextsBeauty},
+ {FACILITY_CLASS_FISHERMAN, sPartnerTextsFisherman},
+ {FACILITY_CLASS_LADY, sPartnerTextsLady},
+ {FACILITY_CLASS_CYCLING_TRIATHLETE_F, sPartnerTextsCyclingTriathleteF},
+ {FACILITY_CLASS_BUG_CATCHER, sPartnerTextsBugCatcher},
+ {FACILITY_CLASS_SCHOOL_KID_M, sPartnerTextsSchoolKidM},
+ {FACILITY_CLASS_RICH_BOY, sPartnerTextsRichBoy},
+ {FACILITY_CLASS_BLACK_BELT, sPartnerTextsBlackBelt},
+ {FACILITY_CLASS_TUBER_F, sPartnerTextsTuberF},
+ {FACILITY_CLASS_HEX_MANIAC, sPartnerTextsHexManiac},
+ {FACILITY_CLASS_PKMN_BREEDER_M, sPartnerTextsPkmnBreederM},
+ {FACILITY_CLASS_RUNNING_TRIATHLETE_F, sPartnerTextsRunningTriathleteF},
+ {FACILITY_CLASS_RUNNING_TRIATHLETE_M, sPartnerTextsRunningTriathleteM},
+ {FACILITY_CLASS_BATTLE_GIRL, sPartnerTextsBattleGirl},
+ {FACILITY_CLASS_CYCLING_TRIATHLETE_M, sPartnerTextsCyclingTriathleteM},
+ {FACILITY_CLASS_TUBER_M, sPartnerTextsTuberM},
+ {FACILITY_CLASS_GUITARIST, sPartnerTextsGuitarist},
+ {FACILITY_CLASS_GENTLEMAN, sPartnerTextsGentleman},
+ {FACILITY_CLASS_POKEFAN_M, sPartnerTextsPokefanM},
+ {FACILITY_CLASS_EXPERT_M, sPartnerTextsExpertM},
+ {FACILITY_CLASS_EXPERT_F, sPartnerTextsExpertF},
+ {FACILITY_CLASS_DRAGON_TAMER, sPartnerTextsDragonTamer},
+ {FACILITY_CLASS_BIRD_KEEPER, sPartnerTextsBirdKeeper},
+ {FACILITY_CLASS_NINJA_BOY, sPartnerTextsNinjaBoy},
+ {FACILITY_CLASS_PARASOL_LADY, sPartnerTextsParasolLady},
+ {FACILITY_CLASS_BUG_MANIAC, sPartnerTextsBugManiac},
+ {FACILITY_CLASS_SAILOR, sPartnerTextsSailor},
+ {FACILITY_CLASS_COLLECTOR, sPartnerTextsCollector},
+ {FACILITY_CLASS_PKMN_RANGER_M, sPartnerTextsPkmnRangerM},
+ {FACILITY_CLASS_PKMN_RANGER_F, sPartnerTextsPkmnRangerF},
+ {FACILITY_CLASS_AROMA_LADY, sPartnerTextsAromaLady},
+ {FACILITY_CLASS_RUIN_MANIAC, sPartnerTextsRuinManiac},
+ {FACILITY_CLASS_COOLTRAINER_M, sPartnerTextsCoolTrainerM},
+ {FACILITY_CLASS_COOLTRAINER_F, sPartnerTextsCoolTrainerF},
+ {FACILITY_CLASS_POKEMANIAC, sPartnerTextsPokemaniac},
+ {FACILITY_CLASS_KINDLER, sPartnerTextsKindler},
+ {FACILITY_CLASS_CAMPER, sPartnerTextsCamper},
+ {FACILITY_CLASS_PICNICKER, sPartnerTextsPicnicker},
+ {FACILITY_CLASS_PSYCHIC_M, sPartnerTextsPsychicM},
+ {FACILITY_CLASS_PSYCHIC_F, sPartnerTextsPsychicF},
+ {FACILITY_CLASS_SCHOOL_KID_F, sPartnerTextsSchoolKidF},
+ {FACILITY_CLASS_PKMN_BREEDER_F, sPartnerTextsPkmnBreederF},
+ {FACILITY_CLASS_POKEFAN_F, sPartnerTextsPokefanF},
+ {FACILITY_CLASS_SWIMMER_F, sPartnerTextsSwimmerF},
+ {FACILITY_CLASS_SWIMMING_TRIATHLETE_M, sPartnerTextsSwimmingTriathleteM},
+ {FACILITY_CLASS_SWIMMING_TRIATHLETE_F, sPartnerTextsSwimmingTriathleteF},
+ {FACILITY_CLASS_SWIMMER_M, sPartnerTextsSwimmerM}
+};
+
+static const u8 *const *const sPartnerApprenticeTextTables[NUM_APPRENTICES] =
+{
+ sPartnerApprenticeTexts1,
+ sPartnerApprenticeTexts2,
+ sPartnerApprenticeTexts3,
+ sPartnerApprenticeTexts4,
+ sPartnerApprenticeTexts5,
+ sPartnerApprenticeTexts6,
+ sPartnerApprenticeTexts7,
+ sPartnerApprenticeTexts8,
+ sPartnerApprenticeTexts9,
+ sPartnerApprenticeTexts10,
+ sPartnerApprenticeTexts11,
+ sPartnerApprenticeTexts12,
+ sPartnerApprenticeTexts13,
+ sPartnerApprenticeTexts14,
+ sPartnerApprenticeTexts15,
+ sPartnerApprenticeTexts16
};
struct
@@ -1022,9 +766,9 @@ struct
u8 fixedIV;
u8 level;
u8 nature;
- u8 evs[6];
+ u8 evs[NUM_STATS];
u16 moves[MAX_MON_MOVES];
-} const sStevenMons[3] =
+} const sStevenMons[MULTI_PARTY_SIZE] =
{
{
.species = SPECIES_METANG,
@@ -1056,22 +800,22 @@ struct
static void (* const sBattleTowerFuncs[])(void) =
{
- [BATTLE_TOWER_FUNC_INIT] = InitTowerChallenge,
- [BATTLE_TOWER_FUNC_GET_DATA] = GetTowerData,
- [BATTLE_TOWER_FUNC_SET_DATA] = SetTowerData,
- [BATTLE_TOWER_FUNC_SET_OPPONENT] = SetNextFacilityOpponent,
- [BATTLE_TOWER_FUNC_SET_BATTLE_WON] = SetTowerBattleWon,
- [BATTLE_TOWER_FUNC_GIVE_RIBBONS] = AwardBattleTowerRibbons,
- [BATTLE_TOWER_FUNC_SAVE] = SaveTowerChallenge,
- [BATTLE_TOWER_FUNC_GET_OPPONENT_INTRO] = GetOpponentIntroSpeech,
- [BATTLE_TOWER_FUNC_NOP] = nullsub_61,
- [BATTLE_TOWER_FUNC_NOP2] = nullsub_116,
- [BATTLE_TOWER_FUNC_10] = sub_81642A0,
- [BATTLE_TOWER_FUNC_11] = sub_8164828,
- [BATTLE_TOWER_FUNC_12] = sub_8164B74,
- [BATTLE_TOWER_FUNC_13] = sub_8164DCC,
- [BATTLE_TOWER_FUNC_14] = sub_8164DE4,
- [BATTLE_TOWER_FUNC_SET_INTERVIEW_DATA] = SetTowerInterviewData,
+ [BATTLE_TOWER_FUNC_INIT] = InitTowerChallenge,
+ [BATTLE_TOWER_FUNC_GET_DATA] = GetTowerData,
+ [BATTLE_TOWER_FUNC_SET_DATA] = SetTowerData,
+ [BATTLE_TOWER_FUNC_SET_OPPONENT] = SetNextFacilityOpponent,
+ [BATTLE_TOWER_FUNC_SET_BATTLE_WON] = SetTowerBattleWon,
+ [BATTLE_TOWER_FUNC_GIVE_RIBBONS] = AwardBattleTowerRibbons,
+ [BATTLE_TOWER_FUNC_SAVE] = SaveTowerChallenge,
+ [BATTLE_TOWER_FUNC_GET_OPPONENT_INTRO] = GetOpponentIntroSpeech,
+ [BATTLE_TOWER_FUNC_NOP] = nullsub_61,
+ [BATTLE_TOWER_FUNC_NOP2] = nullsub_116,
+ [BATTLE_TOWER_FUNC_LOAD_PARTNERS] = LoadMultiPartnerCandidatesData,
+ [BATTLE_TOWER_FUNC_PARTNER_MSG] = ShowPartnerCandidateMessage,
+ [BATTLE_TOWER_FUNC_LOAD_LINK_OPPONENTS] = LoadLinkMultiOpponentsData,
+ [BATTLE_TOWER_FUNC_13] = sub_8164DCC,
+ [BATTLE_TOWER_FUNC_SET_PARTNER_GFX] = SetMultiPartnerGfx,
+ [BATTLE_TOWER_FUNC_SET_INTERVIEW_DATA] = SetTowerInterviewData,
};
static const u32 sWinStreakFlags[][2] =
@@ -1090,9 +834,10 @@ static const u32 sWinStreakMasks[][2] =
{~(STREAK_TOWER_LINK_MULTIS_50), ~(STREAK_TOWER_LINK_MULTIS_OPEN)},
};
-static const u8 gUnknown_085DF9EC[] =
+// The challenge number at which an Apprentice can appear, depending on how many of their questions were answered
+static const u8 sApprenticeChallengeThreshold[MAX_APPRENTICE_QUESTIONS] =
{
- 0x01, 0x02, 0x03, 0x04, 0x05, 0x08, 0x09, 0x0a, 0x0b, 0x0c
+ 1, 2, 3, 4, 5, 8, 9, 10, 11, 12
};
// Unclear why this was duplicated
@@ -1162,7 +907,7 @@ static void InitTowerChallenge(void)
gSaveBlock2Ptr->frontier.challengeStatus = CHALLENGE_STATUS_SAVING;
gSaveBlock2Ptr->frontier.curChallengeBattleNum = 0;
gSaveBlock2Ptr->frontier.challengePaused = FALSE;
- gSaveBlock2Ptr->frontier.field_CA9_b = 0;
+ gSaveBlock2Ptr->frontier.disableRecordBattle = FALSE;
ResetFrontierTrainerIds();
if (!(gSaveBlock2Ptr->frontier.winStreakActiveFlags & sWinStreakFlags[battleMode][lvlMode]))
gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode] = 0;
@@ -1279,7 +1024,7 @@ static bool8 ChooseSpecialBattleTowerTrainer(void)
for (i = 0; i < APPRENTICE_COUNT; i++)
{
if (gSaveBlock2Ptr->apprentices[i].lvlMode != 0
- && gUnknown_085DF9EC[gSaveBlock2Ptr->apprentices[i].numQuestions] == winStreak
+ && sApprenticeChallengeThreshold[gSaveBlock2Ptr->apprentices[i].numQuestions] == winStreak
&& gSaveBlock2Ptr->apprentices[i].lvlMode - 1 == lvlMode)
{
trainerIds[idsCount] = i + TRAINER_RECORD_MIXING_APPRENTICE;
@@ -2448,7 +2193,7 @@ static void nullsub_116(void)
}
-static void sub_81640E0(u16 trainerId)
+static void GetApprenticeMultiPartnerParty(u16 trainerId)
{
s32 i, count;
u32 validSpecies[3];
@@ -2473,7 +2218,7 @@ static void sub_81640E0(u16 trainerId)
} while (gUnknown_03006298[0] == gUnknown_03006298[1]);
}
-static void sub_8164188(u16 trainerId)
+static void GetRecordMixFriendMultiPartnerParty(u16 trainerId)
{
s32 i, count;
u32 validSpecies[3];
@@ -2501,7 +2246,7 @@ static void sub_8164188(u16 trainerId)
} while (gUnknown_03006298[2] == gUnknown_03006298[3]);
}
-static void sub_81642A0(void)
+static void LoadMultiPartnerCandidatesData(void)
{
s32 i, j, k;
u32 spArray[5];
@@ -2576,7 +2321,7 @@ static void sub_81642A0(void)
for (i = 0; i < APPRENTICE_COUNT; i++)
{
if (gSaveBlock2Ptr->apprentices[i].lvlMode != 0
- && gUnknown_085DF9EC[gSaveBlock2Ptr->apprentices[i].numQuestions] / 7 <= challengeNum
+ && sApprenticeChallengeThreshold[gSaveBlock2Ptr->apprentices[i].numQuestions] / 7 <= challengeNum
&& gSaveBlock2Ptr->apprentices[i].lvlMode - 1 == lvlMode)
{
k = 0;
@@ -2600,7 +2345,7 @@ static void sub_81642A0(void)
gSaveBlock2Ptr->frontier.trainerIds[6] = spArray[Random() % r10];
objEventTemplates[7].graphicsId = GetBattleFacilityTrainerGfxId(gSaveBlock2Ptr->frontier.trainerIds[6]);
FlagClear(FLAG_HIDE_BATTLE_TOWER_MULTI_BATTLE_PARTNER_ALT_1);
- sub_81640E0(gSaveBlock2Ptr->frontier.trainerIds[6]);
+ GetApprenticeMultiPartnerParty(gSaveBlock2Ptr->frontier.trainerIds[6]);
}
r10 = 0;
@@ -2643,7 +2388,7 @@ static void sub_81642A0(void)
gSaveBlock2Ptr->frontier.trainerIds[7] = spArray[Random() % r10];
objEventTemplates[8].graphicsId = GetBattleFacilityTrainerGfxId(gSaveBlock2Ptr->frontier.trainerIds[7]);
FlagClear(FLAG_HIDE_BATTLE_TOWER_MULTI_BATTLE_PARTNER_ALT_2);
- sub_8164188(gSaveBlock2Ptr->frontier.trainerIds[7]);
+ GetRecordMixFriendMultiPartnerParty(gSaveBlock2Ptr->frontier.trainerIds[7]);
}
}
@@ -2682,9 +2427,9 @@ static void sub_81646BC(u16 trainerId, u16 monSetId)
StringCopy(gStringVar2, gSpeciesNames[species]);
}
-static void sub_8164828(void)
+static void ShowPartnerCandidateMessage(void)
{
- s32 i, j, arrId;
+ s32 i, j, partnerId;
s32 monSetId;
s32 level = SetFacilityPtrsGetLevel();
u16 winStreak = GetCurrentFacilityWinStreak();
@@ -2692,15 +2437,15 @@ static void sub_8164828(void)
s32 k = gSpecialVar_LastTalked - 2;
s32 trainerId = gSaveBlock2Ptr->frontier.trainerIds[k];
- for (arrId = 0; arrId < ARRAY_COUNT(gUnknown_085DD500); arrId++)
+ for (partnerId = 0; partnerId < ARRAY_COUNT(sPartnerTrainerTextTables); partnerId++)
{
- if (gUnknown_085DD500[arrId].facilityClass == GetFrontierTrainerFacilityClass(trainerId))
+ if (sPartnerTrainerTextTables[partnerId].facilityClass == GetFrontierTrainerFacilityClass(trainerId))
break;
}
switch (gSpecialVar_0x8005)
{
- case 0:
+ case PARTNER_MSGID_INTRO:
if (trainerId == TRAINER_EREADER)
return;
if (trainerId < TRAINER_RECORD_MIXING_FRIEND)
@@ -2722,15 +2467,15 @@ static void sub_8164828(void)
GetFrontierTrainerName(gStringVar3, trainerId);
}
break;
- case 1:
+ case PARTNER_MSGID_MON1:
monSetId = gSaveBlock2Ptr->frontier.trainerIds[8 + k * 2];
sub_81646BC(trainerId, monSetId);
break;
- case 2:
+ case PARTNER_MSGID_MON2_ASK:
monSetId = gSaveBlock2Ptr->frontier.trainerIds[9 + k * 2];
sub_81646BC(trainerId, monSetId);
break;
- case 3:
+ case PARTNER_MSGID_ACCEPT:
gPartnerTrainerId = trainerId;
if (trainerId < TRAINER_RECORD_MIXING_FRIEND)
{
@@ -2767,29 +2512,31 @@ static void sub_8164828(void)
}
gSaveBlock2Ptr->frontier.trainerIds[17] = trainerId;
break;
- case 4:
+ case PARTNER_MSGID_REJECT:
break;
}
if (trainerId == TRAINER_EREADER)
return;
+ // First check is redundant, only needs to make sure it's not an Apprentice
if (trainerId < TRAINER_RECORD_MIXING_FRIEND)
{
- ShowFieldMessage(gUnknown_085DD500[arrId].strings[gSpecialVar_0x8005]);
+ ShowFieldMessage(sPartnerTrainerTextTables[partnerId].strings[gSpecialVar_0x8005]);
}
else if (trainerId < TRAINER_RECORD_MIXING_APPRENTICE)
{
- ShowFieldMessage(gUnknown_085DD500[arrId].strings[gSpecialVar_0x8005]);
+ ShowFieldMessage(sPartnerTrainerTextTables[partnerId].strings[gSpecialVar_0x8005]);
}
+ // Trainer is a former/record-mixed Apprentice, do Apprentice message
else
{
- u8 id = gSaveBlock2Ptr->apprentices[trainerId - TRAINER_RECORD_MIXING_APPRENTICE].id;
- ShowFieldMessage(gUnknown_085DD690[id][gSpecialVar_0x8005]);
+ u8 apprenticeId = gSaveBlock2Ptr->apprentices[trainerId - TRAINER_RECORD_MIXING_APPRENTICE].id;
+ ShowFieldMessage(sPartnerApprenticeTextTables[apprenticeId][gSpecialVar_0x8005]);
}
}
-static void sub_8164B74(void)
+static void LoadLinkMultiOpponentsData(void)
{
s32 challengeNum;
s32 i, j;
@@ -2884,9 +2631,10 @@ static void sub_8164DCC(void)
sub_800AC34();
}
-static void sub_8164DE4(void)
+static void SetMultiPartnerGfx(void)
{
- SetBattleFacilityTrainerGfxId(gSaveBlock2Ptr->frontier.trainerIds[17], 0xF);
+ // 0xF below means use VAR_OBJ_GFX_ID_E
+ SetBattleFacilityTrainerGfxId(gSaveBlock2Ptr->frontier.trainerIds[17], 0xF);
}
static void SetTowerInterviewData(void)
diff --git a/src/berry_tag_screen.c b/src/berry_tag_screen.c
index 873d01dc7..89175c1bf 100644
--- a/src/berry_tag_screen.c
+++ b/src/berry_tag_screen.c
@@ -527,7 +527,7 @@ static void Task_CloseBerryTagScreen(u8 taskId)
DestroyFlavorCircleSprites();
Free(sBerryTag);
FreeAllWindowBuffers();
- SetMainCallback2(bag_menu_mail_related);
+ SetMainCallback2(CB2_ReturnToBagMenuPocket);
DestroyTask(taskId);
}
}
diff --git a/src/bike.c b/src/bike.c
index b265a31bb..15857778c 100644
--- a/src/bike.c
+++ b/src/bike.c
@@ -1056,7 +1056,7 @@ void Bike_HandleBumpySlopeJump(void)
bool32 IsRunningDisallowed(u8 metatile)
{
- if (!(gMapHeader.flags & 4) || IsRunningDisallowedByMetatile(metatile) == TRUE)
+ if (!(gMapHeader.flags & MAP_ALLOW_RUN) || IsRunningDisallowedByMetatile(metatile) == TRUE)
return TRUE;
else
return FALSE;
diff --git a/src/data/battle_frontier/apprentice.h b/src/data/battle_frontier/apprentice.h
index 0fdb87f96..349dc9619 100644
--- a/src/data/battle_frontier/apprentice.h
+++ b/src/data/battle_frontier/apprentice.h
@@ -934,7 +934,7 @@ static const bool8 sValidApprenticeMoves[MOVES_COUNT] =
// WHICH_MOVE has max 5 occurrences, defined as NUM_WHICH_MOVE_QUESTIONS
// WHICH_FIRST has max 1 occurrence, lead mon should only be chosen once
// WHICH_SPEECH has max 1 occurrence, as the apprentice leaves after its asked
-static const u8 sQuestionPossibilities[] =
+static const u8 sQuestionPossibilities[MAX_APPRENTICE_QUESTIONS] =
{
QUESTION_ID_WHAT_ITEM,
QUESTION_ID_WHAT_ITEM,
diff --git a/src/data/pokemon/item_effects.h b/src/data/pokemon/item_effects.h
index 2c153b0ef..698d97a43 100644
--- a/src/data/pokemon/item_effects.h
+++ b/src/data/pokemon/item_effects.h
@@ -236,7 +236,7 @@ const u8 gItemEffect_PPMax[9] = {
};
const u8 gItemEffect_GuardSpec[8] = {
- [3] = ITEM3_MIST,
+ [3] = ITEM3_GUARD_SPEC,
[5] = ITEM5_FRIENDSHIP_LOW | ITEM5_FRIENDSHIP_MID,
[6] = 1,
[7] = 1,
diff --git a/src/decoration.c b/src/decoration.c
index 8c14be8e1..da7e169cb 100644
--- a/src/decoration.c
+++ b/src/decoration.c
@@ -14,6 +14,7 @@
#include "graphics.h"
#include "international_string_util.h"
#include "item_icon.h"
+#include "item_menu.h"
#include "list_menu.h"
#include "main.h"
#include "menu.h"
diff --git a/src/field_door.c b/src/field_door.c
index c197aca14..8fb5cb948 100644
--- a/src/field_door.c
+++ b/src/field_door.c
@@ -9,7 +9,7 @@
#include "constants/maps.h"
#include "constants/songs.h"
-bool8 sub_808A964(void);
+static bool8 ShouldUseMultiCorridorDoor(void);
const u8 DoorAnimTiles_04[][0x100] =
{
@@ -698,14 +698,14 @@ static void DrawDoor(const struct DoorGraphics *gfx, const struct DoorAnimFrame
if (frame->offset == 0xFFFF)
{
DrawClosedDoorTiles(gfx, x, y);
- if (sub_808A964())
+ if (ShouldUseMultiCorridorDoor())
DrawClosedDoorTiles(gfx, gSpecialVar_0x8004 + 7, gSpecialVar_0x8005 + 7);
}
else
{
CopyDoorTilesToVram(gfx, frame);
DrawCurrentDoorAnimFrame(gfx, x, y, gfx->palette);
- if (sub_808A964())
+ if (ShouldUseMultiCorridorDoor())
DrawCurrentDoorAnimFrame(gfx, gSpecialVar_0x8004 + 7, gSpecialVar_0x8005 + 7, gfx->palette);
}
}
@@ -885,11 +885,13 @@ u32 GetDoorSoundEffect(u32 x, u32 y)
return SE_DOOR;
}
-bool8 sub_808A964(void)
+// Opens the Battle Tower multi partner's door in sync with the player's door
+static bool8 ShouldUseMultiCorridorDoor(void)
{
- if (FlagGet(FLAG_SPECIAL_FLAG_0x4002))
+ if (FlagGet(FLAG_ENABLE_MULTI_CORRIDOR_DOOR))
{
- if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(BATTLE_FRONTIER_BATTLE_TOWER_CORRIDOR2) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(BATTLE_FRONTIER_BATTLE_TOWER_CORRIDOR2))
+ if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(BATTLE_FRONTIER_BATTLE_TOWER_MULTI_CORRIDOR)
+ && gSaveBlock1Ptr->location.mapNum == MAP_NUM(BATTLE_FRONTIER_BATTLE_TOWER_MULTI_CORRIDOR))
{
return TRUE;
}
diff --git a/src/field_specials.c b/src/field_specials.c
index 0e7637e6d..3101f0b2a 100644
--- a/src/field_specials.c
+++ b/src/field_specials.c
@@ -46,6 +46,7 @@
#include "wallclock.h"
#include "window.h"
#include "constants/battle_frontier.h"
+#include "constants/battle_tower.h"
#include "constants/decorations.h"
#include "constants/event_objects.h"
#include "constants/event_object_movement.h"
@@ -83,7 +84,7 @@ static EWRAM_DATA u8 sScrollableMultichoice_ItemSpriteId = 0;
static EWRAM_DATA u8 sBattlePointsWindowId = 0;
static EWRAM_DATA u8 sFrontierExchangeCorner_ItemIconWindowId = 0;
static EWRAM_DATA u8 sPCBoxToSendMon = 0;
-static EWRAM_DATA u32 sUnknown_0203AB70 = 0;
+static EWRAM_DATA u32 sBattleTowerMultiBattleTypeFlags = 0;
struct ListMenuTemplate gScrollableMultichoice_ListMenuTemplate;
@@ -128,7 +129,7 @@ static void ShowFrontierExchangeCornerItemIcon(u16 item);
static void Task_DeoxysRockInteraction(u8 taskId);
static void ChangeDeoxysRockLevel(u8 a0);
static void WaitForDeoxysRockMovement(u8 taskId);
-static void sub_813B57C(u8 taskId);
+static void Task_LinkRetireStatusWithBattleTowerPartner(u8 taskId);
static void Task_LoopWingFlapSE(u8 taskId);
static void Task_CloseBattlePikeCurtain(u8 taskId);
static u8 DidPlayerGetFirstFans(void);
@@ -1701,10 +1702,10 @@ bool8 IsBadEggInParty(void)
return FALSE;
}
-bool8 InMultiBattleRoom(void)
+bool8 InMultiPartnerRoom(void)
{
- if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(BATTLE_FRONTIER_BATTLE_TOWER_MULTI_BATTLE_ROOM)
- && gSaveBlock1Ptr->location.mapNum == MAP_NUM(BATTLE_FRONTIER_BATTLE_TOWER_MULTI_BATTLE_ROOM) &&
+ if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(BATTLE_FRONTIER_BATTLE_TOWER_MULTI_PARTNER_ROOM)
+ && gSaveBlock1Ptr->location.mapNum == MAP_NUM(BATTLE_FRONTIER_BATTLE_TOWER_MULTI_PARTNER_ROOM) &&
VarGet(VAR_FRONTIER_BATTLE_MODE) == FRONTIER_MODE_MULTIS)
return TRUE;
return FALSE;
@@ -3746,7 +3747,7 @@ bool32 ShouldDistributeEonTicket(void)
void sub_813B534(void)
{
- sUnknown_0203AB70 = gBattleTypeFlags;
+ sBattleTowerMultiBattleTypeFlags = gBattleTypeFlags;
gBattleTypeFlags = 0;
if (!gReceivedRemoteLinkPlayers)
{
@@ -3754,12 +3755,12 @@ void sub_813B534(void)
}
}
-void sub_813B568(void)
+void LinkRetireStatusWithBattleTowerPartner(void)
{
- CreateTask(sub_813B57C, 5);
+ CreateTask(Task_LinkRetireStatusWithBattleTowerPartner, 5);
}
-static void sub_813B57C(u8 taskId)
+static void Task_LinkRetireStatusWithBattleTowerPartner(u8 taskId)
{
switch (gTasks[taskId].data[0])
{
@@ -3790,21 +3791,24 @@ static void sub_813B57C(u8 taskId)
{
gSpecialVar_0x8005 = gBlockRecvBuffer[1][0];
ResetBlockReceivedFlag(1);
- if (gSpecialVar_0x8004 == 1 && gSpecialVar_0x8005 == 1)
+ if (gSpecialVar_0x8004 == BATTLE_TOWER_LINK_RETIRE
+ && gSpecialVar_0x8005 == BATTLE_TOWER_LINK_RETIRE)
{
- gSpecialVar_Result = 1;
+ gSpecialVar_Result = BATTLE_TOWER_LINKSTAT_BOTH_RETIRE;
}
- else if (gSpecialVar_0x8004 == 0 && gSpecialVar_0x8005 == 1)
+ else if (gSpecialVar_0x8004 == BATTLE_TOWER_LINK_CONTINUE
+ && gSpecialVar_0x8005 == BATTLE_TOWER_LINK_RETIRE)
{
- gSpecialVar_Result = 2;
+ gSpecialVar_Result = BATTLE_TOWER_LINKSTAT_PARTNER_RETIRE;
}
- else if (gSpecialVar_0x8004 == 1 && gSpecialVar_0x8005 == 0)
+ else if (gSpecialVar_0x8004 == BATTLE_TOWER_LINK_RETIRE
+ && gSpecialVar_0x8005 == BATTLE_TOWER_LINK_CONTINUE)
{
- gSpecialVar_Result = 3;
+ gSpecialVar_Result = BATTLE_TOWER_LINKSTAT_PLAYER_RETIRE;
}
else
{
- gSpecialVar_Result = 0;
+ gSpecialVar_Result = BATTLE_TOWER_LINKSTAT_CONTINUE;
}
}
gTasks[taskId].data[0]++;
@@ -3842,14 +3846,14 @@ static void sub_813B57C(u8 taskId)
case 5:
if (GetMultiplayerId() == 0)
{
- if (gSpecialVar_Result == 2)
+ if (gSpecialVar_Result == BATTLE_TOWER_LINKSTAT_PARTNER_RETIRE)
{
ShowFieldAutoScrollMessage(gText_YourPartnerHasRetired);
}
}
else
{
- if (gSpecialVar_Result == 3)
+ if (gSpecialVar_Result == BATTLE_TOWER_LINKSTAT_PLAYER_RETIRE)
{
ShowFieldAutoScrollMessage(gText_YourPartnerHasRetired);
}
@@ -3880,7 +3884,7 @@ static void sub_813B57C(u8 taskId)
{
sub_800AC34();
}
- gBattleTypeFlags = sUnknown_0203AB70;
+ gBattleTypeFlags = sBattleTowerMultiBattleTypeFlags;
EnableBothScriptContexts();
DestroyTask(taskId);
break;
diff --git a/src/fieldmap.c b/src/fieldmap.c
index f595803ff..21bbaa8f8 100644
--- a/src/fieldmap.c
+++ b/src/fieldmap.c
@@ -859,7 +859,7 @@ int sub_8088A4C(struct MapConnection *connection, int x, int y)
return FALSE;
}
-struct MapConnection *sub_8088A8C(s16 x, s16 y)
+struct MapConnection *GetConnectionAtCoords(s16 x, s16 y)
{
int count;
struct MapConnection *connection;
diff --git a/src/fldeff_dig.c b/src/fldeff_dig.c
index b39d25182..7f10e126e 100644
--- a/src/fldeff_dig.c
+++ b/src/fldeff_dig.c
@@ -57,7 +57,7 @@ static void sub_8135780(void)
}
else
{
- taskId = CreateTask(task08_080A1C44, 8);
+ taskId = CreateTask(Task_UseDigEscapeRopeOnField, 8);
gTasks[taskId].data[0] = 0;
}
}
diff --git a/src/frontier_pass.c b/src/frontier_pass.c
index 79c1ce6f4..42a518ed6 100644
--- a/src/frontier_pass.c
+++ b/src/frontier_pass.c
@@ -1531,7 +1531,7 @@ static void Task_HandleFrontierMap(u8 taskId)
static u8 MapNumToFrontierFacilityId(u16 mapNum) // id + 1, zero means not a frontier map number
{
if ((mapNum >= MAP_NUM(BATTLE_FRONTIER_BATTLE_TOWER_LOBBY) && mapNum <= MAP_NUM(BATTLE_FRONTIER_BATTLE_TOWER_BATTLE_ROOM))
- || (mapNum >= MAP_NUM(BATTLE_FRONTIER_BATTLE_TOWER_MULTI_BATTLE_ROOM) && mapNum <= MAP_NUM(BATTLE_FRONTIER_BATTLE_TOWER_BATTLE_ROOM2)))
+ || (mapNum >= MAP_NUM(BATTLE_FRONTIER_BATTLE_TOWER_MULTI_PARTNER_ROOM) && mapNum <= MAP_NUM(BATTLE_FRONTIER_BATTLE_TOWER_MULTI_BATTLE_ROOM)))
return FRONTIER_FACILITY_TOWER + 1;
else if (mapNum == MAP_NUM(BATTLE_FRONTIER_BATTLE_DOME_LOBBY)
|| mapNum == MAP_NUM(BATTLE_FRONTIER_BATTLE_DOME_CORRIDOR)
diff --git a/src/frontier_util.c b/src/frontier_util.c
index 4f7ab1ba6..c77a2a838 100644
--- a/src/frontier_util.c
+++ b/src/frontier_util.c
@@ -840,8 +840,8 @@ static void GetFrontierData(void)
gSpecialVar_Result = gBattleOutcome;
gBattleOutcome = 0;
break;
- case FRONTIER_DATA_6:
- gSpecialVar_Result = gSaveBlock2Ptr->frontier.field_CA9_b;
+ case FRONTIER_DATA_RECORD_DISABLED:
+ gSpecialVar_Result = gSaveBlock2Ptr->frontier.disableRecordBattle;
break;
case FRONTIER_DATA_HEARD_BRAIN_SPEECH:
gSpecialVar_Result = gSaveBlock2Ptr->frontier.battledBrainFlags & sBattledBrainBitFlags[facility][hasSymbol];
@@ -875,8 +875,8 @@ static void SetFrontierData(void)
for (i = 0; i < MAX_FRONTIER_PARTY_SIZE; i++)
gSaveBlock2Ptr->frontier.selectedPartyMons[i] = gSelectedOrderFromParty[i];
break;
- case FRONTIER_DATA_6:
- gSaveBlock2Ptr->frontier.field_CA9_b = gSpecialVar_0x8006;
+ case FRONTIER_DATA_RECORD_DISABLED:
+ gSaveBlock2Ptr->frontier.disableRecordBattle = gSpecialVar_0x8006;
break;
case FRONTIER_DATA_HEARD_BRAIN_SPEECH:
gSaveBlock2Ptr->frontier.battledBrainFlags |= sBattledBrainBitFlags[facility][hasSymbol];
@@ -2173,7 +2173,7 @@ static void RestoreHeldItems(void)
static void SaveRecordBattle(void)
{
gSpecialVar_Result = MoveRecordedBattleToSaveData();
- gSaveBlock2Ptr->frontier.field_CA9_b = 1;
+ gSaveBlock2Ptr->frontier.disableRecordBattle = TRUE;
}
static void BufferFrontierTrainerName(void)
diff --git a/src/item_menu.c b/src/item_menu.c
index 55222a206..6d86d67bd 100755
--- a/src/item_menu.c
+++ b/src/item_menu.c
@@ -136,7 +136,7 @@ void ItemMenu_Give(u8 taskId);
void ItemMenu_Cancel(u8 taskId);
void ItemMenu_UseInBattle(u8 taskId);
void ItemMenu_CheckTag(u8 taskId);
-void unknown_ItemMenu_Confirm(u8 taskId);
+void Task_FadeAndCloseBagMenu(u8 taskId);
void unknown_ItemMenu_Show(u8 taskId);
void unknown_ItemMenu_Give2(u8 taskId);
void unknown_ItemMenu_Confirm2(u8 taskId);
@@ -216,7 +216,7 @@ const struct MenuAction sItemMenuActions[] = {
{gMenuText_Walk, ItemMenu_UseOutOfBattle},
{gMenuText_Deselect, ItemMenu_Register},
{gMenuText_CheckTag, ItemMenu_CheckTag},
- {gMenuText_Confirm, unknown_ItemMenu_Confirm},
+ {gMenuText_Confirm, Task_FadeAndCloseBagMenu},
{gMenuText_Show, unknown_ItemMenu_Show},
{gMenuText_Give2, unknown_ItemMenu_Give2},
{gMenuText_Confirm, unknown_ItemMenu_Confirm2},
@@ -241,7 +241,7 @@ const TaskFunc gUnknown_08614054[] = {
unknown_item_menu_type,
item_menu_type_2,
DisplaySellItemAskString,
- unknown_ItemMenu_Confirm,
+ Task_FadeAndCloseBagMenu,
unknown_item_menu_type,
DisplayDepositItemAskString,
unknown_item_menu_type,
@@ -942,7 +942,7 @@ void FreeBagItemListBuffers(void)
Free(gBagMenu);
}
-void unknown_ItemMenu_Confirm(u8 taskId)
+void Task_FadeAndCloseBagMenu(u8 taskId)
{
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK);
gTasks[taskId].func = TaskCloseBagMenu_2;
@@ -966,7 +966,7 @@ void TaskCloseBagMenu_2(u8 taskId)
}
}
-void sub_81AB9A8(u8 pocketId)
+void UpdatePocketItemList(u8 pocketId)
{
u16 i;
struct BagPocket *pocket = &gBagPockets[pocketId];
@@ -997,7 +997,7 @@ void sub_81ABA6C(void)
{
u8 i;
for (i = 0; i < POCKETS_COUNT; i++)
- sub_81AB9A8(i);
+ UpdatePocketItemList(i);
}
void SetInitialScrollAndCursorPositions(u8 pocketId)
@@ -1041,7 +1041,7 @@ void BagMenu_InitListsMenu(u8 taskId)
u16* cursorPos = &gBagPositionStruct.cursorPosition[gBagPositionStruct.pocket];
bag_menu_RemoveBagItem_message_window(4);
DestroyListMenuTask(data[0], scrollPos, cursorPos);
- sub_81AB9A8(gBagPositionStruct.pocket);
+ UpdatePocketItemList(gBagPositionStruct.pocket);
SetInitialScrollAndCursorPositions(gBagPositionStruct.pocket);
LoadBagItemListBuffers(gBagPositionStruct.pocket);
data[0] = ListMenuInit(&gMultiuseListMenuTemplate, *scrollPos, *cursorPos);
@@ -1117,7 +1117,7 @@ void Task_BagMenu(u8 taskId)
}
PlaySE(SE_SELECT);
gSpecialVar_ItemId = select;
- gTasks[taskId].func = unknown_ItemMenu_Confirm;
+ gTasks[taskId].func = Task_FadeAndCloseBagMenu;
break;
default: // A_BUTTON
PlaySE(SE_SELECT);
@@ -1744,7 +1744,7 @@ void Task_ActuallyToss(u8 taskId)
PlaySE(SE_SELECT);
RemoveBagItem(gSpecialVar_ItemId, data[8]);
DestroyListMenuTask(data[0], scrollPos, cursorPos);
- sub_81AB9A8(gBagPositionStruct.pocket);
+ UpdatePocketItemList(gBagPositionStruct.pocket);
SetInitialScrollAndCursorPositions(gBagPositionStruct.pocket);
LoadBagItemListBuffers(gBagPositionStruct.pocket);
data[0] = ListMenuInit(&gMultiuseListMenuTemplate, *scrollPos, *cursorPos);
@@ -1784,7 +1784,7 @@ void ItemMenu_Give(u8 taskId)
else
{
gBagMenu->mainCallback2 = CB2_ChooseMonToGiveItem;
- unknown_ItemMenu_Confirm(taskId);
+ Task_FadeAndCloseBagMenu(taskId);
}
}
else
@@ -1817,7 +1817,7 @@ void sub_81AD350(u8 taskId)
void ItemMenu_CheckTag(u8 taskId)
{
gBagMenu->mainCallback2 = DoBerryTagScreen;
- unknown_ItemMenu_Confirm(taskId);
+ Task_FadeAndCloseBagMenu(taskId);
}
void ItemMenu_Cancel(u8 taskId)
@@ -1841,7 +1841,7 @@ void ItemMenu_UseInBattle(u8 taskId)
}
}
-void bag_menu_mail_related(void)
+void CB2_ReturnToBagMenuPocket(void)
{
GoToBagMenu(RETURN_LOCATION_UNCHANGED, POCKETS_COUNT, NULL);
}
@@ -1860,7 +1860,7 @@ void item_menu_type_2(u8 taskId)
}
else if (gBagPositionStruct.pocket != KEYITEMS_POCKET && !ItemId_GetImportance(gSpecialVar_ItemId))
{
- unknown_ItemMenu_Confirm(taskId);
+ Task_FadeAndCloseBagMenu(taskId);
}
else
{
@@ -1873,16 +1873,18 @@ void item_menu_type_b(u8 taskId)
if (ItemIsMail(gSpecialVar_ItemId) == TRUE)
DisplayItemMessage(taskId, 1, gText_CantWriteMail, sub_81AD350);
else if (gBagPositionStruct.pocket != KEYITEMS_POCKET && !ItemId_GetImportance(gSpecialVar_ItemId))
- gTasks[taskId].func = unknown_ItemMenu_Confirm;
+ gTasks[taskId].func = Task_FadeAndCloseBagMenu;
else
BagMenu_PrintItemCantBeHeld(taskId);
}
+#define tUsingRegisteredKeyItem data[3]
+
bool8 UseRegisteredKeyItemOnField(void)
{
u8 taskId;
- if (InUnionRoom() == TRUE || InBattlePyramid() || InBattlePike() || InMultiBattleRoom() == TRUE)
+ if (InUnionRoom() == TRUE || InBattlePyramid() || InBattlePike() || InMultiPartnerRoom() == TRUE)
return FALSE;
HideMapNamePopUpWindow();
ChangeBgY_ScreenOff(0, 0, 0);
@@ -1896,16 +1898,20 @@ bool8 UseRegisteredKeyItemOnField(void)
sub_808BCF4();
gSpecialVar_ItemId = gSaveBlock1Ptr->registeredItem;
taskId = CreateTask(ItemId_GetFieldFunc(gSaveBlock1Ptr->registeredItem), 8);
- gTasks[taskId].data[3] = 1;
+ gTasks[taskId].tUsingRegisteredKeyItem = TRUE;
return TRUE;
}
else
+ {
gSaveBlock1Ptr->registeredItem = ITEM_NONE;
+ }
}
ScriptContext1_SetupScript(EventScript_SelectWithoutRegisteredItem);
return TRUE;
}
+#undef tUsingRegisteredKeyItem
+
void DisplaySellItemAskString(u8 taskId)
{
s16* data = gTasks[taskId].data;
@@ -2012,7 +2018,7 @@ void sub_81AD8C8(u8 taskId)
RemoveBagItem(gSpecialVar_ItemId, data[8]);
AddMoney(&gSaveBlock1Ptr->money, (ItemId_GetPrice(gSpecialVar_ItemId) / 2) * data[8]);
DestroyListMenuTask(data[0], scrollPos, cursorPos);
- sub_81AB9A8(gBagPositionStruct.pocket);
+ UpdatePocketItemList(gBagPositionStruct.pocket);
SetInitialScrollAndCursorPositions(gBagPositionStruct.pocket);
LoadBagItemListBuffers(gBagPositionStruct.pocket);
data[0] = ListMenuInit(&gMultiuseListMenuTemplate, *scrollPos, *cursorPos);
@@ -2186,7 +2192,7 @@ void Task_WallyTutorialBagMenu(u8 taskId)
BagMenu_RemoveSomeWindow();
DestroyListMenuTask(data[0], 0, 0);
RestoreBagAfterWallyTutorial();
- unknown_ItemMenu_Confirm(taskId);
+ Task_FadeAndCloseBagMenu(taskId);
break;
default:
data[8]++;
@@ -2200,7 +2206,7 @@ void unknown_ItemMenu_Show(u8 taskId)
gSpecialVar_0x8005 = gSpecialVar_ItemId;
gSpecialVar_Result = 1;
BagMenu_RemoveSomeWindow();
- unknown_ItemMenu_Confirm(taskId);
+ Task_FadeAndCloseBagMenu(taskId);
}
void CB2_ApprenticeExitBagMenu(void)
@@ -2214,7 +2220,7 @@ void unknown_ItemMenu_Give2(u8 taskId)
RemoveBagItem(gSpecialVar_ItemId, 1);
gSpecialVar_Result = 1;
BagMenu_RemoveSomeWindow();
- unknown_ItemMenu_Confirm(taskId);
+ Task_FadeAndCloseBagMenu(taskId);
}
void CB2_FavorLadyExitBagMenu(void)
@@ -2227,7 +2233,7 @@ void unknown_ItemMenu_Confirm2(u8 taskId)
{
gSpecialVar_Result = 1;
BagMenu_RemoveSomeWindow();
- unknown_ItemMenu_Confirm(taskId);
+ Task_FadeAndCloseBagMenu(taskId);
}
void CB2_QuizLadyExitBagMenu(void)
diff --git a/src/item_use.c b/src/item_use.c
index 82ffd7170..954d4b26f 100755
--- a/src/item_use.c
+++ b/src/item_use.c
@@ -11,6 +11,7 @@
#include "event_data.h"
#include "event_object_lock.h"
#include "event_object_movement.h"
+#include "event_scripts.h"
#include "fieldmap.h"
#include "field_effect.h"
#include "field_player_avatar.h"
@@ -43,49 +44,40 @@
#include "constants/songs.h"
#include "constants/vars.h"
-extern u8 BerryTree_EventScript_ItemUsePlantBerry[];
-extern u8 BerryTree_EventScript_ItemUseWailmerPail[];
-extern u8 BattleFrontier_OutsideEast_EventScript_WaterSudowoodo[];
-
-void SetUpItemUseCallback(u8 taskId);
-void MapPostLoadHook_UseItem(void);
-void sub_80AF6D4(void);
-void Task_CallItemUseOnFieldCallback(u8 taskId);
-void BagMenu_InitListsMenu(u8 taskId);
-void ItemUseOnFieldCB_Bike(u8 taskId);
-void ItemUseOnFieldCB_Rod(u8 taskId);
-void ItemUseOnFieldCB_Itemfinder(u8 taskId);
-void sub_80FD504(u8 taskId);
-void sub_80FD5CC(u8 taskId);
-void sub_80FDA94(u8 taskId);
-void sub_80FDADC(u8 taskId);
-void sub_80FD7C8(u8 taskId);
-void sub_80FDC00(u8 taskId);
-void ItemUseOnFieldCB_Berry(u8 taskId);
-void ItemUseOnFieldCB_WailmerPailBerry(u8 taskId);
-void ItemUseOnFieldCB_WailmerPailSudowoodo(u8 taskId);
+static void SetUpItemUseCallback(u8 taskId);
+static void FieldCB_UseItemOnField(void);
+static void Task_CallItemUseOnFieldCallback(u8 taskId);
+static void Task_UseItemfinder(u8 taskId);
+static void Task_CloseItemfinderMessage(u8 taskId);
+static void Task_HiddenItemNearby(u8 taskId);
+static void Task_StandingOnHiddenItem(u8 taskId);
+static bool8 ItemfinderCheckForHiddenItems(const struct MapEvents *, u8);
+static u8 GetDirectionToHiddenItem(s16 distanceX, s16 distanceY);
+static void PlayerFaceHiddenItem(u8 a);
+static void CheckForHiddenItemsInMapConnection(u8 taskId);
+static void sub_80FDC00(u8 taskId);
+static void ItemUseOnFieldCB_Bike(u8 taskId);
+static void ItemUseOnFieldCB_Rod(u8);
+static void ItemUseOnFieldCB_Itemfinder(u8);
+static void ItemUseOnFieldCB_Berry(u8 taskId);
+static void ItemUseOnFieldCB_WailmerPailBerry(u8 taskId);
+static void ItemUseOnFieldCB_WailmerPailSudowoodo(u8 taskId);
+static bool8 TryToWaterSudowoodo(void);
static void BootUpSoundTMHM(u8 taskId);
static void Task_ShowTMHMContainedMessage(u8 taskId);
static void UseTMHMYesNo(u8 taskId);
static void UseTMHM(u8 taskId);
-void sub_80FE124(u8 taskId);
-void sub_80FE164(u8 taskId);
-
-void DisplayItemMessage(u8 taskId, u8 a, const u8* str, void(*callback)(u8 taskId));
-void DisplayItemMessageOnField(u8 taskId, const u8* str, void(*callback)(u8 taskId));
-void sub_81C6714(u8 taskId);
-void CleanUpAfterFailingToUseRegisteredKeyItemOnField(u8 taskId);
-void StartFishing(u8 a);
-bool8 ItemfinderCheckForHiddenItems(const struct MapEvents *, u8);
-u8 sub_80FD9B0(s16 a, s16 b);
-void sub_80FDA24(u8 a);
-void sub_80FD8E0(u8 taskId, s16 x, s16 y);
-void sub_80FDBEC(void);
-bool8 TryToWaterSudowoodo(void);
-void ItemUseOutOfBattle_CannotUse(u8 taskId);
+static void Task_StartUseRepel(u8 taskId);
+static void Task_UseRepel(u8 taskId);
+static void Task_CloseCantUseKeyItemMessage(u8 taskId);
+static void SetDistanceOfClosestHiddenItem(u8 taskId, s16 x, s16 y);
+static void CB2_OpenPokeblockCaseOnField(void);
// EWRAM variables
-EWRAM_DATA static void(*gUnknown_0203A0F4)(u8 taskId) = NULL;
+EWRAM_DATA static void(*sItemUseOnFieldCB)(u8 taskId) = NULL;
+
+// Below is set TRUE by UseRegisteredKeyItemOnField
+#define tUsingRegisteredKeyItem data[3]
// .rodata
@@ -96,7 +88,7 @@ static const MainCallback sItemUseCallbacks[] =
NULL,
};
-static const u8 gUnknown_085920E4[] = {DIR_NORTH, DIR_EAST, DIR_SOUTH, DIR_WEST};
+static const u8 sClockwiseDirections[] = {DIR_NORTH, DIR_EAST, DIR_SOUTH, DIR_WEST};
static const struct YesNoFuncTable sUseTMHMYesNoFuncTable =
{
@@ -106,7 +98,7 @@ static const struct YesNoFuncTable sUseTMHMYesNoFuncTable =
// .text
-void SetUpItemUseCallback(u8 taskId)
+static void SetUpItemUseCallback(u8 taskId)
{
u8 type;
if (gSpecialVar_ItemId == ITEM_ENIGMA_BERRY)
@@ -116,39 +108,39 @@ void SetUpItemUseCallback(u8 taskId)
if (!InBattlePyramid())
{
gBagMenu->mainCallback2 = sItemUseCallbacks[type];
- unknown_ItemMenu_Confirm(taskId);
+ Task_FadeAndCloseBagMenu(taskId);
}
else
{
gPyramidBagResources->callback2 = sItemUseCallbacks[type];
- sub_81C5B14(taskId);
+ CloseBattlePyramidBagAndSetCallback(taskId);
}
}
-void SetUpItemUseOnFieldCallback(u8 taskId)
+static void SetUpItemUseOnFieldCallback(u8 taskId)
{
- if (gTasks[taskId].data[3] != 1)
+ if (gTasks[taskId].tUsingRegisteredKeyItem != TRUE)
{
- gFieldCallback = MapPostLoadHook_UseItem;
+ gFieldCallback = FieldCB_UseItemOnField;
SetUpItemUseCallback(taskId);
}
else
- gUnknown_0203A0F4(taskId);
+ sItemUseOnFieldCB(taskId);
}
-void MapPostLoadHook_UseItem(void)
+static void FieldCB_UseItemOnField(void)
{
FadeInFromBlack();
CreateTask(Task_CallItemUseOnFieldCallback, 8);
}
-void Task_CallItemUseOnFieldCallback(u8 taskId)
+static void Task_CallItemUseOnFieldCallback(u8 taskId)
{
if (IsWeatherNotFadingIn() == 1)
- gUnknown_0203A0F4(taskId);
+ sItemUseOnFieldCB(taskId);
}
-void DisplayCannotUseItemMessage(u8 taskId, bool8 isUsingRegisteredKeyItemOnField, const u8 *str)
+static void DisplayCannotUseItemMessage(u8 taskId, bool8 isUsingRegisteredKeyItemOnField, const u8 *str)
{
StringExpandPlaceholders(gStringVar4, str);
if (!isUsingRegisteredKeyItemOnField)
@@ -156,23 +148,23 @@ void DisplayCannotUseItemMessage(u8 taskId, bool8 isUsingRegisteredKeyItemOnFiel
if (!InBattlePyramid())
DisplayItemMessage(taskId, 1, gStringVar4, BagMenu_InitListsMenu);
else
- DisplayItemMessageInBattlePyramid(taskId, gText_DadsAdvice, sub_81C6714);
+ DisplayItemMessageInBattlePyramid(taskId, gText_DadsAdvice, Task_CloseBattlePyramidBagMessage);
}
else
- DisplayItemMessageOnField(taskId, gStringVar4, CleanUpAfterFailingToUseRegisteredKeyItemOnField);
+ DisplayItemMessageOnField(taskId, gStringVar4, Task_CloseCantUseKeyItemMessage);
}
-void DisplayDadsAdviceCannotUseItemMessage(u8 taskId, bool8 isUsingRegisteredKeyItemOnField)
+static void DisplayDadsAdviceCannotUseItemMessage(u8 taskId, bool8 isUsingRegisteredKeyItemOnField)
{
DisplayCannotUseItemMessage(taskId, isUsingRegisteredKeyItemOnField, gText_DadsAdvice);
}
-void DisplayCannotDismountBikeMessage(u8 taskId, bool8 isUsingRegisteredKeyItemOnField)
+static void DisplayCannotDismountBikeMessage(u8 taskId, bool8 isUsingRegisteredKeyItemOnField)
{
DisplayCannotUseItemMessage(taskId, isUsingRegisteredKeyItemOnField, gText_CantDismountBike);
}
-void CleanUpAfterFailingToUseRegisteredKeyItemOnField(u8 taskId)
+static void Task_CloseCantUseKeyItemMessage(u8 taskId)
{
ClearDialogWindowAndFrame(0, 1);
DestroyTask(taskId);
@@ -190,17 +182,18 @@ u8 CheckIfItemIsTMHMOrEvolutionStone(u16 itemId)
return 0;
}
-void sub_80FD254(void)
+// Mail in the bag menu can't have a message but it can be checked (view the mail background, no message)
+static void CB2_CheckMail(void)
{
struct MailStruct mail;
mail.itemId = gSpecialVar_ItemId;
- ReadMail(&mail, bag_menu_mail_related, 0);
+ ReadMail(&mail, CB2_ReturnToBagMenuPocket, 0);
}
void ItemUseOutOfBattle_Mail(u8 taskId)
{
- gBagMenu->mainCallback2 = sub_80FD254;
- unknown_ItemMenu_Confirm(taskId);
+ gBagMenu->mainCallback2 = CB2_CheckMail;
+ Task_FadeAndCloseBagMenu(taskId);
}
void ItemUseOutOfBattle_Bike(u8 taskId)
@@ -212,20 +205,20 @@ void ItemUseOutOfBattle_Bike(u8 taskId)
PlayerGetDestCoords(&coordsX, &coordsY);
behavior = MapGridGetMetatileBehaviorAt(coordsX, coordsY);
if (FlagGet(FLAG_SYS_CYCLING_ROAD) == TRUE || MetatileBehavior_IsVerticalRail(behavior) == TRUE || MetatileBehavior_IsHorizontalRail(behavior) == TRUE || MetatileBehavior_IsIsolatedVerticalRail(behavior) == TRUE || MetatileBehavior_IsIsolatedHorizontalRail(behavior) == TRUE)
- DisplayCannotDismountBikeMessage(taskId, data[3]);
+ DisplayCannotDismountBikeMessage(taskId, tUsingRegisteredKeyItem);
else
{
if (Overworld_IsBikingAllowed() == TRUE && IsBikingDisallowedByPlayer() == 0)
{
- gUnknown_0203A0F4 = ItemUseOnFieldCB_Bike;
+ sItemUseOnFieldCB = ItemUseOnFieldCB_Bike;
SetUpItemUseOnFieldCallback(taskId);
}
else
- DisplayDadsAdviceCannotUseItemMessage(taskId, data[3]);
+ DisplayDadsAdviceCannotUseItemMessage(taskId, tUsingRegisteredKeyItem);
}
}
-void ItemUseOnFieldCB_Bike(u8 taskId)
+static void ItemUseOnFieldCB_Bike(u8 taskId)
{
if (!ItemId_GetSecondaryId(gSpecialVar_ItemId))
GetOnOffBike(2);
@@ -236,7 +229,7 @@ void ItemUseOnFieldCB_Bike(u8 taskId)
DestroyTask(taskId);
}
-bool32 CanFish(void)
+static bool32 CanFish(void)
{
s16 x, y;
u16 tileBehavior;
@@ -270,14 +263,14 @@ void ItemUseOutOfBattle_Rod(u8 taskId)
{
if (CanFish() == TRUE)
{
- gUnknown_0203A0F4 = ItemUseOnFieldCB_Rod;
+ sItemUseOnFieldCB = ItemUseOnFieldCB_Rod;
SetUpItemUseOnFieldCallback(taskId);
}
else
- DisplayDadsAdviceCannotUseItemMessage(taskId, gTasks[taskId].data[3]);
+ DisplayDadsAdviceCannotUseItemMessage(taskId, gTasks[taskId].tUsingRegisteredKeyItem);
}
-void ItemUseOnFieldCB_Rod(u8 taskId)
+static void ItemUseOnFieldCB_Rod(u8 taskId)
{
StartFishing(ItemId_GetSecondaryId(gSpecialVar_ItemId));
DestroyTask(taskId);
@@ -285,56 +278,65 @@ void ItemUseOnFieldCB_Rod(u8 taskId)
void ItemUseOutOfBattle_Itemfinder(u8 var)
{
- IncrementGameStat(0x27);
- gUnknown_0203A0F4 = ItemUseOnFieldCB_Itemfinder;
+ IncrementGameStat(GAME_STAT_USED_ITEMFINDER);
+ sItemUseOnFieldCB = ItemUseOnFieldCB_Itemfinder;
SetUpItemUseOnFieldCallback(var);
}
-void ItemUseOnFieldCB_Itemfinder(u8 taskId)
+static void ItemUseOnFieldCB_Itemfinder(u8 taskId)
{
if (ItemfinderCheckForHiddenItems(gMapHeader.events, taskId) == TRUE)
- gTasks[taskId].func = sub_80FD504;
+ gTasks[taskId].func = Task_UseItemfinder;
else
- DisplayItemMessageOnField(taskId, gText_ItemFinderNothing, sub_80FD5CC);
+ DisplayItemMessageOnField(taskId, gText_ItemFinderNothing, Task_CloseItemfinderMessage);
}
-void sub_80FD504(u8 taskId)
+// Define itemfinder task data
+#define tItemDistanceX data[0]
+#define tItemDistanceY data[1]
+#define tItemFound data[2]
+#define tCounter data[3] // Used to count delay between beeps and rotations during player spin
+#define tItemfinderBeeps data[4]
+#define tFacingDir data[5]
+
+static void Task_UseItemfinder(u8 taskId)
{
u8 playerDir;
u8 playerDirToItem;
u8 i;
s16* data = gTasks[taskId].data;
- if (!data[3])
+ if (tCounter == 0)
{
- if (data[4] == 4)
+ if (tItemfinderBeeps == 4)
{
- playerDirToItem = sub_80FD9B0(data[0], data[1]);
- if (playerDirToItem)
+ playerDirToItem = GetDirectionToHiddenItem(tItemDistanceX, tItemDistanceY);
+ if (playerDirToItem != DIR_NONE)
{
- sub_80FDA24(gUnknown_085920E4[playerDirToItem - 1]);
- gTasks[taskId].func = sub_80FDA94;
+ PlayerFaceHiddenItem(sClockwiseDirections[playerDirToItem - 1]);
+ gTasks[taskId].func = Task_HiddenItemNearby;
}
else
{
+ // Player is standing on hidden item
playerDir = GetPlayerFacingDirection();
- for (i = 0; i < 4; i++)
+ for (i = 0; i < ARRAY_COUNT(sClockwiseDirections); i++)
{
- if (playerDir == gUnknown_085920E4[i])
- data[5] = (i + 1) & 3;
+ if (playerDir == sClockwiseDirections[i])
+ tFacingDir = (i + 1) & 3;
}
- gTasks[taskId].func = sub_80FDADC;
- data[3] = 0;
- data[2] = 0;
+ gTasks[taskId].func = Task_StandingOnHiddenItem;
+ tCounter = 0;
+ tItemFound = 0;
}
return;
}
PlaySE(SE_DAUGI);
- data[4]++;
+ tItemfinderBeeps++;
}
- data[3] = (data[3] + 1) & 0x1F;
+ tCounter = (tCounter + 1) & 0x1F;
}
-void sub_80FD5CC(u8 taskId)
+static void Task_CloseItemfinderMessage(u8 taskId)
{
ClearDialogWindowAndFrame(0, 1);
ScriptUnfreezeObjectEvents();
@@ -342,34 +344,36 @@ void sub_80FD5CC(u8 taskId)
DestroyTask(taskId);
}
-bool8 ItemfinderCheckForHiddenItems(const struct MapEvents *events, u8 taskId)
+static bool8 ItemfinderCheckForHiddenItems(const struct MapEvents *events, u8 taskId)
{
- int distanceX, distanceY;
- s16 x, y, i, newDistanceX, newDistanceY;
- PlayerGetDestCoords(&x, &y);
- gTasks[taskId].data[2] = FALSE;
+ int itemX, itemY;
+ s16 playerX, playerY, i, distanceX, distanceY;
+ PlayerGetDestCoords(&playerX, &playerY);
+ gTasks[taskId].tItemFound = FALSE;
+
for (i = 0; i < events->bgEventCount; i++)
{
+ // Check if there are any hidden items on the current map that haven't been picked up
if (events->bgEvents[i].kind == BG_EVENT_HIDDEN_ITEM && !FlagGet(events->bgEvents[i].bgUnion.hiddenItem.hiddenItemId + FLAG_HIDDEN_ITEMS_START))
{
- distanceX = (u16)events->bgEvents[i].x + 7;
- newDistanceX = distanceX - x;
- distanceY = (u16)events->bgEvents[i].y + 7;
- newDistanceY = distanceY - y;
+ itemX = (u16)events->bgEvents[i].x + 7;
+ distanceX = itemX - playerX;
+ itemY = (u16)events->bgEvents[i].y + 7;
+ distanceY = itemY - playerY;
- if ((u16)(newDistanceX + 7) < 15 && (newDistanceY >= -5) && (newDistanceY < 6))
- sub_80FD8E0(taskId, newDistanceX, newDistanceY);
+ if ((u16)(distanceX + 7) < 15 && (distanceY >= -5) && (distanceY < 6))
+ SetDistanceOfClosestHiddenItem(taskId, distanceX, distanceY);
}
}
- sub_80FD7C8(taskId);
- if (gTasks[taskId].data[2] == TRUE)
+ CheckForHiddenItemsInMapConnection(taskId);
+ if (gTasks[taskId].tItemFound == TRUE)
return TRUE;
else
return FALSE;
}
-bool8 sub_80FD6D4(const struct MapEvents *events, s16 x, s16 y)
+static bool8 IsHiddenItemPresentAtCoords(const struct MapEvents *events, s16 x, s16 y)
{
u8 bgEventCount = events->bgEventCount;
struct BgEvent *bgEvent = events->bgEvents;
@@ -388,7 +392,7 @@ bool8 sub_80FD6D4(const struct MapEvents *events, s16 x, s16 y)
return FALSE;
}
-bool8 sub_80FD730(struct MapConnection *connection, int x, int y)
+static bool8 IsHiddenItemPresentInConnection(struct MapConnection *connection, int x, int y)
{
u16 localX, localY;
@@ -399,7 +403,7 @@ bool8 sub_80FD730(struct MapConnection *connection, int x, int y)
switch (connection->direction)
{
- // same weird temp variable behavior seen in sub_80FD6D4
+ // same weird temp variable behavior seen in IsHiddenItemPresentAtCoords
case 2:
localOffset = connection->offset + 7;
localX = x - localOffset;
@@ -427,136 +431,145 @@ bool8 sub_80FD730(struct MapConnection *connection, int x, int y)
default:
return FALSE;
}
- return sub_80FD6D4(mapHeader->events, localX, localY);
+ return IsHiddenItemPresentAtCoords(mapHeader->events, localX, localY);
}
-void sub_80FD7C8(u8 taskId)
+static void CheckForHiddenItemsInMapConnection(u8 taskId)
{
+ s16 playerX, playerY;
s16 x, y;
- s16 curX, curY;
s16 width = gMapHeader.mapLayout->width + 7;
s16 height = gMapHeader.mapLayout->height + 7;
s16 var1 = 7;
s16 var2 = 7;
- PlayerGetDestCoords(&x, &y);
+ PlayerGetDestCoords(&playerX, &playerY);
- for (curX = x - 7; curX <= x + 7; curX++)
+ for (x = playerX - 7; x <= playerX + 7; x++)
{
- for (curY = y - 5; curY <= y + 5; curY++)
+ for (y = playerY - 5; y <= playerY + 5; y++)
{
- if (var1 > curX
- || curX >= width
- || var2 > curY
- || curY >= height)
+ if (var1 > x
+ || x >= width
+ || var2 > y
+ || y >= height)
{
- struct MapConnection *conn = sub_8088A8C(curX, curY);
- if (conn && sub_80FD730(conn, curX, curY) == TRUE)
- sub_80FD8E0(taskId, curX - x, curY - y);
+ struct MapConnection *conn = GetConnectionAtCoords(x, y);
+ if (conn && IsHiddenItemPresentInConnection(conn, x, y) == TRUE)
+ SetDistanceOfClosestHiddenItem(taskId, x - playerX, y - playerY);
}
}
}
}
-void sub_80FD8E0(u8 taskId, s16 x, s16 y)
+static void SetDistanceOfClosestHiddenItem(u8 taskId, s16 itemDistanceX, s16 itemDistanceY)
{
s16 *data = gTasks[taskId].data;
- s16 var1, var2, var3, var4;
+ s16 oldItemAbsX, oldItemAbsY, newItemAbsX, newItemAbsY;
- if (data[2] == FALSE)
+ if (tItemFound == FALSE)
{
- data[0] = x;
- data[1] = y;
- data[2] = TRUE;
+ // No other items found yet, set this one
+ tItemDistanceX = itemDistanceX;
+ tItemDistanceY = itemDistanceY;
+ tItemFound = TRUE;
}
else
{
- // data[0] and data[1] contain the player's coordinates.
- // x and y contain the item's coordinates.
- if (data[0] < 0)
- var1 = data[0] * -1; // item is to the left
+ // Other items have been found, check if this one is closer
+
+ // Get absolute x distance of the already-found item
+ if (tItemDistanceX < 0)
+ oldItemAbsX = tItemDistanceX * -1; // WEST
else
- var1 = data[0]; // item is to the right
+ oldItemAbsX = tItemDistanceX; // EAST
- if (data[1] < 0)
- var2 = data[1] * -1; // item is to the north
+ // Get absolute y distance of the already-found item
+ if (tItemDistanceY < 0)
+ oldItemAbsY = tItemDistanceY * -1; // NORTH
else
- var2 = data[1]; // item is to the south
+ oldItemAbsY = tItemDistanceY; // SOUTH
- if (x < 0)
- var3 = x * -1;
+ // Get absolute x distance of the newly-found item
+ if (itemDistanceX < 0)
+ newItemAbsX = itemDistanceX * -1;
else
- var3 = x;
+ newItemAbsX = itemDistanceX;
- if (y < 0)
- var4 = y * -1;
+ // Get absolute y distance of the newly-found item
+ if (itemDistanceY < 0)
+ newItemAbsY = itemDistanceY * -1;
else
- var4 = y;
+ newItemAbsY = itemDistanceY;
- if (var1 + var2 > var3 + var4)
+
+ if (oldItemAbsX + oldItemAbsY > newItemAbsX + newItemAbsY)
{
- data[0] = x;
- data[1] = y;
+ // New item is closer
+ tItemDistanceX = itemDistanceX;
+ tItemDistanceY = itemDistanceY;
}
else
{
- if (var1 + var2 == var3 + var4 && (var2 > var4 || (var2 == var4 && data[1] < y)))
+ if (oldItemAbsX + oldItemAbsY == newItemAbsX + newItemAbsY
+ && (oldItemAbsY > newItemAbsY || (oldItemAbsY == newItemAbsY && tItemDistanceY < itemDistanceY)))
{
- data[0] = x;
- data[1] = y;
+ // If items are equal distance, use whichever is closer on the Y axis or further south
+ tItemDistanceX = itemDistanceX;
+ tItemDistanceY = itemDistanceY;
}
}
}
}
-u8 sub_80FD9B0(s16 itemX, s16 itemY)
+static u8 GetDirectionToHiddenItem(s16 itemDistanceX, s16 itemDistanceY)
{
- s16 abX, abY;
+ s16 absX, absY;
- if (itemX == 0 && itemY == 0)
+ if (itemDistanceX == 0 && itemDistanceY == 0)
return DIR_NONE; // player is standing on the item.
- // get absolute X distance.
- if (itemX < 0)
- abX = itemX * -1;
+ // Get absolute X distance.
+ if (itemDistanceX < 0)
+ absX = itemDistanceX * -1;
else
- abX = itemX;
+ absX = itemDistanceX;
- // get absolute Y distance.
- if (itemY < 0)
- abY = itemY * -1;
+ // Get absolute Y distance.
+ if (itemDistanceY < 0)
+ absY = itemDistanceY * -1;
else
- abY = itemY;
+ absY = itemDistanceY;
- if (abX > abY)
+ if (absX > absY)
{
- if (itemX < 0)
+ if (itemDistanceX < 0)
return DIR_EAST;
else
return DIR_NORTH;
}
else
{
- if (abX < abY)
+ if (absX < absY)
{
- if (itemY < 0)
+ if (itemDistanceY < 0)
return DIR_SOUTH;
else
return DIR_WEST;
}
- if (abX == abY)
+ if (absX == absY)
{
- if (itemY < 0)
+ if (itemDistanceY < 0)
return DIR_SOUTH;
else
return DIR_WEST;
}
- return DIR_NONE; // should never get here. return something so it doesnt crash.
+ return DIR_NONE; // Unreachable
}
}
-void sub_80FDA24(u8 direction)
+static void PlayerFaceHiddenItem(u8 direction)
{
ObjectEventClearHeldMovementIfFinished(&gObjectEvents[GetObjectEventIdByLocalIdAndMap(OBJ_EVENT_ID_PLAYER, 0, 0)]);
ObjectEventClearHeldMovement(&gObjectEvents[GetObjectEventIdByLocalIdAndMap(OBJ_EVENT_ID_PLAYER, 0, 0)]);
@@ -564,39 +577,48 @@ void sub_80FDA24(u8 direction)
PlayerTurnInPlace(direction);
}
-void sub_80FDA94(u8 taskId)
+static void Task_HiddenItemNearby(u8 taskId)
{
if (ObjectEventCheckHeldMovementStatus(&gObjectEvents[GetObjectEventIdByLocalIdAndMap(OBJ_EVENT_ID_PLAYER, 0, 0)]) == TRUE)
- DisplayItemMessageOnField(taskId, gText_ItemFinderNearby, sub_80FD5CC);
+ DisplayItemMessageOnField(taskId, gText_ItemFinderNearby, Task_CloseItemfinderMessage);
}
-void sub_80FDADC(u8 taskId)
+static void Task_StandingOnHiddenItem(u8 taskId)
{
s16 *data = gTasks[taskId].data;
if (ObjectEventCheckHeldMovementStatus(&gObjectEvents[GetObjectEventIdByLocalIdAndMap(OBJ_EVENT_ID_PLAYER, 0, 0)]) == TRUE
- || data[2] == FALSE)
+ || tItemFound == FALSE)
{
- sub_80FDA24(gUnknown_085920E4[data[5]]);
- data[2] = 1;
- data[5] = (data[5] + 1) & 3;
- data[3]++;
-
- if (data[3] == 4)
- DisplayItemMessageOnField(taskId, gText_ItemFinderOnTop, sub_80FD5CC);
+ // Spin player around on item
+ PlayerFaceHiddenItem(sClockwiseDirections[tFacingDir]);
+ tItemFound = TRUE;
+ tFacingDir = (tFacingDir + 1) & 3;
+ tCounter++;
+
+ if (tCounter == 4)
+ DisplayItemMessageOnField(taskId, gText_ItemFinderOnTop, Task_CloseItemfinderMessage);
}
}
+// Undefine itemfinder task data
+#undef tItemDistanceX
+#undef tItemDistanceY
+#undef tItemFound
+#undef tCounter
+#undef tItemfinderBeeps
+#undef tFacingDir
+
void ItemUseOutOfBattle_PokeblockCase(u8 taskId)
{
- if (sub_81221AC() == TRUE)
+ if (sub_81221AC() == TRUE) // link func
{
- DisplayDadsAdviceCannotUseItemMessage(taskId, gTasks[taskId].data[3]);
+ DisplayDadsAdviceCannotUseItemMessage(taskId, gTasks[taskId].tUsingRegisteredKeyItem);
}
- else if (gTasks[taskId].data[3] != TRUE)
+ else if (gTasks[taskId].tUsingRegisteredKeyItem != TRUE)
{
- gBagMenu->mainCallback2 = sub_80FDBEC;
- unknown_ItemMenu_Confirm(taskId);
+ gBagMenu->mainCallback2 = CB2_OpenPokeblockCaseOnField;
+ Task_FadeAndCloseBagMenu(taskId);
}
else
{
@@ -606,17 +628,17 @@ void ItemUseOutOfBattle_PokeblockCase(u8 taskId)
}
}
-void sub_80FDBEC(void)
+static void CB2_OpenPokeblockCaseOnField(void)
{
- OpenPokeblockCase(0, bag_menu_mail_related);
+ OpenPokeblockCase(PBLOCK_CASE_FIELD, CB2_ReturnToBagMenuPocket);
}
-void sub_80FDC00(u8 taskId)
+static void sub_80FDC00(u8 taskId)
{
if (!gPaletteFade.active)
{
CleanupOverworldWindowsAndTilemaps();
- OpenPokeblockCase(0, CB2_ReturnToField);
+ OpenPokeblockCase(PBLOCK_CASE_FIELD, CB2_ReturnToField);
DestroyTask(taskId);
}
}
@@ -626,13 +648,13 @@ void ItemUseOutOfBattle_CoinCase(u8 taskId)
ConvertIntToDecimalStringN(gStringVar1, GetCoins(), STR_CONV_MODE_LEFT_ALIGN, 4);
StringExpandPlaceholders(gStringVar4, gText_CoinCase);
- if (!gTasks[taskId].data[3])
+ if (!gTasks[taskId].tUsingRegisteredKeyItem)
{
DisplayItemMessage(taskId, 1, gStringVar4, BagMenu_InitListsMenu);
}
else
{
- DisplayItemMessageOnField(taskId, gStringVar4, CleanUpAfterFailingToUseRegisteredKeyItemOnField);
+ DisplayItemMessageOnField(taskId, gStringVar4, Task_CloseCantUseKeyItemMessage);
}
}
@@ -641,13 +663,13 @@ void ItemUseOutOfBattle_PowderJar(u8 taskId)
ConvertIntToDecimalStringN(gStringVar1, GetBerryPowder(), STR_CONV_MODE_LEFT_ALIGN, 5);
StringExpandPlaceholders(gStringVar4, gText_PowderQty);
- if (!gTasks[taskId].data[3])
+ if (!gTasks[taskId].tUsingRegisteredKeyItem)
{
DisplayItemMessage(taskId, 1, gStringVar4, BagMenu_InitListsMenu);
}
else
{
- DisplayItemMessageOnField(taskId, gStringVar4, CleanUpAfterFailingToUseRegisteredKeyItemOnField);
+ DisplayItemMessageOnField(taskId, gStringVar4, Task_CloseCantUseKeyItemMessage);
}
}
@@ -655,10 +677,10 @@ void ItemUseOutOfBattle_Berry(u8 taskId)
{
if (IsPlayerFacingEmptyBerryTreePatch() == TRUE)
{
- gUnknown_0203A0F4 = ItemUseOnFieldCB_Berry;
- gFieldCallback = MapPostLoadHook_UseItem;
+ sItemUseOnFieldCB = ItemUseOnFieldCB_Berry;
+ gFieldCallback = FieldCB_UseItemOnField;
gBagMenu->mainCallback2 = CB2_ReturnToField;
- unknown_ItemMenu_Confirm(taskId);
+ Task_FadeAndCloseBagMenu(taskId);
}
else
{
@@ -666,7 +688,7 @@ void ItemUseOutOfBattle_Berry(u8 taskId)
}
}
-void ItemUseOnFieldCB_Berry(u8 taskId)
+static void ItemUseOnFieldCB_Berry(u8 taskId)
{
RemoveBagItem(gSpecialVar_ItemId, 1);
ScriptContext2_Enable();
@@ -678,28 +700,28 @@ void ItemUseOutOfBattle_WailmerPail(u8 taskId)
{
if (TryToWaterSudowoodo() == TRUE)
{
- gUnknown_0203A0F4 = ItemUseOnFieldCB_WailmerPailSudowoodo;
+ sItemUseOnFieldCB = ItemUseOnFieldCB_WailmerPailSudowoodo;
SetUpItemUseOnFieldCallback(taskId);
}
else if (TryToWaterBerryTree() == TRUE)
{
- gUnknown_0203A0F4 = ItemUseOnFieldCB_WailmerPailBerry;
+ sItemUseOnFieldCB = ItemUseOnFieldCB_WailmerPailBerry;
SetUpItemUseOnFieldCallback(taskId);
}
else
{
- DisplayDadsAdviceCannotUseItemMessage(taskId, gTasks[taskId].data[3]);
+ DisplayDadsAdviceCannotUseItemMessage(taskId, gTasks[taskId].tUsingRegisteredKeyItem);
}
}
-void ItemUseOnFieldCB_WailmerPailBerry(u8 taskId)
+static void ItemUseOnFieldCB_WailmerPailBerry(u8 taskId)
{
ScriptContext2_Enable();
ScriptContext1_SetupScript(BerryTree_EventScript_ItemUseWailmerPail);
DestroyTask(taskId);
}
-bool8 TryToWaterSudowoodo(void)
+static bool8 TryToWaterSudowoodo(void)
{
u16 x, y;
u8 z;
@@ -713,7 +735,7 @@ bool8 TryToWaterSudowoodo(void)
return TRUE;
}
-void ItemUseOnFieldCB_WailmerPailSudowoodo(u8 taskId)
+static void ItemUseOnFieldCB_WailmerPailSudowoodo(u8 taskId)
{
ScriptContext2_Enable();
ScriptContext1_SetupScript(BattleFrontier_OutsideEast_EventScript_WaterSudowoodo);
@@ -791,14 +813,14 @@ static void UseTMHM(u8 taskId)
SetUpItemUseCallback(taskId);
}
-void sub_80FE058(void)
+static void RemoveUsedItem(void)
{
RemoveBagItem(gSpecialVar_ItemId, 1);
CopyItemName(gSpecialVar_ItemId, gStringVar2);
StringExpandPlaceholders(gStringVar4, gText_PlayerUsedVar2);
if (!InBattlePyramid())
{
- sub_81AB9A8(ItemId_GetPocket(gSpecialVar_ItemId));
+ UpdatePocketItemList(ItemId_GetPocket(gSpecialVar_ItemId));
SetInitialScrollAndCursorPositions(ItemId_GetPocket(gSpecialVar_ItemId));
}
else
@@ -811,14 +833,14 @@ void sub_80FE058(void)
void ItemUseOutOfBattle_Repel(u8 taskId)
{
if (VarGet(VAR_REPEL_STEP_COUNT) == 0)
- gTasks[taskId].func = sub_80FE124;
+ gTasks[taskId].func = Task_StartUseRepel;
else if (!InBattlePyramid())
DisplayItemMessage(taskId, 1, gText_RepelEffectsLingered, BagMenu_InitListsMenu);
else
- DisplayItemMessageInBattlePyramid(taskId, gText_RepelEffectsLingered, sub_81C6714);
+ DisplayItemMessageInBattlePyramid(taskId, gText_RepelEffectsLingered, Task_CloseBattlePyramidBagMessage);
}
-void sub_80FE124(u8 taskId)
+static void Task_StartUseRepel(u8 taskId)
{
s16* data = gTasks[taskId].data;
@@ -826,24 +848,24 @@ void sub_80FE124(u8 taskId)
{
data[8] = 0;
PlaySE(SE_TU_SAA);
- gTasks[taskId].func = sub_80FE164;
+ gTasks[taskId].func = Task_UseRepel;
}
}
-void sub_80FE164(u8 taskId)
+static void Task_UseRepel(u8 taskId)
{
if (!IsSEPlaying())
{
VarSet(VAR_REPEL_STEP_COUNT, ItemId_GetHoldEffectParam(gSpecialVar_ItemId));
- sub_80FE058();
+ RemoveUsedItem();
if (!InBattlePyramid())
DisplayItemMessage(taskId, 1, gStringVar4, BagMenu_InitListsMenu);
else
- DisplayItemMessageInBattlePyramid(taskId, gStringVar4, sub_81C6714);
+ DisplayItemMessageInBattlePyramid(taskId, gStringVar4, Task_CloseBattlePyramidBagMessage);
}
}
-void sub_80FE1D0(u8 taskId)
+static void Task_UsedBlackWhiteFlute(u8 taskId)
{
if(++gTasks[taskId].data[8] > 7)
{
@@ -851,7 +873,7 @@ void sub_80FE1D0(u8 taskId)
if (!InBattlePyramid())
DisplayItemMessage(taskId, 1, gStringVar4, BagMenu_InitListsMenu);
else
- DisplayItemMessageInBattlePyramid(taskId, gStringVar4, sub_81C6714);
+ DisplayItemMessageInBattlePyramid(taskId, gStringVar4, Task_CloseBattlePyramidBagMessage);
}
}
@@ -871,27 +893,27 @@ void ItemUseOutOfBattle_BlackWhiteFlute(u8 taskId)
StringExpandPlaceholders(gStringVar4, gText_UsedVar2WildRepelled);
}
gTasks[taskId].data[8] = 0;
- gTasks[taskId].func = sub_80FE1D0;
+ gTasks[taskId].func = Task_UsedBlackWhiteFlute;
}
-void task08_080A1C44(u8 taskId)
+void Task_UseDigEscapeRopeOnField(u8 taskId)
{
ResetInitialPlayerAvatarState();
StartEscapeRopeFieldEffect();
DestroyTask(taskId);
}
-void re_escape_rope(u8 taskId)
+static void ItemUseOnFieldCB_EscapeRope(u8 taskId)
{
Overworld_ResetStateAfterDigEscRope();
- sub_80FE058();
+ RemoveUsedItem();
gTasks[taskId].data[0] = 0;
- DisplayItemMessageOnField(taskId, gStringVar4, task08_080A1C44);
+ DisplayItemMessageOnField(taskId, gStringVar4, Task_UseDigEscapeRopeOnField);
}
bool8 CanUseEscapeRopeOnCurrMap(void)
{
- if (gMapHeader.flags & 2)
+ if (gMapHeader.flags & MAP_ALLOW_ESCAPE_ROPE)
return TRUE;
else
return FALSE;
@@ -901,12 +923,12 @@ void ItemUseOutOfBattle_EscapeRope(u8 taskId)
{
if (CanUseEscapeRopeOnCurrMap() == TRUE)
{
- gUnknown_0203A0F4 = re_escape_rope;
+ sItemUseOnFieldCB = ItemUseOnFieldCB_EscapeRope;
SetUpItemUseOnFieldCallback(taskId);
}
else
{
- DisplayDadsAdviceCannotUseItemMessage(taskId, gTasks[taskId].data[3]);
+ DisplayDadsAdviceCannotUseItemMessage(taskId, gTasks[taskId].tUsingRegisteredKeyItem);
}
}
@@ -922,42 +944,43 @@ void ItemUseInBattle_PokeBall(u8 taskId)
{
RemoveBagItem(gSpecialVar_ItemId, 1);
if (!InBattlePyramid())
- unknown_ItemMenu_Confirm(taskId);
+ Task_FadeAndCloseBagMenu(taskId);
else
- sub_81C5B14(taskId);
+ CloseBattlePyramidBagAndSetCallback(taskId);
}
else if (!InBattlePyramid())
{
DisplayItemMessage(taskId, 1, gText_BoxFull, BagMenu_InitListsMenu);
}
else
- DisplayItemMessageInBattlePyramid(taskId, gText_BoxFull, sub_81C6714);
+ DisplayItemMessageInBattlePyramid(taskId, gText_BoxFull, Task_CloseBattlePyramidBagMessage);
}
-void sub_80FE408(u8 taskId)
+static void Task_CloseStatIncreaseMessage(u8 taskId)
{
if (gMain.newKeys & (A_BUTTON | B_BUTTON))
{
if (!InBattlePyramid())
- unknown_ItemMenu_Confirm(taskId);
+ Task_FadeAndCloseBagMenu(taskId);
else
- sub_81C5B14(taskId);
+ CloseBattlePyramidBagAndSetCallback(taskId);
}
}
-void sub_80FE440(u8 taskId)
+static void Task_UseStatIncreaseItem(u8 taskId)
{
if(++gTasks[taskId].data[8] > 7)
{
PlaySE(SE_KAIFUKU);
RemoveBagItem(gSpecialVar_ItemId, 1);
if (!InBattlePyramid())
- DisplayItemMessage(taskId, 1, sub_806CF78(gSpecialVar_ItemId), sub_80FE408);
+ DisplayItemMessage(taskId, 1, UseStatIncreaseItem(gSpecialVar_ItemId), Task_CloseStatIncreaseMessage);
else
- DisplayItemMessageInBattlePyramid(taskId, sub_806CF78(gSpecialVar_ItemId), sub_80FE408);
+ DisplayItemMessageInBattlePyramid(taskId, UseStatIncreaseItem(gSpecialVar_ItemId), Task_CloseStatIncreaseMessage);
}
}
+// e.g. X Attack, Guard Spec
void ItemUseInBattle_StatIncrease(u8 taskId)
{
u16 partyId = gBattlerPartyIndexes[gBattlerInMenuId];
@@ -967,11 +990,11 @@ void ItemUseInBattle_StatIncrease(u8 taskId)
if (!InBattlePyramid())
DisplayItemMessage(taskId, 1, gText_WontHaveEffect, BagMenu_InitListsMenu);
else
- DisplayItemMessageInBattlePyramid(taskId, gText_WontHaveEffect, sub_81C6714);
+ DisplayItemMessageInBattlePyramid(taskId, gText_WontHaveEffect, Task_CloseBattlePyramidBagMessage);
}
else
{
- gTasks[taskId].func = sub_80FE440;
+ gTasks[taskId].func = Task_UseStatIncreaseItem;
gTasks[taskId].data[8] = 0;
}
}
@@ -981,12 +1004,12 @@ static void ItemUseInBattle_ShowPartyMenu(u8 taskId)
if (!InBattlePyramid())
{
gBagMenu->mainCallback2 = ChooseMonForInBattleItem;
- unknown_ItemMenu_Confirm(taskId);
+ Task_FadeAndCloseBagMenu(taskId);
}
else
{
gPyramidBagResources->callback2 = ChooseMonForInBattleItem;
- sub_81C5B14(taskId);
+ CloseBattlePyramidBagAndSetCallback(taskId);
}
}
@@ -1009,20 +1032,21 @@ void ItemUseInBattle_PPRecovery(u8 taskId)
ItemUseInBattle_ShowPartyMenu(taskId);
}
+// Fluffy Tail / Poke Doll
void ItemUseInBattle_Escape(u8 taskId)
{
if((gBattleTypeFlags & BATTLE_TYPE_TRAINER) == FALSE)
{
- sub_80FE058();
+ RemoveUsedItem();
if (!InBattlePyramid())
- DisplayItemMessage(taskId, 1, gStringVar4, unknown_ItemMenu_Confirm);
+ DisplayItemMessage(taskId, 1, gStringVar4, Task_FadeAndCloseBagMenu);
else
- DisplayItemMessageInBattlePyramid(taskId, gStringVar4, sub_81C5B14);
+ DisplayItemMessageInBattlePyramid(taskId, gStringVar4, CloseBattlePyramidBagAndSetCallback);
}
else
{
- DisplayDadsAdviceCannotUseItemMessage(taskId, gTasks[taskId].data[3]);
+ DisplayDadsAdviceCannotUseItemMessage(taskId, gTasks[taskId].tUsingRegisteredKeyItem);
}
}
@@ -1099,5 +1123,7 @@ void ItemUseInBattle_EnigmaBerry(u8 taskId)
void ItemUseOutOfBattle_CannotUse(u8 taskId)
{
- DisplayDadsAdviceCannotUseItemMessage(taskId, gTasks[taskId].data[3]);
+ DisplayDadsAdviceCannotUseItemMessage(taskId, gTasks[taskId].tUsingRegisteredKeyItem);
}
+
+#undef tUsingRegisteredKeyItem
diff --git a/src/overworld.c b/src/overworld.c
index 47bb278bf..fdccc3521 100644
--- a/src/overworld.c
+++ b/src/overworld.c
@@ -978,7 +978,7 @@ static u16 GetCenterScreenMetatileBehavior(void)
bool32 Overworld_IsBikingAllowed(void)
{
- if (!(gMapHeader.flags & 1))
+ if (!(gMapHeader.flags & MAP_ALLOW_BIKE))
return FALSE;
else
return TRUE;
@@ -1702,7 +1702,7 @@ void sub_80861E8(void)
static void sub_8086204(void)
{
- if ((gMapHeader.flags & 0xF8) == 8 && SecretBaseMapPopupEnabled() == TRUE)
+ if (SHOW_MAP_NAME_ENABLED && SecretBaseMapPopupEnabled() == TRUE)
ShowMapNamePopup();
FieldCB_WarpExitFadeFromBlack();
}
@@ -1948,7 +1948,7 @@ static bool32 load_map_stuff(u8 *state, u32 a2)
(*state)++;
break;
case 11:
- if ((gMapHeader.flags & 0xF8) == 8 && SecretBaseMapPopupEnabled() == TRUE)
+ if (SHOW_MAP_NAME_ENABLED && SecretBaseMapPopupEnabled() == TRUE)
ShowMapNamePopup();
(*state)++;
break;
diff --git a/src/party_menu.c b/src/party_menu.c
index 367e84295..bc4cf8c0b 100755
--- a/src/party_menu.c
+++ b/src/party_menu.c
@@ -2572,7 +2572,7 @@ static u8 GetPartyMenuActionsType(struct Pokemon *mon)
switch (gPartyMenu.menuType)
{
case PARTY_MENU_TYPE_FIELD:
- if (InMultiBattleRoom() == TRUE || GetMonData(mon, MON_DATA_IS_EGG))
+ if (InMultiPartnerRoom() == TRUE || GetMonData(mon, MON_DATA_IS_EGG))
actionType = ACTIONS_SWITCH;
else
actionType = ACTIONS_NONE; // actions populated by SetPartyMonFieldSelectionActions
@@ -5186,7 +5186,7 @@ u8 GetItemEffectType(u16 item)
else
itemEffect = gItemEffectTable[item - ITEM_POTION];
- if ((itemEffect[0] & (ITEM0_HIGH_CRIT | ITEM0_X_ATTACK)) || itemEffect[1] || itemEffect[2] || (itemEffect[3] & ITEM3_MIST))
+ if ((itemEffect[0] & (ITEM0_DIRE_HIT | ITEM0_X_ATTACK)) || itemEffect[1] || itemEffect[2] || (itemEffect[3] & ITEM3_GUARD_SPEC))
return ITEM_EFFECT_X_ITEM;
else if (itemEffect[0] & ITEM0_SACRED_ASH)
return ITEM_EFFECT_SACRED_ASH;
diff --git a/src/pokeblock.c b/src/pokeblock.c
index 342221880..b9031e173 100644
--- a/src/pokeblock.c
+++ b/src/pokeblock.c
@@ -451,7 +451,7 @@ void OpenPokeblockCase(u8 caseId, void (*callback)(void))
sPokeblockMenu->pokeblockOptionsIds = sActionsWhenGivingToLady;
sPokeblockMenu->optionsNo = ARRAY_COUNT(sActionsWhenGivingToLady);
break;
- default:
+ default: // PBLOCK_CASE_FIELD
sPokeblockMenu->pokeblockOptionsIds = sActionsOnField;
sPokeblockMenu->optionsNo = ARRAY_COUNT(sActionsOnField);
break;
diff --git a/src/pokemon.c b/src/pokemon.c
index 12820aa76..15427e6ea 100644
--- a/src/pokemon.c
+++ b/src/pokemon.c
@@ -2043,7 +2043,8 @@ static const u8 sGetMonDataEVConstants[] =
MON_DATA_SPATK_EV
};
-static const u8 gUnknown_08329EC8[] =
+// For stat-raising items
+static const u8 sStatsToRaise[] =
{
STAT_ATK, STAT_ATK, STAT_SPEED, STAT_DEF, STAT_SPATK, STAT_ACC
};
@@ -4691,7 +4692,7 @@ bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 mov
gBattleMons[battlerId].status2 &= ~STATUS2_INFATUATION;
retVal = FALSE;
}
- if ((itemEffect[cmdIndex] & ITEM0_HIGH_CRIT)
+ if ((itemEffect[cmdIndex] & ITEM0_DIRE_HIT)
&& !(gBattleMons[gActiveBattler].status2 & STATUS2_FOCUS_ENERGY))
{
gBattleMons[gActiveBattler].status2 |= STATUS2_FOCUS_ENERGY;
@@ -4745,7 +4746,7 @@ bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 mov
}
break;
case 3:
- if ((itemEffect[cmdIndex] & ITEM3_MIST)
+ if ((itemEffect[cmdIndex] & ITEM3_GUARD_SPEC)
&& gSideTimers[GetBattlerSide(gActiveBattler)].mistTimer == 0)
{
gSideTimers[GetBattlerSide(gActiveBattler)].mistTimer = 5;
@@ -5285,15 +5286,15 @@ u8 GetItemEffectParamOffset(u16 itemId, u8 effectByte, u8 effectBit)
return offset;
}
-static void sub_806CF24(s32 arg0)
+static void BufferStatRoseMessage(s32 arg0)
{
gBattlerTarget = gBattlerInMenuId;
- StringCopy(gBattleTextBuff1, gStatNamesTable[gUnknown_08329EC8[arg0]]);
+ StringCopy(gBattleTextBuff1, gStatNamesTable[sStatsToRaise[arg0]]);
StringCopy(gBattleTextBuff2, gText_StatRose);
BattleStringExpandPlaceholdersToDisplayedString(gText_PkmnsStatChanged2);
}
-u8 *sub_806CF78(u16 itemId)
+u8 *UseStatIncreaseItem(u16 itemId)
{
int i;
const u8 *itemEffect;
@@ -5314,13 +5315,14 @@ u8 *sub_806CF78(u16 itemId)
for (i = 0; i < 3; i++)
{
- if (itemEffect[i] & 0xF)
- sub_806CF24(i * 2);
- if (itemEffect[i] & 0xF0)
+ if (itemEffect[i] & (ITEM0_X_ATTACK | ITEM1_X_SPEED | ITEM2_X_SPATK))
+ BufferStatRoseMessage(i * 2);
+
+ if (itemEffect[i] & (ITEM0_DIRE_HIT | ITEM1_X_DEFEND | ITEM2_X_ACCURACY))
{
- if (i)
+ if (i != 0) // Dire Hit is the only ITEM0 above
{
- sub_806CF24(i * 2 + 1);
+ BufferStatRoseMessage(i * 2 + 1);
}
else
{
@@ -5330,7 +5332,7 @@ u8 *sub_806CF78(u16 itemId)
}
}
- if (itemEffect[3] & ITEM3_MIST)
+ if (itemEffect[3] & ITEM3_GUARD_SPEC)
{
gBattlerAttacker = gBattlerInMenuId;
BattleStringExpandPlaceholdersToDisplayedString(gText_PkmnShroudedInMist);
diff --git a/src/region_map.c b/src/region_map.c
index 75ce60056..5694d4c7a 100644
--- a/src/region_map.c
+++ b/src/region_map.c
@@ -997,7 +997,7 @@ static void RegionMap_InitializeStateBasedOnPlayerLocation(void)
break;
case MAP_TYPE_UNDERGROUND:
case MAP_TYPE_UNUSED_2:
- if (gMapHeader.flags & 0x02)
+ if (gMapHeader.flags & MAP_ALLOW_ESCAPE_ROPE)
{
mapHeader = Overworld_GetMapHeaderByGroupAndId(gSaveBlock1Ptr->escapeWarp.mapGroup, gSaveBlock1Ptr->escapeWarp.mapNum);
gRegionMap->mapSecId = mapHeader->regionMapSectionId;
diff --git a/src/secret_base.c b/src/secret_base.c
index 0c67c9596..8f954c6e8 100644
--- a/src/secret_base.c
+++ b/src/secret_base.c
@@ -16,6 +16,7 @@
#include "fldeff.h"
#include "fldeff_misc.h"
#include "international_string_util.h"
+#include "item_menu.h"
#include "link.h"
#include "list_menu.h"
#include "main.h"
diff --git a/src/start_menu.c b/src/start_menu.c
index e13fc4b26..8aacd8065 100644
--- a/src/start_menu.c
+++ b/src/start_menu.c
@@ -201,7 +201,7 @@ static void BuildLinkModeStartMenu(void);
static void BuildUnionRoomStartMenu(void);
static void BuildBattlePikeStartMenu(void);
static void BuildBattlePyramidStartMenu(void);
-static void BuildMultiBattleRoomStartMenu(void);
+static void BuildMultiPartnerRoomStartMenu(void);
static void ShowSafariBallsWindow(void);
static void ShowPyramidFloorWindow(void);
static void RemoveExtraStartMenuWindows(void);
@@ -256,9 +256,9 @@ static void BuildStartMenuActions(void)
{
BuildBattlePyramidStartMenu();
}
- else if (InMultiBattleRoom())
+ else if (InMultiPartnerRoom())
{
- BuildMultiBattleRoomStartMenu();
+ BuildMultiPartnerRoomStartMenu();
}
else
{
@@ -356,7 +356,7 @@ static void BuildBattlePyramidStartMenu(void)
AddStartMenuAction(MENU_ACTION_EXIT);
}
-static void BuildMultiBattleRoomStartMenu(void)
+static void BuildMultiPartnerRoomStartMenu(void)
{
AddStartMenuAction(MENU_ACTION_POKEMON);
AddStartMenuAction(MENU_ACTION_PLAYER);