Merge branch 'master' of https://github.com/pret/pokeemerald into secret-base

This commit is contained in:
Slawter666
2019-01-05 19:54:26 +00:00
258 changed files with 17555 additions and 26977 deletions
+10 -10
View File
@@ -72,10 +72,10 @@ static const struct UCoords8 sBattlerCoords[][4] =
// One entry for each of the four Castform forms.
const struct MonCoords gCastformFrontSpriteCoords[] =
{
{ 0x44, 17 }, // NORMAL
{ 0x66, 9 }, // SUN
{ 0x46, 9 }, // RAIN
{ 0x86, 8 }, // HAIL
{ .size = 0x44, .y_offset = 17 }, // NORMAL
{ .size = 0x66, .y_offset = 9 }, // SUN
{ .size = 0x46, .y_offset = 9 }, // RAIN
{ .size = 0x86, .y_offset = 8 }, // HAIL
};
static const u8 sCastformElevations[] =
@@ -2216,17 +2216,17 @@ s16 GetBattlerSpriteCoordAttr(u8 battlerId, u8 attr)
switch (attr)
{
case BATTLER_COORD_ATTR_HEIGHT:
return (coords->coords & 0xf) * 8;
return (coords->size & 0xf) * 8;
case BATTLER_COORD_ATTR_WIDTH:
return (coords->coords >> 4) * 8;
return (coords->size >> 4) * 8;
case BATTLER_COORD_ATTR_LEFT:
return GetBattlerSpriteCoord(battlerId, BATTLER_COORD_X_2) - ((coords->coords >> 4) * 4);
return GetBattlerSpriteCoord(battlerId, BATTLER_COORD_X_2) - ((coords->size >> 4) * 4);
case BATTLER_COORD_ATTR_RIGHT:
return GetBattlerSpriteCoord(battlerId, BATTLER_COORD_X_2) + ((coords->coords >> 4) * 4);
return GetBattlerSpriteCoord(battlerId, BATTLER_COORD_X_2) + ((coords->size >> 4) * 4);
case BATTLER_COORD_ATTR_TOP:
return GetBattlerSpriteCoord(battlerId, BATTLER_COORD_Y_PIC_OFFSET) - ((coords->coords & 0xf) * 4);
return GetBattlerSpriteCoord(battlerId, BATTLER_COORD_Y_PIC_OFFSET) - ((coords->size & 0xf) * 4);
case BATTLER_COORD_ATTR_BOTTOM:
return GetBattlerSpriteCoord(battlerId, BATTLER_COORD_Y_PIC_OFFSET) + ((coords->coords & 0xf) * 4);
return GetBattlerSpriteCoord(battlerId, BATTLER_COORD_Y_PIC_OFFSET) + ((coords->size & 0xf) * 4);
case BATTLER_COORD_ATTR_RAW_BOTTOM:
ret = GetBattlerSpriteCoord(battlerId, BATTLER_COORD_Y) + 31;
return ret - coords->y_offset;
+2 -2
View File
@@ -1301,7 +1301,7 @@ static void LinkOpponentHandleDrawTrainerPic(void)
SetMultiuseSpriteTemplateToTrainerBack(trainerPicId, GetBattlerPosition(gActiveBattler));
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate,
xPos,
(8 - gTrainerFrontPicCoords[trainerPicId].coords) * 4 + 40,
(8 - gTrainerFrontPicCoords[trainerPicId].size) * 4 + 40,
GetBattlerSpriteSubpriority(gActiveBattler));
gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = -240;
@@ -1324,7 +1324,7 @@ static void LinkOpponentHandleTrainerSlide(void)
DecompressTrainerFrontPic(trainerPicId, gActiveBattler);
SetMultiuseSpriteTemplateToTrainerBack(trainerPicId, GetBattlerPosition(gActiveBattler));
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, 176, (8 - gTrainerFrontPicCoords[trainerPicId].coords) * 4 + 40, 0x1E);
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, 176, (8 - gTrainerFrontPicCoords[trainerPicId].size) * 4 + 40, 0x1E);
gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = 96;
gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.x += 32;
+1 -1
View File
@@ -1143,7 +1143,7 @@ static void LinkPartnerHandleDrawTrainerPic(void)
DecompressTrainerBackPic(trainerPicId, gActiveBattler);
SetMultiuseSpriteTemplateToTrainerBack(trainerPicId, GetBattlerPosition(gActiveBattler));
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, xPos, (8 - gTrainerBackPicCoords[trainerPicId].coords) * 4 + 80, GetBattlerSpriteSubpriority(gActiveBattler));
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, xPos, (8 - gTrainerBackPicCoords[trainerPicId].size) * 4 + 80, GetBattlerSpriteSubpriority(gActiveBattler));
gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler;
gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = 240;
+2 -2
View File
@@ -1292,7 +1292,7 @@ static void OpponentHandleDrawTrainerPic(void)
SetMultiuseSpriteTemplateToTrainerBack(trainerPicId, GetBattlerPosition(gActiveBattler));
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate,
xPos,
(8 - gTrainerFrontPicCoords[trainerPicId].coords) * 4 + 40,
(8 - gTrainerFrontPicCoords[trainerPicId].size) * 4 + 40,
GetBattlerSpriteSubpriority(gActiveBattler));
gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = -240;
@@ -1362,7 +1362,7 @@ static void OpponentHandleTrainerSlide(void)
DecompressTrainerFrontPic(trainerPicId, gActiveBattler);
SetMultiuseSpriteTemplateToTrainerBack(trainerPicId, GetBattlerPosition(gActiveBattler));
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, 176, (8 - gTrainerFrontPicCoords[trainerPicId].coords) * 4 + 40, 0x1E);
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, 176, (8 - gTrainerFrontPicCoords[trainerPicId].size) * 4 + 40, 0x1E);
gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = 96;
gSprites[gBattlerSpriteIds[gActiveBattler]].pos1.x += 32;
+4 -4
View File
@@ -2291,18 +2291,18 @@ static void PlayerHandleDrawTrainerPic(void)
if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER && gPartnerTrainerId != TRAINER_STEVEN_PARTNER)
{
xPos = 90;
yPos = (8 - gTrainerFrontPicCoords[trainerPicId].coords) * 4 + 80;
yPos = (8 - gTrainerFrontPicCoords[trainerPicId].size) * 4 + 80;
}
else
{
yPos = (8 - gTrainerBackPicCoords[trainerPicId].coords) * 4 + 80;
yPos = (8 - gTrainerBackPicCoords[trainerPicId].size) * 4 + 80;
}
}
else
{
xPos = 80;
yPos = (8 - gTrainerBackPicCoords[trainerPicId].coords) * 4 + 80;
yPos = (8 - gTrainerBackPicCoords[trainerPicId].size) * 4 + 80;
}
// Use front pic table for any tag battles unless your partner is Steven.
@@ -2365,7 +2365,7 @@ static void PlayerHandleTrainerSlide(void)
DecompressTrainerBackPic(trainerPicId, gActiveBattler);
SetMultiuseSpriteTemplateToTrainerBack(trainerPicId, GetBattlerPosition(gActiveBattler));
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, 80, (8 - gTrainerBackPicCoords[trainerPicId].coords) * 4 + 80, 30);
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, 80, (8 - gTrainerBackPicCoords[trainerPicId].size) * 4 + 80, 30);
gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler;
gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = -96;
+2 -2
View File
@@ -1308,13 +1308,13 @@ static void PlayerPartnerHandleDrawTrainerPic(void)
{
trainerPicId = TRAINER_BACK_PIC_STEVEN;
xPos = 90;
yPos = (8 - gTrainerBackPicCoords[trainerPicId].coords) * 4 + 80;
yPos = (8 - gTrainerBackPicCoords[trainerPicId].size) * 4 + 80;
}
else
{
trainerPicId = GetFrontierTrainerFrontSpriteId(gPartnerTrainerId);
xPos = 32;
yPos = (8 - gTrainerFrontPicCoords[trainerPicId].coords) * 4 + 80;
yPos = (8 - gTrainerFrontPicCoords[trainerPicId].size) * 4 + 80;
}
// Use back pic only if the partner is Steven
+1 -1
View File
@@ -1248,7 +1248,7 @@ static void RecordedOpponentHandleDrawTrainerPic(void)
SetMultiuseSpriteTemplateToTrainerBack(trainerPicId, GetBattlerPosition(gActiveBattler));
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate,
xPos,
(8 - gTrainerFrontPicCoords[trainerPicId].coords) * 4 + 40,
(8 - gTrainerFrontPicCoords[trainerPicId].size) * 4 + 40,
GetBattlerSpriteSubpriority(gActiveBattler));
gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = -240;
+3 -3
View File
@@ -1217,18 +1217,18 @@ static void RecordedPlayerHandleDrawTrainerPic(void)
if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER)
{
xPos = 90;
yPos = (8 - gTrainerFrontPicCoords[trainerPicId].coords) * 4 + 80;
yPos = (8 - gTrainerFrontPicCoords[trainerPicId].size) * 4 + 80;
}
else
{
yPos = (8 - gTrainerBackPicCoords[trainerPicId].coords) * 4 + 80;
yPos = (8 - gTrainerBackPicCoords[trainerPicId].size) * 4 + 80;
}
}
else
{
xPos = 80;
yPos = (8 - gTrainerBackPicCoords[trainerPicId].coords) * 4 + 80;
yPos = (8 - gTrainerBackPicCoords[trainerPicId].size) * 4 + 80;
}
if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER)
+1 -1
View File
@@ -359,7 +359,7 @@ static void SafariHandleDrawTrainerPic(void)
gBattlerSpriteIds[gActiveBattler] = CreateSprite(
&gMultiuseSpriteTemplate,
80,
(8 - gTrainerBackPicCoords[gSaveBlock2Ptr->playerGender].coords) * 4 + 80,
(8 - gTrainerBackPicCoords[gSaveBlock2Ptr->playerGender].size) * 4 + 80,
30);
gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler;
gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = 240;
+2 -2
View File
@@ -1036,7 +1036,7 @@ static void WallyHandleDrawTrainerPic(void)
SetMultiuseSpriteTemplateToTrainerBack(TRAINER_BACK_PIC_WALLY, GetBattlerPosition(gActiveBattler));
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate,
80,
80 + 4 * (8 - gTrainerBackPicCoords[TRAINER_BACK_PIC_WALLY].coords),
80 + 4 * (8 - gTrainerBackPicCoords[TRAINER_BACK_PIC_WALLY].size),
30);
gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler;
gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = 240;
@@ -1051,7 +1051,7 @@ static void WallyHandleTrainerSlide(void)
SetMultiuseSpriteTemplateToTrainerBack(TRAINER_BACK_PIC_WALLY, GetBattlerPosition(gActiveBattler));
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate,
80,
80 + 4 * (8 - gTrainerBackPicCoords[TRAINER_BACK_PIC_WALLY].coords),
80 + 4 * (8 - gTrainerBackPicCoords[TRAINER_BACK_PIC_WALLY].size),
30);
gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler;
gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = -96;
+8 -3
View File
@@ -5847,17 +5847,22 @@ static void sub_8194220(u8 taskId)
gTasks[i].data[0] = 0;
}
ScanlineEffect_Clear();
for (i = 0; i < 91; i++)
i = 0;
while (i < 91)
{
gScanlineEffectRegBuffers[0][i] = 0x1F0A;
gScanlineEffectRegBuffers[1][i] = 0x1F0A;
i++;
}
for (i = 91; i < 160; i++)
while (i < 160)
{
asm(""::"r"(i));
gScanlineEffectRegBuffers[0][i] = 0x1F09;
gScanlineEffectRegBuffers[1][i] = 0x1F09;
i++;
}
ScanlineEffect_SetParams(gUnknown_0860CF44);
DestroyTask(taskId);
break;
+12 -6
View File
@@ -656,16 +656,19 @@ static void CB2_InitBattleInternal(void)
gBattle_WIN0V = 0x5051;
ScanlineEffect_Clear();
for (i = 0; i < 80; i++)
i = 0;
while (i < 80)
{
gScanlineEffectRegBuffers[0][i] = 0xF0;
gScanlineEffectRegBuffers[1][i] = 0xF0;
i++;
}
for (i = 80; i < 160; i++)
while (i < 160)
{
asm(""::"r"(i));
gScanlineEffectRegBuffers[0][i] = 0xFF10;
gScanlineEffectRegBuffers[1][i] = 0xFF10;
i++;
}
ScanlineEffect_SetParams(sIntroScanlineParams16Bit);
@@ -2222,16 +2225,19 @@ void sub_8038D64(void)
gBattle_WIN0V = 0x5051;
ScanlineEffect_Clear();
for (i = 0; i < 80; i++)
i = 0;
while (i < 80)
{
gScanlineEffectRegBuffers[0][i] = 0xF0;
gScanlineEffectRegBuffers[1][i] = 0xF0;
i++;
}
for (i = 80; i < 160; i++)
while (i < 160)
{
asm(""::"r"(i)); // Needed to stop the compiler from optimizing out the loop counter.
gScanlineEffectRegBuffers[0][i] = 0xFF10;
gScanlineEffectRegBuffers[1][i] = 0xFF10;
i++;
}
ResetPaletteFade();
+1 -1
View File
@@ -1557,7 +1557,7 @@ static bool32 sub_80B1D94(s32 rematchTableId)
if (rematchTableId >= REMATCH_ELITE_FOUR_ENTRIES)
return TRUE;
else if (rematchTableId == REMATCH_WALLY_ENTRY)
return (FlagGet(FLAG_0x07E) == FALSE);
return (FlagGet(FLAG_DEFEATED_WALLY_VICTORY_ROAD) == FALSE);
else
return FALSE;
}
+2 -2
View File
@@ -3158,10 +3158,10 @@ void sub_81653CC(void)
{
if (gSaveBlock2Ptr->frontier.field_CA8 == 1)
sub_80F01B8();
if (FlagGet(FLAG_0x077) == TRUE)
if (FlagGet(FLAG_CANCEL_BATTLE_ROOM_CHALLENGE) == TRUE)
{
sub_80F01B8();
FlagClear(FLAG_0x077);
FlagClear(FLAG_CANCEL_BATTLE_ROOM_CHALLENGE);
}
}
+14 -14
View File
@@ -176,7 +176,7 @@ EWRAM_DATA s16 gUnknown_02039F08[4] = {0};
EWRAM_DATA s16 gUnknown_02039F10[4] = {0};
EWRAM_DATA s16 gUnknown_02039F18[4] = {0};
EWRAM_DATA u8 gContestFinalStandings[4] = {0};
EWRAM_DATA u8 gUnknown_02039F24 = 0;
EWRAM_DATA u8 gContestMonPartyIndex = 0;
EWRAM_DATA u8 gContestPlayerMonIndex = 0;
EWRAM_DATA u8 gUnknown_02039F26[4] = {0};
EWRAM_DATA u8 gIsLinkContest = 0;
@@ -185,8 +185,8 @@ EWRAM_DATA u8 gIsLinkContest = 0;
EWRAM_DATA u8 gUnknown_02039F2B = 0;
EWRAM_DATA u16 gSpecialVar_ContestCategory = 0;
EWRAM_DATA u16 gSpecialVar_ContestRank = 0;
EWRAM_DATA u8 gUnknown_02039F30 = 0;
EWRAM_DATA u8 gUnknown_02039F31 = 0;
EWRAM_DATA u8 gNumLinkContestPlayers = 0;
EWRAM_DATA u8 gHighestRibbonRank = 0;
EWRAM_DATA struct ContestResources * gContestResources = NULL;
EWRAM_DATA u8 sContestBgCopyFlags = 0;
EWRAM_DATA struct ContestWinner gUnknown_02039F3C = {0};
@@ -932,9 +932,9 @@ void sub_80D8A88(u8 taskId)
{
s32 i;
for (i = 0; i + gUnknown_02039F30 < 4; i++)
for (i = 0; i + gNumLinkContestPlayers < 4; i++)
{
gContestResources->field_4[gUnknown_02039F30 + i].currMove = sub_80DB8B8(gUnknown_02039F30 + i);
gContestResources->field_4[gNumLinkContestPlayers + i].currMove = sub_80DB8B8(gNumLinkContestPlayers + i);
}
}
gTasks[taskId].data[0] = 0;
@@ -2110,7 +2110,7 @@ void sub_80DAB8C(u8 contestType, u8 rank)
opponentsCount--;
}
sub_80DA8C8(gUnknown_02039F24);
sub_80DA8C8(gContestMonPartyIndex);
}
#ifdef NONMATCHING
@@ -2121,7 +2121,7 @@ void sub_80DACBC(u8 contestType, u8 rank, bool32 isPostgame)
u8 opponents[100];
const u8 * r6;
if (gUnknown_02039F30 == 4)
if (gNumLinkContestPlayers == 4)
return;
r6 = gUnknown_085898A4;
@@ -2151,14 +2151,14 @@ void sub_80DACBC(u8 contestType, u8 rank, bool32 isPostgame)
opponents[opponentsCount++] = i;
}
opponents[opponentsCount] = 0xFF;
for (i = 0; i < 4 - gUnknown_02039F30; i++)
for (i = 0; i < 4 - gNumLinkContestPlayers; i++)
{
u16 rnd = sub_80F903C() % opponentsCount;
s32 j;
gContestMons[gUnknown_02039F30 + i] = gContestOpponents[opponents[rnd]];
sub_80DF9D4(gContestMons[gUnknown_02039F30 + i].trainerName);
sub_80DF9E0(gContestMons[gUnknown_02039F30 + i].nickname, GAME_LANGUAGE);
gContestMons[gNumLinkContestPlayers + i] = gContestOpponents[opponents[rnd]];
sub_80DF9D4(gContestMons[gNumLinkContestPlayers + i].trainerName);
sub_80DF9E0(gContestMons[gNumLinkContestPlayers + i].nickname, GAME_LANGUAGE);
for (j = rnd; opponents[j] != 0xFF; j++)
opponents[j] = opponents[j + 1];
opponentsCount--;
@@ -2178,7 +2178,7 @@ NAKED void sub_80DACBC(u8 contestType, u8 rank, bool32 isPostgame)
"\tlsls r1, 24\n"
"\tlsrs r2, r1, 24\n"
"\tmovs r7, 0\n"
"\tldr r0, =gUnknown_02039F30\n"
"\tldr r0, =gNumLinkContestPlayers\n"
"\tldrb r1, [r0]\n"
"\tmov r9, r0\n"
"\tcmp r1, 0x4\n"
@@ -2471,12 +2471,12 @@ u16 sub_80DAFE0(u8 who, u8 contestCategory)
return statMain + (statSub1 + statSub2 + gContestMons[who].sheen) / 2;
}
void sub_80DB09C(u8 a0)
void sub_80DB09C(u8 contestCategory)
{
s32 i;
for (i = 0; i < 4; i++)
gContestMonConditions[i] = sub_80DAFE0(i, a0);
gContestMonConditions[i] = sub_80DAFE0(i, contestCategory);
}
u8 sub_80DB0C4(void)
File diff suppressed because it is too large Load Diff
+548
View File
@@ -0,0 +1,548 @@
#include "global.h"
#include "contest.h"
#include "decompress.h"
#include "event_data.h"
#include "link.h"
#include "pokemon.h"
#include "random.h"
#include "task.h"
#include "constants/flags.h"
static void sub_80FC5C0(u8);
static void sub_80FC5DC(u8);
bool32 sub_80FC4F4(void *src, u16 size)
{
memcpy(gDecompressionBuffer, src, size);
if (SendBlock(bitmask_all_link_players_but_self(), gDecompressionBuffer, size))
return TRUE;
else
return FALSE;
}
bool8 sub_80FC530(u8 arg0)
{
u8 mask = (1 << arg0);
if (!(GetBlockReceivedStatus() & mask))
{
return FALSE;
}
else
{
ResetBlockReceivedFlag(arg0);
return TRUE;
}
}
bool8 sub_80FC55C(void)
{
if (GetBlockReceivedStatus() == sub_800A9D8())
{
ResetBlockReceivedFlags();
return TRUE;
}
else
{
return FALSE;
}
}
void sub_80FC580(u8 taskId)
{
u8 i;
for (i = 0; i < 4; i++)
gBlockRecvBuffer[i][0] = 0xFF;
gTasks[taskId].data[0] = 0;
gTasks[taskId].func = sub_80FC5C0;
}
static void sub_80FC5C0(u8 taskId)
{
gTasks[taskId].func = sub_80FC5DC;
}
static void sub_80FC5DC(u8 taskId)
{
int i;
if (!gReceivedRemoteLinkPlayers)
return;
gContestPlayerMonIndex = GetMultiplayerId();
gNumLinkContestPlayers = GetLinkPlayerCount();
gIsLinkContest = 1;
if (gWirelessCommType == 1)
gIsLinkContest = 3;
for (i = 0; i < gNumLinkContestPlayers && (u32)(gLinkPlayers[i].version & 0xFF) - 1 > VERSION_RUBY - 1; i++)
;
if (i < gNumLinkContestPlayers)
gIsLinkContest |= 0x4;
SwitchTaskToFollowupFunc(taskId);
}
bool32 sub_80FC670(s16 *arg0)
{
if (gIsLinkContest & 0x4)
return TRUE;
switch (*arg0)
{
case 0:
if (IsLinkTaskFinished())
{
sub_800ADF8();
(*arg0)++;
}
return FALSE;
case 1:
(*arg0)++;
return FALSE;
default:
if (IsLinkTaskFinished() != TRUE)
return FALSE;
else
return TRUE;
}
}
void sub_80FC6BC(u8 taskId)
{
int i;
if (!sub_80FC670(&gTasks[taskId].data[12]))
return;
switch (gTasks[taskId].data[0])
{
case 0:
if (GetMultiplayerId() == 0)
{
if (IsLinkTaskFinished())
{
memcpy(gBlockSendBuffer, &gContestMons[gContestPlayerMonIndex], sizeof(struct ContestPokemon));
gTasks[taskId].data[0] = 10;
}
}
else
{
memcpy(gBlockSendBuffer, &gContestMons[gContestPlayerMonIndex], sizeof(struct ContestPokemon));
gTasks[taskId].data[0] = 1;
}
break;
case 1:
if (sub_80FC55C())
{
for (i = 0; i < gNumLinkContestPlayers; i++)
{
memcpy(&gContestMons[i], gBlockRecvBuffer[i], sizeof(struct ContestPokemon));
sub_80DFA08(&gContestMons[i], gLinkPlayers[i].language);
}
gTasks[taskId].data[0]++;
}
break;
case 10:
if (++gTasks[taskId].data[11] > 300)
{
sub_800A4D8(2);
gTasks[taskId].data[0] = 1;
}
break;
default:
gTasks[taskId].data[0] = 0;
gTasks[taskId].data[11] = 0;
gTasks[taskId].data[12] = 0;
SwitchTaskToFollowupFunc(taskId);
break;
}
}
void sub_80FC804(u8 taskId)
{
switch (gTasks[taskId].data[0])
{
case 0:
if (GetMultiplayerId() == 0)
{
if (IsLinkTaskFinished() && sub_80FC4F4(&gRngValue, sizeof(gRngValue)) == TRUE)
gTasks[taskId].data[0]++;
}
else
{
gTasks[taskId].data[0]++;
}
break;
case 1:
if (sub_80FC530(0))
{
memcpy(&gRngValue, gBlockRecvBuffer[0], sizeof(gRngValue));
memcpy(&gContestRngValue, gBlockRecvBuffer[0], sizeof(gContestRngValue));
gTasks[taskId].data[0]++;
}
break;
default:
gTasks[taskId].data[0] = 0;
SwitchTaskToFollowupFunc(taskId);
break;
}
}
void sub_80FC894(u8 taskId)
{
int i;
if (!sub_80FC670(&gTasks[taskId].data[12]))
return;
switch (gTasks[taskId].data[0])
{
case 0:
gBlockSendBuffer[0] = gTasks[taskId].data[9];
if (GetMultiplayerId() == 0)
{
if (IsLinkTaskFinished())
gTasks[taskId].data[0] = 10;
}
else
{
gTasks[taskId].data[0]++;
}
break;
case 1:
if (sub_80FC55C())
{
for (i = 0; i < gNumLinkContestPlayers; i++)
gTasks[taskId].data[i + 1] = gBlockRecvBuffer[i][0];
gTasks[taskId].data[0]++;
}
break;
case 10:
if (++gTasks[taskId].data[11] > 10)
{
sub_800A4D8(2);
gTasks[taskId].data[0] = 1;
}
break;
default:
gTasks[taskId].data[0] = 0;
gTasks[taskId].data[11] = 0;
gTasks[taskId].data[12] = 0;
SwitchTaskToFollowupFunc(taskId);
break;
}
}
void sub_80FC998(u8 taskId)
{
switch (gTasks[taskId].data[0])
{
case 0:
if (IsLinkTaskFinished())
{
if (sub_80FC4F4(&gContestPlayerMonIndex, sizeof(gContestPlayerMonIndex)) == TRUE)
gTasks[taskId].data[0]++;
}
break;
case 1:
if (sub_80FC55C())
gTasks[taskId].data[0]++;
break;
default:
gTasks[taskId].data[0] = 0;
SwitchTaskToFollowupFunc(taskId);
break;
}
}
void sub_80FC9F8(u8 taskId)
{
int i;
switch (gTasks[taskId].data[0])
{
case 0:
if (IsLinkTaskFinished())
{
if (sub_80FC4F4(&gContestResources->field_4[gContestPlayerMonIndex].currMove, sizeof(gContestResources->field_4[gContestPlayerMonIndex].currMove)) == TRUE)
gTasks[taskId].data[0]++;
}
break;
case 1:
if (sub_80FC55C())
{
for (i = 0; i < gNumLinkContestPlayers; i++)
gContestResources->field_4[i].currMove = gBlockRecvBuffer[i][0];
gTasks[taskId].data[0]++;
}
break;
default:
gTasks[taskId].data[0] = 0;
SwitchTaskToFollowupFunc(taskId);
break;
}
}
void sub_80FCACC(u8 taskId)
{
switch (gTasks[taskId].data[0])
{
case 0:
if (IsLinkTaskFinished())
{
if (sub_80FC4F4(gUnknown_02039F08, sizeof(gUnknown_02039F08)) == 1)
gTasks[taskId].data[0]++;
}
break;
case 1:
if (sub_80FC55C())
{
memcpy(gUnknown_02039F08, gBlockRecvBuffer[gUnknown_02039F2B], sizeof(gUnknown_02039F08));
gTasks[taskId].data[0]++;
}
break;
case 2:
case 5:
case 8:
case 11:
if (gTasks[taskId].data[1]++ > 10)
{
gTasks[taskId].data[1] = 0;
gTasks[taskId].data[0]++;
}
break;
case 3:
if (IsLinkTaskFinished())
{
if (sub_80FC4F4(gUnknown_02039F10, sizeof(gUnknown_02039F10)) == 1)
gTasks[taskId].data[0]++;
}
break;
case 4:
if (sub_80FC55C())
{
memcpy(gUnknown_02039F10, gBlockRecvBuffer[gUnknown_02039F2B], sizeof(gUnknown_02039F10));
gTasks[taskId].data[0]++;
}
break;
case 6:
if (IsLinkTaskFinished())
{
if (sub_80FC4F4(gUnknown_02039F18, sizeof(gUnknown_02039F18)) == 1)
gTasks[taskId].data[0]++;
}
break;
case 7:
if (sub_80FC55C())
{
memcpy(gUnknown_02039F18, gBlockRecvBuffer[gUnknown_02039F2B], sizeof(gUnknown_02039F18));
gTasks[taskId].data[0]++;
}
break;
case 9:
if (IsLinkTaskFinished())
{
if (sub_80FC4F4(gContestFinalStandings, sizeof(gContestFinalStandings)) == 1)
gTasks[taskId].data[0]++;
}
break;
case 10:
if (sub_80FC55C())
{
memcpy(gContestFinalStandings, gBlockRecvBuffer[gUnknown_02039F2B], sizeof(gContestFinalStandings));
gTasks[taskId].data[0]++;
}
break;
default:
gTasks[taskId].data[0] = 0;
SwitchTaskToFollowupFunc(taskId);
break;
}
}
void sub_80FCC88(u8 taskId)
{
switch (gTasks[taskId].data[0])
{
case 0:
if (IsLinkTaskFinished())
{
if (sub_80FC4F4(gContestResources->field_4, 4 * sizeof(struct ContestantStatus)) == 1)
gTasks[taskId].data[0]++;
}
break;
case 1:
if (sub_80FC55C())
{
memcpy(gContestResources->field_4, gBlockRecvBuffer[gUnknown_02039F2B], 4 * sizeof(struct ContestantStatus));
gTasks[taskId].data[0]++;
}
break;
case 2:
case 5:
case 8:
case 11:
if (gTasks[taskId].data[1]++ > 10)
{
gTasks[taskId].data[1] = 0;
gTasks[taskId].data[0]++;
}
break;
case 3:
if (IsLinkTaskFinished())
{
if (sub_80FC4F4(gContestResources->field_8, sizeof(struct UnknownContestStruct7)) == 1)
gTasks[taskId].data[0]++;
}
break;
case 4:
if (sub_80FC55C())
{
memcpy(gContestResources->field_8, gBlockRecvBuffer[gUnknown_02039F2B], sizeof(struct UnknownContestStruct7));
gTasks[taskId].data[0]++;
}
break;
case 6:
if (IsLinkTaskFinished())
{
if (sub_80FC4F4(gContestResources->field_10, sizeof(struct UnknownContestStruct5)) == 1)
gTasks[taskId].data[0]++;
}
break;
case 7:
if (sub_80FC55C())
{
memcpy(gContestResources->field_10, gBlockRecvBuffer[gUnknown_02039F2B], sizeof(struct UnknownContestStruct5));
gTasks[taskId].data[0]++;
}
break;
case 9:
if (IsLinkTaskFinished())
{
if (sub_80FC4F4(gUnknown_02039F26, sizeof(gUnknown_02039F26)) == 1)
gTasks[taskId].data[0]++;
}
break;
case 10:
if (sub_80FC55C())
{
memcpy(gUnknown_02039F26, gBlockRecvBuffer[gUnknown_02039F2B], sizeof(gUnknown_02039F26));
gTasks[taskId].data[0]++;
}
break;
default:
gTasks[taskId].data[0] = 0;
SwitchTaskToFollowupFunc(taskId);
break;
}
}
void sub_80FCE48(u8 taskId)
{
int i;
if (!sub_80FC670(&gTasks[taskId].data[12]))
return;
switch (gTasks[taskId].data[0])
{
case 0:
gBlockSendBuffer[0] = 0x6E;
if (GetMultiplayerId() == 0)
{
if (IsLinkTaskFinished())
gTasks[taskId].data[0] = 10;
}
else
{
gTasks[taskId].data[0]++;
}
break;
case 1:
if (sub_80FC55C())
{
for (i = 0; i < 4; i++)
gTasks[taskId].data[i + 5] = gBlockRecvBuffer[i][0];
gTasks[taskId].data[0]++;
}
break;
case 10:
if (++gTasks[taskId].data[11] > 10)
{
sub_800A4D8(2);
gTasks[taskId].data[0] = 1;
}
break;
default:
gTasks[taskId].data[0] = 0;
gTasks[taskId].data[11] = 0;
gTasks[taskId].data[12] = 0;
SwitchTaskToFollowupFunc(taskId);
break;
}
}
void sub_80FCF40(u8 taskId)
{
if (!sub_80FC670(&gTasks[taskId].data[12]))
return;
switch (gTasks[taskId].data[0])
{
case 0:
if (IsLinkTaskFinished())
{
if (sub_80FC4F4(gContestMonConditions, sizeof(gContestMonConditions)) == 1)
gTasks[taskId].data[0]++;
}
break;
case 1:
if (sub_80FC55C())
{
memcpy(gContestMonConditions, gBlockRecvBuffer[gUnknown_02039F2B], sizeof(gContestMonConditions));
gTasks[taskId].data[0]++;
}
break;
default:
gTasks[taskId].data[0] = 0;
gTasks[taskId].data[12] = 0;
SwitchTaskToFollowupFunc(taskId);
break;
}
}
void sub_80FCFD0(u8 taskId)
{
if (!sub_80FC670(&gTasks[taskId].data[12]))
return;
switch (gTasks[taskId].data[0])
{
case 0:
if (IsLinkTaskFinished())
{
if (sub_80FC4F4(gUnknown_02039F26, sizeof(gUnknown_02039F26)) == 1)
gTasks[taskId].data[0]++;
}
break;
case 1:
if (sub_80FC55C())
{
memcpy(gUnknown_02039F26, gBlockRecvBuffer[gUnknown_02039F2B], sizeof(gUnknown_02039F26));
gTasks[taskId].data[0]++;
}
break;
default:
gTasks[taskId].data[0] = 0;
gTasks[taskId].data[12] = 0;
SwitchTaskToFollowupFunc(taskId);
break;
}
}
+331
View File
@@ -0,0 +1,331 @@
#include "global.h"
#include "contest.h"
#include "event_data.h"
#include "link.h"
#include "random.h"
#include "task.h"
static void sub_81D9F14(u8);
static void sub_81D9F30(u8);
static void sub_81D9F4C(u8);
static void sub_81D9F68(u8);
static void sub_81DA10C(u8);
static void sub_81DA138(u8);
static void sub_81DA160(u8);
static void sub_81DA244(u8);
static void sub_81DA2E8(u8);
static void sub_81DA3B8(u8);
static void sub_81DA488(u8);
void sub_81D9DE4(u8 taskId)
{
int gameCleared;
switch (gTasks[taskId].data[9])
{
case 0:
gHighestRibbonRank = GetMonData(&gPlayerParty[gContestMonPartyIndex], MON_DATA_COOL_RIBBON);
break;
case 1:
gHighestRibbonRank = GetMonData(&gPlayerParty[gContestMonPartyIndex], MON_DATA_BEAUTY_RIBBON);
break;
case 2:
gHighestRibbonRank = GetMonData(&gPlayerParty[gContestMonPartyIndex], MON_DATA_CUTE_RIBBON);
break;
case 3:
gHighestRibbonRank = GetMonData(&gPlayerParty[gContestMonPartyIndex], MON_DATA_SMART_RIBBON);
break;
case 4:
default:
gHighestRibbonRank = GetMonData(&gPlayerParty[gContestMonPartyIndex], MON_DATA_TOUGH_RIBBON);
break;
}
gContestMons[gContestPlayerMonIndex].unk2C[0] = gHighestRibbonRank;
gameCleared = FlagGet(FLAG_SYS_GAME_CLEAR) > 0;
gContestMons[gContestPlayerMonIndex].unk2C[1] = gameCleared;
SetTaskFuncWithFollowupFunc(taskId, sub_81DA160, sub_81D9F14);
}
static void sub_81D9F14(u8 taskId)
{
SetTaskFuncWithFollowupFunc(taskId, sub_81DA244, sub_81D9F30);
}
static void sub_81D9F30(u8 taskId)
{
SetTaskFuncWithFollowupFunc(taskId, sub_81DA2E8, sub_81D9F4C);
}
static void sub_81D9F4C(u8 taskId)
{
SetTaskFuncWithFollowupFunc(taskId, sub_81DA3B8, sub_81D9F68);
}
static void sub_81D9F68(u8 taskId)
{
u8 i;
u8 rank;
int gameCleared;
u8 data1[4];
u8 data2[4];
memset(data1, 0, sizeof(data1));
memset(data2, 0, sizeof(data2));
for (i = 0; i < gNumLinkContestPlayers; i++)
data1[i] = gTasks[taskId].data[i + 1];
i = 0;
if (i < gNumLinkContestPlayers)
{
while (++i < gNumLinkContestPlayers)
{
if (data1[0] != data1[i])
break;
}
}
if (i == gNumLinkContestPlayers)
gSpecialVar_0x8004 = 0;
else
gSpecialVar_0x8004 = 1;
for (i = 0; i < gNumLinkContestPlayers; i++)
data2[i] = gTasks[taskId].data[i + 5];
if (gNumLinkContestPlayers != 4 && GetMultiplayerId() == 0)
{
rank = gContestMons[0].unk2C[0];
for (i = 1; i < gNumLinkContestPlayers; i++)
{
if (rank < gContestMons[i].unk2C[0])
rank = gContestMons[i].unk2C[0];
}
if (rank)
rank--;
gameCleared = 1;
for (i = 0; i < gNumLinkContestPlayers; i++)
{
if (!gContestMons[i].unk2C[1])
{
gameCleared = 0;
break;
}
}
sub_80DACBC(data1[0], rank, gameCleared);
}
gUnknown_02039F2B = sub_80F86E0(data2);
if (gNumLinkContestPlayers < 4)
SetTaskFuncWithFollowupFunc(taskId, sub_81DA488, sub_81DA10C);
else
gTasks[taskId].func = sub_81DA10C;
}
static void sub_81DA10C(u8 taskId)
{
sub_80DB09C(gSpecialVar_ContestCategory);
SetTaskFuncWithFollowupFunc(taskId, sub_80FCF40, sub_81DA138);
}
static void sub_81DA138(u8 taskId)
{
sub_80DCE58(0);
SetTaskFuncWithFollowupFunc(taskId, sub_80FCFD0, sub_80F8714);
}
static void sub_81DA160(u8 taskId)
{
int i;
if (!sub_80FC670(&gTasks[taskId].data[12]))
return;
switch (gTasks[taskId].data[0])
{
default:
gTasks[taskId].data[0] = 0;
gTasks[taskId].data[12] = 0;
SwitchTaskToFollowupFunc(taskId);
break;
case 0:
if (IsLinkTaskFinished())
{
if (sub_80FC4F4(&gContestMons[gContestPlayerMonIndex], sizeof(struct ContestPokemon)) == 1)
gTasks[taskId].data[0]++;
}
break;
case 1:
if (sub_80FC55C())
{
for (i = 0; i < gNumLinkContestPlayers; i++)
{
memcpy(&gContestMons[i], gBlockRecvBuffer[i], sizeof(struct ContestPokemon));
sub_80DFA08(&gContestMons[i], gLinkPlayers[i].language);
}
gTasks[taskId].data[0]++;
}
break;
}
}
static void sub_81DA244(u8 taskId)
{
if (!sub_80FC670(&gTasks[taskId].data[12]))
return;
switch (gTasks[taskId].data[0])
{
default:
gTasks[taskId].data[0] = 0;
gTasks[taskId].data[12] = 0;
SwitchTaskToFollowupFunc(taskId);
break;
case 0:
if (GetMultiplayerId() == 0)
{
if (!IsLinkTaskFinished())
return;
if (sub_80FC4F4(&gRngValue, sizeof(gRngValue)) == 1)
gTasks[taskId].data[0]++;
}
else
{
gTasks[taskId].data[0]++;
}
break;
case 1:
if (sub_80FC530(0))
{
memcpy(&gRngValue, gBlockRecvBuffer[0], sizeof(gRngValue));
memcpy(&gContestRngValue, gBlockRecvBuffer[0], sizeof(gContestRngValue));
gTasks[taskId].data[0]++;
}
break;
}
}
static void sub_81DA2E8(u8 taskId)
{
int i;
u16 data[4];
u16 var0;
if (!sub_80FC670(&gTasks[taskId].data[12]))
return;
switch (gTasks[taskId].data[0])
{
default:
gTasks[taskId].data[0] = 0;
gTasks[taskId].data[12] = 0;
SwitchTaskToFollowupFunc(taskId);
break;
case 0:
if (IsLinkTaskFinished())
{
var0 = 0x6E;
if (sub_80FC4F4(&var0, sizeof(var0)) == 1)
gTasks[taskId].data[0]++;
}
break;
case 1:
if (sub_80FC55C())
{
for (i = 0; i < gNumLinkContestPlayers; i++)
{
data[i] = gBlockRecvBuffer[i][0];
gTasks[taskId].data[i + 5] = data[i];
}
gTasks[taskId].data[0]++;
}
break;
}
}
static void sub_81DA3B8(u8 taskId)
{
int i;
u16 data[4];
u16 var0;
if (!sub_80FC670(&gTasks[taskId].data[12]))
return;
switch (gTasks[taskId].data[0])
{
default:
gTasks[taskId].data[0] = 0;
gTasks[taskId].data[12] = 0;
SwitchTaskToFollowupFunc(taskId);
break;
case 0:
if (IsLinkTaskFinished())
{
var0 = gTasks[taskId].data[9];
if (sub_80FC4F4(&var0, sizeof(var0)) == 1)
gTasks[taskId].data[0]++;
}
break;
case 1:
if (sub_80FC55C())
{
for (i = 0; i < gNumLinkContestPlayers; i++)
{
data[i] = gBlockRecvBuffer[i][0];
gTasks[taskId].data[i + 1] = data[i];
}
gTasks[taskId].data[0]++;
}
break;
}
}
static void sub_81DA488(u8 taskId)
{
int i;
if (!sub_80FC670(&gTasks[taskId].data[12]))
return;
switch (gTasks[taskId].data[0])
{
default:
gTasks[taskId].data[0] = 0;
gTasks[taskId].data[12] = 0;
SwitchTaskToFollowupFunc(taskId);
break;
case 0:
if (GetMultiplayerId() == 0)
{
if (!IsLinkTaskFinished())
return;
if (sub_80FC4F4(&gContestMons[gNumLinkContestPlayers], (4 - gNumLinkContestPlayers) * sizeof(struct ContestPokemon)) == 1)
gTasks[taskId].data[0]++;
}
else
{
gTasks[taskId].data[0]++;
}
break;
case 1:
if (sub_80FC530(0))
{
memcpy(&gContestMons[gNumLinkContestPlayers], gBlockRecvBuffer[0], (4 - gNumLinkContestPlayers) * sizeof(struct ContestPokemon));
for (i = gNumLinkContestPlayers; i < 4; i++)
sub_80DFA08(&gContestMons[i], gLinkPlayers[0].language);
gTasks[taskId].data[0]++;
}
break;
}
}
-3
View File
@@ -20,9 +20,6 @@
#include "window.h"
#include "constants/rgb.h"
extern u8 gUnknown_02039F5C;
extern u8 gUnknown_02039F5D;
extern u16 (*gUnknown_03006190)[][32];
extern struct ContestWinner *gUnknown_030061C0;
extern u16 *gContestPaintingMonPalette;
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+8 -8
View File
@@ -1,13 +1,13 @@
const struct MonCoords gTrainerBackPicCoords[] =
{
{8, 4},
{8, 4},
{8, 5},
{8, 5},
{8, 4},
{8, 4},
{8, 4},
{8, 4},
{.size = 8, .y_offset = 4},
{.size = 8, .y_offset = 4},
{.size = 8, .y_offset = 5},
{.size = 8, .y_offset = 5},
{.size = 8, .y_offset = 4},
{.size = 8, .y_offset = 4},
{.size = 8, .y_offset = 4},
{.size = 8, .y_offset = 4},
};
// this table goes functionally unused, since none of these pics are compressed
+93 -93
View File
@@ -1,98 +1,98 @@
const struct MonCoords gTrainerFrontPicCoords[] =
{
{8, 1},
{8, 1},
{8, 1},
{8, 1},
{8, 1},
{8, 1},
{8, 1},
{8, 1},
{8, 1},
{8, 1},
{8, 1},
{8, 1},
{8, 1},
{8, 1},
{8, 1},
{8, 1},
{8, 1},
{8, 1},
{8, 1},
{8, 1},
{8, 1},
{8, 1},
{8, 1},
{8, 1},
{8, 1},
{8, 1},
{8, 1},
{8, 1},
{8, 1},
{8, 1},
{8, 1},
{8, 1},
{8, 1},
{8, 1},
{8, 1},
{8, 1},
{8, 1},
{8, 1},
{8, 1},
{8, 1},
{8, 1},
{8, 1},
{8, 1},
{8, 1},
{8, 1},
{8, 1},
{8, 1},
{8, 1},
{8, 1},
{8, 1},
{8, 2},
{8, 2},
{8, 1},
{8, 1},
{8, 2},
{8, 1},
{8, 2},
{8, 1},
{8, 1},
{8, 1},
{8, 1},
{8, 1},
{8, 1},
{8, 1},
{8, 2},
{8, 1},
{8, 1},
{8, 1},
{8, 1},
{8, 1},
{8, 1},
{8, 1},
{8, 1},
{8, 1},
{8, 1},
{8, 1},
{8, 1},
{8, 1},
{8, 1},
{8, 1},
{8, 1},
{8, 1},
{8, 1},
{8, 1},
{8, 1},
{8, 2},
{8, 1},
{8, 1},
{8, 1},
{8, 1},
{8, 1},
{8, 1},
{8, 1},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 2},
{.size = 8, .y_offset = 2},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 2},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 2},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 2},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 2},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 1},
{.size = 8, .y_offset = 1},
};
const struct CompressedSpriteSheet gTrainerFrontPicTable[] =
+5 -5
View File
@@ -1629,7 +1629,7 @@ void sub_8128950(u8 taskId)
void sub_81289D0(u8 taskId)
{
DisplayYesNoMenu();
sub_8121F68(taskId, &gUnknown_085A72C4);
DoYesNoFuncWithChoice(taskId, &gUnknown_085A72C4);
}
void sub_81289F0(u8 taskId)
@@ -1694,7 +1694,7 @@ void sub_8128AAC(u8 taskId)
void sub_8128B80(u8 taskId)
{
DisplayYesNoMenu();
sub_8121F68(taskId, &gUnknown_085A72CC);
DoYesNoFuncWithChoice(taskId, &gUnknown_085A72CC);
}
void sub_8128BA0(u8 taskId)
@@ -2589,7 +2589,7 @@ void sub_812A0E8(u8 taskId)
void sub_812A1A0(u8 taskId)
{
DisplayYesNoMenu();
sub_8121F68(taskId, &gUnknown_085A7348);
DoYesNoFuncWithChoice(taskId, &gUnknown_085A7348);
}
void sub_812A1C0(u8 taskId)
@@ -2602,7 +2602,7 @@ void sub_812A1C0(u8 taskId)
void sub_812A1F0(u8 taskId)
{
DisplayYesNoMenu();
sub_8121F68(taskId, &gUnknown_085A7350);
DoYesNoFuncWithChoice(taskId, &gUnknown_085A7350);
}
void sub_812A210(u8 taskId)
@@ -2726,7 +2726,7 @@ void sub_812A3D4(u8 taskId)
void sub_812A458(u8 taskId)
{
DisplayYesNoMenu();
sub_8121F68(taskId, &gUnknown_085A741C);
DoYesNoFuncWithChoice(taskId, &gUnknown_085A741C);
}
void sub_812A478(u8 taskId)
+16 -16
View File
@@ -45,7 +45,7 @@ void ClearTempFieldEventData(void)
FlagClear(FLAG_SYS_ENC_DOWN_ITEM);
FlagClear(FLAG_SYS_USE_STRENGTH);
FlagClear(FLAG_SYS_CTRL_OBJ_DELETE);
FlagClear(FLAG_0x880);
FlagClear(FLAG_NURSE_UNION_ROOM_REMINDER);
}
// Probably had different flag splits at one point.
@@ -114,21 +114,21 @@ bool32 IsMysteryGiftEnabled(void)
void sub_809D4D8(void)
{
FlagClear(FLAG_MYSTERY_EVENT_DONE);
FlagClear(FLAG_0x1E5);
FlagClear(FLAG_0x1E6);
FlagClear(FLAG_0x1E7);
FlagClear(FLAG_0x1E8);
FlagClear(FLAG_0x1E9);
FlagClear(FLAG_0x1EA);
FlagClear(FLAG_0x1EB);
FlagClear(FLAG_0x1EC);
FlagClear(FLAG_0x1ED);
FlagClear(FLAG_0x1EE);
FlagClear(FLAG_0x1EF);
FlagClear(FLAG_0x1F0);
FlagClear(FLAG_0x1F1);
FlagClear(FLAG_0x1F2);
FlagClear(FLAG_0x1F3);
FlagClear(FLAG_MYSTERY_EVENT_1);
FlagClear(FLAG_MYSTERY_EVENT_2);
FlagClear(FLAG_MYSTERY_EVENT_3);
FlagClear(FLAG_MYSTERY_EVENT_4);
FlagClear(FLAG_MYSTERY_EVENT_5);
FlagClear(FLAG_MYSTERY_EVENT_6);
FlagClear(FLAG_MYSTERY_EVENT_7);
FlagClear(FLAG_MYSTERY_EVENT_8);
FlagClear(FLAG_MYSTERY_EVENT_9);
FlagClear(FLAG_MYSTERY_EVENT_10);
FlagClear(FLAG_MYSTERY_EVENT_11);
FlagClear(FLAG_MYSTERY_EVENT_12);
FlagClear(FLAG_MYSTERY_EVENT_13);
FlagClear(FLAG_MYSTERY_EVENT_14);
FlagClear(FLAG_MYSTERY_EVENT_15);
}
void sub_809D570(void)
+2 -2
View File
@@ -32,7 +32,7 @@
#include "constants/maps.h"
#include "constants/songs.h"
extern bool32 sub_8196034(void);
extern bool32 TryStartMatchCall(void);
static EWRAM_DATA u8 sWildEncounterImmunitySteps = 0;
static EWRAM_DATA u16 sPreviousPlayerMetatileBehavior = 0;
@@ -600,7 +600,7 @@ static bool8 TryStartStepCountScript(u16 metatileBehavior)
ScriptContext1_SetupScript(SSTidalCorridor_EventScript_23C050);
return TRUE;
}
if (sub_8196034())
if (TryStartMatchCall())
return TRUE;
return FALSE;
}
+4 -4
View File
@@ -5,8 +5,8 @@
#include "task.h"
#include "text.h"
extern bool32 sub_8196094(void);
extern void sub_8196080(u8*);
extern bool32 IsMatchCallTaskActive(void);
extern void StartMatchCallFromScript(u8*);
static EWRAM_DATA u8 sFieldMessageBoxMode = 0;
@@ -68,7 +68,7 @@ bool8 ShowFieldMessage(u8 *str)
void sub_8098214(u8 taskId)
{
if (!sub_8196094())
if (!IsMatchCallTaskActive())
{
sFieldMessageBoxMode = 0;
DestroyTask(taskId);
@@ -81,7 +81,7 @@ bool8 sub_8098238(u8 *str)
return FALSE;
StringExpandPlaceholders(gStringVar4, str);
CreateTask(sub_8098214, 0);
sub_8196080(str);
StartMatchCallFromScript(str);
sFieldMessageBoxMode = 2;
return TRUE;
}
+10 -10
View File
@@ -361,7 +361,7 @@ u8 GetSSTidalLocation(s8 *mapGroup, s8 *mapNum, s16 *x, s16 *y)
bool32 is_tile_that_overrides_player_control(void)
{
if (FlagGet(FLAG_0x088))
if (FlagGet(FLAG_ENABLE_FIRST_WALLY_POKENAV_CALL))
{
switch (gMapHeader.mapType)
{
@@ -388,7 +388,7 @@ bool32 is_tile_that_overrides_player_control(void)
bool32 sub_8138120(void)
{
if (FlagGet(FLAG_0x08A))
if (FlagGet(FLAG_REGISTER_WINONA_POKENAV))
{
switch (gMapHeader.mapType)
{
@@ -415,7 +415,7 @@ bool32 sub_8138120(void)
bool32 sub_8138168(void)
{
if (FlagGet(FLAG_0x072))
if (FlagGet(FLAG_SCOTT_CALL_NATIONAL_DEX))
{
switch (gMapHeader.mapType)
{
@@ -442,7 +442,7 @@ bool32 sub_8138168(void)
bool32 sub_81381B0(void)
{
if (FlagGet(FLAG_0x080))
if (FlagGet(FLAG_ENABLE_ROXANNE_FIRST_CALL))
{
switch (gMapHeader.mapType)
{
@@ -469,7 +469,7 @@ bool32 sub_81381B0(void)
bool32 sub_81381F8(void)
{
if (FlagGet(FLAG_0x075))
if (FlagGet(FLAG_DEFEATED_MAGMA_SPACE_CENTER))
{
switch (gMapHeader.mapType)
{
@@ -1201,7 +1201,7 @@ void EndLotteryCornerComputerEffect(void)
void SetTrickHouseEndRoomFlag(void)
{
u16 *specVar = &gSpecialVar_0x8004;
u16 flag = FLAG_0x1F5;
u16 flag = FLAG_TRICK_HOUSE_END_ROOM;
*specVar = flag;
FlagSet(flag);
}
@@ -1209,7 +1209,7 @@ void SetTrickHouseEndRoomFlag(void)
void ResetTrickHouseEndRoomFlag(void)
{
u16 *specVar = &gSpecialVar_0x8004;
u16 flag = FLAG_0x1F5;
u16 flag = FLAG_TRICK_HOUSE_END_ROOM;
*specVar = flag;
FlagClear(flag);
}
@@ -2111,7 +2111,7 @@ void sub_813A080(void)
u16 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE);
u8 lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
if (battleMode == FRONTIER_MODE_MULTIS && !FlagGet(FLAG_0x152))
if (battleMode == FRONTIER_MODE_MULTIS && !FlagGet(FLAG_CHOSEN_MULTI_BATTLE_NPC_PARTNER))
{
gSpecialVar_0x8005 = 5;
gSpecialVar_0x8006 = 4;
@@ -3425,11 +3425,11 @@ void sub_813B2E4(void)
u16 randomValue = Random();
VarSet(VAR_0x4038, 0);
if (FlagGet(FLAG_0x1BE) == TRUE)
if (FlagGet(FLAG_DEFEATED_KYOGRE) == TRUE)
{
VarSet(VAR_0x4037, (randomValue & 7) + 1);
}
else if (FlagGet(FLAG_0x1BF) == TRUE)
else if (FlagGet(FLAG_DEFEATED_GROUDON) == TRUE)
{
VarSet(VAR_0x4037, (randomValue & 7) + 9);
}
+1 -1
View File
@@ -317,7 +317,7 @@ static void InitLocalLinkPlayer(void)
gLocalLinkPlayer.version = gGameVersion + 0x4000;
gLocalLinkPlayer.lp_field_2 = 0x8000;
gLocalLinkPlayer.name[8] = IsNationalPokedexEnabled();
if (FlagGet(FLAG_0x87F))
if (FlagGet(FLAG_IS_CHAMPION))
{
gLocalLinkPlayer.name[8] |= 0x10;
}
+1 -1
View File
@@ -2140,7 +2140,7 @@ void sub_800DD94(struct UnkLinkRfuStruct_02022B14 *data, u8 r9, bool32 r2, s32 r
data->unk_00.unk_00_4 = 0;
data->unk_00.unk_00_5 = 0;
data->unk_00.unk_00_6 = 0;
data->unk_00.unk_00_7 = FlagGet(FLAG_0x87F);
data->unk_00.unk_00_7 = FlagGet(FLAG_IS_CHAMPION);
data->unk_00.unk_01_0 = IsNationalPokedexEnabled();
data->unk_00.unk_01_1 = FlagGet(FLAG_SYS_GAME_CLEAR);
}
+1968 -1226
View File
File diff suppressed because it is too large Load Diff
+236 -236
View File
@@ -1,24 +1,24 @@
#include "global.h"
#include "bg.h"
#include "window.h"
#include "palette.h"
#include "menu.h"
#include "constants/songs.h"
#include "main.h"
#include "sound.h"
#include "menu_helpers.h"
#include "alloc.h"
#include "task.h"
#include "bg.h"
#include "dma3.h"
#include "string_util.h"
#include "pokemon_icon.h"
#include "constants/flags.h"
#include "event_data.h"
#include "pokedex.h"
#include "region_map.h"
#include "text_window.h"
#include "strings.h"
#include "graphics.h"
#include "main.h"
#include "menu.h"
#include "menu_helpers.h"
#include "palette.h"
#include "pokedex.h"
#include "pokemon_icon.h"
#include "region_map.h"
#include "sound.h"
#include "string_util.h"
#include "strings.h"
#include "task.h"
#include "text_window.h"
#include "window.h"
#include "constants/flags.h"
#include "constants/songs.h"
#define DLG_WINDOW_PALETTE_NUM 15
#define DLG_WINDOW_BASE_TILE_NUM 0x200
@@ -50,11 +50,11 @@ struct Menu
static EWRAM_DATA u8 sStartMenuWindowId = 0;
static EWRAM_DATA u8 sMapNamePopupWindowId = 0;
static EWRAM_DATA struct Menu gUnknown_0203CD90 = {0};
static EWRAM_DATA u16 gUnknown_0203CD9C = 0;
static EWRAM_DATA u8 gUnknown_0203CD9E = 0;
static EWRAM_DATA u8 gUnknown_0203CD9F = 0;
static EWRAM_DATA u8 gUnknown_0203CDA0 = 0;
static EWRAM_DATA struct Menu sMenu = {0};
static EWRAM_DATA u16 sTileNum = 0;
static EWRAM_DATA u8 sPaletteNum = 0;
static EWRAM_DATA u8 sYesNoWindowId = 0;
static EWRAM_DATA u8 sWindowId = 0;
static EWRAM_DATA u16 sFiller = 0; // needed to align
static EWRAM_DATA bool8 gUnknown_0203CDA4[4] = {FALSE};
static EWRAM_DATA u16 gUnknown_0203CDA8 = 0;
@@ -549,10 +549,10 @@ void sub_8197AE8(bool8 copyToVram)
CopyBgTilemapBufferToVram(0);
}
void sub_8197B1C(u8 windowId, bool8 copyToVram, u16 a3, u8 a4)
void sub_8197B1C(u8 windowId, bool8 copyToVram, u16 tileNum, u8 paletteNum)
{
gUnknown_0203CD9C = a3;
gUnknown_0203CD9E = a4;
sTileNum = tileNum;
sPaletteNum = paletteNum;
CallWindowFunction(windowId, sub_8197BB4);
FillWindowPixelBuffer(windowId, 0x11);
PutWindowTilemap(windowId);
@@ -560,10 +560,10 @@ void sub_8197B1C(u8 windowId, bool8 copyToVram, u16 a3, u8 a4)
CopyWindowToVram(windowId, 3);
}
void sub_8197B64(u8 windowId, bool8 copyToVram, u16 a3)
void sub_8197B64(u8 windowId, bool8 copyToVram, u16 tileNum)
{
gUnknown_0203CD9C = a3;
gUnknown_0203CD9E = GetWindowAttribute(windowId, WINDOW_PALETTE_NUM);
sTileNum = tileNum;
sPaletteNum = GetWindowAttribute(windowId, WINDOW_PALETTE_NUM);
CallWindowFunction(windowId, sub_8197BB4);
FillWindowPixelBuffer(windowId, 0x11);
PutWindowTilemap(windowId);
@@ -574,96 +574,96 @@ void sub_8197B64(u8 windowId, bool8 copyToVram, u16 a3)
void sub_8197BB4(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum)
{
FillBgTilemapBufferRect(bg,
gUnknown_0203CD9C + 1,
sTileNum + 1,
tilemapLeft - 2,
tilemapTop - 1,
1,
1,
gUnknown_0203CD9E);
sPaletteNum);
FillBgTilemapBufferRect(bg,
gUnknown_0203CD9C + 3,
sTileNum + 3,
tilemapLeft - 1,
tilemapTop - 1,
1,
1,
gUnknown_0203CD9E);
sPaletteNum);
FillBgTilemapBufferRect(bg,
gUnknown_0203CD9C + 4,
sTileNum + 4,
tilemapLeft,
tilemapTop - 1,
width - 1,
1,
gUnknown_0203CD9E);
sPaletteNum);
FillBgTilemapBufferRect(bg,
gUnknown_0203CD9C + 5,
sTileNum + 5,
tilemapLeft + width - 1,
tilemapTop - 1,
1,
1,
gUnknown_0203CD9E);
sPaletteNum);
FillBgTilemapBufferRect(bg,
gUnknown_0203CD9C + 6,
sTileNum + 6,
tilemapLeft + width,
tilemapTop - 1,
1,
1,
gUnknown_0203CD9E);
sPaletteNum);
FillBgTilemapBufferRect(bg,
gUnknown_0203CD9C + 7,
sTileNum + 7,
tilemapLeft - 2,
tilemapTop,
1,
5,
gUnknown_0203CD9E);
sPaletteNum);
FillBgTilemapBufferRect(bg,
gUnknown_0203CD9C + 9,
sTileNum + 9,
tilemapLeft - 1,
tilemapTop,
width + 1,
5,
gUnknown_0203CD9E);
sPaletteNum);
FillBgTilemapBufferRect(bg,
gUnknown_0203CD9C + 10,
sTileNum + 10,
tilemapLeft + width,
tilemapTop,
1,
5,
gUnknown_0203CD9E);
sPaletteNum);
FillBgTilemapBufferRect(bg,
BG_TILE_V_FLIP(gUnknown_0203CD9C + 1),
BG_TILE_V_FLIP(sTileNum + 1),
tilemapLeft - 2,
tilemapTop + height,
1,
1,
gUnknown_0203CD9E);
sPaletteNum);
FillBgTilemapBufferRect(bg,
BG_TILE_V_FLIP(gUnknown_0203CD9C + 3),
BG_TILE_V_FLIP(sTileNum + 3),
tilemapLeft - 1,
tilemapTop + height,
1,
1,
gUnknown_0203CD9E);
sPaletteNum);
FillBgTilemapBufferRect(bg,
BG_TILE_V_FLIP(gUnknown_0203CD9C + 4),
BG_TILE_V_FLIP(sTileNum + 4),
tilemapLeft,
tilemapTop + height,
width - 1,
1,
gUnknown_0203CD9E);
sPaletteNum);
FillBgTilemapBufferRect(bg,
BG_TILE_V_FLIP(gUnknown_0203CD9C + 5),
BG_TILE_V_FLIP(sTileNum + 5),
tilemapLeft + width - 1,
tilemapTop + height,
1,
1,
gUnknown_0203CD9E);
sPaletteNum);
FillBgTilemapBufferRect(bg,
BG_TILE_V_FLIP(gUnknown_0203CD9C + 6),
BG_TILE_V_FLIP(sTileNum + 6),
tilemapLeft + width,
tilemapTop + height,
1,
1,
gUnknown_0203CD9E);
sPaletteNum);
}
void sub_8197DF8(u8 windowId, bool8 copyToVram)
@@ -682,8 +682,8 @@ void sub_8197E30(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 p
void SetWindowBorderStyle(u8 windowId, bool8 copyToVram, u16 baseTileNum, u8 paletteNum)
{
gUnknown_0203CD9C = baseTileNum;
gUnknown_0203CD9E = paletteNum;
sTileNum = baseTileNum;
sPaletteNum = paletteNum;
CallWindowFunction(windowId, DrawWindowBorder);
FillWindowPixelBuffer(windowId, 0x11);
PutWindowTilemap(windowId);
@@ -693,8 +693,8 @@ void SetWindowBorderStyle(u8 windowId, bool8 copyToVram, u16 baseTileNum, u8 pal
void sub_8197EC8(u8 windowId, bool8 copyToVram, u16 baseTileNum)
{
gUnknown_0203CD9C = baseTileNum;
gUnknown_0203CD9E = GetWindowAttribute(windowId, WINDOW_PALETTE_NUM);
sTileNum = baseTileNum;
sPaletteNum = GetWindowAttribute(windowId, WINDOW_PALETTE_NUM);
CallWindowFunction(windowId, DrawWindowBorder);
FillWindowPixelBuffer(windowId, 0x11);
PutWindowTilemap(windowId);
@@ -705,61 +705,61 @@ void sub_8197EC8(u8 windowId, bool8 copyToVram, u16 baseTileNum)
void DrawWindowBorder(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum)
{
FillBgTilemapBufferRect(bg,
gUnknown_0203CD9C + 0,
sTileNum + 0,
tilemapLeft - 1,
tilemapTop - 1,
1,
1,
gUnknown_0203CD9E);
sPaletteNum);
FillBgTilemapBufferRect(bg,
gUnknown_0203CD9C + 1,
sTileNum + 1,
tilemapLeft,
tilemapTop - 1,
width,
1,
gUnknown_0203CD9E);
sPaletteNum);
FillBgTilemapBufferRect(bg,
gUnknown_0203CD9C + 2,
sTileNum + 2,
tilemapLeft + width,
tilemapTop - 1,
1,
1,
gUnknown_0203CD9E);
sPaletteNum);
FillBgTilemapBufferRect(bg,
gUnknown_0203CD9C + 3,
sTileNum + 3,
tilemapLeft - 1,
tilemapTop,
1,
height,
gUnknown_0203CD9E);
sPaletteNum);
FillBgTilemapBufferRect(bg,
gUnknown_0203CD9C + 5,
sTileNum + 5,
tilemapLeft + width,
tilemapTop,
1,
height,
gUnknown_0203CD9E);
sPaletteNum);
FillBgTilemapBufferRect(bg,
gUnknown_0203CD9C + 6,
sTileNum + 6,
tilemapLeft - 1,
tilemapTop + height,
1,
1,
gUnknown_0203CD9E);
sPaletteNum);
FillBgTilemapBufferRect(bg,
gUnknown_0203CD9C + 7,
sTileNum + 7,
tilemapLeft,
tilemapTop + height,
width,
1,
gUnknown_0203CD9E);
sPaletteNum);
FillBgTilemapBufferRect(bg,
gUnknown_0203CD9C + 8,
sTileNum + 8,
tilemapLeft + width,
tilemapTop + height,
1,
1,
gUnknown_0203CD9E);
sPaletteNum);
}
void sub_8198070(u8 windowId, bool8 copyToVram)
@@ -793,7 +793,7 @@ u8 sub_81980F0(u8 bg, u8 xPos, u8 yPos, u8 palette, u16 baseTile)
window.paletteNum = palette;
window.baseBlock = baseTile;
gUnknown_0203CDA0 = AddWindow(&window);
sWindowId = AddWindow(&window);
if (palette > 15)
palette = 15 * 16;
@@ -801,27 +801,27 @@ u8 sub_81980F0(u8 bg, u8 xPos, u8 yPos, u8 palette, u16 baseTile)
palette *= 16;
LoadPalette(gUnknown_0860F0B0, palette, sizeof(gUnknown_0860F0B0));
return gUnknown_0203CDA0;
return sWindowId;
}
void sub_8198180(const u8 *string, u8 a2, bool8 copyToVram)
{
u16 width = 0;
if (gUnknown_0203CDA0 != 0xFF)
if (sWindowId != 0xFF)
{
PutWindowTilemap(gUnknown_0203CDA0);
FillWindowPixelBuffer(gUnknown_0203CDA0, 0xFF);
PutWindowTilemap(sWindowId);
FillWindowPixelBuffer(sWindowId, 0xFF);
width = GetStringWidth(0, string, 0);
AddTextPrinterParameterized3(gUnknown_0203CDA0,
AddTextPrinterParameterized3(sWindowId,
0,
0xEC - (GetWindowAttribute(gUnknown_0203CDA0, WINDOW_TILEMAP_LEFT) * 8) - a2 - width,
0xEC - (GetWindowAttribute(sWindowId, WINDOW_TILEMAP_LEFT) * 8) - a2 - width,
1,
gUnknown_0860F0D0,
0,
string);
if (copyToVram)
CopyWindowToVram(gUnknown_0203CDA0, 3);
CopyWindowToVram(sWindowId, 3);
}
}
@@ -830,7 +830,7 @@ void sub_8198204(const u8 *string, const u8 *string2, u8 a3, u8 a4, bool8 copyTo
u8 color[3];
u16 width = 0;
if (gUnknown_0203CDA0 != 0xFF)
if (sWindowId != 0xFF)
{
if (a3 != 0)
{
@@ -844,49 +844,49 @@ void sub_8198204(const u8 *string, const u8 *string2, u8 a3, u8 a4, bool8 copyTo
color[1] = 1;
color[2] = 2;
}
PutWindowTilemap(gUnknown_0203CDA0);
FillWindowPixelBuffer(gUnknown_0203CDA0, 0xFF);
PutWindowTilemap(sWindowId);
FillWindowPixelBuffer(sWindowId, 0xFF);
if (string2 != NULL)
{
width = GetStringWidth(0, string2, 0);
AddTextPrinterParameterized3(gUnknown_0203CDA0,
AddTextPrinterParameterized3(sWindowId,
0,
0xEC - (GetWindowAttribute(gUnknown_0203CDA0, WINDOW_TILEMAP_LEFT) * 8) - a4 - width,
0xEC - (GetWindowAttribute(sWindowId, WINDOW_TILEMAP_LEFT) * 8) - a4 - width,
1,
color,
0,
string2);
}
AddTextPrinterParameterized4(gUnknown_0203CDA0, 1, 4, 1, 0, 0, color, 0, string);
AddTextPrinterParameterized4(sWindowId, 1, 4, 1, 0, 0, color, 0, string);
if (copyToVram)
CopyWindowToVram(gUnknown_0203CDA0, 3);
CopyWindowToVram(sWindowId, 3);
}
}
void sub_81982D8(void)
{
if (gUnknown_0203CDA0 != 0xFF)
CopyWindowToVram(gUnknown_0203CDA0, 3);
if (sWindowId != 0xFF)
CopyWindowToVram(sWindowId, 3);
}
void sub_81982F0(void)
{
if (gUnknown_0203CDA0 != 0xFF)
if (sWindowId != 0xFF)
{
FillWindowPixelBuffer(gUnknown_0203CDA0, 0xFF);
CopyWindowToVram(gUnknown_0203CDA0, 3);
FillWindowPixelBuffer(sWindowId, 0xFF);
CopyWindowToVram(sWindowId, 3);
}
}
void sub_8198314(void)
{
if (gUnknown_0203CDA0 != 0xFF)
if (sWindowId != 0xFF)
{
FillWindowPixelBuffer(gUnknown_0203CDA0, 0);
ClearWindowTilemap(gUnknown_0203CDA0);
CopyWindowToVram(gUnknown_0203CDA0, 3);
RemoveWindow(gUnknown_0203CDA0);
gUnknown_0203CDA0 = 0xFF;
FillWindowPixelBuffer(sWindowId, 0);
ClearWindowTilemap(sWindowId);
CopyWindowToVram(sWindowId, 3);
RemoveWindow(sWindowId);
sWindowId = 0xFF;
}
}
@@ -894,24 +894,24 @@ u8 sub_8198348(u8 windowId, u8 fontId, u8 left, u8 top, u8 cursorHeight, u8 numC
{
s32 pos;
gUnknown_0203CD90.left = left;
gUnknown_0203CD90.top = top;
gUnknown_0203CD90.minCursorPos = 0;
gUnknown_0203CD90.maxCursorPos = numChoices - 1;
gUnknown_0203CD90.windowId = windowId;
gUnknown_0203CD90.fontId = fontId;
gUnknown_0203CD90.optionHeight = cursorHeight;
gUnknown_0203CD90.APressMuted = a7;
sMenu.left = left;
sMenu.top = top;
sMenu.minCursorPos = 0;
sMenu.maxCursorPos = numChoices - 1;
sMenu.windowId = windowId;
sMenu.fontId = fontId;
sMenu.optionHeight = cursorHeight;
sMenu.APressMuted = a7;
pos = initialCursorPos;
if (pos < 0 || pos > gUnknown_0203CD90.maxCursorPos)
gUnknown_0203CD90.cursorPos = 0;
if (pos < 0 || pos > sMenu.maxCursorPos)
sMenu.cursorPos = 0;
else
gUnknown_0203CD90.cursorPos = pos;
sMenu.cursorPos = pos;
Menu_MoveCursor(0);
return gUnknown_0203CD90.cursorPos;
return sMenu.cursorPos;
}
u8 sub_81983AC(u8 windowId, u8 fontId, u8 left, u8 top, u8 cursorHeight, u8 numChoices, u8 initialCursorPos)
@@ -929,56 +929,56 @@ void RedrawMenuCursor(u8 oldPos, u8 newPos)
{
u8 width, height;
width = GetMenuCursorDimensionByFont(gUnknown_0203CD90.fontId, 0);
height = GetMenuCursorDimensionByFont(gUnknown_0203CD90.fontId, 1);
FillWindowPixelRect(gUnknown_0203CD90.windowId, 0x11, gUnknown_0203CD90.left, gUnknown_0203CD90.optionHeight * oldPos + gUnknown_0203CD90.top, width, height);
AddTextPrinterParameterized(gUnknown_0203CD90.windowId, gUnknown_0203CD90.fontId, gText_SelectorArrow3, gUnknown_0203CD90.left, gUnknown_0203CD90.optionHeight * newPos + gUnknown_0203CD90.top, 0, 0);
width = GetMenuCursorDimensionByFont(sMenu.fontId, 0);
height = GetMenuCursorDimensionByFont(sMenu.fontId, 1);
FillWindowPixelRect(sMenu.windowId, 0x11, sMenu.left, sMenu.optionHeight * oldPos + sMenu.top, width, height);
AddTextPrinterParameterized(sMenu.windowId, sMenu.fontId, gText_SelectorArrow3, sMenu.left, sMenu.optionHeight * newPos + sMenu.top, 0, 0);
}
u8 Menu_MoveCursor(s8 cursorDelta)
{
u8 oldPos = gUnknown_0203CD90.cursorPos;
int newPos = gUnknown_0203CD90.cursorPos + cursorDelta;
u8 oldPos = sMenu.cursorPos;
int newPos = sMenu.cursorPos + cursorDelta;
if (newPos < gUnknown_0203CD90.minCursorPos)
gUnknown_0203CD90.cursorPos = gUnknown_0203CD90.maxCursorPos;
else if (newPos > gUnknown_0203CD90.maxCursorPos)
gUnknown_0203CD90.cursorPos = gUnknown_0203CD90.minCursorPos;
if (newPos < sMenu.minCursorPos)
sMenu.cursorPos = sMenu.maxCursorPos;
else if (newPos > sMenu.maxCursorPos)
sMenu.cursorPos = sMenu.minCursorPos;
else
gUnknown_0203CD90.cursorPos += cursorDelta;
sMenu.cursorPos += cursorDelta;
RedrawMenuCursor(oldPos, gUnknown_0203CD90.cursorPos);
return gUnknown_0203CD90.cursorPos;
RedrawMenuCursor(oldPos, sMenu.cursorPos);
return sMenu.cursorPos;
}
u8 Menu_MoveCursorNoWrapAround(s8 cursorDelta)
{
u8 oldPos = gUnknown_0203CD90.cursorPos;
int newPos = gUnknown_0203CD90.cursorPos + cursorDelta;
u8 oldPos = sMenu.cursorPos;
int newPos = sMenu.cursorPos + cursorDelta;
if (newPos < gUnknown_0203CD90.minCursorPos)
gUnknown_0203CD90.cursorPos = gUnknown_0203CD90.minCursorPos;
else if (newPos > gUnknown_0203CD90.maxCursorPos)
gUnknown_0203CD90.cursorPos = gUnknown_0203CD90.maxCursorPos;
if (newPos < sMenu.minCursorPos)
sMenu.cursorPos = sMenu.minCursorPos;
else if (newPos > sMenu.maxCursorPos)
sMenu.cursorPos = sMenu.maxCursorPos;
else
gUnknown_0203CD90.cursorPos += cursorDelta;
sMenu.cursorPos += cursorDelta;
RedrawMenuCursor(oldPos, gUnknown_0203CD90.cursorPos);
return gUnknown_0203CD90.cursorPos;
RedrawMenuCursor(oldPos, sMenu.cursorPos);
return sMenu.cursorPos;
}
u8 Menu_GetCursorPos(void)
{
return gUnknown_0203CD90.cursorPos;
return sMenu.cursorPos;
}
s8 Menu_ProcessInput(void)
{
if (gMain.newKeys & A_BUTTON)
{
if (!gUnknown_0203CD90.APressMuted)
if (!sMenu.APressMuted)
PlaySE(SE_SELECT);
return gUnknown_0203CD90.cursorPos;
return sMenu.cursorPos;
}
else if (gMain.newKeys & B_BUTTON)
{
@@ -1002,13 +1002,13 @@ s8 Menu_ProcessInput(void)
s8 Menu_ProcessInputNoWrap(void)
{
u8 oldPos = gUnknown_0203CD90.cursorPos;
u8 oldPos = sMenu.cursorPos;
if (gMain.newKeys & A_BUTTON)
{
if (!gUnknown_0203CD90.APressMuted)
if (!sMenu.APressMuted)
PlaySE(SE_SELECT);
return gUnknown_0203CD90.cursorPos;
return sMenu.cursorPos;
}
else if (gMain.newKeys & B_BUTTON)
{
@@ -1034,9 +1034,9 @@ s8 ProcessMenuInput_other(void)
{
if (gMain.newKeys & A_BUTTON)
{
if (!gUnknown_0203CD90.APressMuted)
if (!sMenu.APressMuted)
PlaySE(SE_SELECT);
return gUnknown_0203CD90.cursorPos;
return sMenu.cursorPos;
}
else if (gMain.newKeys & B_BUTTON)
{
@@ -1060,13 +1060,13 @@ s8 ProcessMenuInput_other(void)
s8 Menu_ProcessInputNoWrapAround_other(void)
{
u8 oldPos = gUnknown_0203CD90.cursorPos;
u8 oldPos = sMenu.cursorPos;
if (gMain.newKeys & A_BUTTON)
{
if (!gUnknown_0203CD90.APressMuted)
if (!sMenu.APressMuted)
PlaySE(SE_SELECT);
return gUnknown_0203CD90.cursorPos;
return sMenu.cursorPos;
}
else if (gMain.newKeys & B_BUTTON)
{
@@ -1174,11 +1174,11 @@ void sub_8198AF8(const struct WindowTemplate *window, u8 fontId, u8 left, u8 top
{
struct TextPrinterTemplate printer;
gUnknown_0203CD9F = AddWindow(window);
SetWindowBorderStyle(gUnknown_0203CD9F, TRUE, baseTileNum, paletteNum);
sYesNoWindowId = AddWindow(window);
SetWindowBorderStyle(sYesNoWindowId, TRUE, baseTileNum, paletteNum);
printer.currentChar = gText_YesNo;
printer.windowId = gUnknown_0203CD9F;
printer.windowId = sYesNoWindowId;
printer.fontId = fontId;
printer.x = GetFontAttribute(fontId, FONTATTR_MAX_LETTER_WIDTH) + left;
printer.y = top;
@@ -1193,7 +1193,7 @@ void sub_8198AF8(const struct WindowTemplate *window, u8 fontId, u8 left, u8 top
AddTextPrinter(&printer, 0xFF, NULL);
sub_81983AC(gUnknown_0203CD9F, fontId, left, top, GetFontAttribute(fontId, FONTATTR_MAX_LETTER_HEIGHT), 2, initialCursorPos);
sub_81983AC(sYesNoWindowId, fontId, left, top, GetFontAttribute(fontId, FONTATTR_MAX_LETTER_HEIGHT), 2, initialCursorPos);
}
void sub_8198C34(const struct WindowTemplate *window, u8 fontId, u16 baseTileNum, u8 paletteNum)
@@ -1211,8 +1211,8 @@ s8 Menu_ProcessInputNoWrapClearOnChoose(void)
void sub_8198C78(void)
{
sub_8198070(gUnknown_0203CD9F, TRUE);
RemoveWindow(gUnknown_0203CD9F);
sub_8198070(sYesNoWindowId, TRUE);
RemoveWindow(sYesNoWindowId);
}
void sub_8198C94(u8 windowId, u8 fontId, u8 left, u8 top, u8 a4, u8 a5, u8 a6, u8 a7, const struct MenuAction *strs)
@@ -1274,26 +1274,26 @@ u8 sub_8198F58(u8 windowId, u8 fontId, u8 left, u8 top, u8 a4, u8 cursorHeight,
{
s32 pos;
gUnknown_0203CD90.left = left;
gUnknown_0203CD90.top = top;
gUnknown_0203CD90.minCursorPos = 0;
gUnknown_0203CD90.maxCursorPos = numChoices - 1;
gUnknown_0203CD90.windowId = windowId;
gUnknown_0203CD90.fontId = fontId;
gUnknown_0203CD90.optionWidth = a4;
gUnknown_0203CD90.optionHeight = cursorHeight;
gUnknown_0203CD90.horizontalCount = a6;
gUnknown_0203CD90.verticalCount = a7;
sMenu.left = left;
sMenu.top = top;
sMenu.minCursorPos = 0;
sMenu.maxCursorPos = numChoices - 1;
sMenu.windowId = windowId;
sMenu.fontId = fontId;
sMenu.optionWidth = a4;
sMenu.optionHeight = cursorHeight;
sMenu.horizontalCount = a6;
sMenu.verticalCount = a7;
pos = a9;
if (pos < 0 || pos > gUnknown_0203CD90.maxCursorPos)
gUnknown_0203CD90.cursorPos = 0;
if (pos < 0 || pos > sMenu.maxCursorPos)
sMenu.cursorPos = 0;
else
gUnknown_0203CD90.cursorPos = pos;
sMenu.cursorPos = pos;
sub_8199134(0, 0);
return gUnknown_0203CD90.cursorPos;
return sMenu.cursorPos;
}
u8 sub_8198FD4(u8 windowId, u8 fontId, u8 left, u8 top, u8 a4, u8 a5, u8 a6, u8 a7)
@@ -1305,20 +1305,20 @@ u8 sub_8198FD4(u8 windowId, u8 fontId, u8 left, u8 top, u8 a4, u8 a5, u8 a6, u8
void sub_8199060(u8 oldCursorPos, u8 newCursorPos)
{
u8 cursorWidth = GetMenuCursorDimensionByFont(gUnknown_0203CD90.fontId, 0);
u8 cursorHeight = GetMenuCursorDimensionByFont(gUnknown_0203CD90.fontId, 1);
u8 xPos = (oldCursorPos % gUnknown_0203CD90.horizontalCount) * gUnknown_0203CD90.optionWidth + gUnknown_0203CD90.left;
u8 yPos = (oldCursorPos / gUnknown_0203CD90.horizontalCount) * gUnknown_0203CD90.optionHeight + gUnknown_0203CD90.top;
FillWindowPixelRect(gUnknown_0203CD90.windowId,
u8 cursorWidth = GetMenuCursorDimensionByFont(sMenu.fontId, 0);
u8 cursorHeight = GetMenuCursorDimensionByFont(sMenu.fontId, 1);
u8 xPos = (oldCursorPos % sMenu.horizontalCount) * sMenu.optionWidth + sMenu.left;
u8 yPos = (oldCursorPos / sMenu.horizontalCount) * sMenu.optionHeight + sMenu.top;
FillWindowPixelRect(sMenu.windowId,
0x11,
xPos,
yPos,
cursorWidth,
cursorHeight);
xPos = (newCursorPos % gUnknown_0203CD90.horizontalCount) * gUnknown_0203CD90.optionWidth + gUnknown_0203CD90.left;
yPos = (newCursorPos / gUnknown_0203CD90.horizontalCount) * gUnknown_0203CD90.optionHeight + gUnknown_0203CD90.top;
AddTextPrinterParameterized(gUnknown_0203CD90.windowId,
gUnknown_0203CD90.fontId,
xPos = (newCursorPos % sMenu.horizontalCount) * sMenu.optionWidth + sMenu.left;
yPos = (newCursorPos / sMenu.horizontalCount) * sMenu.optionHeight + sMenu.top;
AddTextPrinterParameterized(sMenu.windowId,
sMenu.fontId,
gText_SelectorArrow3,
xPos,
yPos,
@@ -1328,83 +1328,83 @@ void sub_8199060(u8 oldCursorPos, u8 newCursorPos)
u8 sub_8199134(s8 deltaX, s8 deltaY)
{
u8 oldPos = gUnknown_0203CD90.cursorPos;
u8 oldPos = sMenu.cursorPos;
if (deltaX != 0)
{
if ((gUnknown_0203CD90.cursorPos % gUnknown_0203CD90.horizontalCount) + deltaX < 0)
if ((sMenu.cursorPos % sMenu.horizontalCount) + deltaX < 0)
{
gUnknown_0203CD90.cursorPos += gUnknown_0203CD90.horizontalCount - 1;
sMenu.cursorPos += sMenu.horizontalCount - 1;
}
else if ((gUnknown_0203CD90.cursorPos % gUnknown_0203CD90.horizontalCount) + deltaX >= gUnknown_0203CD90.horizontalCount)
else if ((sMenu.cursorPos % sMenu.horizontalCount) + deltaX >= sMenu.horizontalCount)
{
gUnknown_0203CD90.cursorPos = (gUnknown_0203CD90.cursorPos / gUnknown_0203CD90.horizontalCount) * gUnknown_0203CD90.horizontalCount;
sMenu.cursorPos = (sMenu.cursorPos / sMenu.horizontalCount) * sMenu.horizontalCount;
}
else
{
gUnknown_0203CD90.cursorPos += deltaX;
sMenu.cursorPos += deltaX;
}
}
if (deltaY != 0)
{
if ((gUnknown_0203CD90.cursorPos / gUnknown_0203CD90.horizontalCount) + deltaY < 0)
if ((sMenu.cursorPos / sMenu.horizontalCount) + deltaY < 0)
{
gUnknown_0203CD90.cursorPos += gUnknown_0203CD90.horizontalCount * (gUnknown_0203CD90.verticalCount - 1);
sMenu.cursorPos += sMenu.horizontalCount * (sMenu.verticalCount - 1);
}
else if ((gUnknown_0203CD90.cursorPos / gUnknown_0203CD90.horizontalCount) + deltaY >= gUnknown_0203CD90.verticalCount)
else if ((sMenu.cursorPos / sMenu.horizontalCount) + deltaY >= sMenu.verticalCount)
{
gUnknown_0203CD90.cursorPos -= gUnknown_0203CD90.horizontalCount * (gUnknown_0203CD90.verticalCount - 1);
sMenu.cursorPos -= sMenu.horizontalCount * (sMenu.verticalCount - 1);
}
else
{
gUnknown_0203CD90.cursorPos += (gUnknown_0203CD90.horizontalCount * deltaY);
sMenu.cursorPos += (sMenu.horizontalCount * deltaY);
}
}
if (gUnknown_0203CD90.cursorPos > gUnknown_0203CD90.maxCursorPos)
if (sMenu.cursorPos > sMenu.maxCursorPos)
{
gUnknown_0203CD90.cursorPos = oldPos;
return gUnknown_0203CD90.cursorPos;
sMenu.cursorPos = oldPos;
return sMenu.cursorPos;
}
else
{
sub_8199060(oldPos, gUnknown_0203CD90.cursorPos);
return gUnknown_0203CD90.cursorPos;
sub_8199060(oldPos, sMenu.cursorPos);
return sMenu.cursorPos;
}
}
u8 sub_81991F8(s8 deltaX, s8 deltaY)
{
u8 oldPos = gUnknown_0203CD90.cursorPos;
u8 oldPos = sMenu.cursorPos;
if (deltaX != 0)
{
if (((gUnknown_0203CD90.cursorPos % gUnknown_0203CD90.horizontalCount) + deltaX >= 0) &&
((gUnknown_0203CD90.cursorPos % gUnknown_0203CD90.horizontalCount) + deltaX < gUnknown_0203CD90.horizontalCount))
if (((sMenu.cursorPos % sMenu.horizontalCount) + deltaX >= 0) &&
((sMenu.cursorPos % sMenu.horizontalCount) + deltaX < sMenu.horizontalCount))
{
gUnknown_0203CD90.cursorPos += deltaX;
sMenu.cursorPos += deltaX;
}
}
if (deltaY != 0)
{
if (((gUnknown_0203CD90.cursorPos / gUnknown_0203CD90.horizontalCount) + deltaY >= 0) &&
((gUnknown_0203CD90.cursorPos / gUnknown_0203CD90.horizontalCount) + deltaY < gUnknown_0203CD90.verticalCount))
if (((sMenu.cursorPos / sMenu.horizontalCount) + deltaY >= 0) &&
((sMenu.cursorPos / sMenu.horizontalCount) + deltaY < sMenu.verticalCount))
{
gUnknown_0203CD90.cursorPos += (gUnknown_0203CD90.horizontalCount * deltaY);
sMenu.cursorPos += (sMenu.horizontalCount * deltaY);
}
}
if (gUnknown_0203CD90.cursorPos > gUnknown_0203CD90.maxCursorPos)
if (sMenu.cursorPos > sMenu.maxCursorPos)
{
gUnknown_0203CD90.cursorPos = oldPos;
return gUnknown_0203CD90.cursorPos;
sMenu.cursorPos = oldPos;
return sMenu.cursorPos;
}
else
{
sub_8199060(oldPos, gUnknown_0203CD90.cursorPos);
return gUnknown_0203CD90.cursorPos;
sub_8199060(oldPos, sMenu.cursorPos);
return sMenu.cursorPos;
}
}
@@ -1413,7 +1413,7 @@ s8 sub_8199284(void)
if (gMain.newKeys & A_BUTTON)
{
PlaySE(SE_SELECT);
return gUnknown_0203CD90.cursorPos;
return sMenu.cursorPos;
}
else if (gMain.newKeys & B_BUTTON)
{
@@ -1449,12 +1449,12 @@ s8 sub_8199284(void)
s8 Menu_ProcessInputGridLayout(void)
{
u8 oldPos = gUnknown_0203CD90.cursorPos;
u8 oldPos = sMenu.cursorPos;
if (gMain.newKeys & A_BUTTON)
{
PlaySE(SE_SELECT);
return gUnknown_0203CD90.cursorPos;
return sMenu.cursorPos;
}
else if (gMain.newKeys & B_BUTTON)
{
@@ -1493,7 +1493,7 @@ s8 sub_81993D8(void)
if (gMain.newKeys & A_BUTTON)
{
PlaySE(SE_SELECT);
return gUnknown_0203CD90.cursorPos;
return sMenu.cursorPos;
}
else if (gMain.newKeys & B_BUTTON)
{
@@ -1529,12 +1529,12 @@ s8 sub_81993D8(void)
s8 sub_8199484(void)
{
u8 oldPos = gUnknown_0203CD90.cursorPos;
u8 oldPos = sMenu.cursorPos;
if (gMain.newKeys & A_BUTTON)
{
PlaySE(SE_SELECT);
return gUnknown_0203CD90.cursorPos;
return sMenu.cursorPos;
}
else if (gMain.newKeys & B_BUTTON)
{
@@ -1572,21 +1572,21 @@ u8 InitMenuInUpperLeftCorner(u8 windowId, u8 itemCount, u8 initialCursorPos, boo
{
s32 pos;
gUnknown_0203CD90.left = 0;
gUnknown_0203CD90.top = 1;
gUnknown_0203CD90.minCursorPos = 0;
gUnknown_0203CD90.maxCursorPos = itemCount - 1;
gUnknown_0203CD90.windowId = windowId;
gUnknown_0203CD90.fontId = 1;
gUnknown_0203CD90.optionHeight = 16;
gUnknown_0203CD90.APressMuted = APressMuted;
sMenu.left = 0;
sMenu.top = 1;
sMenu.minCursorPos = 0;
sMenu.maxCursorPos = itemCount - 1;
sMenu.windowId = windowId;
sMenu.fontId = 1;
sMenu.optionHeight = 16;
sMenu.APressMuted = APressMuted;
pos = initialCursorPos;
if (pos < 0 || pos > gUnknown_0203CD90.maxCursorPos)
gUnknown_0203CD90.cursorPos = 0;
if (pos < 0 || pos > sMenu.maxCursorPos)
sMenu.cursorPos = 0;
else
gUnknown_0203CD90.cursorPos = pos;
sMenu.cursorPos = pos;
return Menu_MoveCursor(0);
}
@@ -1639,11 +1639,11 @@ void CreateYesNoMenu(const struct WindowTemplate *window, u16 baseTileNum, u8 pa
{
struct TextPrinterTemplate printer;
gUnknown_0203CD9F = AddWindow(window);
SetWindowBorderStyle(gUnknown_0203CD9F, TRUE, baseTileNum, paletteNum);
sYesNoWindowId = AddWindow(window);
SetWindowBorderStyle(sYesNoWindowId, TRUE, baseTileNum, paletteNum);
printer.currentChar = gText_YesNo;
printer.windowId = gUnknown_0203CD9F;
printer.windowId = sYesNoWindowId;
printer.fontId = 1;
printer.x = 8;
printer.y = 1;
@@ -1657,7 +1657,7 @@ void CreateYesNoMenu(const struct WindowTemplate *window, u16 baseTileNum, u8 pa
printer.lineSpacing = 0;
AddTextPrinter(&printer, 0xFF, NULL);
InitMenuInUpperLeftCornerPlaySoundWhenAPressed(gUnknown_0203CD9F, 2, initialCursorPos);
InitMenuInUpperLeftCornerPlaySoundWhenAPressed(sYesNoWindowId, 2, initialCursorPos);
}
void sub_81997AC(u8 windowId, u8 a4, u8 a6, u8 a7, const struct MenuAction *strs)
@@ -1709,26 +1709,26 @@ u8 sub_8199944(u8 windowId, u8 optionWidth, u8 horizontalCount, u8 verticalCount
{
s32 pos;
gUnknown_0203CD90.left = 0;
gUnknown_0203CD90.top = 1;
gUnknown_0203CD90.minCursorPos = 0;
gUnknown_0203CD90.maxCursorPos = (horizontalCount * verticalCount) - 1;
gUnknown_0203CD90.windowId = windowId;
gUnknown_0203CD90.fontId = 1;
gUnknown_0203CD90.optionWidth = optionWidth;
gUnknown_0203CD90.optionHeight = 16;
gUnknown_0203CD90.horizontalCount = horizontalCount;
gUnknown_0203CD90.verticalCount = verticalCount;
sMenu.left = 0;
sMenu.top = 1;
sMenu.minCursorPos = 0;
sMenu.maxCursorPos = (horizontalCount * verticalCount) - 1;
sMenu.windowId = windowId;
sMenu.fontId = 1;
sMenu.optionWidth = optionWidth;
sMenu.optionHeight = 16;
sMenu.horizontalCount = horizontalCount;
sMenu.verticalCount = verticalCount;
pos = initialCursorPos;
if (pos < 0 || pos > gUnknown_0203CD90.maxCursorPos)
gUnknown_0203CD90.cursorPos = 0;
if (pos < 0 || pos > sMenu.maxCursorPos)
sMenu.cursorPos = 0;
else
gUnknown_0203CD90.cursorPos = pos;
sMenu.cursorPos = pos;
sub_8199134(0, 0);
return gUnknown_0203CD90.cursorPos;
return sMenu.cursorPos;
}
void clear_scheduled_bg_copies_to_vram(void)
+1 -1
View File
@@ -152,7 +152,7 @@ static void Task_ContinueTaskAfterMessagePrints(u8 taskId)
gUnknown_0300117C(taskId);
}
void sub_8121F68(u8 taskId, const struct YesNoFuncTable *data)
void DoYesNoFuncWithChoice(u8 taskId, const struct YesNoFuncTable *data)
{
gUnknown_0203A138 = *data;
gTasks[taskId].func = Task_CallYesOrNoCallback;
+2 -2
View File
@@ -46,7 +46,7 @@ extern void NewGameInitPCItems(void);
extern void ClearDecorationInventories(void);
extern void ResetFanClub(void);
extern void copy_strings_to_sav1(void);
extern void sub_8195E10(void);
extern void InitMatchCallCounters(void);
extern void sub_801AFD8(void);
extern void sub_800E5AC(void);
extern void sub_81D54BC(void);
@@ -209,7 +209,7 @@ void NewGameInitData(void)
SetLilycoveLady();
ResetAllApprenticeData();
ClearRankingHallRecords();
sub_8195E10();
InitMatchCallCounters();
sub_801AFD8();
sub_800E5AC();
sub_81D54BC();
+2 -2
View File
@@ -127,7 +127,7 @@ extern void ExecuteTruckSequence(void);
extern void sub_80A0A38(void);
extern void WriteFlashScanlineEffectBuffer(u8);
extern void sub_81AA2F8(void);
extern void sub_8195E10(void);
extern void InitMatchCallCounters(void);
extern void sub_80EDB44(void);
extern void sub_81D64C0(void);
extern void InitFieldMessageBox(void);
@@ -1777,7 +1777,7 @@ void CB2_ContinueSavedGame(void)
PlayTimeCounter_Start();
ScriptContext1_Init();
ScriptContext2_Disable();
sub_8195E10();
InitMatchCallCounters();
if (UseContinueGameWarp() == TRUE)
{
ClearContinueGameWarpStatus();
+5 -5
View File
@@ -2799,7 +2799,7 @@ static void sub_81B1CD0(struct Pokemon *mon, u16 item, u8 c)
{
GetMonNickname(mon, gStringVar1);
CopyItemName(item, gStringVar2);
StringExpandPlaceholders(gStringVar4, gText_RecievedItemFromPkmn);
StringExpandPlaceholders(gStringVar4, gText_ReceivedItemFromPkmn);
sub_81B1B5C(gStringVar4, c);
schedule_bg_copy_tilemap_to_vram(2);
}
@@ -7257,10 +7257,10 @@ static void sub_81B9424(u8 taskId)
static void sub_81B9470(void)
{
gUnknown_02039F24 = GetCursorSelectionMonId();
if (gUnknown_02039F24 >= PARTY_SIZE)
gUnknown_02039F24 = 0xFF;
gSpecialVar_0x8004 = gUnknown_02039F24;
gContestMonPartyIndex = GetCursorSelectionMonId();
if (gContestMonPartyIndex >= PARTY_SIZE)
gContestMonPartyIndex = 0xFF;
gSpecialVar_0x8004 = gContestMonPartyIndex;
gFieldCallback2 = hm_add_c3_without_phase_2;
SetMainCallback2(CB2_ReturnToField);
}
+1 -1
View File
@@ -96,7 +96,7 @@ static const u16 sLandmarkData[][2] = {
{MAPSEC_ALTERING_CAVE_2, FLAG_LANDMARK_ALTERING_CAVE},
{MAPSEC_MIRAGE_TOWER, FLAG_LANDMARK_MIRAGE_TOWER},
{MAPSEC_DESERT_UNDERPASS, FLAG_LANDMARK_DESERT_UNDERPASS},
{MAPSEC_ARTISAN_CAVE, FLAG_0x8DF},
{MAPSEC_ARTISAN_CAVE, FLAG_LANDMARK_ARTISAN_CAVE},
{MAPSEC_NONE}
};
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -240,7 +240,7 @@ static void CreateBattlerSprite(u8 battler)
{
SetMultiuseSpriteTemplateToTrainerBack(gSaveBlock2Ptr->playerGender, GetBattlerPosition(B_POSITION_PLAYER_LEFT));
gBattlerSpriteIds[battler] = CreateSprite(&gMultiuseSpriteTemplate, 0x50,
(8 - gTrainerBackPicCoords[gSaveBlock2Ptr->playerGender].coords) * 4 + 80,
(8 - gTrainerBackPicCoords[gSaveBlock2Ptr->playerGender].size) * 4 + 80,
GetBattlerSpriteSubpriority(0));
gSprites[gBattlerSpriteIds[battler]].oam.paletteNum = battler;
gSprites[gBattlerSpriteIds[battler]].callback = SpriteCallbackDummy;
@@ -250,7 +250,7 @@ static void CreateBattlerSprite(u8 battler)
{
SetMultiuseSpriteTemplateToTrainerBack(TRAINER_BACK_PIC_WALLY, GetBattlerPosition(0));
gBattlerSpriteIds[battler] = CreateSprite(&gMultiuseSpriteTemplate, 0x50,
(8 - gTrainerBackPicCoords[TRAINER_BACK_PIC_WALLY].coords) * 4 + 80,
(8 - gTrainerBackPicCoords[TRAINER_BACK_PIC_WALLY].size) * 4 + 80,
GetBattlerSpriteSubpriority(0));
gSprites[gBattlerSpriteIds[battler]].oam.paletteNum = battler;
gSprites[gBattlerSpriteIds[battler]].callback = SpriteCallbackDummy;
+4929
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -11,7 +11,7 @@ void sub_8151678(struct UnkStruct0 *r0)
memset(&r0->var04, 0, sizeof(r0->var04));
}
u8 sub_815168C(struct UnkStruct0 *r0, u8 r1, struct UnkStruct1 *r2)
u8 sub_815168C(struct UnkStruct0 *r0, u8 r1, const struct UnkStruct1 *r2)
{
if (!(r1 < 16) || (r0->var04[r1].var00_7))
return 0xFF;
+1 -1
View File
@@ -340,7 +340,7 @@ u32 RtcGetMinuteCount(void)
return (24 * 60) * RtcGetDayCount(&sRtc) + 60 * sRtc.hour + sRtc.minute;
}
u16 RtcGetLocalDayCount(void)
u32 RtcGetLocalDayCount(void)
{
return RtcGetDayCount(&sRtc);
}
+13 -13
View File
@@ -1416,7 +1416,7 @@ static void sub_80E2578(void)
{
gUnknown_03001124[temp] = 0;
temp++;
if (FlagGet(FLAG_0x1D0) == TRUE)
if (FlagGet(FLAG_MET_SCOTT_ON_SS_TIDAL) == TRUE)
{
gUnknown_03001124[temp] = 1;
temp++;
@@ -1431,15 +1431,15 @@ static void sub_80E2578(void)
temp++;
}
if (gSpecialVar_0x8004 == 1 && FlagGet(FLAG_0x1AE) == FALSE)
if (gSpecialVar_0x8004 == 1 && FlagGet(FLAG_HAS_EON_TICKET) == FALSE)
{
gUnknown_03001124[temp] = 2;
temp++;
FlagSet(FLAG_0x1AE);
FlagSet(FLAG_HAS_EON_TICKET);
}
}
if (CheckBagHasItem(ITEM_MYSTIC_TICKET, 1) == TRUE && FlagGet(FLAG_0x8E0) == TRUE)
if (CheckBagHasItem(ITEM_MYSTIC_TICKET, 1) == TRUE && FlagGet(FLAG_ENABLE_SHIP_NAVEL_ROCK) == TRUE)
{
if (gSpecialVar_0x8004 == 0)
{
@@ -1447,15 +1447,15 @@ static void sub_80E2578(void)
temp++;
}
if (gSpecialVar_0x8004 == 1 && FlagGet(FLAG_0x1DB) == FALSE)
if (gSpecialVar_0x8004 == 1 && FlagGet(FLAG_HAS_MYSTIC_TICKET) == FALSE)
{
gUnknown_03001124[temp] = 3;
temp++;
FlagSet(FLAG_0x1DB);
FlagSet(FLAG_HAS_MYSTIC_TICKET);
}
}
if (CheckBagHasItem(ITEM_AURORA_TICKET, 1) == TRUE && FlagGet(FLAG_0x8D5) == TRUE)
if (CheckBagHasItem(ITEM_AURORA_TICKET, 1) == TRUE && FlagGet(FLAG_ENABLE_SHIP_BIRTH_ISLAND) == TRUE)
{
if (gSpecialVar_0x8004 == 0)
{
@@ -1463,15 +1463,15 @@ static void sub_80E2578(void)
temp++;
}
if (gSpecialVar_0x8004 == 1 && FlagGet(FLAG_0x1AF) == FALSE)
if (gSpecialVar_0x8004 == 1 && FlagGet(FLAG_HAS_AURORA_TICKET) == FALSE)
{
gUnknown_03001124[temp] = 4;
temp++;
FlagSet(FLAG_0x1AF);
FlagSet(FLAG_HAS_AURORA_TICKET);
}
}
if (CheckBagHasItem(ITEM_OLD_SEA_MAP, 1) == TRUE && FlagGet(FLAG_0x8D6) == TRUE)
if (CheckBagHasItem(ITEM_OLD_SEA_MAP, 1) == TRUE && FlagGet(FLAG_ENABLE_SHIP_FARAWAY_ISLAND) == TRUE)
{
if (gSpecialVar_0x8004 == 0)
{
@@ -1479,18 +1479,18 @@ static void sub_80E2578(void)
temp++;
}
if (gSpecialVar_0x8004 == 1 && FlagGet(FLAG_0x1B0) == FALSE)
if (gSpecialVar_0x8004 == 1 && FlagGet(FLAG_HAS_OLD_SEA_MAP) == FALSE)
{
gUnknown_03001124[temp] = 5;
temp++;
FlagSet(FLAG_0x1B0);
FlagSet(FLAG_HAS_OLD_SEA_MAP);
}
}
gUnknown_03001124[temp] = 6;
temp++;
if (gSpecialVar_0x8004 == 0 && FlagGet(FLAG_0x1D0) == TRUE)
if (gSpecialVar_0x8004 == 0 && FlagGet(FLAG_MET_SCOTT_ON_SS_TIDAL) == TRUE)
{
count = temp;
}
+7 -7
View File
@@ -228,7 +228,7 @@ void sub_80F8AFC(void)
if (gIsLinkContest & 1)
{
for (i = 0; i < gUnknown_02039F30; i++)
for (i = 0; i < gNumLinkContestPlayers; i++)
{
int version = (u8)gLinkPlayers[i].version;
if (version == VERSION_RUBY || version == VERSION_SAPPHIRE)
@@ -257,7 +257,7 @@ void sub_80F8B94(void)
gReservedSpritePaletteCount = 12;
if (gIsLinkContest & 1)
{
for (i = 0; i < gUnknown_02039F30; i++)
for (i = 0; i < gNumLinkContestPlayers; i++)
{
eventObjectId = GetEventObjectIdByLocalIdAndMap(gUnknown_0858D8EC[i], gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup);
sprite = &gSprites[gEventObjects[eventObjectId].spriteId];
@@ -285,14 +285,14 @@ u8 GiveMonArtistRibbon(void)
{
u8 hasArtistRibbon;
hasArtistRibbon = GetMonData(&gPlayerParty[gUnknown_02039F24], MON_DATA_ARTIST_RIBBON);
hasArtistRibbon = GetMonData(&gPlayerParty[gContestMonPartyIndex], MON_DATA_ARTIST_RIBBON);
if (!hasArtistRibbon && gContestFinalStandings[gContestPlayerMonIndex] == 0 && gSpecialVar_ContestRank == 3
&& gUnknown_02039F08[gContestPlayerMonIndex] >= 800)
{
hasArtistRibbon = 1;
SetMonData(&gPlayerParty[gUnknown_02039F24], MON_DATA_ARTIST_RIBBON, &hasArtistRibbon);
if (GetRibbonCount(&gPlayerParty[gUnknown_02039F24]) > 4)
sub_80EE4DC(&gPlayerParty[gUnknown_02039F24], MON_DATA_ARTIST_RIBBON);
SetMonData(&gPlayerParty[gContestMonPartyIndex], MON_DATA_ARTIST_RIBBON, &hasArtistRibbon);
if (GetRibbonCount(&gPlayerParty[gContestMonPartyIndex]) > 4)
sub_80EE4DC(&gPlayerParty[gContestMonPartyIndex], MON_DATA_ARTIST_RIBBON);
return 1;
}
@@ -402,7 +402,7 @@ static void sub_80F8EE8(u8 taskId)
void ScriptGetMultiplayerId(void)
{
if ((gIsLinkContest & 1) && gUnknown_02039F30 == 4 && !(gIsLinkContest & 2))
if ((gIsLinkContest & 1) && gNumLinkContestPlayers == 4 && !(gIsLinkContest & 2))
gSpecialVar_Result = GetMultiplayerId();
else
gSpecialVar_Result = 4;
+1 -1
View File
@@ -1033,7 +1033,7 @@ void sub_80E9FFC(u8 taskId)
void sub_80EA06C(u8 taskId)
{
DisplayYesNoMenu();
sub_8121F68(taskId, &gUnknown_0858D058);
DoYesNoFuncWithChoice(taskId, &gUnknown_0858D058);
}
void sub_80EA08C(u8 taskId)
+1 -1
View File
@@ -390,7 +390,7 @@ const u8 gText_RemoveMailBeforeItem[] = _("MAIL must be removed before\nholding
const u8 gText_PkmnWasGivenItem[] = _("{STR_VAR_1} was given the\n{STR_VAR_2} to hold.{PAUSE_UNTIL_PRESS}");
const u8 gText_SwitchPkmnItem[] = _("{STR_VAR_1} is already holding\none {STR_VAR_2}.\pWould you like to switch the\ntwo items?");
const u8 gText_PkmnNotHolding[] = _("{STR_VAR_1} isn't holding\nanything.{PAUSE_UNTIL_PRESS}");
const u8 gText_RecievedItemFromPkmn[] = _("Received the {STR_VAR_2}\nfrom {STR_VAR_1}.{PAUSE_UNTIL_PRESS}");
const u8 gText_ReceivedItemFromPkmn[] = _("Received the {STR_VAR_2}\nfrom {STR_VAR_1}.{PAUSE_UNTIL_PRESS}");
const u8 gText_MailTakenFromPkmn[] = _("MAIL was taken from the\nPOKéMON.{PAUSE_UNTIL_PRESS}");
const u8 gText_SwitchedPkmnItem[] = _("The {STR_VAR_2} was taken and\nreplaced with the {STR_VAR_1}.{PAUSE_UNTIL_PRESS}");
const u8 gText_PkmnHoldingItemCantHoldMail[] = _("This POKéMON is holding an\nitem. It cannot hold MAIL.{PAUSE_UNTIL_PRESS}");
+10 -88
View File
@@ -3491,13 +3491,12 @@ static u32 sub_807A5F4(struct Pokemon *monList, int a1, int monIdx)
}
}
#ifdef NONMATCHING
s32 sub_807A728(void)
{
s32 val;
u16 version;
if (gReceivedRemoteLinkPlayers)
if (gReceivedRemoteLinkPlayers != 0)
{
val = 0;
version = (gLinkPlayers[GetMultiplayerId() ^ 1].version & 0xFF);
@@ -3536,83 +3535,6 @@ s32 sub_807A728(void)
}
return 0;
}
#else
NAKED
s32 sub_807A728(void)
{
asm_unified("push {r4-r7,lr}\n\
ldr r0, =gReceivedRemoteLinkPlayers\n\
ldrb r0, [r0]\n\
cmp r0, 0\n\
beq _0807A7B4\n\
movs r4, 0\n\
bl GetMultiplayerId\n\
ldr r5, =gLinkPlayers\n\
movs r7, 0x1\n\
eors r0, r7\n\
lsls r0, 24\n\
lsrs r0, 24\n\
lsls r1, r0, 3\n\
subs r1, r0\n\
lsls r1, 2\n\
adds r1, r5\n\
ldrb r1, [r1]\n\
subs r0, r1, 0x1\n\
lsls r0, 16\n\
lsrs r0, 16\n\
cmp r0, 0x2\n\
bls _0807A7B4\n\
subs r0, r1, 0x4\n\
lsls r0, 16\n\
lsrs r0, 16\n\
cmp r0, 0x1\n\
bhi _0807A762\n\
movs r4, 0x2\n\
_0807A762:\n\
cmp r4, 0\n\
ble _0807A7B4\n\
bl GetMultiplayerId\n\
lsls r0, 24\n\
lsrs r0, 24\n\
lsls r1, r0, 3\n\
subs r1, r0\n\
lsls r1, 2\n\
adds r1, r5\n\
ldrb r1, [r1, 0x12]\n\
movs r6, 0xF0\n\
adds r0, r6, 0\n\
ands r0, r1\n\
cmp r0, 0\n\
beq _0807A7B0\n\
cmp r4, 0x2\n\
bne _0807A7B4\n\
bl GetMultiplayerId\n\
eors r0, r7\n\
lsls r0, 24\n\
lsrs r0, 24\n\
lsls r1, r0, 3\n\
subs r1, r0\n\
lsls r1, 2\n\
adds r1, r5\n\
ldrb r1, [r1, 0x12]\n\
adds r0, r6, 0\n\
ands r0, r1\n\
cmp r0, 0\n\
bne _0807A7B4\n\
movs r0, 0x2\n\
b _0807A7B6\n\
.pool\n\
_0807A7B0:\n\
movs r0, 0x1\n\
b _0807A7B6\n\
_0807A7B4:\n\
movs r0, 0\n\
_0807A7B6:\n\
pop {r4-r7}\n\
pop {r1}\n\
bx r1");
}
#endif // NONMATCHING
static bool32 IsDeoxysOrMewUntradable(u16 species, bool8 isObedientBitSet)
{
@@ -3675,7 +3597,7 @@ int sub_807A7E0(struct UnkLinkRfuStruct_02022B14Substruct a0, struct UnkLinkRfuS
{
return 6;
}
if (!IsSpeciesInHoennDex(species1))
{
return 4;
@@ -3745,7 +3667,7 @@ int sub_807A918(struct Pokemon *mon, u16 monIdx)
version = gLinkPlayers[i].version & 0xFF;
if (version == VERSION_FIRE_RED ||
version == VERSION_LEAF_GREEN)
{
{
versions = 0;
}
else
@@ -3761,7 +3683,7 @@ int sub_807A918(struct Pokemon *mon, u16 monIdx)
{
unk = 0;
}
if (versions && (player->name[8] / 16))
{
unk = 0;
@@ -3774,7 +3696,7 @@ int sub_807A918(struct Pokemon *mon, u16 monIdx)
{
return 2;
}
if (speciesArray[monIdx] == SPECIES_NONE)
{
return 3;
@@ -4487,7 +4409,7 @@ static void sub_807B62C(u8 a0)
BGCNT_16COLOR |
BGCNT_SCREENBASE(18) |
BGCNT_TXT256x512);
if (gUnknown_020322A0->unk_FA)
{
DmaCopy16Defvars(3, gUnknown_083369A0, (void *) BG_SCREEN_ADDR(5), 0x1000);
@@ -4553,7 +4475,7 @@ static void sub_807B62C(u8 a0)
gUnknown_020322A0->unk_EC = 0;
DmaCopyLarge16(3, gUnknown_08332F60, (void *) BG_CHAR_ADDR(1), 0x2840, 0x1000);
if (gUnknown_020322A0->unk_FA)
{
DmaCopy16Defvars(3, gUnknown_083357A0, (void *) BG_SCREEN_ADDR(18), 0x100);
@@ -4586,7 +4508,7 @@ static void sub_807B62C(u8 a0)
gUnknown_020322A0->unk_EC = 0;
DmaCopyLarge16(3, gUnknown_08332F60, (void *) BG_CHAR_ADDR(1), 0x2840, 0x1000);
if (gUnknown_020322A0->unk_FA)
{
DmaCopy16Defvars(3, gUnknown_083357A0, (void *) BG_SCREEN_ADDR(18), 0x100);
@@ -6227,7 +6149,7 @@ static void c3_0805465C(u8 taskId)
SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE2(gUnknown_020322A0->unk_FB, gUnknown_020322A0->unk_FD));
SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE2(gUnknown_020322A0->unk_FC, gUnknown_020322A0->unk_FE));
data[0]++;
gUnknown_020322A0->unk_FB -= 5;
gUnknown_020322A0->unk_FD += 5;
@@ -6254,7 +6176,7 @@ static void sub_807F39C(u8 taskId)
SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE2(gUnknown_020322A0->unk_FB, gUnknown_020322A0->unk_FD));
SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE2(gUnknown_020322A0->unk_FC, gUnknown_020322A0->unk_FE));
if (gUnknown_020322A0->unk_FB != 120)
{
data[0]++;
+8 -8
View File
@@ -1262,7 +1262,7 @@ static void InterviewAfter_ContestLiveUpdates(void)
show2->contestLiveUpdates.active = TRUE;
StringCopy(show2->contestLiveUpdates.playerName, gSaveBlock2Ptr->playerName);
show2->contestLiveUpdates.category = gSpecialVar_ContestCategory;
show2->contestLiveUpdates.species = GetMonData(&gPlayerParty[gUnknown_02039F24], MON_DATA_SPECIES, NULL);
show2->contestLiveUpdates.species = GetMonData(&gPlayerParty[gContestMonPartyIndex], MON_DATA_SPECIES, NULL);
show2->contestLiveUpdates.winningSpecies = show->contestLiveUpdates.winningSpecies;
show2->contestLiveUpdates.appealFlags2 = show->contestLiveUpdates.appealFlags2;
show2->contestLiveUpdates.round1Rank = show->contestLiveUpdates.round1Rank;
@@ -1453,7 +1453,7 @@ void ContestLiveUpdates_BeforeInterview_5(u8 a0, u8 a1)
StringCopy(show->contestLiveUpdates.winningTrainerName, gContestMons[a1].trainerName);
StripExtCtrlCodes(show->contestLiveUpdates.winningTrainerName);
show->contestLiveUpdates.appealFlags2 = a0;
if (a1 + 1 > gUnknown_02039F30)
if (a1 + 1 > gNumLinkContestPlayers)
{
show->contestLiveUpdates.winningTrainerLanguage = gLinkPlayers[0].language;
}
@@ -1516,7 +1516,7 @@ void BravoTrainerPokemonProfile_BeforeInterview1(u16 a0)
}
}
void BravoTrainerPokemonProfile_BeforeInterview2(u8 a0)
void BravoTrainerPokemonProfile_BeforeInterview2(u8 contestStandingPlace)
{
TVShow *show;
@@ -1524,13 +1524,13 @@ void BravoTrainerPokemonProfile_BeforeInterview2(u8 a0)
sCurTVShowSlot = FindEmptyTVSlotWithinFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows);
if (sCurTVShowSlot != -1)
{
show->bravoTrainer.contestResult = a0;
show->bravoTrainer.contestResult = contestStandingPlace;
show->bravoTrainer.contestCategory = gSpecialVar_ContestCategory;
show->bravoTrainer.contestRank = gSpecialVar_ContestRank;
show->bravoTrainer.species = GetMonData(&gPlayerParty[gUnknown_02039F24], MON_DATA_SPECIES, NULL);
GetMonData(&gPlayerParty[gUnknown_02039F24], MON_DATA_NICKNAME, show->bravoTrainer.pokemonNickname);
show->bravoTrainer.species = GetMonData(&gPlayerParty[gContestMonPartyIndex], MON_DATA_SPECIES, NULL);
GetMonData(&gPlayerParty[gContestMonPartyIndex], MON_DATA_NICKNAME, show->bravoTrainer.pokemonNickname);
StripExtCtrlCodes(show->bravoTrainer.pokemonNickname);
show->bravoTrainer.pokemonNameLanguage = GetMonData(&gPlayerParty[gUnknown_02039F24], MON_DATA_LANGUAGE);
show->bravoTrainer.pokemonNameLanguage = GetMonData(&gPlayerParty[gContestMonPartyIndex], MON_DATA_LANGUAGE);
}
}
@@ -3538,7 +3538,7 @@ u8 CheckForBigMovieOrEmergencyNewsOnTV(void)
return 0;
}
}
if (FlagGet(FLAG_SYS_TV_LATI) == TRUE)
if (FlagGet(FLAG_SYS_TV_LATIAS_LATIOS) == TRUE)
{
return 1;
}