mirror of
https://github.com/pret/pokeruby.git
synced 2026-10-27 10:51:29 -05:00
Sync contest struct field documentation from Emerald
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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])
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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 *)®_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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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++)
|
||||
{
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user