summaryrefslogtreecommitdiff
path: root/src/matsuda_debug_menu.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/matsuda_debug_menu.c')
-rw-r--r--src/matsuda_debug_menu.c228
1 files changed, 106 insertions, 122 deletions
diff --git a/src/matsuda_debug_menu.c b/src/matsuda_debug_menu.c
index 131369e91..6177d9edb 100644
--- a/src/matsuda_debug_menu.c
+++ b/src/matsuda_debug_menu.c
@@ -10,8 +10,8 @@
#include "string_util.h"
#include "task.h"
#include "text.h"
-
-#define BIT(n) (1 << (n))
+#include "contest.h"
+#include "matsuda_debug_menu.h"
extern u8 gUnknown_0203856C;
extern u8 gUnknown_0203857D[][64];
@@ -63,24 +63,6 @@ extern u8* gMatsudaDebugMenuTextList2[];
extern u8* gMatsudaDebugMenuTextList3[];
extern u8 gMatsudaDebugMenuContestTopLeft[][2];
-struct ContestPokemon
-{
- /* 0x00 */ u16 species;
- /* 0x02 */ u8 nickname[POKEMON_NAME_LENGTH];
- /* 0x0D */ u8 trainerName[8];
- /* 0x15 */ u8 filler15[9];
- /* 0x1E */ u16 moves[4]; // moves
- /* 0x26 */ u8 cool; // cool
- /* 0x27 */ u8 beauty; // beauty
- /* 0x28 */ u8 cute; // cute
- /* 0x29 */ u8 smart; // smart
- /* 0x2A */ u8 tough; // tough
- /* 0x2B */ u8 sheen; // sheen
- /* 0x2C */ u8 filler2C[20];
-};
-
-extern struct ContestPokemon gContestMons[];
-
extern bool8 gReceivedRemoteLinkPlayers;
extern u16 gBlockRecvBuffer[MAX_LINK_PLAYERS][BLOCK_BUFFER_SIZE / 2];
@@ -103,7 +85,6 @@ static void sub_80AA10C(void);
static void sub_80AA5BC(u8);
static void sub_80AA614(u8, u8);
static void sub_80AAD08(struct Sprite *, s8);
-extern void sub_80AB184(void);
extern void sub_80AB47C(void);
extern int sub_80B2A7C(u8); //Don't know return type size
@@ -120,8 +101,8 @@ u8 unref_sub_80A9B28(void)
static bool8 sub_80A9B78(void)
{
s8 choice = ProcessMenuInput();
-
- switch(choice)
+
+ switch (choice)
{
case -2:
return FALSE;
@@ -143,11 +124,11 @@ s8 MatsudaDebugMenu_ContestResults(void)
static void sub_80A9BE4(u8 taskId)
{
- if(!gPaletteFade.active)
+ if (!gPaletteFade.active)
{
DestroyTask(taskId);
- if(!(gIsLinkContest & 1))
+ if (!(gIsLinkContest & 1))
sub_80AF668();
sub_80C2358();
@@ -171,7 +152,7 @@ s8 MatsudaDebugMenu_CommTest(void)
{
u8 newTaskId;
u8 newTaskId2;
-
+
newTaskId = CreateTask(sub_80A9E3C, 0);
SetTaskFuncWithFollowupFunc(newTaskId, sub_80A9E3C, sub_80A9C98);
newTaskId2 = CreateTask(sub_80A9E04, 1);
@@ -198,7 +179,7 @@ static void sub_80A9CDC(u8 taskId)
static void sub_80A9CF8(u8 taskId)
{
- if(gReceivedRemoteLinkPlayers == FALSE)
+ if (gReceivedRemoteLinkPlayers == FALSE)
{
DestroyTask(gTasks[taskId].data[10]);
DestroyTask(taskId);
@@ -217,7 +198,7 @@ static void sub_80A9D58(u8 taskId)
int i;
u8 dest[4];
- for(i = 0; i < 4; i++)
+ for (i = 0; i < 4; i++)
dest[i] = gTasks[taskId].data[5 + i];
gUnknown_0203869B = sub_80C4B34(dest);
@@ -240,17 +221,17 @@ static void sub_80A9DD8(u8 taskId)
static void sub_80A9E04(u8 taskId)
{
- if(gMain.newKeys == 2)
+ if (gMain.newKeys == 2)
gTasks[(u8)gTasks[taskId].data[10]].func = sub_80A9D30;
}
static void sub_80A9E3C(u8 taskId)
{
u8 i;
-
+
OpenLink();
- for(i = 0; i < 4; i++)
+ for (i = 0; i < 4; i++)
gBlockRecvBuffer[i][0] = 255;
gTasks[taskId].data[0] = 0;
@@ -261,15 +242,15 @@ static void sub_80A9E80(u8 taskId)
{
TaskFunc func;
- if(gTasks[taskId].data[0] < 10)
+ if (gTasks[taskId].data[0] < 10)
gTasks[taskId].data[0]++;
else
{
- if(GetLinkPlayerCount_2() > 3)
+ if (GetLinkPlayerCount_2() > 3)
{
gTasks[taskId].data[0] = 0;
-
- if(IsLinkMaster())
+
+ if (IsLinkMaster())
{
func = sub_80A9ED8;
gTasks[taskId].func = (TaskFunc)func;
@@ -286,7 +267,7 @@ static void sub_80A9E80(u8 taskId)
static void sub_80A9ED8(u8 taskId)
{
gTasks[taskId].data[0] = gTasks[taskId].data[0] + 1;
- if((gTasks[taskId].data[0]) == 101)
+ if ((gTasks[taskId].data[0]) == 101)
{
sub_8007F4C();
gTasks[taskId].data[0] = 0;
@@ -296,10 +277,10 @@ static void sub_80A9ED8(u8 taskId)
static void sub_80A9F10(u8 taskId)
{
- if(gReceivedRemoteLinkPlayers)
+ if (gReceivedRemoteLinkPlayers)
{
gContestPlayerMonIndex = GetMultiplayerId();
- if(GetLinkPlayerCount() == 4)
+ if (GetLinkPlayerCount() == 4)
{
gIsLinkContest = 1;
SwitchTaskToFollowupFunc(taskId);
@@ -334,18 +315,18 @@ static void sub_80A9FE4(void)
u8 *addr;
u32 i;
u8 ptr[5];
-
+
memcpy(ptr, gMatsudaDebugMenu_UnknownByteArray, 5);
addr = (void *)VRAM;
i = VRAM_SIZE;
- while(1)
+ while (1)
{
DmaFill32(3, 0, addr, 0x1000);
addr += 0x1000;
i -= 0x1000;
- if(i <= 0x1000)
+ if (i <= 0x1000)
{
DmaFill32(3, 0, addr, i);
break;
@@ -361,7 +342,7 @@ static void sub_80AA064(void)
BuildOamBuffer();
RunTasks();
UpdatePaletteFade();
- if(gMain.newKeys == 4)
+ if (gMain.newKeys == 4)
SetMainCallback2(sub_805469C);
}
@@ -395,21 +376,21 @@ static void sub_80AA10C(void)
ResetSpriteData();
ResetTasks();
FreeAllSpritePalettes();
- sub_80A9FE4();
+ sub_80A9FE4();
SetVBlankCallback(sub_80AA090);
SetMainCallback2(sub_80AA064);
gPaletteFade.bufferTransferDisabled = 0;
gUnknown_02038694 = 0;
- if(!(gContestMons[0].nickname[0]))
+ if (!(gContestMons[0].nickname[0]))
sub_80AE398(0, 0);
sub_80AE098(gUnknown_02038694);
- for(i = 0; i < 6; i++)
+ for (i = 0; i < 6; i++)
{
- sub_8003460(&gMenuWindow, gMatsudaDebugMenuTextList1[i],
- (0xA * i + 0x2A), gMatsudaDebugMenuContestTopLeft[i][0],
+ sub_8003460(&gMenuWindow, gMatsudaDebugMenuTextList1[i],
+ (0xA * i + 0x2A), gMatsudaDebugMenuContestTopLeft[i][0],
gMatsudaDebugMenuContestTopLeft[i][1]);
}
@@ -431,7 +412,7 @@ static void sub_80AA10C(void)
gSprites[spriteId].data3 = zero; // only this assignment of zero is necessary. other replacements of 0 with zero do not change the asm, compiler will treat it the same.
}
-void sub_80AA280(u8 var)
+void sub_80AA280(u8 var) // no?
{
u8 i;
@@ -439,9 +420,9 @@ void sub_80AA280(u8 var)
StringCopy(unk_2000000, gMatsudaDebugMenu_StartText);
StringAppend(unk_2000000, &gUnknown_0203857D[var][0]);
- for(i = 0; i < 4; i++)
+ for (i = 0; i < 4; i++)
{
- if(var == i)
+ if (var == i)
{
sub_8003460(&gMenuWindow, unk_2000000, (10 * i + 2), gUnknown_083C926E[i][0], gUnknown_083C926E[i][1]);
}
@@ -499,49 +480,49 @@ static void sub_80AA4F0(u8 var1, u8 var2)
static void sub_80AA5BC(u8 var)
{
- sub_8003460(&gMenuWindow, gMatsudaDebugMenuTextList2[var], 0xC2, 3, 0x12);
+ sub_8003460(&gMenuWindow, gMatsudaDebugMenuTextList2[var], 0xC2, 3, 0x12);
}
void sub_80AA5E8(u8 var)
{
- sub_8003460(&gMenuWindow, gMatsudaDebugMenuTextList3[var], 0xE8, 3, 4);
+ sub_8003460(&gMenuWindow, gMatsudaDebugMenuTextList3[var], 0xE8, 3, 4);
}
static void sub_80AA614(u8 var1, u8 var2)
{
- u16 var = sub_80AE770(var1, var2);
+ u16 var = sub_80AE770(var1, var2);
- ConvertIntToDecimalStringN(unk_2000000, var, STR_CONV_MODE_RIGHT_ALIGN, 3);
- sub_8003460(&gMenuWindow, unk_2000000, 0xE2, 3, 0xC);
+ ConvertIntToDecimalStringN(unk_2000000, var, STR_CONV_MODE_RIGHT_ALIGN, 3);
+ sub_8003460(&gMenuWindow, unk_2000000, 0xE2, 3, 0xC);
}
void sub_80AA658(u8 var)
{
- u8 i;
+ u8 i;
- sub_80AA340(var);
- sub_80AA388(var);
- sub_80AA3D0(var);
- sub_80AA418(var);
- sub_80AA460(var);
- sub_80AA4A8(var);
+ sub_80AA340(var);
+ sub_80AA388(var);
+ sub_80AA3D0(var);
+ sub_80AA418(var);
+ sub_80AA460(var);
+ sub_80AA4A8(var);
- for(i = 0; i < 4; i++)
- sub_80AA4F0(var, i);
+ for (i = 0; i < 4; i++)
+ sub_80AA4F0(var, i);
}
void SetDebugMonForContest(void)
{
- SetMonData(&gPlayerParty[0], MON_DATA_COOL, &gContestMons[gContestPlayerMonIndex].cool);
- SetMonData(&gPlayerParty[0], MON_DATA_CUTE, &gContestMons[gContestPlayerMonIndex].cute);
- SetMonData(&gPlayerParty[0], MON_DATA_BEAUTY, &gContestMons[gContestPlayerMonIndex].beauty);
- SetMonData(&gPlayerParty[0], MON_DATA_SMART, &gContestMons[gContestPlayerMonIndex].smart);
- SetMonData(&gPlayerParty[0], MON_DATA_TOUGH, &gContestMons[gContestPlayerMonIndex].tough);
- SetMonData(&gPlayerParty[0], MON_DATA_SHEEN, &gContestMons[gContestPlayerMonIndex].sheen);
- SetMonData(&gPlayerParty[0], MON_DATA_MOVE1, (const u8 *) &gContestMons[gContestPlayerMonIndex].moves[0]);
- SetMonData(&gPlayerParty[0], MON_DATA_MOVE2, (const u8 *) &gContestMons[gContestPlayerMonIndex].moves[1]);
- SetMonData(&gPlayerParty[0], MON_DATA_MOVE3, (const u8 *) &gContestMons[gContestPlayerMonIndex].moves[2]);
- SetMonData(&gPlayerParty[0], MON_DATA_MOVE4, (const u8 *) &gContestMons[gContestPlayerMonIndex].moves[3]);
+ SetMonData(&gPlayerParty[0], MON_DATA_COOL, &gContestMons[gContestPlayerMonIndex].cool);
+ SetMonData(&gPlayerParty[0], MON_DATA_CUTE, &gContestMons[gContestPlayerMonIndex].cute);
+ SetMonData(&gPlayerParty[0], MON_DATA_BEAUTY, &gContestMons[gContestPlayerMonIndex].beauty);
+ SetMonData(&gPlayerParty[0], MON_DATA_SMART, &gContestMons[gContestPlayerMonIndex].smart);
+ SetMonData(&gPlayerParty[0], MON_DATA_TOUGH, &gContestMons[gContestPlayerMonIndex].tough);
+ SetMonData(&gPlayerParty[0], MON_DATA_SHEEN, &gContestMons[gContestPlayerMonIndex].sheen);
+ SetMonData(&gPlayerParty[0], MON_DATA_MOVE1, (const u8 *) &gContestMons[gContestPlayerMonIndex].moves[0]);
+ SetMonData(&gPlayerParty[0], MON_DATA_MOVE2, (const u8 *) &gContestMons[gContestPlayerMonIndex].moves[1]);
+ SetMonData(&gPlayerParty[0], MON_DATA_MOVE3, (const u8 *) &gContestMons[gContestPlayerMonIndex].moves[2]);
+ SetMonData(&gPlayerParty[0], MON_DATA_MOVE4, (const u8 *) &gContestMons[gContestPlayerMonIndex].moves[3]);
}
void sub_80AA754(struct Sprite *sprite)
@@ -590,32 +571,32 @@ void sub_80AA754(struct Sprite *sprite)
static void sub_80AA8A0(struct Sprite *sprite, s8 var1, u8 var2)
{
- if(var1 == 1)
- {
- sprite->data2 = var2;
- sub_80AA280(var2);
- sub_80AA658(sprite->data2);
- }
+ if (var1 == 1)
+ {
+ sprite->data2 = var2;
+ sub_80AA280(var2);
+ sub_80AA658(sprite->data2);
+ }
}
void sub_80AA8C8(struct Sprite *sprite, s8 var1)
{
- sub_80AA8A0(sprite, var1, 0);
+ sub_80AA8A0(sprite, var1, 0);
}
void sub_80AA8D8(struct Sprite *sprite, s8 var1)
{
- sub_80AA8A0(sprite, var1, 1);
+ sub_80AA8A0(sprite, var1, 1);
}
void sub_80AA8E8(struct Sprite *sprite, s8 var1)
{
- sub_80AA8A0(sprite, var1, 2);
+ sub_80AA8A0(sprite, var1, 2);
}
void sub_80AA8F8(struct Sprite *sprite, s8 var1)
{
- sub_80AA8A0(sprite, var1, 3);
+ sub_80AA8A0(sprite, var1, 3);
}
static u8 sub_80AA908(u32 a1, u8 a2, s8 a3) // first param is unused.
@@ -634,48 +615,48 @@ void sub_80AA930(struct Sprite *sprite, u8 var2)
{
u8 val = sprite->data2;
- gContestMons[sprite->data2].cool = sub_80AA908(val, gContestMons[sprite->data2].cool, var2);
- sub_80AA340(sprite->data2);
+ gContestMons[sprite->data2].cool = sub_80AA908(val, gContestMons[sprite->data2].cool, var2);
+ sub_80AA340(sprite->data2);
}
void sub_80AA974(struct Sprite *sprite, u8 var2)
{
u8 val = sprite->data2;
- gContestMons[sprite->data2].cute = sub_80AA908(val, gContestMons[sprite->data2].cute, var2);
- sub_80AA388(sprite->data2);
+ gContestMons[sprite->data2].cute = sub_80AA908(val, gContestMons[sprite->data2].cute, var2);
+ sub_80AA388(sprite->data2);
}
void sub_80AA9B8(struct Sprite *sprite, u8 var2)
{
u8 val = sprite->data2;
- gContestMons[sprite->data2].beauty = sub_80AA908(val, gContestMons[sprite->data2].beauty, var2);
- sub_80AA3D0(sprite->data2);
+ gContestMons[sprite->data2].beauty = sub_80AA908(val, gContestMons[sprite->data2].beauty, var2);
+ sub_80AA3D0(sprite->data2);
}
void sub_80AA9FC(struct Sprite *sprite, u8 var2)
{
u8 val = sprite->data2;
- gContestMons[sprite->data2].smart = sub_80AA908(val, gContestMons[sprite->data2].smart, var2);
- sub_80AA418(sprite->data2);
+ gContestMons[sprite->data2].smart = sub_80AA908(val, gContestMons[sprite->data2].smart, var2);
+ sub_80AA418(sprite->data2);
}
void sub_80AAA40(struct Sprite *sprite, u8 var2)
{
u8 val = sprite->data2;
- gContestMons[sprite->data2].tough = sub_80AA908(val, gContestMons[sprite->data2].tough, var2);
- sub_80AA460(sprite->data2);
+ gContestMons[sprite->data2].tough = sub_80AA908(val, gContestMons[sprite->data2].tough, var2);
+ sub_80AA460(sprite->data2);
}
void sub_80AAA84(struct Sprite *sprite, u8 var2)
{
u8 val = sprite->data2;
- gContestMons[sprite->data2].sheen = sub_80AA908(val, gContestMons[sprite->data2].sheen, var2);
- sub_80AA4A8(sprite->data2);
+ gContestMons[sprite->data2].sheen = sub_80AA908(val, gContestMons[sprite->data2].sheen, var2);
+ sub_80AA4A8(sprite->data2);
}
// a similar function is at 0x80AA908, however, it apparently returns the wrong type (u8 vs u16).
@@ -695,39 +676,39 @@ void sub_80AAAF0(struct Sprite *sprite, u8 var2)
{
u8 val = sprite->data2;
- gContestMons[sprite->data2].moves[0] = sub_80AAAC8(val, gContestMons[sprite->data2].moves[0], var2);
- sub_80AA4F0(sprite->data2, 0);
+ gContestMons[sprite->data2].moves[0] = sub_80AAAC8(val, gContestMons[sprite->data2].moves[0], var2);
+ sub_80AA4F0(sprite->data2, 0);
}
void sub_80AAB30(struct Sprite *sprite, u8 var2)
{
u8 val = sprite->data2;
- gContestMons[sprite->data2].moves[1] = sub_80AAAC8(val, gContestMons[sprite->data2].moves[1], var2);
- sub_80AA4F0(sprite->data2, 1);
+ gContestMons[sprite->data2].moves[1] = sub_80AAAC8(val, gContestMons[sprite->data2].moves[1], var2);
+ sub_80AA4F0(sprite->data2, 1);
}
void sub_80AAB70(struct Sprite *sprite, u8 var2)
{
u8 val = sprite->data2;
- gContestMons[sprite->data2].moves[2] = sub_80AAAC8(val, gContestMons[sprite->data2].moves[2], var2);
- sub_80AA4F0(sprite->data2, 2);
+ gContestMons[sprite->data2].moves[2] = sub_80AAAC8(val, gContestMons[sprite->data2].moves[2], var2);
+ sub_80AA4F0(sprite->data2, 2);
}
void sub_80AABB0(struct Sprite *sprite, u8 var2)
{
u8 val = sprite->data2;
- gContestMons[sprite->data2].moves[3] = sub_80AAAC8(val, gContestMons[sprite->data2].moves[3], var2);
- sub_80AA4F0(sprite->data2, 3);
+ gContestMons[sprite->data2].moves[3] = sub_80AAAC8(val, gContestMons[sprite->data2].moves[3], var2);
+ sub_80AA4F0(sprite->data2, 3);
}
void sub_80AABF0(struct Sprite *sprite, s8 var2)
{
s8 a = (var2 > 0) ? 1 : -1;
s8 r4 = sprite->data3 + a;
-
+
if (r4 < 0)
r4 = 0;
else if (r4 > 4)
@@ -781,7 +762,7 @@ void sub_80AAD44(struct Sprite *sprite, s8 var2)
if (var2 == 1)
{
int i;
-
+
SetDebugMonForContest();
for (i = 0; i < 4; i++)
gUnknown_02038670[i] = sub_80AE770(i, gScriptContestCategory);
@@ -799,22 +780,22 @@ void sub_80AAD84(u8 *string, u8 b, u8 c, u8 d)
//u32 sp44;
//u32 sp48;
u32 sp58;
-
+
gMain.state = 0;
-
+
r5 = d + 1;
//Could also be DmaClear32
DmaFill32(3, 0, (u8 *)VRAM + 0x18000 - r5 * 256, 0x100);
-
+
r7 = StringLength(string);
if (r7 > 8)
r7 = 8;
sp58 = d * 2;
-
+
//More stuff
-
+
r7_2 = 0x7C - sp58;
-
+
}
*/
@@ -1000,7 +981,7 @@ void unref_sub_80AAEE8(s32 a, u8 b, u8 c, u8 d)
{
u8 string[12];
u8 offset = 0;
-
+
if (a < 0)
{
string[0] = 0xAE;
@@ -1013,19 +994,22 @@ void unref_sub_80AAEE8(s32 a, u8 b, u8 c, u8 d)
void sub_80AAF30(void)
{
s32 i;
-
+
gUnknown_0203856C = 1;
gContestPlayerMonIndex = 3;
sub_80AE098(0);
+
for (i = 3; i > -1; i--)
gUnknown_02038690[i] = 3 - i;
+
for (i = 0; i < 3; i++)
{
gUnknown_02038670[i] = 0;
gUnknown_02038680[i] = 0;
gUnknown_02038678[i] = 0;
- memcpy(&gContestMons[i], &gContestMons[3], 0x40);
+ memcpy(&gContestMons[i], &gContestMons[3], sizeof(struct ContestPokemon));
}
+
gUnknown_02038670[3] = 0x12C;
gUnknown_02038680[3] = 0x190;
gUnknown_02038678[3] = 0x190;
@@ -1044,7 +1028,7 @@ int MatsudaDebugMenu_SetHighScore(void)
int MatsudaDebugMenu_ResetHighScore(void)
{
s32 i;
-
+
gUnknown_0203856C = 0;
for (i = 0; i < 4; i++)
{
@@ -1060,7 +1044,7 @@ int MatsudaDebugMenu_ResetHighScore(void)
int MatsudaDebugMenu_SetArtMuseumItems(void)
{
s32 i;
-
+
gContestPlayerMonIndex = 3;
sub_80AE098(0);
for (i = 3; i > -1; i--)
@@ -1076,7 +1060,7 @@ void unref_sub_80AB084(u8 *text)
u16 savedIme;
u8 *addr;
size_t size;
-
+
REG_BG0HOFS = 0;
REG_BG0VOFS = 0;
REG_BG1HOFS = 0;
@@ -1090,7 +1074,7 @@ void unref_sub_80AB084(u8 *text)
REG_WIN1H = 0;
REG_WIN1V = 0;
REG_DISPCNT = 0x1F40;
-
+
savedIme = REG_IME;
REG_IME = 0;
REG_IE |= INTR_FLAG_VBLANK;
@@ -1099,15 +1083,15 @@ void unref_sub_80AB084(u8 *text)
ResetTasks();
ResetSpriteData();
SetMainCallback2(sub_80AB184);
-
+
addr = (void *)VRAM;
size = 0x18000;
- while(1)
+ while (1)
{
DmaFill32(3, 0, addr, 0x1000);
addr += 0x1000;
size -= 0x1000;
- if(size <= 0x1000)
+ if (size <= 0x1000)
{
DmaFill32(3, 0, addr, size);
break;