summaryrefslogtreecommitdiff
path: root/src/script_pokemon_util_80F87D8.c
diff options
context:
space:
mode:
authorMarcus Huderle <huderlem@gmail.com>2020-01-13 20:26:20 -0600
committerMarcus Huderle <huderlem@gmail.com>2020-01-13 20:26:20 -0600
commit5a2d676e71b720e752ca8a624a5795b3b1d7eb6c (patch)
tree6ef755064008dfae8ce2942dc2762670cdabe815 /src/script_pokemon_util_80F87D8.c
parent5007d279fea5326b41b877703c74fcaa56223364 (diff)
parent22931846d680de2bc585093678db3f5721aab891 (diff)
Merge remote-tracking branch 'upstream' into tustin2121-patch-5
Diffstat (limited to 'src/script_pokemon_util_80F87D8.c')
-rwxr-xr-xsrc/script_pokemon_util_80F87D8.c174
1 files changed, 96 insertions, 78 deletions
diff --git a/src/script_pokemon_util_80F87D8.c b/src/script_pokemon_util_80F87D8.c
index 51bd73b1c..e691ed5fb 100755
--- a/src/script_pokemon_util_80F87D8.c
+++ b/src/script_pokemon_util_80F87D8.c
@@ -29,6 +29,7 @@
#include "constants/event_objects.h"
#include "constants/items.h"
#include "constants/species.h"
+#include "constants/tv.h"
#include "constants/vars.h"
#include "constants/battle_frontier.h"
@@ -39,10 +40,10 @@ extern const u16 gEventObjectPalette34[];
static const u8 gUnknown_0858D8EC[] = { 3, 4, 5, 14 };
-static void sub_80F8EE8(u8 taskId);
-static void sub_80F9088(u8 taskId);
+static void Task_ShowContestEntryMonPic(u8 taskId);
+static void Task_LinkContestWaitForConnection(u8 taskId);
static void CB2_ReturnFromChooseHalfParty(void);
-static void sub_80F94B8(void);
+static void CB2_ReturnFromChooseBattleFrontierParty(void);
void SetContestTrainerGfxIds(void)
{
@@ -51,6 +52,7 @@ void SetContestTrainerGfxIds(void)
gSaveBlock1Ptr->vars[VAR_OBJ_GFX_ID_2 - VARS_START] = gContestMons[2].trainerGfxId;
}
+// Unused
void sub_80F8814(void)
{
u16 var1;
@@ -74,14 +76,15 @@ void sub_80F8814(void)
gSpecialVar_0x8004 = var1;
}
-void sub_80F8850(void)
+void BufferContestTrainerAndMonNames(void)
{
- sub_80F8264();
- sub_80F8290();
- sub_80F8438();
+ BufferContestantTrainerName();
+ BufferContestantMonNickname();
+ BufferContestantMonSpecies();
}
-void sub_80F8864(void)
+// Unused
+void DoesContestCategoryHaveWinner(void)
{
int contestWinner;
switch (gSpecialVar_ContestCategory)
@@ -104,28 +107,28 @@ void sub_80F8864(void)
break;
}
- if (!gSaveBlock1Ptr->contestWinners[contestWinner].species)
- gSpecialVar_0x8004 = 0;
+ if (gSaveBlock1Ptr->contestWinners[contestWinner].species == SPECIES_NONE)
+ gSpecialVar_0x8004 = FALSE;
else
- gSpecialVar_0x8004 = 1;
+ gSpecialVar_0x8004 = TRUE;
}
-void sub_80F88DC(void)
+void SaveMuseumContestPainting(void)
{
sub_80DEDA8(0xFF);
}
-void sub_80F88E8(void)
+void ShouldReadyContestArtist(void)
{
if (gContestFinalStandings[gContestPlayerMonIndex] == 0
- && gSpecialVar_ContestRank == 3
+ && gSpecialVar_ContestRank == CONTEST_RANK_MASTER
&& gUnknown_02039F08[gContestPlayerMonIndex] >= 800)
{
- gSpecialVar_0x8004 = 1;
+ gSpecialVar_0x8004 = TRUE;
}
else
{
- gSpecialVar_0x8004 = 0;
+ gSpecialVar_0x8004 = FALSE;
}
}
@@ -143,9 +146,10 @@ u8 CountPlayerContestPaintings(void)
return count;
}
+// Unused
void sub_80F8970(void)
{
- s16 sp[4];
+ s16 conditions[CONTESTANT_COUNT];
int i, j;
s16 condition;
s8 var0;
@@ -153,28 +157,27 @@ void sub_80F8970(void)
u8 r8;
u8 r7;
- for (i = 0; i < 4; i++)
- sp[i] = gContestMonConditions[i];
+ for (i = 0; i < CONTESTANT_COUNT; i++)
+ conditions[i] = gContestMonConditions[i];
- for (i = 0; i < 3; i++)
+ for (i = 0; i < CONTESTANT_COUNT - 1; i++)
{
- for (j = 3; j > i; j--)
+ for (j = CONTESTANT_COUNT - 1; j > i; j--)
{
- if (sp[j - 1] < sp[j])
+ if (conditions[j - 1] < conditions[j])
{
- int temp = sp[j];
- sp[j] = sp[j - 1];
- sp[j - 1] = temp;
+ int temp;
+ SWAP(conditions[j], conditions[j - 1], temp)
}
}
}
- condition = sp[gSpecialVar_0x8006];
+ condition = conditions[gSpecialVar_0x8006];
var0 = 0;
r8 = 0;
- for (i = 0; i < 4; i++)
+ for (i = 0; i < CONTESTANT_COUNT; i++)
{
- if (sp[i] == condition)
+ if (conditions[i] == condition)
{
var0++;
if (i == gSpecialVar_0x8006)
@@ -182,15 +185,15 @@ void sub_80F8970(void)
}
}
- for (i = 0; i < 4; i++)
+ for (i = 0; i < CONTESTANT_COUNT; i++)
{
- if (sp[i] == condition)
+ if (conditions[i] == condition)
break;
}
r7 = i;
var2 = r8;
- for (i = 0; i < 4; i++)
+ for (i = 0; i < CONTESTANT_COUNT; i++)
{
if (condition == gContestMonConditions[i])
{
@@ -219,11 +222,22 @@ static void ShowContestWinnerCleanup(void)
void ShowContestWinner(void)
{
+ /*
+ if(gUnknown_0203856C)
+ {
+ sub_80AAF30();
+ gBattleStruct->unk15DDF = 1;
+ gBattleStruct->unk15DDE = sub_80B2C4C(254, 0);
+ Contest_SaveWinner(3);
+ gUnknown_0203856C = 0;
+ }
+ */
+
SetMainCallback2(CB2_ContestPainting);
gMain.savedCallback = ShowContestWinnerCleanup;
}
-void sub_80F8AFC(void)
+void SetLinkContestPlayerGfx(void)
{
int i;
@@ -248,7 +262,7 @@ void sub_80F8AFC(void)
}
}
-void sub_80F8B94(void)
+void LoadLinkContestPlayerPalettes(void)
{
int i;
u8 eventObjectId;
@@ -287,13 +301,15 @@ u8 GiveMonArtistRibbon(void)
u8 hasArtistRibbon;
hasArtistRibbon = GetMonData(&gPlayerParty[gContestMonPartyIndex], MON_DATA_ARTIST_RIBBON);
- if (!hasArtistRibbon && gContestFinalStandings[gContestPlayerMonIndex] == 0 && gSpecialVar_ContestRank == 3
- && gUnknown_02039F08[gContestPlayerMonIndex] >= 800)
+ if (!hasArtistRibbon
+ && gContestFinalStandings[gContestPlayerMonIndex] == 0
+ && gSpecialVar_ContestRank == CONTEST_RANK_MASTER
+ && gUnknown_02039F08[gContestPlayerMonIndex] >= 800)
{
hasArtistRibbon = 1;
SetMonData(&gPlayerParty[gContestMonPartyIndex], MON_DATA_ARTIST_RIBBON, &hasArtistRibbon);
- if (GetRibbonCount(&gPlayerParty[gContestMonPartyIndex]) > 4)
- sub_80EE4DC(&gPlayerParty[gContestMonPartyIndex], MON_DATA_ARTIST_RIBBON);
+ if (GetRibbonCount(&gPlayerParty[gContestMonPartyIndex]) > NUM_CUTIES_RIBBONS)
+ TryPutSpotTheCutiesOnAir(&gPlayerParty[gContestMonPartyIndex], MON_DATA_ARTIST_RIBBON);
return 1;
}
@@ -303,9 +319,9 @@ u8 GiveMonArtistRibbon(void)
}
}
-u8 sub_80F8D24(void)
+bool8 IsContestDebugActive(void)
{
- return 0;
+ return FALSE; // gUnknown_0203856C in pokeruby
}
void ShowContestEntryMonPic(void)
@@ -317,7 +333,7 @@ void ShowContestEntryMonPic(void)
u8 taskId;
u8 left, top;
- if (FindTaskIdByFunc(sub_80F8EE8) == 0xFF)
+ if (FindTaskIdByFunc(Task_ShowContestEntryMonPic) == 0xFF)
{
AllocateMonSpritesGfx();
left = 10;
@@ -325,7 +341,7 @@ void ShowContestEntryMonPic(void)
species = gContestMons[gSpecialVar_0x8006].species;
personality = gContestMons[gSpecialVar_0x8006].personality;
otId = gContestMons[gSpecialVar_0x8006].otId;
- taskId = CreateTask(sub_80F8EE8, 0x50);
+ taskId = CreateTask(Task_ShowContestEntryMonPic, 0x50);
gTasks[taskId].data[0] = 0;
gTasks[taskId].data[1] = species;
if (gSpecialVar_0x8006 == gContestPlayerMonIndex)
@@ -357,9 +373,9 @@ void ShowContestEntryMonPic(void)
}
}
-void sub_80F8EB8(void)
+void HideContestEntryMonPic(void)
{
- u8 taskId = FindTaskIdByFunc(sub_80F8EE8);
+ u8 taskId = FindTaskIdByFunc(Task_ShowContestEntryMonPic);
if (taskId != 0xFF)
{
gTasks[taskId].data[0]++;
@@ -367,7 +383,7 @@ void sub_80F8EB8(void)
}
}
-static void sub_80F8EE8(u8 taskId)
+static void Task_ShowContestEntryMonPic(u8 taskId)
{
struct Task *task = &gTasks[taskId];
struct Sprite *sprite;
@@ -403,10 +419,12 @@ static void sub_80F8EE8(u8 taskId)
void ScriptGetMultiplayerId(void)
{
- if ((gLinkContestFlags & LINK_CONTEST_FLAG_IS_LINK) && gNumLinkContestPlayers == 4 && !(gLinkContestFlags & LINK_CONTEST_FLAG_IS_WIRELESS))
+ if ((gLinkContestFlags & LINK_CONTEST_FLAG_IS_LINK)
+ && gNumLinkContestPlayers == CONTESTANT_COUNT
+ && !(gLinkContestFlags & LINK_CONTEST_FLAG_IS_WIRELESS))
gSpecialVar_Result = GetMultiplayerId();
else
- gSpecialVar_Result = 4;
+ gSpecialVar_Result = MAX_LINK_PLAYERS;
}
void ScriptRandom(void)
@@ -428,26 +446,26 @@ void ScriptRandom(void)
*scriptPtr = random % *scriptPtr;
}
-u16 sub_80F903C(void)
+u16 GetContestRand(void)
{
gContestRngValue = 1103515245 * gContestRngValue + 24691;
return gContestRngValue >> 16;
}
-u8 sub_80F905C(void)
+bool8 LinkContestWaitForConnection(void)
{
if (gLinkContestFlags & LINK_CONTEST_FLAG_IS_WIRELESS)
{
- CreateTask(sub_80F9088, 5);
- return 1;
+ CreateTask(Task_LinkContestWaitForConnection, 5);
+ return TRUE;
}
else
{
- return 0;
+ return FALSE;
}
}
-static void sub_80F9088(u8 taskId)
+static void Task_LinkContestWaitForConnection(u8 taskId)
{
switch (gTasks[taskId].data[0])
{
@@ -471,7 +489,7 @@ static void sub_80F9088(u8 taskId)
}
}
-void sub_80F90DC(void)
+void LinkContestTryShowWirelessIndicator(void)
{
if (gLinkContestFlags & LINK_CONTEST_FLAG_IS_WIRELESS)
{
@@ -483,7 +501,7 @@ void sub_80F90DC(void)
}
}
-void sub_80F910C(void)
+void LinkContestTryHideWirelessIndicator(void)
{
if (gLinkContestFlags & LINK_CONTEST_FLAG_IS_WIRELESS)
{
@@ -492,25 +510,25 @@ void sub_80F910C(void)
}
}
-u8 sub_80F9134(void)
+bool8 IsContestWithRSPlayer(void)
{
if (gLinkContestFlags & LINK_CONTEST_FLAG_HAS_RS_PLAYER)
- return 1;
+ return TRUE;
else
- return 0;
+ return FALSE;
}
-void sub_80F9154(void)
+void ClearLinkContestFlags(void)
{
gLinkContestFlags = 0;
}
-u8 sub_80F9160(void)
+bool8 IsWirelessContest(void)
{
if (gLinkContestFlags & LINK_CONTEST_FLAG_IS_WIRELESS)
- return 1;
+ return TRUE;
else
- return 0;
+ return FALSE;
}
void HealPlayerParty(void)
@@ -585,14 +603,14 @@ void HasEnoughMonsForDoubleBattle(void)
{
switch (GetMonsStateToDoubles())
{
- case 0:
- gSpecialVar_Result = 0;
+ case PLAYER_HAS_TWO_USABLE_MONS:
+ gSpecialVar_Result = PLAYER_HAS_TWO_USABLE_MONS;
break;
- case 1:
- gSpecialVar_Result = 1;
+ case PLAYER_HAS_ONE_MON:
+ gSpecialVar_Result = PLAYER_HAS_ONE_MON;
break;
- case 2:
- gSpecialVar_Result = 2;
+ case PLAYER_HAS_ONE_USABLE_MON:
+ gSpecialVar_Result = PLAYER_HAS_ONE_USABLE_MON;
break;
}
}
@@ -610,7 +628,7 @@ static bool8 CheckPartyMonHasHeldItem(u16 item)
return FALSE;
}
-bool8 sub_80F9370(void)
+bool8 DoesPartyHaveEnigmaBerry(void)
{
bool8 hasItem = CheckPartyMonHasHeldItem(ITEM_ENIGMA_BERRY);
if (hasItem == TRUE)
@@ -624,7 +642,7 @@ void CreateScriptedWildMon(u16 species, u8 level, u16 item)
u8 heldItem[2];
ZeroEnemyPartyMons();
- CreateMon(&gEnemyParty[0], species, level, 0x20, 0, 0, OT_ID_PLAYER_ID, 0);
+ CreateMon(&gEnemyParty[0], species, level, 32, 0, 0, OT_ID_PLAYER_ID, 0);
if (item)
{
heldItem[0] = item;
@@ -646,7 +664,7 @@ void ScriptSetMonMoveSlot(u8 monIndex, u16 move, u8 slot)
void ChooseHalfPartyForBattle(void)
{
gMain.savedCallback = CB2_ReturnFromChooseHalfParty;
- VarSet(VAR_FRONTIER_FACILITY, FRONTIER_FACILITY_DOUBLE_COLOSSEUM);
+ VarSet(VAR_FRONTIER_FACILITY, FACILITY_MULTI_OR_EREADER);
InitChooseHalfPartyForBattle(0);
}
@@ -665,21 +683,21 @@ static void CB2_ReturnFromChooseHalfParty(void)
SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic);
}
-void sub_80F9490(void)
+void ChoosePartyForBattleFrontier(void)
{
- gMain.savedCallback = sub_80F94B8;
+ gMain.savedCallback = CB2_ReturnFromChooseBattleFrontierParty;
InitChooseHalfPartyForBattle(gSpecialVar_0x8004 + 1);
}
-static void sub_80F94B8(void)
+static void CB2_ReturnFromChooseBattleFrontierParty(void)
{
switch (gSelectedOrderFromParty[0])
{
case 0:
- gSpecialVar_Result = 0;
+ gSpecialVar_Result = FALSE;
break;
default:
- gSpecialVar_Result = 1;
+ gSpecialVar_Result = TRUE;
break;
}
@@ -688,20 +706,20 @@ static void sub_80F94B8(void)
void ReducePlayerPartyToSelectedMons(void)
{
- struct Pokemon party[4];
+ struct Pokemon party[MAX_FRONTIER_PARTY_SIZE];
int i;
CpuFill32(0, party, sizeof party);
// copy the selected pokemon according to the order.
- for (i = 0; i < 4; i++)
+ for (i = 0; i < MAX_FRONTIER_PARTY_SIZE; i++)
if (gSelectedOrderFromParty[i]) // as long as the order keeps going (did the player select 1 mon? 2? 3?), do not stop
party[i] = gPlayerParty[gSelectedOrderFromParty[i] - 1]; // index is 0 based, not literal
CpuFill32(0, gPlayerParty, sizeof gPlayerParty);
// overwrite the first 4 with the order copied to.
- for (i = 0; i < 4; i++)
+ for (i = 0; i < MAX_FRONTIER_PARTY_SIZE; i++)
gPlayerParty[i] = party[i];
CalculatePlayerPartyCount();