Sync contest struct field documentation from Emerald

This commit is contained in:
PikalaxALT
2021-06-23 11:32:25 -04:00
parent d461cbcaa1
commit ed0546faae
10 changed files with 163 additions and 166 deletions

View File

@@ -310,113 +310,112 @@ s8 Contest_GetMoveExcitement(u16);
struct ContestTempSave
{
/*0x18004*/ u16 cachedWindowPalettes[16][16];
/*0x18204*/ u16 unk18204[0x200];
/*0x18604*/ u16 unk18604[0x200];
/*0x18A04*/ u8 unk18A04[0x800];
/*0x18204*/ u16 cachedPlttBufferUnfaded[0x200];
/*0x18604*/ u16 cachedPlttBufferFaded[0x200];
/*0x18A04*/ u8 savedJunk[0x800];
};
struct Contest
{
/*0x19204*/ u8 playerMoveChoice;
/*0x19205*/ u8 turnNumber;
/*0x19205*/ u8 appealNumber;
/*0x19206*/ u8 unk19206[4]; // seems to only be used by an unref function
/*0x1920A*/ u16 unk1920A_0:1; // Task active flags?
u16 unk1920A_1:1;
u16 unk1920A_2:1;
u16 unk1920A_3:1;
u16 waitForJudgeSpeechBubble :1;
u16 isShowingApplauseMeter :1;
u16 applauseMeterIsMoving :1;
u16 animatingAudience :1;
/*0x1920B*/ u16 waitForAudienceBlend :1;
u16 sliderHeartsAnimating :1;
u16 waitForLink :1;
/*0x1920A*/ bool16 unk1920A_0:1; // Task active flags?
bool16 unk1920A_1:1;
bool16 unk1920A_2:1;
bool16 unk1920A_3:1;
bool16 waitForJudgeSpeechBubble:1;
bool16 isShowingApplauseMeter:1;
bool16 applauseMeterIsMoving:1;
bool16 animatingAudience:1;
/*0x1920B*/ bool16 waitForAudienceBlend:1;
bool16 sliderHeartsAnimating:1;
bool16 waitForLink:1;
/*0x1920C*/ u8 mainTaskId;
/*0x1920D*/ u8 unk1920D[4];
/*0x19211*/ u8 unk19211;
/*0x19212*/ u8 unk19212;
/*0x19211*/ u8 judgeAttentionTaskId;
/*0x19212*/ u8 blendTaskId;
/*0x19213*/ u8 filler19213;
/*0x19214*/ u8 unk19214;
/*0x19215*/ u8 unk19215;
/*0x19216*/ u8 unk19216; // sprite ID
/*0x19214*/ u8 turnNumber;
/*0x19215*/ u8 currentContestant;
/*0x19216*/ u8 judgeSpeechBubbleSpriteId;
/*0x19217*/ s8 applauseLevel;
/*0x19218*/ u8 prevTurnOrder[4];
/*0x1921C*/ u32 unk1921C; // saved RNG value?
u16 unk19220[5][4]; // move history?
u8 unk19248[5][4]; // excitement history
/*0x1921C*/ u32 unusedRng; // saved RNG value?
u16 moveHistory[5][4]; // move history?
u8 excitementHistory[5][4]; // excitement history
u8 applauseMeterSpriteId; // sprite ID
/*0x1925D*/ u8 unk1925D;
/*0x1925D*/ u8 contestSetupState;
/*0x1925E*/ u8 moveAnimTurnCount;
};
struct ContestantStatus
{
/*0x00*/ s16 baseAppeal; // move appeal?
/*0x02*/ s16 appeal; // final appeal after end of turn, maybe?
/*0x00*/ s16 baseAppeal;
/*0x02*/ s16 appeal;
/*0x04*/ s16 pointTotal;
/*0x06*/ u16 currMove;
/*0x08*/ u16 prevMove;
/*0x0A*/ u8 moveCategory;
/*0x0B*/ u8 ranking :2;
u8 unkB_2:2;
/*0x0B*/ u8 ranking:2;
u8 unkB_2:2; // unused
u8 moveRepeatCount:3;
u8 noMoreTurns:1; // used a one-time move?
/*0x0C*/ u8 nervous:1;
bool8 noMoreTurns:1; // used a one-time move?
/*0x0C*/ bool8 nervous:1;
u8 numTurnsSkipped:2;
/*0x0D*/ s8 condition;
/*0x0E*/ u8 jam;
/*0x0F*/ u8 jamReduction;
// Flags set by move effect
/*0x10*/ u8 resistant:1;
u8 immune:1;
u8 moreEasilyStartled:1;
u8 usedRepeatableMove:1;
/*0x10*/ bool8 resistant:1;
bool8 immune:1;
bool8 moreEasilyStartled:1;
bool8 usedRepeatableMove:1;
u8 conditionMod:2; // 1: just raised condition; 2: appeal greatly improved by condition
u8 turnOrderMod:2; // 1: defined; 2: random
/*0x11*/ u8 turnOrderModAction:2; // 1: made first; 2: made last; 3: made random
u8 turnSkipped:1;
u8 exploded:1;
u8 overrideCategoryExcitementMod:1;
u8 appealTripleCondition:1;
bool8 turnSkipped:1;
bool8 exploded:1;
bool8 overrideCategoryExcitementMod:1;
bool8 appealTripleCondition:1;
/*0x12*/ u8 jamSafetyCount;
/*0x13*/ u8 effectStringId; // status action?
/*0x14*/ u8 effectStringId2;
/*0x15*/ u8 disappointedRepeat:1;
u8 unk15_1:1;
u8 repeatedPrevMove :1;
u8 completedComboFlag :1;
u8 hasJudgesAttention:1;
u8 judgesAttentionWasRemoved:1;
u8 usedComboMove :1;
/*0x15*/ bool8 repeatedMove:1;
bool8 unk15_1:1; // unused
bool8 repeatedPrevMove:1;
bool8 completedComboFlag:1;
bool8 hasJudgesAttention:1;
bool8 judgesAttentionWasRemoved:1;
bool8 usedComboMove:1;
/*0x16*/ u8 completedCombo;
/*0x17*/ u8 comboAppealBonus;
/*0x18*/ u8 unk18;
/*0x18*/ u8 repeatJam;
/*0x19*/ u8 nextTurnOrder; // turn position
/*0x1A*/ u8 attentionLevel; // How much the Pokemon "stood out"
/*0x1B*/ u8 unk1B;
/*0x1B*/ u8 contestantAnimTarget;
};
// possibly the same as UnknownContestStruct3?
struct ContestGfxState
{
u8 sliderHeartSpriteId; // sprite ID
u8 unk1; // sprite ID
u8 unk2_0:1;
u8 boxBlinking :1;
u8 updatingAppealHearts :1;
u8 sliderHeartSpriteId;
u8 nextTurnSpriteId;
bool8 sliderUpdating:1;
bool8 boxBlinking:1;
bool8 updatingAppealHearts:1;
};
struct ContestExcitement
{
s8 moveExcitement; // current move excitement?
u8 excitementFrozen:1;
s8 moveExcitement;
bool8 excitementFrozen:1;
u8 excitementFreezer:3;
s8 excitementAppealBonus;
};
struct UnknownContestStruct7
struct ContestAppealMoveResults
{
u8 turnOrder[4];
s16 jam;
@@ -429,8 +428,8 @@ struct UnknownContestStruct7
struct ContestMoveAnim
{
u16 species;
u16 unk2;
u8 unk4_0:1;
u16 targetSpecies;
bool8 hasTargetAnim :1;
u8 contestant;
u32 personality;
u32 otId;
@@ -445,16 +444,6 @@ struct ContestFinalStandings
s32 contestant;
};
// TODO: Please move these to ewram.h once the defines are settled down and figured out completely.
#define gCurContestWinner (*(struct ContestWinner *)(gSharedMem + 0x15DE0))
#define eEnableContestDebugging (gSharedMem[0x18000])
#define eContestTempSave (*(struct ContestTempSave *)(gSharedMem + 0x18004))
#define sContest (*(struct Contest *)(gSharedMem + 0x19204))
#define sContestantStatus ((struct ContestantStatus *)(gSharedMem + 0x19260))
#define eContestExcitement (*(struct ContestExcitement *)(gSharedMem + 0x19328))
#define eContestGfxState ((struct ContestGfxState *)(gSharedMem + 0x19338))
#define gContestResources__moveAnim (*(struct ContestMoveAnim *)(gSharedMem + 0x19348))
extern u8 gContestPlayerMonIndex;
extern u8 gIsLinkContest;
extern u32 gContestRngValue;

View File

@@ -90,10 +90,20 @@ extern u8 gSharedMem[];
#define ewram16000_2 (&gSharedMem[0x16000])
// Contest
#define eCurContestWinnerSaveIdx (gSharedMem[0x15DDE])
#define eCurContestWinnerIsForArtist (gSharedMem[0x15DDF])
#define eCurContestWinner ((*(struct ContestWinner*)(gSharedMem + 0x15DE0)))
#define eContestPaintingBuffers ((*(struct ContestPaintingBuffers*)(gSharedMem + 0x15E00)))
#define eEnableContestDebugging (gSharedMem[0x18000])
#define eContestTempSave (*(struct ContestTempSave *)(gSharedMem + 0x18004))
#define sContest (*(struct Contest *)(gSharedMem + 0x19204))
#define sContestantStatus ((struct ContestantStatus *)(gSharedMem + 0x19260))
#define eContestAppealResults (*(struct ContestAppealMoveResults *)(gSharedMem + 0x192D0))
#define eContestAI ((struct ContestAIInfo *)(gSharedMem + 0x192E4))
#define eContestExcitement (*(struct ContestExcitement *)(gSharedMem + 0x19328))
#define eContestGfxState ((struct ContestGfxState *)(gSharedMem + 0x19338))
#define gContestResources__moveAnim (*(struct ContestMoveAnim *)(gSharedMem + 0x19348))
// Battle Struct
// For matching purposes, the struct is placed at 0x02000000 and
@@ -199,8 +209,6 @@ extern u8 gSharedMem[];
#define eCableCar2 ((struct CableCarEwramStruct2 *)(gSharedMem + 0x19000))
#define ePokedexView3 (struct PokedexView *)(gSharedMem + 0x19000)
#define eRoulette ((struct Roulette *)(gSharedMem + 0x19000))
#define eContestAppealResults (*(struct UnknownContestStruct7 *)(gSharedMem + 0x192D0))
#define eContestAI ((struct ContestAIInfo *)(gSharedMem + 0x192E4))
#define EWRAM_19348 ((u16 *)(gSharedMem + 0x19348))
#define eWRAM_19348Struct ((struct EWRAM_19348_Struct *)(gSharedMem + 0x19348))
#define ewram19800 (&gSharedMem[0x19800])

View File

@@ -654,7 +654,7 @@ void sub_8031FC4(u8 a, u8 b, bool8 c)
if (IsContest())
{
r10 = 0;
species = gContestResources__moveAnim.unk2;
species = gContestResources__moveAnim.targetSpecies;
personalityValue = gContestResources__moveAnim.personality;
otId = gContestResources__moveAnim.otId;
HandleLoadSpecialPokePic(

View File

@@ -29,7 +29,7 @@ const struct DebugStruct1 gUnknown_Debug_4245CC[] =
{ 7, DTR("ナンバー7", "NUMBER7") },
};
const struct {u8 totalPoints; u8 unk1;} gUnknown_Debug_8424620[] =
const struct {u8 totalPoints; u8 nextTurnSpriteId;} gUnknown_Debug_8424620[] =
{
{ 1, 1 },
{ 2, 1 },
@@ -237,7 +237,7 @@ void debug_sub_81257E0(void)
gSaveBlock1.linkBattleRecords,
gUnknown_Debug_4245CC[id].var1,
gUnknown_Debug_4245CC[id].var0,
gUnknown_Debug_8424620[i].unk1,
gUnknown_Debug_8424620[i].nextTurnSpriteId,
gLinkPlayers[gLinkPlayerObjectEvents[id].linkPlayerId].language);
}
}

View File

@@ -227,9 +227,9 @@ void CB2_StartContest(void)
gMain.state++;
break;
case 2:
if (sub_80AB70C(&sContest.unk1925D) == 0)
if (sub_80AB70C(&sContest.contestSetupState) == 0)
break;
sContest.unk1925D = 0;
sContest.contestSetupState = 0;
gMain.state++;
break;
case 3:
@@ -315,7 +315,7 @@ u8 sub_80AB70C(u8 *a)
break;
case 4:
LZDecompressVram(gUnknown_08D17424, (void *)(VRAM + 0xE000));
DmaCopy32Defvars(3, (void *)(VRAM + 0xE000), eContestTempSave.unk18A04, 0x800);
DmaCopy32Defvars(3, (void *)(VRAM + 0xE000), eContestTempSave.savedJunk, 0x800);
break;
case 5:
LoadCompressedPalette(gUnknown_08D17144, 0, 0x200);
@@ -330,7 +330,7 @@ u8 sub_80AB70C(u8 *a)
DrawContestantWindows();
FillContestantWindowBgs();
SwapMoveDescAndContestTilemaps();
sContest.unk19216 = CreateJudgeSpeechBubbleSprite();
sContest.judgeSpeechBubbleSpriteId = CreateJudgeSpeechBubbleSprite();
CreateSliderHeartSprites();
sub_80B0034();
CreateApplauseMeterSprite();
@@ -440,12 +440,12 @@ void sub_80ABB70(u8 taskId)
gBattle_BG0_Y = 0;
gBattle_BG2_Y = 0;
ContestDebugDoPrint();
DmaCopy32Defvars(3, gPlttBufferUnfaded, eContestTempSave.unk18204, 0x400);
DmaCopy32Defvars(3, gPlttBufferUnfaded, eContestTempSave.cachedPlttBufferUnfaded, 0x400);
if (!Contest_IsMonsTurnDisabled(gContestPlayerMonIndex))
StringCopy(gDisplayedStringBattle, gText_Contest_WhichMoveWillBePlayed);
else
StringCopy(gDisplayedStringBattle, gText_Contest_ButItCantParticipate);
InsertStringDigit(gDisplayedStringBattle, sContest.turnNumber + 1);
InsertStringDigit(gDisplayedStringBattle, sContest.appealNumber + 1);
ContestClearGeneralTextWindow();
StringExpandPlaceholders(gStringVar4, gDisplayedStringBattle);
Text_InitWindow8002EB0(&gMenuWindow, gStringVar4, 776, 1, 15);
@@ -568,7 +568,7 @@ void sub_80ABEA0(u8 taskId)
StringCopy(gDisplayedStringBattle, gText_Contest_WhichMoveWillBePlayed);
else
StringCopy(gDisplayedStringBattle, gText_Contest_ButItCantParticipate);
InsertStringDigit(gDisplayedStringBattle, sContest.turnNumber + 1);
InsertStringDigit(gDisplayedStringBattle, sContest.appealNumber + 1);
ContestClearGeneralTextWindow();
StringExpandPlaceholders(gStringVar4, gDisplayedStringBattle);
Text_InitWindowAndPrintText(&gMenuWindow, gStringVar4, 776, 1, 15);
@@ -832,8 +832,8 @@ void sub_80AC188(u8 taskId)
gBattle_BG0_Y = 0;
gBattle_BG2_Y = 0;
sub_80AFFE0(FALSE);
DmaCopy32Defvars(3, gPlttBufferFaded, eContestTempSave.unk18604, 0x400);
LoadPalette(eContestTempSave.unk18204, 0, 0x400);
DmaCopy32Defvars(3, gPlttBufferFaded, eContestTempSave.cachedPlttBufferFaded, 0x400);
LoadPalette(eContestTempSave.cachedPlttBufferUnfaded, 0, 0x400);
gTasks[taskId].data[0] = 0;
gTasks[taskId].data[1] = 0;
gTasks[taskId].func = sub_80AC204;
@@ -863,8 +863,8 @@ void sub_80AC284(u8 taskId)
{
if (++gTasks[taskId].data[0] > 19)
{
sContest.unk19214 = 0;
sContest.unk1921C = gRngValue;
sContest.turnNumber = 0;
sContest.unusedRng = gRngValue;
gTasks[taskId].data[0] = 0;
gTasks[taskId].func = sub_80AC2CC;
}
@@ -874,24 +874,24 @@ void sub_80AC2CC(u8 taskId)
{
u8 spriteId;
s32 i;
u8 r7 = sContest.unk19215;
u8 r7 = sContest.currentContestant;
s8 r4;
switch (gTasks[taskId].data[0])
{
case 0:
ContestDebugDoPrint();
for (i = 0; sContest.unk19214 != eContestAppealResults.turnOrder[i]; i++)
for (i = 0; sContest.turnNumber != eContestAppealResults.turnOrder[i]; i++)
;
sContest.unk19215 = i;
r7 = sContest.unk19215;
sContest.currentContestant = i;
r7 = sContest.currentContestant;
if (gIsLinkContest & 1)
{
u8 taskId2;
sContest.waitForLink = 1;
if (IsPlayerLinkLeader())
CalculateAppealMoveImpact(sContest.unk19215);
CalculateAppealMoveImpact(sContest.currentContestant);
taskId2 = CreateTask(Task_LinkContest_CommunicateAppealsState, 0);
SetTaskFuncWithFollowupFunc(
taskId2, Task_LinkContest_CommunicateAppealsState, Task_EndWaitForLink);
@@ -900,7 +900,7 @@ void sub_80AC2CC(u8 taskId)
}
else
{
CalculateAppealMoveImpact(sContest.unk19215);
CalculateAppealMoveImpact(sContest.currentContestant);
gTasks[taskId].data[0] = 2;
}
return;
@@ -926,16 +926,16 @@ void sub_80AC2CC(u8 taskId)
for (i = 0; i < 4; i++)
gBattleMonForms[i] = 0;
memset(&gContestResources__moveAnim, 0, sizeof(gContestResources__moveAnim));
SetMoveAnimAttackerData(sContest.unk19215);
SetMoveAnimAttackerData(sContest.currentContestant);
spriteId = CreateContestantSprite(
gContestMons[sContest.unk19215].species,
gContestMons[sContest.unk19215].otId,
gContestMons[sContest.unk19215].personality);
gContestMons[sContest.currentContestant].species,
gContestMons[sContest.currentContestant].otId,
gContestMons[sContest.currentContestant].personality);
gSprites[spriteId].pos2.x = 120;
gSprites[spriteId].callback = sub_80AD8FC;
gTasks[taskId].data[2] = spriteId;
gBattlerSpriteIds[gBattlerAttacker] = spriteId;
BlinkContestantBox(CreateContestantBoxBlinkSprites(sContest.unk19215), FALSE);
BlinkContestantBox(CreateContestantBoxBlinkSprites(sContest.currentContestant), FALSE);
gTasks[taskId].data[0] = 4;
return;
case 4:
@@ -973,10 +973,10 @@ void sub_80AC2CC(u8 taskId)
return;
case 7:
{
u16 move = SanitizeMove(sContestantStatus[sContest.unk19215].currMove);
u16 move = SanitizeMove(sContestantStatus[sContest.currentContestant].currMove);
SetMoveSpecificAnimData(sContest.unk19215);
SetMoveAnimAttackerData(sContest.unk19215);
SetMoveSpecificAnimData(sContest.currentContestant);
SetMoveAnimAttackerData(sContest.currentContestant);
SelectContestMoveBankTarget(move);
DoMoveAnim(move);
gTasks[taskId].data[0] = 8;
@@ -1079,7 +1079,7 @@ void sub_80AC2CC(u8 taskId)
gTasks[taskId].data[0] = 13;
return;
case 13:
if (!eContestGfxState[sContest.unk19215].updatingAppealHearts)
if (!eContestGfxState[sContest.currentContestant].updatingAppealHearts)
gTasks[taskId].data[0] = 35;
return;
case 35:
@@ -1262,7 +1262,7 @@ void sub_80AC2CC(u8 taskId)
case 45:
if (!sContest.waitForJudgeSpeechBubble)
{
StartStopFlashJudgeAttentionEye(sContest.unk19215);
StartStopFlashJudgeAttentionEye(sContest.currentContestant);
gTasks[taskId].data[0] = 15;
}
return;
@@ -1289,7 +1289,7 @@ void sub_80AC2CC(u8 taskId)
}
return;
case 17:
if (sContestantStatus[r7].disappointedRepeat)
if (sContestantStatus[r7].repeatedMove)
{
ContestClearGeneralTextWindow();
StringCopy(gStringVar1, gContestMons[r7].nickname);
@@ -1311,8 +1311,8 @@ void sub_80AC2CC(u8 taskId)
case 19:
if (Text_UpdateWindowInContest(&gMenuWindow) != 0)
{
UpdateAppealHearts(sContestantStatus[r7].appeal, -sContestantStatus[r7].unk18, r7);
sContestantStatus[r7].appeal -= sContestantStatus[r7].unk18;
UpdateAppealHearts(sContestantStatus[r7].appeal, -sContestantStatus[r7].repeatJam, r7);
sContestantStatus[r7].appeal -= sContestantStatus[r7].repeatJam;
gTasks[taskId].data[0] = 18;
}
return;
@@ -1344,7 +1344,7 @@ void sub_80AC2CC(u8 taskId)
}
if (r4 > 0)
{
if (sContestantStatus[r7].disappointedRepeat)
if (sContestantStatus[r7].repeatedMove)
r4 = 0;
}
ContestClearGeneralTextWindow();
@@ -1562,7 +1562,7 @@ void sub_80AC2CC(u8 taskId)
}
return;
case 22:
if (++sContest.unk19214 == 4)
if (++sContest.turnNumber == 4)
{
gTasks[taskId].data[0] = 0;
gTasks[taskId].data[1] = 0;
@@ -1696,7 +1696,7 @@ void sub_80ADAD8(u8 taskId)
void sub_80ADB04(u8 taskId)
{
DmaCopy32Defvars(3, eContestTempSave.unk18204, gPlttBufferUnfaded, 0x400);
DmaCopy32Defvars(3, eContestTempSave.cachedPlttBufferUnfaded, gPlttBufferUnfaded, 0x400);
gTasks[taskId].data[0] = 0;
gTasks[taskId].data[1] = 2;
gTasks[taskId].func = sub_80ADB48;
@@ -1768,7 +1768,7 @@ void sub_80ADD04(u8 taskId)
{
REG_BG0CNT_BITFIELD.priority = 0;
REG_BG2CNT_BITFIELD.priority = 0;
if (++sContest.turnNumber == 5)
if (++sContest.appealNumber == 5)
{
gTasks[taskId].func = sub_80ADDA4;
}

View File

@@ -966,8 +966,8 @@ void SetContestantStatusesForNextRound(void)
sContestantStatus[i].effectStringId = CONTEST_STRING_NONE;
sContestantStatus[i].effectStringId2 = CONTEST_STRING_NONE;
sContestantStatus[i].conditionMod = 0;
sContestantStatus[i].repeatedPrevMove = sContestantStatus[i].disappointedRepeat;
sContestantStatus[i].disappointedRepeat = FALSE;
sContestantStatus[i].repeatedPrevMove = sContestantStatus[i].repeatedMove;
sContestantStatus[i].repeatedMove = FALSE;
sContestantStatus[i].turnOrderModAction = 0;
sContestantStatus[i].appealTripleCondition = 0;
if (sContestantStatus[i].turnSkipped)
@@ -985,8 +985,8 @@ void SetContestantStatusesForNextRound(void)
for (i = 0; i < 4; i++)
{
sContestantStatus[i].prevMove = sContestantStatus[i].currMove;
sContest.unk19220[sContest.turnNumber][i] = sContestantStatus[i].prevMove;
sContest.unk19248[sContest.turnNumber][i] = Contest_GetMoveExcitement(sContestantStatus[i].currMove);
sContest.moveHistory[sContest.appealNumber][i] = sContestantStatus[i].prevMove;
sContest.excitementHistory[sContest.appealNumber][i] = Contest_GetMoveExcitement(sContestantStatus[i].currMove);
sContestantStatus[i].currMove = MOVE_NONE;
}
eContestExcitement.excitementFrozen = 0;
@@ -1406,7 +1406,7 @@ void sub_80AFE78(u8 a)
u8 spriteId;
s16 r5;
eContestGfxState[a].unk2_0 = 1;
eContestGfxState[a].sliderUpdating = 1;
spriteId = eContestGfxState[a].sliderHeartSpriteId;
r5 = sContestantStatus[a].pointTotal / 10 * 2;
if (r5 > 56)
@@ -1437,7 +1437,7 @@ bool8 sub_80AFF28(void)
for (i = 0; i < 4; i++)
{
if (eContestGfxState[i].unk2_0)
if (eContestGfxState[i].sliderUpdating)
break;
}
if (i == 4)
@@ -1450,7 +1450,7 @@ void sub_80AFF60(struct Sprite *sprite)
{
if (sprite->pos2.x == sprite->data[1])
{
eContestGfxState[sprite->data[0]].unk2_0 = 0;
eContestGfxState[sprite->data[0]].sliderUpdating = 0;
sprite->callback = SpriteCallbackDummy;
}
else
@@ -1491,12 +1491,12 @@ void sub_80B0034(void)
for (i = 0; i < 4; i++)
{
LoadCompressedObjectPic(&gUnknown_083CA3C4[i]);
eContestGfxState[i].unk1 = CreateSprite(
eContestGfxState[i].nextTurnSpriteId = CreateSprite(
&gSpriteTemplate_83CA3F4[i],
204, gUnknown_083CA33C[gContestantTurnOrder[i]],
0);
SetSubspriteTables(&gSprites[eContestGfxState[i].unk1], gSubspriteTables_83CA464);
gSprites[eContestGfxState[i].unk1].invisible = TRUE;
SetSubspriteTables(&gSprites[eContestGfxState[i].nextTurnSpriteId], gSubspriteTables_83CA464);
gSprites[eContestGfxState[i].nextTurnSpriteId].invisible = TRUE;
}
}
@@ -1606,15 +1606,15 @@ void sub_80B0324(void)
u8 i;
u8 taskId = CreateTask(sub_80B0458, 30);
sContest.unk19211 = taskId;
sContest.judgeAttentionTaskId = taskId;
for (i = 0; i < 4; i++)
gTasks[taskId].data[i * 4] = 0xFF;
}
void sub_80B0368(u8 a)
{
gTasks[sContest.unk19211].data[a * 4 + 0] = 0;
gTasks[sContest.unk19211].data[a * 4 + 1] = 0;
gTasks[sContest.judgeAttentionTaskId].data[a * 4 + 0] = 0;
gTasks[sContest.judgeAttentionTaskId].data[a * 4 + 1] = 0;
}
void sub_80B03A8(u8 a)
@@ -1628,11 +1628,11 @@ void sub_80B03D8(u8 taskId)
{
u8 r4 = gTasks[taskId].data[0];
if (gTasks[sContest.unk19211].data[r4 * 4 + 0] == 0
|| gTasks[sContest.unk19211].data[r4 * 4 + 0] == 0xFF)
if (gTasks[sContest.judgeAttentionTaskId].data[r4 * 4 + 0] == 0
|| gTasks[sContest.judgeAttentionTaskId].data[r4 * 4 + 0] == 0xFF)
{
gTasks[sContest.unk19211].data[r4 * 4 + 0] = 0xFF;
gTasks[sContest.unk19211].data[r4 * 4 + 1] = 0;
gTasks[sContest.judgeAttentionTaskId].data[r4 * 4 + 0] = 0xFF;
gTasks[sContest.judgeAttentionTaskId].data[r4 * 4 + 1] = 0;
BlendPalette((sContest.prevTurnOrder[r4] + 5) * 16 + 6, 2, 0, RGB(31, 31, 18));
DestroyTask(taskId);
}
@@ -1670,15 +1670,15 @@ void sub_80B0518(void)
{
u8 i;
sContest.unk19212 = CreateTask(sub_80B05FC, 30);
sContest.blendTaskId = CreateTask(sub_80B05FC, 30);
for (i = 0; i < 4; i++)
sub_80B0548(i);
}
void sub_80B0548(u8 a)
{
gTasks[sContest.unk19212].data[a * 4 + 0] = 0xFF;
gTasks[sContest.unk19212].data[a * 4 + 1] = 0;
gTasks[sContest.blendTaskId].data[a * 4 + 0] = 0xFF;
gTasks[sContest.blendTaskId].data[a * 4 + 1] = 0;
}
void UpdateBlendTaskContestantsData(void)
@@ -2553,7 +2553,7 @@ void CalculateAppealMoveImpact(u8 contestant)
sContestantStatus[contestant].moveCategory = gContestMoves[sContestantStatus[contestant].currMove].contestCategory;
if (sContestantStatus[contestant].currMove == sContestantStatus[contestant].prevMove && sContestantStatus[contestant].currMove != MOVE_NONE)
{
sContestantStatus[contestant].disappointedRepeat = TRUE;
sContestantStatus[contestant].repeatedMove = TRUE;
sContestantStatus[contestant].moveRepeatCount++;
}
else
@@ -2606,8 +2606,8 @@ void CalculateAppealMoveImpact(u8 contestant)
}
}
}
if (sContestantStatus[contestant].disappointedRepeat)
sContestantStatus[contestant].unk18 = (sContestantStatus[contestant].moveRepeatCount + 1) * 10;
if (sContestantStatus[contestant].repeatedMove)
sContestantStatus[contestant].repeatJam = (sContestantStatus[contestant].moveRepeatCount + 1) * 10;
if (sContestantStatus[contestant].nervous)
{
sContestantStatus[contestant].hasJudgesAttention = 0;
@@ -2639,7 +2639,7 @@ void CalculateAppealMoveImpact(u8 contestant)
rnd--;
}
}
sContestantStatus[contestant].unk1B = i;
sContestantStatus[contestant].contestantAnimTarget = i;
}
}
@@ -2771,7 +2771,7 @@ void SpriteCB_JudgeSpeechBubble(struct Sprite *sprite)
void DoJudgeSpeechBubble(u8 a)
{
u8 spriteId = sContest.unk19216;
u8 spriteId = sContest.judgeSpeechBubbleSpriteId;
switch (a)
{
@@ -3109,14 +3109,14 @@ void ShowHideNextTurnGfx(bool8 a)
{
CpuCopy32(
GetTurnOrderNumberGfx(i),
(void *)(VRAM + 0x10000 + (gSprites[eContestGfxState[i].unk1].oam.tileNum + 5) * 32),
(void *)(VRAM + 0x10000 + (gSprites[eContestGfxState[i].nextTurnSpriteId].oam.tileNum + 5) * 32),
64);
gSprites[eContestGfxState[i].unk1].pos1.y = gUnknown_083CA33C[gContestantTurnOrder[i]];
gSprites[eContestGfxState[i].unk1].invisible = FALSE;
gSprites[eContestGfxState[i].nextTurnSpriteId].pos1.y = gUnknown_083CA33C[gContestantTurnOrder[i]];
gSprites[eContestGfxState[i].nextTurnSpriteId].invisible = FALSE;
}
else
{
gSprites[eContestGfxState[i].unk1].invisible = TRUE;
gSprites[eContestGfxState[i].nextTurnSpriteId].invisible = TRUE;
}
}
}
@@ -3151,7 +3151,7 @@ void DrawUnnervedSymbols(void)
bool8 IsContestantAllowedToCombo(u8 contestant)
{
if (sContestantStatus[contestant].disappointedRepeat || sContestantStatus[contestant].nervous)
if (sContestantStatus[contestant].repeatedMove || sContestantStatus[contestant].nervous)
return FALSE;
else
return TRUE;
@@ -3178,7 +3178,7 @@ void SetBgForCurtainDrop(void)
for (i = 0; i < 4; i++)
{
gSprites[eContestGfxState[i].sliderHeartSpriteId].oam.priority = 1;
gSprites[eContestGfxState[i].unk1].oam.priority = 1;
gSprites[eContestGfxState[i].nextTurnSpriteId].oam.priority = 1;
}
((vBgCnt *)&REG_BG2CNT)->priority = 1;
@@ -3204,7 +3204,7 @@ void UpdateContestantBoxOrder(void)
for (i = 0; i < 4; i++)
{
gSprites[eContestGfxState[i].sliderHeartSpriteId].oam.priority = 0;
gSprites[eContestGfxState[i].unk1].oam.priority = 0;
gSprites[eContestGfxState[i].nextTurnSpriteId].oam.priority = 0;
}
}
@@ -3404,10 +3404,10 @@ void SetMoveSpecificAnimData(u8 contestant)
break;
case MOVE_TRANSFORM:
case MOVE_ROLE_PLAY:
r5_2 = sContestantStatus[contestant].unk1B;
gContestResources__moveAnim.unk2 = SanitizeSpecies(gContestMons[r5_2].species);
r5_2 = sContestantStatus[contestant].contestantAnimTarget;
gContestResources__moveAnim.targetSpecies = SanitizeSpecies(gContestMons[r5_2].species);
gContestResources__moveAnim.unk10 = gContestMons[r5_2].personality;
gContestResources__moveAnim.unk4_0 = 1;
gContestResources__moveAnim.hasTargetAnim = 1;
break;
case MOVE_RETURN:
gAnimFriendship = 0xFF;
@@ -3538,15 +3538,15 @@ bool8 Contest_SaveWinner(u8 rank)
}
else
{
gCurContestWinner.personality = gContestMons[i].personality;
gCurContestWinner.otId = gContestMons[i].otId;
gCurContestWinner.species = gContestMons[i].species;
StringCopy(gCurContestWinner.nickname, gContestMons[i].nickname);
eCurContestWinner.personality = gContestMons[i].personality;
eCurContestWinner.otId = gContestMons[i].otId;
eCurContestWinner.species = gContestMons[i].species;
StringCopy(eCurContestWinner.nickname, gContestMons[i].nickname);
if (gIsLinkContest & 1)
StringCopy(gCurContestWinner.trainerName, gLinkPlayers[i].name);
StringCopy(eCurContestWinner.trainerName, gLinkPlayers[i].name);
else
StringCopy(gCurContestWinner.trainerName, gContestMons[i].trainerName);
gCurContestWinner.contestCategory = captionId;
StringCopy(eCurContestWinner.trainerName, gContestMons[i].trainerName);
eCurContestWinner.contestCategory = captionId;
}
return TRUE;
}

View File

@@ -402,7 +402,7 @@ static void ContestAICmd_unk_00(void)
static void ContestAICmd_get_turn(void)
{
eContestAI->scriptResult = sContest.turnNumber;
eContestAI->scriptResult = sContest.appealNumber;
gAIScriptPtr += 1;
}
@@ -1402,7 +1402,7 @@ static void ContestAICmd_unk_63(void)
{
u8 var = sub_8128A7C(gAIScriptPtr[1]);
u8 var2 = gAIScriptPtr[2];
u16 move = sContest.unk19220[var2][var];
u16 move = sContest.moveHistory[var2][var];
eContestAI->scriptResult = gContestMoves[move].effect;
gAIScriptPtr += 3;
@@ -1452,7 +1452,7 @@ static void ContestAICmd_unk_68(void)
{
u8 var = sub_8128A7C(gAIScriptPtr[1]);
u8 var2 = gAIScriptPtr[2];
s8 result = sContest.unk19248[var2][var];
s8 result = sContest.excitementHistory[var2][var];
eContestAI->scriptResult = result;
gAIScriptPtr += 3;
@@ -1502,7 +1502,7 @@ static void ContestAICmd_unk_6D(void)
{
u8 var = sub_8128A7C(gAIScriptPtr[1]);
u8 var2 = gAIScriptPtr[2];
u16 move = sContest.unk19220[var2][var];
u16 move = sContest.moveHistory[var2][var];
eContestAI->scriptResult = gContestEffects[gContestMoves[move].effect].effectType;
gAIScriptPtr += 3;

View File

@@ -96,7 +96,7 @@ static void ContestEffect_GreatAppealButNoMoreMoves(void)
static void ContestEffect_RepetitionNotBoring(void)
{
sContestantStatus[eContestAppealResults.contestant].usedRepeatableMove = TRUE;
sContestantStatus[eContestAppealResults.contestant].disappointedRepeat = FALSE;
sContestantStatus[eContestAppealResults.contestant].repeatedMove = FALSE;
sContestantStatus[eContestAppealResults.contestant].moveRepeatCount = 0;
}
@@ -727,7 +727,7 @@ static void ContestEffect_NextAppealEarlier(void)
s8 j;
u8 turnOrder[4];
if (sContest.turnNumber != 4)
if (sContest.appealNumber != 4)
{
for (i = 0; i < 4; i++)
turnOrder[i] = sContestantStatus[i].nextTurnOrder;
@@ -769,7 +769,7 @@ static void ContestEffect_NextAppealLater(void)
s8 j;
u8 turnOrder[4];
if (sContest.turnNumber != 4)
if (sContest.appealNumber != 4)
{
for (i = 0; i < 4; i++)
turnOrder[i] = sContestantStatus[i].nextTurnOrder;
@@ -818,7 +818,7 @@ static void ContestEffect_ScrambleNextTurnOrder(void)
u8 turnOrder[4];
u8 unselectedContestants[4];
if (sContest.turnNumber != 4)
if (sContest.appealNumber != 4)
{
for (i = 0; i < 4; i++)
{

View File

@@ -172,8 +172,8 @@ u8 GetBattlerSpriteCoord(u8 slot, u8 a2)
default:
if (IsContest())
{
if (gContestResources__moveAnim.unk4_0)
species = gContestResources__moveAnim.unk2;
if (gContestResources__moveAnim.hasTargetAnim)
species = gContestResources__moveAnim.targetSpecies;
else
species = gContestResources__moveAnim.species;
}
@@ -219,7 +219,7 @@ u8 sub_8077BFC(u8 slot, u16 species)
{
if (IsContest())
{
if (gContestResources__moveAnim.unk4_0)
if (gContestResources__moveAnim.hasTargetAnim)
personality = gContestResources__moveAnim.unk10;
else
personality = gContestResources__moveAnim.personality;
@@ -335,8 +335,8 @@ u8 sub_8077EE4(u8 slot, u8 a2)
{
if (IsContest())
{
if (gContestResources__moveAnim.unk4_0)
species = gContestResources__moveAnim.unk2;
if (gContestResources__moveAnim.hasTargetAnim)
species = gContestResources__moveAnim.targetSpecies;
else
species = gContestResources__moveAnim.species;
}
@@ -1997,9 +1997,9 @@ s16 GetBattlerSpriteCoordAttr(u8 slot, u8 a2)
if (IsContest())
{
if (gContestResources__moveAnim.unk4_0)
if (gContestResources__moveAnim.hasTargetAnim)
{
species = gContestResources__moveAnim.unk2;
species = gContestResources__moveAnim.targetSpecies;
personality = gContestResources__moveAnim.unk10;
}
else

View File

@@ -823,8 +823,8 @@ static bool8 sub_8102058(struct Task *task)
if (unk_debug_bss_1_8 == 0)
{
PlaySE(0x18);
sub_8102E1C(eSlotMachine->unk18);
sub_8103C14(eSlotMachine->unk18);
sub_8102E1C(eSlotMachine->repeatJam);
sub_8103C14(eSlotMachine->repeatJam);
unk_debug_bss_1_8 = (Random() & 0x1F) + 1;
eSlotMachine->state = 13;
}